Ë
    üÇ:j�7  ã                   óô  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlm	Z	  edddg«      Z
  ej                  ej                  ej                  ej                  j                  ej                  j                   d¬«      ej                  j                  ej                  j                   d¬«      ej                  ej                  j                  ej                  j                   d¬«      ej                  j                  ej                  j                   d¬«      ej                  ej                  «	      e	j"                  d	   «      Z G d
„ de«      Zd„ Z G d„ de«      Z G d„ de«      Zdd„Zdd„Zd„ Zd„ Zy)é    )Ú
namedtupleN)Ú
_helperlibÚExtentÚbeginÚendé   )ÚndimÚattempt_nocopy_reshapec                   ó@   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	dd	„Z
d
„ Zy)ÚDimzÃA single dimension of the array

    Attributes
    ----------
    start:
        start offset
    stop:
        stop offset
    size:
        number of items
    stride:
        item stride
    ©ÚstartÚstopÚsizeÚstrideÚsinglec                 ó^   — || _         || _        || _        || _        || _        |r|dk(  sJ ‚y y ©Nr   r   ©Úselfr   r   r   r   r   s         úr/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/numba/cuda/cudadrv/dummyarray.pyÚ__init__zDim.__init__*   s8   € ØˆŒ
ØˆŒ	ØˆŒ	ØˆŒØˆŒÙ˜T QšYÐ&Ð&˜Y�6ó    c                 ó  — t        |t        «      rŸ|j                  | j                  «      \  }}}|| j                  z  }| j
                  |t        | j                  «      z  z   }| j
                  |t        | j                  «      z  z   }|dk(  rd}nt        |||«      }t        ||||d¬«      }|S |dk7  r| ||dz    n| dd  }|j                  dk7  rt        ‚t        |j
                  |j                  |j                  |j                  d¬«      S )Nr   r   Fr   éÿÿÿÿT)Ú
isinstanceÚsliceÚindicesr   r   r   ÚabsÚ_compute_sizer   Ú
IndexErrorr   )	r   Úitemr   r   Ústepr   r   ÚretÚsliceds	            r   Ú__getitem__zDim.__getitem__2   s  € Ü�dœEÔ"Ø $§¡¨T¯Y©YÓ 7ÑˆE�4˜Ø˜DŸK™KÑ'ˆFØ—J‘J ¬¨T¯[©[Ó)9Ñ!9Ñ9ˆEØ—:‘: ¤s¨4¯;©;Ó'7Ñ 7Ñ7ˆDØ˜Š{Ø‘ä$ U¨D°&Ó9�ÜØØØØØôˆCð ˆJà,0°BªJ�T˜$˜t a™xÑ(¸DÀÀ¸IˆFØ�{‰{˜aÒÜ Ð ÜØ—l‘lØ—[‘[Ø—[‘[Ø—}‘}Øôð r   c                 ó:   — | j                   || j                  z  z   S ©N)r   r   )r   Úidxs     r   Ú
get_offsetzDim.get_offsetP   s   € Ø�z‰z˜C $§+¡+Ñ-Ñ-Ð-r   c                 óh   — d}|| j                   | j                  | j                  | j                  fz  S )Nz*Dim(start=%s, stop=%s, size=%s, stride=%s))r   r   r   r   )r   Ústrfmts     r   Ú__repr__zDim.__repr__S   s+   € Ø=ˆØ˜Ÿ™ T§Y¡Y°·	±	¸4¿;¹;ÐGÑGÐGr   c                 ó’   — t        | j                  |z
  | j                  |z
  | j                  | j                  | j
                  ¬«      S )Nr   )r   r   r   r   r   r   )r   Úbases     r   Ú	normalizezDim.normalizeW   s:   € Ü˜Ÿ™ dÑ*°·±¸TÑ1AØŸ	™	¨$¯+©+¸d¿k¹kôKð 	Kr   Nc                 ó¬   — |€| j                   }|€| j                  }|€| j                  }|€| j                  }|€| j                  }t        |||||«      S r(   )r   r   r   r   r   r   r   s         r   ÚcopyzDim.copy[   s[   € Øˆ=Ø—J‘JˆEØˆ<Ø—9‘9ˆDØˆ<Ø—9‘9ˆDØˆ>Ø—[‘[ˆFØˆ>Ø—[‘[ˆFÜ�5˜$  f¨fÓ5Ð5r   c                 ó    — | j                   |k(  S r(   ©r   )r   Úitemsizes     r   Úis_contiguouszDim.is_contiguoush   s   € Ø�{‰{˜hÑ&Ð&r   )NNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r&   r*   r-   r0   r2   r6   © r   r   r   r      s3   „ ñð <€Iò'òò<.òHòKó6ó'r   r   c                 ó:   — t        d„ t        | |«      D «       «      S )Nc              3   óD   K  — | ]  \  }}|j                  |«      –— Œ y ­wr(   )r*   )Ú.0ÚiÚds      r   ú	<genexpr>z compute_index.<locals>.<genexpr>m   s   è ø€ Ò>¡4 1 aˆq�|‰|˜A�Ñ>ùs   ‚ )ÚsumÚzip)r   Údimss     r   Úcompute_indexrF   l   s   € ÜÑ>¬3¨w¸Ó+=Ô>Ó>Ð>r   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚElementFc                 ó   — || _         y r(   ©Úextent)r   rK   s     r   r   zElement.__init__s   s	   € Øˆ�r   c              #   ó(   K  — | j                   –— y ­wr(   rJ   ©r   s    r   Úiter_contiguous_extentzElement.iter_contiguous_extentv   s   è ø€ Ø�k‰kÓùs   ‚N)r7   r8   r9   Úis_arrayr   rN   r<   r   r   rH   rH   p   s   „ Ø€Hòór   rH   c                   ó~   — e Zd ZdZdZed„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zed	„ «       Zed
„ «       Zd„ Zd„ Zdd„Zdd„Zy)ÚArrayaû  A dummy numpy array-like object.  Consider it an array without the
    actual data, but offset from the base data pointer.

    Attributes
    ----------
    dims: tuple of Dim
        describing each dimension of the array

    ndim: int
        number of dimension

    shape: tuple of int
        size of each dimension

    strides: tuple of int
        stride of each dimension

    itemsize: int
        itemsize

    extent: (start, end)
        start and end offset containing the memory region
    Tc                 ó’   — g }t        ||«      D ].  \  }}t        ||||z  z   ||d¬«      }|j                  |«       d}Œ0  | ||«      S )NF)r   r   )rD   r   Úappend)	ÚclsÚoffsetÚshapeÚstridesr5   rE   ÚashapeÚastrideÚdims	            r   Ú	from_desczArray.from_desc”   s`   € àˆÜ" 5¨'Ó2ò 	‰OˆF�GÜ�f˜f v°Ñ'7Ñ7¸ÀØ"ô$ˆCà�K‰K˜ÔØ‰Fð		ñ
 �4˜Ó"Ð"r   c                 ó¦  — t        |«      | _        t        | j                  «      | _        t        d„ | j                  D «       «      | _        t        d„ | j                  D «       «      | _        || _        t        j                  t        j                  | j                  d«      | _        | j                  «       | _        | j                  «       | _        y )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr(   )r   ©r?   rZ   s     r   rB   z!Array.__init__.<locals>.<genexpr>¡   s   è ø€ Ò9¨˜3Ÿ8�8Ñ9ùó   ‚c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr(   r4   r^   s     r   rB   z!Array.__init__.<locals>.<genexpr>¢   s   è ø€ Ò=¨C˜SŸZ�ZÑ=ùr_   r   )ÚtuplerE   Úlenr	   rV   rW   r5   Ú	functoolsÚreduceÚoperatorÚmulr   Ú_compute_extentrK   Ú_compute_layoutÚflags)r   rE   r5   s      r   r   zArray.__init__ž   s�   € Ü˜$“KˆŒ	Ü˜Ÿ	™	“NˆŒ	ÜÑ9¨t¯y©yÔ9Ó9ˆŒ
ÜÑ=°4·9±9Ô=Ó=ˆŒØ ˆŒÜ×$Ñ$¤X§\¡\°4·:±:¸qÓAˆŒ	Ø×*Ñ*Ó,ˆŒØ×)Ñ)Ó+ˆ�
r   c                 ó,  — | j                   sdddœS t        | j                   D �cg c]  }|j                  dk(  ‘Œ c}«      rdddœS dddœ}| j                  }t	        | j                   «      D ]K  }|j
                  dk(  rdddœc S |j
                  dk7  sŒ)|j                  |k7  rd|d<   ||j
                  z  }ŒM | j                  }| j                   D ]9  }|j
                  dk7  sŒ|j                  |k7  r	d|d<   |c S ||j
                  z  }Œ; |S c c}w )NT)ÚC_CONTIGUOUSÚF_CONTIGUOUSr   Fr   rk   rl   )rE   Úanyr   r5   Úreversedr   )r   rZ   ri   Úsds       r   rh   zArray._compute_layout¨   s  € ð �yŠyØ$(¸$Ñ?Ð?ô ¨4¯9©9Ö5 C�—
‘
˜a“Ò5Ô6Ø$)¸5ÑAÐAà!%°tÑ<ˆð �]‰]ˆÜ˜DŸI™IÓ&ò 	ˆCØ�x‰x˜1Š}à(,¸dÑCÒCØ�x‰x˜1‹}Ø—:‘: Ò#Ø,1�E˜.Ñ)Ø�c—h‘h‘‘ð	ð �]‰]ˆØ—9‘9ò 	ˆCØ�x‰x˜1‹}Ø—:‘: Ò#Ø,1�E˜.Ñ)Ø ’LØ�c—h‘h‘‘ð	ð ˆùò3 6s   ¥Dc                 ó  — dg| j                   z  }| j                  D �cg c]  }|dz
  ‘Œ	 }}t        || j                  «      }t        || j                  «      | j                  z   }t        ||«      }t        ||«      S c c}w )Nr   r   )r	   rV   rF   rE   r5   Úmaxr   )r   ÚfirstidxÚsÚlastidxr   r   s         r   rg   zArray._compute_extentÎ   ss   € Ø�3˜Ÿ™‘?ˆØ"&§*¡*Ö-˜Q�1�q“5Ð-ˆÐ-Ü˜h¨¯	©	Ó2ˆÜ˜W d§i¡iÓ0°4·=±=Ñ@ˆÜ�4˜ÓˆÜ�e˜TÓ"Ð"ùò	 .s   ŸA>c                 ó<   — d| j                   ›d| j                  ›d�S )Nz<Array dims=z
 itemsize=ú>)rE   r5   rM   s    r   r-   zArray.__repr__Ö   s   � Ø04·	³	¸4¿=»=ÐIÐIr   c                 ól  — t        |t        «      s|g}nt        |«      }t        |«      }t        | j                  «      }||kD  rt        d||z
  fz  «      ‚t        |«      |k  r*|j                  t        d d «      «       t        |«      |k  rŒ*t        | j                  |«      D ��cg c]  \  }}|j                  |«      ‘Œ }}}|D �cg c]  }|j                  rŒ|j                  ‘Œ }}t        || j                  «      }	|r |	j                  |Ž d   S t        |	j                   «      S c c}}w c c}w )Nz%d extra indices givenr   )r   ra   Úlistrb   rE   r!   rS   r   rD   r&   r   r   rQ   r5   ÚreshaperH   rK   )
r   r"   Únitemr	   rZ   ÚitrE   rA   ÚnewshapeÚarrs
             r   r&   zArray.__getitem__Ù   s
  € Ü˜$¤Ô&Ø�6‰Dä˜“:ˆDä�D“	ˆÜ�4—9‘9‹~ˆØ�4Š<ÜÐ5¸À¹¸ÑGÓHÐHô �$‹i˜$ÒØ�K‰Kœ˜d DÓ)Ô*ô �$‹i˜$Óô 47°t·y±yÀ$Ó3G×H©¨¨R�—‘ Õ#ÐHˆÑHØ$(Ö9˜q°·³�A—F“FÐ9ˆÐ9ä�D˜$Ÿ-™-Ó(ˆÙØ�3—;‘; Ð)¨!Ñ,Ð,ä˜3Ÿ:™:Ó&Ð&ùó IùÚ9s   Â(D+Ã
D1ÃD1c                 ó    — | j                   d   S )Nrk   ©ri   rM   s    r   Úis_c_contigzArray.is_c_contigñ   ó   € à�z‰z˜.Ñ)Ð)r   c                 ó    — | j                   d   S )Nrl   r   rM   s    r   Úis_f_contigzArray.is_f_contigõ   r�   r   c              #   ó<  K  — | j                   s| j                  r| j                  –— y| j                  d   j                  | j                  d   j                  k  r.| j                  d   }| j                  dd }| j
                  dd }n-| j                  d   }| j                  dd }| j
                  dd }|j                  | j                  «      r\|D �cg c]  }t        |«      ‘Œ }}t        j                  |Ž D ].  }t        ||«      }||j                  z   ||j                  z   f–— Œ0 y| j
                  D �cg c]  }t        |«      ‘Œ }}t        j                  |Ž D ]+  }t        || j                  «      }||| j                  z   f–— Œ- yc c}w c c}w ­w)z Generates extents
        r   r   r   N)r€   rƒ   rK   rE   r   rV   r6   r5   ÚrangeÚ	itertoolsÚproductrF   r   r   )	r   ÚinnerdimÚ	outerdimsÚ
outershapers   Úoslenr   r/   rU   s	            r   rN   zArray.iter_contiguous_extentù   sp  è ø€ ð ×Ò˜t×/Ò/Ø—+‘+Óà�y‰y˜‰|×"Ñ" T§Y¡Y¨r¡]×%9Ñ%9Ò9ØŸ9™9 Q™<�Ø ŸI™I a b˜M�	Ø!ŸZ™Z¨¨˜^‘
àŸ9™9 R™=�Ø ŸI™I c r˜N�	Ø!ŸZ™Z¨¨˜_�
à×%Ñ% d§m¡mÔ4Ø+5Ö6 aœ˜q�Ð6�Ð6Ü(×0Ñ0°%Ð8ò F�GÜ(¨°)Ó<�DØ §¡Ñ/°¸¿¹Ñ1EÐEÓEñFð ,0¯:©:Ö6 aœ˜q�Ð6�Ð6Ü(×0Ñ0°%Ð8ò 9�GÜ*¨7°D·I±IÓ>�FØ  &¨4¯=©=Ñ"8Ð8Ó8ñ9ùò 7ùò
 7ùs    ‚CFÃFÃ)AFÄ=FÅAFc                 ó´  — | j                   }t        |«      }|| j                  k(  r| d fS |j                  dd«      }|rt	        d|j                  «       z  «      ‚|dvrt        d«      ‚d}d}t        |«      D ]"  \  }}	|	dk  r|dk(  r|}Œt        d	«      ‚||	z  }Œ$ |dk\  rA|dk(  s| j                  |z  dk7  rt        d
«      ‚|d| | j                  |z  fz   ||dz   d  z   }t        j                  t        j                  |d«      }
|dk(  r| j                  rdnd}|
| j                  k7  rt        d«      ‚| j                  s| j                  rC|dk(  rt        t!        | |«      «      }�n |dk(  rt        t#        | |«      «      }�nt%        d«      ‚t'        j(                  |t&        j*                  j,                  «      }t'        j.                  | j                  t&        j*                  j,                  ¬«      }t'        j.                  | j0                  t&        j*                  j,                  ¬«      }t'        j.                  |t&        j*                  j,                  ¬«      }t3        ||||||| j4                  |dk(  «      st7        d«      ‚| j9                  | j:                  j<                  ||| j4                  ¬«      }|t        | j?                  «       «      fS )NÚorderÚCzunknown keyword arguments %sÚCFAúorder not C|F|Ar   r   r   z&can only specify one unknown dimensionz.cannot infer valid shape for unknown dimensionÚAÚFz%reshape changes the size of the arrayÚunreachable)Údtypezreshape would require copy©rV   rW   r5   ) r	   rb   rV   ÚpopÚ	TypeErrorÚkeysÚ
ValueErrorÚ	enumerater   rc   rd   re   rf   rƒ   r€   rx   Úiter_strides_c_contigÚiter_strides_f_contigÚAssertionErrorÚnpÚemptyÚ	ctypeslibÚc_intpÚarrayrW   r
   r5   ÚNotImplementedErrorr[   rK   r   rN   )r   ÚnewdimsÚkwsÚoldndÚnewndr�   Ú
unknownidxÚ	knownsizer@   rZ   ÚnewsizeÚ
newstridesÚolddimsÚ
oldstridesr$   s                  r   ry   zArray.reshape  s¡  € Ø—	‘	ˆÜ�G“ˆà�d—j‘jÒ Ø˜�:Ðà—‘˜ Ó%ˆÙÜÐ:¸S¿X¹X»ZÑGÓHÐHØ˜ÑÜÐ.Ó/Ð/ð ˆ
Øˆ	Ü Ó(ò 	!‰FˆAˆsØ�QŠwØ Ò#Ø!"‘Jä$Ð%MÓNÐNà˜SÑ ‘	ð	!ð ˜Š?Ø˜AŠ~ §¡¨YÑ!6¸!Ò!;Ü ð "9ó :ð :ð " ! JÐ/Ø—y‘y IÑ-Ð/ñ0à˜j¨1™n˜oÐ.ñ/�ô ×"Ñ"¤8§<¡<°¸!Ó<ˆà�CŠ<Ø×+Ò+‘C°ˆEà�d—i‘iÒÜÐDÓEÐEà×Ò˜t×/Ò/Ø˜Š|Ü!Ô"7¸¸gÓ"FÓG’
Ø˜#’Ü!Ô"7¸¸gÓ"FÓG’
ä$ ]Ó3Ð3äŸ™ %¬¯©×)<Ñ)<Ó=ˆJô —h‘h˜tŸz™z´·±×1DÑ1DÔEˆGÜŸ™ $§,¡,´b·l±l×6IÑ6IÔJˆJÜ—h‘h˜w¬b¯l©l×.AÑ.AÔBˆGä)ØØØØØØØ—‘Ø˜‘ô	ô *Ð*FÓGÐGà�n‰n˜TŸ[™[×.Ñ.°gØ%/¸$¿-¹-ð ó Iˆð ”D˜×4Ñ4Ó6Ó7Ð7Ð7r   Nc                 óp  — g g }}|€Qt        | j                  | j                  «      D ]-  \  }}|dk7  sŒ|j                  |«       |j                  |«       Œ/ n’t	        |t
        «      s|f}|D ]  }| j                  |   dk7  sŒt        d«      ‚ t        t        | j                  | j                  «      «      D ]/  \  }\  }}||vsŒ|j                  |«       |j                  |«       Œ1 | j                  | j                  j                  ||| j                  ¬«      }|t        | j                  «       «      fS )Nr   zDcannot select an axis to squeeze out which has size not equal to oner•   )rD   rV   rW   rS   r   ra   r™   rš   r[   rK   r   r5   rx   rN   )	r   Úaxisr|   r«   Úlengthr   Úaxr@   Únewarrs	            r   ÚsqueezezArray.squeeze`  s1  € Ø! 2�*ˆØˆ<Ü"% d§j¡j°$·,±,Ó"?ò .‘�˜Ø˜Q“;Ø—O‘O FÔ+Ø×%Ñ% fÕ-ñ.ô
 ˜d¤EÔ*Ø�w�Øò �Ø—:‘:˜b‘> QÓ&Ü$ð+óð ðô (1´°T·Z±ZÀÇÁÓ1NÓ'Oò .Ñ#�Ñ#�F˜FØ˜D’=Ø—O‘O FÔ+Ø×%Ñ% fÕ-ð.ð —‘Ø�K‰K×ÑØØØ—]‘]ð	  ó 
ˆð ”t˜D×7Ñ7Ó9Ó:Ð:Ð:r   c                 óD  — |dvrt        d«      ‚|dv r| j                  s|dv rs| j                  rg| j                  f}| j                  f}| j                  | j                  j                  ||| j                  «      }|t        | j                  «       «      fS t        d«      ‚)Nr�   r�   ÚCAÚFAzravel on non-contiguous array)r™   r€   rƒ   r   r5   r[   rK   r   rx   rN   r£   )r   r�   r|   r«   r}   s        r   ÚravelzArray.ravel|  s—   € Ø˜ÑÜÐ.Ó/Ð/à�T‰M˜d×.Ò.Ø˜D‘= T×%5Ò%5ØŸ	™	�|ˆHØŸ-™-Ð)ˆJØ—.‘. §¡×!2Ñ!2°H¸jØ!%§¡ó0ˆCàœ˜T×8Ñ8Ó:Ó;Ð;Ð;ô &Ð&EÓFÐFr   r(   )rŽ   )r7   r8   r9   r:   rO   Úclassmethodr[   r   rh   rg   r-   r&   Úpropertyr€   rƒ   rN   ry   r³   r·   r<   r   r   rQ   rQ   z   sz   „ ñð. €Hàñ#ó ð#ò,ò$òL#òJò'ð0 ñ*ó ð*ð ñ*ó ð*ò9ò4K8óZ;ô8Gr   rQ   c              #   ó|   K  — |€| j                   n|}| j                  }|–— d}|dd D ]  }||z  }||z  –— Œ y­w)z$yields the f-contiguous strides
    Nr   r   )rV   r5   )r}   rV   r5   rC   rs   s        r   rœ   rœ   Œ  sR   è ø€ ð ˜ˆC�IŠI¨E€EØ�|‰|€HØ
‚NØ
€CØ�3�BˆZò ˆØˆq‰ˆØ�H‰nÓñùs   ‚:<c              #   ó˜   ‡‡K  — ‰€| j                   n‰Š| j                  Šˆˆfd„}t        t         |«       «      «      D ]  }|–— Œ y­w)z$yields the c-contiguous strides
    Nc               3   óX   •K  — ‰–— d} t        ‰dd  «      D ]  }| |z  } | ‰z  –— Œ y ­wr   )rn   )rC   rs   r5   rV   s     €€r   Úgenz"iter_strides_c_contig.<locals>.genž  s>   øè ø€ ØŠØˆÜ˜%  ˜)Ó$ò 	!ˆAØ�1‰HˆCØ˜‘.Ó ñ	!ùs   ƒ'*)rV   r5   rn   rx   )r}   rV   r½   r@   r5   s    `  @r   r›   r›   ˜  sG   ùè ø€ ð ˜ˆC�IŠI¨E€EØ�|‰|€Hõ!ô ”d™3›5“kÓ"ò ˆØ‹ñùs   „AA
c                 óŠ   — t        | t        «      ryt        | t        «      r"t        | «      |k(  rt	        d„ | D «       «      syyy)NFc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr(   )r   r   )r?   r{   s     r   rB   z&is_element_indexing.<locals>.<genexpr>¯  s   è ø€ Ò<°”z "¤e×,Ñ<ùs   ‚T)r   r   ra   rb   rm   )r"   r	   s     r   Úis_element_indexingrÀ   ©  s@   € Ü�$œÔØä	�Dœ%Ô	 Üˆt‹9˜ÒÜÑ<°tÔ<Ô<Øð
 ð r   c                 óL   — |dkD  r| }|}n|}| }| }||k\  ry||z
  dz
  |z  dz   S )z1Algorithm adapted from cpython rangeobject.c
    r   r   r<   )r   r   r#   ÚloÚhis        r   r    r    ¸  sH   € ð ˆa‚xØˆØ‰àˆØˆØˆuˆØ	ˆR‚xØØ�‰G�a‰K˜DÑ  1Ñ$Ð$r   r(   )Úcollectionsr   r†   rc   re   ÚctypesÚnumpyrž   Únumbar   r   Ú	CFUNCTYPEÚc_intÚc_longr    Ú	ndpointerr¡   Ú	c_helpersr
   Úobjectr   rF   rH   rQ   rœ   r›   rÀ   r    r<   r   r   ú<module>rÎ      sE  ðÝ "Û Û Û Û ã å á	�H˜w¨Ð.Ó	/€ð
Ð)˜×)Ñ)Ø
‡L�LØ
‡M�MØ‡L�L×Ñ˜2Ÿ<™<×.Ñ.°QÐÓ7Ø‡L�L×Ñ˜2Ÿ<™<×.Ñ.°QÐÓ7Ø
‡M�MØ‡L�L×Ñ˜2Ÿ<™<×.Ñ.°QÐÓ7Ø‡L�L×Ñ˜2Ÿ<™<×.Ñ.°QÐÓ7Ø
‡M�MØ
‡L�Ló
ð ×ÑÐ/Ñ0ó
2Ð ôO'ˆ&ô O'òd?ôˆfô ôOGˆFô OGód	óò"ó%r   