
    YeIi]                        d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ ddlT ddlmZmZ ddlmZmZmZmZm Z m!Z! dd	l"m#Z#m$Z$ dd
lm%Z% ddl&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/  e0e-e.e/          Z1ddl2m3Z4 dddddddddd	dddddddddd	dZ5	 ddl6m7Z7 n# e8$ r dZ7Y nw xY wdddddddddd 	Z9 G d! d"e#          Z: G d# d$          Z; e
d%d&d'd(          Z< G d) d*e$          Z= e ee=                    Z> G d+ d,e:          Z? G d- d.e?          Z@ G d/ d0e@          ZA e eeA                    ZBdd1lCmDZD  G d2 d3eD          ZE G d4 d5e:          ZFdS )6z3.3.0    )colors)simpleSplit)normalizeTRBL)isNumberisNumberOrNoneOneOfisColorOrNoneisStringisTextAnchorisBoxAnchor	isBooleanNoneOrisInstanceOfisNoneOrStringisNoneOrCallableisSubclassOfEitherOrisListOfNumbers)*)stringWidthgetAscentDescent)DrawingGroupCircleRectStringSTATE_DEFAULTS)Widget
PropHolder)
DirectDraw)XPreformattedFlowable)ParagraphStylePropertySet)TA_LEFTTA_RIGHT	TA_CENTER)startendmiddle   )	text2Pathnneesesswwnw)	r   -   Z            i  i;  xy)DirectDrawFlowableNr(   r)   r*   )	r3   r4   r2   r/   r.   r0   r-   r1   cc                      e Zd ZdZ edZi d eed          d eed          d eed          d eed	          d
 eed          d eed          d eed          d eed          d eed          d e e	dddd          d          d eed          d eed          d eed          d  eed!          d" eed#          d$ ee
d%          d& ee
d'          d( eed)          d* eed          d+ eed,          d- eed.          d/ eed0          d1 eed2          d3 eed4          d5 eed6          d7 eed8          d9 eed:          d; eed<          d= e eeef          d>          d? eed@          dA eedBdCD          dE e e ee          dF          dGdCD          dH e e ee          dF          dIdCD          dJ e e ee           ee          f          dKdCD          ZdL ZedM             Zej        dN             ZdO ZdP ZdQ ZdR ZdS Z dT Z!dU Z"dV Z#dW Z$dX Z%dYS )[LabelzA text label to attach to something else, such as a chart axis.

    This allows you to specify an offset, angle and many anchor
    properties relative to the label's origin.  It allows, for example,
    angled multiline axis labels.
    r<    descr=   dxzdelta x - offsetdyzdelta y - offsetanglezDangle of label: default (0), 90 is vertical, 180 is upside down, etc	boxAnchorzanchoring point of the labelboxStrokeColorzborder color of the boxboxStrokeWidthzborder widthboxFillColorzthe filling color of the box	boxTargetnormalantilohiz"one of ('normal','anti','lo','hi')boxRxzbox corner x radiusboxRyzbox corner y radius	fillColorzlabel text colorstrokeColorzlabel text border colorstrokeWidthzlabel text border widthtextzthe actual text to displayfontNamezthe name of the font usedfontSizezthe size of the fontleadingwidthzthe width of the labelmaxWidthz#maximum width the label can grow toheightzthe height of the text
textAnchorz0the anchoring point of the text inside the labelvisible True if the label is to be drawn
topPaddingzpadding at top of boxleftPaddingzpadding at left of boxrightPaddingzpadding at right of boxbottomPaddingzpadding at bottom of boxpaddingzTRBL css like paddinguseAscentDescentz^If True then the font's Ascent & Descent will be used to compute default heights and baseline.customDrawChangerzDAn instance of CustomDrawChanger to modify the behavior at draw time   )rD   _advancedUsageddfNoneOrDirectDrawzA DirectDrawFlowable instanceddfKlassz=A Flowable class for direct drawing (default is XPreformattedddfStylez-A style or style class for a ddfKlass or Nonec           
          | j         d*i |  | j         d*i ddddddddddd	dd
ddddddddddddd dddddddd dd dd dd dd dd dt          d         dt          d         dt          d         dd d!d"d#d$d%d&d't          d(t          | j        d(d           d)t          | j        d)d            d S )+N_textzMulti-Line
StringrH   r?   rG   r   r<   r=   rE   rF   r`   ra   rb   rc   rJ         ?rI   rL   rM   rQ   rR   rT   rK   rY   rZ   r[   r\   rS   rW   rX   rU   g?r]   r(   r^   rg   re   Fri   rk   rl    )_setKeywordsr   r>   getattr	__class__)selfkws     i/var/www/html/MCyber-Diagnostic/venv/lib/python3.11/site-packages/reportlab/graphics/charts/textlabels.py__init__zLabel.__init__Q   s   B !	 !	 !	,,!	C!	 !	 A	!	
 A!	 Q!	 Q!	 Q!	  a!	  !q!	 !"!	 "%!	 "&!	 %H!	 !	  !!	" #d#!	$  $t%!	& $'!	( )!	*  4+!	, -!	. +;77/!	0 **551!	2 **553!	4 "c5!	6 %W7!	8 !9!	: $)5;!	< )(=!	> #4>*TBBB?!	@ #4>*TBBBA!	 !	 !	 !	    c                 :   | j         | j        | j        | j        f}t	          t          |                    }|dk    r|d         S |dk    r.|d         |d         k    r|d         |d         k    r
|d d         S |dk    r|d         |d         k    r
|d d         S |S )Nrg   r   r+      )r`   rb   rc   ra   lenset)rt   pr-   s      rv   rd   zLabel.paddingv   s    OT.0BDDTTAKKa44!TTadAaDjjQqT1Q4ZZ"1"TTadAaDjj2A2,rx   c                 V    t          |          \  | _        | _        | _        | _        d S N)r   r`   rb   rc   ra   )rt   r}   s     rv   rd   zLabel.padding   s*    S`abScScP*D,>@P@P@Prx   c                     || _         dS )zpSet the text property.  May contain embedded newline characters.
        Called by the containing chart or axis.N)rn   )rt   rV   s     rv   setTextzLabel.setText   s     


rx   c                 "    || _         || _        dS )zSet the origin.  This would be the tick mark or bar top relative to
        which it is defined.  Called by the containing chart or axis.Nr;   )rt   r<   r=   s      rv   	setOriginzLabel.setOrigin   s     rx   c                 |   t          dd          }|                    t          dddt          j                             t                      }|                    dd           d|_        d|_        d|_	        d	|_
        t          j        |_        |                    d
           |                    |           |S )zyThis shows a label positioned with its top right corner
        at the top centre of the drawing, and rotated 45 degrees.   d   r6      )rS   r.   r5   r   izAnother
Multi-Line
String)r   addr   r   greenrA   r   rH   rG   rE   rF   rI   r   )rt   dlabs      rv   demoz
Label.demo   s     C 	
fSQ&,777888ggc"	#\1222	c


rx   c                     | j         }|dv rh| j        }t          |dz  dz            dz  dz  }|dz  s(||z
  dz  }t          |          dk    r||dk    rdpdz   }t          |d	                  |         }|S )
z,hook for allowing special box anchor effects)autoxautoyih  g     F@r5   r6   r   r   r:   )rH   rG   intabs_A2BA)rt   barG   nadas        rv   _getBoxAnchorzLabel._getBoxAnchor   s    ^###JEuSy#o&&r)3.BG 3bjC'r77199r!t{1c2Br"vr"B	rx   c                     | j         rEt          | j        | j                  \  | _        | _        | j        | j        | j        z
  z  | _        d S d| _        d S )Ng?)re   r   rW   rX   _ascent_descent_baselineRatiort   s    rv   _getBaseLineRatiozLabel._getBaseLineRatio   sU      	(*:4=*W*W'DL$-"&,T]0J"KD"'Drx   c                    | j         p|| j        z   | j        z   | _        | j        | j        z
  | j        z
  | _        | j        | j        z
  | j        z
  | _        | 	                                }|dv r| j         | _
        n(|dv r| j        | j        z
  | _
        nd| j        z  | _
        | j
        | j        z
  | _        |dv r| j        | j        z
  | _        n!|dv r| j        | _        n| j         dz  | _        | j        | j        z   | _        d S )N)r-   r.   r4   )r1   r2   r0   ro   )r.   r/   r0   )r4   r3   r2   )r\   r`   rc   _height_widthra   rb   _ewidth_eheightr   _top_bottom_left_right)rt   objHrH   s      rv   _computeSizeEndzLabel._computeSizeEnd   s   {Stdo'=@R'RD$44T5FFdo5d6HH&&((	''(DII/))T_4DIIDM)DIy4=0'')DK7DJJ/)))DJJ,s*DJj-rx   c                     t           dd           }|sg  _        t           j         j         j         j                   _         j        sV j	         j
        z    _         j        r: fd j        D              _         xj        t           j                  z  c_        n j         _                                           j        r j         _        n+ j        r j         j        z
   _        n j        dz   _         j        t'           j                  z  }n5 j        t+          d          t-          d j         j         j         j                  } j        st5          di |}nt7           j        t8                    r  j        j        di |}nft7           j        t<                    r(t?           j        t8                    r  j        di |}n$tA          dt=           j                             | _!                                           j        rd|_"         j         j        z
  |_        n j        r j        n	 j        dz  |_        |j         _         #                                } j        pd	}|d
k    rEtH          |_%         | j        |          }|&                    |d	          \  }} j        p|j'        }tP          |         |_%         | j        |          x _)        }|&                    |d	          \  }} j        s* j	         j
        z    _         xj        |j'        z  c_        n j         _         *                    |           d S )Nrk   c                 F    g | ]}t          |j        j                  S rp   )r   rW   rX   ).0linert   s     rv   
<listcomp>z%Label.computeSize.<locals>.<listcomp>   s*    'n'n'nZ^Dt}(U(U'n'n'nrx   333333?[DirectDrawFlowable class is not available you need the rlextra package as well as reportlabxlabel-generated)namerW   rX   rS   rT   zddfStyle has invalid type Tr(   stylerp   )+rr   _lineWidthsr   rn   rW   rX   r[   _linesrZ   ra   rb   r   maxr   rY   _leadingre   r   r   r{   ri   RuntimeErrordictrS   rT   rl   r#   
isinstancer$   clonetype
issubclass
ValueError_styleautoLeading_getTextAnchorr%   	alignmentwrap
_width_max_ta2al_ddfObjr   )rt   rk   r   stytaaWobj_s   `       rv   computeSizezLabel.computeSize   sw   4
400 >	)!D%djt}T][[DK: )".t/@@; 9'n'n'n'nbfbm'n'n'nD$KK3t'7#8#88KK"j""$$$| 2 $& 2 $t} < $c 1=T[!1!11DDx"  $A  B  B  B+!]!]"n $ 0  C = U$++s++DM+66 U)dm)00C00DM$// UJt}[4Y4Y U#dm**c** !Sd4=>Q>Q!S!STTTDK""$$$$ R"&"lT]:.2lQdllc@QKDM$$&&B,*B7{{ 'htz444((2j114]4cn"2JCM!)$*3!?!?!??DL3hhr*--GAt: )".t/@@s~-"jT"""""rx   c                 ^    | j         }|dk    rt          |                                          }|S )z/This can be overridden to allow special effectsboxauto)r]   _BA2TAr   )rt   r   s     rv   r   zLabel._getTextAnchor  s,    _y==vd&8&8&:&:;"	rx   c                    | j         }|pd| _         |                                  || _         t                      }|                    | j        | j        z   | j        | j        z              |                    | j	                   t          | dd           }|r| j        }nY| j        | j        | j        z  z
  }|                                 }|dk    r| j        }n |dk    r| j        | j        dz  z   }n| j        }| j        s| j        ro| j        rh|                    t-          | j        | j        z
  | j        | j        z
  | j        | j        | j        | j        | j        | j        | j        	  	                   |rtt                      }|                    || j        | j        z
             |                    |                     | j                              |                    |           n| j!        | j"        | j#        }
}	}| j$        | j%        | j        }}}t          | di           }|rN| j&        D ]E}tO          ||||	|
|          }||_!        ||_$        ||_%        |                    |           ||z  }FnS| j&        D ]K}tQ          ||||          }||_)        |	|_"        |
|_#        ||_!        |                    |           ||z  }L|S )	NrB   rk   r(   r*   ro   )rT   rU   rS   rxry	_svgAttrs)r   )*rn   r   r   	translater<   rE   r=   rF   rotaterG   rr   r   r   r   r   r   r   r   rK   rI   rJ   r   r   ra   r   rc   r   r   rQ   rR   r   ri   r   rS   rW   rX   rT   rU   r   
_text2Pathr   r]   )rt   rn   grk   r<   r=   r]   g1rS   rW   rX   rT   rU   rY   svgAttrsr   r1   s                    rv   _rawDrawzLabel._rawDraw  s   
[b

GG	DFTW$dftw&6777	4
400 
	 
AA	DM$*===A,,..JW$$Jx''Jc!11K  
	!4 
	9L 
	EE$
4#33T%77$($7$($7"&"3::	 	 	 	 	 	  	!BLL49T]2333FF488DL))***EE"IIII,0NDM4=xI040@$BRTXTagKT+b11H ! K ! !D"4Ax:NNA"+AK$/AM$/AMEE!HHHLAA! !K ! !Dq!TX>>>A#-AL!)AJ!)AJ"+AKEE!HHHLAArx   c                     t          | dd           }|r> |d|            	 |                                  |d|            S #  |d|            w xY w|                                 S )Nrf   TF)rr   r   )rt   rf   s     rv   drawz
Label.drawY  s~    #D)<TBB 	#d4(((.}}!!%----!!%----==??"s   A ANrp   )&__name__
__module____qualname____doc__AttrMapAttrMapValuer   r   r	   r   r
   r   r   r   r   r   r   r   r   r    r"   r$   r   _attrMaprw   propertyrd   setterr   r   r   r   r   r   r   r   r   r   rp   rx   rv   rA   rA   "   s         w #
 #
 #
Lr****#
Lr****#
 \((:;;;;#
 \((:;;;;	#

 X+qrrrr#
 !L2PQQQQ#
 &m9RSSSS#
 &hNCCCC#
 $|M7UVVVV#
 !LxtD!A!AGkllll#
 X+@AAAA#
 X+@AAAA#
 !L4FGGGG#
 #l=6OPPPP#
 #l81JKKKK#
  |H*FGGGG!#
"  <.IJJJJ##
$  <.DEEEE%#
& ,~26666'#
( ^1IJJJJ)#
*  <4YZZZZ+#
, n2JKKKK-#
. "\,4fgggg/#
0 ,y.PQQQQ1#
2 "\(0GHHHH3#
4 #l81IJJJJ5#
6 $|H2KLLLL7#
8 %X3MNNNN9#
: ,xx(HIIJabbb;#
< (<	  8X  Y  Y  Y  Y=#
> )L)9  @F  WX  Y  Y  Y  Y?#
@ l66,,z":":;MNNTs  EF  G  G  G  GA#
B  <||H'='=>P Q Q  XW  hi  j  j  j  jC#
D  <[(A(A,,{B[B['\ ] ]  dS  de  f  f  f  fE#
HJ# # #J   X ^d d ^d      *  ( ( (. . .*B# B# B#H  ? ? ?B	# 	# 	# 	# 	#rx   rA   c            	       ^   e Zd Z edi d eed          d eed          d eed          d eed          d eed          d eed          d	 eed          d
 eed          d eed          d eed          d eed          d ee          ddd eed          d eed          d eed          d eed          d eed          d eed          d ee	d          d ee
d          Zd Zd Zd ZdS )LabelDecoratorr<   rB   rC   r=   rE   rF   rG   rH   rI   rJ   rK   rS   rT   rU   rD   rW   rX   rY   rZ   r[   r\   r]   r^   r_   c                     d| _         d| _        | j                                        D ]#}t	          | |          st          | |d            $d S )Nr(   r3   )r]   rH   r   keyshasattrsetattrrt   as     rv   rw   zLabelDecorator.__init__|  sW    !##%% 	9 	9A4??8GD4$8$8$8	9 	9rx   c                     |j         \  }}}}}}}	}
}}}}|                    |j        j        |                    |                    |           d S r   )_callOutInfor   categoryAxiscategoryNamesr   )rt   lLchartr   rowNocolNor<   r=   rZ   r\   x00y00x0y0s                  rv   decoratezLabelDecorator.decorate  sR    =>^:aeAafSR			%$259:::	arx   c                     t                      }| j                                        D ])\  }}|t          ||d           }t	          |||           *|                     ||           d S r   )rA   __dict__itemsrr   r   r   )rt   r   r   r   vs        rv   __call__zLabelDecorator.__call__  sl    GG=&&(( 	 	CAayga$//!AaNNNNarx   Nrp   )r   r   r   r   r   r   r   r	   r   r   r   r   rw   r   r  rp   rx   rv   r   r   d  s       w 
 
 
LR0000
LR0000
 \.b1111
 \.b1111	

 ^4444
 !L"5555
 &m<<<<
 &n"====
 $|Mr::::
 !LB7777
 #l=b9999
 #l>222
 9;
  <B7777
  <B7777
 ,~26666
  ^4444!
"  <B7777#
$ n"5555%
& "\,B7777'
( ,y.PQQQQ)
H.9 9 9  
    rx   r   highlowbaraxisc            	           e Zd Z e eed           eed           eed           eed                    Zd Zd Z	d	S )
LabelOffsetzWhere to base +ve offsetrC   zValue for positive elementszWhere to base -ve offsetzValue for negative elements)posModeposnegModenegc                 >    dx| _         | _        dx| _        | _        d S )Nr  r   )r  r
  r	  r  r   s    rv   rw   zLabelOffset.__init__  s"    "((T\4888rx   c                    |j         }|j        }|j        }|dk    r| j        }| j        }n| j        }| j        }|r|j        }n|j        }|r6|r|j        }	n|j        }	|dk    r|	|j	        z   }n|dk    r|	}n|dk    r|	|z   }||z   S )Nr   r  r  r  )
_flipXYr   joinAxisr  r	  r
  r  _x_y_length)
rt   r   valflipXYAjAmodedeltar   _vs
             rv   	_getValuezLabelOffset._getValue  s    Z66<DHEE<DHE 	AAA 
	 UUV||OuusFwrx   N)
r   r   r   r   r   isOffsetModer   r   rw   r  rp   rx   rv   r  r    s        w&,|9STTT"l81NOOO&,|9STTT"l81NOOO	  H         rx   r  c                   8    e Zd Z ee          Zd Zd Zd ZdS )PMVLabelBASEc                 8    t          j        | fi | d| _        d S Nr   )rA   rw   _pmvrt   kwdss     rv   rw   zPMVLabel.__init__  s%    t$$t$$$			rx   c           
      t    t                               |           }| j        dk     rdddddddd	d
d	|         }|S )Nr   r0   r1   r2   r/   r?   r3   r.   r-   r4   )	r4   r-   r.   r3   r?   r/   r2   r1   r0   )rA   r   r"  r   s     rv   r   zPMVLabel._getBoxAnchor  sH    %%9Q;;$3DSSSVZ_bhlmmnoprx   c                 h    t                               |           }| j        dk     rdddd|         }|S )Nr   r)   r*   r(   )r(   r*   r)   )rA   r   r"  r   s     rv   r   zPMVLabel._getTextAnchor  s8      &&9Q;;UXWMMaPrx   N)	r   r   r   r   rA   r   rw   r   r   rp   rx   rv   r  r    sZ        w
 
 
H    
    rx   r  c                       e Zd ZdZ ee eed           eed           ee	d           ee	d           ee
d           e edd	d
dd          d                    Zd ZdS )BarChartLabelF
    An extended Label allowing for nudging, lines visibility etc
    zNon-zero for a drawn linerC   zColor for a drawn linezNone or fixed draw ends +/-zNone or fixed draw starts +/-zNon-zero sign dependent nudgerM   rN   rO   rP   midz(one of ('normal','anti','lo','hi','mid'))r  lineStrokeWidthlineStrokeColorfixedEnd
fixedStartnudgerL   c                 p    t          j        | fi | d| _        d | _        d x| _        | _        d| _        d S r!  )r  rw   r+  r,  r.  r-  r/  r#  s     rv   rw   zBarChartLabel.__init__  sD    $''$''' #*..$-


rx   N)r   r   r   r   r   r  r   r   r	   NoneOrInstanceOfLabelOffsetr   r   r   rw   rp   rx   rv   r(  r(    s          w&,~<WXXX&,};STTT< ;B_```!\"=DcdddX,KLLL LxtD!G!GMwxxx
 
 
H    rx   r(  c                   H    e Zd ZdZ ee eed                    Zd Z	dS )NA_Labelr)  zText to be used for N/A valuesrC   )r  rV   c                 H    t                               |            d| _        d S )Nzn/a)r(  rw   rV   r   s    rv   rw   zNA_Label.__init__  s!    t$$$			rx   N)
r   r   r   r   r   r(  r   r   r   rw   rp   rx   rv   r3  r3    s[          w|N1QRRR
 
 
H    rx   r3  )CustomDrawChangerc                   (    e Zd Zej        fdZd ZdS )RedNegativeChangerc                 <    t          j        |            || _        d S r   )r5  rw   rS   )rt   rS   s     rv   rw   zRedNegativeChanger.__init__  s    "4((("rx   c                 j    i }|j                             d          r|j        |d<   | j        |_        |S )N-rS   )rn   
startswithrS   )rt   r   Rs      rv   _changerzRedNegativeChanger._changer  s8    9$$ 	+ ]AkN NCMrx   N)r   r   r   r   redrw   r=  rp   rx   rv   r7  r7    s<         &
 # # # #    rx   r7  c                   0    e Zd ZdZ ee          Zd ZdS )	XLabelz=like label but uses XPreFormatted/Paragraph to draw the _textr  c                     t          j        | g|R i | |                    dt                    | _        |                    d| j                  | _        d S )Nrk   directDrawClass)rA   rw   popr!   rk   ri   )rt   argsr$  s      rv   rw   zXLabel.__init__  sS    t)T)))D)))M::88-dh77rx   Fc                     |                     dt                    | _        |                     dt                    }|t	          d          || _        t          j        | g|R i | d S )NflowableClassrB  r   )rC  r!   _flowableClassr>   r   _ddfrA   rw   )rt   rD  r$  ri   s       rv   rw   zXLabel.__init__  sz    "&((?="I"ID((,-?@@C{"  $A  B  B  BDIN4---------rx   c                 `   g | _         t          d| j        | j        | j        | j                  x}| _        |                                  | j        rd|_	        | j
        | j        z
  |_        n| j        r| j        n	| j        dz  |_        |j        | _        |                                 }| j        pd}|dk    rOt           |_        |                     | j        |          }|                    |d          \  }}| j        p|j        }t,          |         |_        |                     | j        |          x| _        }|                    |d          \  }}| j        s/| j        | j        z   | _        | xj        | j        j        z  c_        n| j        | _        |                     |           d S )Nr   )rW   rX   rS   rT   Tr   r   r(   r   )r   r#   rW   rX   rS   rT   r   r   re   r   r   r   rY   r   r   r[   r%   r   rG  rn   r   r   r   _objrZ   ra   rb   r   r   )rt   r   r   r   r   r   r   s          rv   r   zXLabel.computeSize	  s   !D ./A!]!]"n $ 0	! ! ! C$+ ""$$$$ R"&"lT]:.2lQdllc@QKDM$$&&B,*B7{{ '))$*3)??((2j114]4cn"2JCM"11$*31GGGDIhhr*--GAt: )".t/@@ty33"j  &&&&&rx   c                    | j         }|pd| _         |                                  || _         t                      }|                    | j        | j        z   | j        | j        z              |                    | j	                   | j
        }| j        s| j        rc| j        r\|                    t          | j
        | j        z
  | j        | j        z
  | j        | j        | j        | j        | j                             t                      }|                    || j        | j        z
             |                    |                     | j                             |                    |           |S )NrB   )rT   rU   rS   )rn   r   r   r   r<   rE   r=   rF   r   rG   r   rK   rI   rJ   r   r   ra   r   rc   r   r   r   r   rH  rJ  )rt   rn   r   r<   r   s        rv   r   zXLabel._rawDraw+  sP   JE"DJDJAKK($&47*:;;;HHTZ   
A   T%8 T=P dDJt'77 L);; K L(,(;(,(;&*&79 9 9    BLL49T]2333FF499TY''(((EE"IIIHrx   N)
r   r   r   r   r   rA   r   rw   r   r   rp   rx   rv   r@  r@    sC        GGwE   H8 8 8
D Drx   r@  )G__version__reportlab.libr   reportlab.lib.utilsr   reportlab.lib.geomutilsr   reportlab.lib.validatorsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   reportlab.lib.attrmapreportlab.pdfbase.pdfmetricsr   r   reportlab.graphics.shapesr   r   r   r   r   r   reportlab.graphics.widgetbaser   r   r    reportlab.platypusr!   r"   reportlab.lib.stylesr#   r$   reportlab.lib.enumsr%   r&   r'   r   r   utilsr,   r   r   rlextra.graphics.canvasadapterr>   ImportErrorr   rA   r   r  r  r1  r  r(  r3  NoneOrInstanceOfNA_Labelreportlab.graphics.charts.utilsr5  r7  r@  rp   rx   rv   <module>r]     sV                + + + + + + 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $ # # # F F F F F F F F Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z < < < < < < < < 0 0 0 0 0 0 6 6 6 6 6 6 6 6 < < < < < < < < < < < < < < < < < <	G		:	:	: + + + + + + $CTsQU\`aa$CTsQU\`aa	
 	

AAAAAAA    g%u5V^ckpxyy@# @# @# @# @#F @# @# @#D
( ( ( ( ( ( ( (T U6%f--$ $ $ $ $* $ $ $L #F<<#<#<==     u   &    H   *
 
 
 
 
} 
 
 
  X 6 677  = = = = = =	 	 	 	 	* 	 	 	M M M M MU M M M M Ms   )B0 0B:9B: