Ë
    Ç[;jP  ã                   ó”  — d dl mZmZ d dlmZ d dlmZmZmZ d dlmZ ddlm	Z	 d dl
mZmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZ dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%d Z&e!e"e#e$e%e&d!œZ'd"d#d$d%d&d'd!œZ(d(„ Z)	 dgd)„Z*	 dhd*„Z+d+„ Z,d,„ Z-d-„ Z.did.„Z/ G d/„ d0ej`                  «      Z1d1„ Z2d2„ Z3d3„ Z4d4„ Z5d5„ Z6djd6„Z7 G d7„ d8«      Z8 G d9„ d:e8«      Z9 G d;„ d<e8«      Z:d=„ Z;d>„ Z<d?„ Z=d@„ Z>dA„ Z?dB„ Z@dCdDdEdFdGdHdIœZAdJ„ ZBdK„ ZCdL„ ZDdM„ ZEdkdO„ZF	 dldNdPœdQ„ZGdR„ ZHej’                  ej”                  ej–                  j˜                  dSdTœZMdU„ ZN eGdVdWeM¬X«      ZO eGdY«      ZPdZ„ ZQd[„ ZR eGd\«      ZS eGd]«      ZT eGd^«      ZU eGd_«      ZV eGd`eM¬P«      ZW eGda«      ZX eGdb«      ZYe	j´                  dc„ «       Z[e	j´                  dd„ «       Z\de„ Z]dfZ^yN)mé   )ÚCompileErrorÚerror)Ú	ExprNodes)ÚIntNodeÚNameNodeÚAttributeNode)ÚOptionsé   )ÚUtils)ÚUtilityCodeÚTempitaUtilityCode)ÚCythonUtilityCodeÚCythonSharedUtilityCode)ÚBuffer)ÚNaming)Ú
PyrexTypeszStart must not be given.z3Axis specification only allowed in the 'step' slot.z.Step must be omitted, 1, or a valid specifier.z>Cannot specify an array that is both C and Fortran contiguous.zInvalid axis specification.z+Variable was not cimported from cython.viewz=no expressions allowed in axis spec, only names and literals.z<Invalid axis specification for a C/Fortran contiguous array.zdCannot check if memoryview %s is initialized without the GIL, consider using initializedcheck(False)ÚPyBUF_FORMATz#(PyBUF_C_CONTIGUOUS | PyBUF_FORMAT)z#(PyBUF_F_CONTIGUOUS | PyBUF_FORMAT)z%(PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT)ÚPyBUF_FULL_ROÚPyBUF_RECORDS_ROÚ__Pyx_MEMVIEW_DIRECTÚ__Pyx_MEMVIEW_PTRÚ__Pyx_MEMVIEW_FULLÚ__Pyx_MEMVIEW_CONTIGÚ__Pyx_MEMVIEW_STRIDEDÚ__Pyx_MEMVIEW_FOLLOW)ÚdirectÚptrÚfullÚcontigÚstridedÚfollowÚdÚpÚfÚcÚsÚ_c                 óT   — |j                  d| z  «       |j                  d| z  «       y )Nz%s.data = NULL;z%s.memview = NULL;)Úputln)Úmv_cnameÚcodes     úcG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Compiler/MemoryView.pyÚput_init_entryr-   :   s&   € Ø‡J�JÐ  8Ñ+Ô,Ø‡J�JÐ# hÑ.Õ/ó    c           	      ó„  — |j                   j                  sJ ‚|j                  «       xs |j                  «       }|r|j	                  «       }nC|j
                  j                  |d¬«      }|j                  |›d|j                  |«      ›d�«       t        | ||||||¬«       |s|j
                  j                  |«       yy)zEWe can avoid decreffing the lhs if we know it is the first assignmentF©Ú
manage_refú = Ú;)Úhave_gilÚfirst_assignmentN)ÚtypeÚis_memoryviewsliceÚresult_in_tempÚ	is_simpleÚresultÚ	funcstateÚallocate_tempr)   Ú	result_asÚput_assign_to_memviewsliceÚrelease_temp)	Ú	lhs_cnameÚlhs_typeÚlhs_posÚrhsr+   r4   r5   Ú
pretty_rhsÚrhstmps	            r,   Úput_acquire_memoryviewslicerF   C   s¨   € ð �8‰8×&Ò&Ð&Ð&à×#Ñ#Ó%Ò8¨¯©«€JÙØ—‘“‰à—‘×-Ñ-¨hÀ5Ð-ÓIˆØ�
‰
¢¨¯©°xÕ)@ÐAÔBô ˜y¨#¨v°xÀØ(0ÐCSõUñ Ø�‰×#Ñ# FÕ+ð r.   c                 óÎ   — | |k(  r|j                  d«       y |s|j                  | ||¬«       |j                  «       s|j                  |«       |j                  | ›d|›d�«       y )Nz&/* memoryview self assignment no-op */©r4   r2   r3   )r)   Úput_xdecrefr8   Úmake_owned_memoryviewslice)r@   rC   Ú	rhs_cnameÚmemviewslicetyper+   r4   r5   s          r,   r>   r>   X   sg   € à�IÒð 	�
‰
Ð;Ô<ØáØ×Ñ˜Ð$4Ø"*ð 	ô 	,ð ×ÑÔØ×&Ñ& tÔ,à‡J�JšYª	Ð2Õ3r.   c                 ó|   — t        | «      \  }}|rt        S |rt        S t        | Ž \  }}d|v sd|v rt        S t
        S )Nr   r   )Úis_cf_contigÚmemview_c_contiguousÚmemview_f_contiguousÚzipÚmemview_full_accessÚmemview_strided_access©ÚspecsÚis_c_contigÚis_f_contigÚaccessÚpackings        r,   Úget_buf_flagsrZ   j   sJ   € Ü+¨EÓ2Ñ€K�áÜ#Ð#Ù	Ü#Ð#ä˜5�k�O€FˆGà�Ñ˜5 F™?Ü"Ð"ä%Ð%r.   c                 ó„   — dg|z  }|j                  | j                  «       t        j                  | j                  |«      S )N©r   r    )ÚextendÚaxesr   ÚMemoryViewSliceTypeÚdtype)ÚmemoryviewtypeÚnr^   s      r,   Úinsert_newaxesrc   z   s:   € Ø!Ð" QÑ&€DØ‡K�K�×#Ñ#Ô$Ü×)Ñ)¨.×*>Ñ*>ÀÓEÐEr.   c                 ó°   — t        | j                  |j                  z
  «      }| j                  |j                  k  rt        | |«      |fS | t        ||«      fS ©N)ÚabsÚndimrc   )ÚsrcÚdstrb   s      r,   Úbroadcast_typesrj   €   sM   € ÜˆC�H‰H�s—x‘xÑÓ €AØ
‡x�x�#—(‘(ÒÜ˜c 1Ó% sÐ*Ð*à”N 3¨Ó*Ð*Ð*r.   c                 ó   — | j                   r| j                  j                  ry| t        j                  u ry| j
                  rB| j                  dk(  r3| j                  j                  D ]  }t        |j                  «      rŒ y y| j                  xs} | j                  xr  |dk  xr t        | j                  |dz   «      xsM | j                  xs? | j                  xs1 | j                   xs# | j"                  xr t        | j$                  «      S )zŽ
    Return whether type dtype can be used as the base type of a
    memoryview slice.

    We support structs, numeric types and objects
    FÚstructTé   r   )Ú
is_complexÚ	real_typeÚis_intr   Úc_bint_typeÚ	is_structÚkindÚscopeÚvar_entriesÚvalid_memslice_dtyper6   Úis_errorÚis_arrayÚ	base_typeÚ
is_numericÚis_pyobjectÚis_fusedÚ
is_typedefÚtypedef_base_type)r`   ÚiÚmembers      r,   rv   rv   ˆ   sù   € ð ×Ò˜EŸO™O×2Ò2Øà”
×&Ñ&Ñ&Øà‡‚˜5Ÿ:™:¨Ò1Ø—k‘k×-Ô-ˆFÜ'¨¯©Õ4Ùð .ð ð 	�‰ò 	Mð 
�‰ò 
6˜A ™Eò 
6Ü	˜eŸo™o¨q°1©uÓ	5ò		Mð
 	×Ñò	Mð 	×Ñò	Mð 	�‰ò	Mð 
×	Ñ	Ò	KÔ2°5×3JÑ3JÓKð
r.   c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd
d„Z	d„ Z
y	)ÚMemoryViewSliceBufferEntryz�
    May be used during code generation time to be queried for
    shape/strides/suboffsets attributes, or to perform indexing or slicing.
    c                 ó  — || _         |j                  | _        |j                  | _        d| j                  z  | _        | j                   j                  j                  }t        j                  |«      | _        | j                  «        y )Nz%s.data)	Úentryr6   ÚcnameÚbuf_ptrr`   r   ÚCPtrTypeÚbuf_ptr_typeÚinit_attributes)Úselfr„   r`   s      r,   Ú__init__z#MemoryViewSliceBufferEntry.__init__®   sa   € ØˆŒ
Ø—J‘JˆŒ	Ø—[‘[ˆŒ
à  4§:¡:Ñ-ˆŒà—
‘
—‘×%Ñ%ˆÜ&×/Ñ/°Ó6ˆÔØ×ÑÕr.   c                 ó$   — | j                  d«      S )Nú%s.suboffsets[%d]©Ú_for_all_ndim©rŠ   s    r,   Úget_buf_suboffsetvarsz0MemoryViewSliceBufferEntry.get_buf_suboffsetvars¹   s   € Ø×!Ñ!Ð"5Ó6Ð6r.   c                 ó$   — | j                  d«      S )Nú%s.strides[%d]rŽ   r�   s    r,   Úget_buf_stridevarsz-MemoryViewSliceBufferEntry.get_buf_stridevars¼   s   € Ø×!Ñ!Ð"2Ó3Ð3r.   c                 ó$   — | j                  d«      S )Nú%s.shape[%d]rŽ   r�   s    r,   Úget_buf_shapevarsz,MemoryViewSliceBufferEntry.get_buf_shapevars¿   s   € Ø×!Ñ! .Ó1Ð1r.   c           	      ó®   — t        | j                  j                  «      D ���cg c]  \  }\  }}|||   ||f‘Œ }}}}| j                  ||«      S c c}}}w re   )Ú	enumerater6   r^   Ú_generate_buffer_lookup_code)rŠ   r+   Úindex_cnamesÚdimrX   rY   r^   s          r,   Úgenerate_buffer_lookup_codez6MemoryViewSliceBufferEntry.generate_buffer_lookup_codeÂ   sb   € ä2;¸D¿I¹I¿N¹NÔ2KõMÙ2KÑ.˜Ñ.˜f gð �l 3Ñ'¨°Ò9Ø2Kð 	ò Mà×0Ñ0°°tÓ<Ð<ùôMs   ¤Ac           
      ó4  — | j                   }| j                  j                  j                  «       }|D ]×  \  }}}}	d| j                  |fz  }
d| j                  |fz  }d| j                  |fz  }t        ||	«      }|dv r/|j                  j                  t        «       d|›d|›d|›d|›d�	}nW|dk(  rd	|›d
|›d|›d�}d|›d|›d�}n<|dk(  rd|›d
|›d|›d�}n*|dk(  rd	|›d
|›d|›d�}n|dk(  sJ |«       ‚d|›d|›d|›d�}d||fz  }ŒÙ |r	d|›d|›d�S |S )zl
        Generate a single expression that indexes the memory view slice
        in each dimension.
        r–   r“   r�   )ÚgenericÚgeneric_contiguousz__pyx_memviewslice_index_full(z, Ú)ÚindirectÚ(z + ú * z(*((char **) z) + Úindirect_contiguousr    Ú
contiguousz((char *) (((ú *) z))z( /* dim=%d */ %s )z(()	r†   r6   r`   Úempty_declaration_coder…   Úget_memoryview_flagÚglobalstateÚuse_utility_codeÚmemviewslice_index_helpers)rŠ   r+   r^   Úcast_resultÚbufpÚ	type_declrœ   ÚindexrX   rY   ÚshapeÚstrideÚ	suboffsetÚflags                 r,   rš   z7MemoryViewSliceBufferEntry._generate_buffer_lookup_codeÇ   s:  € ð
 �|‰|ˆØ—I‘I—O‘O×:Ñ:Ó<ˆ	ã+/Ñ'ˆC�˜ Ø" d§j¡j°#Ð%6Ñ6ˆEØ%¨¯©°SÐ(9Ñ9ˆFØ+¨t¯z©z¸3Ð.?Ñ?ˆIä& v¨wÓ7ˆDàÐ8Ñ8ð
 × Ñ ×1Ñ1Ô2LÕMâ-1²5º&Â)ðM‘ð ˜Ó#Ú+/²ºÐ?‘Ú48º)ÐD‘àÐ.Ó.â8<ºeÂYÐO‘à˜Ó"Ú+/²ºÐ?‘ð ˜|Ò+Ð1¨TÓ1Ñ+Ú:CÂTÊ5ÐQ�à(¨C°¨;Ñ6‰Dð? ,0òB Ú$-ªtÐ4Ð4àˆr.   c           	      ó  ‡‡— | j                   }‰j                  dt        «       z  «       ‰j                  dt        «       z  «       ‰j                  |||¬«       t	        d„ | j
                  j                  D «       «      }	g Šˆˆfd„}
d}d}|D �]Ø  }|j                  r(dD ]  \  }}‰j                  d	||||fz  «       Œ |d
z  }Œ8|d
z  }| j
                  j                  |   \  }}|j                  r¼t        t        «       «      }dj                  «       D ]:  }t        ||«      }|j                   x}|d|z   <   |r|j                  «       nd||<   Œ< |d   s|d   s|d   s||d<   d}n?d}‰j                  j                  t        «       ‰j!                  |j"                  «      |d<   |d
z  }nŒ|j                  «       }|dk7  }|r"|dk(  }|dk7  rt%        |j"                  d«      c S t        t        «       t'        |d   «      t'        |d   «      ¬«      }|d   r‰j!                  |j"                  «      |d<   d}t)        j*                  |d|¬«      \  }}‰j-                  |«       �ŒÛ ‰r‰j.                  j1                  ‰d   «       yy)a¯  
        Slice a memoryviewslice.

        indices     - list of index nodes. If not a SliceNode, or NoneNode,
                      then it must be coercible to Py_ssize_t

        Simply call __pyx_memoryview_slice_memviewslice with the right
        arguments, unless the dimension is omitted or a bare ':', in which
        case we copy over the shape/strides/suboffsets attributes directly
        for that dimension.
        z%(dst)s.data = %(src)s.data;z"%(dst)s.memview = %(src)s.memview;rH   c              3   ó,   K  — | ]  \  }}|d k(  –— Œ y­w)r   N© )Ú.0rX   rY   s      r,   Ú	<genexpr>zHMemoryViewSliceBufferEntry.generate_buffer_slice_code.<locals>.<genexpr>  s   è ø€ Ð#]Én¹?¸6À7 F¨hÕ$6Énùs   ‚c                  ó²   •— ‰sP‰j                   j                  t        j                  d¬«      } ‰j	                  d| z  «       ‰j                  | «       ‰d   S )NFr0   z%s = -1;é    )r;   r<   r   Ú
c_int_typer)   Úappend)Úsuboffset_dimr+   Úsuboffset_dim_temps    €€r,   Úget_suboffset_dimzPMemoryViewSliceBufferEntry.generate_buffer_slice_code.<locals>.get_suboffset_dim  sP   ø€ á%Ø $§¡× <Ñ <¼Z×=RÑ=RÐ_dÐ <Ó e�Ø—
‘
˜:¨Ñ5Ô6Ø"×)Ñ)¨-Ô8Ø% aÑ(Ð(r.   éÿÿÿÿr»   ))r±   r   )Ústridesr»   )Ú
suboffsetsrÁ   z%s.%s[%d] = %d;r   zstart stop stepÚhave_Ú0Ú
have_startÚ	have_stopÚ	have_steprX   ÚSimpleSliceÚ
ToughSliceÚ
error_gotor   r   z7All preceding dimensions must be indexed and not slicedÚ
wraparoundÚboundscheck)rÌ   rÍ   Ú
SliceIndexúMemoryView_C.c©ÚcontextN)r…   r)   ÚlocalsÚput_incref_memoryviewsliceÚallr6   r^   Úis_noneÚis_sliceÚdictÚsplitÚgetattrr:   rª   r«   Úslice_memviewslice_utilityrË   Úposr   Úintr   Úload_as_stringÚputr;   r?   )rŠ   r+   Úindicesri   Údst_typer4   Úhave_slicesÚ
directivesrh   Úall_dimensions_directrÀ   rœ   Únew_ndimr°   ÚattribÚvaluerX   rY   r"   r&   ÚidxÚhave_idxÚ	util_namer¢   rŸ   r'   Úimplr¿   s    `                         @r,   Úgenerate_buffer_slice_codez5MemoryViewSliceBufferEntry.generate_buffer_slice_codeõ   sy  ù€ ð �j‰jˆà�
‰
Ð1´F³HÑ<Ô=Ø�
‰
Ð7¼&»(ÑBÔCØ×'Ñ'¨¨XÀÐ'ÔIä #Ñ#]ÈdÏiÉiÏnÊnÓ#]Ó ]ÐØÐõ	)ð ˆØˆÜˆEØ�}Š}ã%W‘M�F˜EØ—J‘JÐ0°C¸ÀÈ5Ð3QÑQÕRð &Xð ˜A‘�Øà�1‰HˆCØ"Ÿi™iŸn™n¨SÑ1‰OˆF�Gà�~Š~äœ›“N�Ø*×0Ñ0Ö2�AÜ! %¨Ó+�CØ47·K±K°Ð?�H˜q ¨1¡™~Ù+3˜3Ÿ:™:œ<¸�A�a’Dð 3ð
 ˜,š¨1¨[ª>¸Q¸{º^ð #)�A�h‘KØ -‘Ià ,�IØ×$Ñ$×5Ñ5Ô6PÔQØ&*§o¡o°e·i±iÓ&@�A�l‘Oà˜A‘‘ð —l‘l“n�à! XÑ-�ÙØ$¨Ñ.�GØ 1’}Ü$ U§Y¡Yð&>ó ?ò ?ô Ü“HÜ" :¨lÑ#;Ó<Ü # J¨}Ñ$=Ó >ô�ð
 �]Ò#Ø&*§o¡o°e·i±iÓ&@�A�l‘OØ(�	ä(×7Ñ7¸	ÐCSÐ]^Ô_‰GˆAˆtØ�H‰H�TŽNðk ñn Ø�N‰N×'Ñ'Ð(:¸1Ñ(=Õ>ð r.   N)T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r‹   r‘   r”   r—   r�   rš   rë   r·   r.   r,   r‚   r‚   ©   s,   „ ñò	ò7ò4ò2ò=ó
,ó\X?r.   r‚   c                 ó^   — t        j                  | «      }t        j                  | |||¬«      S )N)ÚstartÚstopÚstep)r   ÚNoneNodeÚ	SliceNode)rÛ   Únones     r,   Úempty_slicer÷   P  s.   € Ü×Ñ˜cÓ"€DÜ×Ñ˜s¨$Ø$(¨tô5ð 5r.   c                 óZ  — g }d}d}| D �cg c]  }|j                   sŒ|‘Œ }}t        | «      t        |«      z
  }| D ]–  }t        |t        j                  «      rKd}t        |j                  «      }	|r|j                  |	«       ŒH||z
  dz   }
|j                  |	g|
z  «       d}Œh|xs |j                  xs |j                   }|j                  |«       Œ˜ t        |«      t        |«      z
  }||k  r2d}||z
  }
|j                  t        | d   j                  «      g|
z  «       |||fS c c}w )NFTr   rÁ   )
rÕ   ÚlenÚ
isinstancer   ÚEllipsisNoder÷   rÛ   r½   r]   rÖ   )rß   rg   r:   Úseen_ellipsisrá   ÚnewaxisÚnewaxesÚ	n_indicesr°   Ú
full_sliceÚnslicesÚresult_lengths               r,   Úunellipsifyr  V  s"  € Ø€FØ€MØ€Ká&-ÓA¡g˜7°·³Šw g€GÐAÜ�G“œs 7›|Ñ+€IãˆÜ�eœY×3Ñ3Ô4ØˆKÜ$ U§Y¡YÓ/ˆJáØ—‘˜jÕ)à Ñ*¨QÑ.�Ø—‘˜z˜l¨WÑ4Ô5Ø $‘à%ÒH¨¯©ÒH¸5¿=¹=ˆKØ�M‰M˜%Õ ð ô ˜“K¤# g£,Ñ.€MØ�tÒØˆØ˜Ñ&ˆØ�‰”{ 7¨2¡;§?¡?Ó3Ð4°wÑ>Ô?à˜ Ð'Ð'ùò1 Bs
   ‹D(�D(c                 óŒ   — | dk(  r|dv ry| dk(  r|dk(  ry| dk(  r|dv ry| dk(  r|dk(  ry| d	k(  r|dv ry
| |fdk(  s	J | |f«       ‚y)Nr   )r    r!   rŸ   r   r    r   r¢   r¥   r   r    ©r   r   r¦   r·   )rX   rY   s     r,   r©   r©   v  s~   € Ø�Ò˜GÐ'<Ñ<ØØ	�6Ò	˜g¨Ò1Ø#Ø	�5Š˜WÐ(=Ñ=ØØ	�5Š˜W¨Ò0Ø$Ø	�8Ò	 Ð+@Ñ @Øà˜Ð Ð$8Ò8ÐK¸6À7Ð:KÓKÐ8Ør.   c                 ó   — | dv sJ ‚d| |fz  S )N©ÚCÚFz!__pyx_memviewslice_is_contig_%s%dr·   )Úcontig_typerg   s     r,   Úget_is_contig_func_namer  †  s    € Ø˜*Ñ$Ð$Ð$Ø.°+¸tÐ1DÑDÐDr.   c                 ó\   — | dv sJ ‚t        t        || ¬«      }t        d|t        g¬«      }|S )Nr  )rg   r
  ÚMemviewSliceCheckContig©rÑ   Úrequires)r×   Útemplate_contextÚload_memview_c_utilityÚis_contig_utility)r
  rg   r  Úutilitys       r,   Úget_is_contig_utilityr  ‹  s:   € Ø˜*Ñ$Ð$Ð$ÜÔ D°kÔB€AÜ$Ð%>ÈÜ/@Ð.AôC€Gà€Nr.   c                 ón   — | j                   s| j                  r|st        | |||«      S t        | |||«      S re   )rV   rW   ÚContigSliceIterÚStridedSliceIter)Ú
slice_typeÚslice_resultrg   r+   Úforce_strideds        r,   Ú
slice_iterr  “  s7   € Ø×Ò *×"8Ò"8Á-Ü˜z¨<¸¸tÓDÐDä 
¨L¸$ÀÓEÐEr.   c                   ó   — e Zd Zd„ Zy)Ú	SliceIterc                 ó<   — || _         || _        || _        || _        y re   )r  r  r+   rg   )rŠ   r  r  rg   r+   s        r,   r‹   zSliceIter.__init__›  s   € Ø$ˆŒØ(ˆÔØˆŒ	Øˆ�	r.   N)rì   rí   rî   r‹   r·   r.   r,   r  r  š  s   „ ór.   r  c                   ó   — e Zd Zd„ Zd„ Zy)r  c                 ó”  ‡ — ‰ j                   }|j                  «        ‰ j                  j                  j	                  «       }dj                  ˆ fd„t        ‰ j                  «      D «       «      }|j                  d|z  «       |j                  d«       |j                  |›d|›d‰ j                  ›d�«       |j                  d«       y	)
Nr¤   c              3   ó@   •K  — | ]  }d ‰j                   |fz  –— Œ y­w)r–   N)r  )r¸   r   rŠ   s     €r,   r¹   z.ContigSliceIter.start_loops.<locals>.<genexpr>©  s)   øè ø€ ð  ;Ù)9 Að !/°$×2CÑ2CÀQÐ1GÕ GÙ)9ùs   ƒz"Py_ssize_t __pyx_temp_extent = %s;zPy_ssize_t __pyx_temp_idx;z *__pyx_temp_pointer = (r§   z.data;zPfor (__pyx_temp_idx = 0; __pyx_temp_idx < __pyx_temp_extent; __pyx_temp_idx++) {Ú__pyx_temp_pointer)
r+   Úbegin_blockr  r`   r¨   ÚjoinÚrangerg   r)   r  )rŠ   r+   r¯   Ú
total_sizes   `   r,   Ústart_loopszContigSliceIter.start_loops£  s§   ø€ Ø�y‰yˆØ×ÑÔà—O‘O×)Ñ)×@Ñ@ÓBˆ	à—Z‘Zó  ;Ü).¨t¯y©yÔ)9ó ;ó ;ˆ
à�
‰
Ð7¸*ÑDÔEØ�
‰
Ð/Ô0Ø�
‰
Ú’y $×"3Ó"3ð5ô 	6à�
‰
ð .ô 	/ð $r.   c                 ó¤   — | j                   j                  d«       | j                   j                  d«       | j                   j                  «        y )Nz__pyx_temp_pointer += 1;Ú})r+   r)   Ú	end_blockr�   s    r,   Ú	end_loopszContigSliceIter.end_loopsµ  s3   € Ø�	‰	�‰Ð2Ô3Ø�	‰	�‰˜ÔØ�	‰	×ÑÕr.   N©rì   rí   rî   r'  r+  r·   r.   r,   r  r  ¢  s   „ ò$ó$r.   r  c                   ó   — e Zd Zd„ Zd„ Zy)r  c                 ó,  — | j                   }|j                  «        t        | j                  «      D ]a  }|| j                  |f}|j                  d|z  «       |j                  d|z  «       |j                  d|z  «       |j                  d|z  «       Œc |j                  d| j                  z  «       t        | j                  «      D ]8  }|dkD  r|j                  d||dz
  fz  «       |j                  d	||||fz  «       Œ: d
| j                  dz
  z  S )Nz/Py_ssize_t __pyx_temp_extent_%d = %s.shape[%d];z1Py_ssize_t __pyx_temp_stride_%d = %s.strides[%d];zchar *__pyx_temp_pointer_%d;zPy_ssize_t __pyx_temp_idx_%d;z__pyx_temp_pointer_0 = %s.data;r»   z.__pyx_temp_pointer_%d = __pyx_temp_pointer_%d;r   z\for (__pyx_temp_idx_%d = 0; __pyx_temp_idx_%d < __pyx_temp_extent_%d; __pyx_temp_idx_%d++) {z__pyx_temp_pointer_%d)r+   r#  r%  rg   r  r)   )rŠ   r+   r   Úts       r,   r'  zStridedSliceIter.start_loops¼  s  € Ø�y‰yˆØ×ÑÔä�t—y‘yÖ!ˆAØ�4×$Ñ$ aÐ'ˆAØ�J‰JÐHÈ1ÑLÔMØ�J‰JÐJÈQÑNÔOØ�J‰JÐ5¸Ñ9Ô:Ø�J‰JÐ6¸Ñ:Õ;ð "ð 	�
‰
Ð4°t×7HÑ7HÑHÔIä�t—y‘yÖ!ˆAØ�1ŠuØ—
‘
ÐKÈqÐRSÐVWÑRWÈjÑXÔYà�J‰Jð 5à89¸1¸aÀ°|ñDõ Eð	 "ð '¨$¯)©)°a©-Ñ8Ð8r.   c                 óÈ   — | j                   }t        | j                  dz
  dd«      D ])  }|j                  d||fz  «       |j                  d«       Œ+ |j	                  «        y )Nr   rÁ   z.__pyx_temp_pointer_%d += __pyx_temp_stride_%d;r)  )r+   r%  rg   r)   r*  )rŠ   r+   r   s      r,   r+  zStridedSliceIter.end_loopsÓ  sS   € Ø�y‰yˆÜ�t—y‘y 1‘} b¨"Ö-ˆAØ�J‰JÐGÈ1ÈaÈ&ÑPÔQØ�J‰J�s�Oð .ð 	�‰Õr.   Nr,  r·   r.   r,   r  r  »  s   „ ò9ó.r.   r  c                 óP   — | j                   rd}nd}d| j                  «       ›d|›�S )Nr%   r$   Ú__pyx_memoryview_copy_slice_r'   )rV   Úspecialization_suffix)ÚmemviewÚc_or_fs     r,   Úcopy_c_or_fortran_cnamer6  Ü  s0   € Ø×ÒØ‰àˆøð ×)Ñ)Õ+©Vð5ð 5r.   c                 óð  — |j                   |j                   k7  rF|j                   j                  r#|j                   j                  |j                   k(  st        | d«       y t	        |j
                  «      t	        |j
                  «      k7  rt        | d«       y |j                  s|j                  st        | d«       y |j
                  D ]  \  }}|dk7  sŒt        | d«        y  |j                  r	d}t        }n|j                  sJ ‚d}t        }t        dt        t        ||j                   j                  «       ||j                  t        |«      t!        |j                   j"                  «      ¬	«      ¬
«      S )Nzdtypes must be the same!z!number of dimensions must be samez%to_memview must be c or f contiguous.r   z2cannot handle 'full' or 'ptr' access at this time.r%   ÚfortranÚCopyContentsUtility)ÚmodeÚ
dtype_declÚcontig_flagrg   Ú
func_cnameÚdtype_is_objectrÐ   )r`   Úis_cv_qualifiedÚcv_base_typer   rù   r^   rV   rW   rO   rP   r  r×   r  r¨   rg   r6  rÜ   r{   )rÛ   Úfrom_memviewÚ
to_memviewrX   rY   r:  r<  s          r,   Úget_copy_new_utilityrC  æ  sE  € Ø×Ñ˜j×.Ñ.Ò.Ø×#Ñ#×3Ò3¸×8JÑ8J×8WÑ8WÐ[e×[kÑ[kÒ8kÜˆcÐ-Ô.ØÜ
ˆ<×ÑÓ¤ Z§_¡_Ó!5Ò5ÜˆcÐ6Ô7ØØ×"Ò" j×&<Ò&<ÜˆcÐ:Ô;Øà)×.Ô.Ñˆ�Ø�XÓÜ�#ÐKÔLÙð /ð
 ×ÒØˆÜ*‰à×%Ò%Ð%Ð%ØˆÜ*ˆä!ØÜÜØØ!×'Ñ'×>Ñ>Ó@Ø#Ø—‘Ü.¨zÓ:Ü 
× 0Ñ 0× <Ñ <Ó=ô
ôð r.   c                 óø  — | j                   j                  }|j                  «        |j                  }t	        dD �cg c]  }|j                  |«      ‘Œ c}«      }t	        dD �cg c]  }|j                  |«      ‘Œ c}«      }d\  }}d\  }	}
|	d}}g }t        |«      D �]Ç  \  }}|j                  j                  s$t        |j                  j                  t        «      ‚|j                  j                  s$t        |j                  j                  t        «      ‚|j                  j                  r|j                  |	|
f«       Œ¥t!        |j                  t"        «      rW|j                  j%                  | «      dk7  r$t        |j                  j                  t&        «      ‚|j                  |df«       �Œt!        |j                  t(        t*        f«      rpt-        | |j                  «      }|j.                  t0        v r$|j                  t0        |j.                     «       �Œ‚t        |j                  j                  t2        «      ‚t        |j                  j                  t2        «      ‚ d}d	}t        |«      D ]?  \  }\  }}|dk(  sŒ|r$t        j                  j                  t4        «      ‚|}|d
f||<   d}ŒA |rÿ|t7        |«      dz
  k(  rd}n*d}|r&||dz
     d   dvrt        ||   j                  d«      ‚|r7d}t        t9        |«      «      D ]  \  }\  }}|dv sŒt7        |«      |z
  dz
  }Œ  |dz   }t7        |«      |z
  }t        ||| «      D ]S  \  }\  }}|dz   |z   }|dk7  rt        ||   j                  d«      ‚|d
k(  rt        ||   j                  d«      ‚||f||<   ŒU |r|d   \  }}|d
f|d<   t;        |D �cg c]  }|j                  j                  ‘Œ c}|||«       |S c c}w c c}w c c}w )zº
    get_axes_specs(env, axes) -> list of (access, packing) specs for each axis.
    access is one of 'full', 'ptr' or 'direct'
    packing is one of 'contig', 'strided' or 'follow'
    )r   r   r   ©r   r    r!   ©FFr\   r!   r   Úcfcontigr»   Fr   T)r   r   z>Fortran contiguous specifier must follow an indirect dimensionrÁ   ©r   r   r   z>Indirect dimension may not follow Fortran contiguous dimensionzDimension may not be contiguous)rÑ   Úcython_scopeÚload_cythonscopeÚ	viewscopeÚtupleÚlookupr™   rñ   rÕ   r   rÛ   Ú	START_ERRrò   ÚSTOP_ERRró   r½   rú   r   Úcompile_time_valueÚSTEP_ERRr   r   Ú_get_resolved_specÚnameÚview_constant_to_access_packingÚINVALID_ERRÚBOTH_CF_ERRrù   ÚreversedÚvalidate_axes_specs)Úenvr^   ÚcythonscoperK  rS  Úaccess_specsÚpacking_specsrW   rV   Údefault_accessÚdefault_packingÚ	cf_accessÚ
cf_packingÚ
axes_specsrç   Úaxisr„   Ú
contig_dimÚ	is_contigrX   rY   rñ   rò   Úar#   s                            r,   Úget_axes_specsrf    sè  € ð —+‘+×*Ñ*€KØ× Ñ Ô"Ø×%Ñ%€IäÙ 9ó;Ù 9˜ð $×*Ñ*¨4Õ0Ø 9ñ;ó <€LäÙ ?óAÙ ?˜ð %×+Ñ+¨DÕ1Ø ?ñAó B€Mð  ,Ñ€K�Ø&9Ñ#€N�OØ*¨Hˆz€Ià€Jä˜t—_‰	ˆˆTØ�z‰z×!Ò!Ü˜tŸz™zŸ~™~´	Ó:Ð:à�y‰y× Ò Ü˜tŸy™yŸ}™}¬hÓ7Ð7à�9‰9×ÒØ×Ñ˜~¨Ð?Õ@ä˜Ÿ	™	¤7Ô+ð �y‰y×+Ñ+¨CÓ0°AÒ5Ü" 4§9¡9§=¡=´(Ó;Ð;à×Ñ˜y¨*Ð5Ö6ä˜Ÿ	™	¤H¬mÐ#<Ô=Ü& s¨D¯I©IÓ6ˆEØ�z‰zÔ<Ñ<Ø×!Ñ!Ô"AÀ%Ç*Á*Ñ"MÖNä" 4§9¡9§=¡=´+Ó>Ð>ô ˜tŸy™yŸ}™}¬kÓ:Ð:ð5 %ð: €JØ€IÜ"+¨JÖ"7ÑˆÑˆf�gØ�jÓ ÙÜ" 4§9¡9§=¡=´+Ó>Ð>àˆJØ% xÐ0ˆJ�s‰OØ‰Ið #8ñ àœ˜T› Q™Ò&Ø‰KàˆKá *¨Z¸!©^Ñ"<¸QÑ"?À?Ñ"RÜ" 4¨
Ñ#3×#7Ñ#7Ø#cóeð eñ àˆJÜ*3´H¸ZÓ4HÖ*IÑ&�Ñ&�f˜gØ˜_Ò,Ü!$ T£¨S¡°1Ñ!4‘Jð +Jð ˜Q‘ˆÜ�4‹y˜;Ñ&ˆÜ&/°
¸5ÀÐ0FÖ&GÑ"ˆCÑ"�&˜'Ø˜q‘. 3Ñ&ˆCØ˜Ò!Ü" 4¨¡9§=¡=ð$BóCð Cð ˜(Ò"Ü" 4¨¡9§=¡=Ø#DóFð Fà% zÐ2ˆJ�sŠOð 'Hñ ð ˜b‘>‰DˆAˆqØ ˜[ˆJ�r‰Nä±DÓ9±D¨D˜Ÿ™Ÿ›°DÑ9Ø"Ø#Ø#ô%ð
 ÐùòI;ùòAùòz :s   ¼O-Á$O2ÏO7c                 óV   — t        |«      t        j                  k\  rt        | d«       yy)NzGMore dimensions than the maximum number of buffer dimensions were used.FT)rù   r	   Úbuffer_max_dimsr   )rÛ   r^   s     r,   Úvalidate_axesri    s)   € Ü
ˆ4ƒy”G×+Ñ+Ò+Üˆcð 6ô 	7ààr.   c                 óæ   — dx}}t        | «      dk(  r| dgk(  rd}||fS | d   dk(  rt        d„ | d d D «       «      rd}||fS t        | «      dkD  r| d   dk(  rt        d„ | dd  D «       «      rd}||fS )	NFr   r  TrÁ   c              3   ó&   K  — | ]	  }|d k(  –— Œ y­w©)r   r!   Nr·   ©r¸   rb  s     r,   r¹   zis_cf_contig.<locals>.<genexpr>�  s   è ø€ ÐC¹
°�Ð+Õ+¹
ùó   ‚r»   c              3   ó&   K  — | ]	  }|d k(  –— Œ y­wrl  r·   rm  s     r,   r¹   zis_cf_contig.<locals>.<genexpr>•  s   è ø€ ÐB¹	°�Ð+Õ+¹	ùrn  )rù   rÔ   )rU   rV   rW   s      r,   rN   rN   ˆ  s§   € Ø %Ð%€K�+ä
ˆ5ƒz�Q‚˜5Ð%9Ð$:Ò:Øˆð ˜Ð#Ð#ð �‰)Ð*Ò
*ÜÑC¸¸c¸r¹
ÓCÔCàˆð ˜Ð#Ð#ô ˆe‹*�qŠ.Ø�!‰HÐ+Ò+ÜÑB¸¸a¸b¹	ÓBÔBàˆà˜Ð#Ð#r.   c                 óL   — t        | «      \  }}|ry|ry| D ]  \  }}|dv sŒ y y)Nr%   r8  rH  r   r    )rN   rT   s        r,   Úget_moderq  œ  s;   € Ü+¨EÓ2Ñ€K�áØÙ	Øã ‰ˆ�Ø�_Ò$Ùð !ð r.   )r   r    r\   )r   r    )r   r   r  )r   r   )rŸ   r    r¢   r    r¦   r¥   c                 óú  — d}d}dx}x}x}}	d}
t        |«      D ]  \  }\  }}|dk(  sŒ|}
Œ t        t        | |«      «      D ]·  \  }\  }\  }}||v r||v st        |d«      ‚|dk(  rd}n‰|d	k(  ra|rt        |d
«      ‚|
dz   t        |«      dz
  f}||vr6|dk7  r1|
dz   t        |«      dz
  k7  rd|z  }nd|d   z  }t        |d|z  «      ‚|dk7  }n#|dk(  r|rt        |d«      ‚|s|st        |d«      ‚|dv sŒ¶d}Œ¹ y )NrE  )r   r   r   FrÁ   r   zInvalid axes specification.r    Tr   z1Only one direct contiguous axis may be specified.r   zdimensions %d and %dzdimension %dr»   z$Only %s may be contiguous and directr!   zAA memoryview cannot have both follow and strided axis specifiers.z$Invalid use of the follow specifier.rH  )r™   rQ   r   rù   )Ú	positionsrU   rV   rW   r\  r[  Ú
has_contigÚ
has_followÚhas_stridedÚhas_generic_contigÚlast_indirect_dimensionrç   rX   rY   rÛ   Úvalid_contig_dimsÚdimss                    r,   rX  rX  ³  su  € à3€MØ,€Lð BGÐF€JÐF�ÐF˜kÐ,>à ÐÜ"+¨EÖ"2ÑˆÑˆf�gØ�U‹?Ø&)Ñ#ð #3ô *3´3°yÀ%Ó3HÖ)IÑ%ˆÑ%ˆcÑ$�F˜Gà˜,Ñ&Ø˜=Ñ(Ü˜sÐ$AÓBÐBà�iÒØ‰KØ˜Ò ÙÜ" 3ð )Aó Bð Bð !8¸!Ñ ;¼SÀ»ZÈ!¹^Ð KÐØÐ+Ñ+°¸%²Ø*¨QÑ.´#°e³*¸q±.Ò@Ø1Ð4EÑE‘Dà)Ð,=¸aÑ,@Ñ@�Dä" 3Ð(NÐQUÑ(UÓVÐVà 5™‰JØ˜Ò ÙÜ" 3Ð(kÓlÐlÙ¡;Ü" 3Ð(NÓOÐOà�_Ò$Ø‰Kñ= *Jr.   c                 ó¦   — t        |t        «      rt        | |«      S t        |t        «      rt	        | |«      S t        |j                  t        «      ‚re   )rú   r   Ú_resolve_NameNoder   Ú_resolve_AttributeNoder   rÛ   rU  )rY  Úspecs     r,   rR  rR  á  sA   € ä�$œÔ!Ü   dÓ+Ð+Ü	�Dœ-Ô	(Ü% c¨4Ó0Ð0ä˜4Ÿ8™8¤[Ó1Ð1r.   c                 ó:  — 	 | j                  |j                  «      j                  }| j                  j                  j                  }|j                  |«      }|€t        |j                  t        «      ‚|S # t        $ r t        |j                  t
        «      ‚w xY wre   )
rM  rS  ÚAttributeErrorr   rÛ   rU  rÑ   rI  rK  ÚNOT_CIMPORTED_ERR)rY  ÚnodeÚresolved_namerK  r„   s        r,   r|  r|  ê  s„   € ð2ØŸ
™
 4§9¡9Ó-×2Ñ2ˆð —‘×(Ñ(×2Ñ2€IØ×Ñ˜]Ó+€EØ€}Ü˜4Ÿ8™8Ô%6Ó7Ð7à€Løô ò 2Ü˜4Ÿ8™8¤[Ó1Ð1ð2ús   ‚%A6 Á6$Bc                 ó:  — g }t        |t        «      r9|j                  d|j                  «       |j                  }t        |t        «      rŒ9t        |t
        «      r|j                  d|j                  «       nt        |j                  t        «      ‚|d d }|sJ ‚| }|D ]F  }|j                  |«      }|r|j                  st        |j                  d|z  «      ‚|j                  }ŒH |j                  |d   «      }|st        |j                  d|d   z  «      ‚|S )Nr»   rÁ   zundeclared name not builtin: %szNo such attribute '%s')rú   r   ÚinsertÚ	attributeÚobjr   rS  r   rÛ   ÚEXPR_ERRrM  Ú	as_module)rY  r‚  ÚpathÚmodnamesrt   ÚmodnameÚmodr„   s           r,   r}  r}  ÷  sý   € Ø€DÜ
�Tœ=Ô
)Ø�‰�A�t—~‘~Ô&Ø�x‰xˆô �Tœ=Õ
)ô �$œÔ!Ø�‰�A�t—y‘yÕ!ä˜4Ÿ8™8¤XÓ.Ð.Ø�C�Rˆy€Há€Oˆ8à€EÛˆØ�l‰l˜7Ó#ˆÙ˜#Ÿ-š-ÜØ—H‘HÐ?À'ÑIóKð Kà—‘‰ð ð �L‰L˜˜b™Ó"€EÙÜ˜4Ÿ8™8Ð%=ÀÀRÁÑ%HÓIÐIà€Lr.   Nc                 ó4   — t        j                  | dfd|i|¤ŽS )NzMemoryView.pyxrÑ   )r   Úload)Úutil_code_namerÑ   Úkwargss      r,   Úload_memview_cy_utilityr’    s*   € Ü×!Ñ! .Ð2Bñ =Ø*1ð=Ø5;ñ=ð =r.   rÐ   c                óf   — |€t        j                  | |fi |¤ŽS t        j                  | |fd|i|¤ŽS )NrÑ   )r   r�  r   )r�  Úutil_code_filenamerÑ   r‘  s       r,   r  r    sN   € ð €Ü×Ñ Ð0BÑMÀfÑMÐMä!×&Ñ& ~Ð7Iñ BØ/6ðBØ:@ñBð 	Br.   c                 ó¾   — | j                   j                  ry | j                   j                  }|j                  «        d|j                  j                  d«      _        y )NTÚarray_cwrapper)rÑ   Úshared_utility_qualified_namerI  rJ  rK  rM  Úused)rY  rI  s     r,   Úuse_cython_array_utility_coder™  $  sG   € Ø
‡{�{×0Ò0ØØ—;‘;×+Ñ+€LØ×!Ñ!Ô#Ø;?€L×Ñ×!Ñ!Ð"2Ó3Õ8r.   rm   )Úmax_dimsÚmemviewslice_nameÚmemslice_initÚTHREAD_LOCKS_PREALLOCATEDc                  ó*   — t        dt        g ¬«      } | S )NÚMemviewSliceStructr  )r  r  )Úmemviewslice_declare_codes    r,   Ú_get_memviewslice_declare_coder¡  2  s   € Ü 6Ø Ü$Øô!Ðð %Ð$r.   ÚAtomicszSynchronization.c)r”  rÑ   ÚMemviewSliceIndexc                  ó:   — t        dt        j                  g¬«      S )NÚBufferFormatFromTypeInfo)r  )r’  r   Ú_typeinfo_to_format_coder·   r.   r,   Ú_get_typeinfo_to_format_coder§  >  s   € Ü"Ø"¬f×.MÑ.MÐ-NôPð Pr.   c                 ó@   — | rt        d| t        g ¬«      S t        «       S )NzBufferFormatFromTypeInfo.pxd©r  r  )r   r  r§  ©r—  s    r,   Úget_typeinfo_to_format_coder«  B  s)   € Ù$Ü&Ø*Ø)Ü-Øô	ð 	ô ,Ó-Ð-r.   ÚMemviewSliceIsContigÚOverlappingSlicesÚMemviewRefcountÚMemviewSliceInitrŸ  ÚMemviewSliceCopyÚSliceMemoryviewSlicec                  ó¬   — t        dt        t        j                  t        j                  t
        t        t        t        t        t        t        g	¬«      } | S )NzView.MemoryViewr  )r’  r  r   Úbuffer_struct_declare_codeÚbuffer_formats_declare_coder   Úrefcount_utilityÚatomic_utilityr  Úoverlapping_utilityÚcopy_contents_new_utilityrÚ   )Úmemoryview_utility_codes    r,   Ú_get_memoryview_utility_coderº  V  sG   € ä5ØÜ$ä×5Ñ5Ü×6Ñ6Ü-Ü$Ü"Ü%Ü'Ü-Ü.ð
ôÐð  #Ð"r.   c           
      ó†   — t        d| t        t        j                  t        j                  t
        t        t        g¬«      }|S )NzMemoryView.pxdr©  )r   r  r   r³  r´  r   rµ  r¶  )r—  Úshared_utility_codes     r,   Ú#_get_memoryview_shared_utility_coder½  k  s>   € ä1ØØ%Ü)ä×1Ñ1Ü×2Ñ2Ü)Ü Üðô	Ðð Ðr.   c                 ó0   — | rt        | «      S t        «       S re   )r½  rº  rª  s    r,   Úget_view_utility_coder¿  |  s   € Ù$Ü2Ð3PÓQÐQä+Ó-Ð-r.   )ÚarrayÚ
memoryviewr–  rŸ   r    r¢   r¦   r¥   )FTrF  )r»   )Fre   )rÏ   )_ÚErrorsr   r   Ú r   r   r   r   r	   r   ÚCoder   r   r   r   r   r   r   rN  rO  rQ  rV  rU  r�  rˆ  ÚCF_ERRÚERR_UNINITIALIZEDÚformat_flagrO   rP   Úmemview_any_contiguousrR   rS   ÚMEMVIEW_DIRECTÚMEMVIEW_PTRÚMEMVIEW_FULLÚMEMVIEW_CONTIGÚMEMVIEW_STRIDEDÚMEMVIEW_FOLLOWÚ_spec_to_constÚ_spec_to_abbrevr-   rF   r>   rZ   rc   rj   rv   ÚBufferEntryr‚   r÷   r  r©   r  r  r  r  r  r  r6  rC  rf  ri  rN   rq  rT  rX  rR  r|  r}  r’  r  r™  rh  Úmemviewslice_cnamer_   Údefault_valuer  r¡  r¶  r¬   r§  r«  r  r·  rµ  Úslice_init_utilityr   r¸  rÚ   Úcached_functionrº  r½  r¿  Úview_utility_allowlistr·   r.   r,   Ú<module>r×     sÌ  ðß 'Ý ß 7Ñ 7Ý Ý ß 1ß CÝ Ý Ý à&€	Ø@€Ø;€ØN€Ø+€ØAÐ ØJ€Ø	G€ðCÐ ð €à<Ð Ø<Ð Ø@Ð Ø%Ð Ø+Ð à'€Ø$€Ø%€Ø'€Ø(€Ø'€ð "ØØØ!Ø"Ø!ñ
€ð ØØØØØñ€ò0ð BFó,ð, AFó4ò$&ò Fò+óôBd? ×!3Ñ!3ô d?òN5ò(ò@ò Eò
óF÷ñ ô�iô ô2�yô òB5ò$òNoòdò$ò(ð 2Ø1Ø1Ø0Ø0Ø0ñ#Ð ò, ò\2òòó>=ð
 ,<ðBð ôBò@ð ×'Ñ'Ø×2Ñ2Ø×3Ñ3×AÑAØ!"ñ	Ð ò%ñ (ØÐ"5Ð?OôQ€ñ 4Ð4GÓHÐ òPò.ñ +Ð+AÓBÐ Ù,Ð-@ÓAÐ Ù)Ð*;Ó<Ð Ù+Ð,>Ó?Ð Ù2Ð3GÐQaÔbÐ Ù2Ð3EÓFÐ Ù3Ð4JÓKÐ ð ×Ññ#ó ð#ð( ×Ññó ðò .ð1Ñ r.   