§
    §éUg¸s  ã                   óŽ  — d Z ddlm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 ddlmZmZmZmZmZmZ ddlmZmZ dd	lmZmZmZmZ dd
lmZm Z  ddl!m"Z"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z=  e¦   «         Z>e>j?        e>j@        cZAZB e¦   «         ZCeCj?        eCj@        cZDZE edd¬¦  «        \  ZFZG edd¬¦  «        \  ZHZIejJ         K                    dd e(ddd¬¦  «        g¦  «        ejJ         K                    dd ed¬¦  «        g¦  «        ejJ         K                    dddg¦  «        d„ ¦   «         ¦   «         ¦   «         ZLd „ ZMd!„ ZNd"„ ZOejJ         K                    dd e'ddd¬¦  «        g¦  «        ejJ         K                    d#di f ed¬¦  «        i f e¦   «         d$difg¦  «        ejJ         K                    dddg¦  «        d%„ ¦   «         ¦   «         ¦   «         ZPejJ         K                    d&e;e<z   e=z   ¦  «        d'„ ¦   «         ZQejJ         K                    d&e;e<z   e=z   ¦  «        d(„ ¦   «         ZRd)„ ZS G d*„ d+ee¦  «        ZT G d,„ d-ee¦  «        ZUejJ         K                    d.eEd/g ieVd0feEd1 e#¦   «         fd2 e1d3¬4¦  «        fgd5d6œeVd7feEd/d1 e#¦   «         fd8 eU¦   «         fgieWd9feEd1 e#¦   «         fd8 e2d3¬4¦  «        fg eU¦   «         d:œeWd9fg¦  «        d;„ ¦   «         ZXejJ         K                    d.eBd/g ieVd0feBd/d1 e"¦   «         fd8 eT¦   «         fgieWd9feBd1 e"¦   «         fd8 e3¦   «         fg eT¦   «         d:œeWd9fg¦  «        d<„ ¦   «         ZYejJ         K                    d= ed1 e#d¬¦  «        fd2 e2d¬¦  «        fg¬>¦  «        eDdd?…         eEdd?…         f ed1 e"¦   «         fd2 e3d¬¦  «        fg¬>¦  «        eAeBfgd@dAg¬B¦  «        dC„ ¦   «         ZZdD„ Z[ejJ         K                    dE ed1 e#¦   «         fd2 e2d¬¦  «        fg e#¦   «          e'dd¬F¦  «        ¬G¦  «        g ed¬H¦  «        ¢R  ed1 e"¦   «         fd2 e3d¬¦  «        fg e"¦   «          e'dd¬F¦  «        ¬G¦  «        eAeBfgd@dAg¬B¦  «        dI„ ¦   «         Z\dJ„ Z]ejJ         ^                    dK¦  «        ejJ         K                    dE ed1 e#¦   «         fd2 e2d¬¦  «        fg e#¦   «         ¬:¦  «        g ed¬H¦  «        ¢R  ed1 e"¦   «         fd2 e3d¬¦  «        fg e"¦   «         ¬:¦  «        eAeBfgd@dAg¬B¦  «        dL„ ¦   «         ¦   «         Z_ejJ         K                    dMeed5 e#d¬¦  «        eDeEfeedN e"¦   «         eAeBfg¦  «        dO„ ¦   «         Z`ejJ         K                    dE ed1 e#¦   «         fd2 e1¦   «         fgdP¬Q¦  «        eDeEf ed1 e"¦   «         fd2 e3¦   «         fgdP¬Q¦  «        eAeBfg¦  «        dR„ ¦   «         ZaejJ         K                    dSeee#feee"fg¦  «        dT„ ¦   «         ZbejJ         K                    dU e-d¬¦  «         ed¬¦  «        gdVdWg¬B¦  «        dX„ ¦   «         ZcdY„ ZdejJ         K                    dZd[dNg¦  «        ejJ         K                    dddg¦  «        d\„ ¦   «         ¦   «         ZeejJ         K                    d] ed1 e#d¬¦  «        fd2 e2d¬¦  «        fg¬>¦  «        eCjf        eDeEg d^¢f ed1 e#d¬¦  «        fd_d2 e2d¬¦  «        fg¬>¦  «        eCjf        eDdd?…         eEdd?…         d`dagf ed1 e"¦   «         fd2 e3d¬¦  «        fg¬>¦  «        e>jf        eAeBdbdcgfgg dd¢¬B¦  «        ejJ         K                    dddg¦  «        de„ ¦   «         ¦   «         Zgdf„ Zhdg„ ZidS )hz+Test the stacking classifier and regressor.é    )ÚMockN)Úassert_array_equal)Úsparse)ÚBaseEstimatorÚClassifierMixinÚRegressorMixinÚclone)Úload_breast_cancerÚload_diabetesÚ	load_irisÚmake_classificationÚmake_multilabel_classificationÚmake_regression)ÚDummyClassifierÚDummyRegressor)ÚRandomForestClassifierÚRandomForestRegressorÚStackingClassifierÚStackingRegressor)ÚConvergenceWarningÚNotFittedError)ÚLinearRegressionÚLogisticRegressionÚRidgeÚRidgeClassifier)ÚKFoldÚStratifiedKFoldÚtrain_test_split)ÚKNeighborsClassifier)ÚMLPClassifier)Úscale)ÚSVCÚ	LinearSVCÚ	LinearSVR)ÚCheckingClassifier)Úassert_allcloseÚassert_allclose_dense_sparseÚignore_warnings)ÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERSé   é*   )Ú	n_classesÚrandom_stateé   ÚcvT)Ún_splitsÚshuffler/   Úfinal_estimator©r/   ÚpassthroughFc                 óš  — t          t          t          ¦  «        t          t          d¬¦  «        \  }}}}dt	          ¦   «         fdt          ¦   «         fg}t          ||| |¬¦  «        }|                     ||¦  «         |                     |¦  «         | 	                    |¦  «         | 
                    ||¦  «        dk    sJ ‚|                     |¦  «        }	|rdnd}
|	j        d	         |
k    sJ ‚|rt          ||	d d …d
d …f         ¦  «         |                     d¬¦  «         |                     ||¦  «         |                     |¦  «         | 	                    |¦  «         |€|                     |¦  «         |                     |¦  «        }	|rdnd}|	j        d	         |k    sJ ‚|rt          ||	d d …d
d …f         ¦  «         d S d S )Nr-   ©Ústratifyr/   ÚlrÚsvc©Ú
estimatorsr4   r1   r6   çš™™™™™é?é
   é   é   éüÿÿÿÚdrop©r:   é   r,   )r   r!   ÚX_irisÚy_irisr   r#   r   ÚfitÚpredictÚpredict_probaÚscoreÚ	transformÚshaper&   Ú
set_paramsÚdecision_function)r1   r4   r6   ÚX_trainÚX_testÚy_trainÚy_testr=   ÚclfÚX_transÚexpected_column_countÚexpected_column_count_drops               úc/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/ensemble/tests/test_stacking.pyÚtest_stacking_classifier_irisrY   ;   s  € õ (8Ý�f‰Œ•v­¸Rð(ñ (ô (Ñ$€GˆV�W˜fð Õ+Ñ-Ô-Ð.°½	¹¼Ð0DÐE€JÝ
ØØ'ØØð	ñ ô €Cð ‡G‚GˆG�WÑÔÐØ‡K‚K�ÑÔÐØ×Ò�fÑÔÐØ�9Š9�V˜VÑ$Ô$ sÒ*Ð*Ð*Ð*à�mŠm˜FÑ#Ô#€GØ"-Ð4˜B˜B°1ÐØŒ=˜ÔÐ4Ò4Ð4Ð4Ð4Øð 1Ý˜ ¨¨¨¨2¨3¨3¨¤Ñ0Ô0Ð0à‡N‚N�f€NÑÔÐØ‡G‚GˆG�WÑÔÐØ‡K‚K�ÑÔÐØ×Ò�fÑÔÐØÐà×Ò˜fÑ%Ô%Ð%à�mŠm˜FÑ#Ô#€GØ&1Ð!8  °qÐØŒ=˜ÔÐ9Ò9Ð9Ð9Ð9Øð 1Ý˜ ¨¨¨¨2¨3¨3¨¤Ñ0Ô0Ð0Ð0Ð0ð1ð 1ó    c                  ó@  — t          d¬¦  «        \  } }t          t          | ¦  «        ||d¬¦  «        \  }}}}dt          ¦   «         fdt	          d¬¦  «        fg}t          |d¬	¦  «        }|                     ||¦  «         |                     |¦  «        }|j        d
         dk    sJ ‚dt          ¦   «         fdt          ¦   «         fg}| 
                    |¬¦  «         |                     ||¦  «         |                     |¦  «        }|j        d
         dk    sJ ‚d S )NT©Ú
return_X_yr-   r8   r:   Úrfr5   r,   ©r=   r1   rA   r0   r;   ©r=   )r
   r   r!   r   r   r   rH   rL   rM   r#   rN   )	ÚXÚyrP   rQ   rR   Ú_r=   rT   rU   s	            rX   Ú:test_stacking_classifier_drop_column_binary_classificationrd   i   s7  € å¨Ð.Ñ.Ô.�D€A€qÝ"2Ýˆa‰Œ�!˜a¨bð#ñ #ô #Ñ€GˆV�W˜að 
Õ!Ñ#Ô#Ð$Ø	Õ%°2Ð6Ñ6Ô6Ð7ð€Jõ ¨
°qÐ
9Ñ
9Ô
9€Cà‡G‚GˆG�WÑÔÐØ�mŠm˜FÑ#Ô#€GØŒ=˜Ô˜qÒ Ð Ð Ð ð Õ+Ñ-Ô-Ð.°½	¹¼Ð0DÐE€JØ‡N‚N˜j€NÑ)Ô)Ð)à‡G‚GˆG�WÑÔÐØ�mŠm˜FÑ#Ô#€GØŒ=˜Ô˜qÒ Ð Ð Ð Ð Ð rZ   c                  ó¾  — t          t          t          ¦  «        t          t          d¬¦  «        \  } }}}ddt	          d¬¦  «        fg}t          dd¬¦  «        }t          dt	          d¬¦  «        fg|d	¬
¦  «        }t          ||d	¬
¦  «        }|                     | |¦  «         |                     | |¦  «         t          | 	                    |¦  «        | 	                    |¦  «        ¦  «         t          | 
                    |¦  «        | 
                    |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )Nr-   r8   ©r:   rC   r;   r   r5   r?   ©Ún_estimatorsr/   é   ©r=   r4   r1   )r   r!   rF   rG   r#   r   r   rH   r&   rI   rJ   rL   )rP   rQ   rR   rc   r=   r^   rT   Úclf_drops           rX   Ú'test_stacking_classifier_drop_estimatorrl   „   sS  € õ #3Ý�f‰Œ•v­¸Rð#ñ #ô #Ñ€GˆV�W˜að ! 5­)ÀÐ*CÑ*CÔ*CÐ"DÐE€JÝ	¨R¸bÐ	AÑ	AÔ	A€BÝ
Ø�I°1Ð5Ñ5Ô5Ð6Ð7ØØðñ ô €Cõ
 "¨ZÈÐPQÐRÑRÔR€Hà‡G‚GˆG�WÑÔÐØ‡L‚L�˜'Ñ"Ô"Ð"Ý�C—K’K Ñ'Ô'¨×)9Ò)9¸&Ñ)AÔ)AÑBÔBÐBÝ�C×%Ò% fÑ-Ô-¨x×/EÒ/EÀfÑ/MÔ/MÑNÔNÐNÝ�C—M’M &Ñ)Ô)¨8×+=Ò+=¸fÑ+EÔ+EÑFÔFÐFÐFÐFrZ   c                  óF  — t          t          t          ¦  «        t          d¬¦  «        \  } }}}ddt	          d¬¦  «        fg}t          dd¬¦  «        }t          dt	          d¬¦  «        fg|d¬	¦  «        }t          ||d¬	¦  «        }|                     | |¦  «         |                     | |¦  «         t          | 	                    |¦  «        | 	                    |¦  «        ¦  «         t          | 
                    |¦  «        | 
                    |¦  «        ¦  «         d S )
Nr-   r5   rf   Úsvrr   r?   rg   ri   rj   )r   r!   Ú
X_diabetesÚ
y_diabetesr$   r   r   rH   r&   rI   rL   )rP   rQ   rR   rc   r=   r^   ÚregÚreg_drops           rX   Ú&test_stacking_regressor_drop_estimatorrs   š   s&  € õ #3Ý�jÑÔ�:°Bð#ñ #ô #Ñ€GˆV�W˜að ! 5­)ÀÐ*CÑ*CÔ*CÐ"DÐE€JÝ	¨B¸RÐ	@Ñ	@Ô	@€BÝ
Ø�I°1Ð5Ñ5Ô5Ð6Ð7ØØðñ ô €Cõ
 !¨JÈÈqÐQÑQÔQ€Hà‡G‚GˆG�WÑÔÐØ‡L‚L�˜'Ñ"Ô"Ð"Ý�C—K’K Ñ'Ô'¨×)9Ò)9¸&Ñ)AÔ)AÑBÔBÐBÝ�C—M’M &Ñ)Ô)¨8×+=Ò+=¸fÑ+EÔ+EÑFÔFÐFÐFÐFrZ   zfinal_estimator, predict_paramsÚ
return_stdc                 ó   — t          t          t          ¦  «        t          d¬¦  «        \  }}}}dt	          ¦   «         fdt          ¦   «         fg}t          ||| |¬¦  «        }	|	                     ||¦  «          |	j        |fi |¤Ž}
|rdnd}|rt          |
¦  «        |k    sJ ‚|	 
                    |¦  «        }|rdnd}|j        d         |k    sJ ‚|rt          ||d d …d	d …f         ¦  «         |	                     d
¬¦  «         |	                     ||¦  «         |	                     |¦  «         |	 
                    |¦  «        }|rdnd}|j        d         |k    sJ ‚|rt          ||d d …d	d …f         ¦  «         d S d S )Nr-   r5   r:   rn   r<   r0   rA   é   éöÿÿÿrC   rD   é   )r   r!   ro   rp   r   r$   r   rH   rI   ÚlenrL   rM   r&   rN   )r1   r4   Úpredict_paramsr6   rP   rQ   rR   rc   r=   rq   ÚresultÚexpected_result_lengthrU   rV   rW   s                  rX   Ú test_stacking_regressor_diabetesr}   ¯   sÝ  € õ #3Ý�jÑÔ�:°Bð#ñ #ô #Ñ€GˆV�W˜að Õ)Ñ+Ô+Ð,¨uµi±k´kÐ.BÐC€JÝ
ØØ'ØØð	ñ ô €Cð ‡G‚GˆG�WÑÔÐØˆSŒ[˜Ð2Ð2 >Ð2Ð2€FØ"0Ð7˜Q˜Q°aÐØð 5Ý�6‰{Œ{Ð4Ò4Ð4Ð4Ð4à�mŠm˜FÑ#Ô#€GØ"-Ð4˜B˜B°1ÐØŒ=˜ÔÐ4Ò4Ð4Ð4Ð4Øð 2Ý˜ ¨¨¨¨3¨4¨4¨Ô 0Ñ1Ô1Ð1à‡N‚N�f€NÑÔÐØ‡G‚GˆG�WÑÔÐØ‡K‚K�ÑÔÐà�mŠm˜FÑ#Ô#€GØ'2Ð!9  ¸ÐØŒ=˜ÔÐ9Ò9Ð9Ð9Ð9Øð 2Ý˜ ¨¨¨¨3¨4¨4¨Ô 0Ñ1Ô1Ð1Ð1Ð1ð2ð 2rZ   Úsparse_containerc                 óÚ  — t           | t          t          ¦  «        ¦  «        t          d¬¦  «        \  }}}}dt	          ¦   «         fdt          ¦   «         fg}t          dd¬¦  «        }t          ||dd¬	¦  «        }|                     ||¦  «         | 	                    |¦  «        }t          ||d d …d
d …f         ¦  «         t          j        |¦  «        sJ ‚|j        |j        k    sJ ‚d S )Nr-   r5   r:   rn   r?   rg   ri   Tr<   rw   )r   r!   ro   rp   r   r$   r   r   rH   rL   r'   r   ÚissparseÚformat©	r~   rP   rQ   rR   rc   r=   r^   rT   rU   s	            rX   Ú*test_stacking_regressor_sparse_passthroughrƒ   Ý   s  € õ
 #3ØÐ��zÑ*Ô*Ñ+Ô+­ZÀbð#ñ #ô #Ñ€GˆV�W˜að Õ)Ñ+Ô+Ð,¨uµi±k´kÐ.BÐC€JÝ	¨B¸RÐ	@Ñ	@Ô	@€BÝ
Ø¨r°aÀTðñ ô €Cð ‡G‚GˆG�WÑÔÐØ�mŠm˜FÑ#Ô#€GÝ  ¨°°°°C°D°D°Ô)9Ñ:Ô:Ð:ÝŒ?˜7Ñ#Ô#Ð#Ð#Ð#ØŒ=˜GœNÒ*Ð*Ð*Ð*Ð*Ð*rZ   c                 óÚ  — t           | t          t          ¦  «        ¦  «        t          d¬¦  «        \  }}}}dt	          ¦   «         fdt          ¦   «         fg}t          dd¬¦  «        }t          ||dd¬	¦  «        }|                     ||¦  «         | 	                    |¦  «        }t          ||d d …d
d …f         ¦  «         t          j        |¦  «        sJ ‚|j        |j        k    sJ ‚d S )Nr-   r5   r:   r;   r?   rg   ri   Tr<   rB   )r   r!   rF   rG   r   r#   r   r   rH   rL   r'   r   r€   r�   r‚   s	            rX   Ú+test_stacking_classifier_sparse_passthroughr…   ñ   s  € õ
 #3ØÐ��v™œÑ'Ô'­¸bð#ñ #ô #Ñ€GˆV�W˜að Õ+Ñ-Ô-Ð.°½	¹¼Ð0DÐE€JÝ	¨R¸bÐ	AÑ	AÔ	A€BÝ
Ø¨r°aÀTðñ ô €Cð ‡G‚GˆG�WÑÔÐØ�mŠm˜FÑ#Ô#€GÝ  ¨°°°°B°C°C°¬Ñ9Ô9Ð9ÝŒ?˜7Ñ#Ô#Ð#Ð#Ð#ØŒ=˜GœNÒ*Ð*Ð*Ð*Ð*Ð*rZ   c                  ó8  — t          t          d d…         ¦  «        t          d d…         }} dt          ¦   «         fdt	          ¦   «         fg}t          |¬¦  «        }|                     | |¦  «         |                     | ¦  «        }|j        d         dk    sJ ‚d S )Néd   r:   r^   r`   rA   r0   )	r!   rF   rG   r   r   r   rH   rL   rM   )ÚX_Úy_r=   rT   ÚX_metas        rX   Ú)test_stacking_classifier_drop_binary_probr‹     s–   € õ
 •6˜$˜3˜$”<Ñ Ô ¥&¨¨#¨¤,ˆ€BàÕ+Ñ-Ô-Ð.°Õ7MÑ7OÔ7OÐ0PÐQ€JÝ
¨
Ð
3Ñ
3Ô
3€CØ‡G‚GˆB��O„O€OØ�]Š]˜2ÑÔ€FØŒ<˜Œ?˜aÒÐÐÐÐÐrZ   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNoWeightRegressorc                 ó^   — t          ¦   «         | _        | j                             ||¦  «        S ©N)r   rq   rH   ©Úselfra   rb   s      rX   rH   zNoWeightRegressor.fit  s%   € Ý!Ñ#Ô#ˆŒØŒx�|Š|˜A˜qÑ!Ô!Ð!rZ   c                 ó@   — t          j        |j        d         ¦  «        S )Nr   )ÚnpÚonesrM   )r‘   ra   s     rX   rI   zNoWeightRegressor.predict  s   € ÝŒw�q”w˜q”zÑ"Ô"Ð"rZ   N)Ú__name__Ú
__module__Ú__qualname__rH   rI   © rZ   rX   r�   r�     s2   € € € € € ð"ð "ð "ð#ð #ð #ð #ð #rZ   r�   c                   ó   — e Zd Zd„ ZdS )ÚNoWeightClassifierc                 ób   — t          d¬¦  «        | _        | j                             ||¦  «        S )NÚ
stratified)Ústrategy)r   rT   rH   r�   s      rX   rH   zNoWeightClassifier.fit  s*   € Ý"¨LÐ9Ñ9Ô9ˆŒØŒx�|Š|˜A˜qÑ!Ô!Ð!rZ   N)r•   r–   r—   rH   r˜   rZ   rX   rš   rš     s#   € € € € € ð"ð "ð "ð "ð "rZ   rš   zy, params, type_err, msg_errr=   zInvalid 'estimators' attribute,r:   ÚsvmiPÃ  ©Úmax_iterrJ   )r=   Ústack_methodz+does not implement the method predict_probaÚcorzdoes not support sample weight©r=   r4   c           	      ó  — t          j        ||¬¦  «        5  t          di |¤ddi¤Ž}|                     t	          t
          ¦  «        | t          j        t
          j        d         ¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©N©Úmatchr1   r,   r   ©Úsample_weightr˜   )	ÚpytestÚraisesr   rH   r!   rF   r“   r”   rM   )rb   ÚparamsÚtype_errÚmsg_errrT   s        rX   Útest_stacking_classifier_errorr¯   "  sÞ   € õT 
Œ�x wÐ	/Ñ	/Ô	/ð Jð JÝ Ð0Ð0 6Ð0Ð0¨aÐ0Ð0Ð0ˆØ�Š••f‘”˜qµ´½¼ÀQ¼Ñ0HÔ0HˆÑIÔIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð Jð Jó   —ABÂBÂBc           	      ó  — t          j        ||¬¦  «        5  t          di |¤ddi¤Ž}|                     t	          t
          ¦  «        | t          j        t
          j        d         ¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r¥   )	rª   r«   r   rH   r!   ro   r“   r”   rM   )rb   r¬   r­   r®   rq   s        rX   Útest_stacking_regressor_errorr²   Q  sá   € õ2 
Œ�x wÐ	/Ñ	/Ô	/ð Rð RÝÐ/Ð/ &Ð/Ð/¨QÐ/Ð/Ð/ˆØ�Š••jÑ!Ô! 1µB´G½JÔ<LÈQÔ<OÑ4PÔ4PˆÑQÔQÐQðRð Rð Rñ Rô Rð Rð Rð Rð Rð Rð Rð Røøøð Rð Rð Rð Rð Rð Rr°   zestimator, X, yr`   r‡   r   r   )Úidsc                 óJ  — t          | ¦  «        }|                     t          dt          j                             d¦  «        ¬¦  «        ¬¦  «         t          | ¦  «        }|                     d¬¦  «         |                     t          dt          j                             d¦  «        ¬¦  «        ¬¦  «         t          |                     ||¦  «                             |¦  «        d d …dd …f         |                     ||¦  «                             |¦  «        ¦  «         d S )NTr   ©r3   r/   ©r1   rC   rD   rA   )	r	   rN   r   r“   ÚrandomÚRandomStater&   rH   rL   )Ú	estimatorra   rb   Úestimator_fullÚestimator_drops        rX   Útest_stacking_randomnessr¼   o  s"  € õ: ˜9Ñ%Ô%€NØ×ÒÝ˜­B¬I×,AÒ,AÀ!Ñ,DÔ,DÐEÑEÔEð ñ ô ð õ ˜9Ñ%Ô%€NØ×Ò ÐÑ(Ô(Ð(Ø×ÒÝ˜­B¬I×,AÒ,AÀ!Ñ,DÔ,DÐEÑEÔEð ñ ô ð õ Ø×Ò˜1˜aÑ Ô ×*Ò*¨1Ñ-Ô-¨a¨a¨a°°°¨eÔ4Ø×Ò˜1˜aÑ Ô ×*Ò*¨1Ñ-Ô-ñô ð ð ð rZ   c                  óª   — t          dt          d¬¦  «        fdt          d¬¦  «        fg¬¦  «        } |                      t          t
          ¦  «         d S )Nr:   i'  rŸ   rž   r`   )r   r   r#   rH   rF   rG   )rT   s    rX   Ú)test_stacking_classifier_stratify_defaultr¾   �  s^   € å
àÕ%¨vÐ6Ñ6Ô6Ð7Ø•I vÐ.Ñ.Ô.Ð/ð
ðñ ô €Cð ‡G‚G�F•FÑÔÐÐÐrZ   zstacker, X, yrµ   rj   r\   c                 ó€  — t          |¦  «        dz  }t          j        dg|z  dgt          |¦  «        |z
  z  z   ¦  «        }t          |||d¬¦  «        \  }}}}}	}t	          t
          ¬¦  «        5  |                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }
t	          t
          ¬¦  «        5  |                      ||t          j        |j	        ¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }t          |
|¦  «         t	          t
          ¬¦  «        5  |                      |||	¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }t          j        |
|z
  ¦  «                             ¦   «         dk    sJ ‚d S )	Nr0   gš™™™™™¹?gÍÌÌÌÌÌì?r-   r5   )Úcategoryr¨   r   )ry   r“   Úarrayr   r(   r   rH   rI   r”   rM   r&   ÚabsÚsum)Ústackerra   rb   Ún_half_samplesÚtotal_sample_weightrP   rQ   rR   rc   Úsample_weight_trainÚy_pred_no_weightÚy_pred_unit_weightÚy_pred_biaseds                rX   Ú test_stacking_with_sample_weightrË   ª  sš  € õB ˜‘V”V˜q‘[€NÝœ(Ø	ˆ�Ñ # ­#¨a©&¬&°>Ñ*AÑ!BÑBñô Ðõ ;KØ	ˆ1Ð!°ð;ñ ;ô ;Ñ7€GˆV�W˜aÐ!4°aõ 
Õ"4Ð	5Ñ	5Ô	5ð &ð &Ø�Š�G˜WÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à—’ vÑ.Ô.Ðå	Õ"4Ð	5Ñ	5Ô	5ð Lð LØ�Š�G˜WµB´G¸G¼MÑ4JÔ4JˆÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Là Ÿš¨Ñ0Ô0ÐåÐ$Ð&8Ñ9Ô9Ð9å	Õ"4Ð	5Ñ	5Ô	5ð Ið IØ�Š�G˜WÐ4GˆÑHÔHÐHðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Ià—O’O FÑ+Ô+€MåŒ6Ð" ]Ñ2Ñ3Ô3×7Ò7Ñ9Ô9¸AÒ=Ð=Ð=Ð=Ð=Ð=s6   Á1BÂBÂBÃ	0DÄD	ÄD	Å
E/Å/E3Å6E3c                  óî   — t          dt          d¬¦  «        fgt          d¬¦  «        ¬¦  «        } |                      t          t          t          j        t          j        d         ¦  «        ¬¦  «         d S )Nr:   T)Úexpected_sample_weightr£   r   r¨   )r   r%   rH   rF   rG   r“   r”   rM   )rÄ   s    rX   Ú0test_stacking_classifier_sample_weight_fit_paramrÎ   ä  sk   € å ØÕ-ÀTÐJÑJÔJÐKÐLÝ*À$ÐGÑGÔGðñ ô €Gð ‡K‚K•�­b¬gµf´lÀ1´oÑ.FÔ.F€KÑGÔGÐGÐGÐGrZ   z-ignore::sklearn.exceptions.ConvergenceWarningc                 ó  — t          | ¦  «        }t          | ¦  «        }|                     d¬¦  «         |                     d¬¦  «         |                     ||¦  «         |                     ||¦  «         t          |j        |j        ¦  «        D ]\  }}t          |j        |j        ¦  «         Œ t          j        t          d¬¦  «        5  t          |j
        j        |j
        j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr,   r¶   ri   z	Not equalr¦   )r	   rN   rH   ÚzipÚestimators_r&   Úcoef_rª   r«   ÚAssertionErrorÚfinal_estimator_)rÄ   ra   rb   Ústacker_cv_3Ústacker_cv_5Úest_cv_3Úest_cv_5s          rX   Útest_stacking_cv_influencerÙ   í  sP  € õB ˜‘>”>€LÝ˜‘>”>€Là×Ò˜qÐÑ!Ô!Ð!Ø×Ò˜qÐÑ!Ô!Ð!à×Ò�Q˜ÑÔÐØ×Ò�Q˜ÑÔÐõ " ,Ô":¸LÔ<TÑUÔUð 8ð 8Ñˆ�(Ý˜œ¨¬Ñ7Ô7Ð7Ð7õ 
Œ•~¨[Ð	9Ñ	9Ô	9ð 
ð 
ÝØÔ)Ô/°Ô1NÔ1Tñ	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Ã%C>Ã>DÄDz7Stacker, Estimator, stack_method, final_estimator, X, yrI   c                 ót  — t          ||dd¬¦  «        \  }}}}	d |¦   «                              ||¦  «        fd |¦   «                              ||¦  «        fg}
|
D ]R\  }}t          d¬¦  «        |_        t          ||¦  «        }t          |¬¦  «        }||_        t          |||¦  «         ŒS | |
d	|¬
¦  «        }|                     ||	¦  «         |j        d„ |
D ¦   «         k    sJ ‚t          d„ |j        D ¦   «         ¦  «        sJ ‚|j        D ]'}t          ||¦  «        }|                     |¦  «         Œ(dS )z2Check the behaviour of stacking when `cv='prefit'`r-   g      à?)r/   Ú	test_sizeÚd0Úd1rH   )Úname)Úside_effectÚprefit)r=   r1   r4   c                 ó   — g | ]\  }}|‘ŒS r˜   r˜   )Ú.0rc   r¹   s      rX   ú
<listcomp>z(test_stacking_prefit.<locals>.<listcomp>P  s   € Ð"LÐ"LÐ"L±°°I 9Ð"LÐ"LÐ"LrZ   c              3   ó6   K  — | ]}|j         j        d k    V — ŒdS )r   N)rH   Ú
call_count)râ   r¹   s     rX   ú	<genexpr>z'test_stacking_prefit.<locals>.<genexpr>R  s,   è è € ÐRÐR°ˆyŒ}Ô'¨1Ò,ÐRÐRÐRÐRÐRÐRrZ   N)	r   rH   r   Úgetattrr•   ÚsetattrrÑ   ÚallÚassert_called_with)ÚStackerÚ	Estimatorr¡   r4   ra   rb   ÚX_train1ÚX_train2Úy_train1Úy_train2r=   rc   r¹   Ú
stack_funcÚpredict_method_mockedrÄ   Ústack_func_mocks                    rX   Útest_stacking_prefitrô   "  s•  € õ. .>Ø	ˆ1˜2¨ð.ñ .ô .Ñ*€Hˆh˜ (ð 
ˆyˆy‰{Œ{�Š˜x¨Ñ2Ô2Ð3Ø	ˆyˆy‰{Œ{�Š˜x¨Ñ2Ô2Ð3ð€Jð #ð @ð @‰ˆˆ9Ý %Ð(Ñ(Ô(ˆ	ŒÝ˜Y¨Ñ5Ô5ˆ
Ý $°Ð <Ñ <Ô <Ðð *6ÐÔ&Ý�	˜<Ð)>Ñ?Ô?Ð?Ð?àˆgØ (¸Oðñ ô €Gð ‡K‚K�˜(Ñ#Ô#Ð#àÔÐ"LÐ"LÀÐ"LÑ"LÔ"LÒLÐLÐLÐLåÐRÐR¸gÔ>QÐRÑRÔRÑRÔRÐRÐRÐRð Ô(ð 5ð 5ˆ	Ý! )¨\Ñ:Ô:ˆØ×*Ò*¨8Ñ4Ô4Ð4Ð4ð5ð 5rZ   rà   r_   c                 ó–   — t          j        t          ¦  «        5  |                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r�   )rª   r«   r   rH   )rÄ   ra   rb   s      rX   Útest_stacking_prefit_errorrö   Z  sŒ   € õ6 
Œ•~Ñ	&Ô	&ð ð Ø�Š�A�qÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   š>¾AÁAz!make_dataset, Stacking, Estimatorc                 óž  —  G d„ d|¦  «        } | dd¬¦  «        \  }} |d |¦   «         fg¬¦  «        }|j         › d�}t          j        t          |¬	¦  «        5  |j         d d d ¦  «         n# 1 swxY w Y   |                     ||¦  «         d
}t          j        t          |¬	¦  «        5  |j         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ú8test_stacking_without_n_features_in.<locals>.MyEstimatorz Estimator without n_features_in_c                 óP   •— t          ¦   «                              ||¦  «         | `d S r�   )ÚsuperrH   Ún_features_in_)r‘   ra   rb   Ú	__class__s      €rX   rH   z<test_stacking_without_n_features_in.<locals>.MyEstimator.fit‡  s'   ø€ Ý‰GŒG�KŠK˜˜1ÑÔÐØÐ#Ð#Ð#rZ   )r•   r–   r—   Ú__doc__rH   Ú__classcell__)rý   s   @rX   ÚMyEstimatorrù   „  s>   ø€ € € € € Ø.Ð.ð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$rZ   r   r   r‡   )r/   Ú	n_samplesr:   r`   z' object has no attribute n_features_in_r¦   z6'MyEstimator' object has no attribute 'n_features_in_')r•   rª   r«   ÚAttributeErrorrü   rH   )Úmake_datasetÚStackingrì   r   ra   rb   rÄ   Úmsgs           rX   Ú#test_stacking_without_n_features_inr  y  s‡  € ð$ð $ð $ð $ð $�iñ $ô $ð $ð ˆ< Q°#Ð6Ñ6Ô6�D€A€qØˆh D¨+¨+©-¬-Ð#8Ð"9Ð:Ñ:Ô:€GàÔÐ
GÐ
GÐ
G€CÝ	Œ•~¨SÐ	1Ñ	1Ô	1ð ð ØÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡K‚K��1ÑÔÐà
B€CÝ	Œ•~¨SÐ	1Ñ	1Ô	1ð ð ØÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÁA/Á/A3Á6A3Â-CÃCÃ	Cr¹   r    r   c                 óâ  — t          t          t          t          d¬¦  «        \  }}}}d}d| fg}t          |t	          ¦   «         d¬¦  «                             ||¦  «        }|                     |¦  «        }|j        |j        d         |fk    sJ ‚t          t          j
        |                     d¬	¦  «        d
¦  «        ¦  «        rJ ‚|                     |¦  «        }	|	j        |j        k    sJ ‚dS )zÚCheck the behaviour for the multilabel classification case and the
    `predict_proba` stacking method.

    Estimators are not consistent with the output arrays and we need to ensure that
    we handle all cases.
    r-   r8   r,   ÚestrJ   ©r=   r4   r¡   r   rA   )Úaxisg      ð?N)r   ÚX_multilabelÚy_multilabelr   r   rH   rL   rM   Úanyr“   ÚiscloserÃ   rI   )
r¹   rP   rQ   rR   rS   Ú	n_outputsr=   rÄ   rU   Úy_preds
             rX   Ú1test_stacking_classifier_multilabel_predict_probar  š  s  € õ$ (8Ý•l­\Èð(ñ (ô (Ñ$€GˆV�W˜fð €Ià˜)Ð$Ð%€JÝ ØÝ,Ñ.Ô.Ø$ðñ ô ÷ 
‚cˆ'�7ÑÔð	 ð ×Ò Ñ'Ô'€GØŒ=˜Vœ\¨!œ_¨iÐ8Ò8Ð8Ð8Ð8å•2”:˜gŸkšk¨q˜kÑ1Ô1°3Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8à�_Š_˜VÑ$Ô$€FØŒ<˜6œ<Ò'Ð'Ð'Ð'Ð'Ð'rZ   c                  óŠ  — t          t          t          t          d¬¦  «        \  } }}}d}dt          ¦   «         fg}t	          |t          ¦   «         d¬¦  «                             | |¦  «        }|                     |¦  «        }|j        |j        d         |fk    sJ ‚| 	                    |¦  «        }|j        |j        k    sJ ‚dS )	zŸCheck the behaviour for the multilabel classification case and the
    `decision_function` stacking method. Only `RidgeClassifier` supports this
    case.
    r-   r8   r,   r  rO   r	  r   N)
r   r  r  r   r   r   rH   rL   rM   rI   )	rP   rQ   rR   rS   r  r=   rÄ   rU   r  s	            rX   Ú5test_stacking_classifier_multilabel_decision_functionr  Á  sÚ   € õ
 (8Ý•l­\Èð(ñ (ô (Ñ$€GˆV�W˜fð €Ià�/Ñ+Ô+Ð,Ð-€JÝ ØÝ,Ñ.Ô.Ø(ðñ ô ÷ 
‚cˆ'�7ÑÔð	 ð ×Ò Ñ'Ô'€GØŒ=˜Vœ\¨!œ_¨iÐ8Ò8Ð8Ð8Ð8à�_Š_˜VÑ$Ô$€FØŒ<˜6œ<Ò'Ð'Ð'Ð'Ð'Ð'rZ   r¡   Úautoc                 ó  — t          t          t          t          d¬¦  «        \  }}}}|                     ¦   «         }d}dt	          d¬¦  «        fdt          d¬¦  «        fdt          ¦   «         fg}t          ¦   «         }	t          ||	|| ¬¦  «         	                    ||¦  «        }
t          ||¦  «         |
                     |¦  «        }|j        |j        k    sJ ‚| d	k    rg d
¢}ndgt          |¦  «        z  }|
j        |k    sJ ‚|t          |¦  «        z  }|r||j        d         z  }|
                     |¦  «        }|j        |j        d         |fk    sJ ‚t          |
j        t#          j        ddg¦  «        g|z  ¦  «         dS )zŽCheck the behaviour for the multilabel classification case for stack methods
    supported for all estimators or automatically picked up.
    r-   r8   r,   Úmlpr5   r^   Úridge)r=   r4   r6   r¡   r  )rJ   rJ   rO   rI   rA   r   N)r   r  r  Úcopyr    r   r   r   r   rH   r   rI   rM   ry   Ústack_method_rL   Úclasses_r“   rÁ   )r¡   r6   rP   rQ   rR   rS   Úy_train_before_fitr  r=   r4   rT   r  Úexpected_stack_methodsÚn_features_X_transrU   s                  rX   Ú0test_stacking_classifier_multilabel_auto_predictr  Ù  sÂ  € õ (8Ý•l­\Èð(ñ (ô (Ñ$€GˆV�W˜fð !Ÿš™œÐØ€Ið 
•¨2Ð.Ñ.Ô.Ð/Ø	Õ%°2Ð6Ñ6Ô6Ð7Ø	•/Ñ#Ô#Ð$ð€Jõ
 +Ñ,Ô,€Oå
ØØ'ØØ!ð	ñ ô ÷
 
‚cˆ'�7ÑÔð õ Ð)¨7Ñ3Ô3Ð3à�[Š[˜Ñ Ô €FØŒ<˜6œ<Ò'Ð'Ð'Ð'à�vÒÐØ!XÐ!XÐ!XÐÐà"+ ­s°:©¬Ñ!>ÐØÔÐ 6Ò6Ð6Ð6Ð6à"¥S¨¡_¤_Ñ4ÐØð /Ø˜gœm¨AÔ.Ñ.ÐØ�mŠm˜FÑ#Ô#€GØŒ=˜Vœ\¨!œ_Ð.@ÐAÒAÐAÐAÐAå�s”|¥b¤h°°1¨vÑ&6Ô&6Ð%7¸)Ñ%CÑDÔDÐDÐDÐDrZ   z,stacker, feature_names, X, y, expected_names)Ústackingclassifier_lr0Ústackingclassifier_lr1Ústackingclassifier_lr2Ústackingclassifier_svm0Ústackingclassifier_svm1Ústackingclassifier_svm2)ÚotherrC   Ústackingclassifier_lrÚstackingclassifier_svmÚstackingregressor_lrÚstackingregressor_svm)ÚStackingClassifier_multiclassÚStackingClassifier_binaryr   c                 óò   — |                       |¬¦  «         |                      t          |¦  «        |¦  «         |rt          j        ||f¦  «        }|                      |¦  «        }t          ||¦  «         dS )z/Check get_feature_names_out works for stacking.)r6   N)rN   rH   r!   r“   ÚconcatenateÚget_feature_names_outr   )rÄ   Úfeature_namesra   rb   Úexpected_namesr6   Ú	names_outs          rX   Útest_get_feature_names_outr2    s|   € ðD ×Ò ;ÐÑ/Ô/Ð/Ø‡K‚K•�a‘”˜!ÑÔÐàð IÝœ¨¸Ð(GÑHÔHˆà×-Ò-¨mÑ<Ô<€IÝ�y .Ñ1Ô1Ð1Ð1Ð1rZ   c                  ód  — t          t          t          ¦  «        t          t          d¬¦  «        \  } }}}t	          dt          ¦   «         fg¬¦  «        }|                     | |¦  «         |                     |¦  «         |                     |¦  «         | 	                    ||¦  «        dk    sJ ‚dS )zNCheck that a regressor can be used as the first layer in `StackingClassifier`.r-   r8   r  r`   r>   N)
r   r!   rF   rG   r   r   rH   rI   rJ   rK   )rP   rQ   rR   rS   rT   s        rX   Ú'test_stacking_classifier_base_regressorr4  T  s«   € å'7Ý�f‰Œ•v­¸Rð(ñ (ô (Ñ$€GˆV�W˜fõ ¨'µ5±7´7Ð);Ð(<Ð
=Ñ
=Ô
=€CØ‡G‚GˆG�WÑÔÐØ‡K‚K�ÑÔÐØ×Ò�fÑÔÐØ�9Š9�V˜VÑ$Ô$ sÒ*Ð*Ð*Ð*Ð*Ð*rZ   c                  óô  — t          d¬¦  «        \  } }dt          ¦   «         fdt          dd¬¦  «        fg}t          dd¬¦  «        }t          ||d¬¦  «        }d	}d
}t	          j        t          |¬¦  «        5 }|                     | |¦  «                             | ¦  «         ddd¦  «         n# 1 swxY w Y   t          |j
        j        t          ¦  «        sJ ‚|t          |j
        j        ¦  «        v sJ ‚dS )a
  Check that we raise the proper AttributeError when the final estimator
    does not implement the `decision_function` method, which is decorated with
    `available_if`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28108
    r-   r5   r:   r^   r0   rg   r,   rj   z>This 'StackingClassifier' has no attribute 'decision_function'zD'RandomForestClassifier' object has no attribute 'decision_function'r¦   N)r   r   r   r   rª   r«   r  rH   rO   Ú
isinstanceÚvalueÚ	__cause__Ústr)ra   rb   r=   r4   rT   Ú	outer_msgÚ	inner_msgÚ	exec_infos           rX   Ú-test_stacking_final_estimator_attribute_errorr=  `  sH  € õ ¨BÐ/Ñ/Ô/�D€A€qð 
Õ!Ñ#Ô#Ð$Ø	Õ%°1À2ÐFÑFÔFÐGð€Jõ -¸!È"ÐMÑMÔM€OÝ
Ø¨À1ðñ ô €Cð Q€IØV€IÝ	Œ•~¨YÐ	7Ñ	7Ô	7ð +¸9Ø�Š��1‰Œ×'Ò'¨Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +å�i”oÔ/µÑ@Ô@Ð@Ð@Ð@Ø�˜IœOÔ5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6s   Á9*B/Â/B3Â6B3)jrþ   Úunittest.mockr   Únumpyr“   rª   Únumpy.testingr   Úscipyr   Úsklearn.baser   r   r   r	   Úsklearn.datasetsr
   r   r   r   r   r   Úsklearn.dummyr   r   Úsklearn.ensembler   r   r   r   Úsklearn.exceptionsr   r   Úsklearn.linear_modelr   r   r   r   Úsklearn.model_selectionr   r   r   Úsklearn.neighborsr   Úsklearn.neural_networkr    Úsklearn.preprocessingr!   Úsklearn.svmr"   r#   r$   Úsklearn.utils._mockingr%   Úsklearn.utils._testingr&   r'   r(   Úsklearn.utils.fixesr)   r*   r+   ÚdiabetesÚdataÚtargetro   rp   ÚirisrF   rG   r  r  ÚX_binaryÚy_binaryÚmarkÚparametrizerY   rd   rl   rs   r}   rƒ   r…   r‹   r�   rš   Ú
ValueErrorÚ	TypeErrorr¯   r²   r¼   r¾   rË   rÎ   ÚfilterwarningsrÙ   rô   rö   r  r  r  r  r/  r2  r4  r=  r˜   rZ   rX   ú<module>r[     s>  ðØ 1Ð 1ð
 Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ð Ð à NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð ð ð BÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð ð ð MÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð
 OÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nàˆ=‰?Œ?€Ø!œ¨¬Ð €
ˆJØ€y�{„{€Ø”˜DœK€€ˆØ;Ð;Ø˜bðñ ô Ñ €ˆlð )Ð(°1À2ÐFÑFÔFÑ €ˆ(ð „×ÒØˆ1ˆoˆo q°$ÀRÐHÑHÔHÐ
Iñô ð „×ÒØ˜Ð4Ð4À"ÐEÑEÔEÐFñô ð „×Ò˜¨°¨Ñ6Ô6ð$1ð $1ñ 7Ô6ñô ñô ð$1ðN!ð !ð !ð6Gð Gð Gð,Gð Gð Gð* „×Ò˜  5 5°!¸TÐPRÐ#SÑ#SÔ#SÐTÑUÔUØ„×ÒØ%à	ˆrˆ
Ø	Ð	¨BÐ	/Ñ	/Ô	/°Ð4Ø	ˆÑ	Ô	˜L¨$Ð/Ð0ðñô ð „×Ò˜¨°¨Ñ6Ô6ð!2ð !2ñ 7Ô6ñô ñ VÔUð!2ðH „×ÒØ˜¨Ñ7¸.ÑHñô ð+ð +ñô ð+ð" „×ÒØ˜¨Ñ7¸.ÑHñô ð+ð +ñô ð+ð" ð  ð  ð#ð #ð #ð #ð #˜¨ñ #ô #ð #ð"ð "ð "ð "ð "˜¨-ñ "ô "ð "ð „×ÒØ"à	�, Ð# ZÐ1RÐSàð Ð-Ð-Ñ/Ô/Ð0Ø˜C˜C¨Ð0Ñ0Ô0Ð1ðð !0ðð ð Ø9ð	
ð àØÐ-Ð-Ñ/Ô/Ð0ØÐ.Ð.Ñ0Ô0Ð1ððð Ø,ð
	
ð ð Ð-Ð-Ñ/Ô/Ð0Ø˜I˜I¨vÐ6Ñ6Ô6Ð7ðð $6Ð#5Ñ#7Ô#7ðð ð Ø,ð	
ð3%ñ(ô (ðRJð JñS(ô (ðRJð „×ÒØ"à	�l BÐ'¨Ð5VÐWàØ˜TÐ#3Ð#3Ñ#5Ô#5Ð6¸Ð@QÐ@QÑ@SÔ@SÐ8TÐUÐVØØ,ð		
ð ð Ð+Ð+Ñ-Ô-Ð.Ø˜I˜I™KœKÐ(ðð $5Ð#4Ñ#6Ô#6ðð ð Ø,ð	
ðñô ð0Rð Rñ1ô ð0Rð „×ÒØð ÐàÐ-Ð-¸1Ð=Ñ=Ô=Ð>Ø˜I˜I°1Ð5Ñ5Ô5Ð6ððñ ô ð �4�C�4ŒLØ�4�C�4ŒLð		
ð ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I°1Ð5Ñ5Ô5Ð6ððñ ô ð Øð		
ðð, 
Ð2Ð3ð1 ñ ô ð4ð ñ5ô ð4ð(
ð 
ð 
ð „×ÒØð ÐàÐ-Ð-Ñ/Ô/Ð0Ø˜I˜I°2Ð6Ñ6Ô6Ð7ðð !3Ð 2Ñ 4Ô 4Ø�5 °BÐ7Ñ7Ô7ðñ ô ð
	
ð  Ð¨4Ð0Ñ0Ô0ð
	
ð 
	
ð ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I°2Ð6Ñ6Ô6Ð7ðð !1Ð 0Ñ 2Ô 2Ø�5 °BÐ7Ñ7Ô7ðñ ô ð Øð	
ðð2 
Ð2Ð3ð7 ñ ô ð:>ð >ñ;ô ð:>ð:Hð Hð Hð „×ÒÐKÑLÔLØ„×ÒØð ÐàÐ-Ð-Ñ/Ô/Ð0Ø˜I˜I°2Ð6Ñ6Ô6Ð7ðð !3Ð 2Ñ 4Ô 4ðñ ô ð		
ð  Ð¨4Ð0Ñ0Ô0ð		
ð 		
ð ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I°2Ð6Ñ6Ô6Ð7ðð !1Ð 0Ñ 2Ô 2ðñ ô ð Øð
	
ðð. 
Ð2Ð3ð3 ñ ô ð6
ð 
ñ7ô ñ MÔLð8
ð2 „×ÒØ=ð ØØØÐ¨BÐ/Ñ/Ô/ØØð	
ð ØØØÐÑÔØØð	
ðñô ð* 5ð  5ñ+ô ð* 5ðF „×ÒØð ÐØ!Ð#5Ð#5Ñ#7Ô#7Ð8¸5À#À#Á%Ä%¸.ÐIØðñ ô ð Øð	
ð ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I™KœKÐ(ðð ðñ ô ð Øð
	
ðñô ð0ð ñ1ô ð0ð „×ÒØ'à	Ð0Ð2DÐEØ	Ð+Ð-=Ð>ðñô ðð ñô ðð4 „×ÒØð 	ˆ 2Ð&Ñ&Ô&ð 	Ð¨BÐ/Ñ/Ô/ðð 
Ð2Ð3ð ñ 
ô 
ð(ð (ñ
ô 
ð(ð8(ð (ð (ð0 „×Ò˜¨&°)Ð)<Ñ=Ô=Ø„×Ò˜¨°¨Ñ6Ô6ð*Eð *Eñ 7Ô6ñ >Ô=ð*EðZ „×ÒØ2ð ÐàÐ-Ð-¸1Ð=Ñ=Ô=Ð>Ø˜I˜I°1Ð5Ñ5Ô5Ð6ððñ ô ð ÔØØðð ð ð	
ð( ÐàÐ-Ð-¸1Ð=Ñ=Ô=Ð>Ø%Ø˜I˜I°1Ð5Ñ5Ô5Ð6ððñ ô ð ÔØ�4�C�4ŒLØ�4�C�4ŒLà'Ø(ðð	
ð" ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I°1Ð5Ñ5Ô5Ð6ððñ ô ð Ô"ØØà&Ø'ðð	
ðI3ðh	ð 	ð 	ðm ñ ;ô ;ðx „×Ò˜¨¨u¨Ñ6Ô6ð2ð 2ñ 7Ô6ñy;ô ;ðz2ð	+ð 	+ð 	+ð7ð 7ð 7ð 7ð 7rZ   