Ë
    ¡ëi© ã                   óà  — d Z dZddlZddl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 ddlmZmZ ddlmZmZ dd	lmZmZ dd
lmZ ddl m!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z'm(Z(m)Z) ddl*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7  G d„ de"«      Z8 G d„ de3«      Z9 G d„ de9«      Z: G d„ de9«      Z; G d„ d«      Z< G d„ de9«      Z= G d„ de=e:«      Z> G d „ d!e=e;«      Z?d"„ Z@d#„ ZAd$„ ZBd%„ ZCd&„ ZDd'„ ZEd(„ ZFd)„ ZGd*„ ZHd+„ ZId,„ ZJd-„ ZKg d.¢ZLd/„ ZMd0„ ZNd1„ ZOd2„ ZPd3„ ZQd4„ ZRd5„ ZSd6„ ZTd7„ ZUd8„ ZVd9„ ZWd:„ ZXd;„ ZYd<„ ZZd=„ Z[d>„ Z\d?„ Z]d@„ Z^g d.¢ZLdA„ Z_dB„ Z`dC„ ZadD„ ZbdE„ ZcdF„ ZddG„ ZedH„ Zf G dI„ dJe(«      Zgy)Kz3.3.0z™This module defines a variety of Bar Chart components.

The basic flavors are stacked and side-by-side, available in horizontal and
vertical versions. 

é    N)Úliteral_eval)Úcolors)ÚisNumberÚisNumberOrNoneÚisColorOrNoneÚisStringÚ
SequenceOfÚ	isBooleanÚisStringOrNoneÚNoneOrÚisListOfNumbersOrNoneÚEitherOrÚOneOfÚisInt)ÚisStrÚyieldNoneSplits)ÚuSymbol2SymbolÚisSymbol)ÚAttrMapÚAttrMapValue)ÚstringWidth)ÚTypedPropertyCollectionÚ
PropHolderÚ
tpcGetItem)ÚLineÚRectÚGroupÚDrawingÚPolyLine)ÚXCategoryAxisÚ
YValueAxisÚYCategoryAxisÚ
XValueAxis)ÚBarChartLabelÚNoneOrInstanceOfNA_Label)ÚPlotArea)Ú_objStr©Úcmpc                   óà   — e Zd Z e eed¬«       eed¬«       eed¬«       eed¬«       eddd¬	«       eed
¬«       e e	e
«      dd¬	«       eed¬«       e e	e«      d¬«      ¬«	      Zd„ Zy)ÚBarChartPropertieszColor of the bar border.©ÚdesczColor of the bar interior area.zWidth of the bar border.zDash array of a line.Nz,A widget to be used instead of a normal bar.é   ©r-   ÚadvancedUsagez0Text to be associated with a bar (eg seriesname)z!None or makeMarker('Diamond') ...z(minimum width/height that will be drawn.z%if this bar should be drawn as a line)	ÚstrokeColorÚ	fillColorÚstrokeWidthÚstrokeDashArrayÚsymbolÚnameÚswatchMarkerÚminDimenÚisLinec                 óf   — d | _         t        j                  | _        d| _        d | _        d | _        y )Nç      à?)r1   r   Úbluer2   r3   r5   r4   ©Úselfs    úc/var/www/html/chat/reports/venv/lib/python3.12/site-packages/reportlab/graphics/charts/barcharts.pyÚ__init__zBarChartProperties.__init__,   s,   € ØˆÔÜŸ™ˆŒØˆÔØˆŒØ#ˆÕó    )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r
   Ú_attrMapr@   © rA   r?   r+   r+      s…   „ ÙÙ" =Ð7QÔRÙ  Ð5VÔWÙ" 8Ð2LÔMÙ&Ð'<ÐCZÔ[Ù˜dÐ)WÐfgÔhÙ˜HÐ+]Ô^Ù#¡F¨8Ó$4Ð;^ÐmnÔoÙ Ð5_Ô`Ù™f YÓ/Ð6]Ô^ô

€Hó$rA   r+   c                   óè  — e Zd ZdZ edNi de“d e ee ee	e
f«      f«      dd¬«      “d ee
d¬	«      “d
 ee
d¬	«      “d ee
d¬	«      “d edd¬	«      “d edd¬	«      “d edd¬	«      “d edd¬	«      “d edd¬	«      “d edd¬	«      “d eddd¬«      “d edd¬	«      “d eed d¬«      “d! eed"d¬«      “d# edd$¬	«      “d% ee
d&¬	«      “d' e ed(d)d*«      d+¬	«      “d, edd-d¬«      “d. eed/¬	«      “d0 eed1d¬«      “d2 e e eed3d3d¬4«      d3dd¬4«      d5«      “ŽZd6„ ZdOd7„Zd8„ Zd9„ Zd:„ Zd;„ Zd<„ Zd=„ Zd>„ Zd?„ Zd@„ ZdA„ ZdB„ ZdPdC„ZdQdD„ZdE„ Z dF„ Z!dG„ Z"dH„ Z#dI„ Z$dJ„ Z%dK„ Z&dL„ Z'dM„ Z(y)RÚBarChartz(Abstract base class, unusable by itself.ÚBASEÚuseAbsolutezrFlag to use absolute spacing values; use string of gsb for finer control
(g=groupSpacing,s=barSpacing,b=barWidth).r.   r/   ÚbarWidthzThe width of an individual bar.r,   ÚgroupSpacingzWidth between groups of bars.Ú
barSpacingzWidth between individual bars.ÚbarsNzHandle of the individual bars.Ú	valueAxiszHandle of the value axis.ÚcategoryAxiszHandle of the category axis.Údataz/Data to be plotted, list of (lists of) numbers.Ú	barLabelsz!Handle to the list of bar labels.ÚbarLabelFormatzZFormatting string or function used for bar labels. Can be a list or list of lists of such.ÚbarLabelCallOutz`Callout function(label)
label._callOutInfo = (self,g,rowNo,colNo,x,y,width,height,x00,y00,x0,y0)ÚbarLabelArrayzGexplicit array of bar label values, must match size of data if present.ÚreversePlotOrderz,If true, reverse common category plot order.ÚnaLabelzLabel to use for N/A values.Úannotationsz<list of callables, will be called with self, xscale, yscale.ÚcategoryLabelBarSizez=width to leave for a category label to go between categories.ÚcategoryLabelBarOrderÚfirstÚlastÚautoz,where any label bar should appear first/lastÚ	barRecordzJcallable(bar,label=labelText,value=value,**kwds) to record bar informationÚzIndexOverridesa!  None (the default ie use old z ordering scheme) or a ',' separated list of key=value (int/float) for new zIndex ordering. If used defaults are
    background=0,
    categoryAxis=1,
    valueAxis=2,
    bars=3,
    barLabels=4,
    categoryAxisGrid=5,
    valueAxisGrid=6,
    annotations=7ÚcategoryNALabelz'Label to use for a group of N/A values.ÚseriesOrderr   )ÚemptyOKÚNoneOKÚloz#dynamic 'mixed' category style casec           
      ón  — | j                   }|t        |«      z  }||   }t        |dt        |dd «      «      }	t        |dt        |dd «      «      }
t        |dt        |dd «      «      }t        |dt        |dd «      «      }t        |dt        |dd «      «      }|rt        |||dz  z   ||dz  z   |
«      S t        |dd«      rã||dz  z   }t	        |d	«      r|j
                  }nt	        |d	«      r|j
                  }nd }t        ||||z   ||j                  xs |j                  |j                  |j                  ¬
«      }|r,t        |||dz  z   ||j                  xs |j                  «      }|r0|r.t        «       }|j                  |«       |j                  |«       |S |xs |S t        ||||||	||
¬«      S )Nr1   r2   r4   r3   r7   ç       @r9   Fr5   ©r1   r3   r4   )r3   r1   r4   r2   )rN   ÚlenÚgetattrr   Úhasattrr5   r   r1   r2   r3   r4   r   Úaddr   )r>   ÚrowNoÚxÚyÚwidthÚheightÚ	baseStyleÚstyleIdxÚstyler1   r2   r4   r3   r7   Úyh2ÚSÚLÚgs                     r?   ÚmakeSwatchSamplezBarChart.makeSwatchSampleW   s»  € Ø—I‘Iˆ	Øœ3˜y›>Ñ)ˆØ˜(Ñ#ˆÜ˜e ]´G¸IÀmÐTXÓ4YÓZˆÜ˜E ;´¸	À+ÈdÓ0SÓTˆ	Ü! %Ð):¼GÀIÐN_Ð`dÓ<eÓfˆÜ˜e ]´G¸EÀ=ÐQUÓ4VÓWˆÜ˜u n´g¸iÈÐX\Ó6]Ó^ˆÙÜ! ,¨q°°r±©z¸!¸FÀ2¹I¹+ÀiÓPÐPÜ�U˜8 EÔ*Ø�F˜2‘I‘+ˆCÜ�u˜hÔ'Ø—L‘L‘Ü˜ HÔ-Ø×$Ñ$‘à�Ü�Q�s˜A˜e™G SØ %× 1Ñ 1Ò D°U·_±_Ø %× 1Ñ 1Ø&+×&;Ñ&;ô=ˆAñ
 ”n Q q¨¨r©¡z°#°e×6GÑ6GÒ6ZÈ5Ï?É?Ó[�!Ù‘QÜ“G�Ø—‘�a”Ø—‘�a”Ø�Ø’6˜ˆMä˜˜!˜E &°[È[Ø(7À)ôMð MrA   c                 óH   — t        t        | j                  |   d|«      «      S )zreturn series name i or defaultr6   )r'   ri   rN   )r>   ÚiÚdefaults      r?   ÚgetSeriesNamezBarChart.getSeriesNamez   s   € ä”w˜tŸy™y¨™|¨F°7Ó;Ó<Ð<rA   c                 ó0  — | j                   j                  dvsJ d| j                   j                  z  «       ‚| j                  rt        «       | _        t        «       | _        nt        «       | _        t        «       | _        t        dddd«      | j                  j                  d   _        t        j                  | «       d| _        d| _        d	d
g| _        d| _        d| _        d| _        d| _        t)        t*        «      | _        d| j,                  _        d| j,                  _        d | _        d | _        d| j,                  _        t)        t8        «      | _        d| j:                  _        t>        j@                  | j:                  _!        d | j:                  _"        t>        jF                  | j:                  d   _$        t>        jJ                  | j:                  d   _$        t>        jL                  | j:                  d   _$        d x| _'        | _(        d | _)        y )N)rH   Ú
BarChart3DzAbstract Class %s InstantiatedÚstackedÚparallelÚparallel_3dÚmixedrs   r   )éd   én   éx   é‚   )éF   éP   éU   éZ   é
   é   ÚcÚmiddler.   é   )*Ú	__class__rB   Ú_flipXYr"   rP   r#   rO   r    r!   r   rE   Úvalidater&   r@   rM   rV   rQ   rJ   rK   rL   r   r$   rR   Ú	boxAnchorÚ
textAnchorrS   rU   Únudger+   rN   r3   r   Úblackr1   r4   Úredr2   Úgreenr<   rW   r`   r_   r=   s    r?   r@   zBarChart.__init__~   s²  € Ø�~‰~×&Ñ&Ð.GÑGð  	DÐIiÐlp×lzÑlz÷  mDñ  mDñ  JDó  	DÐGà�<Š<Ü -£ˆDÔÜ'›\ˆD�Nä -£ˆDÔÜ'›\ˆDŒNÜ7<¸YÀzÐR_Ð`gÓ7hˆ×Ñ×"Ñ" 7Ñ+Ô4ä×Ñ˜$ÔØˆŒØ !ˆÔð 'Ø$ð&ˆŒ	ð ˆÔØˆŒØˆÔØˆŒä0´Ó?ˆŒØ#&ˆ�‰Ô Ø$,ˆ�‰Ô!Ø"ˆÔØ!ˆÔð  !ˆ�‰Ôô ,Ô,>Ó?ˆŒ	Ø !ˆ�	‰	ÔÜ &§¡ˆ�	‰	ÔØ$(ˆ�	‰	Ô!ä!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔÜ!'§¡ˆ�	‰	�!‰ÔØ.2Ð2ˆŒ�tÔ+Ø#ˆÕrA   c                 ó¨   — | j                   j                  dk(  rt        d«      ‚t        dd«      }| j                  «       }|j	                  |«       |S )zShows basic use of a bar chartrH   z#Abstract Class BarChart has no demoéÈ   rƒ   )r�   rB   ÚNotImplementedErrorr   rk   )r>   ÚdrawingÚbcs      r?   ÚdemozBarChart.demo»   sH   € à�>‰>×"Ñ" JÒ.Ü%Ð&KÓLÐLÜ˜#˜sÓ#ˆØ�^‰^ÓˆØ�‰�BŒØˆrA   c           	      ó”  — t        | dd «      }t        | j                  «      }|s!t        |«      D �cg c]  }|f‘Œ }}|| _        y | j                  }t        t        |«      «      }t        «       }g }|D ]v  }|D �ch c]  }d|cxk  r|k  sŒn n|’Œ }	}|	D �ch c]  }|j                  |dd«      sŒ|’Œ }
}|
r|	|
z  }	||
z  }||
z  }|	sŒX|j                  t        |	«      «       ||	z  }Œx |r!|j                  d„ t        |«      D «       «       |r!|j                  d„ t        |«      D «       «       || _        y c c}w c c}w c c}w )Nra   r   r9   Fc              3   ó"   K  — | ]  }|f–— Œ	 y ­w©NrF   ©Ú.0Ússs     r?   ú	<genexpr>z*BarChart.getSeriesOrder.<locals>.<genexpr>Ù   s   è ø€ Ò8 2˜"œÑ8ùó   ‚c              3   ó"   K  — | ]  }|f–— Œ	 y ­wr¡   rF   r¢   s     r?   r¥   z*BarChart.getSeriesOrder.<locals>.<genexpr>Û   s   è ø€ Ò7 2˜"œÑ7ùr¦   )ri   rh   rQ   ÚrangerN   ÚsetÚ	checkAttrÚappendÚtupleÚextendÚsortedÚ_seriesOrder)r>   ÚbsÚnr¤   ÚRrN   ÚunseenÚlinesÚsrw   Úgls              r?   ÚgetSeriesOrderzBarChart.getSeriesOrderÄ   s8  € Ü�T˜-¨Ó-ˆÜ�—	‘	‹NˆÙÜ!& q£Ö*˜2�"’Ð*ˆAÐ*ð( ˆÕð% —9‘9ˆDÜœ˜q›“]ˆFÜ“EˆEØˆAØò 	 �Ø"#Ö0˜B q¨"¤x¨a¦x’RÐ0�Ð0Ø#$ÖJ˜R¨¯©°r¸(À5Õ(I’bÐJ�ÐJÙØ˜‘G�AØ˜R‘K�EØ˜b‘L�FÚØ—H‘HœU 1›XÔ&Ø˜a‘K‘Fð	 ñ Ø—‘Ñ8¬°«Ô8Ô8ÙØ—‘Ñ7¬°«Ô7Ô7ØˆÕùò) +ùò 1ùÚJs   ²
D;Á;E ÂE ÂEÂ2Ec                 ó:  ‡‡— | j                   j                  }| j                  Št        t	        t        t        ‰«      «      «      }‰Š|dvrHg Šˆfd„}|dk(  r |‰Ž  ‰| _	        y | j                  «        | j                  D ]  } |ˆfd„|D «       Ž  Œ ‰| _	        y )N©r€   r�   c                  ó   •— t        d„ | D «       «      dgz  }|d d  }| D ];  }t        |«      D ]+  \  }}|xs d}|dk  r||xx   |z  cc<   Œ||xx   |z  cc<   Œ- Œ= ‰j                  |«       ‰j                  |«       y )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr¡   )rh   )r£   Úds     r?   r¥   zBBarChart._getConfigureData.<locals>._accumulate.<locals>.<genexpr>ç   s   è ø€ Ò/¨œS ŸVÑ/ùs   ‚r   ç�íµ ÷Æ°¾)ÚmaxÚ	enumerater«   )ÚDÚpdataÚndatar¼   rz   ÚvrQ   s         €r?   Ú_accumulatez/BarChart._getConfigureData.<locals>._accumulateæ   s�   ø€ ÜÑ/¨QÔ/Ó0°!°Ñ4�Ø™a˜�Øò *�AÜ(¨›|ò *™˜˜!ØšF ˜Ø˜eš8Ø! !›H¨™MœHà! !›H¨™MœHñ*ð*ð —‘˜EÔ"Ø—‘˜EÕ"rA   r   c              3   ó(   •K  — | ]	  }‰|   –— Œ y ­wr¡   rF   )r£   ÚjÚ_datas     €r?   r¥   z-BarChart._getConfigureData.<locals>.<genexpr>÷   s   øè ø€ Ò!6¨q %¨¥(Ñ!6ùs   ƒ)
rP   rs   rQ   r¾   ÚlistÚmaprh   r·   r¯   Ú_configureData)r>   ÚcAStyleÚccrÄ   ÚbrÇ   rQ   s        @@r?   Ú_getConfigureDatazBarChart._getConfigureDataÞ   sŸ   ù€ Ø×#Ñ#×)Ñ)ˆØ�y‰yˆÜ””cœ#˜d“mÓ$Ó%ˆØˆØÐ4Ñ4àˆDô#ð ˜	Ò!Ù˜UÑ#ð
 #ˆÕð ×#Ñ#Ô%Ø×*Ñ*ò 8�AÙÓ!6°AÔ!6Ò7ð8à"ˆÕrA   c                 óÄ   — | j                  «        | j                  j                  | j                  «       | j                  j                  | j                  j
                  fS )z Attempt to return the data range)rÎ   rO   Ú	_setRangerÊ   Ú	_valueMinÚ	_valueMaxr=   s    r?   Ú
_getMinMaxzBarChart._getMinMaxú   sE   € à×ÑÔ Ø�‰× Ñ  ×!4Ñ!4Ô5Ø�~‰~×'Ñ'¨¯©×)AÑ)AÐAÐArA   c                 ó  — | j                   }|j                  | j                  | j                  |«       | j	                  «        |j                  | j                  «       |j                  d«      }|j                  s||k\  r
|||z   k  r|S |S )z8Position and configure value axis, return crossing valuer   )	rO   ÚsetPositionrm   rn   rÎ   Ú	configurerÊ   ÚscaleÚ	forceZero)r>   ÚorgÚlengthÚvAÚ	crossesAts        r?   Ú
_drawBeginzBarChart._drawBegin   ss   € à�^‰^ˆØ
�‰�t—v‘v˜tŸv™v vÔ.Ø×ÑÔ Ø
�‰�T×(Ñ(Ô)ð —H‘H˜Q“Kˆ	ØŸLšL¨Y¸ª^À	È3ÈvÉ:Ò@UˆyÐ_Ð\_Ð_rA   c                 óh	  — | j                   }| j                  }|j                  | j                  «       | j	                  «        t        «       }t        | dd«      }|�s=|j                  | j                  «       «       t        |dd«      }t        |dd«      }|s|j                  || |j                  ¬«       |s|j                  || |j                  ¬«       |j                  | j                  «       «       |j                  |«       |j                  |«       |r|j                  || |j                  ¬«       |r|j                  || |j                  ¬«       t        | dd«      D ]/  }|j                   || |j                  |j                  «      «       Œ1 | `|S t        dd	d
ddddd¬«      }|j                  «       j                  d«      D ]¨  }	|	j                  «       }	|	sŒ	 |	j                  d«      \  }
}|
|vrPt!        d|
›d|›ddj#                  t%        |j'                  «       «      D �
cg c]  }
|
›d||
   ›�‘Œ c}
«      ›�«      ‚	 t)        |«      }t+        |t,        t.        f«      sJ ‚	 |||
<   Œª |j1                  «       D �
�cg c]	  \  }
}||
f‘Œ }}
}|j3                  «        | j                  «       }|j4                  j7                  d«      }|D �]  \  }}
|
dk(  r |j                  | j                  «       «       Œ,|
dk(  r|j                  |«       ŒC|
dk(  r|j                  || |j                  ¬«       Œg|
dk(  r|j                  |«       Œ~|
dk(  r|j                  || |j                  ¬«       Œ¢|
dk(  r|j                  |«       Œ¹|
d k(  r|j                  |«       ŒÐ|
dk(  sŒÖt        | dd«      D ]/  }|j                   || |j                  |j                  «      «       Œ1 �Œ | `|S #  t!        d|	›d|›ddj#                  t%        |j'                  «       «      D �
cg c]  }
|
›d||
   ›�‘Œ nc c}
w c}
«      ›�«      ‚xY wc c}
w #  t!        d||	|dj#                  t%        |j'                  «       «      D �
cg c]  }
|
›d||
   ›�‘Œ nc c}
w c}
«      fz  «      ‚xY wc c}}
w )!z"finalize the drawing of a barchartr_   NÚdrawGridLastF)ÚparentÚdimrX   rF   r   r.   r�   é   é   rŒ   é   é   )Ú
backgroundrP   rO   rN   rR   ÚcategoryAxisGridÚvalueAxisGridrX   ú,ú=zBadly formatted zIndex clause z in z
allowed variables are
ú
zUnknown zIndex variable zCBad zIndex value %r in clause %r of zIndex
allowed variables are
%séÿÿÿÿræ   rP   rç   rO   rè   rN   rR   )rP   rO   rÖ   rÊ   ÚcalcBarPositionsr   ri   rk   ÚmakeBackgroundÚmakeGridÚgetGridDimsÚmakeBarsr×   ÚdictÚstripÚsplitÚ
ValueErrorÚjoinr®   Úkeysr   Ú
isinstanceÚfloatÚintÚitemsÚsortÚcontentsÚpop)r>   ÚcArÛ   rw   ÚzIndexÚcAdglÚvAdglÚaÚZÚzÚkrÃ   rÍ   Úbls                 r?   Ú_drawFinishzBarChart._drawFinish  s  € à×ÑˆØ�^‰^ˆØ
�‰�T×(Ñ(Ô)Ø×ÑÔÜ‹Gˆä˜Ð/°Ó5ˆÚØ�E‰E�$×%Ñ%Ó'Ô(Ü˜B˜~¨eÓ4ˆEÜ˜B˜~¨eÓ4ˆEÙ˜"Ÿ+™+ a¨t¸¿¹˜+ÔHÙ˜"Ÿ+™+ a¨t¸¿¹˜+ÔHØ�E‰E�$—-‘-“/Ô"Ø�E‰E�"ŒIØ�E‰E�"ŒIÙ�b—k‘k !¨4°R·^±^�kÔDÙ�b—k‘k !¨4°R·^±^�kÔDÜ˜T -°Ó3ÒU�°Q·U±U¹1¸TÀ"Ç(Á(È2Ï8É8Ó;TÕ5UÐUðb ÐØˆôa ØØØØØØ!"ØØô	ˆAð —\‘\“^×)Ñ)¨#Ó.ò �Ø—G‘G“I�Ù˜(ðpØŸ™ ›‘C�A�að ˜A‘:Ý$ÒfgÒhiÐjn×jsÑjsô  QWð  XY÷  X^ñ  X^ó  X`ó  Qaö  ubð  LMò  @Að  BCð  DEò  BFò  vGò  ubô  kcð  &dó  eð  eðvÜ$ Q›�AÜ% a¬¬s¨Ô4Ð4Ñ4ð ��!’ðð #$§'¡'£)×,™3˜1˜Q�!�A’Ð,ˆAÑ,Ø�F‰FŒHØ—‘“ˆAØ—‘—‘ Ó#ˆBØó ^‘��!Ø�l’?Ø—E‘E˜$×-Ñ-Ó/Õ0Ø˜Ò&Ø—E‘E˜"•IØÐ*Ò*Ø—K‘K ¨°2·>±>�KÕBØ˜’^Ø—E‘E˜"•IØ˜Ò'Ø—K‘K ¨°2·>±>�KÕBØ˜’YØ—E‘E˜!•HØ˜’^Ø—E‘E˜"•IØ˜Ó%Ü$ T¨-¸Ó;Ò]˜¸Q¿U¹UÁ1ÀTÈ"Ï(É(ÐSU×S[ÑS[ÓC\Õ=]Ò]ð!^ð$ ÐØˆøðCpÝ$ÒlmÒntÐuy×u~Ñu~ô  \bð  cd÷  ciñ  ció  ckó  \lö  @mð  WXò  KLð  MNð  OPò  MQò  ARñ  @mùô  @mô  vnð  &oó  pð  püò ubøðvÜ$Ð%lÐpqÐrsÐtzÐ{÷  |Eñ  |Eô  bhð  ij÷  ioñ  ioó  iqó  brö  Fsð  ]^ò  QRð  STð  UVò  SWò  GXñ  Fsùô  Fsó  |tð  puñ  &uó  vð  vüã,s<   Ç$O5È.QÉ#QÊR.Ï54QÐ)P;Ð:QÑ1R+ÒRÒR+c                 óø	  ‡%‡&‡'‡(‡)‡*‡+‡,‡-‡.‡/‡0‡1‡2‡3‡4‡5‡6— | j                   Š,‰,r| j                  Š/n| j                  Š/| j                  }|j                  Š+| j
                  }t        |«      x}| _        t        t        t        t        |«      «      «      x| _        }| j                  }| j                  }| j                  }t        | dd«      }t        | dd«      }	|	dk(  r
‰,xr dxs d}	|	dk(  }	|j                   Š1| j"                  Š)t%        ˆ)fd„t'        |«      D «       «      }
||
z
  }‰1dk(  rD| j(                  }t        |«      |
z
  }||z  }|d	z
  |z  }|d	kD  r|}|}ndx}}||z  dgz  Š&‰&d
d
 Š'n-‰1dv rd	}||z  }|d	z
  |z  }|}|}n|}|dgz  Š&‰&d
d
 Š'|}dx}x}}||z   |z   x| _        Š-| j,                  Š2‰2r.t/        ‰2t0        «      sdŠ2ndd	d‰2v z  z   dd‰2v z  z   dd‰2v z  z   Š2ndŠ2t3         ‰+d«      d	   «      }||z
  }‰2dk(  r|‰-z  x| _        x}x}}n™‰2dk(  rdx}x}}|j6                  Š%n�‰2d	k(  rd}||z
  ||z   z  x}}nl‰2dk(  rd}||z
  ||z   z  x}}nW‰2dk(  rdx}}|r||z
  |z
  |z  nd}n>‰2dk(  rd}||z
  ||z   z  x}}n)‰2dk(  rdx}}||z
  |z
  |z  }n‰2dk(  rd	x}}||z
  |z
  |z  }| _        | _        | _        | j>                  }|j                  Š4|j@                  Š3|jB                  |jD                  }}|dcxk  r|k  rn n	 ‰4d«      Š*nd|k  r	 ‰4|«      Š*n|dk  r ‰4|«      Š*‰*| _#        ||z  Š5d|z  |z  }||z  ||z  z   }|r;|	r||dz  z   |z  }||z  }n|||z  z   ||z  z   |dz  z   |z  }||jH                  _%        g | _&        | jL                  jN                  }| jP                  }ˆ%ˆ&ˆ'ˆ(ˆ*ˆ+ˆ,ˆ-ˆ.ˆ/ˆ0ˆ1ˆ2ˆ3ˆ4ˆ5ˆ6fd„}‰1dk7  r~d} tS        |«      D ]m  \  }!Š0g Š(|r|d	z
  |!z
  n|!Š6|‰6|z  z   Š6‰)jU                  |!dd«      Š.‰.r| d	z  } ||d	z
  |z  dz  z   Š6n‰6| |z  z  Š6t'        |«      D ]  }" ||"|"«       Œ  |‰(«       Œo y
d} tS        | j(                  «      D ]‘  \  }#}$t        |$«      d	k  rdndŠ1|$D ]u  }!|r|d	z
  |#z
  n|#Š6|‰6|z  z   Š6g Š(||!   Š0‰)jU                  |!dd«      Š.‰.r| d	z  } ||d	z
  |z  dz  z   Š6n‰6| |z  z  Š6t'        |«      D ]  }" ||"|"|z  |#z   «       Œ  |‰(«       Œw Œ“ y
)z©Works out where they go. default vertical.

        Sets an attribute _barPositions which is a list of
        lists of (x, y, width, height) matching the data.
        rY   r   rZ   r]   r\   r[   c              3   óV   •K  — | ]   }t        ‰j                  |d d«      «      –— Œ" y­w)r9   FN)rú   rª   )r£   Ú_rN   s     €r?   r¥   z,BarChart.calcBarPositions.<locals>.<genexpr>o  s#   øè ø€ Ò[À1œ˜TŸ^™^¨A¨h°uÓ=×>Ñ[ùs   ƒ&)r‚   r.   Nr¹   rå   rÍ   r�   rw   rã   rµ   ç      ð?râ   rŒ   rä   r;   g      @c                 óÀ  •— ‰dk(  r‰ ‰| «      z  ‰z   ‰z   }n ‰| «      \  }}|‰z   }‰|    }|€d }‰}n‰‰dvra‰s_|dk  r- ‰‰	|   «      }‰r|‰k  rn|‰kD  r‰}‰	|xx   |z  cc<   ‰	|   }n/ ‰‰
|   «      }‰r|‰kD  rn|‰k  r‰}‰
|xx   |z  cc<   ‰
|   }n‰} ‰|«      |z
  }d|cxk  rdk  rn n	d}|dk  rd}‰j                  ‰xr |||‰fxs ||‰|f«       y )Nrå   r¹   r½   ç:Œ0âŽyE¾ç:Œ0âŽyE>)r«   )ÚcolNoÚaccxrm   rw   r  Údatumrp   rn   Ú_cscaleÚaccumNegÚaccumPosÚbarRowÚbaseLineÚcScaleÚflipXYÚ
groupWidthr9   rÙ   Úrowrs   rJ   ÚvARDÚvScalero   ÚxVals           €€€€€€€€€€€€€€€€€r?   Ú_addBarz*BarChart.calcBarPositions.<locals>._addBarÐ  s*  ø€ à˜AŠ~Ø™w u›~Ñ-°Ñ4°sÑ:‘á ›‘��AØ˜‘H�à˜‘JˆEØˆ}Ø�Ø‘àÐ :Ñ:Á6Ø˜e’|Ù" 8¨D¡>Ó2˜Ù*.˜A˜h›J°A°h²JÀXÀØ  ›¨%Ñ/›Ø (¨¡™á" 8¨D¡>Ó2˜Ù*.˜A˜h›J°A°h²JÀXÀØ  ›¨%Ñ/›Ø (¨¡™à �AÙ ›¨Ñ*�Ø˜Ô% Õ%Ø!�FØ˜U’{¨U FØ�M‰M˜&Ò7 a¨¨&°Ð%7ÒM¸A¸aÀÀfÐ;MÕNrA   r9   Fr€   r   )+r‘   rn   rm   rP   r×   rQ   rh   Ú_seriesCountr¾   rÈ   rÉ   Ú
_rowLengthrL   rM   rK   ri   rs   rN   Úsumr¨   r¯   Ú_groupWidthrJ   rø   Ústrrù   Ú_normFactorÚ_scaleÚ_normFactorBÚ_normFactorGÚ_normFactorSrO   ÚreverseDirectionrÑ   rÒ   Ú	_baseLineÚlabelsÚlabelPosFracÚ_barPositionsr«   rV   r¿   rª   )7r>   rÿ   rQ   ÚseriesCountÚ	rowLengthÚwGrM   rK   ÚclbsÚclboÚ	lineCountÚseriesMLineCountr¤   ÚbarsPerGroupÚwBÚwSÚbGapBÚbGapSÚaW0ÚaWÚfBÚfGÚfSrÛ   ÚvmÚvMÚoffsÚbGapÚlbpfÚaBPrV   r  ÚlineSeenrl   r  ÚsbÚsgr  r  r  r  rN   r  r  r  r  r9   rÙ   r  rs   rJ   r  r  ro   r  s7                                        @@@@@@@@@@@@@@@@@@r?   rí   zBarChart.calcBarPositionsS  s+  ÿÿù€ ð —‘ˆÙØ—&‘&‰Cà—&‘&ˆCØ×ÑˆØ—‘ˆà�y‰yˆä*-¨d«)Ð3ˆ�dÔ'Ü&)¬$¬s´3°t«}Ó*=Ó&>Ð>ˆŒ˜)Ø×ÑˆØ—_‘_ˆ
Ø—=‘=ˆÜ�tÐ2°1Ó5ˆÜ�tÐ3°FÓ;ˆØ�Š< Ò 1¨6Ò <°W˜Ø�W‰}ˆØ—‘ˆØ�y‰yˆÜÓ[ÌÈkÓHZÔ[Ó\ˆ	Ø&¨Ñ2ÐØ�'Š>Ø×"Ñ"ˆBÜ˜r›7 YÑ.ˆLØ˜hÑ&ˆBØ˜q‘. *Ñ,ˆBØ˜AŠ~Ø �Ø"‘à !Ð!�˜Ø# IÑ-¨q¨cÑ1ˆHØ¡�{‰HØÐ0Ñ0ØˆLØ! (Ñ*ˆBØ" 1Ñ$ jÑ0ˆBØˆEØ‰Eà+ˆLØ  ! ‘}ˆHØ¡�{ˆHØˆBØ!"Ð"ˆBÐ"�˜à(*¨2©¨b©Ð0ˆÔ˜:Ø×&Ñ&ˆáÜ˜k¬#Ô.Ø‘à ! S¨KÐ%7Ñ"8Ñ8¸¸CÀ;Ð<NÑ9OÑOÐPQÐSVÐZeÐSeÑPfÑf‘àˆKä‘F˜1“I˜a‘LÓ!ˆØ�4‰Zˆà˜Š>Ø.0°©mÐ;ˆDÔÐ;˜rÐ; B©Ø˜!Š^ØÐˆBÐ��bØ—i‘i‰GØ˜!Š^ØˆBØ˜"‘u˜r "™u‘oÐ%ˆB‘Ø˜!Š^ØˆBØ˜"‘u˜r "™u‘oÐ%ˆB‘Ø˜!Š^ØˆMˆB�Ù"$�"�R‘%˜‘(˜B’¨!‰BØ˜!Š^ØˆBØ˜"‘u˜r "™u‘oÐ%ˆB‘Ø˜!Š^ØˆMˆB�Ø�R‘%˜‘(˜B‘‰BØ˜!Š^ØˆKˆB�Ø�R‘%˜‘(˜B‘ˆBØˆÔØˆÔØˆÔð �^‰^ˆØ—‘ˆØ×"Ñ"ˆØ—‘˜rŸ|™|ˆBˆØ�Œ=�b�=Ù˜a“y‰HØ�ŠVÙ˜b“z‰HØ�!ŠVÙ˜b“zˆHØ!ˆŒà˜‘ˆØ�2‰v�b‰yˆØ�R‰x˜˜b™Ñ ˆáÙØ˜T #™X™ sÑ*�Ø˜‘‘à˜R ™U™
 2 b¡5Ñ(¨¨c©Ñ1°3Ñ6�Ø%)ˆB�I‰IÔ"àˆÔØ× Ñ ×'Ñ'ˆØ×0Ñ0Ð÷	O÷ 	Oô 	Oð@ �'Š>ØˆHÜ'¨›oò ‘
��sØ�Ù3C�| aÑ'¨%Ò/È�Ø˜d 4™iÑ'�ØŸ™¨¨x¸Ó?�ÙØ ‘M�HØÐ!1°!Ñ!3°TÑ 9¸#Ñ =Ñ=‘Dà˜H T™MÑ)�DÜ" 9Ó-ò )�EÙ˜E %Õ(ð)á�F•ñð ˆHÜ" 4×#4Ñ#4Ó5ò  ‘��2Ü&)¨"£g¨q¢j™
°i�Øò  �EÙ4D˜<¨!Ñ+¨bÒ0È"�DØ $ t¡)Ñ+�DØ�FØ˜u™+�CØ!Ÿ^™^¨E°8¸UÓC�FÙØ  A™˜Ø# \°!¡^°TÑ$9¸#Ñ$=Ñ=™à ¨¡Ñ-˜Ü!& yÓ!1ò ?˜Ù  e¨LÑ&8¸2Ñ&=Õ>ð?á˜•Kñ ñ rA   c                 ót  — | j                   }t        |t        t        f«      r ||   }t        |t        t        f«      r||   }|€d}|S |dk(  r| j                  |   |   }|S t        |«      r|| j                  |   |   z  }|S t        |d«      r || j                  |   |   «      }|S d|z  }t        |«      ‚)zreturn formatted label textNÚvaluesÚ__call__z6Unknown formatter type %s, expected string or function)	rS   rø   rÈ   r¬   rU   r   rQ   rj   Ú	Exception)r>   rl   r  ÚlabelFmtÚ	labelTextÚmsgs         r?   Ú_getLabelTextzBarChart._getLabelText  sá   € à×&Ñ&ˆÜ�h¤¤U˜|Ô,Ø ‘ˆHÜ˜(¤D¬ <Ô0Ø# E™?�ØÐØˆIð Ðð ˜Ò!Ø×*Ñ*¨5Ñ1°%Ñ8ˆIð Ðô �8Œ_Ø  4§9¡9¨UÑ#3°EÑ#:Ñ:ˆIð Ðô �X˜jÔ)Ù  §¡¨5Ñ!1°%Ñ!8Ó9ˆIð Ðð KÈXÑUˆCÜ˜C“.Ð rA   c                 ó<  — |j                   }t        |dd«      }|dk(  }|r| }|x}	}
|rd}
|d|z  z   }|dk\  xr dxs d|z  }|dk(  r	||dz  z   }n@|d	k(  r|
dk\  r	||
z   |z   }n-||z
  }|	 }	n$|d
k(  r|
dk  r	||
z   |z   }n||z
  }|	 }	n||
z   |z   }|	|_        |||	fS )zCompute x, y for a labelÚ	boxTargetÚnormalÚantir   r;   r.   rì   ÚmidÚhird   )r•   ri   Ú_pmv)r>   Úlabelrm   rn   ro   rp   r•   ÚbtrT  ÚpmÚvaluer  rÍ   s                r?   Ú_labelXYzBarChart._labelXY&  sì   € à—‘ˆÜ�U˜; xÓ0ˆØ�6‰zˆÙ˜%˜�ØÐˆˆUÙ˜�Ø��E‘	‰MˆØ˜‘’˜qÒ& B¨Ñ-ˆØˆuŠ9Ø�&˜‘*‘‰AØ�ŠXØ�aŠxØ˜‘I Ñ%‘à˜‘I�Ø�S‘Ø�ŠXØ�aŠxØ˜‘I Ñ%‘à˜‘I�Ø�S‘à�E‘	˜EÑ!ˆAØˆŒ
Ø��2ˆvˆrA   c                 ó~   — | j                  ||«      }|r)| j                  || j                  ||f   |||||||«	       y y r¡   )rP  Ú	_addLabelrR   )	r>   rw   rl   r  rm   rn   ro   rp   Útexts	            r?   Ú_addBarLabelzBarChart._addBarLabelC  sI   € Ø×!Ñ! %¨Ó.ˆÙØ�N‰N˜4 §¡°¸°Ñ!?ÀÀEÈ5ÐRSÐUVÐX]Ð_eÕfð rA   c
                 ó  — |	€| j                   }	|	rp|	j                  rct        j                  |	«      }	| j                  j                  dk  xr dxs d}
|€|
}|€|
}| j                  |	j                  |	||||||||¬«
      S y y )Nr   r  r  )ÚcalcOnly)rW   r_  ÚcopyrO   rÒ   r^  )r>   rw   rl   r  rm   rn   ro   rp   rb  ÚnarÃ   s              r?   Ú_addNABarLabelzBarChart._addNABarLabelH  s„   € Øˆ:˜DŸL™L�rÙ�"—'’'Ü—‘˜2“ˆBØ—‘×(Ñ(¨!Ñ+Ò5°Ò=¸ˆAØˆ} a˜eØˆ~¨˜vØ—>‘> "§'¡'¨2¨q°%¸ÀÀ1ÀeÈVÐ^f�>ÓgÐgð ˆ2rA   c                 óz  — |j                   �r®t        ||j                  |j                  «      }| j                  }|r| j                  ||||	|«      \  }}}n| j                  |||||	«      \  }}}t        |dd «      }|�|j                  | |«      }||}}|r|}n|}n|r|}||	dz  z   }n
||dz  z   }|}t        |dd «      }|�|j                  | |«      }|r|}n|}|dk  r&|rd|j                  z  }d}nd|j                  z  }d}ndx}}|
r
||z   ||z   fS |j                  ||z   ||z   «       |j                  |«       |j                  |j                  }}|r#|r!|j                  dt        ||||||¬«      «       |j!                  |«       t        | dd «      }|r| |||||||	||||f|_         ||«       |`y y y )NÚfixedEndrf   Ú
fixedStartr   éþÿÿÿ)r1   r3   rT   )Úvisibler   ÚfontNameÚfontSizer‘   r\  ri   Ú	_getValueÚdxÚdyÚ	setOriginÚsetTextÚlineStrokeColorÚlineStrokeWidthÚinsertr   rk   Ú_callOutInfo)r>   r_  rX  rw   rl   r  rm   rn   ro   rp   rb  Ú
labelWidthr  Úy0Úx0rZ  rg  rÃ   Úx00Úy00rh  rn  ro  ÚsCÚsWÚalxs                             r?   r^  zBarChart._addLabelQ  sõ  € Ø�=‹=Ü$ T¨5¯>©>¸5¿>¹>ÓJˆJØ—\‘\ˆFÙØ!Ÿ]™]¨5°°1°V¸EÓB‘
��B™à!Ÿ]™]¨5°°1°U¸6ÓB‘
��B˜Ü˜u Z°Ó6ˆHØÐ#Ø×&Ñ& t¨BÓ/�Ø˜r�S�ÙØ‘Bà‘BáØ�CØ˜F 3™J™,‘Cà˜E #™I™+�CØ�CÜ   |°TÓ:ˆJØÐ%Ø×(Ñ(¨¨bÓ1�ÙØ‘Cà�Cà�!ŠtÙØ˜EŸH™H™�BØ‘Bà˜EŸH™H™�BØ‘Bà���RÙ  2¡ r¨"¡u Ð,Ø�O‰O˜B˜r™E 2 b¡5Ô)Ø�M‰M˜$ÔØ×*Ñ*¨E×,AÑ,A�ˆBÙ‘b˜!Ÿ(™( 1¤T¨#¨c°"°RÀRÐUWÔ%XÔYØ�E‰E�%ŒLÜ˜$Ð0°Ó6ˆCÙØ&*¨1¨U°5¸¸1¸UÀ6È#ÈcÐRTÐUWÐ%X�Ô"Ù�E”
ØÑ&ð ð] rA   c                 óâ   — t        ||||«      }|j                  |_        |j                  |_        |j                  |_        |j                  r|j                  |_        |j                  |«       y r¡   )r   r3   r2   r1   r4   rk   )	r>   rw   rm   rn   ro   rp   rl   rs   Úrs	            r?   Ú_makeBarzBarChart._makeBar…  sY   € Ü��A�u˜fÓ%ˆØ×)Ñ)ˆŒØ—o‘oˆŒØ×)Ñ)ˆŒØ× Ò Ø %× 5Ñ 5ˆAÔØ	�‰ˆa�rA   c                 ó	  — | j                   }t        | dd «      }| j                  }| j                  }| j                  }i }|rQg }	t        | j                  «      dz
  }
t        |«      D ])  \  }}t        |«      D ]  \  }\  }}}}d ||fvsŒd||<   Œ Œ+ g j                  }g j                  }t        |«      D �]�  \  }}t        |«      }||z  }||   }|j                  |dd«      }g j                  }t        |«      D �]æ  \  }\  }}}}||f|v xr |||f   xs |}d ||fv r¶|r||v r| j                  |||||||«       n�|r‹|	vr‡| j                  |||||||d|«	      }|r[|
   |   \  }}}}| j                  ||
|||||d|«	      }|d   |d   z   dz  }|d   |d   z   dz  }| j                  ||
|||dd|¬	«       |	j                  |«       |r |d «       ŒÛd }t        |d
«      r t        j                  |j                  «      }n,t        | j                   d
«      r| j                   j                  }t        |dd «      }|ri|r4|dk  rt        |j                    |«      }nJt#        |j                   |«      }n3|dk  rt        |j                    |«      }nt#        |j                   |«      }|rj|s||z   }||dz  z   }n||z   }||dz  z   } ||«        ||«       |ròt%        t'        ||«      |||j(                  xs |j*                  «      } | rÀ || «       n·|r.||_        ||_        ||_        ||_        |j5                  |«       n‡t7        |«      dkD  ryt7        |«      dk\  rk|j*                  €|j(                  �S| j9                  |||||||«       |r: ||j:                  d   | j=                  ||«      | j                  |   |   ||¬«       | j?                  |||||||«       �Œé tA        |jB                  «      D ]F  }|sŒ |tE        ||j(                  xs |j*                  |jF                  |jH                  ¬«      «       ŒH �Œ� |jB                  D ]  }!|j5                  |!«       Œ |jB                  D ]  } |j5                  | «       Œ y )Nr^   r.   r9   FTr   rf   g-Cëâ6?)rd  r5   r8   r;   gH¯¼šò×z>rì   )rX  r[  rl   r  rg   )%rN   ri   r.  r‘   r`   rh   rQ   r¿   r«   rª   re  rj   rc  Údeepcopyr5   Úminr8   r¾   r   r   r1   r2   rm   rn   ro   rp   rk   Úabsr€  rý   rP  r`  r   Ú__self__r   r3   r4   )"r>   rw   ÚlgrN   ÚbrÚBPr  ÚcatNALÚcatNNAÚCBLÚrowNoLrl   r  r  rm   rn   ro   rp   r´   ÚlineSymsÚ
styleCountrr   ÚrowStyler9   ÚlinePtsrs   Úr0Úr1r5   r8   ÚyLÚxLÚsymÚpls"                                     r?   Ú	_makeBarszBarChart._makeBarsŽ  sÎ  € Ø�y‰yˆÜ�T˜+ dÓ+ˆØ×ÑˆØ—‘ˆà×%Ñ%ˆØˆÙØˆCÜ˜Ÿ™“^ aÑ'ˆFä'¨›mò *‘
��sÜ4=¸c³Nò *Ñ0�EÑ0˜A˜q %¨Ø E¨& >Ò1Ø()˜˜ušñ*ð*ð
 —	‘	ˆØ—9‘9ˆÜ# B›-ó K	I‰JˆE�3Ü˜T›ˆJØ˜zÑ)ˆHØ˜H‘~ˆHØ—^‘^ E¨8°UÓ;ˆFØ—i‘iˆGÜ-6°s«^ó >CÑ)�Ñ)˜˜!˜E &Ø! %Ð(¨DÐ0ÒK°T¸8ÀEÐ:JÑ5KÒWÈx�Ø˜E &˜>Ñ)Ù! U¨f¡_Ø×+Ñ+¨B¨u°U¸1¸Q¸uÀVÕLÙ E°Ñ$4Ø!×0Ñ0°°E¸%ÀÀ!ÀEÈ&ÐQUÐV\Ó]˜ÙØ24°V±*¸UÑ2CÑ/˜A˜q %¨Ø!%×!4Ñ!4°R¸¸uÀQÀqÈÈvÐVZÐ[aÓ!b˜BØ!# A¡ r¨!¡u¡¨cÑ 1˜AØ!# A¡ r¨!¡u¡¨cÑ 1˜AØ ×/Ñ/°°6¸%ÀÀ!ÀFÈ6ÐU[Ð/Ô\ØŸ
™
 5Ô)Ù™w tœ}Øð �Ü˜5 (Ô+Ü!Ÿ]™]¨5¯<©<Ó8‘FÜ˜TŸY™Y¨Ô1Ø!ŸY™Y×-Ñ-�Fä   z°$Ó7�ÙÙØ  š7Ü$'¨¯©¨¸Ó$>™Eä$'¨¯©°uÓ$=™Eà! !š8Ü%(¨%¯.©.¨¸Ó%@™Fä%(¨¯©¸Ó%?˜FáÙ!Ø ™Z˜Ø  s¡™]™à ™Y˜Ø ¨¡™^˜Ù˜B”KÙ˜B”KÙÜ,¬Z¸¸uÓ-EÀbÈÈE×L]ÑL]ÒLpÐaf×apÑapÓq˜Ù¡¨¥áØ �F”HØ �F”HØ#(�F”LØ$*�F”MØ—E‘E˜&•Mä˜“Z ’_¬¨V«°dÒ):ÀÇÁÐ@[Ð_d×_pÑ_pÐ_|Ø—M‘M ! A a¨¨f°U¸5ÔAÙ™2˜aŸj™j¨™n°4×3EÑ3EÀeÈEÓ3RÐY]×YbÑYbÐchÑYiÐjoÑYpÐw|ð  DIõ  Jà×!Ñ! " U¨5°°1°U¸6ÖBð}>Cô@ +¨7×+;Ñ+;Ó<ò I�ÚÙœ( 7Ø(0×(<Ñ(<Ò(RÀ×@RÑ@RØ(0×(<Ñ(<Ø.6×.FÑ.FôHõ IòIðMK	IðZ —.‘.ò 	ˆBØ�E‰E�"�Ið	à×$Ñ$ò 	ˆCØ�E‰E�#�Jñ	rA   c	                 óŽ  — |j                   �r8t        ||j                  |j                  «      }	| j                  }
|
r| j                  |||||«      \  }}}n| j                  |||||«      \  }}}t        |dd «      }|�|j                  | |«      }||}}|
r|}n|}n|
r|}||dz  z   }n
||dz  z   }|}t        |dd «      }|�|j                  | |«      }|
r|}n|}|dk  r&|
rd|j                  z  }d}nd|j                  z  }d}ndx}}|j                  ||z   ||z   «       |j                  |«       ||j                  «       fS y )Nrg  rf   rh  r   ri  )rj  r   rk  rl  r‘   r\  ri   rm  rn  ro  rp  rq  Ú	getBounds)r>   r_  rX  rl   r  rm   rn   ro   rp   rv  r  rw  rx  rZ  rg  rÃ   ry  rz  rh  rn  ro  s                        r?   Ú_computeLabelPositionzBarChart._computeLabelPositionó  sj  € Ø�=‹=Ü$ T¨5¯>©>¸5¿>¹>ÓJˆJØ—\‘\ˆFÙØ!Ÿ]™]¨5°°1°V¸EÓB‘
��B™à!Ÿ]™]¨5°°1°U¸6ÓB‘
��B˜Ü˜u Z°Ó6ˆHØÐ#Ø×&Ñ& t¨BÓ/�Ø˜r�S�ÙØ‘Bà‘BáØ�CØ˜F 3™J™,‘Cà˜E #™I™+�CØ�CÜ   |°TÓ:ˆJØÐ%Ø×(Ñ(¨¨bÓ1�ÙØ‘Cà�Cà�!ŠtÙØ˜EŸH™H™�BØ‘Bà˜EŸH™H™�BØ‘Bà���RØ�O‰O˜B˜r™E 2 b¡5Ô)Ø�M‰M˜$ÔØ�e—o‘oÓ'Ð'Ð'ðS rA   c                 óô  — | j                   | j                  }}|r||_        |r||_        | j                  rL|j	                  | j                  | j                  | j                  «      | j                  | j                  «       nK|j	                  | j                  | j                  | j                  | j                  «      | j                  «       |j                  | j                  «       | j                  «        y)zRInformation function, can be called by charts which want to with space around barsN)rP   rO   ÚjoinAxisr‘   rÕ   rÝ   rm   ro   rn   rp   rÖ   rÊ   rí   ©r>   rÿ   rÛ   s      r?   Ú_computeBarPositionszBarChart._computeBarPositions  s¢   € à×"Ñ" D§N¡NˆBˆÙ˜RˆrŒ{Ù˜RˆrŒ{Ø�<Š<Ø�N‰N˜4Ÿ?™?¨4¯6©6°$·*±*Ó=¸t¿v¹vÀtÇ{Á{ÕSà�N‰N˜4Ÿ6™6 4§?¡?°4·6±6¸$¿+¹+Ó#FÈÏ
É
ÔSØ
�‰�T×(Ñ(Ô)Ø×ÑÕrA   c                 óÜ  — | j                   }| j                  «        t        | j                  «      }| j                  }g }|j
                  }|rŒ| j                  }|| j                  z   }	| j                  | j                  z   }
|D ]R  }|D ]K  \  }}}}||z   }||z   } |t        ||«      t        ||«      t        ||«      |z
  |	t        ||«      z
  f«       ŒM ŒT n‹| j                  }|| j                  z   }	| j                  | j                  z   }
|D ]R  }|D ]K  \  }}}}||z   }||z   } |t        ||«      t        ||«      t        ||«      |z
  |	t        ||«      z
  f«       ŒM ŒT |j                  «        |d   g}|D ]x  }|d   }|d   |d   k  rU|d   |d   k  rJt        |d   |d   «      t        |d   |d   «      t        |d   |d   «      t        |d   |d   «      f|d<   Œh|j                  |«       Œz |}d}d}t        |«      }t        |«      D ]Ó  \  }}|d   }||z   }||
kD  r ||fS |}dx}}||k  rE||   d   |k  r:t        ||   d   |«      }t        ||   d   |«      }|dz  }||k  r||   d   |k  rŒ:||kD  r3||kD  sŒu|}|xr ||||z   ||z   dfxs ||||z   ||z   df}||k\  sŒ� ||fS ||kD  sŒ¨|}|xr |	|z
  ||	||z   dfxs ||	|z
  ||z   |	df}||k\  sŒÐ ||fS  ||fS )	ak  helper for madmen who want to put stuff inside their barcharts
        basically after _computebarPositions we slide a line of length size
        down the bar profile on either side of the bars to find the
        maximum space. If the space at any point is >= required then we're
        done. Otherwise we return the largest space location and amount.
        r   rì   r.   r�   râ   i  €Niÿÿÿ)r‘   rž  rh   rQ   r.  r«   rm   ro   rn   rp   rƒ  r¾   rü   r¿   )r>   ÚsizeÚrequiredr  ÚlenDatarˆ  ÚCÚaCrd   rV  ÚendÚbprm   rn   ÚwÚhrÃ   r  r²   r�   r  ÚmaxSÚmaxPÚnCrz   ÚciÚv0Úv1rÆ   ÚaloÚahis                                  r?   Ú_computeMaxSpacezBarChart._computeMaxSpace+  sŸ  € ð —‘ˆØ×!Ñ!Ô#Ü�d—i‘i“.ˆØ×ÑˆØˆØ�X‰XˆÙØ—‘ˆBØ�d—j‘j‘ˆBØ—&‘&˜Ÿ™Ñ$ˆCØò J�Ø"$ò J‘J�A�q˜!˜QØ˜!™�AØ˜!™�AÙœ˜A˜a›¤ Q q£¬3¨q°«8°b©=¸"¼sÀ1ÀQ»x¹-ÐHÕIñJñJð —‘ˆBØ�d—k‘kÑ!ˆBØ—&‘&˜Ÿ™Ñ#ˆCØò K�Ø"$ò K‘J�A�q˜!˜QØ˜!™�AØ˜!™�AÙœ˜A˜a›¤# a¨£(¬C°°!«H°r©M¸2ÄÀAÀaÃ¹=ÐIÕJñKðKð
 	
�‰ŒØˆq‰TˆFˆØò 	ˆAØ�"‘ˆAØ�‰t�A�a‘DŠy˜Q˜q™T ! A¡$šYÜ˜Q˜q™T ! A¡$›¬¨A¨a©D°°1±«´s¸1¸Q¹4ÀÀ!Á³~ÄcÈ!ÈAÉ$ÈqÐQRÉtÃnÐU��"’à—‘˜•ð	ð ˆØˆØˆÜ�‹VˆÜ˜a“Lò 	+‰DˆAˆbØ�A‘ˆBØ�D‘ˆBØ�#Šv�uð  �TˆzÐð ˆAØ"Ð"ˆC�#Ø�B’$˜1˜Q™4 ™7 Bš;Ü˜!˜A™$˜q™' #Ó&�Ü˜!˜A™$˜q™' #Ó&�Ø�Q‘�ð �B’$˜1˜Q™4 ™7 B›;ð �3ŠwØ�t“8Ø�DØ!Ò> r¨"¨R°©V°B°t±G¸AÐ&>ÒZÀ2ÀbÈÈDÉÐQSÐTWÑQWÐXYÐBZ�DØ˜xÓ'¨ð
 �TˆzÐð	 �T“Ø�ØÒ: 2 c¡6¨"¨R°°4±¸Ð":ÒV¸rÀ"ÀSÁ&ÈÈDÉÐQSÐTUÐ>V�Ø˜8Ó# UØ�TˆzÐð'	+ð& �TˆzÐrA   c                 óœ  — | j                   | j                  }}|r||_        |r||_        | j                  rL|j	                  | j                  | j                  | j                  «      | j                  | j                  «       nK|j	                  | j                  | j                  | j                  | j                  «      | j                  «       |j                  | j                  «       | j                  «        | j                  }g j                  }| j                  }t!        |«      D �]  \  }}g j                  }t!        |«      D ]ä  \  }	\  }
}}}d||fv rŠ| j"                  }|rs|j$                  rgt'        j&                  |«      }| j                  j(                  dk  xr dxs d}|€|}|€|} || j+                  |j$                  |||	|
|||«      «       Œ’ |d«       Œ›| j-                  ||	«      }|r. || j+                  || j.                  ||	f   ||	|
|||«      «       ŒÝ |d«       Œæ  ||j0                  «       �Œ |j0                  S )zLInformation function, can be called by charts which want to mess with labelsNr   r  r  )rP   rO   rœ  r‘   rÕ   rÝ   rm   ro   rn   rp   rÖ   rÊ   rí   rN   r«   r.  r¿   rW   r_  rc  rÒ   rš  rP  rR   r…  )r>   rÿ   rÛ   rN   r²   rˆ  rl   r  r£  r  rm   rn   ro   rp   rd  rÃ   r_  s                    r?   Ú_computeSimpleBarLabelPositionsz(BarChart._computeSimpleBarLabelPositionsk  sõ  € à×"Ñ" D§N¡NˆBˆÙ˜RˆrŒ{Ù˜RˆrŒ{Ø�<Š<Ø�N‰N˜4Ÿ?™?¨4¯6©6°$·*±*Ó=¸t¿v¹vÀtÇ{Á{ÕSà�N‰N˜4Ÿ6™6 4§?¡?°4·6±6¸$¿+¹+Ó#FÈÏ
É
ÔSØ
�‰�T×(Ñ(Ô)Ø×ÑÔà�y‰yˆØ�I‰IˆØ×ÑˆÜ# B›-ó 	‰JˆE�3Ø—	‘	ˆAÜ09¸#³ò  Ñ,�Ñ,˜˜1˜e VØ˜E &˜>Ñ)ØŸ™�BÙ˜bŸgšgÜ!ŸY™Y r›]˜Ø ŸN™N×4Ñ4°aÑ7ÒA¸EÒIÀT˜Ø ˜=°!¨%Ø!˜>°A¨6Ù˜$×4Ñ4°R·W±W¸bÀ%ÈÐPQÐSTÐV[Ð]cÓdÕeá˜$�à×-Ñ-¨e°EÓ:�DÙÙ˜$×4Ñ4°T¸4¿>¹>È5ÐRWÈ.Ñ;YÐ[`ÐbgÐijÐlmÐotÐv|Ó}Õ~á˜$�ð! ñ" ˆa�j‰jŽMð'	ð( �z‰zÐrA   c                 ót   — t        «       }t        «       }| j                  ||«       |j                  |«       |S r¡   )r   r—  rk   )r>   rw   r†  s      r?   rñ   zBarChart.makeBars�  s.   € Ü‹GˆÜ‹WˆØ�‰�q˜ÔØ	�‰ˆbŒ	ØˆrA   c                 ó,  — | j                   j                  }| j                  }t        |«      }t	        t        t        t        |«      «      «      }|dk(  r#|dz
  | j                  z  || j                  z  z   }n| j                  }|| j                  |z   z  S )z:for dynamically computing the desired category axis lengthr€   r.   )
rP   rs   rQ   rh   r¾   rÈ   rÉ   rM   rK   rL   )r>   rs   rQ   r±   Úmr  s         r?   Ú_desiredCategoryAxisLengthz#BarChart._desiredCategoryAxisLength—  s€   € à×!Ñ!×'Ñ'ˆØ�y‰yˆÜ�‹IˆÜ””Sœ˜T“]Ó#Ó$ˆØ�*ÒØ˜A™#˜tŸ™Ñ.¨q°·±©Ñ>‰JàŸ™ˆJØ�$×#Ñ# JÑ.Ñ/Ð/rA   c                 óÚ  — | j                   | j                  }}|r||_        |r||_        | j                  r[|j	                  | j                  | j                  | j                  «      | j                  | j                  «       | j                  «       S |j	                  | j                  | j                  | j                  | j                  «      | j                  «       | j                  «       S r¡   )rP   rO   rœ  r‘   rÕ   rÝ   rm   ro   rn   rp   r  r�  s      r?   ÚdrawzBarChart.draw£  s¦   € Ø×"Ñ" D§N¡NˆBˆÙ˜RˆrŒ{Ù˜RˆrŒ{Ø�<Š<Ø�N‰N˜4Ÿ?™?¨4¯6©6°$·*±*Ó=¸t¿v¹vÀtÇ{Á{ÔSð ×ÑÓ!Ð!ð �N‰N˜4Ÿ6™6 4§?¡?°4·6±6¸$¿+¹+Ó#FÈÏ
É
ÔSØ×ÑÓ!Ð!rA   rF   r¡   )FN)F))rB   rC   rD   Ú__doc__r   r&   r   r   r
   r   r   r%   r   r   r	   r   rE   rx   r|   r@   rž   r·   rÎ   rÓ   rÝ   r  rí   rP  r\  r`  re  r^  r€  r—  rš  rž  r±  r³  rñ   r·  r¹  rF   rA   r?   rH   rH   4   s’  „ Ù.áò 
™Hð 
Ù"¡8¨Y±xÀÈ(Ð@SÓ7TÐ,UÓ#Vð  ^Sð  bcõ  dð
á Ð/PÕQð
ñ $ HÐ3RÕSð
ñ " (Ð1QÕRð	
ñ
 ˜DÐ'GÕHð
ñ ! Ð,GÕHð
ñ $ DÐ/MÕNð
ñ ˜DÐ'XÕYð
ñ ! Ð,OÕPð
ñ & dð  2Nõ  Oð
ñ ' tð  3Vð  efõ  gð
ñ % TÐ0yÕzð
ñ (¨	Ð8fÐuvÕwð
ñ Ð7Ð>\ÐklÕmð
ñ # 4Ð.lÕmð
ñ   ,¨HÐ;zÕ{ð!
ñ" !-©U°7¸6À&Ó-IÐP~Õ ð#
ñ$ ! Ð,xð  IJõ  Kð%
ñ& ' ~ð =õ ð'
ñ8 'Ð'?ÐFoÐ~õ  Að9
ñ: #¡:©j¸ÀqÐPQÐUVÔ.WÐ`aÐijÐnoÔ#pð  rWô  Xð;
€Hò@!MóF=ò;$òzòò4#ò8Bò	`òFòP} ò~ò(ò:gó
hó2'òhòcòJ*(òX
 ò>ò@#òJò
0ó"rA   rH   c                   ó   — e Zd ZdZdZy)ÚVerticalBarChartz3Vertical bar chart with multiple side-by-side bars.r   N©rB   rC   rD   rº  r‘   rF   rA   r?   r¼  r¼  ­  s
   „ Ù9Ø�GrA   r¼  c                   ó   — e Zd ZdZdZy)ÚHorizontalBarChartz5Horizontal bar chart with multiple side-by-side bars.r.   Nr½  rF   rA   r?   r¿  r¿  ±  s
   „ Ù;Ø�GrA   r¿  c                   ó&   — e Zd Zdd„Zd„ Zd„ Zd„ Zy)Ú
_FakeGroupNc                 óF   — g | _         t        j                  |«      | _        y r¡   )rÇ   Ú	functoolsÚ
cmp_to_keyÚ_key)r>   r)   s     r?   r@   z_FakeGroup.__init__¶  s   € ØˆŒ
Ü×(Ñ(¨Ó-ˆ�	rA   c                 ó:   — | j                   j                  |«       y r¡   )rÇ   r«   )r>   Úwhats     r?   rk   z_FakeGroup.addº  s   € Ø�
‰
×Ñ˜$ÕrA   c                 ó   — | j                   S r¡   )rÇ   r=   s    r?   r[  z_FakeGroup.value½  s   € Ø�z‰zÐrA   c                 óP   — | j                   j                  | j                  ¬«       y )N)Úkey)rÇ   rü   rÅ  r=   s    r?   rü   z_FakeGroup.sortÀ  s   € Ø�
‰
�‰˜DŸI™IˆÕ&rA   r¡   )rB   rC   rD   r@   rk   r[  rü   rF   rA   r?   rÁ  rÁ  µ  s   „ ó.ò òó'rA   rÁ  c            
       ó”   — e Zd Z ee eed¬«       eed¬«       eed¬«       eed¬«      ¬«      ZdZdZ	dZ
dZd	„ Zd
„ Zd„ Zd„ Zd„ Zy)r~   zdx/dzr,   zdy/dzzdepth of an individual serieszz gap around series)rI   Útheta_xÚtheta_yÚzDepthÚzSpacer;   Nc                 ó|  — t         j                  | «       | j                  }| j                  }|€| j                  }| j
                  }|€| j                  }| j                  j                  dk(  r||z  |dz   |z  z   }n|d|z  z   }|| j                  z  }| j                  |z  | _        | j                  |z  | _        y )Nr�   r.   r�   )rH   rí   r   rÎ  rK   rÏ  rM   rP   rs   r%  rÌ  Ú_3d_dxrÍ  Ú_3d_dy)r>   r/  rÎ  rÏ  Ú	_3d_depths        r?   rí   zBarChart3D.calcBarPositionsÏ  s±   € Ü×!Ñ! $Ô'Ø×'Ñ'ˆØ—‘ˆØˆ> D§M¡M˜6Ø—‘ˆØˆ> D§O¡O˜6Ø×Ñ×"Ñ" MÒ1Ø# FÑ*¨K¸©M¸6Ñ+AÑA‰Ià  6¡Ñ)ˆIØ�T×%Ñ%Ñ%ˆ	Ø—l‘l 9Ñ,ˆŒØ—l‘l 9Ñ,ˆ�rA   c                 óò   — | j                   }|€| j                  }| j                  }|€| j                  }| j                  j
                  dk(  r| j                  |||z   z  |z   z  }|S | j                  |z  }|S )Nr�   )rÎ  rK   rÏ  rM   rP   rs   r%  )r>   rl   rÎ  rÏ  Úz0s        r?   Ú_calc_z0zBarChart3D._calc_z0Þ  s~   € Ø—‘ˆØˆ> D§M¡M˜6Ø—‘ˆØˆ> D§O¡O˜6Ø×Ñ×"Ñ" MÒ1Ø×!Ñ! 5¨&°©-Ñ#8¸Ñ#?Ñ@ˆBð ˆ	ð ×!Ñ! &Ñ(ˆBØˆ	rA   c                 óv  — | j                   }|€| j                  }| j                  }	|	€| j                  }	| j	                  |«      }
|
|| j
                  z  z   }|dk  r||z  }| }||
| j                  z  z  }||
| j                  z  z  }| j                  r||	z  }n||	z  }|j                  d|
|||||||f	«       y )Nr   )
rÎ  rK   rÏ  rM   rÖ  r%  rÌ  rÍ  r‘   rk   )r>   rw   rm   rn   ro   rp   rl   rs   rÎ  rÏ  rÕ  Úz1s               r?   r€  zBarChart3D._makeBaré  sÄ   € Ø—‘ˆØˆ> D§M¡M˜6Ø—‘ˆØˆ> D§O¡O˜6Ø�]‰]˜5Ó!ˆØ�&˜×)Ñ)Ñ)Ñ)ˆØ�Š7Ø�‰JˆAØ�FˆEØ	ˆR�—‘‰_ÑˆØ	ˆR�—‘‰_ÑˆØ�<Š<Ø�‰K‰Aà�‰KˆAØ	�‰ˆq��B�q˜˜5 ¨¨eÐ4Õ5rA   c                 ó  — | j                  |«      }| j                  }	|	€| j                  }	|}
||| j                  z  z  }||| j                  z  z  }| j
                  r||	z  }n||	z  }|j                  d||
||||||f	«       y )Nr.   )rÖ  rÏ  rM   rÌ  rÍ  r‘   rk   )r>   rw   rl   r  rm   rn   ro   rp   rÕ  rÏ  rØ  s              r?   r`  zBarChart3D._addBarLabelû  s‡   € Ø�]‰]˜5Ó!ˆØ—‘ˆØˆ> D§O¡O˜6ØˆØ	ˆR�—‘‰_ÑˆØ	ˆR�—‘‰_ÑˆØ�<Š<Ø�‰K‰Aà�‰KˆAØ	�‰ˆq��B�q˜˜5 ¨¨eÐ4Õ5rA   c                 óÆ  — ddl m} t        | j                  ¬«      }| j	                  ||«       |j                  «        t        «       }| j                  }| j                  }|j                  «       }| j                  j                  }|dk(  r|j                  «        n'|dk(  r"t        d„ |D «       «      D �cg c]  }|d   ‘Œ	 }}|D ]\  }	|	d   dk(  sŒ|	dd  \  }
}}}}}}}||
z
  } |||||z   |||z   ||z  ||z  |j                  d |j                  |j                   d¬	«       Œ^ |D ]2  }	|	dk(  sŒ	|	dd  \  }
}}}}}}}t"        j%                  | |||||||«       Œ4 |S c c}w )
Nr   )Ú_draw_3d_barr(   r   r‚   c              3   óD   K  — | ]  }|d    |d   |d   |d   f|f–— Œ y­w)r.   r�   râ   rã   NrF   )r£   Úts     r?   r¥   z&BarChart3D.makeBars.<locals>.<genexpr>  s.   è ø€ Ò-ZÈA°°!±°Q°q±T¸!¸A¹$¸qÀ¹tÐ/DÀQÔ.GÑ-Zùs   ‚ r.   gÍÌÌÌÌÌÜ?)r2   ÚfillColorShadedr1   r3   Úshading)Ú!reportlab.graphics.charts.utils3drÛ  rÁ  Ú_cmpZr—  rü   r   rÌ  rÍ  r[  rP   rs   Úreverser®   r2   r1   r3   rH   r`  )r>   rÛ  Úfgrw   rÌ  rÍ  Úfg_valuerË   r  rÝ  rÕ  rØ  rm   rn   ro   rp   rl   rs   Údzr  s                       r?   rñ   zBarChart3D.makeBars  s  € ÝBÜ˜DŸJ™JÔ'ˆØ�‰�r˜"ÔØ
�‰Œ	Ü‹GˆØ—,‘,ˆØ—,‘,ˆØ—8‘8“:ˆØ×#Ñ#×)Ñ)ˆØ�IÒØ×ÑÕØ�gÒÜ&,Ñ-ZÐQYÔ-ZÓ&[Ö\ ˜˜!›Ð\ˆHÐ\àò 	*ˆAØ�‰t�Q‹wØ56°q°r°UÑ2��2�a˜˜%  u¨UØ˜"‘W�Ù˜Q  1 U¡7¨A¨q°©x¸¸G¹ÀRÈÁZØ&+§o¡oÀtØ(-×(9Ñ(9Àu×GXÑGXØ$(ö*ð		*ð ò 	KˆAØ�!‹tØ56°q°r°UÑ2��2�a˜˜%  u¨UÜ×%Ñ% d¨1¨U°5¸¸1¸UÀ6ÕJð	Kð ˆùò ]s   Â6E)rB   rC   rD   r   rH   r   r   rE   rÌ  rÍ  rÎ  rÏ  rí   rÖ  r€  r`  rñ   rF   rA   r?   r~   r~   Ã  sg   „ Ù˜HÙ˜x¨gÔ6Ù˜x¨gÔ6Ù˜hÐ-LÔMÙ˜hÐ-BÔCô	
€Hð €GØ€GØ€FØ€Fò-ò	ò6ò$6órA   r~   c                   ó   — e Zd Zd„ Zy)ÚVerticalBarChart3Dc                 ób   — t        |d    |d   |d   |d    f|d    |d   |d   |d    f«      S )Nr.   râ   r   rã   r(   ©r>   r  rÍ   s      r?   ú<lambda>zVerticalBarChart3D.<lambda>&  sG   € œ#  !¡˜u Q q¡T¨!¨A©$°°!±¨uÐ5¸¸!¹°u¸Q¸q¹TÀ!ÀAÁ$ÈÈ!ÉÀuÐ6MÓN€ rA   N©rB   rC   rD   rá  rF   rA   r?   rç  rç  %  s   „ Ù
N�ErA   rç  c                   ó   — e Zd Zd„ Zy)ÚHorizontalBarChart3Dc                 ób   — t        |d    |d   |d   |d    f|d    |d   |d   |d    f«      S )Nr.   rã   r   râ   r(   ré  s      r?   rê  zHorizontalBarChart3D.<lambda>)  sG   € œS 1 Q¡4 %¨¨!©¨Q¨q©T°1°Q±4°%Ð!8¸1¸Q¹4¸%ÀÀ!ÁÀQÀqÁTÈ1ÈQÉ4È%Ð9PÓQ€ rA   Nrë  rF   rA   r?   rí  rí  (  s   „ ÙQ�ErA   rí  c                  ó.  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        ddg|j                  _        | j+                  |«       | S )z9A slightly pathologic bar chart with only TWO data items.é�  rš   ©é   é   é2   é}   é,  r   é<   é   Úneé   ri  é   ÚYingÚYang©r   r¼  rm   rn   rp   ro   rQ   r   r–   r1   rO   ÚvalueMinÚvalueMaxÚ	valueSteprP   r,  r“   rn  ro  ÚangleÚcategoryNamesrk   ©rœ   rQ   r�   s      r?   Ú	sampleV0ar  ,  sÚ   € ô �c˜3Ó€Gàˆ:€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'+€B‡O�O×ÑÔ$Ø !€B‡O�O×ÑÔØ "€B‡O�O×ÑÔØ#%€B‡O�O×ÑÔ Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  ó,  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d|j                  _        d	|j                  j                  _        d
|j                  j                  _        d|j                  j                  _        d|j                  j                  _        dg|j                  _        | j+                  |«       | S )z/A pathologic bar chart with only ONE data item.rð  rš   ©é*   rô  rõ  rö  r   rø  rù  rú  ri  rû  úJan-99rþ  r  s      r?   Ú	sampleV0br
  K  s×   € ô �c˜3Ó€Gàˆ7€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'+€B‡O�O×ÑÔ$Ø !€B‡O�O×ÑÔØ "€B‡O�O×ÑÔØ#%€B‡O�O×ÑÔ Ø%- J€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óô  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        d|j                  j                  _        d|j                  j                  _        g |j                  _        | j)                  |«       | S )z8A really pathologic bar chart with NO data items at all!rð  rš   rF   rô  rõ  rö  r   r÷  rø  rù  rú  ri  )r   r¼  rm   rn   rp   ro   rQ   r   r–   r1   rO   rÿ  r   r  rP   r,  r“   rn  ro  r  rk   r  s      r?   Ú	sampleV0cr  i  sÃ   € ô �c˜3Ó€Gàˆ4€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'+€B‡O�O×ÑÔ$Ø !€B‡O�O×ÑÔØ "€B‡O�O×ÑÔØ$&€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  ó|  — t        dd«      } ddg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d	|j                  _        d
|j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        dj)                  d«      }|D �cg c]  }|dz   ‘Œ	 }}||j                  _        | j-                  |«       | S c c}w )ú!Sample of multi-series bar chart.rð  rš   ©rò  rŒ   ró  é   é%   é-   é   rã   ©é   rä   é   é   é&   é.   ró  rŒ   rô  rõ  rö  r   r÷  rø  rù  rú  ri  rû  úJan Feb Mar Apr May Jun Jul Augú ú-99)r   r¼  rm   rn   rp   ro   rQ   r   r–   r1   rO   rÿ  r   r  rP   r,  r“   rn  ro  r  rô   r  rk   ©rœ   rQ   r�   ÚcatNamesr±   s        r?   ÚsampleV1r  †  s  € ô �c˜3Ó€Gð +Ø*ð€Dô
 
Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'+€B‡O�O×ÑÔ$Ø !€B‡O�O×ÑÔØ "€B‡O�O×ÑÔØ#%€B‡O�O×ÑÔ à0×6Ñ6°sÓ;€HØ!)Ö*˜A��%“Ð*€HÐ*Ø$,€B‡O�OÔ!Ø‡K�K�„Oà€Nùò	 +s   ÄD9c                  óÒ  — ddg} d}t        dd«      }t        «       }d|_        d|_        d|_        d|_        | |_        d	|_        d
|_        d
|_	        d|j                  _        d|j                  _        d|j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        ||j&                  _        d|j&                  j                  _        d|j&                  j                  _        d|j&                  j                  _        |j-                  |«       |S )r  ©ç333333@çÍÌÌÌÌÌÀr�   rŒ   gffffff"@©ç333333ã?çš™™™™™Àéýÿÿÿrã   g333333@©zQ3 2000zYear to Datez	12 monthszAnnualised
3 yearszSince 07.10.99rð  rš   rô  r…   rö  r   r‹   éñÿÿÿrø  rŒ   Ú	Helveticarú  r±   rŽ   éÄÿÿÿ©r   r¼  rm   rn   rp   ro   rQ   rM   rL   rK   rO   rÿ  r   r  r,  rk  rl  r“   r”   rP   r  ro  rk   ©rQ   r,  rœ   r�   s       r?   Ú	sampleV2ar.  ©  ó$  € ð #Ø#ð€Dð7€Fô �c˜3Ó€Gä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gà€B„MØ€B„OØ€B„Kà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔØ#.€B‡L�L×ÑÔ Ø#$€B‡L�L×ÑÔ Ø$'€B‡L�L×ÑÔ!Ø%-€B‡L�L×ÑÔ"à$*€B‡O�OÔ!Ø&1€B‡O�O×ÑÔ#Ø&'€B‡O�O×ÑÔ#Ø #€B‡O�O×ÑÔà‡K�K�„Oà€NrA   c                  óÒ  — ddg} d}t        dd«      }t        «       }d|_        d|_        d|_        d|_        | |_        d	|_        d
|_        d
|_	        d|j                  _        d|j                  _        d	|j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        ||j&                  _        d|j&                  j                  _        d|j&                  j                  _        d|j&                  j                  _        |j-                  |«       |S )r  r!  r$  r(  rð  rš   rô  r…   rö  rŒ   r‹   r)  rø  r*  rú  r±   rŽ   r+  r,  r-  s       r?   Ú	sampleV2br1  Ò  r/  rA   c                  ó¬  — ddg} d}t        dd«      }t        «       }d|_        d|_        d|_        d|_        | |_        d	|_        d
|_        d
|_	        d|j                  _        d|j                  _        d|j                  _        d|j                  j                  _        d|j                  j                  _        ||j"                  _        d|j"                  j                  _        d|j"                  j                  _        d|j                  j                  _        d|j                  j                  _        d|j"                  j                  _        d
|j,                  _        d|_        d|j,                  _        d|j,                  _        d|j,                  _        d|j,                  _        d|j,                  _        |j5                  |«       |S )r  ©r"  r#  r�   rŒ   ç{®Gáú#@©r%  r&  r'  rã   r4  r(  rð  rš   rô  r…   rö  r�   r‹   r)  rø  rŒ   r*  rú  r±   rŽ   r+  ú%0.2fr   rä   )r   r¼  rm   rn   rp   ro   rQ   rM   rL   rK   rO   rÿ  r   r  r,  rk  rl  rP   r  r“   r”   ro  rR   r•   rS   rn  rk   r-  s       r?   Ú	sampleV2cr7  û  sr  € ð $Ø$ð€Dð7€Fô �c˜3Ó€Gä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gà€B„MØ€B„OØ€B„Kà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔØ#.€B‡L�L×ÑÔ Ø#$€B‡L�L×ÑÔ à$*€B‡O�OÔ!Ø&1€B‡O�O×ÑÔ#Ø&'€B‡O�O×ÑÔ#Ø$'€B‡L�L×ÑÔ!Ø%-€B‡L�L×ÑÔ"Ø #€B‡O�O×ÑÔà€B‡L�LÔà€BÔØ€B‡L�L„OØ€B‡L�L„OØ €B‡L�LÔØ'€B‡L�LÔØ€B‡L�LÔà‡K�K�„Oà€NrA   c                  óè  — d} d}d}t        | «      t        |«      k(  sJ d«       ‚t        | «      t        |«      k(  sJ d«       ‚t        dd«      }t        «       }d|_        d|_        d|_        d	|_        |f|_        t        j                  |j                  _        d
|_        d|j                  _        d|j                  _        d|j                  _        d|j                  _        d|j                  _        d|j                  _        d|j                  _        d|j*                  _        d|j*                  _        d|j*                  _        d|j*                  _        d|j4                  _        d|j4                  _        | |j4                  _        d|j4                  j<                  _        d|j4                  j<                  _        d|j4                  j<                  _        d|j4                  j<                  _        d|j4                  j<                  _        d|j4                  j<                  _        t?        |«      }|jA                  dd«       |jC                  d«       |jE                  |«       |S )zBFaked horizontal bar chart using a vertical real one (deprecated).©
zUK EquitieszUS EquitieszEuropean EquitieszJapanese EquitieszPacific (ex Japan) EquitieszEmerging Markets EquitieszUK BondszOverseas BondszUK Index-LinkedÚCash©
g      ø¿ç333333Ó?r;   r  gš™™™™™é?gffffffæ?gš™™™™™Ù?gš™™™™™¹?r  r<  ©
g        ç…ëQ¸Õ?gš™™™™™á?çš™™™™™ñ?g)\�Âõ(ì?g¤p=
×£è?g)\�Âõ(Ü?g)\�Âõ(¼?r?  r>  úbad datarð  rš   r   rƒ   é–   r6  r§  rŠ   r*  rä   r‹   ri  r�   r.   iƒÿÿÿé¯   i¦ÿÿÿ)#rh   r   r¼  rm   rn   rp   ro   rQ   r   r˜   rN   r2   rS   rR   rn  ro  r“   r  rk  rl  r•   rO   rj  rÿ  r   r  rP   ÚtickUpÚtickDownr  r,  r   Ú	translateÚrotaterk   ©ÚnamesÚseries1Úseries2rœ   r�   rw   s         r?   ÚsampleV3rK  -  sâ  € ðG€Eð B€GØH€Gäˆu‹:œ˜W›Ò%Ð1 zÓ1Ð%Üˆu‹:œ˜W›Ò%Ð1 zÓ1Ð%ä�c˜3Ó€Gä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØˆj€B„GÜŸ™€B‡G�GÔà€BÔØ€B‡L�L„OØ€B‡L�L„OØ €B‡L�LÔØ€B‡L�LÔØ'€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà€B‡O�OÔØ €B‡O�OÔØ$)€B‡O�OÔ!Ø#%€B‡O�O×ÑÔ Ø'*€B‡O�O×ÑÔ$Ø !€B‡O�O×ÑÔØ $€B‡O�O×ÑÔØ&1€B‡O�O×ÑÔ#Ø&'€B‡O�O×ÑÔ#äˆb‹	€AØ‡K�K��SÔØ‡H�HˆS„Mà‡K�K�„Nà€NrA   c                  óÂ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        d|j                  j                  _        ddg|j                  _        | j'                  |«       | S )úAA bar chart showing value axis region starting at *exactly* zero.rð  rš   rñ  rô  rõ  rö  r   r÷  rø  r±   éûÿÿÿrü  rý  ©r   r¼  rm   rn   rp   ro   rQ   r   r–   r1   rO   rÿ  r   r  rP   r,  r“   ro  r  rk   r  s      r?   Ú	sampleV4arP  e  s¶   € ô �c˜3Ó€Gàˆ:€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø "€B‡O�O×ÑÔØ%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óÂ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        d|j                  j                  _        ddg|j                  _        | j'                  |«       | S )ú<A bar chart showing value axis region starting *below* zero.rð  rš   rñ  rô  rõ  rö  éöÿÿÿr÷  rø  r±   rN  rü  rý  rO  r  s      r?   Ú	sampleV4brT  ‚  s¶   € ô �c˜3Ó€Gàˆ:€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø "€B‡O�O×ÑÔØ%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óÂ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        d|j                  j                  _        ddg|j                  _        | j'                  |«       | S )z;A bar chart showing value axis region staring *above* zero.rð  rš   rñ  rô  rõ  rö  r‹   r÷  rø  r±   rN  rü  rý  rO  r  s      r?   Ú	sampleV4crV  Ÿ  s¶   € ô �c˜3Ó€Gàˆ:€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø "€B‡O�O×ÑÔØ%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óÂ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        d|j                  j                  _        ddg|j                  _        | j'                  |«       | S )ú<A bar chart showing value axis region entirely *below* zero.rð  rš   ©ióÿÿÿiìÿÿÿrô  rõ  rö  éâÿÿÿrS  rø  r±   rN  rü  rý  rO  r  s      r?   Ú	sampleV4dr[  ¼  s¶   € ô �c˜3Ó€Gàˆ<€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø "€B‡O�O×ÑÔØ%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   ))r‹   r÷  )ró  rô  )rû  é(   )r\  rû  c                  óÈ  — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|j                  _        d|j                  _        d|j                  _        d	|j                  j                   _        d
|j                  j                   _        ddg|j                  _        | j)                  |«       | S )ú8A simple bar chart with no expressed spacing attributes.rð  rš   rô  rõ  rö  r   r÷  rø  r±   rN  rü  rý  )r   ÚdataSample5r¼  rm   rn   rp   ro   rQ   r   r–   r1   rO   rÿ  r   r  rP   r,  r“   ro  r  rk   r  s      r?   Ú	sampleV5ar`  ß  s´   € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø "€B‡O�O×ÑÔØ%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  ó   — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d	|_        d|j                  _        d
|j                  _        d|j                  _        d|j&                  j(                  _        d|j&                  j(                  _        ddg|j&                  _        | j1                  |«       | S )ú-A simple bar chart with proportional spacing.rð  rš   rô  rõ  rö  r   r\  ró  r‹   r÷  rø  r±   rN  rü  rý  ©r   r_  r¼  rm   rn   rp   ro   rQ   r   r–   r1   rJ   rK   rL   rM   rO   rÿ  r   r  rP   r,  r“   ro  r  rk   r  s      r?   Ú	sampleV5brd  û  óÐ   € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B„NØ€B„KØ€B„OØ€B„Mà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø "€B‡O�O×ÑÔØ%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  ó   — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d|_        d|j                  _        d	|j                  _        d
|j                  _        d|j&                  j(                  _        d|j&                  j(                  _        ddg|j&                  _        | j1                  |«       | S )ú6Make sampe simple bar chart but with absolute spacing.rð  rš   rô  rõ  rö  r.   r\  r   r÷  rø  r±   rN  rü  rý  rc  r  s      r?   Ú
sampleV5c1rh    sÐ   € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B„NØ€B„KØ€B„OØ€B„Mà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø "€B‡O�O×ÑÔØ%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  ó   — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d	|_        d	|j                  _        d
|j                  _        d|j                  _        d|j&                  j(                  _        d|j&                  j(                  _        ddg|j&                  _        | j1                  |«       | S )rg  rð  rš   rô  rõ  rö  r.   r\  ró  r   r÷  rø  r±   rN  rü  rý  rc  r  s      r?   Ú
sampleV5c2rj  =  sÐ   € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B„NØ€B„KØ€B„OØ€B„Mà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø "€B‡O�O×ÑÔØ%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  ó   — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d	|_        d|j                  _        d
|j                  _        d|j                  _        d|j&                  j(                  _        d|j&                  j(                  _        ddg|j&                  _        | j1                  |«       | S )rg  rð  rš   rô  rõ  rö  r.   r\  r   r‹   r÷  rø  r±   rN  rü  rý  rc  r  s      r?   Ú
sampleV5c3rl  ^  sÐ   € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B„NØ€B„KØ€B„OØ€B„Mà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø "€B‡O�O×ÑÔØ%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  ó   — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d	|_        d
|j                  _        d|j                  _        d|j                  _        d|j&                  j(                  _        d|j&                  j(                  _        ddg|j&                  _        | j1                  |«       | S )rg  rð  rš   rô  rõ  rö  r.   r\  ró  r‹   r   r÷  rø  r±   rN  rü  rý  rc  r  s      r?   Ú
sampleV5c4rn    re  rA   c                  óÂ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        d|j                  j                  _        ddg|j                  _        | j'                  |«       | S )z>Make a slightly pathologic bar chart with only TWO data items.rð  rš   rñ  rô  rõ  rö  r   r÷  rø  Úserû  rü  rý  ©r   r¿  rm   rn   rp   ro   rQ   r   r–   r1   rO   rÿ  r   r  rP   r,  r“   r  r  rk   r  s      r?   Ú	sampleH0arr  ¢  s¶   € ô �c˜3Ó€Gàˆ:€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'+€B‡O�O×ÑÔ$Ø#%€B‡O�O×ÑÔ Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óÀ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d|j                  _        d	|j                  j                  _        d
|j                  j                  _        dg|j                  _        | j'                  |«       | S )z4Make a pathologic bar chart with only ONE data item.rð  rš   r  rô  rõ  rö  r   rø  rp  rû  r	  rq  r  s      r?   Ú	sampleH0brt  ¿  s³   € ô �c˜3Ó€Gàˆ7€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'+€B‡O�O×ÑÔ$Ø#%€B‡O�O×ÑÔ Ø%- J€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  ó¾  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        d|j                  j                  _        g |j                  _        | j'                  |«       | S )z=Make a really pathologic bar chart with NO data items at all!rð  rš   rF   rô  rõ  rö  r   r÷  rø  rp  rû  rq  r  s      r?   Ú	sampleH0crv  Û  s±   € ô �c˜3Ó€Gàˆ4€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'+€B‡O�O×ÑÔ$Ø#%€B‡O�O×ÑÔ Ø$&€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óÜ  — t        dd«      } ddg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d	|j                  _        d
|j                  _        d|j                  j                  _        dj#                  d«      }|D �cg c]  }|dz   ‘Œ	 }}||j                  _        | j'                  |d«       | S c c}w )r  rð  rš   r  r  rô  rõ  rö  r   r÷  rø  Úer  r  r  Úbarchart)r   r¿  rm   rn   rp   ro   rQ   r   r–   r1   rO   rÿ  r   r  rP   r,  r“   rô   r  rk   r  s        r?   ÚsampleH1rz  ÷  sØ   € ô �c˜3Ó€Gð +Ø*ð€Dô
 
Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø0×6Ñ6°sÓ;€HØ!)Ö*˜A��%“Ð*€HÐ*Ø$,€B‡O�OÔ!Ø‡K�K��JÔà€Nùò	 +s   Â6C)c                  ó  — ddg} d}t        dd«      }t        «       }d|_        d|_        d|_        d	|_        | |_        d
|_        d|_        d|_	        d|j                  _        d|j                  _        d|j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        |j                  j'                  |j                  «       ||j(                  _        d|j(                  j                  _        d|j(                  j                  _        d|j(                  j                  _        |j/                  |«       |S )r  r!  r$  r(  rð  rš   rˆ   rô  r…   rö  r   r‹   r)  rø  rŒ   r*  rú  r±   rŽ   éjÿÿÿ)r   r¿  rm   rn   rp   ro   rQ   rM   rL   rK   rO   rÿ  r   r  r,  rk  rl  r“   r”   rÖ   rP   r  rn  rk   r-  s       r?   Ú	sampleH2ar}    s:  € ð #Ø#ð€Dð7€Fô �c˜3Ó€Gä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gà€B„MØ€B„OØ€B„Kà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔØ#.€B‡L�L×ÑÔ Ø#$€B‡L�L×ÑÔ Ø$'€B‡L�L×ÑÔ!Ø%-€B‡L�L×ÑÔ"Ø‡L�L×Ñ˜2Ÿ7™7Ô#à$*€B‡O�OÔ!Ø&1€B‡O�O×ÑÔ#Ø&'€B‡O�O×ÑÔ#Ø $€B‡O�O×ÑÔà‡K�K�„Oà€NrA   c                  óÒ  — ddg} d}t        dd«      }t        «       }d|_        d|_        d|_        d	|_        | |_        d
|_        d|_        d|_	        d|j                  _        d|j                  _        d
|j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        ||j&                  _        d|j&                  j                  _        d|j&                  j                  _        d|j&                  j                  _        |j-                  |«       |S )r  r!  r$  r(  rð  rš   rˆ   rô  r…   rö  rŒ   r‹   r)  rø  r*  rú  r±   rŽ   r|  )r   r¿  rm   rn   rp   ro   rQ   rM   rL   rK   rO   rÿ  r   r  r,  rk  rl  r“   r”   rP   r  rn  rk   r-  s       r?   Ú	sampleH2br  @  s$  € ð #Ø#ð€Dð7€Fô �c˜3Ó€Gä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gà€B„MØ€B„OØ€B„Kà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔØ#.€B‡L�L×ÑÔ Ø#$€B‡L�L×ÑÔ Ø$'€B‡L�L×ÑÔ!Ø%-€B‡L�L×ÑÔ"à$*€B‡O�OÔ!Ø&1€B‡O�O×ÑÔ#Ø&'€B‡O�O×ÑÔ#Ø $€B‡O�O×ÑÔà‡K�K�„Oà€NrA   c                  ó¬  — ddg} d}t        dd«      }t        «       }d|_        d|_        d|_        d	|_        | |_        d
|_        d|_        d|_	        d|j                  _        d|j                  _        d|j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        d|j                  j                  _        ||j&                  _        d|j&                  j                  _        d|j&                  j                  _        d|j&                  j                  _        d|j,                  _        d|_        d|j,                  _        d|j,                  _        d|j,                  _        d|j,                  _        d|j,                  _        |j5                  |«       |S )r  r3  r5  r(  rð  rš   rˆ   rô  r…   rö  r�   r‹   r)  rø  rŒ   r*  rú  r±   rŽ   r|  r6  r   rä   )r   r¿  rm   rn   rp   ro   rQ   rM   rL   rK   rO   rÿ  r   r  r,  rk  rl  r“   r”   rP   r  rn  rR   r•   rS   ro  rk   r-  s       r?   Ú	sampleH2cr�  i  sr  € ð $Ø$ð€Dð7€Fô �c˜3Ó€Gä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gà€B„MØ€B„OØ€B„Kà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔØ#.€B‡L�L×ÑÔ Ø#$€B‡L�L×ÑÔ Ø$'€B‡L�L×ÑÔ!Ø%-€B‡L�L×ÑÔ"à$*€B‡O�OÔ!Ø&1€B‡O�O×ÑÔ#Ø&'€B‡O�O×ÑÔ#Ø $€B‡O�O×ÑÔà€B‡L�LÔà€BÔØ€B‡L�L„OØ€B‡L�L„OØ €B‡L�LÔØ'€B‡L�LÔØ€B‡L�LÔà‡K�K�„Oà€NrA   c                  ó  — d} d}d}t        | «      t        |«      k(  sJ d«       ‚t        | «      t        |«      k(  sJ d«       ‚t        dd«      }t        «       }d|_        d|_        d	|_        d
|_        |f|_        t        j                  |j                  _        d|_        d|j                  _        d|j                  _        d|j                  _        d|j                  _        d|j                  _        d|j                  _        d|j(                  _        d|j(                  _        d|j(                  _        d|j(                  _        d|j2                  _        d|j2                  _        | |j2                  _        d|j2                  j:                  _        d|j2                  j:                  _        d|j2                  j:                  _        d|j2                  j:                  _        t=        |«      }|j?                  |«       |S )zEA really horizontal bar chart (compared to the equivalent faked one).r9  r;  r=  r@  rð  rš   rƒ   ró  rA  éú   r6  r   r§  r*  rä   r‹   ri  r�   r.   iVÿÿÿ) rh   r   r¿  rm   rn   rp   ro   rQ   r   r˜   rN   r2   rS   rR   rn  ro  r“   rk  rl  r•   rO   rj  rÿ  r   r  rP   ÚtickLeftÚ	tickRightr  r,  r   rk   rG  s         r?   ÚsampleH3r†  ›  s™  € ðG€Eð B€GØH€Gäˆu‹:œ˜W›Ò%Ð1 zÓ1Ð%Üˆu‹:œ˜W›Ò%Ð1 zÓ1Ð%ä�c˜3Ó€Gä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØˆj€B„GÜŸ™€B‡G�GÔà€BÔØ€B‡L�L„OØ€B‡L�L„OØ €B‡L�LÔØ'€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà €B‡O�OÔØ !€B‡O�OÔØ$)€B‡O�OÔ!Ø'*€B‡O�O×ÑÔ$Ø $€B‡O�O×ÑÔØ&1€B‡O�O×ÑÔ#Ø&'€B‡O�O×ÑÔ#äˆb‹	€AØ‡K�K�„Nà€NrA   c                  óŒ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        ddg|j                  _        | j%                  |«       | S )rM  rð  rš   rñ  rô  rõ  rö  r   r÷  rø  rx  rü  rý  ©r   r¿  rm   rn   rp   ro   rQ   r   r–   r1   rO   rÿ  r   r  rP   r,  r“   r  rk   r  s      r?   Ú	sampleH4ar‰  Í  s¤   € ô �c˜3Ó€Gàˆ:€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óŒ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        ddg|j                  _        | j%                  |«       | S )rR  rð  rš   rñ  rô  rõ  rö  rS  r÷  rø  rx  rü  rý  rˆ  r  s      r?   Ú	sampleH4br‹  é  s¤   € ô �c˜3Ó€Gàˆ:€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óŒ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        ddg|j                  _        | j%                  |«       | S )z<A bar chart showing value axis region starting *above* zero.rð  rš   rñ  rô  rõ  rö  r‹   r÷  rø  rx  rü  rý  rˆ  r  s      r?   Ú	sampleH4cr�    s¤   € ô �c˜3Ó€Gàˆ:€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óŒ  — t        dd«      } dg}t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_	        d|j                  _        d|j                  _        d	|j                  _        d
|j                  j                  _        ddg|j                  _        | j%                  |«       | S )rX  rð  rš   rY  rô  rõ  rö  rZ  rS  rø  rx  rü  rý  rˆ  r  s      r?   Ú	sampleH4dr�  !  s¤   € ô �c˜3Ó€Gàˆ<€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„Gä—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  ó’  — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|j                  _        d|j                  _        d|j                  _        d	|j                  j                   _        d
dg|j                  _        | j'                  |«       | S )r^  rð  rš   rô  rõ  rö  r   r÷  rø  rx  rü  rý  )r   r_  r¿  rm   rn   rp   ro   rQ   r   r–   r1   rO   rÿ  r   r  rP   r,  r“   r  rk   r  s      r?   Ú	sampleH5ar‘  ?  s¢   € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óÊ  — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d	|_        d|j                  _        d
|j                  _        d|j                  _        d|j&                  j(                  _        ddg|j&                  _        | j/                  |«       | S )rb  rð  rš   rô  rõ  rö  r   r\  ró  r‹   r÷  rø  rx  rü  rý  ©r   r_  r¿  rm   rn   rp   ro   rQ   r   r–   r1   rJ   rK   rL   rM   rO   rÿ  r   r  rP   r,  r“   r  rk   r  s      r?   Ú	sampleH5br”  Z  ó¾   € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B„NØ€B„KØ€B„OØ€B„Mà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óÊ  — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d|_        d|j                  _        d	|j                  _        d
|j                  _        d|j&                  j(                  _        ddg|j&                  _        | j/                  |«       | S )z)A simple bar chart with absolute spacing.rð  rš   rô  rõ  rö  r.   r‹   r   r÷  rø  rx  rü  rý  r“  r  s      r?   Ú
sampleH5c1r—  z  ó¾   € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B„NØ€B„KØ€B„OØ€B„Mà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óÊ  — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d	|_        d	|j                  _        d
|j                  _        d|j                  _        d|j&                  j(                  _        ddg|j&                  _        | j/                  |«       | S ©ú'Simple bar chart with absolute spacing.rð  rš   rô  rõ  rö  r.   r‹   ró  r   r÷  rø  rx  rü  rý  r“  r  s      r?   Ú
sampleH5c2rœ  š  s¾   € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B„NØ€B„KØ€B„OØ€B„Mà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!à‡K�K�„Oà€NrA   c                  óÊ  — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d	|_        d
|_        d	|j                  _        d|j                  _        d|j                  _        d|j&                  j(                  _        ddg|j&                  _        | j/                  |«       | S )r›  rð  rš   rô  ró  é›   rö  r.   r‹   r   r�   r÷  rø  rx  rü  rý  r“  r  s      r?   Ú
sampleH5c3rŸ  º  r˜  rA   c                  óÊ  — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d|_        d	|j                  _        d
|j                  _        d|j                  _        d|j&                  j(                  _        ddg|j&                  _        | j/                  |«       | S rš  r“  r  s      r?   Ú
sampleH5c4r¡  Ú  r•  rA   c                  óÂ  — t        dd«      } t        }t        «       }d|_        d|_        d|_        d|_        ||_        t        j                  |_
        d|_        d|_        d|_        d	|j                  _        d
|j                  _        d|j                  _        d|j$                  j&                  _        ddg|j$                  _        d	dlm}  |«       }t        j                  |_        t        j2                  |_        d|_        d	|_         |«       }t        j                  |_        t        j:                  |_        d|_        d	|_         |«       }t        j2                  |_        t        j<                  |_        d|_        d|_        d	|_        ||j@                  _!        ||j@                  d   _!        ||j@                  d   _!        | jE                  |«       | S )ú(Simple bar chart using symbol attribute.rð  rš   rô  rõ  rö  r‹   rø  râ   r   r÷  rx  rü  rý  ©Ú
ShadedRectÚ
horizontalÚverticalr.   r�   )#r   r_  r¼  rm   rn   rp   ro   rQ   r   r–   r1   rK   rL   rM   rO   rÿ  r   r  rP   r,  r“   r  Ú reportlab.graphics.widgets.gridsr¥  ÚfillColorStartr<   ÚfillColorEndÚorientationr3   ÚpinkÚwhiteÚcylinderModerN   r5   rk   )rœ   rQ   r�   r¥  Úsym1Úsym2Úsym3s          r?   ÚsampleSymbol1r²  ù  sz  € ô �c˜3Ó€Gä€Dä	Ó	€BØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B„KØ€B„OØ€B„Mà€B‡L�LÔØ€B‡L�LÔØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!å;Ù‹<€DÜ Ÿ,™,€DÔÜŸ™€DÔØ#€DÔØ€DÔá‹<€DÜ Ÿ,™,€DÔÜŸ™€DÔØ#€DÔØ€DÔá‹<€DÜ Ÿ+™+€DÔÜŸ™€DÔØ!€DÔØ€DÔØ€DÔà€B‡G�G„NØ€B‡G�GˆA�JÔØ€B‡G�GˆA�JÔà‡K�K�„Oà€NrA   c                  óÌ  — t        dd«      } t        }t        «       }d|j                  _        d|_        d|_        d|_        d|_        ||_	        t        j                  |_        d|_        d|_        d	|j                  _        d
|j                  j"                  _        ddg|j                  _        d	dlm}  |«       |j,                  _        t        j0                  |j,                  j.                  _        t        j4                  |j,                  j.                  _        d|j,                  j.                  _        d|j,                  j.                  _        d	|j,                  j.                  _         |«       |j,                  d   _        t        j>                  |j,                  d   j.                  _        t        j4                  |j,                  d   j.                  _        d|j,                  d   j.                  _        d|j,                  d   j.                  _        d	|j,                  d   j.                  _         |«       |j,                  d   _        t        j@                  |j,                  d   j.                  _        t        j4                  |j,                  d   j.                  _        d|j,                  d   j.                  _        d|j,                  d   j.                  _        d	|j,                  d   j.                  _         |«       |j,                  d   _        t        jB                  |j,                  d   j.                  _        t        j4                  |j,                  d   j.                  _        d|j,                  d   j.                  _        d|j,                  d   j.                  _        d	|j,                  d   j.                  _        | jE                  |«       | S )r£  rð  rš   r   rô  rõ  rö  r‹   rø  r   rx  rü  rý  r¤  r§  r.   r�   râ   )#r   r_  r¼  rP   rs   rm   rn   rp   ro   rQ   r   r–   r1   rK   rL   rO   rÿ  r,  r“   r  r¨  r¥  rN   r5   r—   r©  r­  rª  r«  r®  r3   Úmagentar˜   r<   rk   )rœ   rQ   r�   r¥  s       r?   ÚsampleStacked1rµ  /	  s¤  € ô �c˜3Ó€Gä€Dä	Ó	€BØ%€B‡O�OÔØ€B„DØ€B„DØ€B„IØ€B„HØ€B„GÜ—\‘\€B„Nà€B„KØ€B„OØ€B‡L�LÔà'*€B‡O�O×ÑÔ$Ø%+¨VÐ$4€B‡O�OÔ!å;Ù“\€B‡G�G„NÜ$*§J¡J€B‡G�G‡N�NÔ!Ü"(§,¡,€B‡G�G‡N�NÔØ!+€B‡G�G‡N�NÔØ"#€B‡G�G‡N�NÔØ!"€B‡G�G‡N�NÔá"›€B‡G�GˆA�JÔÜ'-§~¡~€B‡G�GˆA�J×ÑÔ$Ü%+§\¡\€B‡G�GˆA�J×ÑÔ"Ø$.€B‡G�GˆA�J×ÑÔ!Ø%&€B‡G�GˆA�J×ÑÔ"Ø$%€B‡G�GˆA�J×ÑÔ!á"›€B‡G�GˆA�JÔÜ'-§|¡|€B‡G�GˆA�J×ÑÔ$Ü%+§\¡\€B‡G�GˆA�J×ÑÔ"Ø$.€B‡G�GˆA�J×ÑÔ!Ø%&€B‡G�GˆA�J×ÑÔ"Ø$%€B‡G�GˆA�J×ÑÔ!á"›€B‡G�GˆA�JÔÜ'-§{¡{€B‡G�GˆA�J×ÑÔ$Ü%+§\¡\€B‡G�GˆA�J×ÑÔ"Ø$.€B‡G�GˆA�J×ÑÔ!Ø%&€B‡G�GˆA�J×ÑÔ"Ø$%€B‡G�GˆA�J×ÑÔ!à‡K�K�„Oà€NrA   c                   ó   — e Zd ZdZdd„Zy)Ú
SampleH5c4r›  c                 ó  — t        j                  | ||g|¢­i |¤Ž t        «       }d|_        d|_        d|_        d|_        t        |_        t        j                  |_        d|_        d|_        d|_        d|_        d|j                   _        d|j                   _        d	|j                   _        d
|j(                  j*                  _        ddg|j(                  _        | j1                  |d¬«       |j3                  «        y )Nrô  rõ  rö  r.   r‹   ró  r   r÷  rø  rx  rü  rý  ÚHBC)r6   )r   r@   r¿  rm   rn   rp   ro   r_  rQ   r   r–   r1   rJ   rK   rL   rM   rO   rÿ  r   r  rP   r,  r“   r  rk   r³  )r>   ro   rp   ÚargsÚkwr�   s         r?   r@   zSampleH5c4.__init__k	  sÓ   € Ü×Ñ˜˜e FÐ6¨DÒ6°2Ò6ÜÓ!ˆØˆŒØˆŒØˆŒ	ØˆŒÜˆŒÜŸ™ˆŒàˆŒØˆŒØˆŒØˆŒà !ˆ�‰ÔØ "ˆ�‰ÔØ!#ˆ�‰Ôà+.ˆ�‰×ÑÔ(Ø)/°Ð(8ˆ�‰Ô%à�‰�˜ˆÔØ
×*Ñ*Õ,rA   N)rð  rš   )rB   rC   rD   rº  r@   rF   rA   r?   r·  r·  h	  s
   „ Ù-ô-rA   r·  )hÚ__version__rº  rc  rÃ  Úastr   Úreportlab.libr   Úreportlab.lib.validatorsr   r   r   r   r	   r
   r   r   r   r   r   r   Úreportlab.lib.utilsr   r   Ú"reportlab.graphics.widgets.markersr   r   Úreportlab.lib.attrmapr   r   Úreportlab.pdfbase.pdfmetricsr   Úreportlab.graphics.widgetbaser   r   r   Úreportlab.graphics.shapesr   r   r   r   r   Úreportlab.graphics.charts.axesr    r!   r"   r#   Ú$reportlab.graphics.charts.textlabelsr$   r%   Úreportlab.graphics.charts.areasr&   Ú!reportlab.graphics.charts.legendsr'   Ú	reportlabr)   r+   rH   r¼  r¿  rÁ  r~   rç  rí  r  r
  r  r  r.  r1  r7  rK  rP  rT  rV  r[  r_  r`  rd  rh  rj  rl  rn  rr  rt  rv  rz  r}  r  r�  r†  r‰  r‹  r�  r�  r‘  r”  r—  rœ  rŸ  r¡  r²  rµ  r·  rF   rA   r?   ú<module>rË     s½  ðð €ð	€÷ Ý å  ÷B÷ B÷ Bó B÷ 7ß Gß 7Ý 4ß YÑ Yß JÕ Jß _Ó _ß XÝ 4Ý 5Ý ô$˜ô $ô*w"ˆxô w"ôr�xô ô˜ô ÷'ñ 'ô`�ô `ôDO˜Ð$4ô OôR˜:Ð&8ô Ròò>ò<ò: òF&òR&òR/òd5òpò:ò:ò:òB 7€òò8òBòBòBòBòFò:ò8ò8ò>'òT&òR/òd/òdò8ò8ò8ò8 7€òò6ò@ò@ò@ò@ò>4òl6ôr-�õ -rA   