ó
imÿSc           @   sÅ   d  d l  m Z m Z m Z d  d l Z d  d l Z d d l m Z m Z m	 Z	 m
 Z
 m Z m Z d d l m Z m Z e Z d Z d Z d Z d Z d Z d „  Z d „  Z d d d „  ƒ  YZ d S(   iÿÿÿÿ(   t   packt   unpackt   unpack_fromNi   (   t   diet   substrt
   str_repeatt   str_padt   strlent   count(   t   bt   ordi    i   i   i   i   c         C   sŒ   |  d } |  d } | d } | d } | | k rK | d 7} | d 7} n  | | } | | k rn | d 7} n  | | } | d @} | | f S(   Ni   i    i   iÿÿ  i   i   (    (   t   xt   yt   xlot   xhit   ylot   yhit   reslot   reshi(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   sub32*   s    







c         C   sí   t  |  ƒ d r: |  t t d ƒ d t |  ƒ d ƒ 7}  n  d } d } xš t d t |  ƒ d ƒ D]€ } | t |  | ƒ d >t |  | d ƒ 7} | t |  | d ƒ d >t |  | d ƒ 7} | | d ?7} | d	 @} | d	 @} q_ W| | f S(
   Ni   t    i    i   i   i   i   i   iÿÿ  (   R   R   R	   t   lent   rangeR
   (   t   datat   hit   lot   i(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   calcChecksum9   s    **.
t
   TTFontFilec           B   s"  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  RS(    c         C   s   d |  _  d  S(   Ni@ (   t   maxStrLenRead(   t   self(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   __init__I   s    c         C   só   | |  _  t | d ƒ |  _ d |  _ g  |  _ i  |  _ i  |  _ i  |  _ i  |  _ d |  _	 d |  _
 i  |  _ |  j ƒ  |  _ } | d k r˜ t d ƒ n  | d k r± t d ƒ n  | d
 k rÎ t d	 | ƒ n  |  j ƒ  |  j ƒ  |  j j ƒ  d  S(   Nt   rbi    iOTTOs%   Postscript outlines are not supportedifctts0   ERROR - TrueType Fonts Collections not supportedi   ieurts   Not a TrueType font: version=(   i   ieurt(   t   filenamet   opent   fht   _post
   charWidthst   glyphPost   charToGlypht   tablest   otablest   ascentt   descentt   TTCFontst
   read_ulongt   versionR   t   readTableDirectoryt   extractInfot   close(   R   t   fileR.   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt
   getMetricsL   s*    										

c         C   sÆ   |  j  ƒ  |  _ |  j  ƒ  |  _ |  j  ƒ  |  _ |  j  ƒ  |  _ i  |  _ xz t |  j ƒ D]i } i  } |  j ƒ  | d <|  j  ƒ  |  j  ƒ  f | d <|  j ƒ  | d <|  j ƒ  | d <| |  j | d <qU Wd  S(   Nt   tagt   checksumt   offsett   length(	   t   read_ushortt	   numTablest   searchRanget   entrySelectort
   rangeShiftR(   R   t   read_tagR-   (   R   R   t   record(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR/   c   s    	c         C   s,   |  j  | d } |  j  | d } | | f S(   NR6   R7   (   R(   (   R   R4   R6   R7   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   get_table_posq   s    c         C   s    | |  _  |  j j |  j  ƒ d  S(   N(   R$   R#   t   seek(   R   t   pos(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR@   v   s    	c         C   s'   |  j  | |  _  |  j j |  j  ƒ d  S(   N(   R$   R#   R@   (   R   t   delta(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   skipz   s    i    c         C   s:   |  j  | ƒ } | d | |  _ |  j j |  j ƒ |  j S(   Ni    (   R?   R$   R#   R@   (   R   R4   t   offset_in_tablet   tpos(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt
   seek_table~   s    c         C   s(   |  j  d 7_  |  j j d ƒ j d ƒ S(   Ni   t   latin1(   R$   R#   t   readt   decode(   R   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR=   „   s    c         C   s^   |  j  d 7_  |  j j d ƒ } t | d ƒ d >t | d ƒ } | d @rZ | d } n  | S(	   Ni   i    i   i   i   i   i €  i   (   R$   R#   RH   R
   (   R   t   st   a(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt
   read_shortˆ   s    "
c         C   s=   t  | d ƒ d >t  | d ƒ } | d @r9 | d } n  | S(   Ni    i   i   i   i   i €  i   (   R
   (   R   RJ   RK   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   unpack_short�   s    "
c         C   sA   |  j  d 7_  |  j j d ƒ } t | d ƒ d >t | d ƒ S(   Ni   i    i   i   (   R$   R#   RH   R
   (   R   RJ   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR8   –   s    c         C   se   |  j  d 7_  |  j j d ƒ } t | d ƒ d t | d ƒ d >t | d ƒ d >t | d ƒ S(	   Ni   i    i   i   i   i   i   i   (   R$   R#   RH   R
   (   R   RJ   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR-   ›   s    c         C   sB   |  j  j | ƒ |  j  j d ƒ } t | d ƒ d >t | d ƒ S(   Ni   i    i   i   (   R#   R@   RH   R
   (   R   RA   RJ   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt
   get_ushort¡   s    c         C   sf   |  j  j | ƒ |  j  j d ƒ } t | d ƒ d t | d ƒ d >t | d ƒ d >t | d ƒ S(	   Ni   i    i   i   i   i   i   i   (   R#   R@   RH   R
   (   R   RA   RJ   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt	   get_ulong¦   s    c         C   s9   | d k  r, t  | ƒ } | } | d 7} n  t d | ƒ S(   Ni    i   s   >H(   t   absR    (   R   t   val(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt
   pack_short¬   s
    c         C   s+   t  | d | ƒ | t  | | t | ƒ ƒ S(   Ni    (   R   R   (   R   t   streamR6   t   value(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   splice³   s    c         C   s"   t  d | ƒ } |  j | | | ƒ S(   Ns   >H(   R    RU   (   R   RS   R6   RT   t   up(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   _set_ushort¶   s    c         C   sN   | d k  r, t  | ƒ } | } | d 7} n  t d | ƒ } |  j | | | ƒ S(   Ni    i   s   >H(   RP   R    RU   (   R   RS   R6   RQ   RV   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt
   _set_shortº   s    c         C   s0   |  j  j | ƒ | d k  r  d S|  j  j | ƒ S(   Ni   t    (   R#   R@   RH   (   R   RA   R7   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt	   get_chunkÂ   s     c         C   s]   |  j  | ƒ \ } } | d k r= t d |  j d | ƒ n  |  j j | ƒ |  j j | ƒ S(   Ni    s   Truetype font (s   ): error reading table: (   R?   R   R!   R#   R@   RH   (   R   R4   RA   R7   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt	   get_tableÇ   s
    c         C   s;   | d k r* |  j  | d t d ƒ ƒ } n  | |  j | <d  S(   Nt   headi   t       (   RU   R	   R)   (   R   R4   R   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   addÎ   s    c   2      C   sÞ	  d |  _  d |  _ |  j d ƒ } |  j ƒ  } | d k rJ t d | ƒ n  |  j ƒ  } | |  j ƒ  } i d d 6d d 6d d 6d d 6d d	 6} t | j ƒ  ƒ } t | ƒ } xÓt | ƒ D]Å} |  j ƒ  }	 |  j ƒ  }
 |  j ƒ  } |  j ƒ  } |  j ƒ  } |  j ƒ  } | | k rqº n  d } |	 d k rÝ|
 d k rÝ| d
 k rÝ|  j	 } |  j
 | | ƒ | d d k r{t d ƒ n  | d :} d } x6 | d k rÃ|  j ƒ  } | t | ƒ 7} | d 8} qŽW| |  _	 |  j
 | ƒ ne |	 d k rB|
 d k rB| d k rB|  j	 } |  j | | | ƒ j d ƒ } | |  _	 |  j
 | ƒ n  | rº | | d k rº | | | <| d 8} | d k rPqqº qº W| d	 rš| d	 } nR | d rÀt j d d | d ƒ } n, | d ræt j d d | d ƒ } n d } | sÿt d ƒ n  | |  _ | d r"| d |  _ n	 | |  _ | d rE| d |  _ n	 d |  _ | d rh| d |  _ n	 | |  _ | d r‹| d |  _ n	 | |  _ | d	 r®| d	 |  _ n  |  j d ƒ |  j d ƒ |  j ƒ  |  _ } d t | ƒ } |  j d ƒ |  j ƒ  } |  j ƒ  } |  j ƒ  } |  j ƒ  } | | | | | | | | g |  _ |  j d0 ƒ |  j ƒ  } |  j ƒ  } | d k r�t d | ƒ n  d |  j k rí|  j d ƒ |  j d ƒ |  j ƒ  } |  j ƒ  } | | |  _ | | |  _ n  d |  j k rs|  j d ƒ |  j ƒ  } |  j d ƒ |  j ƒ  } |  j d ƒ |  j ƒ  } | d k sc| d @d k r„t d |  j d ƒ t |  _ n  |  j d ƒ |  j ƒ  }  |  d ?|  _  |  d @|  _ |  j	 d 7_	 |  j  j! d ƒ }! |  j d ƒ |  j ƒ  }" |  j ƒ  }# |  j s|" | |  _ n  |  j s/|# | |  _ n  | d k rd|  j d ƒ |  j ƒ  }$ |$ | |  _" q·|  j |  _" nD d  } |  j s’| | |  _ n  |  j s«| | |  _ n  |  j |  _" d! t# t$ | d" d ƒ ƒ |  _% |  j d# ƒ |  j d ƒ |  j ƒ  |  j ƒ  d$ |  _& |  j ƒ  | |  _' |  j ƒ  | |  _( |  j) ƒ  }% d |  _* |  j& d k rk|  j* d% B|  _* n  | d& k rŠ|  j* d' B|  _* n  |% r£|  j* d B|  _* n  |  j d ƒ |  j d( ƒ |  j ƒ  }& |& d k råt d) j+ ƒ n  |  j ƒ  }' |' d k r
t d* ƒ n  |  j d+ ƒ |  j d ƒ |  j ƒ  }( |  j d, ƒ }) |  j d ƒ |  j ƒ  }* d }+ d }, xü t |* ƒ D]î } |  j ƒ  }- |  j ƒ  }. |  j) ƒ  } |  j	 }/ |- d k rõ|. d k rõ|  j, |) | ƒ } | d- k rõ|, sî|) | }, n  Pqõn  |- d k r	|. d k s	|- d k rR	|  j, |) | ƒ } | d k rR	|+ sK	|) | }+ n  PqR	n  |  j
 |/ ƒ qqW|+ r‰	|, r‰	t d. |  j d/ ƒ n  i  }0 i  }1 |, r±	|  j- |, |0 |1 ƒ n |  j. |+ |0 |1 ƒ |  j/ |' |( |0 | ƒ d  S(1   Ni    t   names   Unknown name table format RY   i   i   i   i   i   i	  s0   PostScript name is UTF-16BE string of odd lengthRG   t    t   -s#   Could not find PostScript font namet   RegularR\   i   iè  i   s   Unknown glyph data format t   hheas   OS/2i   s   ERROR - Font file s2    cannot be embedded due to copyright restrictions.i   i   iÿ   i
   i   iô  i2   g     @P@t   postg      ð@i@   iX  i   i    s&   Unknown horizontal metric data format s!   Number of horizontal metrics is 0t   maxpt   cmapi   s   Font (s‘   ) does not have cmap for Unicode (platform 3, encoding 1, format 4, or platform 3, encoding 10, format 12, or platform 0, any encoding, format 4)i   (0   t   sFamilyClasst   sFamilySubClassRF   R8   R   t   listt   keysR   R   R$   R@   t   chrRZ   RI   t   ret   subR_   t
   familyNamet	   styleNamet   fullNamet   uniqueFontIDRC   t
   unitsPerEmt   floatRL   t   bboxR(   R*   R+   R!   t   Truet   restrictedUseR#   RH   t	   capHeightt   intt   powt   stemVt   italicAnglet   underlinePositiont   underlineThicknessR-   t   flagst   metricDataFormatRN   t	   getCMAP12t   getCMAP4t   getHMTX(2   R   t   name_offsett   formatt
   numRecordst   string_data_offsett   namest   Kt	   nameCountR   t
   platformIdt
   encodingIdt
   languageIdt   nameIdR7   R6   t   Nt   opost   chart   psNameRr   t   scalet   xMint   yMint   xMaxt   yMaxt   indexToLocFormatt   glyphDataFormatt   hheaAscendert   hheaDescenderR.   t   usWeightClasst   fsTypet   sFt   panoset   sTypoAscendert   sTypoDescendert
   sCapHeightt   isFixedPitchR   t   numberOfHMetricst	   numGlyphst   cmap_offsett   cmapTableCountt   unicode_cmap_offsett   unicode_cmap_offset12t
   platformIDt
   encodingIDt   save_post   glyphToCharR'   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR0   Ø   sh   		) $	
	$		

 


	
	
	
	
	
%			 	  		$c   \      C   s“  | |  _  t | d ƒ |  _ d |  _ g  |  _ i  |  _ i  |  _ i  |  _ i  |  _ d |  _	 d |  _
 |  j d ƒ d |  _ |  j ƒ  |  j d ƒ |  j d ƒ |  j ƒ  } |  j ƒ  } |  j d ƒ |  j d ƒ |  j ƒ  } |  j ƒ  } } |  j d ƒ |  j d ƒ |  j ƒ  } |  j d	 ƒ }	 |  j d
 ƒ |  j ƒ  }
 d } d } xó t |
 ƒ D]å } |  j ƒ  } |  j ƒ  } |  j ƒ  } |  j } | d k rÖ| d k rÖ|  j |	 | ƒ } | d k rÖ| sÏ|	 | } n  PqÖn  | d k rî| d k sú| d k r*|  j |	 | ƒ } | d k r*|	 | } Pq*n  |  j | ƒ qRW| ra| rat d |  j  d ƒ n  i  } i  } | r‰|  j | | | ƒ n |  j | | | ƒ | |  _ d } |  j | | | | ƒ |  j | | ƒ d0 g } i  } x| | D]t } | |  j k rF|  j | | f | k r2| j |  j | | f ƒ n  |  j | | | <n  t |  j | ƒ |  _ qçW|  j d ƒ \ } } | j ƒ  i  } d } d } x7 | D]/ \ } } t | | ƒ } | | | <| d 7} q—Wi  }  x. t | j ƒ  ƒ D] \ } } | | |  | <qãW|  |  _ x? | D]7 \ } } i | d 6| d 6| d 6}! |  j  | |! ƒ qWt! | ƒ } } d g }" x' |" D] }# |  j" |# |  j# |# ƒ ƒ qlWd d d d g }" x9 |" D]1 }# |# |  j k r¨|  j" |# |  j# |# ƒ ƒ q¨q¨W|  j# d ƒ }$ t$ d ƒ t% |$ d d ƒ t$ d ƒ }% |  j" d |% ƒ d |  k r8|  d =n  d }& i  }' d }( d }) x� t |  j ƒ  ƒ D]m \ }* }+ |* |( d k r£|+ |) d k r£|' |& j |+ ƒ n! |* }& g  |' |& <|' |& j |+ ƒ |* }( |+ }) qcWt! |' ƒ d }, d }- d }. x( |- d
 |, k r|- d
 }- |. d }. qóW|- d
 }- |, d
 |- }/ d d  |, | d }0 d d d d d d d |0 d |, d
 |- |. |/ g }1 t |' j ƒ  ƒ }' x5 |' D]- \ } }2 | t! |2 ƒ d }3 |1 j |3 ƒ q“W|1 j d! ƒ |1 j d ƒ x! |' D] \ } }2 |1 j | ƒ qåW|1 j d! ƒ x@ |' D]8 \ } }2 | |2 d }4 | t& |2 ƒ 7} |1 j |4 ƒ qW|1 j d ƒ x |' D] }2 |1 j d ƒ qfW|1 j d ƒ x! |' D] \ }2 }+ |1 j' |+ ƒ q‘W|1 j d ƒ t$ d" ƒ }5 xv |1 D]n }6 |6 d k rö|5 t( d# |6 ƒ 7}5 qÎy |5 t( d$ |6 ƒ 7}5 WqÎt) j* d% |6 ƒ |5 t( d# |6 ƒ 7}5 qÎXqÎW|  j" d	 |5 ƒ |  j d ƒ \ }7 }8 |8 |  j+ k  r†|  j# d ƒ }9 n  g  }: t$ d" ƒ }; d }< t$ d" ƒ }= d }> d }? d }@ d }A d }B d }C d }D d }E d }F d }G d }H d }I d }J d }K i  |  _, xð| D]è\ } } |  j- | | ƒ }L |= |L 7}= |: j |< ƒ y& |  j | }M |  j | d |M }N Wn( t. k
 r“	t) j* d& | ƒ d }N n X|8 |  j+ k  r¸	t% |9 |M |N ƒ }O n1 |N d k rÝ	|  j/ |7 |M |N ƒ }O n t$ d" ƒ }O |N d k r
t0 d# t% |O d d
 ƒ ƒ d }P n  |N d
 k rž|P d1 @ržd }Q t1 }R d }S xJ|R t1 @r‹|S d 7}S t0 d# t% |O |Q d
 ƒ ƒ }P |P d }R t0 d# t% |O |Q d
 d
 ƒ ƒ }P |P d }T |  j, j2 | i  ƒ j2 d( g  ƒ j |T ƒ y! |  j3 |O |Q d
 | |T ƒ }O Wn( t4 k
 rd }O t) j* d) |T ƒ n X|Q d 7}Q |R t5 @r9|Q d 7}Q n
 |Q d
 7}Q |R t6 @rZ|Q d
 7}Q qB
|R t7 @rq|Q d 7}Q qB
|R t8 @rB
|Q d  7}Q qB
qB
Wt |J |S ƒ }J n  |; |O 7}; |< |N 7}< |< d d k r	d |< d }U |; t9 t$ d* ƒ |U ƒ 7}; |< |U 7}< q	q	W|: j |< ƒ |  j" d |; ƒ |  j" d+ |= ƒ t$ d" ƒ }V |< d d ?d! k rtd } xX |: D] } |V t( d, | ƒ 7}V qTWn4 d } x+ |: D]# } |V t( d# t: | d
 ƒ ƒ 7}V q�W|  j" d- |V ƒ |  j# d ƒ }W |  j3 |W d | ƒ }W |  j" d |W ƒ |  j# d ƒ }X |  j3 |X d. | ƒ }X |  j" d |X ƒ |  j# d ƒ }Y |  j3 |Y d | ƒ }Y |  j" d |Y ƒ |  j# d/ ƒ }Z |  j" d/ |Z ƒ |  j j; ƒ  |  j< d" ƒ }[ |[ S(2   NR    i    i   R\   i2   Rc   i    Re   Rf   i   i   i
   i   i   s   Font (s‘   ) does not have cmap for Unicode (platform 3, encoding 1, format 4, or platform 3, encoding 10, format 12, or platform 0, any encoding, format 4)t   glyft   startt   glyphSett   subsetglyphsR_   s   cvt t   fpgmt   prept   gaspRd   t      t                   iþÿÿÿiÿÿÿÿi   i   iÿÿ  RY   s   >Hs   >hs   cmap value too big/small: %ss   missing glyph %si   t
   compGlyphss   missing glyph data %sR   t   hmtxs   >Lt   locai"   s   OS/2(   i    i    i €  (=   R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   RC   t   maxUniR/   RF   R8   R   R-   RN   R@   R   R€   R�   R‚   t   getLOCAt   appendt   maxR?   t   sortt   sortedt   itemst   codeToGlypht	   getGlyphsR   R^   R[   R	   R   R   t   extendR    t   warningst   warnR   t	   glyphdatat
   getHMetrict
   IndexErrorRZ   R   t   GF_MOREt
   setdefaultRW   t   KeyErrort   GF_WORDSt   GF_SCALEt
   GF_XYSCALEt   GF_TWOBYTWOR   Rx   R1   t	   endTTFile(\   R   R2   t   subsetR—   R˜   R   t   orignHmetricsR£   R¤   R¥   R¦   R§   R¨   R   R©   Rª   R6   R«   R„   R¬   R'   R’   R°   t   subsetCharToGlypht   codeR®   t   dummyR¯   t   nt   fsLastCharIndext   originalGlyphIdxt   uniRÀ   t	   nonlocalst   tagsR4   t   opostRd   t   rangeidt   range_t   prevcidt	   prevglidxt   cidt   glidxt   segCountR:   R;   R<   R7   Rf   t   subranget   endCodet   idDeltat   cmapstrt   cmt
   glyfOffsett
   glyfLengtht	   glyphDatat   offsetsR­   RA   t   hmtxstrt   xMinTt   yMinTt   xMaxTt   yMaxTt   advanceWidthMaxt   minLeftSideBearingt   minRightSideBearingt
   xMaxExtentt	   maxPointst   maxContourst   maxComponentPointst   maxComponentContourst   maxComponentElementst   maxComponentDeptht   hmR&   t   glyphLenR   RV   t   pos_in_glyphR~   t   nComponentElementst   glyphIdxt   paddingt   locastrR\   Rc   Re   t   os2t   stm(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt
   makeSubsetÉ  sø   										
	$
		

	
	 &
 



			

"


(!







!c         C   sÙ   | d c d 7<t  | d | d ƒ | d <t |  j | d ƒ rq x€ |  j | d D] } |  j | | ƒ qT WnT |  j | d d k rÅ | d d k rÅ | |  j | d 7} | |  j | d 7} n  | d c d 8<d  S(   Nt   depthi   t   maxdepthR¶   t	   nContoursi    t   nPoints(   R¼   R   RÅ   t   getGlyphData(   R   R×   RÙ   Rÿ   t   contourst   points(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR	  '  s    'c   	      C   s©  y& |  j  | } |  j  | d | } Wn# t k
 rK t j d | ƒ d  SX| sV d  S|  j | d | ƒ |  j ƒ  } | d k  r¥|  j d ƒ t } x| t @r¡|  j ƒ  } |  j ƒ  } | | d k rý t	 | d ƒ | d | <| d j
 | d f ƒ n  |  j j ƒ  } |  j | | ƒ |  j | ƒ | t @rC|  j d ƒ n |  j d	 ƒ | t @rj|  j d	 ƒ q™ | t @r„|  j d ƒ q™ | t @r™ |  j d ƒ q™ q™ Wn  d  S(
   Ni   s   missing glyph %sR®   i    i   R¯   R°   i   i   (   R&   RÇ   RÃ   RÄ   R@   RL   RC   RÈ   R8   R   R»   R#   t   tellRÁ   RË   RÌ   RÍ   RÎ   (	   R   R×   RÙ   R&   Rü   t   numberOfContoursR~   Rÿ   t   savepos(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyRÁ   8  s>    



c         C   sÃ  |  j  d ƒ } d } d g d d |  _ d } | d |  j k  r~ |  j | | d ƒ } t d t t | ƒ d ƒ | ƒ }	 n |  j | ƒ x$t | ƒ D]}
 | d |  j k  rÂ |	 |
 d } n |  j	 ƒ  } |  j	 ƒ  } |
 | k sò |
 d k r˜ | d k rd } n  |
 d k r&| | |  _
 q˜ n  x… | |
 D]v } | d k r1| d	 k r1t t | | d
 ƒ ƒ } | d k r~d	 } n  | d k  r§| |  j | <| d 7} q§q1q1Wq˜ q˜ W|  j | | d | d ƒ } t d t t | ƒ d ƒ | ƒ }	 | | } x² t | ƒ D]¤ } | | }
 |
 | k r
x… | |
 D]v } | d k r1| d	 k r1t t | | d
 ƒ ƒ } | d k r~d	 } n  | d k  r§| |  j | <| d 7} q§q1q1Wq
q
W| |  j d <d  S(   NR·   i    i   i   s   >%dHi   i   i   iÿÿ  gü©ñÒMbP?i   i €  (   RF   R%   R   RZ   R   Rx   R   R@   R   R8   t   defaultWidtht   round(   R   R£   R¤   R¬   R’   R®   t   awt   nCharWidthsR   t   arrt   glypht   lsbR�   t   wt   diffRA   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR‚   a  sT    &	 	#

 	c         C   s§   |  j  d ƒ } | | k  rE |  j | | d ƒ |  j j d ƒ } n^ |  j | | d d ƒ |  j j d ƒ } |  j | | d | d ƒ | |  j j d ƒ 7} | S(   NR·   i   i   i   (   RF   R@   R#   RH   (   R   R£   t   gidR®   Rû   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyRÆ   —  s    c         C   s  |  j  d ƒ } g  |  _ | d k r“ |  j | | d d ƒ } t d t t | ƒ d ƒ | ƒ } x´ t | ƒ D] } |  j j | | d ƒ qn Wn… | d k r
|  j | | d d ƒ } t d t t | ƒ d ƒ | ƒ } x9 t | ƒ D] } |  j j | | ƒ qé Wn t d | ƒ d  S(	   NR¸   i    i   s   >%dHi   i   s   >%dLs   Unknown location table format (	   RF   R&   RZ   R   Rx   R   R   R»   R   (   R   R—   R¤   R®   R   R  RÕ   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyRº   ¤  s    	##c         C   s]  d |  _  |  j | d ƒ |  j ƒ  } | | } |  j d ƒ t |  j ƒ  d ƒ } |  j d ƒ g  } x' t | ƒ D] } | j |  j ƒ  ƒ qs W|  j d ƒ g  }	 x' t | ƒ D] } |	 j |  j ƒ  ƒ q° Wg  }
 x' t | ƒ D] } |
 j |  j ƒ  ƒ qà W|  j } g  } x' t | ƒ D] } | j |  j ƒ  ƒ qWx t | ƒ D]} | | d } xû t |	 | | d ƒ D]ã } | | d k r™| |
 | d @} nq | |	 | d | | } | d | | } | | k rÚd } n0 |  j	 | ƒ } | d k r
| |
 | d @} n  | | | <| d k  r8t
 | |  j  ƒ |  _  n  | j | g  ƒ j | ƒ qnWqCWd  S(   Ni    i   i   i   iÿÿ  i   (   t
   maxUniCharR@   R8   RC   Rx   R   R»   RL   R$   RN   R¼   RÉ   (   R   R§   R¬   R'   R7   t   limitRâ   t   endCountR   t
   startCountRå   t   idRangeOffset_startt   idRangeOffsetRÕ   t   endpointt   unicharR  R6   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR�   µ  sJ    	
		
c         C   s  d |  _  |  j | d ƒ |  j d ƒ |  j ƒ  } |  j d ƒ |  j ƒ  } d | d d | k rq t d ƒ n  x§ t | ƒ D]™ } |  j ƒ  } |  j ƒ  } |  j ƒ  }	 xl t | | d ƒ D]W }
 |	 | |
 <|
 d k  rð t |
 |  j  ƒ |  _  n  | j |	 g  ƒ j |
 ƒ |	 d 7}	 q¼ Wq~ Wd  S(   Ni    i   i   i   s"   TTF format 12 cmap table too smalli   i   i   i   i   i   (	   R  R@   RC   R-   R   R   R¼   RÉ   R»   (   R   R§   R¬   R'   R7   t   grpCountRÕ   t   startCharCodet   endCharCodeR  R   (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR€   â  s$    	
c         C   s  t  d ƒ } t |  j ƒ } d } d } x( | d | k rQ | d } | d } q* W| d } | d | } t r’ | t d d | | | | ƒ 7} n | t d d | | | | ƒ 7} |  j } d	 | d } t | j ƒ  ƒ } x  | D]˜ \ }	 }
 |	 d
 k r| } n  | |	 j d ƒ 7} t |
 ƒ } | t d | d | d ƒ 7} | t d | t	 |
 ƒ ƒ 7} t	 |
 ƒ d d @} | | } qá WxD | D]< \ }	 }
 |
 t  d ƒ 7}
 | t
 |
 d t	 |
 ƒ d @ƒ 7} q„Wt | ƒ } t d | ƒ } t d | d | d ƒ } |  j | | d | ƒ } | S(   NRY   i   i    i   i   s   >LHHHHieurti   i   R\   RG   s   >HHs   >LLi   t      i°±  iº¯  i   iüÿÿÿiüÿÿÿ(   i°±  iº¯  (   R	   R   R)   t   _TTF_MAC_HEADERR    R¾   R¿   t   encodeR   R   R   R   RU   (   R   R  R9   R:   R;   R<   R(   R6   t   sorted_tablesR4   R   t
   head_startR5   t   paddedLengtht   chk(    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyRÏ   ÿ  s@    

"		$(!   t   __name__t
   __module__R   R3   R/   R?   R@   RC   RF   R=   RL   RM   R8   R-   RN   RO   RR   RU   RW   RX   RZ   R[   R^   R0   R  R	  RÁ   R‚   RÆ   Rº   R�   R€   RÏ   (    (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyR   G   s@   																				
	ñ	ÿ _		)	6			-	i   i   i    i@   i€   (    (   t   structR    R   R   Rl   RÃ   t   phpR   R   R   R   R   R   t   py3kR	   R
   t   FalseR%  RË   RÌ   RÈ   RÍ   RÎ   R   R   R   (    (    (    s2   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/ttfonts.pyt   <module>   s   .		