o
    vh2                     @   sB  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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$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   X/var/www/html/hyperkenya/venv/lib/python3.10/site-packages/reportlab/pdfbase/acroform.pybsPDFG   s   rX   c                 C   s   t | ddS )N%z\045)r   replace)srV   rV   rW   escPDFQ   s   r\   c                 C   s0   t | ts| }d} | D ]}| || O } q| S )Nr   )rO   intsplit)r[   rU   vxrV   rV   rW   	makeFlagsT   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   formatb   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   f   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>v   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   o   s   zRadioGroup.formatN)ro   rp   rj   rV   rV   rV   rW   rn   e   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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   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$   |   }|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   re   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squareNr   rF      rL   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rd}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      ?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Yesz'q %(textFillColor)s %(textStrokeColor)sr   r      

z<< /ProcSet [/PDF] >>	Resources)appendr   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   4  s2   zAcroForm.circleArcStreamc                 C   s^   t | }||  }}|d }tt|d|}||kr ||| 9 }|d||   }	d}
dt  S )N333333?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   zdMarkP  s   
zAcroForm.zdMarkc                 C   s   | j j|S rg   )r   _doc	Referencere   r   rV   rV   rW   r   \  s   zAcroForm.getRefc                 C   s   t | || jjS rg   )r   r   ri   r   r  r  rV   rV   rW   	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jt?g?g?g`"?r   )rO   r   r   )r   br   rV   rV   rW   	stdColorsb  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  rV   )rz   r   funcrV   rW   r|   m  r   z'AcroForm.varyColors.<locals>.<listcomp>)r   r   )r   r   r  r   rV   r  rW   
varyColorsi  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)re   r`   ywidthheightforceBorderr   rS   rR   r   r   r   r   r[   r   rV   rV   rW   checkForceBorderp  s*   


zAcroForm.checkForceBordercheckr   r@   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
}|rt||d< |sdt| j }|rt||||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   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  r  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   r2  r   APVtCbCfCr   apr   CBr<  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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rdnd|||||||	|
|d}|j| jv r| j|j } n| |} | | j|j< | ||< qt|||< ~qt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)rx   ry   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/  r0  r1  r2  r3  r4  r   Parentr	  r7  r8  r6  r<  )r   rn   r   _refr   r   ra   rr   rs   rc   r  rv   r   r=  r  r  r   r>  r   r   rM   r   r?  r   r@  r  r   rX   rA  rt   r(  )#re   r   selectedr   r   r   r   r   rR   rS   r   r`   r$  rx   rw   rC  ry   r'  rD  rT   grouprE  r   r   r2  r   rF  rG  rH  rI  r_   rJ  r   RBr<  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)      ?        rS  rR  rS  rS  Matrixr   BBoxFormr3  XObjectr4  r   FormType)filtersr   c                 s   s$    | ]\}}d |t |f V  qdS )z%s=%rNr   )rz   r{   r_   rV   rV   rW   r   P  s   " z&AcroForm.makeStream.<locals>.<genexpr>)r   r   r	   r   r   r  compressionr
   r   r   itemsr>  )re   r%  r&  r   rB   r[   rV   rV   rW   r   >  s   "zAcroForm.makeStreamx   $   	textfieldz0.600006 0.756866 0.854904 rgz0 gc           -      C   s  g }|j }t|r| |}|d |
d krS|
dkrSt|rS|
d }||
 }||
 }d|
 }|dv rR|| }|| }|dkrJd}|sD|rGd}nd	}nd
}d	}|d n
d } }}
|}|}d}t|r|
r| |} |dkrs|d n|dv r|dkrdt| }!d}nd|
 }!|d d|
 }"||" }#||" }$| |	}%|d d| }&|dkrt|$|& }'|$t|' }&|'t|krd}(t|}'n1t|dkr|r|d nd}(|(r|(|'k rd}(nt||' })|(|)kr|)}(n|d |'k rd}(n|d }(t|}*|(|' })|)|*kr|)|* }(t|*|(|' }+|r:|(})|| |& }*|| |)|+k r:|)|v r-|dt|*  |*|&8 }*|)d7 })|)|+k s |(})|| | }*|d |)|+k r|d |)|(krX|d ||)|v r`|nd |dt|*t	||) f  |*|&8 }*|)d7 })|d  |)|+k sKn@|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   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
fro   rJ   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!   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 TdzQ
EMC
r   r   r   z/<< /ProcSet [/PDF /Text] /Font %(rFontName)s >>r   )r   r   r   r   r   r]   r  r   r"  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   bwwbwhr   bw2wbw2hr   r   undashr   r   _4bww4bwh4bwtextFillleadingnoptsi0ir$  ilimlinerV   rV   rW   txAPS  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 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rt|"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rtd||"||!f ||!|" }"| ||" |t|" q|   |td @ rt|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< | rt| |!d< |r||!d< |rt||!d< |sd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 %rr0   )rg  rD   rf  Txz textfield value=%r is wrong typer  )r   r   r   rR   rS   r%  r&  rT   r-  r.  z/%s %d Tf %s)r   r/  rv   DVr1  r2  r3  r4  r   rs   r   OptrD   MaxLenrq   r5  ru   )r;  r6  r:  r<  r   )#r~  r  r   r=  r  ra   rr   rO   rP   rQ   	TypeErrorr   r   r   r   r   rc   indexr/   rM   r  rz  r>  r   r   r   r?  r   r@  r   r   r   rX   rA  r(  ),re   r   r   r   r   rR   rS   r%  r&  r`   r$  rx   rw   rC  ry   r'  rD  maxlenr|  re  rf  optionsrT   rd  r  r   r   rs   r   rv   r  r2  rD   TFr_   llbextrasr   rG  rH  rI  rJ  r   r<  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   rC  ry   r'  rD  r  r|  re  rT   rf  r^  rV   r  )re   r   r   r   r   rR   rS   r%  r&  r`   r$  rx   rw   rC  ry   r'  rD  r  r|  re  rT   rV   rV   rW   r^  }  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   rC  ry   r'  rD  r  r|  re  rT   rf  r_  r  rV   r  re   r   r   r   r   rR   rS   r%  r&  r`   r$  rx   rw   rC  ry   r'  rD  r|  re  rT   r  r  rV   rV   rW   r_    Z   
	
zAcroForm.listboxr-   c                 C   r  )Nr   r   r   r   rR   rS   r%  r&  r`   r$  rx   rw   rC  ry   r'  rD  r  r|  re  rT   rf  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 transformTrD  NrV   )rL  re   r   rV   rV   rW   checkboxRelative
     zAcroForm.checkboxRelativec                 K   r  )zPsame as radio except the x and y are relative to the canvas coordinate transformTrD  NrV   )r#   r  rV   rV   rW   radioRelative  r  zAcroForm.radioRelativec                 K   r  zTsame as textfield except the x and y are relative to the canvas coordinate transformTrD  NrV   r^  r  rV   rV   rW   textfieldRelative  r  zAcroForm.textfieldRelativec                 K   r  r  r  r  rV   rV   rW   listboxRelative  r  zAcroForm.listboxRelativec                 K   r  r  r  r  rV   rV   rW   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   rb   r  r   rV   rV   rW   r   "  s   
zAcroForm.encRefStr)	r   r   NNNr   rF   r   rL   )r   F)Fr)  r   NNNr   rF   r   r   r   NNr@   r   FFrL   )NFr   r   NNNr   rF   r   r   r   NNr@   rp   FFrL   )ro   NNNr   rF   r\  r]  r   r   NNr@   ro   FFr  NNNNrL   )ro   NNNr   rF   r\  r]  r   r   NNr@   ro   FFr  NNrL   )$rk   rl   rm   r{  rf   propertyr   r   ri   r   r   r   r   staticmethodr   r  r   r  r  r  r(  rL  r#   r   rz  r~  r  r^  r_  r  r  r  r  r  r  r   rV   rV   rV   rW   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   rL   r   皙?c                 C   s*   || _ |\| _| _| _| _|| _|| _d S rg   )opsxminyminxmaxymaxpointsslack)re   r  r  boundsr  rV   rV   rW   rf   ,  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   M  r   z%CBMark.scaledRender.<locals>.<lambda>c                    r  rg   r   r  )r  syr  rV   rW   r   N  r   r   r   r   r   )r  r  r  r  r  r"  r  opNamesopCountr   r  r  ranger   r   )re   r   r   rK   r	  r  hr  xscyscr  r  Crw  r  opr   _rV   )r  r  r  r  r  r  rW   r   2  s:   



zCBMark.scaledRenderN)r  )r   )rk   rl   rm   r^   r  r  rf   r   rV   rV   rV   rW   r  (  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                  rb     i      r     r     r  |   r  u   ik   rb  f      _      I   r  "      r     r     ,      9   i  N     l   !     r     r     r     r7                  r     r     r              r  r  )r  ir  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  )r)  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   rM   visibilitiesorientationsrr   r@  rN   rX   r\   ra   rb   rn   r   r   r  r   r  rk   doctesttestmodrV   rV   rV   rW   <module>   s    ,	

	       '7
