ó
    †ñ:iU½  ã                  óN  • S r SSKJr  SSKrSSKJr  SSKrSSKJr	  SSK
rSSKrSSKrSSKrSSKrSSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJ r   SSK!J"r"J#r#J$r$J%r%J&r&  \RN                  " \RP                  5      \RN                  " S5      :¼  a  \)" SS9r*O\)" SS9r*S\RV                  RY                  S5      SSSSSSSSSSS\ S   S4                     S"S jjr-S r.S r/SSSSSSSSSSSSS SS\ S   \R`                  SSS4     S#S! jjr1g)$z4Summary plots of SHAP values across a whole dataset.é    )ÚannotationsN)ÚLiteral)ÚFigure)Úversion)Úgaussian_kdeé   )ÚExplanation©Úsafe_isinstance)ÚDimensionErroré   )Úcolors)Úlabels)Úconvert_colorÚconvert_orderingÚget_sort_orderÚmerge_nodesÚ	sort_indsz3.10Ú
horizontal)ÚorientationF)Úverté
   ç      à?z#333333ç      ð?Té   ÚautoÚFEATURE_VALUEc                óþ  • [        U [        5      (       d  Sn[        U5      eU R                  n[	        U5      S:X  a  Sn[        U5      e[	        U5      S:”  a  Sn[        U5      eU(       a  U(       a  Sn[        U5      eU n[        R                  " UR                  5      nUR                  n[        R                  R                  U5      (       a  UR                  5       nUR                  n[        UU5      nUc$  Ub  [         R"                  nO[         R$                  n['        U5      nSn[        U[(        R*                  5      (       aZ  Uc  UR,                  nUR.                  R1                  [2        5      R5                  SS	/5      R7                  5       nUR                  nO@[        U[8        5      (       a  Uc  UnSnO#Ub   [	        UR                  5      S:X  a  Uc  UnSnUR                  S   nUbF  S
nUS-
  UR                  S   :X  a  US-  n[;        U5      eUUR                  S   :w  a  [;        U5      eUcC  [        R<                  " [?        U5       Vs/ s H  n[@        S   [3        U5      -  PM     sn5      nUc  [B        RD                  " 5       nURG                  5       n[        U[H        5      (       d   eU
(       a  URK                  S5        Uc<  [M        U SS5      nUb)  URO                  S5      RQ                  5       S:X  a  US   nOSnO
USL a  SnOUnUb   UR                  S   S:w  a  Sn[        U5      eUc  [	        U5      n[S        U[	        U5      5      n[?        [	        U5      5       Vs/ s H  nU/PM     nnUR                  5       n [        U[        [        RT                  " U5      5      5      nUGb(  [W        U[        RT                  " U5      5      n[        RX                  RZ                  R]                  [        R^                  R`                  Rc                  U5      5      n [e        U UUU5      nU[	        U5      :  aš  U UUS-
     UUS-
     4   U::  aƒ  [g        [        RT                  " U5      U5      u  nn!n"[?        [	        U5      5       HF  n#USS2U!4==   USS2U"4   -  ss'   [        Rh                  " UU"S5      nUU!==   UU"   -  ss'   UU"	 MH     OOOGMY  USU n$/ n%U HÕ  n&[	        U&5      S:X  a  U%Rk                  UU&S      5        M+  [	        U&5      S::  a6  U%Rk                  SRm                  U& Vs/ s H  nUU   PM
     sn5      5        Mp  [        Rn                  " [        RT                  " U5      Rq                  S5      U&   5      n'U%Rk                  UU&U'       S[	        U&5      S-
   S35        M×     U%nU[	        US   5      :  =(       a    Un(U((       a§  [        RP                  " [?        US-
  [	        US   5      5       Vs/ s H  n[	        UUU      5      PM     sn5      n)[        RP                  " [?        US-
  [	        US   5      5       Vs/ s H  nUSS2UU   4   PM     snS5      USS2UUS-
     4'   U$ Vs/ s H  nUU   PM
     n*nU((       a	  SW) S3U*S'   Sn+US:X  a,  URs                  S[S        [	        U5      U5      U+-  S-   5        Ob[        U[8        [t        45      (       a  URs                  US   US   5        O.Ub+  URs                  S[S        [	        U5      U5      U-  S-   5        URw                  SSSS9  [y        [{        U$5      5       GH+  u  n,nUR}                  U,SSS SS!9  USS2U4   n-Uc  SOUSS2U4   n.[        R~                  " [	        U-5      5      n/[        R€                  Rƒ                  U/5        U.b  U.U/   n.U-U/   n-Sn0 Ub  UU   (       a  Sn0O$[        R<                  " U.[        R„                  S"9n. [	        U-5      n1S#n2[        Rˆ                  " U2U-[        RR                  " U-5      -
  -  [        RŠ                  " U-5      [        RR                  " U-5      -
  S$-   -  5      n3[        RŒ                  " U3[        R€                  R�                  U15      S%-  -   5      n4Sn5Sn6[        R�                  " U15      n7U4 H@  n8U3U8   U6:w  a  Sn5[        R’                  " U5S-  5      U5S-  S-  S-
  -  U7U8'   U5S-  n5U3U8   n6MB     U7S&U+[        RŠ                  " U7S-   5      -  -  -  n7[•        US'5      (       Gaá  U.GbÝ  U0SL Ga×  [        R–                  " U.S(5      n9[        R–                  " U.S)5      n:U9U::X  a`  [        R–                  " U.S5      n9[        R–                  " U.S*5      n:U9U::X  a,  [        RR                  " U.5      n9[        RŠ                  " U.5      n:U9U::”  a  U:n9Ub)  UR                  S   [	        U-5      :w  a  S+n[;        U5      e[        R˜                  " U.5      n;UR›                  U-U;   U,U7U;   -   S,UUSS-[	        U-5      S.:„  S/9  U.[        Rœ                  " U;5         R1                  [        R„                  5      n<U<R                  5       n=U9U:-   S0-  U=[        R˜                  " U<5      '   U:U<U=U::„  '   U9U<U=U9:  '   UR›                  U-[        Rœ                  " U;5         U,U7[        Rœ                  " U;5         -   UU9U:UU<USS-[	        U-5      S.:„  S19  GMÏ  [•        US'5      (       a  [Ÿ        US25      (       a  UR                   nUR›                  U-U,U7-   UUSS-U0(       a  UOS,[	        U-5      S.:„  S39  GM.     [•        US'5      (       a¾  U(       a·  Ub´  SSKPJQn>  U>R¥                  US49n?U?R§                  SS/5        UR©                  U?USS/S5S69n@U@R«                  [@        S7   [@        S8   /5        U@R­                  US9SS:9  U@R®                  R±                  S;SS<9  U@R³                  S5        U@R´                  R·                  S5        UR¸                  R»                  S=5        UR¼                  R»                  S>5        UR¾                  S?   R·                  S5        UR¾                  S@   R·                  S5        UR¾                  SA   R·                  S5        UR±                  XfSB9  URÁ                  [?        [	        U$5      5      [9        [{        U*5      5      SCSD9  UR±                  SESFSSGSH9  UR±                  SIS;SJ9  URÃ                  S[	        U$5      5        URÅ                  [@        SK   SCSD9  U	(       a  [B        RÆ                  " 5         gU$ s  snf s  snf s  snf s  snf s  snf s  snf ! [†         a    Sn0 GNÀf = f)La•  Create a SHAP beeswarm plot, colored by feature values when they are provided.

Parameters
----------
shap_values : Explanation
    This is an :class:`.Explanation` object containing a matrix of SHAP values
    (# samples x # features).

max_display : int
    How many top features to include in the plot (default is 10, or 7 for
    interaction plots).

ax: matplotlib Axes
    Axes object to draw the plot onto, otherwise uses the current Axes.

show : bool
    Whether :external+mpl:func:`matplotlib.pyplot.show()` is called before returning.
    Setting this to ``False`` allows the plot to be customized further
    after it has been created, returning the current axis via
    :external+mpl:func:`matplotlib.pyplot.gca()`.

color_bar : bool
    Whether to draw the color bar (legend).

s : float
    What size to make the markers. For further information, see ``s`` in
    :external+mpl:func:`matplotlib.pyplot.scatter`.

plot_size : "auto" (default), float, (float, float), or None
    What size to make the plot. By default, the size is auto-scaled based on the
    number of features that are being displayed. Passing a single float will cause
    each row to be that many inches high. Passing a pair of floats will scale the
    plot by that number of inches. If ``None`` is passed, then the size of the
    current figure will be left unchanged. If ``ax`` is not ``None``, then passing
    ``plot_size`` will raise a :exc:`ValueError`.

group_remaining_features: bool
    If there are more features than ``max_display``, then plot a row representing
    the sum of SHAP values of all remaining features. Default True.

Returns
-------
ax: matplotlib Axes
    Returns the :external+mpl:class:`~matplotlib.axes.Axes` object with the plot drawn onto it. Only
    returned if ``show=False``.

Examples
--------
See `beeswarm plot examples <https://shap.readthedocs.io/en/latest/example_notebooks/api_examples/plots/beeswarm.html>`_.

zQThe beeswarm plot requires an `Explanation` object as the `shap_values` argument.r   zuThe beeswarm plot does not support plotting a single instance, please pass an explanation matrix with many instances!r   zjThe beeswarm plot does not support plotting explanations with instances that have more than one dimension!zÅThe beeswarm plot does not support passing an axis and adjusting the plot size. To adjust the size of the plot, set plot_size to None and adjust the size on the original figure the axes was part ofNÚobjectÚcategoryúYThe shape of the shap_values matrix does not match the shape of the provided data matrix.zp Perhaps the extra column in the shap_values matrix is the constant offset? If so, just pass shap_values[:,:-1].ÚFEATUREÚsymlogÚ
clusteringr   Fé   z~The clustering provided by the Explanation object does not seem to be a partition tree (which is all shap.plots.bar supports)!Tz + z other featureszSum of éÿÿÿÿçš™™™™™Ù?r   é   ç      ø?ú#999999©ÚxÚcolorÚzorderú#ccccccr   ©r   é   ©Úyr-   ÚlwÚdashesr.   ©Údtypeéd   ç:Œ0âŽyE>ç�íµ ÷Æ°>çÍÌÌÌÌÌì?úmatplotlib.colors.Colormapr1   é_   éc   ú<Feature and SHAP matrices must have the same number of rows!ú#777777é   éô  ©r-   ÚsÚalphaÚ	linewidthr.   Ú
rasterizedç       @©	ÚcmapÚvminÚvmaxrD   ÚcrE   rF   r.   rG   r   ©rD   rE   rF   r.   r-   rG   ©rJ   éP   ©ÚaxÚticksÚaspectÚFEATURE_VALUE_LOWÚFEATURE_VALUE_HIGHé   ©ÚsizeÚlabelpadé   ©Ú	labelsizeÚlengthÚbottomÚnoneÚrightÚtopÚleft©r-   Ú
labelcoloré   ©Úfontsizer3   é   Úmajor©r^   ÚwidthÚwhichr,   ©r]   ÚVALUE)dÚ
isinstancer	   Ú	TypeErrorÚshapeÚlenÚ
ValueErrorÚnpÚcopyÚvaluesÚdataÚscipyÚsparseÚissparseÚtoarrayÚfeature_namesr   r   Úred_blueÚblue_rgbr   ÚpdÚ	DataFrameÚcolumnsÚdtypesÚastypeÚstrÚisinÚtolistÚlistr   ÚarrayÚranger   ÚpltÚgcaÚ
get_figurer   Ú
set_xscaleÚgetattrÚvarÚsumÚminÚabsr   ÚspatialÚdistanceÚ
squareformÚclusterÚ	hierarchyÚcophenetr   r   ÚdeleteÚappendÚjoinÚargmaxÚmeanÚset_size_inchesÚtupleÚaxvlineÚ	enumerateÚreversedÚaxhlineÚarangeÚrandomÚshuffleÚfloat64Ú	ExceptionÚroundÚmaxÚargsortÚrandnÚzerosÚceilr   ÚnanpercentileÚisnanÚscatterÚinvertÚhasattrÚmatplotlib.cmÚcmÚScalarMappableÚ	set_arrayÚcolorbarÚset_ticklabelsÚ	set_labelrR   Útick_paramsÚ	set_alphaÚoutlineÚset_visibleÚxaxisÚset_ticks_positionÚyaxisÚspinesÚ
set_yticksÚset_ylimÚ
set_xlabelÚshow)AÚshap_valuesÚmax_displayÚorderr$   Úcluster_thresholdr-   Ú
axis_colorrE   rR   rÇ   Ú	log_scaleÚ	color_barrD   Ú	plot_sizeÚcolor_bar_labelÚgroup_remaining_featuresÚemsgÚsv_shapeÚshap_exprw   Úfeaturesr}   Úidx2catÚnum_featuresÚ	shape_msgÚiÚfigÚpartition_treeÚ	orig_indsÚorig_valuesÚfeature_orderÚclust_orderÚdistÚind1Úind2Ú_Úfeature_indsÚfeature_names_newÚindsÚmax_indÚinclude_grouped_remainingÚnum_cutÚyticklabelsÚ
row_heightÚposÚshapsÚfvaluesÚf_indsÚcolored_featureÚNÚnbinsÚquantÚinds_ÚlayerÚlast_binÚysÚindrK   rL   Únan_maskÚcvalsÚ	cvals_impr¶   ÚmÚcbsA                                                                    ÚW/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/shap/plots/_beeswarm.pyÚbeeswarmrÿ   (   sä  € ôJ �k¤;×/Ñ/ØbˆÜ˜‹oÐà× Ñ €HÜ
ˆ8ƒ}˜Óð9ð 	ô ˜ÓÐÜ	ˆX‹˜Ó	àxð 	ô ˜ÓÐæ	ŽiðDð 	ô ˜ÓÐà€Hä�WŠW�X—_‘_Ó%€FØ�}‰}€HÜ‡|�|×Ñ˜X×&Ñ&Ø×#Ñ#Ó%ˆØ×*Ñ*€Mô ˜U FÓ+€Eð �}ØÑÜ—O‘O‰Eä—O‘OˆEÜ˜%Ó €Eà€Gä�(œBŸL™L×)Ñ)ØÑ Ø$×,Ñ,ˆMà—/‘/×(Ñ(¬Ó-×2Ñ2°H¸jÐ3IÓJ×QÑQÓSˆØ—?‘?‰Ü	�Hœd×	#Ñ	#ØÑ Ø$ˆMØ‰Ø
Ñ
¤C¨¯©Ó$7¸1Ó$<ÀÑAVØ ˆØˆà—<‘< ‘?€LàÑØoˆ	Ø˜!Ñ˜xŸ~™~¨aÑ0Ó0ØðHñˆIô ! Ó+Ð+Ø˜8Ÿ>™>¨!Ñ,Ó,Ü  Ó+Ð+àÑÜŸšÄeÈLÔFYÓ!ZÒFYÀ¤&¨Ñ"3´c¸!³fÔ"<ÑFYÑ!ZÓ[ˆà	�zÜ�WŠW‹YˆØ
�-‰-‹/€CÜ�cœ6×"Ñ"Ð"Ð"æØ
�‰�hÔàÑÜ  ¨l¸DÓAˆØÑ%¨.×*<Ñ*<¸QÓ*?×*CÑ*CÓ*EÈÓ*JØ+¨AÑ.‰Nà!‰NØ	�uÒ	Ø‰à#ˆàÑ!Ø×Ñ Ñ" aÓ'ðNð ô ˜TÓ"Ð"ðj ÑÜ˜-Ó(ˆÜ�{¤C¨Ó$6Ó7€Lô $¤C¨Ó$6Ô7Ó8Ò7˜�!“Ñ7€IÐ8Ø—+‘+“-€KØ
Ü(¨´¼B¿FºFÀ6»NÓ0KÓLˆØÒ%ä# N´B·F²F¸6³NÓCˆKô —=‘=×)Ñ)×4Ñ4´U·]±]×5LÑ5L×5UÑ5UÐVdÓ5eÓfˆDÜ*¨4°Ð>OÐQ^Ó_ˆMð
 œc -Ó0Ó0Ø˜ {°Q¡Ñ7¸À{ÐUVÁÑ9WÐWÑXÐ\mÓmô .9¼¿ºÀ»ÈÓ-XÑ*�  dÜœs 6›{Ö+�AØš1˜d˜7“O vªa°¨g¡Ñ6“OÜŸYšY v¨t°QÓ7�FØ˜d“O y°¡Ñ6“OØ! $šò	 ,ð àò5 ð: !  +Ð.€LØÐÛˆÜˆt‹9˜‹>Ø×$Ñ$ ]°4¸±7Ñ%;Ö<Ü�‹Y˜!‹^Ø×$Ñ$ U§Z¡ZÉ4Ó0PÊ4Àa°¸qÔ1AÉ4Ñ0PÓ%QÖRä—i’i¤§¢ {Ó 3× 8Ñ 8¸Ó ;¸DÑ AÓBˆGØ×$Ñ$¨°d¸7±mÑ(DÐ'EÀSÌÈTËÐUVÉÈÐWfÐ%gÖhñ ð &€Mð !-¬s°6¸!±9«~Ñ =× ZÐBZÐÞ Ü—&’&ÄEÈ,ÐYZÑJZÔ\_Ð`fÐghÑ`iÓ\jÔDkÓlÒDk¸qœ#˜i¨°aÑ(8Ñ9Ö:ÑDkÑlÓmˆÜ57·V²VÜ27¸ÀqÑ8HÌ#ÈfÐUVÉiË.Ô2YÓZÒ2Y¨QˆV’A�} QÑ'Ð'Ô(Ñ2YÑZÐ\]ó6
ˆŠq�- ¨qÑ 0Ñ1Ð1Ñ2ñ
 .:Ó:ª\¨�= Ô#©\€KÐ:Þ Ø# G 9¨OÐ<ˆ�B‰à€JØ�FÓØ×Ñ˜Aœs¤3 }Ó#5°{ÓCÀjÑPÐSVÑVÕWÜ	�I¤¤e˜}×	-Ñ	-Ø×Ñ˜I a™L¨)°A©,Õ7Ø	Ñ	Ø×Ñ˜Aœs¤3 }Ó#5°{ÓCÀiÑOÐRUÑUÔVØ‡J�J�˜)¨B€JÑ/ô œH \Ó2×3‰ˆˆQØ
�
‰
�S 	¨c¸&Èˆ
ÑLØ’q˜!�t‘ˆØ"Ñ*‘$°º¸A¸±ˆÜ—’œ3˜u›:Ó&ˆÜ
�	‰	×Ñ˜&Ô!ØÑØ˜f‘oˆGØ�f‘ˆØˆð	$ØÑ" w¨q§zØ"'‘äŸ(š( 7´"·*±*Ñ=‘ô �‹Jˆð ˆÜ—’˜ %¬"¯&ª&°«-Ñ"7Ñ8¼B¿FºFÀ5»MÌBÏFÊFÐSXËMÑ<YÐ\`Ñ<`ÑaÓbˆÜ—
’
˜5¤2§9¡9§?¡?°1Ó#5¸Ñ#<Ñ<Ó=ˆØˆØˆÜ�XŠX�a‹[ˆÛˆCØ�S‰z˜XÓ%Ø�Ü—g’g˜e a™iÓ(¨U°Q©Y¸!©O¸aÑ,?Ñ@ˆBˆs‰GØ�Q‰JˆEØ˜S‘zŠHñ ð 	ˆc�Z¤"§&¢&¨¨a©£.Ñ0Ñ1Ñ1ˆä˜5Ð">×?Ò?ÀGÒDWÐ\kÐosÓ\sä×#Ò# G¨QÓ/ˆDÜ×#Ò# G¨RÓ0ˆDØ�t‹|Ü×'Ò'¨°Ó3�Ü×'Ò'¨°Ó4�Ø˜4“<ÜŸ6š6 '›?�DÜŸ6š6 '›?�DØ�d‹{Ø�àÑ#¨¯©°qÑ(9¼SÀ»ZÓ(GØU�Ü$ TÓ*Ð*ô —x’x Ó(ˆHØ�J‰JØ�h‘Ø�b˜‘lÑ"ØØØØØÜ˜u›:¨Ñ+ð ñ 	ð œBŸIšI hÓ/Ñ0×7Ñ7¼¿
¹
ÓCˆEØŸ
™
›ˆIØ*.°©+¸Ñ)<ˆI”b—h’h˜u“oÑ&Ø&*ˆE�)˜dÑ"Ñ#Ø&*ˆE�)˜dÑ"Ñ#Ø�J‰JØ”b—i’i Ó)Ñ*Ø�bœŸš 8Ó,Ñ-Ñ-ØØØØØØØØÜ˜u›:¨Ñ+ð ô ô ˜uÐ&B×CÑCÌÐPUÐW_×H`ÑH`ØŸ™�Ø�J‰JØØ�b‘ØØØØÞ.‘e°IÜ˜u›:¨Ñ+ð ô 	ñm 4ôD �uÐ:×;Ñ;Æ	ÈhÑNbÝ"à×Ñ 5ÐÐ)ˆØ	�‰�Q˜�FÔØ�\‰\˜! ¨1¨a¨&¸ˆ\Ð<ˆØ
×Ñœ6Ð"5Ñ6¼Ð?SÑ8TÐUÔVØ
�‰�_¨2¸ˆÑ:Ø
�‰×Ñ B¨qÐÑ1Ø
�‰�QŒØ
�
‰
×Ñ˜uÔ%ð
 ‡H�H×Ñ Ô)Ø‡H�H×Ñ Ô'Ø‡I�IˆgÑ×"Ñ" 5Ô)Ø‡I�IˆeÑ× Ñ  Ô'Ø‡I�IˆfÑ×!Ñ! %Ô(Ø‡N�N˜€NÑ;Ø‡M�M”%œ˜LÓ)Ó*¬D´¸+Ó1FÓ,GÐRT€MÑUØ‡N�N�3˜r¨°G€NÑ<Ø‡N�N�3 "€NÑ%Ø‡K�K�”C˜Ó%Ô&Ø‡M�M”&˜‘/¨B€MÑ/ÞÜ�Š�
àˆ	ùòo	 "[ùòl 9ùòJ 1Qùò mùâZùò ;øô: ó 	$Ø#‹Oð	$ús<   É!wÎwÕwØ.wÙ=w"Ú,w'àw,à#w,÷,w<÷;w<c                ó:   • [        U 5      U:”  a  U S US-
   S-   $ U $ )NrA   z...)rs   )ÚtextÚlength_limits     rþ   Úshorten_textr  ü  s+   € Ü
ˆ4ƒy�<ÓØÐ&�l QÑ&Ð'¨%Ñ/Ð/àˆó    c                ó   • [        U S5        g )Nr<   r
   )r-   s    rþ   Úis_color_mapr    s   € Ü�EÐ7Õ8r  ri   c                óÂ;  ^ • Ub   [         R                  R                  U5      nO][         R                  R                  R                  R
                  R                  SL nU(       a  Sn[        R                  " U[        SS9  [        [        T 5      5      R                  S5      (       a©  T nUR                  m Uc  UR                  nUc  UR                  n[!        UR"                  R$                  5      S:X  aZ  UR"                  R$                  S   S:”  a=  ['        UR"                  R$                  S   5       Vs/ s H  nT SS2SS2U4   PM     snm Sn[)        T [*        5      (       a  SnUc  S	nUS	:X  d   S
5       eOŒUc  Sn[!        T R$                  5      S:w  d   S5       e[!        T R$                  5      S:X  aN  T R$                  S   S:”  a;  US	:X  a5  ['        T R$                  S   5       Vs/ s H  nT SS2SS2U4   PM     snm SnUc'  US:X  a  SnOU(       a  U 4S jnO[,        R.                  nSn[)        U[0        R2                  5      (       aZ  Uc  UR4                  nUR6                  R9                  [        5      R;                  SS/5      R=                  5       nUR                  nO@[)        U[*        5      (       a  Uc  UnSnO#Ub   [!        UR$                  5      S:X  a  Uc  UnSnU(       a  T S   R$                  S   OT R$                  S   nUb@  SnUS-
  UR$                  S   :X  a  [?        US-   5      eUUR$                  S   :X  d   U5       eUcC  [         R@                  " ['        U5       Vs/ s H  n[B        S   [        U5      -  PM     sn5      nU(       a  [D        RF                  " S5        U(       Gd  [!        T R$                  5      S:X  Gaþ  US:X  aÁ  T RI                  T R$                  S   S5      n[         RJ                  " USSUR$                  S   45      RI                  UR$                  S   S5      n/ nU H<  n U H3  n!U U!:X  a  URM                  U 5        M  URM                  U S-   U!-   5        M5     M>     [O        UUUUSUUUUU	U
UUUSU-   S9$ Uc  SnO[Q        [!        U5      U5      n[         RR                  " [         RT                  " T RW                  S5      5      RW                  S5      * 5      n"ST R$                  S   S-  -  n#[         RX                  " T U#5      n$[         RX                  " T SU#-
  5      n%[[        [U        U$5      [U        U%5      5      n&U&* n$U&n%[D        R\                  " S U-  S-   S!U-  S-   4S"9  [D        R^                  " SUS5        T SS2U"S   U"4   n'U'SS2SS24==   S-  ss'   [O        U'Ub	  USS2U"4   OS[         R@                  " U5      U"   R=                  5       SSSSUS#9  [D        R`                  " U$U%45        [D        Rb                  " S$5        S%n([D        Rd                  " [g        UU"S      U(5      5        ['        S[Q        [!        U"5      U5      5       GH  nU"U   n)[D        R^                  " SUUS-   5        T SS2U)U"4   n'U'S-  n'U'SS2U4==   S-  ss'   [O        U'Ub	  USS2U"4   OSS['        [!        U5      5       Vs/ s H  nS$PM     snSSSUS&9  [D        R`                  " U$U%45        [D        Rb                  " S$5        W[Q        [!        U"5      U5      S-  :X  a  [D        Rb                  " [B        S'   5        [D        Rd                  " [g        UU)   U(5      5        GM     [D        Rh                  " SSS(S)9  [D        Rj                  " SS*S+9  U	(       a  [D        Rl                  " 5         gUc  S,nU
(       a¯  U(       aQ  [         RR                  " [         RV                  " [         Rn                  " [         RT                  " T 5      SS-9SS-95      n*O=[         RR                  " [         RV                  " [         RT                  " T 5      SS-95      n*U*[Q        U[!        U*5      5      * S n*O5[         Rp                  " [         Rr                  " [Q        UU5      5      S5      n*S.n+US/:X  a5  [D        Rt                  " 5       Rw                  S0[!        U*5      U+-  S -   5        O|[        U5      [*        [x        4;   a,  [D        Rt                  " 5       Rw                  US   US   5        O7Ub4  [D        Rt                  " 5       Rw                  S0[!        U*5      U-  S -   5        [D        Rz                  " SS1SS29  US:X  Ga6  [}        U*5       GH$  u  n,n[D        R~                  " U,S3S4S5SS69  T SS2U4   n-Uc  SOUSS2U4   n.[         Rr                  " [!        U-5      5      n/Uc   [         R                  R�                  U/5        OUR�                  U/5        U.b  U.U/   n.U-U/   n-Sn0 Ub  UU   (       a  Sn0O$[         R@                  " U.[         R‚                  S79n. [!        U-5      n1Sn2[         R†                  " U2U-[         RP                  " U-5      -
  -  [         RZ                  " U-5      [         RP                  " U-5      -
  S8-   -  5      n3Uc   [         R                  R‰                  U15      n4OUR‹                  U15      n4[         RR                  " U3U4S9-  -   5      n/Sn5Sn6[         RŒ                  " U15      n7U/ H@  n)U3U)   U6:w  a  Sn5[         RŽ                  " U5S-  5      U5S-  S-  S-
  -  U7U)'   U5S-  n5U3U)   n6MB     U7S:U+[         RZ                  " U7S-   5      -  -  -  n7UGbà  U0(       GaØ  [         RX                  " U.S;5      n8[         RX                  " U.S<5      n9U8U9:X  a`  [         RX                  " U.S5      n8[         RX                  " U.S=5      n9U8U9:X  a,  [         RP                  " U.5      n8[         RZ                  " U.5      n9U8U9:”  a  U9n8UR$                  S   [!        U-5      :X  d   S>5       e[         R�                  " U.5      n:[D        R’                  " U-U:   U,U7U:   -   S?S@USS[!        U-5      SA:„  SB9  U.[         R”                  " U:5         R9                  [         R‚                  5      n;U;R—                  5       n<U8U9-   SC-  U<[         R�                  " U;5      '   U9U;U<U9:„  '   U8U;U<U8:  '   [D        R’                  " U-[         R”                  " U:5         U,U7[         R”                  " U:5         -   UU8U9S@U;USS[!        U-5      SA:„  SD9  GMñ  [D        R’                  " U-U,U7-   S@USSU0(       a  UOS?[!        U-5      SA:„  SE9  GM'     GO…USF:X  Gaö  ['        [!        U*5      5       H  n,[D        R~                  " U,S3S4S5SS69  M     UGb@  [         RX                  " T SS2S[!        U5      24   R™                  5       S5      n=[         RX                  " T SS2S[!        U5      24   R™                  5       S=5      n>[}        U*5       GHÀ  u  n,nT SS2U4   n-[         RP                  " U-5      [         RZ                  " U-5      n@n?U@U?-
  nA[         Rš                  " [         RP                  " U-5      UASG-  -
  [         RZ                  " U-5      UASG-  -   S5      nB[         Rœ                  " U-5      U>U=-
  S-  :  ad  Uc)  [         R                  R‰                  [!        U-5      5      nCOUR‹                  [!        U-5      5      nC[Ÿ        U-WCU>U=-
  -  S-  -   5      " WB5      nDO[Ÿ        U-5      " WB5      nDWD[         RZ                  " UD5      S-  -  nDUSS2U4   n.[         RŒ                  " [!        WB5      S-
  5      nE[         RR                  " U-5      n"SnFSnGSnHSnI['        [!        UB5      S-
  5       H¥  nJWG[!        U-5      :  aX  WBWJ   U-U"WG      :¼  aI  WHU.U"WG      -  nHUGS-  nGUGWF-
  S,:”  a  WHU.U"WF      -  nHUFS-  nFWG[!        U-5      :  a  WBWJ   U-U"WG      :¼  a  MI  WGWF-
  S:”  a-  WHWGWF-
  -  WEWJ'   ['        WI5       H  nKWEWJ   UEUJUK-
  S-
  '   M     M   WIS-  nIM§     [         RX                  " U.S;5      n8[         RX                  " U.S<5      n9U8U9:X  a`  [         RX                  " U.S5      n8[         RX                  " U.S=5      n9U8U9:X  a,  [         RP                  " U.5      n8[         RZ                  " U.5      n9[         R�                  " U.5      n:[D        R’                  " U-U:   [         R                   " T U:   R$                  S   5      U,-  S?SHUSSSI9  U.[         R”                  " U:5         R9                  [         R‚                  5      n;U;R—                  5       n<U8U9-   SC-  U<[         R�                  " U;5      '   U9U;U<U9:„  '   U8U;U<U8:  '   [D        R’                  " U-[         R”                  " U:5         [         R                   " T [         R”                  " U:5         R$                  S   5      U,-  UU8U9SHU;USSSJ9
  WEU8-  nEU9U8-
  S:”  a  WEU9U8-
  -  nE['        [!        WB5      S-
  5       Hv  nWDU   SK:”  d  WDUS-      SK:”  d  M  [D        R¢                  " WBU   UBUS-      /U,WDU   -   U,UDUS-      -   /U,UDU   -
  U,UDUS-      -
  /[,        R¤                  " WEU   5      SSL9  Mx     GMÃ     GO[D        R¦                  " T SS2U*4   ['        [!        U*5      5      4SMSN0[¨        DSOSSSSP.D6nLULSQ    H6  nMUMR«                  U5        UMR­                  SR5        UMR¯                  U5        M8     GOˆUS:X  Ga4  SNnN[         Rš                  " SUR$                  S   US-   5      R‡                  S5      R9                  SS5      nO[         RP                  " T 5      [         RZ                  " T 5      n@n?[         Rš                  " U?U@UN5      nP[}        U*5       GH  u  n,n)USS2U)4   nQ[         R°                  " UQSST9u  nRnSURR$                  S   U::  aH  [         RR                  " WR5      nT[         R²                  " WSUT   5      nU[         R´                  " UUSS5      nUOWOnUWUR$                  S   S-
  n2[         RR                  " WQ5      nT[         RŒ                  " U2WN45      n7['        U25       GH  nT WTWUU   UUUS-       U)4   n-U-R$                  S   S:X  a;  [        R                  " SUU SVUU)    SW35        US:”  a  U7US-
  SS24   U7USS24'   Me  Uc-  [         R                  R·                  SSXU-R$                  S   SY9nVOUR·                  SSXU-R$                  S   SY9nV[Ÿ        U-WV-   5      " WP5      U7USS24'   WUUS-      UUU   -
  nWUR$                  S   U2-  nXUWUX-  nYU7USS24==   UY-  ss'   GM     [         R²                  " U7SS-9n7S!nZU7R[                  5       S-  UZ-  n[['        U2S-
  SS5       He  nU7USS24   W[-  n\U[D        R¸                  ;   a"  [D        Rº                  " U5      " UU2S-
  -  5      OUn][D        R¢                  " WPU,W\-
  U,U\-   U]SZS[9  Mg     GM‚     [D        R`                  " U?W@5        GOMU(       d¹  US	:X  a³  U*SU n^[         Rr                  " [!        U^5      5      n_[         RT                  " T 5      Ro                  S5      n`[D        R¼                  " U_U`U^   SOS\US]9  [D        R¾                  " U_S^S_9  [D        RÀ                  " 5       RÃ                  U^ Vs/ s H  nUU   PM
     sn5        GO�U(       Ga…  US	:X  Ga~  Uc0  ['        [!        T 5      5       Vs/ s H  nS`[        U5      -   PM     nnU*SU n^[         Rr                  " [!        U^5      5      n_[         RŒ                  " [!        U^5      5      naUc`  [         RR                  " ['        [!        T 5      5       Vs/ s H+  n[         RT                  " T U   5      Ro                  5       * PM-     sn5      nOUSa:X  a  ['        [!        T 5      5      nU(       av  [         RP                  " [         RT                  " T 5      Ro                  Sb5      5      nbUbS:”  a  SncO4[Å        [         RÆ                  " [         RÈ                  " Wb5      5      * 5      nc[}        U5       H�  u  nn)[         RT                  " T U)   5      Ro                  S5      n`U(       a8  UU)    Sc[         R†                  " [         Rn                  " W`5      WcS-   5       Sd3ndOUU)   nd[D        R¼                  " W_W`W^   SOWaS\U" U5      WdSe9  UaU`U^   -  naMŸ     [D        R¾                  " W_S^S_9  [D        RÀ                  " 5       RÃ                  W^ Vs/ s H  nUU   PM
     sn5        [D        RÊ                  " SSfSg9  U(       Ga  UGb	  US	:w  Ga  US:w  d  U[D        R¸                  ;   aè  SSKfJgne  UeRÑ                  US:w  a  UO[D        Rº                  " U5      Sh9nfUfRÓ                  SS/5        [D        RÔ                  " Uf[D        RÀ                  " 5       SS/SiSj9ngUgR×                  [B        Sk   [B        Sl   /5        UgRÙ                  USfSSm9  UgRÚ                  RÝ                  S%SSn9  UgR¯                  S5        UgRÞ                  Rá                  S5        [D        RÀ                  " 5       Râ                  Rå                  So5        [D        RÀ                  " 5       Ræ                  Rå                  SR5        [D        RÀ                  " 5       Rè                  Sp   Rá                  S5        [D        RÀ                  " 5       Rè                  Sq   Rá                  S5        [D        RÀ                  " 5       Rè                  Sr   Rá                  S5        [D        RÀ                  " 5       RÝ                  XfSs9  [D        R¾                  " ['        [!        U*5      5      U* Vs/ s H  nUU   PM
     snS^S_9  US	:w  a%  [D        RÀ                  " 5       RÝ                  StS,S4SuSv9  [D        RÀ                  " 5       RÝ                  SwS%Sx9  [D        Rê                  " S[!        U*5      5        US	:X  a  [D        Rb                  " [B        Sy   S^S_9  O[D        Rb                  " [B        Sz   S^S_9  [D        Rh                  " 5         U	(       a  [D        Rl                  " 5         ggs  snf s  snf s  snf s  snf ! [„         a    Sn0 GNHf = fs  snf s  snf s  snf s  snf s  snf ){a­  Create a SHAP beeswarm plot, colored by feature values when they are provided.

Parameters
----------
shap_values : numpy.array
    For single output explanations this is a matrix of SHAP values (# samples x # features).
    For multi-output explanations this is a list of such matrices of SHAP values.

features : numpy.array or pandas.DataFrame or list
    Matrix of feature values (# samples x # features) or a feature_names list as shorthand

feature_names : list
    Names of the features (length # features)

max_display : int
    How many top features to include in the plot (default is 20, or 7 for interaction plots)

plot_type : "dot" (default for single output), "bar" (default for multi-output), "violin",
    or "compact_dot".
    What type of summary plot to produce. Note that "compact_dot" is only used for
    SHAP interaction values.

plot_size : "auto" (default), float, (float, float), or None
    What size to make the plot. By default the size is auto-scaled based on the number of
    features that are being displayed. Passing a single float will cause each row to be that
    many inches high. Passing a pair of floats will scale the plot by that
    number of inches. If None is passed then the size of the current figure will be left
    unchanged.

show_values_in_legend: bool
    Flag to print the mean of the SHAP values in the multi-output bar plot. Set to False
    by default.
rng : `numpy.random.Generator`, optional
    Pseudorandom number generator state. When `rng` is None,
    the legacy behavior of using global NumPy random state will be
    used. Types other than `numpy.random.Generator` are
    passed to `numpy.random.default_rng` to instantiate a ``Generator``.

NzÐThe NumPy global RNG was seeded by calling `np.random.seed`. In a future version this function will no longer use the global RNG. Pass `rng` explicitly to opt-in to the new behaviour and silence this warning.r   )Ú
stacklevelzExplanation'>r   FTÚbarzBOnly plot_type = 'bar' is supported for multi-output explanations!Údotz9Summary plots need a matrix of shap_values, not a vector.rA   Úlayered_violinÚcoolwarmc                óH   >• [         R                  " U [        T5      -  5      $ )N)r   Úred_blue_circlers   )rÙ   rÈ   s    €rþ   r-   Úsummary_legacy.<locals>.colory  s   ø€ Ü×-Ò-¨a´#°kÓ2BÑ.BÓCÐCr  r   r    r   r!   zo Perhaps the extra column in the shap_values matrix is the constant offset? Of so just pass shap_values[:,:-1].r"   r#   Úcompact_dotr&   z* - Ú*)rÉ   Ú	plot_typer-   rÌ   ÚtitlerE   rÇ   ÚsortrÎ   rÏ   Úclass_namesrÐ   é   r   r8   r)   gš™™™™™é?)Úfigsize)r}   r  rÇ   rÎ   rÏ   rÉ   Ú r[   )r  r}   rÇ   rÎ   rÏ   rÉ   ÚINTERACTION_VALUEg        )ÚpadÚw_padÚh_padgš™™™™™¹?)ÚhspaceÚwspaceri   )Úaxisr'   r   r(   r*   r+   r/   r   r0   r2   r6   r9   r:   r;   r1   r=   r>   r?   r@   r   rB   rC   rH   rI   rN   Úviolingš™™™™™É?é	   )r-   rD   rE   rF   r.   )rJ   rK   rL   rD   rM   rE   rF   r.   gš™™™™™©?)r-   r.   ÚpointséÈ   gffffffæ?)ÚwidthsÚ	showmeansÚshowextremaÚshowmediansÚbodiesr`   Úint)Úreturn_countszNot enough data in bin #z for feature zD, so it'll be ignored. Try increasing the number of records to plot.gü©ñÒMbP?)ÚlocÚscalerY   Úface)Ú	facecolorÚ	edgecolorÚcenter)Úalignr-   rf   rg   zClass Úoriginal)r   r   z (Ú))rc   r1  r-   ÚlabelrW   )Úframeonrh   rO   rP   rQ   rU   rV   rX   r\   r_   ra   rb   rc   rd   r3   rj   rk   r,   rn   ÚGLOBAL_VALUEro   )vru   r¦   Údefault_rngÚmtrandÚ_randÚ_bit_generatorÚ	_seed_seqÚwarningsÚwarnÚFutureWarningr…   ÚtypeÚendswithrw   rx   r}   rs   Úbase_valuesrr   rŠ   rp   rˆ   r   r   r€   r�   r‚   rƒ   r„   r†   r‡   rt   r‰   r   r‹   ÚxscaleÚreshapeÚtiler›   Úsummary_legacyr’   r¬   r“   r‘   r°   r«   ÚfigureÚsubplotÚxlimÚxlabelr  r  Útight_layoutÚsubplots_adjustrÇ   rž   Úflipr¥   ÚgcfrŸ   r    r¡   r¢   r¤   r§   r¨   r©   rª   r­   Ústandard_normalr®   r¯   r±   r²   r³   rv   ÚflattenÚlinspaceÚstdr   ÚonesÚfill_betweenÚred_blue_no_boundsÚ
violinplotÚORIENTATION_KWARGÚset_facecolorÚset_edgecolorr½   ÚuniqueÚcumsumÚinsertÚnormalÚ	colormapsÚget_cmapÚbarhÚyticksrŒ   Úset_yticklabelsr)  ÚfloorÚlog10Úlegendrµ   r¶   r·   r¸   r¹   rº   r»   rR   r¼   r¾   r¿   rÀ   rÁ   rÂ   rÃ   Úylim)hrÈ   rÕ   r}   rÉ   r  r-   rÌ   r  rE   rÇ   r  rÎ   rÏ   Úlayered_violin_max_num_binsr  Ú
class_indsrÐ   rJ   Úshow_values_in_legendÚuse_log_scaleÚrngÚglobal_seed_setÚmsgrÔ   rÙ   Úmulti_classrÖ   r×   rØ   Únew_shap_valuesÚnew_featuresÚnew_feature_namesÚc1Úc2r   ÚdeltaÚslowÚshighÚvÚproj_shap_valuesÚtitle_length_limitrø   rÞ   rë   rì   rí   rw   ræ   rð   rñ   rò   ró   Útmp_xrõ   rö   r÷   rK   rL   rù   rú   rû   Ú
global_lowÚglobal_highÚshap_minÚshap_maxÚshap_max_minÚxsÚtmp_yÚdsÚsmooth_valuesÚtrailing_posÚleading_posÚrunning_sumÚ	back_fillÚjÚkÚpartsÚpcÚnum_x_pointsÚbinsÚx_pointsÚfeaturerY  ÚcountsrÊ   Ú	thesebinsÚtmp_zrY   Úbin_size_if_evenÚrelative_bin_sizerl   r,  r3   rM   rä   Úy_posÚglobal_shap_valuesÚleft_posÚsmallest_shapÚ
n_decimalsr4  r¶   rü   rý   sh   `                                                                                                       rþ   rE  rE  	  s˜  ø€ ð~ �Ü�i‰i×#Ñ# CÓ(‰äŸ)™)×*Ñ*×0Ñ0×?Ñ?×IÑIÈTÐQˆÞðað ô
 �MŠM˜#œ}¸Ò;ô Œ4�ÓÓ×&Ñ& ×7Ñ7ØˆØ—o‘oˆØÑØ—}‘}ˆHØÑ Ø$×2Ñ2ˆMô ˆx×#Ñ#×)Ñ)Ó*¨aÓ/°H×4HÑ4H×4NÑ4NÈqÑ4QÐTUÓ4UÜ9>¸x×?SÑ?S×?YÑ?YÐZ[Ñ?\Ô9]Ó^Ò9]°A˜;¢qª!¨Q wÔ/Ñ9]Ñ^ˆKð
 €KÜ�+œt×$Ñ$ØˆØÑØˆIØ˜EÓ!ÐgÐ#gÓgÑ!àÑØˆIÜ�;×$Ñ$Ó%¨Ó*ÐgÐ,gÓgÐ*äˆ{× Ñ Ó! QÓ&¨;×+<Ñ+<¸QÑ+?À!Ó+CÈ	ÐUZÓHZÜ9>¸{×?PÑ?PÐQRÑ?SÔ9TÓUÒ9T°A˜;¢qª!¨Q wÔ/Ñ9TÑUˆKØˆKð �}ØÐ(Ó(Ø‰EÞöDô —O‘OˆEà€Gä�(œBŸL™L×)Ñ)ØÑ Ø$×,Ñ,ˆMà—/‘/×(Ñ(¬Ó-×2Ñ2°H¸jÐ3IÓJ×QÑQÓSˆØ—?‘?‰Ü	�Hœd×	#Ñ	#ØÑ Ø$ˆMØ‰Ø
Ñ
¤C¨¯©Ó$7¸1Ó$<ÀÑAVØ ˆØˆæ.9�;˜q‘>×'Ñ'¨Ò*¸{×?PÑ?PÐQRÑ?S€LàÑØoˆ	Ø˜!Ñ˜xŸ~™~¨aÑ0Ó0ÜØð Gñ Góð ð
   8§>¡>°!Ñ#4Ó4Ð?°iÓ?Ð4àÑÜŸšÄeÈLÔFYÓ!ZÒFYÀ¤&¨Ñ"3´c¸!³fÔ"<ÑFYÑ!ZÓ[ˆæÜ�
Š
�8Ô÷ œ3˜{×0Ñ0Ó1°QÔ6Ø˜Ó%Ø)×1Ñ1°+×2CÑ2CÀAÑ2FÈÓKˆOÜŸ7š7 8¨a°°H·N±NÀ1Ñ4EÐ-FÓG×OÑOÐPX×P^ÑP^Ð_`ÑPaÐceÓfˆLà "ÐÛ#�Û'�BØ˜R“xØ)×0Ñ0°Ö4à)×0Ñ0°°f±¸rÑ1AÖBó	 (ñ $ô "ØØØ!Ø'ØØØ%ØØØØØ#Ø#Ø'Ø # oÑ 5ñð ð$ ÑØ‰Käœc -Ó0°+Ó>ˆKä—J’J¤§¢ {§¡°qÓ'9Ó :× >Ñ >¸qÓ AÐAÓBˆ	ð �{×(Ñ(¨Ñ+¨qÑ0Ñ1ˆÜ×Ò ¨UÓ3ˆÜ× Ò  ¨c°E©kÓ:ˆÜ”�D“	œ3˜u›:Ó&ˆØˆrˆØˆä�
Š
˜C +Ñ-°Ñ1°3¸Ñ3DÀqÑ3HÐIÒJÜ�Š�A�{ AÔ&Ø&¢q¨)°A©,¸	Ð'AÑBÐØš˜A™B˜Ó 1Ñ$ÓÜØØ&.Ñ&:ˆH’Q˜	�\Ò"ÀÜŸ(š( =Ó1°)Ñ<×CÑCÓEØØØØØ#ò		
ô 	�Š�$˜�ÔÜ�
Š
�2ŒØÐÜ�	Š	”,˜}¨Y°q©\Ñ:Ð<NÓOÔPÜ�qœ#œc )›n¨kÓ:×;ˆAØ˜A‘,ˆCÜ�KŠK˜˜;¨¨A©Ô.Ø*ª1¨c°9Ð+<Ñ=ÐØ Ñ!ÐØšQ ˜TÓ" aÑ'Ó"ÜØ Ø*2Ñ*>�š˜I˜Ò&ÀDØÜ+0´°]Ó1CÔ+DÓEÒ+D a›rÑ+DÑEØØØØ'ò	ô �HŠH�d˜E�]Ô#Ü�JŠJ�rŒNØ”Cœ˜I›¨Ó4¸Ñ9Ó9Ü—
’
œ6Ð"5Ñ6Ô7Ü�IŠI”l =°Ñ#5Ð7IÓJ×Kñ) <ô* 	×Ò˜Q a¨sÒ3Ü×Ò 1¨SÒ1ÞÜ�HŠHŒJØàÑØˆææÜŸJšJ¤r§v¢v¬b¯gªg´b·f²f¸[Ó6IÐPQÑ.RÐYZÑ'[Ó\‰MäŸJšJ¤r§v¢v¬b¯fªf°[Ó.AÈÑ'JÓKˆMØ%¤s¨;¼¸MÓ8JÓ'KÐ&KÐ&MÐN‰äŸš¤§	¢	¬#¨k¸<Ó*HÓ IÈ1ÓMˆà€JØ�FÓÜ�Š‹	×!Ñ! !¤S¨Ó%7¸*Ñ%DÀsÑ%JÕKÜ	ˆi‹œT¤5˜MÓ	)Ü�Š‹	×!Ñ! )¨A¡,°	¸!±Õ=Ø	Ñ	Ü�Š‹	×!Ñ! !¤S¨Ó%7¸)Ñ%CÀcÑ%IÔJÜ‡K‚K�!˜9¨RÒ0à�EÔÜ ×.‰FˆC�Ü�KŠK˜# Y°3¸vÈbÒQØ¢ 1 Ñ%ˆEØ%Ñ-‘T°8ºA¸q¸D±>ˆFÜ—9’9œS ›ZÓ(ˆDØ‰{Ü—	‘	×!Ñ! $Õ'à—‘˜DÔ!ØÑ!Ø ™�Ø˜$‘KˆEØ"ˆOð(ØÑ&¨7°1¯:Ø&+‘OäŸXšX f´B·J±JÑ?‘Fô �E“
ˆAð ˆEÜ—H’H˜U e¬b¯fªf°U«mÑ&;Ñ<ÄÇÂÀuÃÔPR×PVÒPVÐW\ÓP]Ñ@]Ð`dÑ@dÑeÓfˆEØ‰{ÜŸ	™	Ÿ™¨Ó*‘à×+Ñ+¨AÓ.�Ü—:’:˜e e¨d¡lÑ2Ó3ˆDØˆEØˆHÜ—’˜!“ˆBÛ�Ø˜‘: Ó)Ø�EÜŸ'š' %¨!¡)Ó,°¸±¸a±À!Ñ0CÑD��3‘Ø˜‘
�Ø  ™:’ñ ð �#˜¤b§f¢f¨R°!©V£nÑ4Ñ5Ñ5ˆBàÒ#¯ä×'Ò'¨°Ó2�Ü×'Ò'¨°Ó3�Ø˜4“<Ü×+Ò+¨F°AÓ6�DÜ×+Ò+¨F°BÓ7�DØ˜t“|Ü!Ÿvšv f›~˜Ü!Ÿvšv f›~˜Ø˜$“;Ø�Dà—~‘~ aÑ(¬C°«JÓ6ÐvÐ8vÓvÐ6ô Ÿ8š8 FÓ+�Ü—’Ø˜(‘OØ˜"˜X™,Ñ&Ø#ØØØØÜ" 5›z¨CÑ/ò	ð œrŸyšy¨Ó2Ñ3×:Ñ:¼2¿:¹:ÓF�Ø!ŸJ™J›L�	Ø.2°T©k¸SÑ-@�	œ"Ÿ(š( 5›/Ñ*Ø*.��i $Ñ&Ñ'Ø*.��i $Ñ&Ñ'Ü—’Øœ"Ÿ)š) HÓ-Ñ.Ø˜"œRŸYšY xÓ0Ñ1Ñ1ØØØØØØØØÜ" 5›z¨CÑ/õô —’ØØ˜"‘HØØØØÞ#2™%¸	Ü" 5›z¨CÑ/õ	ós /ðH 
�hÔ	Üœ˜]Ó+Ö,ˆCÜ�KŠK˜# Y°3¸vÈbÔQñ -ð ÒÜ×)Ò)¨+²aÐ9M¼3¸}Ó;MÐ9MÐ6MÑ*N×*VÑ*VÓ*XÐZ[Ó\ˆJÜ×*Ò*¨;²qÐ:N¼CÀÓ<NÐ:NÐ7NÑ+O×+WÑ+WÓ+YÐ[]Ó^ˆKÜ# M×2‘��QØ#¢A q DÑ)�Ü%'§V¢V¨E£]´B·F²F¸5³M˜(�Ø'¨(Ñ2�Ü—[’[¤§¢¨£°ÀÑ1CÑ!CÄRÇVÂVÈEÃ]ÐUaÐdgÑUgÑEgÐilÓm�Ü—6’6˜%“= K°*Ñ$<ÀÑ#CÓCØ‘{Ü "§	¡	§¡´°E³
Ó ;™à #× 3Ñ 3´C¸³JÓ ?˜Ü% e¨e°{ÀZÑ7OÑ.PÐSVÑ.VÑ&VÔWÐXZÓ[‘Bä% eÔ,¨RÓ0�BØ”b—f’f˜R“j 1‘nÑ$�à!¢! Q $™�ä "§¢¬¨R«°1©Ó 5�ÜŸJšJ uÓ-�	Ø �Ø�Ø�Ø�	Üœs 2›w¨™{Ö+�AØ%¬¨E«
Ó2°r¸!±uÀÀiÐP[ÑF\Ñ@]Ó7]Ø# v¨i¸Ñ.DÑ'EÑE˜Ø# qÑ(˜Ø&¨Ñ5¸Ó:Ø'¨6°)¸LÑ2IÑ+JÑJ˜KØ(¨AÑ-˜Lð &¬¨E«
Ó2°r¸!±uÀÀiÐP[ÑF\Ñ@]Õ7]ð # \Ñ1°AÓ5Ø+6¸+ÈÑ:TÑ+U˜ aÑ(Ü!& yÖ!1˜AØ7DÀQÑ7G˜M¨!¨a©%°!©)Ó4ó "2ð " Q™š	ñ ,ô ×'Ò'¨°Ó2�Ü×'Ò'¨°Ó3�Ø˜4“<Ü×+Ò+¨F°AÓ6�DÜ×+Ò+¨F°BÓ7�DØ˜t“|Ü!Ÿvšv f›~˜Ü!Ÿvšv f›~˜ô Ÿ8š8 FÓ+�Ü—’Ø˜(‘OÜ—G’G˜K¨Ñ1×7Ñ7¸Ñ:Ó;¸cÑAØ#ØØØØòð œrŸyšy¨Ó2Ñ3×:Ñ:¼2¿:¹:ÓF�Ø!ŸJ™J›L�	Ø.2°T©k¸SÑ-@�	œ"Ÿ(š( 5›/Ñ*Ø*.��i $Ñ&Ñ'Ø*.��i $Ñ&Ñ'Ü—’Øœ"Ÿ)š) HÓ-Ñ.Ü—G’G˜K¬¯	ª	°(Ó(;Ñ<×BÑBÀ1ÑEÓFÈÑLØØØØØØØØòð  Ñ%�Ø˜$‘; “?Ø! T¨D¡[Ñ0�MÜœs 2›w¨™{Ö+�AØ˜!‘u˜t“| r¨!¨a©%¡y°4Õ'7Ü×(Ò(Ø ™U B q¨1¡u¡IÐ.Ø  2 a¡5™[¨#°°1°q±5±	©/Ð:Ø  2 a¡5™[¨#°°1°q±5±	©/Ð:Ü"(×";Ò";¸MÈ!Ñ<LÓ"MØ#$ôô ,óa 3ôv —N’NØšA˜}Ð,Ñ-Ü”c˜-Ó(Ó)ñ	ð ð	ô $ð		ð
 ØØ!Ø!ó	ˆEð ˜H”o�Ø× Ñ  Ô'Ø× Ñ  Ô(Ø—‘˜UÖ#ó &ð
 
Ð&Ô	&Øˆä�KŠK˜˜8Ÿ>™>¨!Ñ,Ð.IÈAÑ.MÓN×TÑTÐUVÓW×^Ñ^Ð_dÓeð 	ô  ŸVšV KÓ0´"·&²&¸Ó2E�(ˆÜ—;’;˜x¨°<Ó@ˆô " -×0‰HˆC�ð šq #˜vÑ&ˆGÜŸYšY w¸dÑC‰NˆF�FØ�|‰|˜A‰Ð"=Ó=ÜŸ
š
 6Ó*�ÜŸIšI f¨U¡mÓ4�	ÜŸIšI i°°AÓ6‘	à �	Ø—O‘O AÑ&¨Ñ*ˆEä—J’J˜wÓ'ˆEô —’˜5 ,Ð/Ó0ˆBÜ˜5—\�à# E¨)°A©,¸À1ÀqÁ5Ñ9IÐ$JÈCÐ$OÑP�à—;‘;˜q‘> QÓ&Ü—M’MØ2°1°#°]À=ÐQTÑCUÐBVð WIð Iôð ˜1“uØ#% a¨!¡eªQ h¡<˜˜1ša˜4™Ùà‘;ÜŸI™I×,Ñ,°¸%ÀeÇkÁkÐRSÁnÐ,ÐU‘EàŸJ™J¨1°EÀÇÁÈAÁ˜JÐO�EÜ'¨°©Ô6°xÓ@��1’a�4‘ð !  Q¡Ñ'¨)°A©,Ñ6�Ø#+§>¡>°!Ñ#4°uÑ#<Ð Ø$(Ð+;Ñ$;Ð!Ø�1’a�4“Ð-Ñ-–ñ5 "ô< —’˜2 AÑ&ˆBØˆEØ—F‘F“H˜q‘L 5Ñ(ˆEÜ˜5 1™9 b¨"Ö-�Ø�qš!�t‘H˜uÑ$�à<AÄSÇ]Á]Ó<R”C—L’L Ô'¨¨U°Q©Y©Ô8ÐX]ð ô × Ò  ¨3°©7°C¸!±GÀqÐTZÔ[ô .ñg 1ôr 	�Š�˜8Ö$æ˜Y¨%Ó/Ø$ \ kÐ2ˆÜ—	’	œ#˜lÓ+Ó,ˆÜŸVšV KÓ0×5Ñ5°aÓ8ÐÜ�Š�Ð*¨<Ñ8¸#ÀXÐUZÒ[Ü�
Š
�5 2Ò&Ü�Š‹	×!Ñ!¹\Ó"Jº\¸ =°Ô#3¹\Ñ"JÖKç	˜ eÔ+ØÑÜ6;¼CÀÓ<LÔ6MÓNÒ6M°˜8¤c¨!£fÔ,Ñ6MˆKÐNØ$ \ kÐ2ˆÜ—	’	œ#˜lÓ+Ó,ˆÜ—8’8œC Ó-Ó.ˆàÑÜŸšÌUÔSVÐWbÓScÔMdÓ$eÒMdÈ¤b§f¢f¨[¸©^Ó&<×&AÑ&AÓ&CÓ%CÑMdÑ$eÓf‰JØ˜:Ó%Üœs ;Ó/Ó0ˆJæ ô
 ŸFšF¤2§6¢6¨+Ó#6×#;Ñ#;¸FÓ#CÓDˆMØ˜qÓ Ø‘
ä ¤"§(¢(¬2¯8ª8°MÓ+BÓ"CÐ!CÓD�
ä 
Ö+‰FˆAˆsÜ!#§¢¨°CÑ(8Ó!9×!>Ñ!>¸qÓ!AÐÞ$Ø& sÑ+Ð,¨B¬r¯xªx¼¿ºÐ@RÓ8SÐV`ÐcdÑVdÓ/fÐ.gÐghÐi‘à# CÑ(�Ü�HŠHØÐ)¨,Ñ7¸À8ÐS[ÑchÐijÓckÐsxòð Ð*¨<Ñ8Ñ8ŠHñ ,ô 	�
Š
�5 2Ò&Ü�Š‹	×!Ñ!¹\Ó"Jº\¸ =°Ô#3¹\Ñ"JÔKÜ�
Š
˜5¨2Ò.÷ 	ØÒ Ø˜ÔØÐ*Ó*¨e´s·}±}Ó.Då"à×Ñ¨9Ð8HÓ+H¡4ÌcÏlÊlÐ[`ÓNaÐÐbˆØ	�‰�Q˜�FÔÜ�\Š\˜!¤§¢£	°!°Q°ÀÑCˆØ
×Ñœ6Ð"5Ñ6¼Ð?SÑ8TÐUÔVØ
�‰�_¨2¸ˆÑ:Ø
�‰×Ñ B¨qÐÑ1Ø
�‰�QŒØ
�
‰
×Ñ˜uÔ%ô
 ‡G‚GƒI‡O�O×&Ñ& xÔ0Ü‡G‚GƒI‡O�O×&Ñ& vÔ.Ü‡G‚GƒI×Ñ�WÑ×)Ñ)¨%Ô0Ü‡G‚GƒI×Ñ�UÑ×'Ñ'¨Ô.Ü‡G‚GƒI×Ñ�VÑ×(Ñ(¨Ô/Ü‡G‚GƒI×Ñ 
ÐÑBÜ‡J‚JŒu”S˜Ó'Ó(Á]Ó*SÂ]À¨=¸Ô+;Á]Ñ*SÐ^`ÒaØ�EÓÜ�Š‹	×Ñ˜c¨"°C¸wÐÑGÜ‡G‚GƒI×Ñ˜#¨ÐÑ,Ü‡H‚HˆR”�]Ó#Ô$Ø�EÓÜ�
Š
”6˜.Ñ)°BÓ7ä�
Š
”6˜'‘?¨RÒ0Ü×ÒÔÞÜ�Š�
ð ùòA _ùò" VùòV "[ùò` Føôt ó (Ø"'“ð(üò\ #Kùò Oùò %fùò4 #Kùò< +Tsb   Ä:Av!Ç0Av&Í;Av+Û2Av0éAv5é#Av5Á^:AwÁ_:AwÁb 2AwÁh4AwÁr,Aw
Áv5AwÁwAw)rÈ   r	   rÉ   z
int | NonerE   ÚfloatrR   zplt.Axes | NonerÇ   ÚboolrÍ   rš  rÎ   rš  rD   r™  rÏ   z4Literal['auto'] | float | tuple[float, float] | NonerÐ   r…   rÑ   rš  )rh  rš  ri  rš  rj  znp.random.Generator | None)2Ú__doc__Ú
__future__r   r<  Útypingr   Ú
matplotlibÚmatplotlib.pyplotÚpyplotr‹   Únumpyru   Úpandasr€   Úscipy.clusterry   Úscipy.sparseÚscipy.spatialÚmatplotlib.figurer   Ú	packagingr   Úscipy.statsr   r  r	   Úutilsr   Úutils._exceptionsr   r   Ú_labelsr   Ú_utilsr   r   r   r   r   ÚparseÚ__version__ÚdictrV  r“   rž   rÿ   r  r  r~   rE  © r  rþ   Ú<module>r±     s¸  ðÙ :å "ã Ý ã Ý Û Û Û Û Û Ý $Ý Ý $å Ý #Ý .Ý Ý ÷õ ð ‡=‚=�×'Ñ'Ó(¨G¯MªM¸&Ó,AÓAÙ¨Ñ6Ñá %Ñ(Ðð !Ø
�/‰/×
Ñ
˜qÓ
!ØØØ
ØØØØØØØØFLØ! /Ñ2Ø%)ð!QØðQàðQð ðQð 	ðQð ðQð ðQð ðQð ðQð DðQð ðQð  #õ!Qòhò9ð ØØØØ
ØØ
Ø
Ø	Ø	ØØØ "ØØØ˜?Ñ+Ø	�‰Ø"'ØØ&*ð+w	ð&  ð'w	ð( ð)w	ð* 
$ö+w	r  