§
    rŠtjí/  ã                   óâ  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZ d dlmZ d dlmZ d d	lmZmZmZmZ ej                             d
dgez   ez   ez   ez   ¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zd„ Zd„ Z d„ Z!ej                             dej"        ej#        f¦  «        d„ ¦   «         Z$ej                             d
eez   ez   ez   ¦  «        d„ ¦   «         Z%ej                             d
eez   ez   ez   ¦  «        d„ ¦   «         Z&ej                             d
eez   ez   ¦  «        d„ ¦   «         Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,dS )é    N)Úassert_allclose)Úissparse)Údatasets)Úpairwise_distances)Úcalinski_harabasz_scoreÚdavies_bouldin_scoreÚsilhouette_samplesÚsilhouette_score)Ú_silhouette_reduce)Úassert_array_equal)ÚCSC_CONTAINERSÚCSR_CONTAINERSÚDOK_CONTAINERSÚLIL_CONTAINERSÚsparse_containerÚsample_sizeÚhalfc                 ór  — t          j        ¦   «         }|j        |j        }}| � | |¦  «        }|dk    rt	          |j        d         dz  ¦  «        n|}t          |d¬¦  «        }t          ||d|d¬¦  «        }t          ||d|d¬¦  «        }|dk    sJ ‚|dk    sJ ‚|t          j	        |¦  «        k    sJ ‚d S )Nr   r   é   Ú	euclidean©ÚmetricÚprecomputed)r   r   Úrandom_state)
r   Ú	load_irisÚdataÚtargetÚintÚshaper   r
   ÚpytestÚapprox)r   r   ÚdatasetÚXÚyÚDÚscore_precomputedÚscore_euclideans           úm/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/metrics/cluster/tests/test_unsupervised.pyÚtest_silhouetter)      só   € õ Ô Ñ"Ô"€GØŒ<˜œ€q€AØÐ#ØÐ˜QÑÔˆØ)4¸Ò)>Ð)>•#�a”g˜a”j 1‘nÑ%Ô%Ð%ÀK€Kå˜1 [Ð1Ñ1Ô1€Aå(Ø	ˆ1�]°È!ðñ ô Ðõ 'Ø	ˆ1�[¨kÈðñ ô €Oð ˜qÒ Ð Ð Ð Ø˜QÒÐÐÐØ¥¤¨oÑ >Ô >Ò>Ð>Ð>Ð>Ð>Ð>ó    c                  óÞ   — dgdgdgdgdgdgg} t          j        g d¢¦  «        }t          | |¦  «        }t          j        |¦  «        rJ ‚t	          | |¦  «        }t          |g d¢¦  «         d S )Nç        ç      ð?g       @ç      @)r   é   r/   r/   r   r   )r   ç      à?r0   r   r/   r/   )ÚnpÚarrayr
   Úisnanr	   r   )r#   ÚlabelsÚ
silhouetteÚsss       r(   Útest_cluster_size_1r7   4   s‹   € ð ˆ��˜�u˜s˜e c U¨S¨EÐ2€AÝŒXÐ(Ð(Ð(Ñ)Ô)€Fõ " ! VÑ,Ô,€JÝŒx˜
Ñ#Ô#Ð#Ð#Ð#Ý	˜A˜vÑ	&Ô	&€BÝ�rÐ1Ð1Ð1Ñ2Ô2Ð2Ð2Ð2r*   c                  óú  ‡— g d¢} t          j        d¦  «        }| |t          j        dd¦  «        <   ||j        z  }g d¢}g d¢}ddd	d
dddddddddœ}d}g d¢}dddddddddddddœ}d}|||f|||ffD ]†\  }	Š}
ˆfd „|D ¦   «         Št	          j        ‰t          |t          j        |	¦  «        d!¬"¦  «        d#¬$¦  «         t	          j        |
t          |t          j        |	¦  «        d!¬"¦  «        d#¬$¦  «         Œ‡d S )%N)BçR¸…ëQ@ç      @ç      @gR¸…ëQ@r:   g¤p=
×£@çR¸…ëQ@gR¸…ëQ@g×£p=
W @çR¸…ëQ@g\�Âõ(\@ç      @ç®Gáz®@ç®Gáz®@ç®Gáz®@ç®Gáz®@ç      @r9   ç      @g®Gáz®@rB   g\�Âõ(\@g      @rB   rB   rC   g\�Âõ(\@ç®Gáz®@g      @rA   g      @gR¸…ëQ@ç      @g      @gR¸…ëQ@g      @çR¸…ëQ@r?   g      @g\�Âõ(\@rD   rE   rE   r@   rE   g      @gR¸…ëQ@rF   g      @r>   g®Gáz®@rG   r=   r?   g\�Âõ(\@g      @r.   rG   r?   rC   r9   r<   rE   g®Gáz®@r;   r@   )é   rH   rH   éÿÿÿÿ)ÚBELÚBRAÚCHIÚCUBÚEGYÚFRAÚINDÚISRÚUSAÚUSSÚYUGÚZAI)r/   r/   r   r   r/   r/   r   r/   r/   r   r   r/   g…ëQ¸…Û?gö(\�ÂõØ?gffffffÖ?g333333Ó?g)\�Âõ(Ì?çš™™™™™É?gR¸…ëQÈ?gš™™™™™Ù?gÃõ(\�ÂÕ?g…ëQ¸Õ?g¤p=
×£Ð?g{®Gáz¤¿)rR   rJ   rO   rQ   rK   rN   rU   rM   rS   rL   rT   rP   gìQ¸…ëÑ?)r/   r   é   rW   r/   r/   r   r/   r/   rW   rW   r   g®GázÞ?g)\�Âõ(Ü?gáz®GáÚ?g®Gáz®×?g{®Gáz”?g      Ð?gÃõ(\�ÂÅ?g¸…ëQ¸Þ?g×£p=
×Ó?)rR   rO   rJ   rQ   rN   rU   rK   rP   rM   rS   rT   rL   c                 ó    •— g | ]
}‰|         ‘ŒS © rY   )Ú.0ÚnameÚexpecteds     €r(   ú
<listcomp>z1test_silhouette_paper_example.<locals>.<listcomp>Í   s   ø€ Ð5Ð5Ð5 t�H˜T”NÐ5Ð5Ð5r*   r   r   g{®Gáz„?)Úabs)	r1   ÚzerosÚtril_indicesÚTr    r!   r	   r2   r
   )Úlowerr%   ÚnamesÚlabels1Ú	expected1Úscore1Úlabels2Ú	expected2Úscore2r4   Úscorer\   s              @r(   Útest_silhouette_paper_examplerk   K   s³  ø€ ðCð Cð C€EõH 	Œ�ÑÔ€AØ!&€A…b„o�b˜"ÑÔÑØˆŒ�H€Aðð ð €Eð  3Ð2Ð2€GàØØØØØØØØØØØðð €Ið €Fð 3Ð2Ð2€GàØØØØØØØØØØØðð €Ið €Fð 
�)˜VÐ$Ø	�)˜VÐ$ð$ð 
ð 
Ñˆ�˜%ð 6Ð5Ð5Ð5¨uÐ5Ñ5Ô5ˆåŒØÝ˜q¥"¤(¨6Ñ"2Ô"2¸=ÐIÑIÔIØð	
ñ 	
ô 	
ð 	
õ
 	ŒØÕ# A¥r¤x°Ñ'7Ô'7ÀÐNÑNÔNÐTXð	
ñ 	
ô 	
ð 	
ð 	
ð
ð 
r*   c                  óT  — t          j        ¦   «         } | j        }t          j        |j        d         ¦  «        }dt          t          j        |¦  «        ¦  «        z  }t          j	        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |j        d         ¦  «        }dt          t          j        |¦  «        ¦  «        z  }t          j	        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zJNumber of labels is %d\. Valid values are 2 to n_samples - 1 \(inclusive\)©Úmatch)r   r   r   r1   Úaranger   ÚlenÚuniquer    ÚraisesÚ
ValueErrorr
   r_   )r"   r#   r$   Úerr_msgs       r(   Útest_correct_labelsizeru   Ù   s�  € åÔ Ñ"Ô"€GØŒ€Aõ 	Œ	�!”'˜!”*ÑÔ€Að	*Ý,/µ´	¸!±´Ñ,=Ô,=ñ	>ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ý˜˜AÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 	Œ�”˜”ÑÔ€Að	*Ý,/µ´	¸!±´Ñ,=Ô,=ñ	>ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ý˜˜AÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   Á9BÂBÂBÃ?DÄD!Ä$D!c                  ó   — t          j        ¦   «         } | j        }| j        }t	          ||dz  dz   ¦  «        t	          ||¦  «        k    sJ ‚t          t          ||dz  dz   ¦  «        t          ||¦  «        ¦  «         d S )Nr   é
   )r   r   r   r   r
   r   r	   )r"   r#   r4   s      r(   Útest_non_encoded_labelsrx   ñ   sŠ   € ÝÔ Ñ"Ô"€GØŒ€AØŒ^€FÝ˜A˜v¨™z¨B™Ñ/Ô/Õ3CÀAÀvÑ3NÔ3NÒNÐNÐNÐNÝÝ˜1˜f q™j¨2™oÑ.Ô.Õ0BÀ1ÀfÑ0MÔ0Mñô ð ð ð r*   c                  óÄ   — t          j        ¦   «         } | j        }| j        }t	          t          |¦  «        t          |¦  «        ¦  «        t	          ||¦  «        k    sJ ‚d S )N)r   r   r   r   r
   Úlist)r"   r#   r$   s      r(   Útest_non_numpy_labelsr{   û   sV   € ÝÔ Ñ"Ô"€GØŒ€AØŒ€AÝ�D ™GœG¥T¨!¡W¤WÑ-Ô-Õ1AÀ!ÀQÑ1GÔ1GÒGÐGÐGÐGÐGÐGr*   Údtypec                 ó¼  — t          t          j        g d¢g| ¬¦  «        j        ¦  «        }g d¢}t          j        |j        ¦  «        j        dz  |d         d<   t          ||d¬¦  «         t          j        |j        ¦  «        j        dz  |d         d<   t          j	        t          d	¬
¦  «        5  t          ||d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)rV   çš™™™™™¹?g¸…ëQ¸¾?gq=
×£põ?gÃõ(\�Âñ?çš™™™™™ù?©r|   )r   r   r   r/   r/   r/   rw   r   r   r   iè  úcontains non-zerorm   )r   r1   r2   ra   Úfinfor|   Úepsr	   r    rr   rs   )r|   Údistsr4   s      r(   Útest_silhouette_nonzero_diagr…     s=  € õ Ý
ŒÐ3Ð3Ð3Ð4¸EÐBÑBÔBÔDñô €Eð  ÐÐ€Fõ ”(˜5œ;Ñ'Ô'Ô+¨bÑ0€Eˆ!„HˆQ�KÝ�u˜f¨]Ð;Ñ;Ô;Ð;õ ”(˜5œ;Ñ'Ô'Ô+¨dÑ2€Eˆ!„HˆQ�KÝ	Œ•zÐ)<Ð	=Ñ	=Ô	=ð @ð @Ý˜5 &°Ð?Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @s   Â1CÃCÃCc                 ó  — t          j        g d¢gt           j        ¬¦  «        j        }g d¢}t	          |¦  «        } | |¦  «        }t          |¦  «        sJ ‚t          ||d¬¦  «        }t          ||d¬¦  «        }t          ||¦  «         dS )úBCheck that silhouette_samples works for sparse matrices correctly.©rV   r~   r~   rV   r~   r   rV   r~   r€   ©r   r   r   r   r/   r/   r/   r/   r   r   N©r1   r2   Úfloat32ra   r   r   r	   r   ©r   r#   r$   Úpdist_denseÚpdist_sparseÚoutput_with_sparse_inputÚoutput_with_dense_inputs          r(   Ú*test_silhouette_samples_precomputed_sparser‘     s¥   € õ 	ŒÐ:Ð:Ð:Ð;Å2Ä:ÐNÑNÔNÔP€AØ Ð Ð €AÝ$ QÑ'Ô'€KØ#Ð# KÑ0Ô0€LÝ�LÑ!Ô!Ð!Ð!Ð!Ý1°,ÀÈ-ÐXÑXÔXÐÝ0°¸aÈÐVÑVÔVÐÝÐ,Ð.EÑFÔFÐFÐFÐFr*   c                 ó  — t          j        g d¢gt           j        ¬¦  «        j        }g d¢}t	          |¦  «        } | |¦  «        }t          |¦  «        sJ ‚t          ||¦  «        }t          ||¦  «        }t          ||¦  «         dS )r‡   rˆ   r€   r‰   NrŠ   rŒ   s          r(   Ú(test_silhouette_samples_euclidean_sparser“   '  s›   € õ 	ŒÐ:Ð:Ð:Ð;Å2Ä:ÐNÑNÔNÔP€AØ Ð Ð €AÝ$ QÑ'Ô'€KØ#Ð# KÑ0Ô0€LÝ�LÑ!Ô!Ð!Ð!Ð!Ý1°,ÀÑBÔBÐÝ0°¸aÑ@Ô@ÐÝÐ,Ð.EÑFÔFÐFÐFÐFr*   c                 óH  — t          j        g d¢gt           j        ¬¦  «        j        }t	          |¦  «        } | |¦  «        }g d¢}t          j        |¦  «        }t          j        t          d¬¦  «        5  t          |d||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z?Check for non-CSR input to private method `_silhouette_reduce`.rˆ   r€   r‰   z=Expected CSR matrix. Please pass sparse matrix in CSR format.rm   r   )Ústartr4   Úlabel_freqsN)
r1   r2   r‹   ra   r   Úbincountr    rr   Ú	TypeErrorr   )r   r#   r�   rŽ   r$   r–   s         r(   Útest_silhouette_reducer™   7  s
  € õ
 	ŒÐ:Ð:Ð:Ð;Å2Ä:ÐNÑNÔNÔP€AÝ$ QÑ'Ô'€KØ#Ð# KÑ0Ô0€LØ Ð Ð €AÝ”+˜a‘.”.€KÝ	ŒÝØMð
ñ 
ô 
ð Uð Uõ 	˜<¨q¸ÈÐTÑTÔTÐTð	Uð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð Uð Us   Á6BÂBÂBc                 ó  — t           j                             d¬¦  «        }t          j        t
          d¬¦  «        5   | |                     dd¦  «        t          j        d¦  «        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z+Assert message when there is only one labelr   ©ÚseedúNumber of labels isrm   rw   r   N)r1   ÚrandomÚRandomStater    rr   rs   Úrandr_   ©ÚfuncÚrngs     r(   Úassert_raises_on_only_one_labelr¤   H  sº   € å
Œ)×
Ò
 QÐ
Ñ
'Ô
'€CÝ	Œ•zÐ)>Ð	?Ñ	?Ô	?ð ,ð ,ØˆˆS�XŠX�b˜!‰_Œ_�bœh r™lœlÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,ó   ¼3A<Á<B ÂB c                 ó  — t           j                             d¬¦  «        }t          j        t
          d¬¦  «        5   | |                     dd¦  «        t          j        d¦  «        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z7Assert message when all point are in different clustersr   r›   r�   rm   rw   r   N)r1   rž   rŸ   r    rr   rs   r    ro   r¡   s     r(   Ú(assert_raises_on_all_points_same_clusterr§   O  sº   € å
Œ)×
Ò
 QÐ
Ñ
'Ô
'€CÝ	Œ•zÐ)>Ð	?Ñ	?Ô	?ð -ð -ØˆˆS�XŠX�b˜!‰_Œ_�bœi¨™mœmÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -r¥   c                  óê  — t          t          ¦  «         t          t          ¦  «         dt          t          j        d¦  «        dgdz  dgdz  z   ¦  «        k    sJ ‚dt          ddgddggdz  dgdz  dgdz  z   ¦  «        k    sJ ‚ddgddggdz  d	d	gd
d
ggdz  z   dd
gdd	ggdz  z   d	dgd
dggdz  z   } dgdz  dgdz  z   dgdz  z   d	gdz  z   }t          j        t          | |¦  «        d¦  «         d S )Nr-   ©rw   r   r   é   r/   r,   rI   rw   rW   é   r   g      [@)r¤   r   r§   r1   Úonesr    r!   ©r#   r4   s     r(   Útest_calinski_harabasz_scorer®   V  sY  € Ý#Õ$;Ñ<Ô<Ð<å,Õ-DÑEÔEÐEð Õ)­"¬'°'Ñ*:Ô*:¸Q¸CÀ!¹GÀqÀcÈAÁgÑ<MÑNÔNÒNÐNÐNÐNð Õ)¨B°¨8°a¸°VÐ*<¸rÑ*AÀAÀ3ÈÁ8ÈqÈcÐTVÉhÑCVÑWÔWÒWÐWÐWÐWð ˆQˆ�!�Q�Ð˜1ÑØˆqˆ6�A�q�6Ð
˜QÑ
ñ	àˆqˆ6�A�q�6Ð
˜QÑ
ñ	ð ˆqˆ6�A�q�6Ð
˜QÑ
ñ	ð ð ˆS�2‰X˜˜˜b™Ñ  A 3¨¡8Ñ+¨q¨c°B©hÑ6€FÝ
„MÕ)¨!¨VÑ4Ô4Ð6SÑTÔTÐTÐTÐTr*   c                  óv  — t          t          ¦  «         t          t          ¦  «         t          t          j        d¦  «        dgdz  dgdz  z   ¦  «        t          j        d¦  «        k    sJ ‚t          ddgddggdz  dgdz  dgdz  z   ¦  «        t          j        d¦  «        k    sJ ‚ddgddggdz  ddgd	d	ggdz  z   dd	gddggdz  z   ddgd	dggdz  z   } dgdz  dgdz  z   d
gdz  z   dgdz  z   }t          j        t          | |¦  «        d
t          j        d¦  «        z  dz  ¦  «         t          j	        ¦   «         5  t          j
        dt          ¦  «         t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   ddgd
d
gddgddgg} g d¢}t          j        t          | |¦  «        d¦  «         d S )Nr©   r   rª   r/   r,   rI   rw   rW   r«   r   r0   Úerror)r   r   r/   r   g«ªªªªªÚ?)r¤   r   r§   r1   r¬   r    r!   ÚsqrtÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr­   s     r(   Útest_davies_bouldin_scorer¶   l  sg  € Ý#Õ$8Ñ9Ô9Ð9Ý,Õ-AÑBÔBÐBõ  ¥¤¨Ñ 0Ô 0°1°#¸±'¸Q¸CÀ!¹GÑ2CÑDÔDÍÌØñIô Iò ð ð ð õ
  Ø
ˆbˆ�A�q�6Ð˜RÑ !  r¡¨Q¨C°"©HÑ!4ñô å	Œ�sÑ	Ô	òð ð ð ð ˆQˆ�!�Q�Ð˜1ÑØˆqˆ6�A�q�6Ð
˜QÑ
ñ	àˆqˆ6�A�q�6Ð
˜QÑ
ñ	ð ˆqˆ6�A�q�6Ð
˜QÑ
ñ	ð ð ˆS�2‰X˜˜˜b™Ñ  A 3¨¡8Ñ+¨q¨c°B©hÑ6€FÝ
„MÕ& q¨&Ñ1Ô1°1µr´w¸s±|´|Ñ3CÀaÑ3GÑHÔHÐHõ 
Ô	 Ñ	"Ô	"ð (ð (ÝÔ˜g¥~Ñ6Ô6Ð6Ý˜Q Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð
 ˆQˆ�!�Q�˜!˜Q˜ ! Q Ð(€AØˆ\ˆ\€FÝ
„MÕ& q¨&Ñ1Ô1°=ÑAÔAÐAÐAÐAs   Å+E9Å9E=Æ E=c                  ó  — t          g d¢g d¢g d¢gg d¢d¬¦  «        } | t          j        d¦  «        k    sJ ‚t          j        t          d¬	¦  «        5  t          g d
¢g d¢g d¢gg d¢d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zvCheck that silhouette_score works for precomputed metrics that are integers.

    Non-regression test for #22107.
    )r   r/   r   )r/   r   r/   )r   r/   r   )r   r   r/   r   r   gUUUUUUÅ?r�   rm   )r/   r/   r   N)r
   r    r!   rr   rs   )Úresults    r(   Ú)test_silhouette_score_integer_precomputedr¹   �  s  € õ
 Ø	ˆˆ�I�I�I˜y˜y˜yÐ)¨9¨9¨9¸]ðñ ô €Fð •V”] 5Ñ)Ô)Ò)Ð)Ð)Ð)õ 
Œ•zÐ)<Ð	=Ñ	=Ô	=ð 
ð 
ÝØˆYˆY˜	˜	˜	 9 9 9Ð-¨y¨y¨yÀð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ÁA>Á>BÂB)-r²   Únumpyr1   r    Únumpy.testingr   Úscipy.sparser   Úsklearnr   Úsklearn.metricsr   Úsklearn.metrics.clusterr   r   r	   r
   Ú%sklearn.metrics.cluster._unsupervisedr   Úsklearn.utils._testingr   Úsklearn.utils.fixesr   r   r   r   ÚmarkÚparametrizer)   r7   rk   ru   rx   r{   r‹   Úfloat64r…   r‘   r“   r™   r¤   r§   r®   r¶   r¹   rY   r*   r(   ú<module>rÆ      s3  ðØ €€€à Ð Ð Ð Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )Ø !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð ð ð EÐ DÐ DÐ DÐ DÐ DØ 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð „×ÒØØ	€Fˆ^Ñ˜nÑ,¨~Ñ=ÀÑNñô ð „×Ò˜¨¨v¨Ñ7Ô7ð?ð ?ñ 8Ô7ñ	ô ð
?ð*3ð 3ð 3ð.K
ð K
ð K
ð\ð ð ð0ð ð ðHð Hð Hð „×Ò˜ 2¤:¨r¬zÐ":Ñ;Ô;ð@ð @ñ <Ô;ð@ð( „×ÒØØ�^Ñ# nÑ4°~ÑEñô ð	Gð 	Gñ	ô ð	Gð „×ÒØØ�^Ñ# nÑ4°~ÑEñô ð	Gð 	Gñ	ô ð	Gð „×ÒØ˜¨Ñ7¸.ÑHñô ðUð Uñô ðUð,ð ,ð ,ð-ð -ð -ðUð Uð Uð, Bð  Bð  BðF
ð 
ð 
ð 
ð 
r*   