ó
    „ñ:i�7  ã                   óà  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJ	r	  \" SSS/5      r
\R                  " \R                  \R                  \R                  R                  \R                  R                   SS9\R                  R                  \R                  R                   SS9\R                  \R                  R                  \R                  R                   SS9\R                  R                  \R                  R                   SS9\R                  \R                  5	      " \	R"                  S	   5      r " S
 S\5      rS r " S S\5      r " S S\5      rSS jrSS jrS rS rg)é    )Ú
namedtupleN)Ú
_helperlibÚExtentÚbeginÚendé   )ÚndimÚattempt_nocopy_reshapec                   óJ   • \ rS rSrSrSrS rS rS rS r	S r
SS
 jrS rSrg	)ÚDimé   z—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                 ó`   • Xl         X l        X0l        X@l        XPl        U(       a	  US:X  d   eg g ©Nr   r   ©Úselfr   r   r   r   r   s         Ú`/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/cuda/cudadrv/dummyarray.pyÚ__init__ÚDim.__init__*   s.   € ØŒ
ØŒ	ØŒ	ØŒØŒÞ˜T Q›YÐ&Ð&˜Y�6ó    c                 ó  • [        U[        5      (       aš  UR                  U R                  5      u  p#nX@R                  -  nU R
                  U[        U R                  5      -  -   nU R
                  U[        U R                  5      -  -   nUS:X  a  SnO[        X#U5      n[        UUUUSS9nU$ US:w  a  XUS-    OU SS  nUR                  S:w  a  [        e[        UR
                  UR                  UR                  UR                  SS9$ )Nr   r   Fr   éÿÿÿÿT)Ú
isinstanceÚsliceÚindicesr   r   r   ÚabsÚ_compute_sizer   Ú
IndexErrorr   )	r   Úitemr   r   Ústepr   r   ÚretÚsliceds	            r   Ú__getitem__ÚDim.__getitem__2   sü   € Ü�dœE×"Ñ"Ø $§¡¨T¯Y©YÓ 7ÑˆE˜ØŸK™KÑ'ˆFØ—J‘J ¬¨T¯[©[Ó)9Ñ!9Ñ9ˆEØ—:‘: ¤s¨4¯;©;Ó'7Ñ 7Ñ7ˆDØ˜‹{Ø‘ä$ U°&Ó9�ÜØØØØØñˆCð ˆJà,0°B«J�T˜t a™xÑ(¸DÀÀ¸IˆFØ�{‰{˜aÓÜ Ð ÜØ—l‘lØ—[‘[Ø—[‘[Ø—}‘}Øñð r   c                 ó8   • U R                   XR                  -  -   $ ©N)r   r   )r   Úidxs     r   Ú
get_offsetÚDim.get_offsetP   s   € Ø�z‰z˜C§+¡+Ñ-Ñ-Ð-r   c                 óf   • SnXR                   U R                  U R                  U R                  4-  $ )Nz*Dim(start=%s, stop=%s, size=%s, stride=%s))r   r   r   r   )r   Ústrfmts     r   Ú__repr__ÚDim.__repr__S   s)   € Ø=ˆØŸ™ T§Y¡Y°·	±	¸4¿;¹;ÐGÑGÐGr   c                 óŒ   • [        U R                  U-
  U R                  U-
  U R                  U R                  U R
                  S9$ )Nr   )r   r   r   r   r   r   )r   Úbases     r   Ú	normalizeÚDim.normalizeW   s:   € Ü˜Ÿ™ dÑ*°·±¸TÑ1AØŸ	™	¨$¯+©+¸d¿k¹kñKð 	Kr   Nc                 ó²   • Uc  U R                   nUc  U R                  nUc  U R                  nUc  U R                  nUc  U R                  n[        XX4U5      $ r+   )r   r   r   r   r   r   r   s         r   ÚcopyÚDim.copy[   sW   € Ø‰=Ø—J‘JˆEØ‰<Ø—9‘9ˆDØ‰<Ø—9‘9ˆDØ‰>Ø—[‘[ˆFØ‰>Ø—[‘[ˆFÜ�5 ¨fÓ5Ð5r   c                 ó    • U R                   U:H  $ r+   ©r   )r   Úitemsizes     r   Úis_contiguousÚDim.is_contiguoush   s   € Ø�{‰{˜hÑ&Ð&r   )r   r   r   r   r   )NNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r   r(   r-   r1   r5   r8   r=   Ú__static_attributes__© r   r   r   r      s3   † ñð <€Iò'òò<.òHòKô6õ'r   r   c                 ó8   • [        S [        X5       5       5      $ )Nc              3   óH   #   • U  H  u  pUR                  U5      v •  M     g 7fr+   )r-   )Ú.0ÚiÚds      r   Ú	<genexpr>Ú compute_index.<locals>.<genexpr>m   s   é € Ð>Ò+=¡4 1ˆq�|‰|˜A�ˆÒ+=ùs   ‚ ")ÚsumÚzip)r    Údimss     r   Úcompute_indexrQ   l   s   € ÜÑ>¬3¨wÔ+=Ó>Ó>Ð>r   c                   ó$   • \ rS rSrSrS rS rSrg)ÚElementép   Fc                 ó   • Xl         g r+   ©Úextent)r   rW   s     r   r   ÚElement.__init__s   s   € Ø�r   c              #   ó(   #   • U R                   v •  g 7fr+   rV   ©r   s    r   Úiter_contiguous_extentÚElement.iter_contiguous_extentv   s   é € Ø�k‰kÓùs   ‚rV   N)r?   r@   rA   rB   Úis_arrayr   r[   rE   rF   r   r   rS   rS   p   s   † Ø€Hòõr   rS   c                   óŠ   • \ rS rSrSrSr\S 5       rS rS r	S r
S rS	 r\S
 5       r\S 5       rS rS rSS jrSS jrSrg)ÚArrayéz   a»  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           	      ó„   • / n[        X#5       H(  u  pg[        XXg-  -   XgSS9nUR                  U5        SnM*     U " XT5      $ )NF)r   r   )rO   r   Úappend)	ÚclsÚoffsetÚshapeÚstridesr<   rP   ÚashapeÚastrideÚdims	            r   Ú	from_descÚArray.from_desc”   sO   € àˆÜ" 5Ö2‰OˆFÜ�f vÑ'7Ñ7¸Ø"ñ$ˆCà�K‰K˜ÔØŠFñ	  3ñ
 �4Ó"Ð"r   c                 ó¦  • [        U5      U l        [        U R                  5      U l        [        S U R                   5       5      U l        [        S U R                   5       5      U l        X l        [        R                  " [        R                  U R                  S5      U l        U R                  5       U l        U R                  5       U l        g )Nc              3   ó8   #   • U  H  oR                   v •  M     g 7fr+   )r   ©rI   ri   s     r   rL   Ú!Array.__init__.<locals>.<genexpr>¡   s   é € Ð9ªy¨Ÿ8ž8ªyùó   ‚c              3   ó8   #   • U  H  oR                   v •  M     g 7fr+   r;   rn   s     r   rL   ro   ¢   s   é € Ð=²9¨CŸZžZ²9ùrp   r   )ÚtuplerP   Úlenr	   re   rf   r<   Ú	functoolsÚreduceÚoperatorÚmulr   Ú_compute_extentrW   Ú_compute_layoutÚflags)r   rP   r<   s      r   r   ÚArray.__init__ž   s‹   € Ü˜$“KˆŒ	Ü˜Ÿ	™	“NˆŒ	ÜÑ9¨t¯yªyÓ9Ó9ˆŒ
ÜÑ=°4·9²9Ó=Ó=ˆŒØ ŒÜ×$Ò$¤X§\¡\°4·:±:¸qÓAˆŒ	Ø×*Ñ*Ó,ˆŒØ×)Ñ)Ó+ˆ�
r   c                 óV  • U R                   (       d  SSS.$ [        U R                    Vs/ s H  oR                  S:H  PM     sn5      (       a  SSS.$ SSS.nU R                  n[	        U R                   5       HO  nUR
                  S:X  a  SSS.s  $ UR
                  S:w  d  M,  UR                  U:w  a  SUS'   X1R
                  -  nMQ     U R                  nU R                    H<  nUR
                  S:w  d  M  UR                  U:w  a	  SUS'   Us  $ X1R
                  -  nM>     U$ s  snf )NT)ÚC_CONTIGUOUSÚF_CONTIGUOUSr   Fr   r}   r~   )rP   Úanyr   r<   Úreversedr   )r   ri   rz   Úsds       r   ry   ÚArray._compute_layout¨   s  € ð �y�yØ$(¸$Ñ?Ð?ô ¨4¯9ª9Ó5ª9 C—
‘
˜a”©9Ñ5×6Ñ6Ø$)¸5ÑAÐAà!%°tÑ<ˆð �]‰]ˆÜ˜DŸI™IÖ&ˆCØ�x‰x˜1‹}à(,¸dÑCÒCØ�x‰x˜1�}Ø—:‘: Ó#Ø,1�E˜.Ñ)Ø—h‘h‘’ñ 'ð �]‰]ˆØ—9”9ˆCØ�x‰x˜1�}Ø—:‘: Ó#Ø,1�E˜.Ñ)Ø ’LØ—h‘h‘’ñ ð ˆùò3 6s   ªD&c                 ó  • S/U R                   -  nU R                   Vs/ s H  o"S-
  PM	     nn[        XR                  5      n[        X0R                  5      U R                  -   n[        XT5      n[        XE5      $ s  snf )Nr   r   )r	   re   rQ   rP   r<   Úmaxr   )r   ÚfirstidxÚsÚlastidxr   r   s         r   rx   ÚArray._compute_extentÎ   sj   € Ø�3˜Ÿ™‘?ˆØ"&§*¢*Ó-¢*˜Q�q”5¡*ˆÐ-Ü˜h¯	©	Ó2ˆÜ˜W§i¡iÓ0°4·=±=Ñ@ˆÜ�4ÓˆÜ�eÓ"Ð"ùò	 .s   ŸA<c                 ó@   • SU R                   < SU R                  < S3$ )Nz<Array dims=z
 itemsize=Ú>)rP   r<   rZ   s    r   r1   ÚArray.__repr__Ö   s   � Ø04·	´	¸4¿=¼=ÐIÐIr   c                 ó–  • [        U[        5      (       d  U/nO[        U5      n[        U5      n[        U R                  5      nX#:”  a  [        SX#-
  4-  5      e[        U5      U:  a,  UR                  [        S S 5      5        [        U5      U:  a  M,  [        U R                  U5       VVs/ s H  u  pEUR                  U5      PM     nnnU Vs/ s H!  owR                  (       a  M  UR                  PM#     nn[        X`R                  5      n	U(       a  U	R                  " U6 S   $ [        U	R                   5      $ s  snnf s  snf )Nz%d extra indices givenr   )r   rr   Úlistrs   rP   r#   rb   r   rO   r(   r   r   r_   r<   ÚreshaperS   rW   )
r   r$   Únitemr	   ri   ÚitrP   rK   ÚnewshapeÚarrs
             r   r(   ÚArray.__getitem__Ù   s  € Ü˜$¤×&Ñ&Ø�6‰Dä˜“:ˆDä�D“	ˆÜ�4—9‘9‹~ˆØ‹<ÜÐ5¸¹¸ÑGÓHÐHô �$‹i˜$ÓØ�K‰Kœ˜d DÓ)Ô*ô �$‹i˜$Õô 47°t·y±yÀ$Ô3GÔHÒ3G©¨�—‘ Ö#Ñ3GˆÑHÙ$(Ó9¢D˜q·µ“F�A—F”F¡DˆÐ9ä�DŸ-™-Ó(ˆÞØ—;’; Ð)¨!Ñ,Ð,ä˜3Ÿ:™:Ó&Ð&ùó IùÚ9s   Â/E ÃEÃ+Ec                 ó    • U R                   S   $ )Nr}   ©rz   rZ   s    r   Úis_c_contigÚArray.is_c_contigñ   ó   € à�z‰z˜.Ñ)Ð)r   c                 ó    • U R                   S   $ )Nr~   r•   rZ   s    r   Úis_f_contigÚArray.is_f_contigõ   r˜   r   c              #   ój  #   • U R                   (       d  U R                  (       a  U R                  v •  gU R                  S   R                  U R                  S   R                  :  a.  U R                  S   nU R                  SS nU R
                  SS nO-U R                  S   nU R                  SS nU R
                  SS nUR                  U R                  5      (       a_  U Vs/ s H  n[        U5      PM     nn[        R                  " U6  H,  n[        Xb5      nXqR                  -   XqR                  -   4v •  M.     gU R
                   Vs/ s H  n[        U5      PM     nn[        R                  " U6  H*  n[        X`R                  5      nXˆU R                  -   4v •  M,     gs  snf s  snf 7f)zGenerates extents
        r   r   r   N)r–   rš   rW   rP   r   re   r=   r<   ÚrangeÚ	itertoolsÚproductrQ   r   r   )	r   ÚinnerdimÚ	outerdimsÚ
outershaper†   Úoslenr    r4   rd   s	            r   r[   ÚArray.iter_contiguous_extentù   s^  é € ð ××˜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Ñ4Ù+5Ó6ª: aœ˜qž©:�Ð6Ü(×0Ò0°%Ó8�GÜ(¨Ó<�DØ§¡Ñ/°¿¹Ñ1EÐEÔEò  9ð ,0¯:ª:Ó6ª: aœ˜qž©:�Ð6Ü(×0Ò0°%Ó8�GÜ*¨7·I±IÓ>�FØ ¨4¯=©=Ñ"8Ð8Ô8ò  9ùò 7ùò
 7ùs    ‚C%F3Ã'F)Ã<AF3ÅF.Å%AF3c                 óæ  • U R                   n[        U5      nXR                  :X  a  U S 4$ UR                  SS5      nU(       a  [	        SUR                  5       -  5      eUS;  a  [        S5      eSnSn[        U5       H$  u  p‰U	S:  a  US:X  a  UnM  [        S	5      eXy-  nM&     US:¼  aB  US:X  d  U R                  U-  S:w  a  [        S
5      eUSU U R                  U-  4-   XS-   S  -   n[        R                  " [        R                  US5      n
US:X  a  U R                  (       a  SOSnX R                  :w  a  [        S5      eU R                  (       d  U R                  (       aC  US:X  a  [        [!        X5      5      nGO US:X  a  [        [#        X5      5      nGO[%        S5      e[&        R(                  " U[&        R*                  R,                  5      n[&        R.                  " U R                  [&        R*                  R,                  S9n[&        R.                  " U R0                  [&        R*                  R,                  S9n[&        R.                  " U[&        R*                  R,                  S9n[3        UUUUUUU R4                  US:H  5      (       d  [7        S5      eU R9                  U R:                  R<                  UX°R4                  S9nU[        U R?                  5       5      4$ )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©re   rf   r<   ) r	   rs   re   ÚpopÚ	TypeErrorÚkeysÚ
ValueErrorÚ	enumerater   rt   ru   rv   rw   rš   r–   r�   Úiter_strides_c_contigÚiter_strides_f_contigÚAssertionErrorÚnpÚemptyÚ	ctypeslibÚc_intpÚarrayrf   r
   r<   ÚNotImplementedErrorrj   rW   r   r[   )r   ÚnewdimsÚkwsÚoldndÚnewndr¦   Ú
unknownidxÚ	knownsizerJ   ri   ÚnewsizeÚ
newstridesÚolddimsÚ
oldstridesr&   s                  r   rŽ   ÚArray.reshape  s‘  € Ø—	‘	ˆÜ�G“ˆà—j‘jÓ Ø˜�:Ðà—‘˜ Ó%ˆÞÜÐ:¸S¿X¹X»ZÑGÓHÐHØ˜ÓÜÐ.Ó/Ð/ð ˆ
Øˆ	Ü Ö(‰FˆAØ�Q‹wØ Ó#Ø!"’Jä$Ð%MÓNÐNàÑ ’	ñ )ð ˜‹?Ø˜A‹~ §¡¨YÑ!6¸!Ó!;Ü ð "9ó :ð :ð " ! JÐ/Ø—y‘y IÑ-Ð/ñ0à¨1™n˜oÐ.ñ/�ô ×"Ò"¤8§<¡<°¸!Ó<ˆà�C‹<Ø×+×+‘C°ˆEà—i‘iÓÜÐDÓEÐEà××˜t×/×/Ø˜‹|Ü!Ô"7¸Ó"FÓG’
Ø˜#“Ü!Ô"7¸Ó"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                 ó†  • / / p2UcT  [        U R                  U R                  5       H/  u  pEUS:w  d  M  UR                  U5        UR                  U5        M1     O�[	        U[
        5      (       d  U4nU H!  nU R                  U   S:w  d  M  [        S5      e   [        [        U R                  U R                  5      5       H1  u  nu  pEXq;  d  M  UR                  U5        UR                  U5        M3     U R                  U R                  R                  UUU R                  S9nU[        U R                  5       5      4$ )Nr   zDcannot select an axis to squeeze out which has size not equal to oner®   )rO   re   rf   rb   r   rr   r²   r³   rj   rW   r   r<   r�   r[   )	r   Úaxisr‘   rÄ   Úlengthr   ÚaxrJ   Únewarrs	            r   ÚsqueezeÚArray.squeeze`  s  € Ø! 2�*Ø‰<Ü"% d§j¡j°$·,±,Ö"?‘�Ø˜Q•;Ø—O‘O FÔ+Ø×%Ñ% fÖ-ò #@ô
 ˜d¤E×*Ñ*Ø�w�Û�Ø—:‘:˜b‘> QÕ&Ü$ð+óð ñ ô (1´°T·Z±ZÀÇÁÓ1NÖ'OÑ#�Ñ#�FØ•=Ø—O‘O FÔ+Ø×%Ñ% fÖ-ñ (Pð —‘Ø�K‰K×ÑØØØ—]‘]ð	  ð 
ˆð ”t˜D×7Ñ7Ó9Ó:Ð:Ð:r   c                 ób  • US;  a  [        S5      eUS;   a  U R                  (       d  US;   aw  U R                  (       af  U R                  4nU R                  4nU R                  U R                  R                  X#U R                  5      nU[        U R                  5       5      4$ [        S5      e)Nr¨   r©   ÚCAÚFAzravel on non-contiguous array)r²   r–   rš   r   r<   rj   rW   r   r�   r[   r¼   )r   r¦   r‘   rÄ   r’   s        r   ÚravelÚArray.ravel|  s•   € Ø˜ÓÜÐ.Ó/Ð/à�T‹M˜d×.×.Ø˜D“= T×%5×%5ØŸ	™	�|ˆHØŸ-™-Ð)ˆJØ—.‘. §¡×!2Ñ!2°HØ!%§¡ó0ˆCàœ˜T×8Ñ8Ó:Ó;Ð;Ð;ô &Ð&EÓFÐFr   )rP   rW   rz   r<   r	   re   r   rf   r+   )r§   )r?   r@   rA   rB   rC   r]   Úclassmethodrj   r   ry   rx   r1   r(   Úpropertyr–   rš   r[   rŽ   rÍ   rÒ   rE   rF   r   r   r_   r_   z   sz   † ñð. €Hàñ#ó ð#ò,ò$òL#òJò'ð0 ñ*ó ð*ð ñ*ó ð*ò9ò4K8ôZ;÷8Gr   r_   c              #   ó~   #   • Uc  U R                   OUnU R                  nUv •  SnUSS  H  nX4-  nX2-  v •  M     g7f)z$yields the f-contiguous strides
    Nr   r   )re   r<   )r’   re   r<   rN   r†   s        r   rµ   rµ   Œ  sH   é € ð ™ˆC�IŠI¨E€EØ�|‰|€HØ
‚NØ
€CØ�3�B‹ZˆØ‰ˆØ‰nÔò ùs   ‚;=c              #   ó    ^^#   • Tc  U R                   OTmU R                  mUU4S jn[        [        U" 5       5      5       H  nUv •  M	     g7f)z$yields the c-contiguous strides
    Nc               3   óZ   >#   • Tv •  Sn [        TSS  5       H  nX-  n U T-  v •  M     g 7fr   )r€   )rN   r†   r<   re   s     €€r   ÚgenÚ"iter_strides_c_contig.<locals>.genž  s6   øé € ØŠØˆÜ˜%  ˜)Ö$ˆAØ‰HˆCØ˜‘.Ô ò %ùs   ƒ(+)re   r<   r€   r�   )r’   re   rÙ   rJ   r<   s    `  @r   r´   r´   ˜  sA   ùé € ð ™ˆC�IŠI¨E€EØ�|‰|€Hö!ô ”d™3›5“kÖ"ˆØŒò #ùs   „A
Ac                 óª   • [        U [        5      (       a  g[        U [        5      (       a(  [        U 5      U:X  a  [	        S U  5       5      (       d  ggg)NFc              3   óB   #   • U  H  n[        U[        5      v •  M     g 7fr+   )r   r   )rI   r�   s     r   rL   Ú&is_element_indexing.<locals>.<genexpr>¯  s   é € Ð<²t°”z "¤e×,Ð,²tùs   ‚T)r   r   rr   rs   r   )r$   r	   s     r   Úis_element_indexingrÞ   ©  sI   € Ü�$œ×ÑØä	�Dœ%×	 Ñ	 Üˆt‹9˜ÓÜÑ<±tÓ<×<Ñ<Øð
 ð r   c                 óL   • US:”  a  U nUnOUnU nU* nX4:¼  a  gXC-
  S-
  U-  S-   $ )z1Algorithm adapted from cpython rangeobject.c
    r   r   rF   )r   r   r%   ÚloÚhis        r   r"   r"   ¸  sD   € ð ˆaƒxØˆØ‰àˆØˆØˆuˆØ	ƒxØØ‰G�a‰K˜DÑ  1Ñ$Ð$r   r+   )Úcollectionsr   rž   rt   rv   ÚctypesÚnumpyr·   Únumbar   r   Ú	CFUNCTYPEÚc_intÚc_longr¹   Ú	ndpointerrº   Ú	c_helpersr
   Úobjectr   rQ   rS   r_   rµ   r´   rÞ   r"   rF   r   r   Ú<module>rì      s>  ðÝ "Û Û Û Û ã å á	�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   