Ë
    ÷Q(htz  ã                   ó$  — d Z ddlmZmZ ddlZddlZddlZddlZddl	m
Z
 ddlmZmZmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZ dd	lmZmZ dd
l m!Z!m"Z"m#Z# ddl$m%Z%m&Z& ddl'm(Z( ddl)m*Z*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z:m;Z;  e5d«      Z< e«       Z=e<j}                  e=j~                  j€                  «      ZAe=j„                  eA   e=_B        e=j~                  eA   e=_?         e«       ZCe<j}                  eCj~                  j€                  «      ZAeCj„                  eA   eC_B        eCj~                  eA   eC_?        d„ ZDejŠ                  j�                  d ee;e:z   dddddœdddddœddddœddddœgg d¢«      «      d „ «       ZGd!„ ZHejŠ                  j�                  d"e;e:z   «      d#„ «       ZI G d$„ d%e
«      ZJd&„ ZKd'„ ZLd(„ ZMd)„ ZNd*„ ZOd+„ ZPd,„ ZQd-„ ZRd.„ ZSd/„ ZTd0„ ZUd1„ ZV G d2„ d3e
«      ZWd4„ ZXdNd5„ZYd6„ ZZd7„ Z[d8„ Z\d9„ Z]d:„ Z^d;„ Z_d<„ Z`d=„ Zad>„ Zbd?„ Zcd@„ ZddA„ ZedB„ ZfdC„ ZgdD„ ZhejŠ                  j�                  dE e edF¬G«      «      df e edF¬G«      «      df e e«       «      df e e0«       «      dfg«      dH„ «       ZiejŠ                  j�                  dI e edF¬J«      dF¬K«       e edF¬J«      dF¬K«      g«      dL„ «       ZjejŠ                  j�                  dI e edF¬J«      dF¬K«       e edF¬J«      dF¬K«      g«      dM„ «       Zky)OzE
Testing for the bagging ensemble module (sklearn.ensemble.bagging).
é    )ÚcycleÚproductN)ÚBaseEstimator)Úload_diabetesÚ	load_irisÚmake_hastie_10_2)ÚDummyClassifierÚDummyRegressor)ÚAdaBoostClassifierÚAdaBoostRegressorÚBaggingClassifierÚBaggingRegressorÚHistGradientBoostingClassifierÚHistGradientBoostingRegressorÚRandomForestClassifierÚRandomForestRegressor)ÚSelectKBest)ÚLogisticRegressionÚ
Perceptron)ÚGridSearchCVÚParameterGridÚtrain_test_split)ÚKNeighborsClassifierÚKNeighborsRegressor)Úmake_pipeline)ÚFunctionTransformerÚscale)ÚSparseRandomProjection)ÚSVCÚSVR)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Úcheck_random_state)Úassert_array_almost_equalÚassert_array_equal)ÚCSC_CONTAINERSÚCSR_CONTAINERSc                  ó¦  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        ddgddgddgddgd	œ«      }d t        «       t        d
¬«      t        d¬«      t        «       t        «       g}t        |t        |«      «      D ]3  \  }}t        d|| ddœ|¤Žj                  ||«      j                  |«       Œ5 y )Nr   ©Úrandom_stateç      à?ç      ð?é   é   TF©Úmax_samplesÚmax_featuresÚ	bootstrapÚbootstrap_featuresé   ©Úmax_iteré   )Ú	max_depth)Ú	estimatorr*   Ún_estimators© )r#   r   ÚirisÚdataÚtargetr   r	   r   r!   r   r   Úzipr   r   ÚfitÚpredict)	ÚrngÚX_trainÚX_testÚy_trainÚy_testÚgridÚ
estimatorsÚparamsr9   s	            úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/ensemble/tests/test_bagging.pyÚtest_classificationrK   :   sà   € ä
˜QÓ
€CÜ'7Ü�	‰	”4—;‘;¨Sô(Ñ$€GˆV�W˜fô à ˜:Ø ˜FØ ˜Ø#'¨ -ñ		
ó€Dð 	ÜÓÜ˜BÔÜ¨Ô+ÜÓÜ‹ð€Jô ! ¤u¨ZÓ'8Ó9ò 0Ñˆ�	Üð 	
ØØØñ	
ð ñ		
÷
 ‰#ˆg�wÓ
§¡¨¥ñ0ó    z sparse_container, params, methodr+   r7   Tr/   r,   r.   F©r1   r2   r3   ©r0   r2   r3   )rA   Úpredict_probaÚpredict_log_probaÚdecision_functionc                 ól  —  G d„ dt         «      }t        d«      }t        t        t        j
                  «      t        j                  |¬«      \  }}}} | |«      }	 | |«      }
t        d
 |dd¬«      dd	œ|¤Žj                  |	|«      } t        ||«      |
«      }t        d
 |dd¬«      dd	œ|¤Žj                  ||«      } t        ||«      |«      }t        ||«       t        |	«      }|j                  D �cg c]  }|j                  ‘Œ }}t        |D �cg c]  }||k(  ‘Œ	 c}«      sJ ‚y c c}w c c}w )Nc                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ú-test_sparse_classification.<locals>.CustomSVCú7SVC variant that records the nature of the training setc                 óH   •— t         ‰| �  ||«       t        |«      | _        | S ©N©Úsuperr@   ÚtypeÚ
data_type_©ÚselfÚXÚyÚ	__class__s      €rJ   r@   z1test_sparse_classification.<locals>.CustomSVC.fitx   ó!   ø€ Ü‰G‰K˜˜1ÔÜ" 1›gˆDŒOØˆKrL   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r@   Ú__classcell__©r`   s   @rJ   Ú	CustomSVCrT   u   ó   ø„ ÙE÷	ð 	rL   ri   r   r)   ÚlinearÚovr)ÚkernelÚdecision_function_shaper-   ©r9   r*   r;   )r   r#   r   r   r<   r=   r>   r   r@   Úgetattrr$   rZ   Úestimators_r[   Úall)Úsparse_containerrI   Úmethodri   rB   rC   rD   rE   rF   ÚX_train_sparseÚX_test_sparseÚsparse_classifierÚsparse_resultsÚdense_classifierÚdense_resultsÚsparse_typeÚiÚtypesÚts                      rJ   Útest_sparse_classificationr   [   sK  € ô4”Cô ô ˜QÓ
€CÜ'7ÜŒd�i‰iÓœ$Ÿ+™+°Cô(Ñ$€GˆV�W˜fñ & gÓ.€NÙ$ VÓ,€Mä)ð Ù 8ÀUÔKØñð ñ÷ 
�cˆ.˜'Ó"ð	 ð
 8”WÐ.°Ó7¸ÓF€Nô )ð Ù 8ÀUÔKØñð ñ÷ 
�cˆ'�7Óð	 ð
 6”GÐ,¨fÓ5°fÓ=€MÜ˜n¨mÔ<ä�~Ó&€KØ#4×#@Ñ#@ÖA˜aˆQ�\‹\ÐA€EÐAä¨%Ö0 Q��[Ó Ò0Ô1Ð1Ñ1ùò Bùâ0s   Ã8D,ÄD1c                  ót  — t        d«      } t        t        j                  d d t        j                  d d | ¬«      \  }}}}t        ddgddgddgddgdœ«      }d t        «       t        «       t        «       t        «       fD ]6  }|D ]/  }t        d
|| d	œ|¤Žj                  ||«      j                  |«       Œ1 Œ8 y )Nr   é2   r)   r+   r,   TFr/   ro   r;   )r#   r   Údiabetesr=   r>   r   r
   r"   r   r    r   r@   rA   )rB   rC   rD   rE   rF   rG   r9   rI   s           rJ   Útest_regressionrƒ   ›   sÒ   € ä
˜QÓ
€CÜ'7Ü�‰�c�rÐœHŸO™O¨C¨RÐ0¸sô(Ñ$€GˆV�W˜fô à ˜:Ø  #˜JØ ˜Ø#'¨ -ñ		
ó€Dð 	ÜÓÜÓÜÓÜ‹ðò 
ˆ	ð ò 	ˆFÜÐM y¸sÑMÀfÑM×QÑQØ˜óç‰g�f�oñ	ñ
rL   rs   c                 ó¨  — t        d«      }t        t        j                  d d t        j                  d d |¬«      \  }}}} G d„ dt
        «      }ddddd	œd
dddd	œddddœddddœg} | |«      } | |«      }	|D ]Ì  }
t        d |«       ddœ|
¤Žj                  ||«      }|j                  |	«      }t        d |«       ddœ|
¤Žj                  ||«      j                  |«      }t        |«      }|j                  D �cg c]  }|j                  ‘Œ }}t        ||«       t        |D �cg c]  }||k(  ‘Œ	 c}«      sJ ‚t        ||«       ŒÎ y c c}w c c}w )Nr   r�   r)   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ú)test_sparse_regression.<locals>.CustomSVRrU   c                 óH   •— t         ‰| �  ||«       t        |«      | _        | S rW   rX   r\   s      €rJ   r@   z-test_sparse_regression.<locals>.CustomSVR.fitÂ   ra   rL   rb   rh   s   @rJ   Ú	CustomSVRr†   ¿   rj   rL   rˆ   r+   r7   Tr/   r,   r.   FrM   rN   r-   ro   r;   )r#   r   r‚   r=   r>   r    r   r@   rA   rZ   rq   r[   r$   rr   )rs   rB   rC   rD   rE   rF   rˆ   Úparameter_setsru   rv   rI   rw   rx   rz   r{   r|   r}   r~   s                     rJ   Útest_sparse_regressionrŠ   ·   s‰  € ô ˜QÓ
€CÜ'7Ü�‰�c�rÐœHŸO™O¨C¨RÐ0¸sô(Ñ$€GˆV�W˜fô”Cô ð ØØØ"&ñ		
ð ØØØ"&ñ		
ð ¨ÀdÑKØ¨$ÀeÑLð€Nñ" & gÓ.€NÙ$ VÓ,€MØ ò Aˆä,ð 
Ù“k°ñ
Ø5;ñ
ç
‰#ˆn˜gÓ
&ð 	ð +×2Ñ2°=ÓAˆô ÐM¡y£{ÀÑMÀfÑMß‰S�˜'Ó"ß‰W�V‹_ð 	ô ˜>Ó*ˆØ'8×'DÑ'DÖE !�—“ÐEˆÐEä! .°-Ô@Ü¨eÖ4¨�A˜Ó$Ò4Ô5Ð5Ð5Ü! .°-Õ@ñ'Aùò Fùò 5s   Ã<E
Ä&E
c                   ó   — e Zd Zd„ Zd„ Zy)ÚDummySizeEstimatorc                 ó`   — |j                   d   | _        t        j                  |«      | _        y ©Nr   )ÚshapeÚtraining_size_ÚjoblibÚhashÚtraining_hash_©r]   r^   r_   s      rJ   r@   zDummySizeEstimator.fitñ   s"   € ØŸg™g a™jˆÔÜ$Ÿk™k¨!›nˆÕrL   c                 óF   — t        j                  |j                  d   «      S rŽ   )ÚnpÚonesr�   ©r]   r^   s     rJ   rA   zDummySizeEstimator.predictõ   s   € Ü�w‰w�q—w‘w˜q‘zÓ"Ð"rL   N©rc   rd   re   r@   rA   r;   rL   rJ   rŒ   rŒ   ð   s   „ ò-ó#rL   rŒ   c                  ó
  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        «       j                  ||«      }t        t        «       dd| ¬«      j                  ||«      }|j                  ||«      |j                  ||«      k(  sJ ‚t        t        «       dd| ¬«      j                  ||«      }|j                  ||«      |j                  ||«      kD  sJ ‚t        t        «       d¬«      j                  ||«      }g }|j                  D ];  }|j                  |j                  d   k(  sJ ‚|j                  |j                  «       Œ= t        t!        |«      «      t        |«      k(  sJ ‚y )Nr   r)   r,   F)r9   r0   r2   r*   T)r9   r2   )r#   r   r‚   r=   r>   r"   r@   r   ÚscorerŒ   rq   r�   r�   Úappendr“   ÚlenÚset)rB   rC   rD   rE   rF   r9   ÚensembleÚtraining_hashs           rJ   Útest_bootstrap_samplesr¡   ù   sw  € ä
˜QÓ
€CÜ'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô &Ó'×+Ñ+¨G°WÓ=€Iô  Ü'Ó)ØØØô	÷
 
�cˆ'�7Óð ð �?‰?˜7 GÓ,°·±¸wÈÓ0PÒPÐPÐPô  Ü'Ó)ØØØô	÷
 
�cˆ'�7Óð ð �?‰?˜7 GÓ,¨x¯~©~¸gÀwÓ/OÒOÐOÐOô
  Ô*<Ó*>È$ÔO×SÑSØ�ó€Hð €MØ×)Ñ)ò 7ˆ	Ø×'Ñ'¨7¯=©=¸Ñ+;Ò;Ð;Ð;Ø×Ñ˜Y×5Ñ5Õ6ð7ô Œs�=Ó!Ó"¤c¨-Ó&8Ò8Ð8Ñ8rL   c                  ó`  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        t        «       dd| ¬«      j                  ||«      }|j                  D ]D  }t        j                  j                  d   t        j                  |«      j                  d   k(  rŒDJ ‚ t        t        «       dd| ¬«      j                  ||«      }|j                  D ]D  }t        j                  j                  d   t        j                  |«      j                  d   kD  rŒDJ ‚ y )Nr   r)   r,   F)r9   r1   r3   r*   r-   T)r#   r   r‚   r=   r>   r   r"   r@   Úestimators_features_r�   r–   Úunique)rB   rC   rD   rE   rF   rŸ   Úfeaturess          rJ   Útest_bootstrap_featuresr¦   #  s  € ä
˜QÓ
€CÜ'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô  Ü'Ó)ØØ Øô	÷
 
�cˆ'�7Óð ð ×1Ñ1ò FˆÜ�}‰}×"Ñ" 1Ñ%¬¯©°8Ó)<×)BÑ)BÀ1Ñ)EÓEÐEÐEðFô  Ü'Ó)ØØØô	÷
 
�cˆ'�7Óð ð ×1Ñ1ò EˆÜ�}‰}×"Ñ" 1Ñ%¬¯	©	°(Ó(;×(AÑ(AÀ!Ñ(DÓDÐDÐDñErL   c            	      óŠ  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        j                  dd¬«      5  t        t        «       | ¬«      j                  ||«      }t        t        j                  |j                  |«      d¬«      t        j                  t        |«      «      «       t        |j                  |«      t        j                  |j!                  |«      «      «       t        t#        «       | d¬	«      j                  ||«      }t        t        j                  |j                  |«      d¬«      t        j                  t        |«      «      «       t        |j                  |«      t        j                  |j!                  |«      «      «       d d d «       y # 1 sw Y   y xY w)
Nr   r)   Úignore)ÚdivideÚinvalidro   r-   )Úaxisé   )r9   r*   r0   )r#   r   r<   r=   r>   r–   Úerrstater   r!   r@   r$   ÚsumrO   r—   r�   ÚexprP   r   ©rB   rC   rD   rE   rF   rŸ   s         rJ   Útest_probabilityr±   ?  sY  € ä
˜QÓ
€CÜ'7Ü�	‰	”4—;‘;¨Sô(Ñ$€GˆV�W˜fô 
�‰˜H¨hÔ	7ñ 
ä$Ü,Ó.¸Sô
ç
‰#ˆg�wÓ
ð 	ô 	"Ü�F‰F�8×)Ñ)¨&Ó1¸Ô:¼B¿G¹GÄCÈÃKÓ<Pô	
ô 	"Ø×"Ñ" 6Ó*¬B¯F©F°8×3MÑ3MÈfÓ3UÓ,Vô	
ô
 %Ü(Ó*¸È!ô
ç
‰#ˆg�wÓ
ð 	ô 	"Ü�F‰F�8×)Ñ)¨&Ó1¸Ô:¼B¿G¹GÄCÈÃKÓ<Pô	
ô 	"Ø×"Ñ" 6Ó*¬B¯F©F°8×3MÑ3MÈfÓ3UÓ,Vô	
÷/
÷ 
ñ 
ús   ÁEF9Æ9Gc            	      óð  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        «       t        «       fD ]™  }t        |ddd| ¬«      j                  ||«      }|j                  ||«      }t        ||j                  z
  «      dk  sJ ‚d}t        j                  t        |¬«      5  t        |d	dd| ¬«      }|j                  ||«       d d d «       Œ› y # 1 sw Y   Œ¦xY w)
Nr   r)   éd   T©r9   r:   r2   Ú	oob_scorer*   çš™™™™™¹?ú{Some inputs do not have OOB scores. This probably means too few estimators were used to compute any reliable oob estimates.©Úmatchr-   )r#   r   r<   r=   r>   r!   r   r   r@   r›   ÚabsÚ
oob_score_ÚpytestÚwarnsÚUserWarning)	rB   rC   rD   rE   rF   r9   ÚclfÚ
test_scoreÚwarn_msgs	            rJ   Útest_oob_score_classificationrÂ   b  s  € ô ˜QÓ
€CÜ'7Ü�	‰	”4—;‘;¨Sô(Ñ$€GˆV�W˜fô -Ó.´³Ð6ò &ˆ	ÜØØØØØô
÷ ‰#ˆg�wÓ
ð 	ð —Y‘Y˜v vÓ.ˆ
ä�: §¡Ñ.Ó/°#Ò5Ð5Ð5ðJð 	ô �\‰\œ+¨XÔ6ñ 	&Ü#Ø#ØØØØ ôˆCð �G‰G�G˜WÔ%÷	&ð 	&ñ%&÷$	&ð 	&ús   Â>#C,Ã,C5	c                  óÞ  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        t        «       ddd| ¬«      j                  ||«      }|j                  ||«      }t        ||j                  z
  «      dk  sJ ‚d}t        j                  t        |¬«      5  t        t        «       d	dd| ¬«      }|j                  ||«       d d d «       y # 1 sw Y   y xY w)
Nr   r)   r�   Tr´   r¶   r·   r¸   r-   )r#   r   r‚   r=   r>   r   r"   r@   r›   rº   r»   r¼   r½   r¾   )	rB   rC   rD   rE   rF   r¿   rÀ   rÁ   Úregrs	            rJ   Útest_oob_score_regressionrÅ   ‡  sé   € ô ˜QÓ
€CÜ'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô Ü'Ó)ØØØØô÷ 
�cˆ'�7Óð ð —‘˜6 6Ó*€Jäˆz˜CŸN™NÑ*Ó+¨cÒ1Ð1Ð1ð	Fð ô 
�‰”k¨Ô	2ñ #ÜÜ+Ó-ØØØØô
ˆð 	�‰�˜'Ô"÷#÷ #ñ #ús   Â/+C#Ã#C,c                  óP  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        t        «       ddd| ¬«      j                  ||«      }t        «       j                  ||«      }t        |j                  |«      |j                  |«      «       y )Nr   r)   r-   F)r9   r:   r2   r3   r*   )
r#   r   r‚   r=   r>   r   r   r@   r$   rA   )rB   rC   rD   rE   rF   Úclf1Úclf2s          rJ   Útest_single_estimatorrÉ   «  s�   € ä
˜QÓ
€CÜ'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô Ü%Ó'ØØØ Øô÷ 
�cˆ'�7Óð 	ô Ó ×$Ñ$ W¨gÓ6€Dä˜dŸl™l¨6Ó2°D·L±LÀÓ4HÕIrL   c                  ó¦   — t         j                  t         j                  }} t        «       }t	        t        |«      j                  | |«      d«      rJ ‚y )NrQ   )r<   r=   r>   r!   Úhasattrr   r@   )r^   r_   Úbases      rJ   Ú
test_errorrÍ   ¿  sB   € ä�9‰9”d—k‘k€q€AÜ!Ó#€DÜÔ(¨Ó.×2Ñ2°1°aÓ8Ð:MÔNÐNÐNÐNrL   c                  ó  — t        t        j                  t        j                  d¬«      \  } }}}t	        t        «       dd¬«      j                  | |«      }|j                  |«      }|j                  d¬«       |j                  |«      }t        ||«       t	        t        «       dd¬«      j                  | |«      }|j                  |«      }t        ||«       t	        t        d¬«      dd¬«      j                  | |«      }|j                  |«      }|j                  d¬«       |j                  |«      }	t        ||	«       t	        t        d¬«      dd¬«      j                  | |«      }|j                  |«      }
t        ||
«       y )	Nr   r)   é   ©Ún_jobsr*   r-   ©rÑ   rl   )rn   )r   r<   r=   r>   r   r!   r@   rO   Ú
set_paramsr$   r   rQ   )rC   rD   rE   rF   rŸ   Úy1Úy2Úy3Ú
decisions1Ú
decisions2Ú
decisions3s              rJ   Útest_parallel_classificationrÚ   Æ  sj  € ä'7Ü�	‰	”4—;‘;¨Qô(Ñ$€GˆV�W˜fô !ÜÓ ¨¸ôç	�cˆ'�7Óð ð
 
×	Ñ	 Ó	'€BØ×Ñ˜qÐÔ!Ø	×	Ñ	 Ó	'€BÜ˜b "Ô%ä ÜÓ ¨¸ôç	�cˆ'�7Óð ð 
×	Ñ	 Ó	'€BÜ˜b "Ô%ô !Ü EÔ*°1À1ôç	�cˆ'�7Óð ð ×+Ñ+¨FÓ3€JØ×Ñ˜qÐÔ!Ø×+Ñ+¨FÓ3€JÜ˜j¨*Ô5ä Ü EÔ*°1À1ôç	�cˆ'�7Óð ð ×+Ñ+¨FÓ3€JÜ˜j¨*Õ5rL   c                  óî  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        t        «       dd¬«      j                  ||«      }|j                  d¬«       |j                  |«      }|j                  d¬«       |j                  |«      }t        ||«       t        t        «       dd¬«      j                  ||«      }|j                  |«      }t        ||«       y )Nr   r)   rÏ   rÐ   r-   rÒ   r7   )r#   r   r‚   r=   r>   r   r"   r@   rÓ   rA   r$   )	rB   rC   rD   rE   rF   rŸ   rÔ   rÕ   rÖ   s	            rJ   Útest_parallel_regressionrÜ   ï  sà   € ä
˜QÓ
€Cä'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô  Ô 5Ó 7ÀÐPQÔR×VÑVØ�ó€Hð ×Ñ˜qÐÔ!Ø	×	Ñ	˜&Ó	!€BØ×Ñ˜qÐÔ!Ø	×	Ñ	˜&Ó	!€BÜ˜b "Ô%äÔ 5Ó 7ÀÐPQÔR×VÑVØ�ó€Hð 
×	Ñ	˜&Ó	!€BÜ˜b "Õ%rL   c                  ó¼   — t         j                  t         j                  }} d||dk(  <   dddœ}t        t	        t        «       «      |d¬«      j                  | |«       y )Nr-   r7   )r-   r7   )r:   Úestimator__CÚroc_auc)Úscoring)r<   r=   r>   r   r   r   r@   )r^   r_   Ú
parameterss      rJ   Útest_gridsearchrâ   	  sP   € ô �9‰9”d—k‘k€q€AØ€A€aˆ1�f�Ið #)¸&ÑA€JäÔ"¤3£5Ó)¨:¸yÔI×MÑMÈaÐQRÕSrL   c                  óÎ  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        d dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        «       dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        «       dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        j                  t        j                  | ¬«      \  }}}}t        d dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        «       dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        «       dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚y )Nr   r)   rÏ   rÐ   )r#   r   r<   r=   r>   r   r@   Ú
isinstanceÚ
estimator_r!   r   r‚   r   r"   r    r°   s         rJ   Útest_estimatorræ     sŸ  € ä
˜QÓ
€Cô (8Ü�	‰	”4—;‘;¨Sô(Ñ$€GˆV�W˜fô ! ¨a¸aÔ@×DÑDÀWÈgÓV€Hä�h×)Ñ)Ô+AÔBÐBÐBä ÜÓ ¨¸ôç	�cˆ'�7Óð ô �h×)Ñ)Ô+AÔBÐBÐBä ¤£°aÀaÔH×LÑLØ�ó€Hô �h×)Ñ)¬:Ô6Ð6Ð6ô (8Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô   ¨Q¸QÔ?×CÑCÀGÈWÓU€Hä�h×)Ñ)Ô+@ÔAÐAÐAäÔ 5Ó 7ÀÐPQÔR×VÑVØ�ó€Hô �h×)Ñ)Ô+@ÔAÐAÐAä¤£¨a¸aÔ@×DÑDÀWÈgÓV€HÜ�h×)Ñ)¬3Ô/Ð/Ñ/rL   c                  ó  — t        t        t        d¬«      t        «       «      d¬«      } | j	                  t
        j                  t
        j                  «       t        | d   j                  d   d   j                  t        «      sJ ‚y )Nr-   )Úkr7   )r1   r   éÿÿÿÿ)r   r   r   r!   r@   r<   r=   r>   rä   Ústepsr*   Úint)r9   s    rJ   Útest_bagging_with_pipelinerì   A  sd   € Ü!Ü”k AÔ&Ô(>Ó(@ÓAÐPQô€Ið ‡M�M”$—)‘)œTŸ[™[Ô)Ü�i ‘l×(Ñ(¨Ñ,¨QÑ/×<Ñ<¼cÔBÐBÑBrL   c                   ó   — e Zd Zd„ Zd„ Zy)ÚDummyZeroEstimatorc                 ó:   — t        j                  |«      | _        | S rW   )r–   r¤   Úclasses_r”   s      rJ   r@   zDummyZeroEstimator.fitJ  s   € ÜŸ	™	 !›ˆŒØˆrL   c                 ól   — | j                   t        j                  |j                  d   t        ¬«         S )Nr   )Údtype)rð   r–   Úzerosr�   rë   r˜   s     rJ   rA   zDummyZeroEstimator.predictN  s$   € Ø�}‰}œRŸX™X a§g¡g¨a¡j¼Ô<Ñ=Ð=rL   Nr™   r;   rL   rJ   rî   rî   I  s   „ òó>rL   rî   c            
      óê  — t        t        «       «      } t        d«      }| j                  t        j
                  t        j                  «      j                  t        j
                  «       t        j                  t        «      5  | j                  t        j
                  t        j                  |j                  dt        j
                  j                  d   ¬«      ¬«       d d d «       y # 1 sw Y   y xY w)Nr   é
   )Úsize)Úsample_weight)r   rî   r#   r@   r<   r=   r>   rA   r¼   ÚraisesÚ
ValueErrorÚrandintr�   )r9   rB   s     rJ   Ú1test_bagging_sample_weight_unsupported_but_passedrû   R  sœ   € Ü!Ô"4Ó"6Ó7€IÜ
˜QÓ
€Cà‡M�M”$—)‘)œTŸ[™[Ó)×1Ñ1´$·)±)Ô<Ü	�‰”zÓ	"ñ 
Ø�‰Ü�I‰IÜ�K‰KØŸ+™+ b´·	±	·±ÀÑ0B˜+ÓDð 	ô 	
÷
÷ 
ñ 
ús   ÂAC)Ã)C2c                 ó¦  — t        dd¬«      \  }}d }dD ]G  }|€t        || d¬«      }n|j                  |¬«       |j                  ||«       t	        |«      |k(  rŒGJ ‚ t        d| d	¬«      }|j                  ||«       t        |D �cg c]  }|j                  ‘Œ c}«      t        |D �cg c]  }|j                  ‘Œ c}«      k(  sJ ‚y c c}w c c}w )
Nr4   r-   ©Ú	n_samplesr*   )r¬   rõ   T)r:   r*   Ú
warm_start©r:   rõ   F)r   r   rÓ   r@   r�   rž   r*   )r*   r^   r_   Úclf_wsr:   Ú	clf_no_wsÚtrees          rJ   Útest_warm_startr  _  sÞ   € ô  b°qÔ9�D€A€qà€FØò +ˆØˆ>Ü&Ø)¸ÐQUô‰Fð ×Ñ¨<ÐÔ8Ø�
‰
�1�aÔÜ�6‹{˜lÓ*Ð*Ð*ð+ô "Ø l¸uô€Ið ‡M�M�!�QÔä¨fÖ5 d�×!Ó!Ò5Ó6¼#Ø'0Ö1˜tˆ×	Ó	Ò1ó;ò ð ñ ùÒ5ùÚ1s   ÂC	Â*C
c                  ó  — t        dd¬«      \  } }t        dd¬«      }|j                  | |«       |j                  d¬«       t	        j
                  t        «      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)	Nr4   r-   rý   r¬   T)r:   rÿ   r.   r   )r   r   r@   rÓ   r¼   rø   rù   ©r^   r_   r¿   s      rJ   Ú$test_warm_start_smaller_n_estimatorsr  y  sg   € ä b°qÔ9�D€A€qÜ
¨°tÔ
<€CØ‡G�GˆAˆq„MØ‡N�N €NÔ"Ü	�‰”zÓ	"ñ Ø�‰��1Œ÷÷ ñ ús   ÁA7Á7B c                  ót  — t        dd¬«      \  } }t        | |d¬«      \  }}}}t        ddd¬	«      }|j                  ||«       |j	                  |«      }|d
z  }d}t        j                  t        |¬«      5  |j                  ||«       d d d «       t        ||j	                  |«      «       y # 1 sw Y   Œ%xY w)Nr4   r-   rý   é+   r)   r¬   TéS   ©r:   rÿ   r*   r,   z;Warm-start fitting without increasing n_estimators does notr¸   )	r   r   r   r@   rA   r¼   r½   r¾   r%   )	r^   r_   rC   rD   rE   rF   r¿   Úy_predrÁ   s	            rJ   Ú"test_warm_start_equal_n_estimatorsr  ƒ  s¥   € ä b°qÔ9�D€A€qÜ'7¸¸1È2Ô'NÑ$€GˆV�W˜fä
¨°tÈ"Ô
M€CØ‡G�GˆG�WÔà�[‰[˜Ó €Fàˆs�N€GàL€HÜ	�‰”k¨Ô	2ñ "Ø�‰�˜Ô!÷"ä�v˜sŸ{™{¨6Ó2Õ3÷"ð "ús   Á7B.Â.B7c                  ón  — t        dd¬«      \  } }t        | |d¬«      \  }}}}t        ddd¬	«      }|j                  ||«       |j	                  d
¬«       |j                  ||«       |j                  |«      }t        d
dd¬	«      }|j                  ||«       |j                  |«      }	t        ||	«       y )Nr4   r-   rý   r	  r)   r¬   TiE  r  rõ   r   F)r   r   r   r@   rÓ   rA   r$   )
r^   r_   rC   rD   rE   rF   r  rÔ   r¿   rÕ   s
             rJ   Útest_warm_start_equivalencer  •  s¨   € ô  b°qÔ9�D€A€qÜ'7¸¸1È2Ô'NÑ$€GˆV�W˜fä¨A¸$ÈTÔR€FØ
‡J�Jˆw˜Ô Ø
×Ñ 2ÐÔ&Ø
‡J�Jˆw˜Ô Ø	�‰˜Ó	€Bä
¨¸ÈDÔ
Q€CØ‡G�GˆG�WÔØ	�‰�VÓ	€Bä˜b "Õ%rL   c                  óÀ   — t        dd¬«      \  } }t        ddd¬«      }t        j                  t        «      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)Nr4   r-   rý   r¬   T)r:   rÿ   rµ   )r   r   r¼   rø   rù   r@   r  s      rJ   Ú$test_warm_start_with_oob_score_failsr  ¨  sN   € ä b°qÔ9�D€A€qÜ
¨°tÀtÔ
L€CÜ	�‰”zÓ	"ñ Ø�‰��1Œ÷÷ ñ ús   ¸AÁAc                  ó"  — t        dd¬«      \  } }t        dd¬«      }|j                  | |«       |j                  ddd¬	«       |j                  | |«       t	        j
                  t        «      5  t        |d
«       d d d «       y # 1 sw Y   y xY w)Nr³   r-   rý   r¬   T)r:   rµ   Frõ   )rÿ   rµ   r:   r»   )r   r   r@   rÓ   r¼   rø   ÚAttributeErrorrp   r  s      rJ   Ú$test_oob_score_removed_on_warm_startr  °  su   € Ü c¸Ô:�D€A€qä
¨°dÔ
;€CØ‡G�GˆAˆq„Mà‡N�N˜d¨eÀ"€NÔEØ‡G�GˆAˆq„Mä	�‰”~Ó	&ñ #Ü��\Ô"÷#÷ #ñ #ús   Á/BÂBc                  óÊ   — t        dd¬«      \  } }t        t        «       dddd¬«      }|j                  | |«      j                  |j                  | |«      j                  k(  sJ ‚y )NéÈ   r-   rý   r+   T)r0   r1   rµ   r*   )r   r   r   r@   r»   ©r^   r_   Úbaggings      rJ   Útest_oob_score_consistencyr  ½  sb   € ô  c¸Ô:�D€A€qÜÜÓØØØØô€Gð �;‰;�q˜!Ó×'Ñ'¨7¯;©;°q¸!Ó+<×+GÑ+GÒGÐGÑGrL   c                  ó  — t        dd¬«      \  } }t        t        «       dddd¬«      }|j                  | |«       |j                  }|j
                  }|j                  }t        |«      t        |«      k(  sJ ‚t        |d   «      t        | «      dz  k(  sJ ‚|d   j                  j                  d	k(  sJ ‚d}||   }||   }||   }	| |   d d …|f   }
||   }|	j                  }|	j                  |
|«       |	j                  }t        ||«       y )
Nr  r-   rý   r+   F)r0   r1   r*   r2   r   r7   r|   )r   r   r   r@   Úestimators_samples_r£   rq   r�   rò   ÚkindÚcoef_r$   )r^   r_   r  Úestimators_samplesÚestimators_featuresrH   Úestimator_indexÚestimator_samplesÚestimator_featuresr9   rC   rE   Ú
orig_coefsÚ	new_coefss                 rJ   Útest_estimators_samplesr%  Ë  s1  € ô  c¸Ô:�D€A€qÜÜÓØØØØô€Gð ‡K�K��1Ôð !×4Ñ4ÐØ!×6Ñ6ÐØ×$Ñ$€Jô Ð!Ó"¤c¨*£oÒ5Ð5Ð5ÜÐ! !Ñ$Ó%¬¨Q«°1©Ò4Ð4Ð4Ø˜aÑ ×&Ñ&×+Ñ+¨sÒ2Ð2Ð2ð €OØ*¨?Ñ;ÐØ,¨_Ñ=ÐØ˜?Ñ+€IàÐ"Ñ#¢QÐ(:Ð%:Ñ;€GØÐ!Ñ"€Gà—‘€JØ‡M�M�'˜7Ô#Ø—‘€Iä˜j¨)Õ4rL   c                  ó  — t        «       } | j                  | j                  }}t        t	        d¬«      t        «       «      }t        |dd¬«      }|j                  ||«       |j                  d   j                  d   d   j                  j                  «       }|j                  d   }|j                  d   }|j                  d   }||   d d …|f   }	||   }
|j                  |	|
«       t        |j                  d   d   j                  |«       y )Nr7   )Ún_componentsr+   r   )r9   r0   r*   ré   r-   )r   r=   r>   r   r   r   r   r@   rq   rê   r  Úcopyr  r£   r%   )r<   r^   r_   Úbase_pipeliner¿   Úpipeline_estimator_coefr9   Úestimator_sampleÚestimator_featurerC   rE   s              rJ   Ú%test_estimators_samples_deterministicr-  ó  sþ   € ô ‹;€DØ�9‰9�d—k‘k€q€Aä!Ü¨AÔ.Ô0BÓ0Dó€Mô  mÀÐSTÔ
U€CØ‡G�GˆAˆq„MØ!Ÿo™o¨aÑ0×6Ñ6°rÑ:¸1Ñ=×CÑC×HÑHÓJÐà—‘ Ñ"€IØ×.Ñ.¨qÑ1ÐØ×0Ñ0°Ñ3ÐàÐ!Ñ"¢AÐ'8Ð$8Ñ9€GØÐ Ñ!€Gà‡M�M�'˜7Ô#Ü�y—‘ rÑ*¨1Ñ-×3Ñ3Ð5LÕMrL   c                  ó¢   — d} t        d| z  d¬«      \  }}t        t        «       | dd¬«      }|j                  ||«       |j                  | k(  sJ ‚y )Nr³   r7   r-   rý   r+   )r0   r1   r*   )r   r   r   r@   Ú_max_samples)r0   r^   r_   r  s       rJ   Útest_max_samples_consistencyr0    sZ   € ð €KÜ a¨+¡oÀAÔF�D€A€qÜÜÓØØØô	€Gð ‡K�K��1ÔØ×Ñ ;Ò.Ð.Ñ.rL   c                  óH  — d} dgdgdggdz  }g d¢dz  }g d¢dz  }g d¢dz  }t        d| ¬	«      j                  ||«      j                  }t        d| ¬	«      j                  ||«      j                  }t        d| ¬	«      j                  ||«      j                  }||g||gk(  sJ ‚y )
Nr¬   ré   r   r-   )ÚAÚBÚC)ré   r   r-   )r   r-   r7   T)rµ   r*   )r   r@   r»   )r*   r^   ÚY1ÚY2ÚY3Úx1Úx2Úx3s           rJ   Ú!test_set_oob_score_label_encodingr;    sµ   € ð €LØ
ˆ�ˆs�Q�CÐ˜1Ñ€AÚ	˜1Ñ	€BÚ	�a‰€BÚ	�Q‰€Bä D°|ÔDß	‰ˆQ�‹ß	‰ð ô 	 D°|ÔDß	‰ˆQ�‹ß	‰ð ô 	 D°|ÔDß	‰ˆQ�‹ß	‰ð ð
 �ˆ8˜˜B�xÒÐÑrL   c                 ó^   — | j                  dd¬«      } d| t        j                  | «       <   | S )NÚfloatT)r(  r   )Úastyper–   Úisfinite)r^   s    rJ   Úreplacer@  7  s-   € Ø	�‰�˜tˆÓ$€AØ€A„r‡{�{�1ƒ~€oÑØ€HrL   c            	      óˆ  — t        j                  g d¢g d¢dt         j                  dgdt         j                  dgdt         j                   dgg«      } t        j                  g d¢«      t        j                  g d¢g d¢g d¢g d¢g d¢g«      g}|D �]  }t	        «       }t        t        t        «      |«      }|j                  | |«      j                  | «       t        |«      }|j                  | |«      j                  | «      }|j                  |j                  k(  sJ ‚t	        «       }t        |«      }t        j                  t        «      5  |j                  | |«       d d d «       t        |«      }t        j                  t        «      5  |j                  | |«       d d d «       �Œ y # 1 sw Y   ŒLxY w# 1 sw Y   �Œ1xY w)N©r-   rÏ   r¬   ©r7   Né   r7   rD  )r7   rÏ   rÏ   rÏ   rÏ   )r7   r-   é	   )rÏ   rD  é   )r–   ÚarrayÚnanÚinfr"   r   r   r@  r@   rA   r   r�   r¼   rø   rù   )r^   Úy_valuesr_   Ú	regressorÚpipelineÚbagging_regressorÚy_hats          rJ   Ú*test_bagging_regressor_with_missing_inputsrO  =  s  € ä
�‰âÚØ”—‘˜ˆNØ”—‘˜ˆNØ”—‘�˜ˆOð	
ó	€Aô 	�‰’Ó!Ü
�‰âÚÚÚÚðó	
ð€Hð ó (ˆÜ)Ó+ˆ	Ü Ô!4´WÓ!=¸yÓIˆØ�‰�Q˜Ó×"Ñ" 1Ô%Ü,¨XÓ6ÐØ!×%Ñ% a¨Ó+×3Ñ3°AÓ6ˆØ�w‰w˜%Ÿ+™+Ò%Ð%Ð%ô *Ó+ˆ	Ü  Ó+ˆÜ�]‰]œ:Ó&ñ 	Ø�L‰L˜˜AÔ÷	ä,¨XÓ6ÐÜ�]‰]œ:Ó&ñ 	(Ø×!Ñ! ! QÔ'÷	(ñ 	(ñ(÷	ð 	ú÷	(ñ 	(ús   ÅF+ÆF7Æ+F4	Æ7G	c            	      ót  — t        j                  g d¢g d¢dt         j                  dgdt         j                  dgdt         j                   dgg«      } t        j                  g d¢«      }t	        «       }t        t        t        «      |«      }|j                  | |«      j                  | «       t        |«      }|j                  | |«       |j                  | «      }|j                  |j                  k(  sJ ‚|j                  | «       |j                  | «       t	        «       }t        |«      }t        j                  t         «      5  |j                  | |«       d d d «       t        |«      }t        j                  t         «      5  |j                  | |«       d d d «       y # 1 sw Y   ŒIxY w# 1 sw Y   y xY w)NrB  rC  r7   rD  )rÏ   rD  rD  rD  rD  )r–   rG  rH  rI  r!   r   r   r@  r@   rA   r   r�   rP   rO   r¼   rø   rù   )r^   r_   Ú
classifierrL  Úbagging_classifierrN  s         rJ   Ú+test_bagging_classifier_with_missing_inputsrS  f  sh  € ä
�‰âÚØ”—‘˜ˆNØ”—‘˜ˆNØ”—‘�˜ˆOð	
ó	€Aô 	�‰’Ó!€AÜ'Ó)€JÜÔ0´Ó9¸:ÓF€HØ‡L�L��AÓ×Ñ˜qÔ!Ü*¨8Ó4ÐØ×Ñ˜1˜aÔ Ø×&Ñ& qÓ)€EØ�7‰7�e—k‘kÒ!Ð!Ð!Ø×(Ñ(¨Ô+Ø×$Ñ$ QÔ'ô (Ó)€JÜ˜ZÓ(€HÜ	�‰”zÓ	"ñ Ø�‰�Q˜Ô÷ä*¨8Ó4ÐÜ	�‰”zÓ	"ñ %Ø×Ñ˜q !Ô$÷%ð %÷ð ú÷%ð %ús   ÅF"ÆF.Æ"F+Æ.F7c                  ó¸   — t        j                  ddgddgg«      } t        j                  ddg«      }t        t        «       dd¬«      }|j	                  | |«       y )Nr-   r7   rÏ   r.   r   g333333Ó?)r1   r*   )r–   rG  r   r   r@   r  s      rJ   Útest_bagging_small_max_featuresrU  †  sR   € ô 	�‰�1�a�&˜1˜a˜&Ð!Ó"€AÜ
�‰�!�Q�Ó€AäÔ 2Ó 4À3ÐUVÔW€GØ‡K�K��1ÕrL   c                  óX  — t         j                  j                  d«      } | j                  dd«      }t        j                  d«      } G d„ dt
        «      }t         |«       dd¬«      }|j                  ||«       t        |j                  d   j                  |j                  d   «       y )Nr   é   r.   c                   ó   — e Zd ZdZd„ Zy)ú8test_bagging_get_estimators_indices.<locals>.MyEstimatorz7An estimator which stores y indices information at fit.c                 ó   — || _         y rW   )Ú_sample_indicesr”   s      rJ   r@   z<test_bagging_get_estimators_indices.<locals>.MyEstimator.fitœ  s
   € Ø#$ˆDÕ rL   N)rc   rd   re   rf   r@   r;   rL   rJ   ÚMyEstimatorrY  ™  s
   „ ÙEó	%rL   r\  r-   )r9   r:   r*   )r–   ÚrandomÚRandomStateÚrandnÚaranger"   r   r@   r%   rq   r[  r  )rB   r^   r_   r\  r¿   s        rJ   Ú#test_bagging_get_estimators_indicesra  �  s‡   € ô
 �)‰)×
Ñ
 Ó
"€CØ�	‰	�"�aÓ€AÜ
�	‰	�"‹€Aô%Ô+ô %ô ¡[£]ÀÐQRÔ
S€CØ‡G�GˆAˆq„Mä�s—‘ qÑ)×9Ñ9¸3×;RÑ;RÐSTÑ;UÕVrL   zbagging, expected_allow_nanr-   r5   c                 óV   — | j                  «       j                  j                  |k(  sJ ‚y)z*Check that bagging inherits allow_nan tag.N)Ú__sklearn_tags__Ú
input_tagsÚ	allow_nan)r  Úexpected_allow_nans     rJ   Útest_bagging_allow_nan_tagrg  ¥  s(   € ð ×#Ñ#Ó%×0Ñ0×:Ñ:Ð>PÒPÐPÑPrL   Úmodelr   )r9   r:   c                 ó¶   — t        j                  d¬«      5  | j                  t        j                  t        j
                  «       ddd«       y# 1 sw Y   yxY w)zAMake sure that metadata routing works with non-default estimator.T)Úenable_metadata_routingN)ÚsklearnÚconfig_contextr@   r<   r=   r>   ©rh  s    rJ   Ú"test_bagging_with_metadata_routingrn  ³  s=   € ô 
×	Ñ	¸Ô	=ñ *Ø�	‰	”$—)‘)œTŸ[™[Ô)÷*÷ *ñ *ús   —/AÁAc                 ó`   — | j                  t        j                  t        j                  «       y)z^Make sure that we still can use an estimator that does not implement the
    metadata routing.N)r@   r<   r=   r>   rm  s    rJ   Ú-test_bagging_without_support_metadata_routingrp  Ä  s   € ð 
‡I�IŒd�i‰iœŸ™Õ%rL   )é*   )lrf   Ú	itertoolsr   r   r‘   Únumpyr–   r¼   rk  Úsklearn.baser   Úsklearn.datasetsr   r   r   Úsklearn.dummyr	   r
   Úsklearn.ensembler   r   r   r   r   r   r   r   Úsklearn.feature_selectionr   Úsklearn.linear_modelr   r   Úsklearn.model_selectionr   r   r   Úsklearn.neighborsr   r   Úsklearn.pipeliner   Úsklearn.preprocessingr   r   Úsklearn.random_projectionr   Úsklearn.svmr   r    Úsklearn.treer!   r"   Úsklearn.utilsr#   Úsklearn.utils._testingr$   r%   Úsklearn.utils.fixesr&   r'   rB   r<   Úpermutationr>   rö   Úpermr=   r‚   rK   ÚmarkÚparametrizer   rƒ   rŠ   rŒ   r¡   r¦   r±   rÂ   rÅ   rÉ   rÍ   rÚ   rÜ   râ   ræ   rì   rî   rû   r  r  r  r  r  r  r  r%  r-  r0  r;  r@  rO  rS  rU  ra  rg  rn  rp  r;   rL   rJ   ú<module>rˆ     sq  ðñ÷ %ã Û Û ã Ý &ß GÑ Gß 9÷	÷ 	ó 	õ 2ß ?ß QÑ Qß GÝ *ß <Ý <ß  ß FÝ ,ß Pß >á˜Ó€ñ ƒ{€Ø
‡��t—{‘{×'Ñ'Ó(€Ø�I‰I�d‰O€„	Ø�k‰k˜$Ñ€„ñ ‹?€Ø
‡��x—‘×+Ñ+Ó,€Ø—‘˜dÑ#€„Ø—/‘/ $Ñ'€„ò0ðB ‡�×ÑØ&ÙØ˜Ñ'ð  #Ø !Ø!Ø&*ñ	ð  #Ø !Ø!Ø&*ñ	ð ¨UÈ$ÑOØ¨dÈ%ÑPð	
ò  	Oó%óñ.&2ó/ð.&2òRð8 ‡�×ÑÐ+¨^¸nÑ-LÓMñ5Aó Nð5Aôp#˜ô #ò'9òTEò8 
òF"&òJ!#òHJò(Oò&6òR&ò4	Tò)0òXCô>˜ô >ò

óò4ò4ò$&ò&ò
#òHò%5òPNò6/ò ò4ò&(òR%ò@òWð* ‡�×ÑØ!á	Ñ9À1ÔEÓ	FÈÐMÙ	Ñ7ÀÔCÓ	DÀdÐKÙ	Ñ-Ó/Ó	0°%Ð8Ù	™#›%Ó	  %Ð(ð	óñQóðQð
 ‡�×ÑØáÙ,¸!Ô<È1ô	
ñ 	Ù+¸Ô;È!ô	
ð	ó
ñ*ó
ð*ð ‡�×ÑØáÙ(°aÔ8Øô	
ñ 	Ñ#4À!Ô#DÐSTÔUðó	ñ&ó	ñ&rL   