
    M"jz                     <   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          Zg g g g d	Z e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 d!d"d#d$dd%d&d'd(d)d*d+d,d-d.Z eddd/d0d1d2d3d4d56	  	        Zded7<    ed8d9d:d;d<=          Z d> Z!d? Z"efd@Z# G dA dBe          Z$ G dC dDe          Z%dE Z& e            Z' G dF dGe          Z( G dH dI          Z) e e)g dJg dKdL           e)g dMg dNdO           e)g dPg dQdR           e)g dSg dTdU           e)g dVg dWdX          Y          Z* edZd[d\d]d^Y          Z+e,d_k    rddl-Z- e-j.                     dS dS )a)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                     t          | t          t          |                             }|dk    r7|sdg}nt          |t          t
          f          s|g}t          |          |d<   t          |          S )N)WrB   rH      rC   )dictr	   	_bsStyles
isinstancelisttupler   r   )borderWidthborderStyledashLends       [/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/reportlab/pdfbase/acroform.pybsPDFrY   I   sy    {WY{%;<<===AH 	 cGGGT%L11 	 iG'""#    c                 H    t          |                               dd          S )N%z\045)r   replace)ss    rX   escPDFr_   S   s    Q<<G,,,rZ   c                 |    t          | t                    s&| }d} |                                D ]}| ||         z  } | S )Nr   )rQ   intsplit)r^   rW   vxs       rX   	makeFlagsre   V   sI    a  	 	A1IAAHrZ   c                       e Zd Zd Zd ZdS )PDFFromStringc                 V    t          |          st          d|z            || _        d S )Nz$need a unicode/bytes argument not %r)r   
ValueError_s)selfr^   s     rX   __init__zPDFFromString.__init___   s0    Qxx 	ICaGHHHrZ   c                 *    t          | j                  S N)r   rj   )rk   documents     rX   formatzPDFFromString.formatd   s    !!!rZ   N__name__
__module____qualname__rl   rp    rZ   rX   rg   rg   ^   s2          
" " " " "rZ   rg   c                       e Zd ZddZd ZdS )
RadioGroup noToggleToOff required radioc                     |st          d          || _        t          |t                    | _        g | _        || _        d | _        d S )NzRadioGroup created with no name)ri   TUre   fieldFlagValuesFfkidsTV)rk   nametooltip
fieldFlagss       rX   rl   zRadioGroup.__init__h   sK     	@>???J77	rZ   c                    | j         }t          |          }|dk     rt          d| j        |fz            t	          | j        t          d | j         D                       t          d          t          | j                            }| j	        rt          | j	                  |d<   | j
        rt          | j
                  |d<   t          |                              |          }|S )Nr    z#RadioGroup:%s has %d < 2 RadioBoxesc                     g | ]}|S ru   ru   ).0ks     rX   
<listcomp>z%RadioGroup.format.<locals>.<listcomp>x   s     6 6 6q 6 6 6rZ   Btn)r}   KidsFTr   r   r{   )r~   lenri   r   rO   r}   r   r	   r   r   r{   r   rp   )rk   docr~   rW   rs        rX   rp   zRadioGroup.formatq   s    yIIQ33j!F$&QR!STTT7 6 6DI 6 6 677U^^df%%	   6+GDFOO1S67/Ytw//AdG!##C((rZ   N)rx   ry   rq   ru   rZ   rX   rw   rw   g   s7               rZ   rw   c                     t          | t                    r'dd                    d | j        D                       z  S t          | t                    r| j        S t          |           S )Nz[%s]rx   c              3   4   K   | ]}t          |          V  d S rn   _pdfObjToStr)r   es     rX   	<genexpr>z_pdfObjToStr.<locals>.<genexpr>   s(       G GQa G G G G G GrZ   )rQ   r   joinsequencerg   rj   str)objs    rX   r   r      sa    #h I G G#, G G GHHHH#m$$ vs88OrZ   c                      e Zd Zddddddddd	d
dddZd Zed             Zed             Zd Zd Z	d Z
d Zd Z	 	 	 	 	 	 	 	 	 dKdZedLd            Zd  Zd! Zd" Z e ed#d#d#d$           ed#d#d#d$           ed%d&d#d#           ed'd'd'           ed'd'd'           ed(d)d*          d*+          Zd, Zd- Zed.             Zd/ Zdd0deeeeddd#d#ddd1d2dddfd3Zddddeeeeddd#d#ddd1d4dddfd5Zd6 Zddddddd7d8dd9g g d:d;fd<Zd= Z d>eeeedd7d8d#d#ddd1d>ddd?dddddfd@Z!d>eeeedd7d8d#d#ddd1d>ddd?dddfdAZ"d>eeeedd7d8d#d#ddd1d>ddddddg fdBZ#d>eeeedd7d8d#d#ddd1dCddddddg fdDZ$dE Z%dF Z&dG Z'dH Z(dI Z)edJ             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                     i | _         t          j        |          | _        i | _        g | _        i | _        i | _        i | _        d | _	        i | _
        d S rn   )referenceMapweakrefref_canvfontsfields_radios_refMap
_pdfdocencsigFlagsextras)rk   canvkwdss      rX   rl   zAcroForm.__init__   sP    [&&

rZ   c                     t           S rn   )_useDefaultrk   s    rX   
useDefaultzAcroForm.useDefault   s    rZ   c                 j    |                                  }|t          d| j        j        z            |S )Nz%s.canv is no longer available)r   ri   	__class__rr   )rk   r   s     rX   r   zAcroForm.canv   s2    

==@WWXXXrZ   c                 *    d|d| j         |         dS )Nz
/Font << /  >>)r   )rk   fs     rX   fontRefzAcroForm.fontRef   s     '(qqA77rZ   c                 &    t          t           fd j        D                                 } j        r
 j        |d<    j        rt          t           j                                                            } fd|D             }t          d|d         z            |d<   t          d j
        d	d
                    |          d          |d<   |                     j                   t          |                              |          }|S )Nc                 :    g | ]}                     |          S ru   )getRefr   r   rk   s     rX   r   z#AcroForm.format.<locals>.<listcomp>   s#    "G"G"Ga4;;q>>"G"G"GrZ   )FieldsSigFlagsc                 :    g | ]}                     |          S ru   )r   r   s     rX   r   z#AcroForm.format.<locals>.<listcomp>   s#    ---Qa---rZ   z/%s 0 Tf 0 gr   DAz<< /Encoding
<<
/RLAFencoding
z
>>

z
>>DR)rO   r   r   r   r   rR   sortedkeysr   rg   	encRefStrr   updater   r   rp   )rk   r   rW   FKFr   s   `     rX   rp   zAcroForm.format   s   !"G"G"G"G4;"G"G"GHH   =7$-!J-: 	wfTZ__..//00B----"---AA 677AdG#mY]YgYgYghlhqhqrshthththt$uvvAdG	!##C((rZ   c                     ||j         dk    rdS t          |t                    r|                                n|                                S )Nr   ru   )alpharQ   r   cmykrgb)rk   cs     rX   
colorTuplezAcroForm.colorTuple   sA     912%a	22?qvvxxx?rZ   c                 n    |                      |          }t          | t          |          dk    rdndz   S )Nr"   z kz rgr   r   r   rk   r   ts      rX   streamFillColorzAcroForm.streamFillColor   4    OOAqz3q6619944%88rZ   c                 n    |                      |          }t          | t          |          dk    rdndz   S )Nr"   z Kz RGr   r   s      rX   streamStrokeColorzAcroForm.streamStrokeColor   r   rZ   circlesquareNrG      rN   c           	         
 g j         }
}|dk    r% |d           t          |          r                      |          } |d           |t          |          r͉                     |          }|dz  }
|z
  }|}|	dk    r |d           n*|	dv r&|	dk    rd	t	          |          z  }nd
} |d           |	dv rlt          |          r]d|z  }
|z
  }|}t          |d          }|}|dk    r||}}                     |          }                     |          } |d            |d           n|dk    rΈ 
fd}
dz  }t          |          rJ                     |          } |d            | ||                      |d            |d           |gt          |          rW |d                                |          }|dz  }
|z
  }|	dk    r |d           n<|	dv r8|	dk    rd}nd
} |d            | |||z
                        |d            |d           |	dv rt          |          rd|z  }
|z
  }t          |d          }t          |d          }d}d}|	dk    r||}}|dk    r||}}                     |          }                     |          } |d            | |||z
  d|                      |d             | |||z
  d|                      |d!           |d"k    rt          |          r+                     |          }                     |          }nd#}d$} |d%           t          |         }|dk    r=|dk    r7 | |t          |
|z
  z
  d&          dz                        |d           n" ||	                    

|z
                        |d           d'
                    |j                  t                      z                      d(d)                              d*d'          }                     

|t          d+          ,          S )-Nr   qz11 g 1 G %(streamFill)s 0 0 %(size)s %(size)s re f      ?rK   zC%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(size)s %(hbw)s l srH   rJ   rI   rG   rH   z
 [%s ] 0 drx   zQ%(streamStroke)s%(dash)s %(borderWidth)s w %(hbw)s %(hbw)s %(smbw)s %(smbw)s re srI   rJ   r    rC   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                 "     j         | fi |S rn   )circleArcStream)_r_casKwdsrk   sizes     rX   <lambda>z%AcroForm.checkboxAP.<locals>.<lambda>  s    (<(<T"(P(Px(P(P rZ   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   rJ   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     r   

z<< /ProcSet [/PDF] >>	Resources)appendr   r   r   r   r   r   cbmarksmaxscaledRenderr   __self__varsr]   
makeStreamrg   )rk   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cbms   `         `                    rX   
checkboxAPzAcroForm.checkboxAP   sd    (??F3KKK9%% L!11)<<
JKKK&;{+C+C&#55kBB!#ok),,F`aaaa $III"H,,+fWoo=!Fnooo"666;y;Q;Q6[=D 4KEB"9S11D$DCxx%)4d//55D//55DF  S  T  T  TF3KKKKH__PPPPPCSA9%% !11)<<
1222ss1vvss&;{+C+C&s#55kBB!#oK',,Fdeeee $III"H,,*!FGHHHF33qu::&&&F3KKKs"666;y;Q;Q6cEEB"9S11D!)C00DBB"G++%)4dCxx%)4d11$77D11$77DF9:::F33qwt<<<===F+,,,F33qwt<<<===F5MMM%<<9%% ( $ 4 4Y ? ?"&"8"8"C"C %"'F<===+&Ch;#8#8ssC47A..344555ss''T"W55666F3KKK))FO,,tvv5>>tCHHPPQWX\]]dF)*ABB    	rZ   r   r   r    rN   Fc                 n   g j         }|j        j        }| dz  }| dz  }| |z  } ||z  }||z  }t          d|z            }t          |          }t          |          }|rdnd}	 |d           d|v r$ |            dk    r |d	            |d
           d|v r$ |            dk    r |d            |d           d|v r$ |            dk    r |d            |d           d|v r$ |            dk    r |d            |d           d                    |j                  t                      z  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mxs
             rX   r   zAcroForm.circleArcStreamB  sy   Iz!s
4K	
	QGaK  1IIu/6E++I	
)***99tvvqyy!!K...A344499tvvqyy!!K...A677799tvvqyy!!L///A899999tvvqyy!!L///A5666yy$$tvv--rZ   c                     t           |         }||z
  x}}|dz  }t          t          |d|                    }||k    r|||z  z  }|d||z
  z  z   }	d}
dt                      z  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   )rk   r   r   r  	iFontNamerM   Hfswdxdys              rX   zdMarkzAcroForm.zdMark^  sx    1IRAsU+ar2233Q33!A#IB#qs)^TW[W]W]]]rZ   c                 @    | j         j                            |          S rn   )r   _doc	Referencerk   r   s     rX   r   zAcroForm.getRefj  s    y~'',,,rZ   c                     t          |                     |                              | j        j                            S rn   )r   r   rp   r   r,  r.  s     rX   	getRefStrzAcroForm.getRefStrm  s.    C((//	??@@@rZ   r   ?gQ?gjt?g?g?g`"?r   )cmyk_textColorcmyk_borderColorcmyk_fillColorrgb_textColorrgb_borderColorrgb_fillColorrT   c                    d| j         vr#| j        j                                        | _        |                                 }||                                v rd|v rV|d d         dk    r$t          |t          t          f          r|||<   d S nTt          |t          t          f          r|||<   d S n0t           |t          t          t                              r|||<   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   r9  cloner   rQ   r   NoneTyper   r#  ra   ri   )rk   r   r   rW   s       rX   
setDefaultzAcroForm.setDefaultz  s0   4=00"&."?"E"E"G"GD!!16688d{{8V##!%8(<== "'$  uX&677 "'$ EE%H5566 $XTXXeXXXYYYSSSSSSTTTrZ   c                    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z            |t          ur|n
||dz            |t          ur|n
||dz            |t          ur|n|d         fS )	Nrr   _enforceRGBcmyk_rgb_r  r  r  rT   )rQ   r   getattrr   _enforceColorSpacer9  r   )rk   r  r  r  rT   pfxrW   s          rX   getDefaultszAcroForm.getDefaults  s    )I.. 1)I..1+i00 	 g'$)">z-XXZggC(gg&&k99		q[?Q*+==1SEVCW&k99		q[?Q*+==1]CS 	rZ   c                 l    | dk    r)| dk    rt           nt          fd|||fD             \  }}}|||fS )NNr  c                 0    g | ]}| |d          nd S )Nr1  ru   )r   r   funcs     rX   r   z'AcroForm.varyColors.<locals>.<listcomp>  s+    MMMAMTT!C[[[tMMMrZ   )r   r   )r   r   br   rL  s       @rX   
varyColorszAcroForm.varyColors  sM    88 #XX667DMMMMa!WMMMEAa1urZ   c                 ^   |r)| j         }|                                 |                                 |At          |	          r2d|z  }|                    |           |                    |	           d}ndx}}|d|z  z  }|d|z  z  }||z  }||z  }t          |
          }|r|                    |
           |dk    r |                    ||||||rdnd           n7t          ||          dz  }|	                    ||z   ||z   |||rdnd           |
                                 d S d S )Nr   r   r   r    r   )strokefill)r   	saveStateresetTransformsr   setLineWidthsetStrokeColorsetFillColorrectminr   restoreState)rk   rd   ywidthheightforceBorderr   rU   rT   r  r  r   r  r^   doFillr   s                   rX   checkForceBorderzAcroForm.checkForceBorder  sr    	 9DNN  """&;{+C+C&+o!!+...##K000CQsUNEaeOFHAHA ++F -!!),,,h		!AeF!f9K!	LLLLf%%+AaC!AQ4FAAQGGG/	  	 rZ   checkrA   r   c                    |rdnd}|                      ||||          \  }}}}| j        }|r| j                            |
|          \  }
}|j        }i }dD ]}i }|                     ||||          \  }}}dD ]l}|                     ||||||||||	|          }|j        | j        v r| j        |j                 }n$|                     |          }|| j        |j        <   |||<   mt          |          ||<   ~t          t          d          |                                t          |          t          |          t          |
||
|	z   ||	z   f          t          |          t          d          t          d          t          |t                    t          |t                     t          d	          
          }|rt#          |          |d<   |sdt%          | j                  z  }|rt)          |||          |d<   t#          |          |d<   t          dt*          |         z            } |%t          |                     |                    | d<   |%t          |                     |                    | d<   t          |           |d<   t          |          }| j                            |           | j                            |                     |                     |                     |
||	|	||||||
  
         d S )Nr   OffNDR)r   rb  	r   r   r  r  r  rT   rU   r   rV   r   WidgetAnnotrJ  )r   Pr   ASRectAPSubtypeTyper   r}   r%  r{   AFF%03dBSr   (%s)CABCBGMK)rH  r   absolutePositionr,  rN  r  
_af_refstrr   r   r   rO   r	   thisPageRefr   re   annotationFlagValuesr|   r   r   r   rY   r"  r   _addAnnotationr   r_  )!rk   checkedr   r   r  r  r  rT   rU   r   rd   rZ  r   r   annotationFlagsr   r]  relativerV   initialValuer   r   rj  r   APVtCbCfCr   apr   CBrt  s!                                    rX   checkboxzAcroForm.checkbox  s(   ( !(2uuU6:6F6FyQ\]fgr6s6s3	+iy 	39--a22DAqi 	 	CCs9[KKHBr"&  __$'$)0;*/.002.00;0;)-,3 % & & =DL00,r}5CC++b//C25DL/E

#C((BsGU^^OO%%L))\**1QtVAdF 344"2&&!(++w''o.BCCz/::#,,    	* ))BtH 	0s4;///DI5[#I#I4D//3Vf[11222" < <==BtH 	 : :;;BtH $$42	  $$$4;;r??+++a$tKk+VabklllllrZ   ry   c                 V   || j         vrVt          |||          }|                     |          |_        || j         |<   | j                            |j                   nC| j         |         }t          |t                    }||j        k    rt          d|d|d          |st          d|d|          |r|nd}| 
                    ||||          \  }}}}||k    r7|j        )|j        |k    rt          d|d|d|j                  n||_        | j        }|r| j                            ||          \  }}|j        }i }d	D ]}i }|                     ||||          \  }}}|dfD ]t}|                     |||k    rd
nd|||||||	|
|          }|j        | j        v r| j        |j                 } n$|                     |          } | | j        |j        <   | ||<   ut'          |          ||<   ~t)          t+          d          |                                t+          |          t/          ||||
z   ||
z   f          t'          |          t+          d          t+          d          t          |t0                    |j        t+          d          
  
        }!t)          dt2          |         z            }"|%t/          |                     |                    |"d<   |%t/          |                     |                    |"d<   |rt7          ||	|          |!d<   t'          |"          |!d<   t'          |!          }!| j                            |!           |j                            |                     |!                     |                     |||
|
|||	|||
  
         d S )N)r   r   zradio..z created with different flagsz
bad value z for radio.rb  z% sets initial value conflicting with rc  r   rd  r   re  rf  rJ  )
r   rg  rh  ri  rj  rk  rl  r   Parentr%  ro  rp  rr  rs  rn  rt  )r   rw   r   _refr   r   re   r|   r}   ri   rH  r   r   ru  r,  rN  r  rv  r   r   rO   r	   rw  r   rx  r"  r   rY   ry  r~   r_  )#rk   r   selectedr   r   r  r  r  rT   rU   r   rd   rZ  r   r   r{  r   r]  r|  rV   groupr}  r   r   rj  r   r~  r  r  r  rc   r  r   RBrt  s#                                      rX   r$   zAcroForm.radio  s    * t|##tGzJJJEU++EJ!&DLKuz****L&E":o>>J58## jtttTYTYTY!Z[[[ 	I*EEE$$GHHH (3uue6:6F6FyQ\]fgr6s6s3	+iw"7E>>$*[_[_[_`e`e`efkfmfm%nooo "  y 	39--a22DAqi 	 	CCs9[KKHBr"E]  __$'-.XXEE50;*/.002.00;0;)-,3 % & & =DL00,r}5CC++b//C25DL/A#C((BsGU^^OO%%\**1QtVAdF 344"2&&!(++w''o.BCC#,,   Vf[11222" < <==BtH 	 : :;;BtHI5[#I#I4 $$42	  $$$
$++b//***a$tKk+VabklllllrZ   c                    t          g d          |d<   t          dd||g          |d<   t          d          |d<   t          d          |d<   d	|d
<   t          t          |          || j        j        j        rt                      gnd           }|d                    d t          |
                                          D                       z   |_        |S )N)      ?        r  r  r  r  Matrixr   BBoxFormrk  XObjectrl  r   FormType)filtersr   c              3   D   K   | ]\  }}|d t          |          V  dS )=Nr   )r   r   rc   s      rX   r   z&AcroForm.makeStream.<locals>.<genexpr>  s7      (d(d31QAAAl1ooo)F(d(d(d(d(d(drZ   )r   r	   r
   r   r   r,  compressionr   r   r   itemsrv  )rk   r[  r\  r  rC   r^   s         rX   r   zAcroForm.makeStreamu  s     88899(a%/00&	v)I&&&	*a  :>).:T^35566Z^   dii(d(dRXYZY`Y`YbYbRcRc(d(d(deeerZ   x   $   	textfieldz0.600006 0.756866 0.854904 rgr   c           
         g }|j         }t          |          r |                     |          } |d           dx}}|}|}d}|
d k    rY|
dk    rSt          |          rD|
dz  }||
z
  }||
z
  }d|
z  }|dv r+||z
  }||z
  }|dk    rd}|s|rd	}nd
}nd}d
} |d           n
dx}x}}
|}|}d}t          |          rX|
rV|                     |          } |dk    r |d           n/|dv r+|dk    rdt	          |          z  }!d}nd|
z  }! |d           d|
z  }"||"z
  }#||"z
  }$t          |	          r|                     |	          nd}% |d           d|z  }&|dk    rt          |$|&z            }'|$t          |'          z  }&|'t          |          k    rd}(t          |          }'n\t          |          dk    r2|r|d         nd}(|(r#|(|'k     rd}(n2t          |          |'z
  })|(|)k    r|)}(n|d         |'k     rd}(n|d         }(t          |          }*|(|'z   })|)|*k    r|)|*z
  }(t          |*|(|'z             }+|rJ|(})||z
  |&z
  }* ||           |)|+k     r/|)|v r |dt	          |*          z             |*|&z  }*|)dz  })|)|+k     /|(})||z
  |z
  }* |d           |)|+k     rz |d           |)|(k    r |d            ||)|v r|nd            |d t	          |*          d!t          ||)                   d"           |*|&z  }*|)dz  }) |d#           |)|+k     zn |d           |r |d$            |d%t	          ||z
  |z
            z             |
                    d&          D ]/}, |d't          |,          d(t	          |&           d)           0|d*         d |d*                             d&                   |d*<    |d#           t	          |&          }& |d+           d&                    |          t                      z                      d,d-                              d.d&          }|                     |||t!          d/t                      z            0          S )1Nz,%(streamFill)s
0 0 %(width)s %(height)s re
fr   rx   r   r    r   rI   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
frK   zD%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(width)s %(hbw)s l sr   rH   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 z Td
(z) TjETz.BT
/%(iFontName)s %(fontSize)s Tf
%(textFill)sz1 0 0 1 %%(_4bw)s %s Tmr   (z) Tj
0 z TdzQ
EMC
r   r   r   z/<< /ProcSet [/PDF /Text] /Font %(rFontName)s >>r   )r   r   r   r   r   ra   r#  r   rX  r_   rb   rfindr   r   r]   r   rg   )-rk   r   r   r$  	rFontNamefontSizer   r  r  r  rT   rU   r[  r\  rV   wkindlabelsrE   sel_bgsel_fg_streamr  r  r  r  bwwbwhundashbw2wbw2hr  r  r  r
  _4bww4bwh4bwtextFillleadingnoptsi0irZ  ilimlines-                                                rX   txAPzAcroForm.txAP  s   * y!! 	E--i88JFCDDD dQ;{3K3Kc/C+%C;&C[=D222t|}*,, D  *K *@)&D%D  R  S  S  S'((C($CC{## 
	\ 
	\11+>>LL((]^^^^ EEE((*VG__<D%FF#k1DZ[[[}t|}6A)6L6LW4''	222RWJKKK.)W%%E5<<'GS[[  FQ%QqTTA #%xxKK%/q55!"BQ4::BB1BFAU
AssQBqE??D 	TMG+vffAvvJVTUYYVWWWLAFA ff A(AF)***D&&tb55F;<<<avv^<<<VAYYYYvfQi?P?P?P?PQRRRWQt D&& F)*** IJJJ06&8:Kd:R3S3SSTTT!KK-- Q QDFFfgX>N>N>N>NOPPPP%bk*B72;+<+<T+B+B*BCt//z))G$$tvv-66tC@@HHPTUUvv)*[^b^d^d*dee    	rZ   c                     |d}|| j         vrt          d|z            | j         |         }|                     t          d|d|d| j        d                    }|| j        vr
|| j        |<   ||fS )Nr   z7form font name, %r, is not one of the standard 14 fontsz<< /BaseFont /z /Subtype /Type1 /Name /z /Type /Font /Encoding r   )formFontNamesri   r0  rg   r   r   )rk   fontNamefnr   s       rX   makeFontzAcroForm.makeFont  s    "H4---VYaabbb)nn]] DNNN,4 5 5 6 6TZ DJrNBwrZ   rx   d   c                 L   |                      |          \  }}|d up|d up|d u}|d}|                     ||||          \  }}}}| j        }|r| j                            |	|
          \  }	}
|j        }d|d|d}t          |t                    }|dk    rd}|dk    r|t          d         z  }g }g }g } g }!g }"t          |t          t          f          st          |d	|d
          |D ]}#t          |#          r%|                    t          |#                     |#}$nt          |#t          t          f          rbt          |#          dk    r|#d         x}#}$n|#\  }$}#|                    t          t          |#          t          |$          g                     nt          |d|#d
          |                     |#           |"                    |$           t          |          }|rHt          |t          t          f          s|g}|D ]}#|#| vr9|#|"vrt!          |d|#d| d|"          | |"                    |#                   }#|!                    |                     |#                     |                    t          |#                     |!                                 |t          d         z  rt          |          dk    r)|dk    r|"|!d                  }n
|d d         }|d d         }t          |          dk    r|d         nt          |          }t'          |"|!|          }%nHt          |          }n8g x}!}i }%d}t          |          st          d|z            t          |          }i } dD ]}&|                     |&|||          \  }'}(}) | j        |&||||f|)|(|'|||||d|%}*|*j        | j        v r| j        |*j                 }+n$|                     |*          }+|+| j        |*j        <   |+| |&<   t'          t3          |          |                                ||t          |	|
|	|z   |
|z   f          t7          |           t3          d          t3          d          t          |t8                    |
  
        }"|r>t;          |          r|                     |          nd},t          d|||,fz            |"d<   |r||"d<   |!rt          |!          |"d<   |r||"d<   |rt          |          |"d <   |sd!t          | j                  z  }t          |          |"d"<   i }-|%t          |                      |                    |-d#<   |r;tC          |||          |"d$<   |%t          |                      |                    |-d%<   |-rt7          |-          |"d&<   t7          |"          }"| j        "                    |"           | j                            |                     |"                     | #                    |	|
|||d'||||
  
         d S )(N   z<</r   z>>r  Chchoicer.   z	 options=z is wrong typer   r   z option z value z is not in option
values z
or labels r1   )r  rE   r  Txz textfield value=%r is wrong typerJ  )r  r  r  rT   rU   r[  r\  rV   re  rf  )
r   rg  r   DVri  rj  rk  rl  r   r}   r   z/%s %d Tf %sr   OptrE   MaxLenr{   rm  r   rs  rn  rr  rt  r   )$r  rH  r   ru  r,  re   r|   rQ   rR   rS   	TypeErrorr   r   r   r   r   ri   indexr0   rO   rN  r  rv  r   r   r	   rw  r   rx  r   r   r   r   rY   ry  r_  ).rk   r   r  r  r  rT   rU   r[  r\  rd   rZ  r   r   r{  r   r]  r|  maxlenr  r  r  optionsrV   r  r$  	_write_dar   r   r}   r   r   r  rj  rE   TFrc   llbextrasr   r  r  r  r  r   da_colorrt  s.                                                 rX   
_textfieldzAcroForm._textfield  s   0  $}}X66	9
 T)YXT-AYXUYEY	H6:6F6FyQ\]fgr6s6s3	+iy 	39--a22DAqi$-IIiii8	z/22+ Bhog..ACBABgtEl33 Qwww OPPP  88 
NJJy||,,,AA4,// N1vvqyyaD!!!JJx1ill(CDDEEEE#EEE!!!$LMMM		!		!3--C %!%e55 $"GE + +A{{B;;",hmhmhmnononoprprprsusu-v"w"ww "288A;;AHHRXXa[[)))HHYq\\****_];; E

Ah "1Q4 %bqb	"1"AFFAIIAaDD8A;;rAE:::e$$LAHB<< L BU JKKK%  A 	 	Cs9[KKHBr"!%%$ ')(*&((3(3"'#)&-  ' B  },,l2=1kk"oo.1R]+BsGGR[[OO%%1QuWQvX 677"2&&!(++w''o.BCC  "  	R:Ei:P:P[t++I666V[H 9Xx2P!PQQBtHC5	#bg 	"!BxL 	* ))BtH 	0s4;///DD//3 	 : :;;BtH  	B[W==BtH&#DOOK$@$@AA4 	)$R((BtH2	  $$$4;;r??+++a%{8KP[\ghqrrrrrrZ   c                 V    |                      |||||||||	|
||||||||||d          S )Nr  )r   r  r  r  rT   rU   r[  r\  rd   rZ  r   r   r{  r   r]  r|  r  r  r  rV   r  r  )rk   r   r  r  r  rT   rU   r[  r\  rd   rZ  r   r   r{  r   r]  r|  r  r  r  rV   s                        rX   r  zAcroForm.textfield  s^    , #'#'' /%'!!!!+    	rZ   c                 X    |                      |||||||||	|
||||||||||d|          S )Nr  r   r  r  r  rT   rU   r[  r\  rd   rZ  r   r   r{  r   r]  r|  r  r  r  rV   r  r  r  rk   r   r  r  r  rT   rU   r[  r\  rd   rZ  r   r   r{  r   r]  r|  r  r  rV   r  r  s                         rX   r  zAcroForm.listbox  sa    . #'#'' /%'!!!!-    	rZ   r.   c                 X    |                      |||||||||	|
||||||||||d|          S )Nr  r  r  r  s                         rX   r  zAcroForm.choice#  sa    . #'#'' /%'!!!!-    	rZ   c                 *    d|d<    | j         di | dS )zSsame as checkbox except the x and y are relative to the canvas coordinate transformTr|  Nru   )r  rk   r   s     rX   checkboxRelativezAcroForm.checkboxRelativeS  s*    ZrZ   c                 *    d|d<    | j         di | dS )zPsame as radio except the x and y are relative to the canvas coordinate transformTr|  Nru   )r$   r  s     rX   radioRelativezAcroForm.radioRelativeX  s*    Z
TrZ   c                 *    d|d<    | j         di | dS zTsame as textfield except the x and y are relative to the canvas coordinate transformTr|  Nru   r  r  s     rX   textfieldRelativezAcroForm.textfieldRelative]  *    ZrZ   c                 *    d|d<    | j         di | dS r  r  r  s     rX   listboxRelativezAcroForm.listboxRelativeb  r  rZ   c                 *    d|d<    | j         di | dS r  r  r  s     rX   choiceRelativezAcroForm.choiceRelativef  r  rZ   c                 l    | 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   rg   r0  r   s    rX   r   zAcroForm.encRefStrk  s:     	N+  -M  N  NDO~~do...rZ   )	r   r   NNNNrG   r   rN   )r  F)+rr   rs   rt   r  rl   propertyr   r   r   rp   r   r   r   r  staticmethodr   r*  r   r0  rO   r   r   r9  r@  rH  rN  r_  r   r  r$   r   r  r  r  r  r  r  r  r  r  r  r  r   ru   rZ   rX   r   r      s        !%#!'"
 
M	 	 	   X   X8 8 8  @ @ @9 9 99 9 9 %  #l l l l\ . . . \.6	^ 	^ 	^- - -A A A T'0y1Qs';';)21Qq)=)='0yeAa'@'@&+eCC&8&8(-c#c(:(:&+eCa&8&8$%  NU U U,     \     6 #%'%'# '%!%Qm Qm Qm Qmh $%'%'# '9!'am am am amF  6   #!6'F F F FP
 
 
 %'%'# '!-fs fs fs fsR %'%'# '!), , , ,^ %'%'# '!+. . . .` %'%'# '"!+. . . .`  
  
  
    
 / / X/ / /rZ   r   c                   J    e Zd Zd                                ZdZddZd	dZdS )
CBMarkzm l c h)r   r   rN   r   皙?c                 f    || _         |\  | _        | _        | _        | _        || _        || _        d S rn   )opsxminyminxmaxymaxpointsslack)rk   r  r  boundsr  s        rX   rl   zCBMark.__init__u  s1    28/	$)DIdi


rZ   r   c           	         |d|z  z
  x}}| j         | j        | j        z
  }| j        z
  }| j        t          ||          z  }|d|z  z
  t          |          z  |d|z  z
  t          |          z  t                    x|z  }|z  }|||z
  dz  z   |||z
  dz  z   fd}fd}	| j        }
| j        }g j	        }d}| j
        }| j        D ]i}||         }t          |          D ]>} | |||                               | |	||dz                                 |dz  }? ||
|                    j |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                 4    t          | z
  z  z             S rn   r   )rc   r(  sxr  s    rX   r   z%CBMark.scaledRender.<locals>.<lambda>      ${2~.. rZ   c                 4    t          | z
  z  z             S rn   r   )rc   r)  syr  s    rX   r   z%CBMark.scaledRender.<locals>.<lambda>  r  rZ   r   r   r   r   )r  r  r  r  r  rX  r#  opNamesopCountr   r  r  ranger   r   )rk   r   r  rM   r%  r'  hr  xscyscr  r  Cr  r  opr   r:  r(  r)  r  r  r  r  s                     @@@@@@rX   r   zCBMark.scaledRender{  s    qtAyyIdNIdN
3q88#!E'k588#!E'k588#b**R	R	RQ^Q^............,,I( 	 	BA1XX  ##fQi..!!!##fQqSk""###QAgbkNNNN	#xx
###rZ   N)r  )r   )rr   rs   rt   rb   r  r  rl   r   ru   rZ   rX   r  r  q  sP        ooGG   +$ +$ +$ +$ +$ +$rZ   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                  r     i      r     r     r  |   r  u   ik   r  f      _      I   r  "      r     r     ,      9   i  N     l   !     r&     r&     r$     r8                  r     r     r              r  r  )r  ir  i  )r   r   r   r   r   r   r   r   r   r   r   r   r   rN   )  x  i  Z  r6  ;     r   }  i   ^   r   #   r9  iD  r8  r=  iy  r<    r;  i  r:  r>  r6  r7  )r=  r   r6  r>  )r   r    r    r    r    rN   )r=  r8  r=  r     r    r  S  r    i   rB  r8  rB     rA  r@  rD  r?  rD  r=     r=  r8  )r=  rD  rB  r  )r   r   r   r   r   r   r   r   r   r   r   rN   )  r  i      rG  i&    i  rD  rF  r)     rD  i  rI  r=  rG  iB  rG  rF  r  )r=  rD  rH  r  )
r   r   r   r   r   r   r   r   r    rN   )0  r8  i  i  )  rD        r  i
  r  r8  n   i  rL  r  iu  iB  i  i  rK  r8  )r  rD  rK  r  )r`  crossr   stardiamond45r  rJ  u__main__ru   )/__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   rO   visibilitiesorientationsr|   rx  rP   rY   r_   re   rg   rw   r   _NotSetr   r  r   r"  rr   doctesttestmodru   rZ   rX   <module>rc     s  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] 4 4 4 4 4 4 O O O O O O O O O O O O O O ) ) ) ) ) ) / / / / / / / / FHHt#$ !	   	  $   44  4 !&	
  #U "' "E !5 #U #(% $e u !5$ %& u'( u)* $e+, %*E-2 t"!!!%#'
 
 
  # W D  	  - - - '    " " " " "I " " "       8   &((c/ c/ c/ c/ c/y c/ c/ c/J5$ 5$ 5$ 5$ 5$ 5$ 5$ 5$n $fSSS g  g  g$ 
 >>> M  M  M" 
 &&& S  S  S$ 
 v888 B  B  B$ 
 &222 B  B  B$ +
 
 
6 t#CsC@@@zNNNGO rZ   