
    kf2                        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          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$ 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       Z/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/reportlab/pdfbase/acroform.pybsPDFrY   G   sy    {WY{%;<<===AH 	 cGGGT%L11 	 iG'""#    c                 H    t          |                               dd          S )N%z\045)r   replace)ss    rX   escPDFr_   Q   s    Q<<G,,,rZ   c                 |    t          | t                    s&| }d} |                                D ]}| ||         z  } | S )Nr   )rQ   intsplit)r^   rW   vxs       rX   	makeFlagsre   T   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.formatb   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__f   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>v   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.formato   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   e   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                   b   e Zd Zddddddddd	d
dddZd Zed             Zd Zd Zd Z	d Z
d Z	 	 	 	 	 	 	 	 	 dBdZedCd            Zd  Zd! Zd" Zed#             Zed$             Zd% Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd*Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dEd,Zd- Zddddddd.d/dd0g g d1d2fd3Zd4 Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dFd7Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dGd8Zd5dddddd.d/d'd'ddd(d5ddddddg fd9Zd5dddddd.d/d'd'ddd(d:ddddddg fd;Zd< Zd= Zd> Z d? Z!d@ Z"edA             Z#dS )Hr   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                 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squareNr   rG      rN   c           	         
 g j         }
}|dk    r |d                                |          } |d           |d k    r                     |          }|dz  }
|z
  }|}|	dk    r |d           n*|	dv r&|	dk    rd	t          |          z  }nd
} |d           |	dv r]d|z  }
|z
  }|}t	          |d          }|}|dk    r||}}                     |          }                     |          } |d            |d           n|dk    r 
fd}
dz  }                     |          } |d            | ||                      |d            |d           |d k    rH |d                                |          }|dz  }
|z
  }|	dk    r |d           n<|	dv r8|	dk    rd}nd
} |d            | |||z
                        |d            |d           |	dv rd|z  }
|z
  }t	          |d          }t          |d          }d}d}|	dk    r||}}|dk    r||}}                     |          }                     |          } |d            | |||z
  d|                      |d             | |||z
  d|                      |d!           |d"k    r                     |          }                     |          } |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Yesz'q %(textFillColor)s %(textStrokeColor)sr   r     r   

z<< /ProcSet [/PDF] >>	Resources)appendr   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   s    (??F3KKK--i88JFFGGGD  #55kBB!#ok),,F`aaaa $III"H,,+fWoo=!Fnooo"66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--i88JF-...F33q66NNNF3KKKF3KKKD  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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%<< 00;;M"44Y??O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.circleArcStream4  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.zdMarkP  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.getRef\  s    y~'',,,rZ   c                     t          |                     |                              | j        j                            S rn   )r   r   rp   r   r'  r)  s     rX   	getRefStrzAcroForm.getRefStr_  s.    C((//	??@@@rZ   c                 f   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 | pt          ddd          |pt          ddd          |pt          ddd          fS )	Nr   ?gQ?gjt?g?g?g`"?r   )rQ   r   r   )r   br   s      rX   	stdColorszAcroForm.stdColorsb  s    a	"" 	_j9&=&= 	_AiAXAX 	_-1Qq--q/IYq1S5I5I1KiPYZ^_defghPiPijj+s3s++Q-D%C2D2DaF]5QTUZ[\K]K]^^rZ   c                 l    | dk    r)| dk    rt           nt          fd|||fD             \  }}}|||fS )NNr  c                 (    g | ]} |d           S )r-  ru   )r   r   funcs     rX   r   z'AcroForm.varyColors.<locals>.<listcomp>m  s#    222QTT!C[[222rZ   )r   r   )r   r   r.  r   r3  s       @rX   
varyColorszAcroForm.varyColorsi  sM    88 #XX667D22221Qq'222EAa1urZ   c                    |r| j         }|                                 |                                 |d k    r2d|z  }|                    |           |                    |	           d}ndx}}|d|z  z  }|d|z  z  }||z  }||z  }|                    |
           |dk    r|                    |||||d           n3t          ||          dz  }|                    ||z   ||z   ||d           |	                                 d S d S )Nr   r   r   r    r   )strokefill)
r   	saveStateresetTransformssetLineWidthsetStrokeColorsetFillColorrectminr   restoreState)rk   rd   ywidthheightforceBorderr   rU   rT   r   r   r   r  r^   r   s                  rX   checkForceBorderzAcroForm.checkForceBorderp  sC    	 9DNN  """D  +o!!+...##K000CQsUNEaeOFHAHAi(((h		!AeF!	;;;;f%%+AaC!AQA666+	  	 rZ   checkr   rA   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          |                     |                    t          |                     |                              } t          |           |d<   t          |          }| j                            |           | j                            |                     |                     |                     |
||	|	||||||
  
         d S )Nr   OffNDR)r   rG  	r   r   r   r   r   rT   rU   r   rV   r   WidgetAnnotr1  )r   Pr   ASRectAPSubtypeTyper   r}   r   r{   AFF%03dBSr   (%s)CABCBGMK)r/  r   absolutePositionr'  r4  r  
_af_refstrr   r   r   rO   r	   thisPageRefr   re   annotationFlagValuesr|   r   r   r   rY   r  r   _addAnnotationr   rD  )!rk   checkedr   r   r   r   r   rT   rU   r   rd   r@  r   r   annotationFlagsr   rC  relativerV   initialValuer   r   rO  r   APVtCbCfCr   apr   CBrY  s!                                    rX   checkboxzAcroForm.checkbox  s   ( !(2uuU(,yY(W(W'	+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F;//DOOK8899DOOI6677  
 !$$42	  $$$4;;r??+++a$tKk+VabklllllrZ   ry   c                 :   || 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/          |                     |                    t/          |                     |                              }"|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.rG  z% sets initial value conflicting with rH  r   rI  r   rJ  rK  r1  )
r   rL  rM  rN  rO  rP  rQ  r   Parentr   rT  rU  rS  rY  )r   rw   r   _refr   r   re   r|   r}   ri   r/  r   r   rZ  r'  r4  r  r[  r   r   rO   r	   r\  r   r]  r  r   rY   r^  r~   rD  )#rk   r   selectedr   r   r   r   r   rT   rU   r   rd   r@  r   r   r`  r   rC  ra  rV   grouprb  r   r   rO  r   rc  rd  re  rf  rc   rg  r   RBrY  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(,yY(W(W'	+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#,,   F;//DOOK8899DOOI6677  
 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)      ?        rs  rr  rs  rs  Matrixr   BBoxFormrP  XObjectrQ  r   FormType)filtersr   c              3   D   K   | ]\  }}|d t          |          V  dS )=Nr   )r   r   rc   s      rX   r   z&AcroForm.makeStream.<locals>.<genexpr>P  s7      (d(d31QAAAl1ooo)F(d(d(d(d(d(drZ   )r   r	   r
   r   r   r'  compressionr   r   r   itemsr[  )rk   rA  rB  r   rC   r^   s         rX   r   zAcroForm.makeStream>  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 rgz0 gc           
         g }|j         }t          |          r |                     |          } |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
  }$|                     |	          }% |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            /          S )0Nz,%(streamFill)s
0 0 %(width)s %(height)s re
fr   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
frx   rK   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"   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   r>  r_   rb   rfindr   r   r]   r   rg   )-rk   r   r   r  	rFontNamefontSizer   r   r   r   rT   rU   rA  rB  rV   wkindlabelsrE   sel_bgsel_fg_streamr   r  r  bwwbwhr  bw2wbw2hr  r	  undashr  r  _4bww4bwh4bwtextFillleadingnoptsi0ir@  ilimlines-                                                rX   txAPzAcroForm.txAPS  s   * y!! 	E--i88JFC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|}''	22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   r+  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                    |                      |          \  }}|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                    |t          d|||                     |          fz                      }!|r||!d<   | rt          |           |!d<   |r||!d<   |rt          |          |!d<   |sdt          | j                  z  }t          |          |!d <   t'          t          |                     |                    !          }+|r9tA          |||          |!d"<   t          |                     |                    |+d#<   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 typer1  )r   r   r   rT   rU   rA  rB  rV   rJ  rK  z/%s %d Tf %s)r   rL  r   DVrN  rO  rP  rQ  r   r}   r   OptrE   MaxLenr{   rR  r   )rX  rS  rW  rY  r   )#r  r/  r   rZ  r'  re   r|   rQ   rR   rS   	TypeErrorr   r   r   r   r   ri   indexr0   rO   r4  r  r[  r   r   r	   r\  r   r]  r   r   r   rY   r^  rD  ),rk   r   r   r   r   rT   rU   rA  rB  rd   r@  r   r   r`  r   rC  ra  maxlenr  r  r  optionsrV   r  r  r   r   r}   r   r   r  rO  rE   TFrc   llbextrasr   rd  re  rf  rg  r   rY  s,                                               rX   
_textfieldzAcroForm._textfield  sr   0  $}}X66	9H(,yY(W(W'	+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^y4CWCWXaCbCb.ccdd   C5	#bg 	"!BxL 	* ))BtH 	0s4;///DD//3DOOI6677  
  	>[W==BtH < <==BtH $$42	  $$$4;;r??+++a%{8KP[\ghqrrrrrrZ   c                 V    |                      |||||||||	|
||||||||||d          S )Nr  )r   r   r   r   rT   rU   rA  rB  rd   r@  r   r   r`  r   rC  ra  r  r  r  rV   r  r  )rk   r   r   r   r   rT   rU   rA  rB  rd   r@  r   r   r`  r   rC  ra  r  r  r  rV   s                        rX   r  zAcroForm.textfield}  s^    , #'#'' /%'!!!!+    	rZ   c                 X    |                      |||||||||	|
||||||||||d|          S )Nr  r   r   r   r   rT   rU   rA  rB  rd   r@  r   r   r`  r   rC  ra  r  r  r  rV   r  r  r  rk   r   r   r   r   rT   rU   rA  rB  rd   r@  r   r   r`  r   rC  ra  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 transformTra  Nru   )ri  rk   r   s     rX   checkboxRelativezAcroForm.checkboxRelative
  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 transformTra  Nru   )r$   r  s     rX   radioRelativezAcroForm.radioRelative  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 transformTra  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.listboxRelative  r  rZ   c                 *    d|d<    | j         di | dS r  r  r  s     rX   choiceRelativezAcroForm.choiceRelative  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   r+  )rk   s    rX   r   zAcroForm.encRefStr"  s:     	N+  -M  N  NDO~~do...rZ   )	r   r   NNNr   rG   r   rN   )r  F)FrE  r   NNNr   rG   r   r   r   NNrA   r   FFrN   )NFr   r   NNNr   rG   r   r   r   NNrA   ry   FFrN   )rx   NNNr   rG   r~  r  r   r   NNrA   rx   FFr  NNNNrN   )rx   NNNr   rG   r~  r  r   r   NNrA   rx   FFr  NNrN   )$rr   rs   rt   r  rl   propertyr   r   rp   r   r   r   r  staticmethodr   r%  r   r+  r/  r4  rD  ri  r$   r   r  r  r  r  r  r  r  r  r  r  r  r   ru   rZ   rX   r   r      sc        !%#!'"
 
M	 	 	   X8 8 8  @ @ @9 9 99 9 9 % #f f f fP . . . \.6	^ 	^ 	^- - -A A A _ _ \_   \     2 # # '%!%Qm Qm Qm Qmh $ # '9!'am am am amF  6  #!6'@ @ @ @D
 
 
  # '!-Zs Zs Zs Zsz  # '!), , , ,^  # '!+. . . .`  # '"!+. . . .`  
  
  
    
 / / 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__,  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>M      ${2~.. rZ   c                 4    t          | z
  z  z             S rn   r   )rc   r$  syr  s    rX   r   z%CBMark.scaledRender.<locals>.<lambda>N  r  rZ   r   r   r   r   )r  r  r  r  r  r>  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  s                     @@@@@@rX   r   zCBMark.scaledRender2  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  (  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  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(        r  i
  r   r  n   i  r0  r  iu  iB  i  i  r/  r  )r   r(  r/  r  )rE  crossr   stardiamond45r  r1  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   rO   visibilitiesorientationsr|   r]  rP   rY   r_   re   rg   rw   r   r   r  r   r  rr   doctesttestmodru   rZ   rX   <module>rE     s  ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] 4 4 4 4 4 4 O O O O O O O O O O O O O O ) ) ) ) ) ) / / / / / / / / t#$ !	   	  $   44  4 !&	
  #U "' "E !5 #U #(% $e u !5$ %& u'( u)* $e+, %*E-2 t"!!!%#'
 
 
  # W D  	  - - - '    " " " " "I " " "       8  ^/ ^/ ^/ ^/ ^/y ^/ ^/ ^/@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   