o
    <­ÔZ²  ã                   @   sZ  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 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mZ dd	lZeddddd
�Zg g g g dœZedfi 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/d0“ŽZ eddd1d2d3d4d5d6d7d8�	Z!de!d9< ed:d;d<d=d>d?�Z"d@dA„ Z#dBdC„ Z$e!fdDdE„Z%G dFdG„ dGeƒZ&G dHdI„ dIeƒZ'dJdK„ Z(G dLdM„ dMeƒZ)G dNdO„ dOƒZ*ee*g dP¢g dQ¢dRƒe*g dS¢g dT¢dUƒe*g dV¢g dW¢dXƒe*g dY¢g dZ¢d[ƒe*g d\¢g d]¢d^ƒd_�Z+ed`dadbdcddd_�Z,e-dek�r+dd	l.Z.e. /¡  d	S d	S )g)ÚAcroFormé    )	Ú	PDFObjectÚPDFArrayÚPDFDictionaryÚ	PDFStringÚ	pdfdocEncÚPDFNameÚ	PDFStreamÚPDFStreamFilterZCompressÚ	escapePDF)ÚCanvas)ÚstringWidth)ÚColorÚ	CMYKColorÚWhiterÚBlackerÚopaqueColor©Úfp_str)ÚisStrÚasNative)ÚxrangeN)Ú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)ÚWrC   rI   é   rD   )Údictr   Ú	_bsStylesÚ
isinstanceÚlistÚtupler   r   )ÚborderWidthÚborderStyleÚdashLenÚd© rX   úL/var/www/html/env/lib/python3.10/site-packages/reportlab/pdfbase/acroform.pyÚbsPDFH   s   rZ   c                 C   s   t | ƒ dd¡S )Nú%z\045)r   Úreplace)ÚsrX   rX   rY   ÚescPDFR   s   r^   c                 C   s0   t | tƒs| }d} | ¡ D ]}| || O } q| S )Nr   )rQ   ÚintÚsplit)r]   rW   ÚvÚxrX   rX   rY   Ú	makeFlagsU   s   
rc   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]   rX   rX   rY   Ú__init__^   s   
zPDFFromString.__init__c                 C   s
   t | jƒS ©N)r   rf   )rg   ÚdocumentrX   rX   rY   Úformatc   s   
zPDFFromString.formatN©Ú__name__Ú
__module__Ú__qualname__rh   rk   rX   rX   rX   rY   rd   ]   s    rd   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)re   ÚTUrc   ÚfieldFlagValuesÚFfÚkidsÚTÚV)rg   ÚnameÚtooltipÚ
fieldFlagsrX   rX   rY   rh   g   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 rX   rX   )Ú.0ÚkrX   rX   rY   Ú
<listcomp>w   s    z%RadioGroup.format.<locals>.<listcomp>ÚBtn)ru   ÚKidsÚFTrw   rx   rs   )rv   Úlenre   rw   rO   ru   r   r   r   rx   rs   r   rk   )rg   Údocrv   rW   ÚrrX   rX   rY   rk   p   s   üzRadioGroup.formatN)rq   rr   rl   rX   rX   rX   rY   rp   f   s    
	rp   c                 C   s<   t | tƒrdd dd„ | jD ƒ¡ S t | tƒr| jS t| ƒS )Nz[%s]rq   c                 s   s   � | ]}t |ƒV  qd S ri   ©Ú_pdfObjToStr)r|   ÚerX   rX   rY   Ú	<genexpr>„   s   € z_pdfObjToStr.<locals>.<genexpr>)rQ   r   ÚjoinÚsequencerd   rf   Ústr)ÚobjrX   rX   rY   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dd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Z							 	!	"d`d#d$„Zedad'd(„ƒZd)d*„ Zd+d,„ Zd-d.„ Zed/d0„ ƒZed1d2„ ƒZd3d4„ Z	&	5						 	!	6	6			7	8	&	&	"dbd9d:„Z		&							 	!	6	6			7	;	&	&	"dcd<d=„Zd>d?„ Zdddddd d@dAd"dBg g dCdDfdEdF„ZdGdH„ Z	I					 	@	A	6	6			7	I	&	&	J					"dddKdL„Z	I					 	@	A	6	6			7	I	&	&	J			"dedMdN„ZdIddddd d@dAd6d6ddd7dId&d&ddd"dg fdOdP„ZdIddddd d@dAd6d6ddd7dQd&d&ddd"dg fdRdS„ZdTdU„ ZdVdW„ ZdXdY„ Z dZd[„ Z!d\d]„ Z"ed^d_„ ƒZ#dS )fr   Ú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   s4   i | _ t |¡| _i | _g | _i | _i | _i | _d S ri   )	ÚreferenceMapÚweakrefÚrefÚ_canvÚfontsÚfieldsÚ_radiosÚ_refMapÚ
_pdfdocenc)rg   ÚcanvÚkwdsrX   rX   rY   rh   ˜   s   
zAcroForm.__init__c                 C   s$   |   ¡ }|d u rtd| jj ƒ‚|S )Nz%s.canv is no longer available)rž   re   Ú	__class__rm   )rg   rž   rX   rX   rY   r¤   ¡   s   zAcroForm.canvc                 C   s   d|| j | f S )Nz/Font << /%s %s >>)rŸ   )rg   ÚfrX   rX   rY   ÚfontRef¨   s   zAcroForm.fontRefc                    sŠ   t t‡ fdd„ˆ jD ƒƒd�}ˆ jr<ttˆ j ¡ ƒƒ}‡ fdd„|D ƒ}td|d  ƒ|d< tdˆ j	d	 
|¡f ƒ|d
< t|ƒ |¡}|S )Nc                    ó   g | ]}ˆ   |¡‘qS rX   )ÚgetRef©r|   r§   ©rg   rX   rY   r~   ­   ó    z#AcroForm.format.<locals>.<listcomp>)ÚFieldsc                    r©   rX   )r¨   r«   r¬   rX   rY   r~   ±   r­   z/%s 0 Tf 0 gr   ÚDAz)<< /Encoding
<<
/RLAFencoding
%s
>>
%s
>>Ú
ÚDR)rO   r   r    rŸ   rR   ÚsortedÚkeysr   rd   Ú	encRefStrr‰   r   rk   )rg   rƒ   rW   ÚFKÚFr„   rX   r¬   rY   rk   «   s   ÿzAcroForm.formatc                 C   s0   |d u s	|j dkrdS t|tƒr| ¡ S | ¡ S )Nr   rX   )ÚalpharQ   r   ÚcmykÚrgb)rg   ÚcrX   rX   rY   Ú
colorTuple·   s   zAcroForm.colorTuplec                 C   ó(   |   |¡}t|Ž t|ƒdkrd S d S )Nr#   z kz rg©r»   r   r‚   ©rg   rº   ÚtrX   rX   rY   ÚstreamFillColorÁ   ó   
zAcroForm.streamFillColorc                 C   r¼   )Nr#   z Kz RGr½   r¾   rX   rX   rY   ÚstreamStrokeColorÅ   rÁ   zAcroForm.streamStrokeColorÚcircleÚsquareNr   rH   é   rN   c                    s2  g j }ˆ}|dkrx|dƒ ˆ  |¡}|dƒ |d krsˆ  |¡}|d }ˆ| }|}|	dkr2|dƒ n|	dv rG|	dkrAd	t|ƒ }nd
}|dƒ |	dv rsd| }ˆ| }|}t|dƒ}|}|dkre||}}ˆ  |¡}ˆ  |¡}|dƒ |dƒ nÂ|dk�r:‡ ‡fdd„}ˆd }ˆ  |¡}|dƒ |||ƒƒ |dƒ |dƒ |d k�r:|dƒ ˆ  |¡}|d }ˆ| }|	dkr¾|dƒ n|	dv rÛ|	dkrÉd}nd
}|dƒ |||| ƒƒ |dƒ |dƒ |	dv �r:d| }ˆ| }t|dƒ}t|dƒ}d}d}|	dk�r||}}|dk�r||}}ˆ  |¡}ˆ  |¡}|dƒ |||| d|d �ƒ |d!ƒ |||| d|d �ƒ |d"ƒ |d#k�r}ˆ  |¡}ˆ  |¡}|d$ƒ t| }|dk�ro|dk�ro||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ç      à?rL   zC%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(size)s %(hbw)s l s©rI   rK   rJ   rH   rI   z
 [%s ] 0 drq   zQ%(streamStroke)s%(dash)s %(borderWidth)s w %(hbw)s %(hbw)s %(smbw)s %(smbw)s re s©rJ   rK   r!   rD   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 ri   )ÚcircleArcStream)Ú_rÚ_casKwds©rg   ÚsizerX   rY   Ú<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]   rN   )r   r   )r!   rN   rK   zq %(bbs0)s %(borderWidth)s wT)ÚrotatedÚarcszS Q %(bbs1)s qzS QÚYesz'q %(textFillColor)s %(textStrokeColor)sr   r°   ú  ú ú

z<< /ProcSet [/PDF] >>©Ú	Resources)ÚappendrÀ   rÂ   r   r   r   ÚcbmarksÚmaxÚscaledRenderr‰   Ú__self__Úvarsr\   Ú
makeStreamrd   )rg   ÚkeyÚvalueÚbuttonStyleÚshapeÚ	fillColorÚborderColorÚ	textColorrT   rU   rÏ   rV   ÚstreamÚdsÚ
streamFillÚstreamStrokeÚhbwÚsmbwÚdashÚ_2bwÚsm2bwÚbbs0Úbbs1Úcasr„   Ú_3bwhÚa0Úa1ÚtextFillColorÚtextStrokeColorÚcbmrX   rÎ   rY   Ú
checkboxAPÉ   s¬   

























"þzAcroForm.checkboxAP©r   r   r!   rN   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 crN   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ÚmxrX   rX   rY   rË   1  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ß   )rg   rº   rÏ   ré   Ú	iFontNamerM   ÚHÚfsÚwÚdxÚdyrX   rX   rY   ÚzdMarkM  s   
zAcroForm.zdMarkc                 C   s   | j j |¡S ri   )r¤   Ú_docÚ	Reference©rg   rŒ   rX   rX   rY   rª   Y  s   zAcroForm.getRefc                 C   s   t |  |¡ | jj¡ƒS ri   )r   rª   rk   r¤   r  r  rX   rX   rY   Ú	getRefStr\  s   zAcroForm.getRefStrc                 C   s€   t |tƒst | tƒst |tƒr)| ptddddƒ|ptddddƒ|p'tddddƒfS | p0tdddƒ|p7tdddƒ|p>tdddƒfS )	Nr   çÍÌÌÌÌÌì?g¸…ëQ¸¾?gj¼t“Ä?gš™™™™™¹?gš™™™™™é?g`åÐ"Ûùê?r   )rQ   r   r   )r¿   Úbr§   rX   rX   rY   Ú	stdColors_  s   4.zAcroForm.stdColorsc                    s@   | dkr| dkr
t nt‰ ‡ fdd„|||fD ƒ\}}}|||fS )NÚNrý   c                    s   g | ]}ˆ |d ƒ‘qS )r  rX   )r|   rº   ©ÚfuncrX   rY   r~   j  r­   z'AcroForm.varyColors.<locals>.<listcomp>)r   r   )rá   r¿   r  r§   rX   r  rY   Ú
varyColorsf  s   
zAcroForm.varyColorsc                 C   sØ   |rj| j }| ¡  | ¡  |d kr"d| }| |¡ | |	¡ d}nd }}|d| 8 }|d| 8 }||7 }||7 }| |
¡ |dkrO|j|||||dd� nt||ƒd }|j|| || ||dd� | 	¡  d S d S )NrÇ   r   r   r!   rÄ   )ÚstrokeÚfill)
r¤   Ú	saveStateÚresetTransformsÚsetLineWidthÚsetStrokeColorÚsetFillColorÚrectÚminrÃ   ÚrestoreState)rg   rb   ÚyÚwidthÚheightÚforceBorderrä   rU   rT   ræ   rå   r¤   rì   r]   r„   rX   rX   rY   ÚcheckForceBorderm  s*   


ëzAcroForm.checkForceBorderÚcheckr   rB   r    c           !      C   sö  |rdnd}|   |||¡\}}}| j}|r| j |
|¡\}
}|j}i }dD ]G}i }|  ||||¡\}}}dD ].}| j||||||||||	|d�}|j| jv rU| j|j }n|  |¡}|| j|j< |||< q6t	|ƒ||< ~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|  t|  |¡ƒt|  |¡ƒd�} t	| ƒ|d< t	|ƒ}| j |¡ | j |  |¡¡ |  |
||	|	||||||¡
 d S )NrÔ   ÚOffÚNDR)rÔ   r(  ©	rã   rä   rå   ræ   rç   rT   rU   rÏ   rV   r   ÚWidgetÚAnnotr  )r�   ÚPrx   ÚASÚRectÚAPÚSubtypeÚTyper¶   ru   r  rs   úAFF%03dÚBSrw   ú(%s)©ÚCAÚBCÚBGÚMK)r  r¤   ÚabsolutePositionr  r  rú   Ú
_af_refstrr¢   rª   r   rO   r   ÚthisPageRefr   rc   ÚannotationFlagValuesrt   r   r‚   r    rZ   r  r»   Ú_addAnnotationrÚ   r&  )!rg   Úcheckedrã   rä   rå   ræ   rç   rT   rU   rÏ   rb   r"  rz   ry   ÚannotationFlagsr{   r%  ÚrelativerV   ÚinitialValuer¤   rƒ   r0  rá   ÚAPVÚtCÚbCÚfCrâ   Úapr�   ÚCBr:  rX   rX   rY   Úcheckbox…  sx   õ

ô
ý zAcroForm.checkboxrr   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rl|jd uri|j|krht	d|||jf ƒ‚n||_| j}|rz| 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|  t|  |¡ƒt|  |¡ƒd�}"|�rt||	|ƒ|!d< t|"ƒ|!d< t|!ƒ}!| j |!¡ |j |  |!¡¡ |  |||
|
|||	|||¡
 d S )N)rz   r{   z(radio.%s.%s created with different flagszbad value %r for radio.%sr(  z2radio.%s.%s sets initial value conflicting with %sr)  rÔ   r*  r   r+  r,  r  )
r�   r-  r.  r/  r0  r1  r2  r¶   ÚParentr  r5  r6  r4  r:  )r¡   rp   rª   Ú_refr    rÚ   rc   rt   ru   re   r  rx   r¤   r;  r  r  rú   r<  r¢   r   rO   r   r=  r   r>  r  r»   rZ   r?  rv   r&  )#rg   râ   Úselectedrã   rä   rå   ræ   rç   rT   rU   rÏ   rb   r"  rz   ry   rA  r{   r%  rB  rV   ÚgrouprC  r¤   rƒ   r0  rá   rD  rE  rF  rG  ra   rH  r�   ÚRBr:  rX   rX   rY   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)ç      ð?ç        rQ  rP  rQ  rQ  ÚMatrixr   ÚBBoxÚFormr1  ÚXObjectr2  r   ÚFormType)Úfiltersr°   c                 s   s$   � | ]\}}d |t |ƒf V  qdS )z%s=%rNr…   )r|   r}   ra   rX   rX   rY   rˆ   M  s   €" z&AcroForm.makeStream.<locals>.<genexpr>)r   r   r	   r   r¤   r  Úcompressionr
   r‰   r²   Úitemsr<  )rg   r#  r$  rè   rD   r]   rX   rX   rY   rà   ;  s   ý"zAcroForm.makeStreaméx   é$   Ú	textfieldz0.600006 0.756866 0.854904 rgz0 gc           ,      C   s¢  g j }t|ƒr|  |¡}|dƒ |
d krQ|
dkrQt|ƒrQ|
d }||
 }||
 }d|
 }|dv rP|| }|| }|dkrHd}|sB|rEd}nd	}nd
}d	}|dƒ n
d } }}
|}|}d}t|ƒrŠ|
rŠ|  |¡}|dkrq|dƒ n|dv rŠ|dkr‚dt|ƒ } d}nd|
 } |dƒ d|
 }!||! }"||! }#|  |	¡}$|dƒ d| }%|dk�r�t|#|% ƒ}&|#t|&ƒ }%|&t|ƒkrÁd}'t|ƒ}&n1t|ƒ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|)|'|& ƒ}*|�r8|'}(|| |% })||ƒ |(|*k �r8|(|v �r+|dt|)ƒ ƒ |)|%8 })|(d7 }(|(|*k �s|'}(|| | })|dƒ |(|*k �r€|dƒ |(|'k�rV|dƒ ||(|v �r^|ndƒ |dt|)ƒt	||( ƒf ƒ |)|%8 })|(d7 }(|d ƒ |(|*k �sIn)|dƒ || | })|d!ƒ | 
d"¡D ]}+|d|)t	|+ƒf ƒ |)|%8 })�q”|d ƒ t|%ƒ}%|d#ƒ d" |j¡tƒ   d$d%¡ d&d"¡}| j|||td'tƒ  ƒd(�S ))Nz,%(streamFill)s
0 0 %(width)s %(height)s re
fr   rÇ   r!   rÉ   rJ   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
frq   rL   zD%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(width)s %(hbw)s l srÈ   rI   z
[%s ] 0 d
z[] 0 dz
%s wz>%(streamStroke)s
%(dash)s
%(hbw)s %(hbw)s %(bww)s %(bwh)s re
sr#   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)sr°   zQ
EMC
rÕ   rÖ   r×   z/<< /ProcSet [/PDF /Text] /Font %(rFontName)s >>rØ   )rÚ   r   rÀ   rÂ   r   r_   r  r‚   r   r^   r`   r‰   rÞ   rß   r\   rà   rd   ),rg   rá   râ   r  Ú	rFontNameÚfontSizerä   rå   ræ   rç   rT   rU   r#  r$  rV   ÚwkindÚlabelsrF   Úsel_bgÚsel_fgrè   rê   rì   ÚbwwÚbwhrï   Úbw2wÚbw2hrñ   rò   Úundashrë   rî   Ú_4bwÚw4bwÚh4bwÚtextFillÚleadingÚnoptsÚi0Úir"  ÚilimÚlinerX   rX   rY   ÚtxAPP  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 >>)ÚformFontNamesre   r  rd   r´   rŸ   )rg   ÚfontNameÚfnr�   rX   rX   rY   ÚmakeFontÏ  s   


ÿ

zAcroForm.makeFontrq   éd   c           ,      C   s^  |   |¡\}}|d u rd}|  |||¡\}}}| j}|r%| j |	|
¡\}	}
|j}d||f }t|tƒ}|dk�r+d}|dkrD|td O }g }g }g }g } g }!t|tt	fƒs]t
d||f ƒ‚|D ]H}"t|"ƒro| t|"ƒ¡ |"}#n.t|"tt	fƒr•t|"ƒdkrƒ|"d	  }"}#n|"\}#}"| tt|"ƒt|#ƒgƒ¡ nt
d
||"f ƒ‚| |"¡ |! |#¡ q_t|ƒ}|�r&t|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|ƒ�s>t
d| ƒ‚t|ƒ}i }dD ]A}%|  |%|||¡\}&}'}(| j|%||||f|(|'|&|||||dœ|$¤Ž})|)j| jv �rw| j|)j }*n|  |)¡}*|*| j|)j< |*||%< �qFtt|ƒ| ¡ ||t|	|
|	| |
| fƒt|ƒtdƒtdƒt|tƒ|td|||  |¡f ƒd�}!|�r¿||!d< | �rÈt| ƒ|!d< |�rÏ||!d< |�rØt|ƒ|!d< |�sâdt| jƒ }t|ƒ|!d< tt|  |¡ƒd�}+|�rt |||ƒ|!d< t|  |¡ƒ|+d< t|+ƒ|!d< t|!ƒ}!| j !|!¡ | j |  |!¡¡ |  "|	|
|||d ||||¡
 d S )!Né   z
<</%s %s>>r\  Ú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 %rr2   )rc  rF   rb  ÚTxz textfield value=%r is wrong typer  )rå   ræ   rç   rT   rU   r#  r$  rV   r+  r,  z/%s %d Tf %s)r�   r-  rx   ÚDVr/  r0  r1  r2  r¶   ru   r¯   ÚOptrF   ÚMaxLenrs   r3  rw   )r9  r4  r8  r:  rÄ   )#ry  r  r¤   r;  r  rc   rt   rQ   rR   rS   Ú	TypeErrorr   rÚ   r   r‚   r   re   Úindexr1   rO   r  ru  r<  r¢   rª   r   r=  r   r>  rÀ   r    r»   rZ   r?  r&  ),rg   râ   rå   ræ   rç   rT   rU   r#  r$  rb   r"  rz   ry   rA  r{   r%  rB  Úmaxlenrw  ra  rb  ÚoptionsrV   r`  r  r¤   rƒ   ru   r�   rx   r€  r0  rF   ÚTFra   ÚlÚlbextrasrá   rE  rF  rG  rH  r�   r:  rX   rX   rY   Ú
_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ç   rT   rU   r#  r$  rb   r"  rz   ry   rA  r{   r%  rB  r„  rw  ra  rV   rb  r\  rX   ©r‰  )rg   râ   rå   ræ   rç   rT   rU   r#  r$  rb   r"  rz   ry   rA  r{   r%  rB  r„  rw  ra  rV   rX   rX   rY   r\  w  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ç   rT   rU   r#  r$  rb   r"  rz   ry   rA  r{   r%  rB  r„  rw  ra  rV   rb  r]  r…  rX   rŠ  ©rg   râ   rå   ræ   rç   rT   rU   r#  r$  rb   r"  rz   ry   rA  r{   r%  rB  rw  ra  rV   r„  r…  rX   rX   rY   r]  ¥  óZ   
ÿþýüûúùø	÷
öõôóòñðïîíìëêzAcroForm.listboxr/   c                 C   r‹  )Nrâ   rå   ræ   rç   rT   rU   r#  r$  rb   r"  rz   ry   rA  r{   r%  rB  r„  rw  ra  rV   rb  r}  r…  rX   rŠ  rŒ  rX   rX   rY   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 transformTrB  NrX   )rJ  ©rg   r¥   rX   rX   rY   ÚcheckboxRelative  ó   zAcroForm.checkboxRelativec                 K   rŽ  )zPsame as radio except the x and y are relative to the canvas coordinate transformTrB  NrX   )r%   r�  rX   rX   rY   ÚradioRelative	  r‘  zAcroForm.radioRelativec                 K   rŽ  ©zTsame as textfield except the x and y are relative to the canvas coordinate transformTrB  NrX   ©r\  r�  rX   rX   rY   ÚtextfieldRelative  r‘  zAcroForm.textfieldRelativec                 K   rŽ  r“  r”  r�  rX   rX   rY   ÚlistboxRelative  r‘  zAcroForm.listboxRelativec                 K   rŽ  r“  r”  r�  rX   rX   rY   ÚchoiceRelative  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£   rd   r  r¬   rX   rX   rY   r´     s   
zAcroForm.encRefStr)	rÃ   rÄ   NNNr   rH   rÅ   rN   )rû   F)Fr'  rÄ   NNNr   rH   rÅ   r   r   NNrB   r    FFrN   )NFrÃ   rÃ   NNNr   rH   rÅ   r   r   NNrB   rr   FFrN   )rq   NNNr   rH   rZ  r[  r   r   NNrB   rq   FFrz  NNNNrN   )rq   NNNr   rH   rZ  r[  r   r   NNrB   rq   FFrz  NNrN   )$rm   rn   ro   rv  rh   Úpropertyr¤   r¨   rk   r»   rÀ   rÂ   rú   ÚstaticmethodrË   r  rª   r  r  r  r&  rJ  r%   rà   ru  ry  r‰  r\  r]  r}  r�  r’  r•  r–  r—  r´   rX   rX   rX   rY   r   ‰   s„   ô	


õh


î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   rN   r   çš™™™™™©?c                 C   s*   || _ |\| _| _| _| _|| _|| _d S ri   )ÚopsÚxminÚyminÚxmaxÚymaxÚpointsÚslack)rg   rœ  r¡  Úboundsr¢  rX   rX   rY   rh   &  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 ri   r   ©ra   )r
  Úsxr�  rX   rY   rÐ   G  rÑ   z%CBMark.scaledRender.<locals>.<lambda>c                    r¤  ri   r   r¥  )r  Úsyrž  rX   rY   rÐ   H  rÑ   r   r   r§   rÖ   )r�  rž  rŸ  r   r¢  r   r  ÚopNamesÚopCountrÚ   r¡  rœ  r   r‰   rÞ   )rg   rÏ   ré   rM   r  r	  Úhr¢  ÚxscÚyscr¨  r©  ÚCrr  r¡  Úoprº   Ú_rX   )r
  r  r¦  r§  r�  rž  rY   rÝ   ,  s:   



zCBMark.scaledRenderN)r›  )r   )rm   rn   ro   r`   r¨  r©  rh   rÝ   rX   rX   rX   rY   rš  "  s
    
rš  )r   r   r!   r   r   r   r   r   r!   r!   r!   r!   r!   r!   r!   r!   r   r!   r!   r   rN   )TéÎ  é"  i  i…  éC  i­  i”  éÁ  iÊ  r³  éÑ  i±  it  r²  i¤  i0  i  éQ   éñ   é   éì   é   éæ   éÿÿÿÿéÜ   iùÿÿÿéÏ   éóÿÿÿé±   r¾  é£   r¾  éƒ   r¾  é|   r¾  éu   iøÿÿÿék   r»  éf   é   é_   é   éI   rÉ  é"   é­   rÊ  éß   rÊ  éð   é,   éø   é9   i  éN   é  él   é!  é†   rÔ  éš   rÔ  éœ   rÒ  é¢   r9   é¶   éÑ   é¹   éÉ   éÂ   rË  éÍ   rË  é×   rË  éã   éÄ   éç   éË   r°  r±  )rÊ  iôÿÿÿr´  iÂ  )r   r   r   r   r   r   r   r   r   r   r   r   r   rN   )é×  é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!   rN   )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   rN   )é™  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!   rN   )é0  ræ  iè  i  é)  rò  éÈ   é…   rz  i
  rÊ  ræ  én   i¸  rú  r³  iu  iB  iÏ  iË  rù  ræ  )rÊ  rò  rù  r³  )r'  ÚcrossrÃ   ÚstarÚdiamondÚ4Ú5r‡  r  ÚuÚ__main__rX   )0Ú__all__Úreportlab.pdfbase.pdfdocr   r   r   r   r   r   r	   r
   r   Úreportlab.pdfgen.canvasr   Úreportlab.pdfbase.pdfmetricsr   Úreportlab.lib.colorsr   r   r   r   r   Úreportlab.lib.rl_accelr   Úreportlab.lib.utilsr   r   Ú	reportlabr   rœ   rO   ÚvisibilitiesÚorientationsrt   r>  rP   rZ   r^   rc   rd   rp   r†   r   rš  rÛ   r  rm   ÚdoctestÚtestmodrX   rX   rX   rY   Ú<module>   sú    ,üüÿþýüûúù	÷
öõôóòñîíìëê÷û
	        7ýýýýýë
þ