
    PhX                     f    d dl mZ d dlmZmZmZmZmZ ddlm	Z	 dZ
 G d de	j                        Zy)	    )sstruct)bytechrbyteordtobytestostrsafeEval   )DefaultTablez
		>	# big endian
		tableVersionMajor:	H
		tableVersionMinor: 	H
		glyphletVersion:	H
		permissions:		h
		mainGID:			H
		unitsPerEm:			H
		vertAdvance:		h
		vertOrigin:			h
		uniqueName:			28s
		METAMD5:			16s
		nameLength:			1s
c                   8    e Zd ZdZg Zd Zd Zd Zd Zd Z	d Z
y)	table_S_I_N_G_zGlyphlets SING table

    The ``SING`` table is used by Adobe's SING Glyphlets.

    See also https://web.archive.org/web/20080627183635/http://www.adobe.com/devnet/opentype/gdk/topic.html
    c                     t        j                  t        ||       \  }}| j                  | j                        | _        t        | j                        | _        t        |      | j                  k(  sJ t        |      | _	        | j                  }dt        t        | j                  d               z   | _
        |dd  D ]+  }| j                  dz   t        t        |            z   | _
        - | j                  dz   | _
        y )N[r   r	   z, ])r   unpack2
SINGFormatdecompileUniqueName
uniqueNamer   
nameLengthlenr   baseGlyphNameMETAMD5hex)selfdatattFontdummyrest
rawMETAMD5chars          jC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\fontTools/ttLib/tables/S_I_N_G_.py	decompileztable_S_I_N_G_.decompile    s    ooj$=t224??C!$//24yDOO+++"4[\\
Sa!9::qrND<<$.WT]1CCDL #||c)    c                     d}|D ]t  }t        |      }|dk(  r |S |dkD  s|dk  r|t        |      z  }/t        |      }t        |      dkD  r|dd  }nt        |      dk  r|j	                  d       |d|z   z  }v |S )N r            r	   \)r   chroctr   zfill)r   r   namer   val	octStrings         r    r   z"table_S_I_N_G_.decompileUniqueName-   s    D$-Cax  bcCiC H	y>A% )!"I^a'OOA&y((  r"   c                    | j                   j                         }t        t        | j                              |d<   | j                  | j                  d      |d<   t        | j                        }d|d<   |D ]  }|dxx   t        |      z  cc<    t        |d         dk(  sJ d       t        j                  t        |      }|t        | j                        z   }|S )Nr      r   r"   r      z-Failed to pack 16 byte MD5 hash in SING table)__dict__copyr   r   r   compilecompileUniqueNamer   evalr   r   packr   r   )r   r   dMETAMD5Listr-   r   s         r    compileztable_S_I_N_G_.compile>   s    MM !#d&8&8"9:,77L,4<<()CiLGCL(L 1Y< B&W(WW&||J*gd0011r"   c                 V    t        |      }||k  r|d |dz
   dz   }|S |||z
  dz  z  }|S )Nr	    )r   )r   r,   lengthnameLens       r    r4   z'table_S_I_N_G_.compilecompileUniqueNameK   sJ    d)W&1*%.D  Wv%//Dr"   c                 F   |j                  d       |j                          t        j                  t              \  }}}|D ]1  }t        | |      }|j                  ||       |j                          3 |j                  d| j                         |j                          y )Nz7Most of this table will be recalculated by the compiler)valuer   )commentnewliner   	getformatr   getattr	simpletagr   )r   writerr   formatstringnamesfixesr,   r?   s           r    toXMLztable_S_I_N_G_.toXMLS   s    PQ%,%6%6z%B"eUDD$'ET/NN  	0B0BCr"   c                 ^    |d   }|dv rt        | ||       y t        | |t        |             y )Nr?   )r   r   r   )setattrr   )r   r,   attrscontentr   r?   s         r    fromXMLztable_S_I_N_G_.fromXML^   s0    g==D$&D$0r"   N)__name__
__module____qualname____doc__dependenciesr!   r   r9   r4   rI   rN    r"   r    r   r      s,     L*"	1r"   r   N)fontTools.miscr   fontTools.misc.textToolsr   r   r   r   r   r$   r
   r   r   rT   r"   r    <module>rW      s,    " O O 
"M1\.. M1r"   