o
    à’OjzÂ  ã                   @   sN  d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZmZ ddlZeƒ Zeddddd�Zg g g g d	œZeddi d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d“d%d&“d'd(“d)d*“d+d,“d-d.“ŽZeddd/d0d1d2d3d4d5d6�	Zded7< ed8d9d:d;d<d=�Z d>d?„ Z!d@dA„ Z"efdBdC„Z#G dDdE„ dEeƒZ$G dFdG„ dGeƒZ%dHdI„ Z&eƒ Z'G dJdK„ dKeƒZ(G dLdM„ dMƒZ)ee)g dN¢g dO¢dPƒe)g dQ¢g dR¢dSƒe)g dT¢g dU¢dVƒe)g dW¢g dX¢dYƒe)g dZ¢g d[¢d\ƒd]�Z*ed^d_d`dadbd]�Z+e,dck�r%ddl-Z-e- .¡  dS dS )e)ÚAcroFormé    )	Ú	PDFObjectÚPDFArrayÚPDFDictionaryÚ	PDFStringÚ	pdfdocEncÚPDFNameÚ	PDFStreamÚPDFStreamFilterZCompressÚ	escapePDF)ÚstringWidth)ÚColorÚ	CMYKColorÚWhiterÚBlackerÚopaqueColor©Úfp_str)ÚisStrÚasNativeN)ÚvisibleÚhiddenÚvisibleNonPrintingÚhiddenPrintable)r   éZ   é´   i  ÚreadOnlyé   Úrequiredé   ÚnoExporté   ÚnoToggleToOffi @  Úradioi €  Ú
pushButtoni   ÚradiosInUnisoni   Ú	multilinei   Úpasswordi    Ú
fileSelecti   ÚdoNotSpellChecki  @ ÚdoNotScrolli  € Úcombi   ÚrichTextÚcomboi   Úediti   Úsorti   ÚmultiSelecti    ÚcommitOnSelChangei   é   é   é    é@   é€   é   i   )	Ú	invisibler   ÚnozoomÚnorotateÚnoviewÚreadonlyÚlockedÚtogglenoviewÚlockedcontentsÚprintÚSÚDÚBÚIÚU)ÚsolidÚdashedÚbevelledÚinsetÚ
underlinedc                 C   sP   t | tt| ƒd�}|dkr$|sdg}n
t|ttfƒs|g}t|ƒ|d< t|ƒS )N)ÚWrA   rG   é   rB   )Údictr   Ú	_bsStylesÚ
isinstanceÚlistÚtupler   r   )ÚborderWidthÚborderStyleÚdashLenÚd© rV   ú`/var/www/html/pharmsmart-cdr-gen/venv/lib/python3.10/site-packages/reportlab/pdfbase/acroform.pyÚbsPDFI   s   rX   c                 C   s   t | ƒ dd¡S )Nú%z\045)r   Úreplace)ÚsrV   rV   rW   ÚescPDFS   s   r\   c                 C   s0   t | tƒs| }d} | ¡ D ]}| || O } q| S )Nr   )rO   ÚintÚsplit)r[   rU   ÚvÚxrV   rV   rW   Ú	makeFlagsV   s   
ra   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚPDFFromStringc                 C   s   t |ƒs
td| ƒ‚|| _d S )Nz$need a unicode/bytes argument not %r)r   Ú
ValueErrorÚ_s)Úselfr[   rV   rV   rW   Ú__init___   s   
zPDFFromString.__init__c                 C   s
   t | jƒS ©N)r   rd   )re   ÚdocumentrV   rV   rW   Úformatd   s   
zPDFFromString.formatN©Ú__name__Ú
__module__Ú__qualname__rf   ri   rV   rV   rV   rW   rb   ^   s    rb   c                   @   s   e Zd Zddd„Zdd„ ZdS )	Ú
RadioGroupÚ únoToggleToOff required radioc                 C   s4   |st dƒ‚|| _t|tƒ| _g | _|| _d | _d S )NzRadioGroup created with no name)rc   ÚTUra   ÚfieldFlagValuesÚFfÚkidsÚTÚV)re   ÚnameÚtooltipÚ
fieldFlagsrV   rV   rW   rf   h   s   
zRadioGroup.__init__c                 C   sŽ   | j }t|ƒ}|dk rtd| j|f ƒ‚t| jtdd„ | j D ƒƒtdƒt| jƒd�}| j	r4t| j	ƒ|d< | j
r>t| j
ƒ|d< t|ƒ |¡}|S )	Nr   z#RadioGroup:%s has %d < 2 RadioBoxesc                 S   s   g | ]}|‘qS rV   rV   )Ú.0ÚkrV   rV   rW   Ú
<listcomp>x   s    z%RadioGroup.format.<locals>.<listcomp>ÚBtn)rs   ÚKidsÚFTru   rv   rq   )rt   Úlenrc   ru   rM   rs   r   r   r   rv   rq   r   ri   )re   Údocrt   rU   ÚrrV   rV   rW   ri   q   s   üzRadioGroup.formatN)ro   rp   rj   rV   rV   rV   rW   rn   g   s    
	rn   c                 C   s<   t | tƒrdd dd„ | jD ƒ¡ S t | tƒr| jS t| ƒS )Nz[%s]ro   c                 s   s   � | ]}t |ƒV  qd S rg   ©Ú_pdfObjToStr)rz   ÚerV   rV   rW   Ú	<genexpr>…   s   € z_pdfObjToStr.<locals>.<genexpr>)rO   r   ÚjoinÚsequencerb   rd   Ústr)ÚobjrV   rV   rW   r„   ƒ   s
   

r„   c                   @   s¼  e Zd Zddddddddd	d
dddœZdd„ Zedd„ ƒZedd„ ƒZdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Z			 	 	 	 	!	"	#dkd$d%„Zedld(d)„ƒZd*d+„ Zd,d-„ Zd.d/„ Zeed0d0d0d1ƒed0d0d0d1ƒed2d3d0d0ƒed4d4d4ƒed4d4d4ƒed5d6d7ƒd7d8�Zd9d:„ Zd;d<„ Zed=d>„ ƒZd?d@„ Zd'dAdeeeed!d"d0d0d d dBdCd'd'd#fdDdE„Zd d'ddeeeed!d"d0d0d d dBdFd'd'd#fdGdH„ZdIdJ„ Zdd d d d d!dKdLd#dMg g dNdOfdPdQ„ZdRdS„ Z dTeeeed!dKdLd0d0d d dBdTd'd'dUd d d d d#fdVdW„Z!dTeeeed!dKdLd0d0d d dBdTd'd'dUd d d#fdXdY„Z"dTeeeed!dKdLd0d0d d dBdTd'd'd d d#d g fdZd[„Z#dTeeeed!dKdLd0d0d d dBd\d'd'd d d#d g fd]d^„Z$d_d`„ Z%dadb„ Z&dcdd„ Z'dedf„ Z(dgdh„ Z)edidj„ ƒZ*d S )mr   ÚHelvÚHeBoÚCourÚCoBoÚCoObÚCoBOÚHeObÚHeBOÚTimeÚTiBoÚTiItÚTiBI)Ú	HelveticazHelvetica-BoldÚCourierzCourier-BoldzCourier-ObliquezCourier-BoldObliquezHelvetica-ObliquezHelvetica-BoldObliquezTimes-Romanz
Times-BoldzTimes-ItaliczTimes-BoldItalicc                 K   s@   i | _ t |¡| _i | _g | _i | _i | _i | _d | _	i | _
d S rg   )ÚreferenceMapÚweakrefÚrefÚ_canvÚfontsÚfieldsÚ_radiosÚ_refMapÚ
_pdfdocencÚsigFlagsÚextras)re   ÚcanvÚkwdsrV   rV   rW   rf   ›   s   
zAcroForm.__init__c                 C   s   t S rg   )Ú_useDefault©re   rV   rV   rW   Ú
useDefault¦   s   zAcroForm.useDefaultc                 C   s$   |   ¡ }|d u rtd| jj ƒ‚|S )Nz%s.canv is no longer available)rœ   rc   Ú	__class__rk   )re   rœ   rV   rV   rW   r¤   ª   s   zAcroForm.canvc                 C   s   d|| j | f S )Nz/Font << /%s %s >>)r�   )re   ÚfrV   rV   rW   ÚfontRef±   s   zAcroForm.fontRefc                    s¦   t t‡ fdd„ˆ jD ƒƒd�}ˆ jrˆ j|d< ˆ jrDttˆ j ¡ ƒƒ}‡ fdd„|D ƒ}td|d  ƒ|d< t	d	ˆ j
d
 |¡f ƒ|d< | ˆ j¡ t|ƒ |¡}|S )Nc                    ó   g | ]}ˆ   |¡‘qS rV   )ÚgetRef©rz   rª   r§   rV   rW   r|   ¶   ó    z#AcroForm.format.<locals>.<listcomp>)ÚFieldsÚSigFlagsc                    r¬   rV   )r«   r®   r§   rV   rW   r|   »   r¯   z/%s 0 Tf 0 gr   ÚDAz)<< /Encoding
<<
/RLAFencoding
%s
>>
%s
>>Ú
ÚDR)rM   r   rž   r¢   r�   rP   ÚsortedÚkeysr   rb   Ú	encRefStrr‡   Úupdater£   r   ri   )re   r�   rU   ÚFKÚFr‚   rV   r§   rW   ri   ´   s   ÿzAcroForm.formatc                 C   s0   |d u s	|j dkrdS t|tƒr| ¡ S | ¡ S )Nr   rV   )ÚalpharO   r   ÚcmykÚrgb)re   ÚcrV   rV   rW   Ú
colorTupleÂ   s   zAcroForm.colorTuplec                 C   ó(   |   |¡}t|Ž t|ƒdkrd S d S )Nr!   z kz rg©r¿   r   r€   ©re   r¾   ÚtrV   rV   rW   ÚstreamFillColorÌ   ó   
zAcroForm.streamFillColorc                 C   rÀ   )Nr!   z Kz RGrÁ   rÂ   rV   rV   rW   ÚstreamStrokeColorÐ   rÅ   zAcroForm.streamStrokeColorÚcircleÚsquareNrF   é   rL   c                    sz  g j }ˆ}|dkr„|dƒ t|ƒrˆ  |¡}|dƒ |d urt|ƒrˆ  |¡}|d }ˆ| }|}|	dkr:|dƒ n|	dv rO|	dkrId	t|ƒ }nd
}|dƒ |	dv rt|ƒrd| }ˆ| }|}t|dƒ}|}|dkrq||}}ˆ  |¡}ˆ  |¡}|dƒ |dƒ nÐ|dk�rT‡ ‡fdd„}ˆd }t|ƒr¯ˆ  |¡}|dƒ |||ƒƒ |dƒ |dƒ |d u�rTt|ƒ�rT|dƒ ˆ  |¡}|d }ˆ| }|	dkrÓ|dƒ n|	dv rð|	dkrÞd}nd
}|dƒ |||| ƒƒ |dƒ |dƒ |	dv �rTt|ƒ�rTd| }ˆ| }t|dƒ}t|dƒ}d}d}|	dk�r||}}|dk�r(||}}ˆ  |¡}ˆ  |¡}|dƒ |||| d|d �ƒ |d!ƒ |||| d|d �ƒ |d"ƒ |d#k�r¡t|ƒ�riˆ  |¡}ˆ  |¡}nd$}d%}|d&ƒ t| }|dk�r“|dk�r“||t|ˆ|  d'ƒd ƒƒ |dƒ n
|| 	ˆˆ| ¡ƒ |dƒ d( 
|j¡tƒ   d)d*¡ d+d(¡}ˆ jˆˆ|td,ƒd-�S ).NrÈ   Úqz11 g 1 G %(streamFill)s 0 0 %(size)s %(size)s re fç      à?rJ   zC%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(size)s %(hbw)s l s©rG   rI   rH   rF   rG   z
 [%s ] 0 dro   zQ%(streamStroke)s%(dash)s %(borderWidth)s w %(hbw)s %(hbw)s %(smbw)s %(smbw)s re s©rH   rI   r   rB   a5  %(bbs0)s %(borderWidth)s %(borderWidth)s m %(borderWidth)s %(smbw)s l %(smbw)s %(smbw)s l %(sm2bw)s %(sm2bw)s l %(_2bw)s %(sm2bw)s l %(_2bw)s %(_2bw)s l f %(bbs1)s %(smbw)s %(smbw)s m %(smbw)s %(borderWidth)s l %(borderWidth)s %(borderWidth)s l %(_2bw)s %(_2bw)s l %(sm2bw)s %(_2bw)s l %(sm2bw)s %(sm2bw)s l fÚQrÇ   c                    s   ˆ j ˆ| fi |¤ŽS rg   )ÚcircleArcStream)Ú_rÚ_casKwds©re   ÚsizerV   rW   Ú<lambda>  ó    z%AcroForm.checkboxAP.<locals>.<lambda>zq 1 g 1 G %(streamFill)srª   zGq %(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(size)s %(hbw)s l s Qz	 [3 ] 0 dz*%(streamStroke)s%(dash)s %(borderWidth)s wr[   rL   )r   r   )r   rL   rI   zq %(bbs0)s %(borderWidth)s wT)ÚrotatedÚarcszS Q %(bbs1)s qzS QÚYesú0 gz0 Gz'q %(textFillColor)s %(textStrokeColor)sr   r³   ú  ú ú

z<< /ProcSet [/PDF] >>©Ú	Resources)Úappendr   rÄ   rÆ   r   r   r   ÚcbmarksÚmaxÚscaledRenderr‡   Ú__self__ÚvarsrZ   Ú
makeStreamrb   )re   ÚkeyÚvalueÚbuttonStyleÚshapeÚ	fillColorÚborderColorÚ	textColorrR   rS   rÓ   rT   ÚstreamÚdsÚ
streamFillÚstreamStrokeÚhbwÚsmbwÚdashÚ_2bwÚsm2bwÚbbs0Úbbs1Úcasr‚   Ú_3bwhÚa0Úa1ÚtextFillColorÚtextStrokeColorÚcbmrV   rÒ   rW   Ú
checkboxAPÔ   s¶   























"þzAcroForm.checkboxAP©r   r   r   rL   Fc           
      C   s   g j }|jj}| d }| d }| |9 } ||9 }||9 }td| ƒ}t|ƒ}t|ƒ}|r-dnd}	|dƒ d|v rD|ƒ dkr@|d	ƒ |d
ƒ d|v rU|ƒ dkrQ|dƒ |dƒ d|v rf|ƒ dkrb|dƒ |dƒ d|v rw|ƒ dkrs|dƒ |dƒ d |j¡tƒ  S )NrË   g      4@gÍh†¬á?z0.7071 0.7071 -0.7071 0.7071z1 0 0 1z%(mx)s %(hsize)s %(hsize)s cmr   r   z	%(r)s 0 mz#%(r)s %(cp)s %(cp)s %(r)s 0 %(r)s cz	0 %(r)s mz&-%(cp)s %(r)s -%(r)s %(cp)s -%(r)s 0 cr   z
-%(r)s 0 mz(-%(r)s -%(cp)s -%(cp)s -%(r)s 0 -%(r)s crL   z
0 -%(r)s mz%%(cp)s -%(r)s %(r)s -%(cp)s %(r)s 0 cr³   )rß   rã   Ú__len__r   r‡   rä   )
rÓ   r‚   r×   rÖ   ÚRÚrlenÚhsizerª   ÚcpÚmxrV   rV   rW   rÏ   B  s2   zAcroForm.circleArcStreamc                 C   s^   t | }||  }}|d }tt|d|ƒƒ}||kr ||| 9 }|d||   }	d}
dtƒ  S )Nç333333ó?ÚZapfDingbatsrË   r   zCBT %(iFontName)s %(fs)s Tf %(dx)s %(dy)s Td %(fs)s TL (%(c)s) Tj ET)ÚZDSymsÚfloatr   rä   )re   r¾   rÓ   rî   Ú	iFontNamerK   ÚHÚfsÚwÚdxÚdyrV   rV   rW   ÚzdMark^  s   
zAcroForm.zdMarkc                 C   s   | j j |¡S rg   )r¤   Ú_docÚ	Reference©re   rŠ   rV   rV   rW   r­   j  s   zAcroForm.getRefc                 C   s   t |  |¡ | jj¡ƒS rg   )r   r­   ri   r¤   r  r  rV   rV   rW   Ú	getRefStrm  s   zAcroForm.getRefStrr   çÍÌÌÌÌÌì?g¸…ëQ¸¾?gj¼t“Ä?gš™™™™™¹?gš™™™™™é?g`åÐ"Ûùê?r   )Úcmyk_textColorÚcmyk_borderColorÚcmyk_fillColorÚrgb_textColorÚrgb_borderColorÚrgb_fillColorrR   c                 C   sÄ   d| j vr| jj ¡ | _|  ¡ }|| ¡ v rWd|v r>|d d… dkr0t|ttfƒr/|||< d S nt|ttfƒr=|||< d S nt|t	t
tƒƒrL|||< d S td|›d|›d�ƒ‚td|›d|›d�ƒ‚)	NÚ_defaultValuesÚ_r!   r¼   z%Invalid value in acroForm.setDefault(ú,ú)z$Invalid name in acroForm.setDefault()Ú__dict__r©   r  Úcloner¶   rO   r   ÚNoneTyper   r
  r]   rc   )re   rw   rç   rU   rV   rV   rW   Ú
setDefaultz  s&   
þþzAcroForm.setDefaultc                 C   s¢   t |tƒpt |tƒpt |tƒ}|st| jjddƒdk}|rdnd}| j}|tur*|n||d  |tur5|n||d  |tur@|n||d  |turL|fS |d fS )	Nrk   Ú_enforceRGBÚcmyk_Úrgb_rì   rë   rê   rR   )rO   r   Úgetattrr¤   Ú_enforceColorSpacer  r¦   )re   rì   rë   rê   rR   ÚpfxrU   rV   rV   rW   ÚgetDefaults�  s   
ÿþ
ýýzAcroForm.getDefaultsc                    s@   | dkr| dkr
t nt‰ ‡ fdd„|||fD ƒ\}}}|||fS )NÚNr  c                    s"   g | ]}|d urˆ |dƒnd ‘qS )Nr  rV   )rz   r¾   ©ÚfuncrV   rW   r|   ¢  s   " z'AcroForm.varyColors.<locals>.<listcomp>)r   r   )ræ   rÃ   Úbrª   rV   r-  rW   Ú
varyColorsž  s   
zAcroForm.varyColorsc                 C   sü   |r|| j }| ¡  | ¡  |d ur&t|	ƒr&d| }| |¡ | |	¡ d}nd }}|d| 8 }|d| 8 }||7 }||7 }t|
ƒ}|rI| |
¡ |dkr]|j||||||rXdndd� nt||ƒd }|j	|| || |||rrdndd� | 
¡  d S d S )NrË   r   r   r   rÈ   )ÚstrokeÚfill)r¤   Ú	saveStateÚresetTransformsr   ÚsetLineWidthÚsetStrokeColorÚsetFillColorÚrectÚminrÇ   ÚrestoreState)re   r`   ÚyÚwidthÚheightÚforceBorderré   rS   rR   rë   rê   r¤   rñ   r[   ÚdoFillr‚   rV   rV   rW   ÚcheckForceBorder¥  s.   


 $ézAcroForm.checkForceBorderÚcheckr@   r   c           !      C   s  |rdnd}|   ||||¡\}}}}| j}|r | j |
|¡\}
}|j}i }dD ]G}i }|  ||||¡\}}}dD ].}| j||||||||||	|d�}|j| jv rW| j|j }n|  |¡}|| j|j< |||< q8t	|ƒ||< ~q't
tdƒ| ¡ t|ƒt|ƒt|
||
|	 ||	 fƒt	|ƒtdƒtdƒt|tƒt|tƒtd	ƒd
�}|r¦t|ƒ|d< |s¯dt| jƒ }|r¹t|||ƒ|d< t|ƒ|d< t
dt|  d�} |d urÕt|  |¡ƒ| d< |d urât|  |¡ƒ| d< t	| ƒ|d< t	|ƒ}| j |¡ | j |  |¡¡ |  |
||	|	||||||¡
 d S )NrØ   ÚOffÚNDR)rØ   rB  ©	rè   ré   rê   rë   rì   rR   rS   rÓ   rT   r}   ÚWidgetÚAnnotr,  )r   ÚPrv   ÚASÚRectÚAPÚSubtypeÚTyperº   rs   r  rq   úAFF%03dÚBSru   ú(%s)©ÚCAÚBCÚBGÚMK)r+  r¤   ÚabsolutePositionr  r0  rÿ   Ú
_af_refstrr    r­   r   rM   r   ÚthisPageRefr   ra   ÚannotationFlagValuesrr   r   r€   rž   rX   r	  r¿   Ú_addAnnotationrß   r@  )!re   Úcheckedrè   ré   rê   rë   rì   rR   rS   rÓ   r`   r;  rx   rw   ÚannotationFlagsry   r>  ÚrelativerT   ÚinitialValuer¤   r�   rJ  ræ   ÚAPVÚtCÚbCÚfCrç   Úapr›   ÚCBrT  rV   rV   rW   Úcheckbox¿  sx   õ

ô zAcroForm.checkboxrp   c           #      C   s¬  || j vrt|||d�}|  |¡|_|| j |< | j |j¡ n| j | }t|tƒ}||jkr6t	d||f ƒ‚|s@t	d||f ƒ‚|rD|nd}|  
||||¡\}}}}||krn|jd urk|j|krjt	d|||jf ƒ‚n||_| j}|r|| j ||¡\}}|j}i }dD ]O}i }|  ||||¡\}}}|dfD ]4}| j|||kr¡dnd|||||||	|
|d�}|j| jv r»| j|j } n|  |¡} | | j|j< | ||< q–t|ƒ||< ~qƒttd	ƒ| ¡ t|ƒt||||
 ||
 fƒt|ƒtd
ƒtdƒt|tƒ|jtdƒd�
}!tdt|  d�}"|d u�rt|  |¡ƒ|"d< |d u�r"t|  |¡ƒ|"d< |�r-t||	|ƒ|!d< t|"ƒ|!d< t|!ƒ}!| j |!¡ |j |  |!¡¡ |  |||
|
|||	|||¡
 d S )N)rx   ry   z(radio.%s.%s created with different flagszbad value %r for radio.%srB  z2radio.%s.%s sets initial value conflicting with %srC  rØ   rD  r}   rE  rF  r,  )
r   rG  rH  rI  rJ  rK  rL  rº   ÚParentr  rO  rP  rR  rS  rN  rT  )rŸ   rn   r­   Ú_refrž   rß   ra   rr   rs   rc   r+  rv   r¤   rU  r  r0  rÿ   rV  r    r   rM   r   rW  r   rX  r	  r¿   rX   rY  rt   r@  )#re   rç   Úselectedrè   ré   rê   rë   rì   rR   rS   rÓ   r`   r;  rx   rw   r[  ry   r>  r\  rT   Úgroupr]  r¤   r�   rJ  ræ   r^  r_  r`  ra  r_   rb  r›   ÚRBrT  rV   rV   rW   r#     sŽ   






ÿõ

ô

 zAcroForm.radioc                 K   sŽ   t g d¢ƒ|d< t dd||gƒ|d< tdƒ|d< tdƒ|d< d	|d
< tt|ƒ|| jjjr0tƒ gnd d�}|d dd„ t	| 
¡ ƒD ƒ¡ |_|S )N)ç      ð?ç        rk  rj  rk  rk  ÚMatrixr   ÚBBoxÚFormrK  ÚXObjectrL  r   ÚFormType)Úfiltersr³   c                 s   s$   � | ]\}}d |t |ƒf V  qdS )z%s=%rNrƒ   )rz   r{   r_   rV   rV   rW   r†   ‡  s   €" z&AcroForm.makeStream.<locals>.<genexpr>)r   r   r	   r   r¤   r  Úcompressionr
   r‡   rµ   ÚitemsrV  )re   r<  r=  rí   rB   r[   rV   rV   rW   rå   u  s   ý"zAcroForm.makeStreaméx   é$   Ú	textfieldz0.600006 0.756866 0.854904 rgrÙ   c           -      C   sô  g }|j }t|ƒr|  |¡}|dƒ d }}|}|}d}|
d kr]|
dkr]t|ƒr]|
d }||
 }||
 }d|
 }|dv r\|| }|| }|dkrTd}|sN|rQd	}nd
}nd}d
}|dƒ n
d } }}
|}|}d}t|ƒr–|
r–|  |¡} |dkr}|dƒ n|dv r–|dkrŽdt|ƒ }!d}nd|
 }!|dƒ d|
 }"||" }#||" }$t|	ƒr«|  |	¡nd}%|dƒ d| }&|dk�r”t|$|& ƒ}'|$t|'ƒ }&|'t|ƒkrÓd}(t|ƒ}'n2t|ƒdkr÷|rß|d nd}(|(rö|(|'k rêd}(nt|ƒ|' })|(|)krö|)}(n|d |'k �rd}(n|d }(t|ƒ}*|(|' })|)|*k�r|)|* }(t|*|(|' ƒ}+|�rK|(})|| |& }*||ƒ |)|+k �rK|)|v �r>|dt|*ƒ ƒ |*|&8 }*|)d7 })|)|+k �s1|(})|| | }*|dƒ |)|+k �r“|dƒ |)|(k�ri|dƒ ||)|v �rq|ndƒ |d t|*ƒt	||) ƒf ƒ |*|&8 }*|)d7 })|d!ƒ |)|+k �s\n@|dƒ |�rÔ|d"ƒ |d#t|| | ƒ ƒ | 
d$¡D ]},|d%t	|,ƒt|& ƒf ƒ �q°|d& d |d&  d$¡… |d&< |d!ƒ t|&ƒ}&|d'ƒ d$ |¡tƒ   d(d)¡ d*d$¡}| j|||td+tƒ  ƒd,�S )-Nz,%(streamFill)s
0 0 %(width)s %(height)s re
fr   ro   rË   r   rÍ   rH   z1 gz-0.250977 0.749023 -0.250977 rgz.75293 gz	.501953 ga)  %(bbs0)s
%(borderWidth)s %(borderWidth)s m
%(borderWidth)s %(bwh)s l
%(bww)s %(bwh)s l
%(bw2w)s %(bw2h)s l
%(_2bw)s %(bw2h)s l
%(_2bw)s %(_2bw)s l
f
%(bbs1)s
%(bww)s %(bwh)s m
%(bww)s %(borderWidth)s l
%(borderWidth)s %(borderWidth)s l
%(_2bw)s %(_2bw)s l
%(bw2w)s %(_2bw)s l
%(bw2w)s %(bw2h)s l
frJ   zD%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(width)s %(hbw)s l srÌ   rG   z
[%s ] 0 d
z[] 0 dz
%s wz>%(streamStroke)s
%(dash)s
%(hbw)s %(hbw)s %(bww)s %(bwh)s re
sr!   rÙ   z5/Tx BMC 
q
%(_2bw)s %(_2bw)s %(w4bw)s %(h4bw)s re
W
nr  Úlistboxr   z(%%(_2bw)s %s %%(w4bw)s %%(leading)s re
fz0 g
0 G
%(undash)sÚBTz/%(iFontName)s %(fontSize)s Tfz%(textFill)sz%%(_4bw)s %s Td
(%s) TjÚETz.BT
/%(iFontName)s %(fontSize)s Tf
%(textFill)sz1 0 0 1 %%(_4bw)s %s Tmr³   z(%s) Tj
0 %s TdéÿÿÿÿzQ
EMC
rÚ   rÛ   rÜ   z/<< /ProcSet [/PDF /Text] /Font %(rFontName)s >>rÝ   )rß   r   rÄ   rÆ   r   r]   r
  r€   r9  r\   r^   Úrfindr‡   rä   rZ   rå   rb   )-re   ræ   rç   r  Ú	rFontNameÚfontSizeré   rê   rë   rì   rR   rS   r<  r=  rT   ÚwkindÚlabelsrD   Úsel_bgÚsel_fgÚ_streamrí   rï   rñ   rô   ÚbwwÚbwhÚundashÚbw2wÚbw2hrö   r÷   rð   ró   Ú_4bwÚw4bwÚh4bwÚtextFillÚleadingÚnoptsÚi0Úir;  ÚilimÚlinerV   rV   rW   ÚtxAPŠ  sÖ   
€



€


û


ø€
 þzAcroForm.txAPc                 C   sb   |d u rd}|| j vrtd| ƒ‚| j | }|  td||| jf ƒ¡}|| jvr-|| j|< ||fS )Nr—   z7form font name, %r, is not one of the standard 14 fontszF<< /BaseFont /%s /Subtype /Type1 /Name /%s /Type /Font /Encoding %s >>)ÚformFontNamesrc   r  rb   r·   r�   )re   ÚfontNameÚfnr›   rV   rV   rW   ÚmakeFont  s   


ÿ

zAcroForm.makeFontro   éd   c           .      C   s¶  |   |¡\}}|d up|d up|d u}|d u rd}|  ||||¡\}}}}| j}|r3| j |	|
¡\}	}
|j}d||f }t|tƒ}|dk�r:d}|dkrR|td O }g }g }g } g }!g }"t|tt	fƒskt
d||f ƒ‚|D ]H}#t|#ƒr}| t|#ƒ¡ |#}$n.t|#tt	fƒr£t|#ƒdkr‘|#d	  }#}$n|#\}$}#| tt|#ƒt|$ƒgƒ¡ nt
d
||#f ƒ‚|  |#¡ |" |$¡ qmt|ƒ}|�r5t|tt	fƒsÇ|g}|D ]*}#|#| vrä|#|"vrÝtd||#| |"f ƒ‚| |" |#¡ }#|! |  |#¡¡ | t|#ƒ¡ qÉ|! ¡  |td @ �rt|ƒdk�r|dk�r|"|!d	  }n|d d… }|d d… }t|ƒdk�r)|d	 nt|ƒ}t|"|!|d�}%nt|ƒ}ng  }!}i }%d}t|ƒ�sMt
d| ƒ‚t|ƒ}i } dD ]A}&|  |&|||¡\}'}(})| j|&||||f|)|(|'|||||dœ|%¤Ž}*|*j| jv �r†| j|*j }+n|  |*¡}+|+| j|*j< |+| |&< �qUtt|ƒ| ¡ ||t|	|
|	| |
| fƒt| ƒtdƒtdƒt|tƒ|d�
}"|�rÖt|ƒ�rÉ|  |¡nd},td|||,f ƒ|"d< |�rÝ||"d< |!�ræt|!ƒ|"d< |�rí||"d< |�röt|ƒ|"d< |�s dt| jƒ }t|ƒ|"d< i }-|d u�rt|   |¡ƒ|-d< |�r/t!|||ƒ|"d< |d u�r/t|   |¡ƒ|-d < |-�r8t|-ƒ|"d!< t|"ƒ}"| j "|"¡ | j |  |"¡¡ |  #|	|
|||d"||||¡
 d S )#Né   z
<</%s %s>>rv  ÚChÚchoicer-   z%s options=%r is wrong typer   r   z%s option %r is wrong typez3%s value %r is not in option
values %r
or labels %rr0   )r  rD   r~  ÚTxz textfield value=%r is wrong typer,  )rê   rë   rì   rR   rS   r<  r=  rT   rE  rF  )
r   rG  rv   ÚDVrI  rJ  rK  rL  rº   rs   rÙ   z/%s %d Tf %sr²   ÚOptrD   ÚMaxLenrq   rM  ru   rS  rN  rR  rT  rÈ   )$r–  r+  r¤   rU  r  ra   rr   rO   rP   rQ   Ú	TypeErrorr   rß   r   r€   r   rc   Úindexr/   rM   r0  r’  rV  r    r­   r   rW  r   rX  r   rÄ   rž   r¿   rX   rY  r@  ).re   rç   rê   rë   rì   rR   rS   r<  r=  r`   r;  rx   rw   r[  ry   r>  r\  Úmaxlenr”  r}  r~  ÚoptionsrT   r|  r  Ú	_write_dar¤   r�   rs   r   rv   r�  rJ  rD   ÚTFr_   ÚlÚlbextrasræ   r_  r`  ra  rb  r›   Úda_colorrT  rV   rV   rW   Ú
_textfield  sö   





ûóò
õ

 zAcroForm._textfieldc                 C   sŠ   | j di d|“d|“d|“d|“d|“d|“d|“d|“d	|	“d
|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“dd“ŽS )Nrç   rê   rë   rì   rR   rS   r<  r=  r`   r;  rx   rw   r[  ry   r>  r\  r¡  r”  r}  rT   r~  rv  rV   ©r¨  )re   rç   rê   rë   rì   rR   rS   r<  r=  r`   r;  rx   rw   r[  ry   r>  r\  r¡  r”  r}  rT   rV   rV   rW   rv  Æ  sV   
ÿþýüûúùø	÷
öõôóòñðïîíìëzAcroForm.textfieldc                 C   ó�   | j di d|“d|“d|“d|“d|“d|“d|“d|“d	|	“d
|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“dd“d|“ŽS )Nrç   rê   rë   rì   rR   rS   r<  r=  r`   r;  rx   rw   r[  ry   r>  r\  r¡  r”  r}  rT   r~  rw  r¢  rV   r©  ©re   rç   rê   rë   rì   rR   rS   r<  r=  r`   r;  rx   rw   r[  ry   r>  r\  r”  r}  rT   r¡  r¢  rV   rV   rW   rw  ô  óZ   
ÿþýüûúùø	÷
öõôóòñðïîíìëêzAcroForm.listboxr-   c                 C   rª  )Nrç   rê   rë   rì   rR   rS   r<  r=  r`   r;  rx   rw   r[  ry   r>  r\  r¡  r”  r}  rT   r~  rš  r¢  rV   r©  r«  rV   rV   rW   rš  #  r¬  zAcroForm.choicec                 K   ó   d|d< | j di |¤Ž dS )zSsame as checkbox except the x and y are relative to the canvas coordinate transformTr\  NrV   )rd  ©re   r¥   rV   rV   rW   ÚcheckboxRelativeS  ó   zAcroForm.checkboxRelativec                 K   r­  )zPsame as radio except the x and y are relative to the canvas coordinate transformTr\  NrV   )r#   r®  rV   rV   rW   ÚradioRelativeX  r°  zAcroForm.radioRelativec                 K   r­  ©zTsame as textfield except the x and y are relative to the canvas coordinate transformTr\  NrV   ©rv  r®  rV   rV   rW   ÚtextfieldRelative]  r°  zAcroForm.textfieldRelativec                 K   r­  r²  r³  r®  rV   rV   rW   ÚlistboxRelativeb  r°  zAcroForm.listboxRelativec                 K   r­  r²  r³  r®  rV   rV   rW   ÚchoiceRelativef  r°  zAcroForm.choiceRelativec                 C   s   | j stdƒ| _ |  | j ¡S )Na  <</Type /Encoding /Differences [24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek /ring /tilde 39 /quotesingle 96 /grave 128 /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin /fraction /guilsinglleft /guilsinglright /minus /perthousand /quotedblbase /quotedblleft /quotedblright /quoteleft /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE /Scaron /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron /zcaron 160 /Euro 164 /currency 166 /brokenbar 168 /dieresis /copyright /ordfeminine 172 /logicalnot /.notdef /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu 183 /periodcentered /cedilla /onesuperior /ordmasculine 188 /onequarter /onehalf /threequarters 192 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis]>>)r¡   rb   r  r§   rV   rV   rW   r·   k  s   
zAcroForm.encRefStr)	rÇ   rÈ   NNNNrF   rÉ   rL   )r   F)+rk   rl   rm   r“  rf   Úpropertyr¨   r¤   r«   ri   r¿   rÄ   rÆ   rÿ   ÚstaticmethodrÏ   r  r­   r  rM   r   r   r  r$  r+  r0  r@  r¦   rd  r#   rå   r’  r–  r¨  rv  rw  rš  r¯  r±  r´  rµ  r¶  r·   rV   rV   rV   rW   r   Œ   sœ   ô



õn


ù


îT
íc
í 	
ê *
ì/
ë0
ë0r   c                   @   s,   e Zd Zd ¡ ZdZd
dd„Zddd„Zd	S )ÚCBMarkzm l c h)r   r   rL   r   çš™™™™™©?c                 C   s*   || _ |\| _| _| _| _|| _|| _d S rg   )ÚopsÚxminÚyminÚxmaxÚymaxÚpointsÚslack)re   r»  rÀ  ÚboundsrÁ  rV   rV   rW   rf   u  s   
zCBMark.__init__r   c                    sP  |d|   }}| j ‰| j‰| jˆ }| jˆ }| jt||ƒ }|d|  t|ƒ ‰|d|  t|ƒ ‰tˆˆƒ ‰‰|ˆ9 }|ˆ9 }||| d  ‰ ||| d  ‰‡ ‡‡fdd„}‡‡‡fdd„}	| j}
| j}g j	}d}| j
}| jD ])}|| }t|ƒD ]}|||| ƒƒ ||	||d  ƒƒ |d7 }q~||
| ƒ qt|dƒ d	 |j¡S )
a¾  
        >>> print(cbmarks['check'].scaledRender(20))
        12.97075 14.68802 m 15.00139 17.16992 l 15.9039 18.1727 17.93454 18.67409 19.2883 18.67409 c 19.46379 18.27298 l 17.13231 15.51532 l 11.91783 8.62117 l 8.307799 3.030641 l 7.430362 1.526462 l 7.305014 1.275766 7.154596 .97493 6.9039 .824513 c 6.577994 .674095 5.825905 .674095 5.47493 .674095 c 4.672702 .674095 4.497214 .674095 4.321727 .799443 c 4.071031 .97493 3.945682 1.325905 3.770195 1.67688 c 3.218663 2.830084 2.240947 5.337047 2.240947 6.590529 c 2.240947 7.016713 2.491643 7.21727 2.817549 7.442897 c 3.344011 7.818942 4.0961 8.245125 4.747911 8.245125 c 5.249304 8.245125 5.299443 7.818942 5.449861 7.417827 c 5.951253 6.239554 l 6.026462 6.038997 6.252089 5.337047 6.527855 5.337047 c 6.778552 5.337047 7.079387 5.913649 7.179666 6.089136 c 12.97075 14.68802 l h f
        >>> print(cbmarks['cross'].scaledRender(20))
        19.9104 17.43931 m 12.41908 10 l 19.9104 2.534682 l 18.37572 1 l 10.9104 8.491329 l 3.445087 1 l 1.910405 2.534682 l 9.427746 10 l 1.910405 17.46532 l 3.445087 19 l 10.9104 11.50867 l 18.37572 19 l 19.9104 17.43931 l h f
        >>> print(cbmarks['circle'].scaledRender(20))
        1.872576 9.663435 m 1.872576 14.64958 5.936288 18.61357 10.89751 18.61357 c 15.8338 18.61357 19.87258 14.59972 19.87258 9.663435 c 19.87258 4.727147 15.8338 .688366 10.89751 .688366 c 5.936288 .688366 1.872576 4.677285 1.872576 9.663435 c h f
        >>> print(cbmarks['star'].scaledRender(20))
        10.85542 18.3253 m 12.90361 11.84337 l 19.84337 11.84337 l 14.25301 7.650602 l 16.42169 1 l 10.85542 5.096386 l 5.289157 1 l 7.481928 7.650602 l 1.843373 11.84337 l 8.759036 11.84337 l 10.85542 18.3253 l h f
        >>> print(cbmarks['diamond'].scaledRender(20))
        17.43533 9.662031 m 15.63282 7.484006 l 10.85118 .649513 l 8.422809 4.329624 l 5.919332 7.659249 l 4.267038 9.662031 l 6.16968 12.0153 l 10.85118 18.64951 l 12.75382 15.4701 15.00695 12.49096 17.43533 9.662031 c h f
        r   rË   c                    ó   t | ˆ ˆ ˆ  ƒS rg   r   ©r_   )r  Úsxr¼  rV   rW   rÔ   –  rÕ   z%CBMark.scaledRender.<locals>.<lambda>c                    rÃ  rg   r   rÄ  )r  Úsyr½  rV   rW   rÔ   —  rÕ   r   r   rª   rÛ   )r¼  r½  r¾  r¿  rÁ  r9  r
  ÚopNamesÚopCountrß   rÀ  r»  Úranger‡   rã   )re   rÓ   rî   rK   r  r  ÚhrÁ  ÚxscÚyscrÇ  rÈ  ÚCr�  rÀ  Úopr¾   r  rV   )r  r  rÅ  rÆ  r¼  r½  rW   râ   {  s:   



zCBMark.scaledRenderN)rº  )r   )rk   rl   rm   r^   rÇ  rÈ  rf   râ   rV   rV   rV   rW   r¹  q  s
    
r¹  )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rL   )TéÎ  é"  i  i…  éC  i­  i”  éÁ  iÊ  rÒ  éÑ  i±  it  rÑ  i¤  i0  i  éQ   éñ   é   éì   é   éæ   rz  éÜ   iùÿÿÿéÏ   éóÿÿÿé±   rÜ  é£   rÜ  éƒ   rÜ  é|   rÜ  éu   iøÿÿÿék   rz  éf   é   é_   é   éI   rç  é"   é­   rè  éß   rè  éð   é,   éø   é9   i  éN   é  él   é!  é†   rò  éš   rò  éœ   rð  é¢   r7   é¶   éÑ   é¹   éÉ   éÂ   ré  éÍ   ré  é×   ré  éã   éÄ   éç   éË   rÏ  rÐ  )rè  iôÿÿÿrÓ  iÂ  )r   r   r   r   r   r   r   r   r   r   r   r   r   rL   )é×  éx  i·  éZ  r  é;   éœ  r   é}  i   é^   r   é#   r  iD  r  r	  iy  r  é´  r  i”  r  r
  r  r  )r	  r   r  r
  )r   r   r   r   r   rL   )r	  r  r	  rÐ  éÆ   rÒ  é�  rÒ  éS  rÒ  éõ  i   r  r  r  é”   r  éòÿÿÿr  r  r  r  r	  é’   r	  r  )r	  r  r  rÒ  )r   r   r   r   r   r   r   r   r   r   r   rL   )é™  rÒ  iî  é´  é  r  i&  é  i€  r  r  rõ  é²   r  i  r  r	  r  iB  r  r  rÒ  )r	  r  r  rÒ  )
r   r   r   r   r   r   r   r   r   rL   )é0  r  iè  i  é)  r  éÈ   é…   r—  i
  rè  r  én   i¸  r  rÒ  iu  iB  iÏ  iË  r  r  )rè  r  r  rÒ  )rA  ÚcrossrÇ   ÚstarÚdiamondÚ4Ú5r¥  r,  ÚuÚ__main__rV   )/Ú__all__Úreportlab.pdfbase.pdfdocr   r   r   r   r   r   r	   r
   r   Úreportlab.pdfbase.pdfmetricsr   Úreportlab.lib.colorsr   r   r   r   r   Úreportlab.lib.rl_accelr   Úreportlab.lib.utilsr   r   rš   Úobjectr¦   rM   ÚvisibilitiesÚorientationsrr   rX  rN   rX   r\   ra   rb   rn   r„   Ú_NotSetr   r¹  rà   r	  rk   ÚdoctestÚtestmodrV   rV   rV   rW   Ú<module>   sú    ,üüÿþýüûúù	÷
öõôóòñîíìëê÷û
	       l7ýýýýýë
þ