Ë
    âQ(hÃi  ã                   óX  — d gZ ddlZddlZddlZddlZddlZddddddd	d	d
d	d	dddddœZdddddddddddddddœZi 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 G d,„ d-«      Z G d.„ d/e«      Zd0„ Zd1„ Zd2„ Zd3„ Zd4„ Zd5„ Zd6„ Zd7„ Z d8„ Z!d9„ Z"d:„ Z# G d;„ d<e$«      Z%	 	 d>d=„Z&y)?Úreadsavé    Nz>u1z>i2z>i4z>f4z>f8z>c8z|Oz>c16z>u2z>u4z>i8z>u8)é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   ÚSTART_MARKERÚCOMMON_VARIABLEÚVARIABLEÚSYSTEM_VARIABLEÚ
END_MARKERÚ	TIMESTAMPÚCOMPILEDÚIDENTIFICATIONÚVERSIONÚHEAP_HEADERÚ	HEAP_DATAÚ	PROMOTE64ÚNOTICEÚDESCRIPTION)r   r   r   r   r	   r   r   r   r   r   é   é   é   é   c                 óh   — | j                  «       }|dz  dk7  r| j                  |dz   |dz  z
  «       y)z+Align to the next 32-bit position in a filer   r   N)ÚtellÚseek)ÚfÚposs     úK/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/io/_idl.pyÚ	_align_32r+   K   s6   € ð �&‰&‹(€CØ
ˆQ�w�!‚|Ø	�‰ˆs�Q‰w˜˜q™Ñ Ô!Ø
ó    c                 ó&   — | j                  |«       y)zSkip `n` bytesN©Úread©r(   Úns     r*   Ú_skip_bytesr2   T   s   € à‡F�Fˆ1„IØ
r,   c                 ó$   — | j                  |«      S )zRead the next `n` bytesr.   r0   s     r*   Ú_read_bytesr4   Z   s   € à�6‰6�!‹9Ðr,   c                 ó~   — t        j                  t        j                  d| j	                  d«      dd «      d   «      S )zRead a single bytez>Br   Nr   r   )ÚnpÚuint8ÚstructÚunpackr/   ©r(   s    r*   Ú
_read_byter;   _   s/   € ä�8‰8”F—M‘M $¨¯©¨q«	°"°1¨Ó6°qÑ9Ó:Ð:r,   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )úRead a signed 32-bit integerú>lr   r   ©r6   Úint32r8   r9   r/   r:   s    r*   Ú
_read_longrA   d   ó)   € ä�8‰8”F—M‘M $¨¯©¨q«	Ó2°1Ñ5Ó6Ð6r,   c                 ó~   — t        j                  t        j                  d| j	                  d«      dd «      d   «      S )zRead a signed 16-bit integerz>hr   r   r   )r6   Úint16r8   r9   r/   r:   s    r*   Ú_read_int16rE   i   s/   € ä�8‰8”F—M‘M $¨¯©¨q«	°!°A¨Ó7¸Ñ:Ó;Ð;r,   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )r=   z>ir   r   r?   r:   s    r*   Ú_read_int32rG   n   rB   r,   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead a signed 64-bit integerz>qr   r   )r6   Úint64r8   r9   r/   r:   s    r*   Ú_read_int64rJ   s   rB   r,   c                 ó~   — t        j                  t        j                  d| j	                  d«      dd «      d   «      S )zRead an unsigned 16-bit integerz>Hr   r   r   )r6   Úuint16r8   r9   r/   r:   s    r*   Ú_read_uint16rM   x   s/   € ä�9‰9”V—]‘] 4¨¯©°«°1°Q¨Ó8¸Ñ;Ó<Ð<r,   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead an unsigned 32-bit integerú>Ir   r   )r6   Úuint32r8   r9   r/   r:   s    r*   Ú_read_uint32rQ   }   ó)   € ä�9‰9”V—]‘] 4¨¯©°«Ó3°AÑ6Ó7Ð7r,   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead an unsigned 64-bit integerz>Qr   r   )r6   Úuint64r8   r9   r/   r:   s    r*   Ú_read_uint64rU   ‚   rR   r,   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead a 32-bit floatz>fr   r   )r6   Úfloat32r8   r9   r/   r:   s    r*   Ú_read_float32rX   ‡   ó)   € ä�:‰:”f—m‘m D¨!¯&©&°«)Ó4°QÑ7Ó8Ð8r,   c                 óx   — t        j                  t        j                  d| j	                  d«      «      d   «      S )zRead a 64-bit floatz>dr   r   )r6   Úfloat64r8   r9   r/   r:   s    r*   Ú_read_float64r\   Œ   rY   r,   c                   ó   — e Zd ZdZd„ Zy)ÚPointerzClass used to define pointersc                 ó   — || _         y ©N)Úindex)Úselfra   s     r*   Ú__init__zPointer.__init__”   s   € ØˆŒ
Ør,   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rc   © r,   r*   r^   r^   ‘   s
   „ Ù'ór,   r^   c                   ó   — e Zd ZdZy)ÚObjectPointerz$Class used to define object pointersN)rd   re   rf   rg   rh   r,   r*   rj   rj   ™   s   „ Ù.Ør,   rj   c                 óz   — t        | «      }|dkD  r(t        | |«      j                  d«      }t        | «       |S d}|S )zRead a stringr   Úlatin1Ú )rA   r4   Údecoder+   )r(   ÚlengthÚcharss      r*   Ú_read_stringrq   ž   sC   € ä˜‹]€FØ�‚zÜ˜A˜vÓ&×-Ñ-¨hÓ7ˆÜ�!Œð €Lð ˆØ€Lr,   c                 ór   — t        | «      }|dkD  r$t        | «      }t        | |«      }t        | «       |S d}|S )z.Read a data string (length is specified twice)r   rm   )rA   r4   r+   )r(   ro   Ústring_datas      r*   Ú_read_string_datart   ©   sC   € ä˜‹]€FØ�‚zÜ˜A“ˆÜ! ! VÓ,ˆÜ�!Œð Ðð ˆØÐr,   c                 óì  — |dk(  r$t        | «      dk7  rt        d«      ‚t        | «      S |dk(  rt        | «      S |dk(  rt        | «      S |dk(  rt	        | «      S |dk(  rt        | «      S |dk(  r1t	        | «      }t	        | «      }t        j                  ||dz  z   «      S |d	k(  rt        | «      S |d
k(  rt        d«      ‚|dk(  r1t        | «      }t        | «      }t        j                  ||dz  z   «      S |dk(  rt        t        | «      «      S |dk(  rt        t        | «      «      S |dk(  rt        | «      S |dk(  rt        | «      S |dk(  rt        | «      S |dk(  rt        | «      S t        d|z  «      ‚)z*Read a variable with a specified data typer   z*Error occurred while reading byte variabler   r   r   r   r	   y              ð?r
   r   z'Should not be here - please report thisr   r   r   r   r   r   r   z)Unknown IDL type: %i - please report this)rG   Ú	Exceptionr;   rE   rX   r\   r6   Ú	complex64rt   Ú
complex128r^   rj   rM   rQ   rJ   rU   )r(   ÚdtypeÚrealÚimags       r*   Ú
_read_datar|   µ   s}  € à�‚zÜ�q‹>˜QÒÜÐHÓIÐIÜ˜!‹}ÐØ	�!ŠÜ˜1‹~ÐØ	�!ŠÜ˜1‹~ÐØ	�!ŠÜ˜QÓÐØ	�!ŠÜ˜QÓÐØ	�!ŠÜ˜QÓˆÜ˜QÓˆÜ�|‰|˜D 4¨"¡9Ñ,Ó-Ð-Ø	�!ŠÜ  Ó#Ð#Ø	�!ŠÜÐAÓBÐBØ	�!ŠÜ˜QÓˆÜ˜QÓˆÜ�}‰}˜T D¨2¡IÑ-Ó.Ð.Ø	�"ŠÜ”{ 1“~Ó&Ð&Ø	�"ŠÜœ[¨›^Ó,Ð,Ø	�"ŠÜ˜A‹ÐØ	�"ŠÜ˜A‹ÐØ	�"ŠÜ˜1‹~ÐØ	�"ŠÜ˜A‹ÐäÐCÀeÑKÓLÐLr,   c           	      ó  — |d   }|d   }g }|D ]“  }|d   s|d   r8|j                  |d   j                  «       |d   ft        j                  f«       ŒE|d   t        v r4|j                  |d   j                  «       |d   ft        |d      f«       Œ„t        d|d   z  «      ‚ t        j                  j                  |f|¬«      }t        |«      D ]v  }|D ]o  }|d   }|d   r)t        | |d	   |d      |d
   |d      «      ||d      |<   Œ6|d   r t        | ||d	   |d      «      ||d      |<   Œ[t        | |«      ||d      |<   Œq Œx |d   dkD  r5|d   dt        |d   «       }	|	j                  «        |j                  |	«      }|S )z�
    Read a structure, with the array and structure descriptors given as
    `array_desc` and `structure_desc` respectively.
    Ú	nelementsÚtagtableÚ	structureÚarrayÚnameÚtypecodez Variable type %i not implemented©ry   ÚarrtableÚstructtableÚndimsr   ÚdimsN)ÚappendÚlowerr6   Úobject_Ú
DTYPE_DICTrv   ÚrecÚrecarrayÚrangeÚ_read_structureÚ_read_arrayr|   ÚintÚreverseÚreshape)
r(   Ú
array_descÚstruct_descÚnrowsÚcolumnsry   Úcolr€   Úirˆ   s
             r*   r�   r�   ß   sö  € ð �{Ñ#€EØ˜*Ñ%€Gà€EØò 	MˆØˆ{Ò˜s 7š|Ø�L‰L˜3˜v™;×,Ñ,Ó.°°F±Ð<¼b¿j¹jÐIÕJà�:‰¤*Ñ,Ø—‘˜s 6™{×0Ñ0Ó2°C¸±KÐ@Ü$.¨s°:©Ñ$?ðAõ Bô  Ð BØ<?À
¹Oñ!Ló Mð Mð	Mô —‘—‘  	°�Ó7€Iä�5‹\ò AˆØò 
	AˆCØ˜
‘OˆEØ�;ÒÜ,;¸AØ&1°*Ñ&=¸cÀ&¹kÑ&JØ&1°-Ñ&@ÀÀVÁÑ&Mó-O�	˜#˜f™+Ñ& qÒ)ð �W’Ü,7¸¸5Ø&1°*Ñ&=¸cÀ&¹kÑ&Jó-L�	˜#˜f™+Ñ& qÒ)ô -7°q¸%Ó,@�	˜#˜f™+Ñ& qÒ)ñ
	AðAð �'Ñ˜QÒØ˜&Ñ!Ð";¤3 z°'Ñ':Ó#;Ð<ˆØ�‰ŒØ×%Ñ% dÓ+ˆ	àÐr,   c                 óŒ  — |dv r`|dk(  r*t        | «      }||d   k7  rt        j                  dd¬«       t        j                  | j                  |d   «      t        |   ¬«      }n—|dv r:t        j                  | j                  |d   d	z  «      t        |   ¬«      dd
d	…   }nYg }t        |d   «      D ]!  }|}t        | |«      }|j                  |«       Œ# t        j                  |t        j                  ¬«      }|d   dkD  r5|d   d
t        |d   «       }|j                  «        |j                  |«      }t        | «       |S )z`
    Read an array of type `typecode`, with the array descriptor given as
    `array_desc`.
    )	r   r   r   r   r	   r   r   r   r   r   Únbytesz.Not able to verify number of bytes from headerr   ©Ú
stacklevelr„   )r   r   r   Nr~   r‡   rˆ   )rG   ÚwarningsÚwarnr6   Ú
frombufferr/   rŒ   r�   r|   r‰   r�   r‹   r’   r“   r”   r+   )	r(   rƒ   r•   rœ   r�   rš   ry   Údatarˆ   s	            r*   r‘   r‘     sM  € ð Ð1Ñ1à�qŠ=Ü  “^ˆFØ˜ HÑ-Ò-Ü—‘ÐNØ)*õ,ô —‘˜aŸf™f Z°Ñ%9Ó:Ü$.¨xÑ$8ô:‰ð 
�WÑ	ô —‘˜aŸf™f Z°Ñ%9¸!Ñ%;Ó<Ü$.¨xÑ$8ô:Ø:;¸$¸Q¸$ñ@‰ð ˆÜ�z +Ñ.Ó/ò 	ˆAØˆEÜ˜a Ó'ˆDØ�L‰L˜Õð	ô
 —‘˜¤b§j¡jÔ1ˆð �'Ñ˜QÒØ˜&Ñ!Ð";¤3 z°'Ñ':Ó#;Ð<ˆØ�‰ŒØ—‘˜dÓ#ˆô ˆa„Là€Lr,   c                 óŽ  — dt        | «      i}t        | «      }|t        | «      j                  t        j                  «      dz  z  }t        | d«       |d   t        vrt        d|d   z  «      ‚t        |d      |d<   |d   dv rÔ|d   dk(  rt        | «      |d<   nt        | «      |d<   t        | d«       t        | «      }|d	   d
k(  r%|| j                  «       k(  rd|d<   �nGt        d«      ‚t        | «      }|dk7  rt        d«      ‚|d   rt        | |d   |d   «      |d<   �n|d   rt        | |d	   |d   «      |d<   �nç|d	   }t        | |«      |d<   �nÑ|d   dk(  r8t        | d«       t        | «      |d<   t        | «      |d<   t        | «      |d<   �n‘|d   dk(  r:t        | «      |d<   t        | «      |d<   t        | «      |d<   t        | «      |d<   �nO|d   dk(  r,t        | «      |d<   t        | «      |d <   t        | «      |d!<   �n|d   d"k(  rt        | «      |d#<   �n|d   d$k(  rt        | «      |d%<   nì|d   d&k(  r7t        | «      |d'<   t!        |d'   «      D �cg c]  }t        | «      ‘Œ c}|d(<   n­|d   d)k(  rEt        | «      |d*<   t        | «      |d+<   t!        |d*   «      D �cg c]  }t        | «      ‘Œ c}|d,<   n`|d   d-k(  rd.|d/<   nR|d   d0k(  rt#        j$                  d1d2¬3«       n2|d   d4k(  rt#        j$                  d5d2¬3«       nt        d6|d   › d7�«      ‚| j'                  |«       |S c c}w c c}w )8z!Function to read in a full recordÚrectypeì        r   zUnknown RECTYPE: %i)r   r   r   ÚvarnameÚ
heap_indexrƒ   r   Nr¢   zUnexpected type code: 0r
   zVARSTART is not 7r€   r•   r–   r�   r   i   ÚdateÚuserÚhostr   ÚformatÚarchÚosÚreleaseÚIDENTIFICATONÚauthorÚtitleÚidcoder   Únoticer    Údescriptionr   ÚnvaluesÚindicesÚCOMMONBLOCKÚnvarsr‚   Úvarnamesr   TÚendÚUNKNOWNzSkipping UNKNOWN recordr   r�   r   zSkipping SYSTEM_VARIABLE recordzrecord['rectype']=z not implemented)rA   rQ   Úastyper6   rI   r2   ÚRECTYPE_DICTrv   rq   Ú_read_typedescr&   Ú
ValueErrorr�   r‘   r|   rt   r�   rŸ   r    r'   )r(   ÚrecordÚnextrecÚrectypedescÚvarstartry   Ú_s          r*   Ú_read_recordrÅ   <  s�  € ð œ A›Ð'€Fä˜1‹o€GØŒ|˜A‹×%Ñ%¤b§h¡hÓ/°%Ñ7Ñ7€Gä��1ÔàˆiÑ¤Ñ,ÜÐ-°°yÑ0AÑAÓBÐBä$ V¨IÑ%6Ñ7€Fˆ9ÑàˆiÑÐ5Ñ5à�)Ñ 
Ò*Ü ,¨Q£ˆF�9Òä#-¨a£=ˆF�<Ñ Ü˜˜1Ôä$ QÓ'ˆà�zÑ" aÒ'à˜!Ÿ&™&›(Ò"Ø!%��v“ä Ð!:Ó;Ð;ô " !“}ˆHØ˜1Š}ÜÐ 3Ó4Ð4à˜;Ò'Ü!0°°KÀÑ4MØ4?ÀÑ4Nó"P��v“à˜WÒ%Ü!,¨Q°¸JÑ0GØ0;¸LÑ0Ió"K��v“ð $ JÑ/�Ü!+¨A¨uÓ!5��v“à	�	Ñ	˜kÒ	)ä�A�uÔÜ% a›ˆˆv‰Ü% a›ˆˆv‰Ü% a›ˆˆv‹à	�	Ñ	˜iÒ	'ä% a›=ˆˆxÑÜ% a›ˆˆv‰Ü# A“ˆˆt‰Ü(¨›OˆˆyÓà	�	Ñ	˜oÒ	-ä'¨›?ˆˆxÑÜ& q›/ˆˆw‰Ü'¨›?ˆˆxÓà	�	Ñ	˜hÒ	&ä'¨›?ˆˆxÓà	�	Ñ	˜mÒ	+ä 1°!Ó 4ˆˆ}Òà	�	Ñ	˜mÒ	+ä& q›MˆˆyÑÜ49¸&ÀÑ:KÓ4LÖM¨qœZ¨�]ÒMˆˆyÒà	�	Ñ	˜mÒ	+ä$ Q›-ˆˆw‰Ü% a›ˆˆv‰Ü7<¸VÀG¹_Ó7MÖN°!œl¨1�oÒNˆˆzÒà	�	Ñ	˜lÒ	*àˆˆuŠà	�	Ñ	˜iÒ	'ä�‰Ð/¸AÖ>à	�	Ñ	Ð/Ò	/ä�‰Ð7ÀAÖFô Ð,¨V°IÑ->Ð,?Ð?OÐPÓQÐQà‡F�Fˆ7„Oà€Mùò5 Nùò Os   É$L=Ê1Mc                 ó  — t        | «      t        | «      dœ}|d   dz  dk(  rt        d«      ‚|d   dz  dk(  |d<   |d   dz  dk(  |d<   |d   rt        | «      |d	<   t        | «      |d
<   |S |d   rt        | «      |d	<   |S )z%Function to read in a type descriptor)rƒ   ÚvarflagsrÇ   r   z System variables not implementedr   r�   é    r€   r•   r–   )rA   rv   Ú_read_arraydescÚ_read_structdesc)r(   Útypedescs     r*   r¾   r¾   ¨  s±   € ô ' q›M´zÀ!³}ÑE€Hà�
Ñ˜aÑ 1Ò$ÜÐ:Ó;Ð;à  Ñ,¨qÑ0°AÑ5€HˆWÑØ$ ZÑ0°2Ñ5¸Ñ;€Hˆ[Ñà�ÒÜ!0°Ó!3ˆ�ÑÜ"2°1Ó"5ˆ�Ñð €Oð 
�'Ò	Ü!0°Ó!3ˆ�Ñà€Or,   c                 ó¼  — dt        | «      i}|d   dk(  rzt        | d«       t        | «      |d<   t        | «      |d<   t        | «      |d<   t        | d«       t        | «      |d<   t        |d   «      D �cg c]  }t        | «      ‘Œ c}|d<   |S |d   d	k(  r°t        j                  d
d¬«       t        | d«       t        | «      |d<   t        | «      |d<   t        | «      |d<   t        | d«       d|d<   g |d<   t        |d   «      D ]:  }t        | «      }|dk7  rt        d«      ‚|d   j                  t        | «      «       Œ< |S t        d|d   z  «      ‚c c}w )z'Function to read in an array descriptorÚarrstartr   r   rœ   r~   r‡   Únmaxrˆ   é   z$Using experimental 64-bit array readr   r�   r   zExpected a zero in ARRAY_DESCzUnknown ARRSTART: %i)rA   r2   r�   rŸ   r    rU   rv   r‰   )r(   Ú	arraydescrÄ   ÚdÚvs        r*   rÉ   rÉ   ¼  sx  € ð œZ¨›]Ð+€Ià�Ñ Ò!ä�A�qÔä(¨›mˆ	�(ÑÜ!+¨A£ˆ	�+ÑÜ'¨›]ˆ	�'Ñä�A�qÔä& q›Mˆ	�&Ñä49¸)ÀFÑ:KÓ4LÖM¨qœZ¨�]ÒMˆ	�&Ñð6 Ðð3 
�:Ñ	 "Ò	$ä�‰Ð<ÈÕKä�A�qÔä*¨1›oˆ	�(ÑÜ!-¨a£ˆ	�+ÑÜ'¨›]ˆ	�'Ñä�A�qÔàˆ	�&Ñàˆ	�&ÑÜ�y Ñ(Ó)ò 	4ˆAÜ˜1“ˆAØ�AŠvÜÐ ?Ó@Ð@Ø�fÑ×$Ñ$¤Z°£]Õ3ð		4ð Ðô Ð.°¸:Ñ1FÑFÓGÐGùò3 Ns   Á6Ec                 ó„  — i }t        | «      }|dk7  rt        d«      ‚t        | «      |d<   t        | «      }t        | «      |d<   t        | «      |d<   |dz  |d<   |dz  |d	<   |d
z  |d<   |d   �st        |d   «      D �cg c]  }t	        | «      ‘Œ c}|d<   |d   D ]  }t        | «      |d<   Œ |d   D �ci c]  }|d   r|d   t        | «      “Œ c}|d<   |d   D �ci c]  }|d   r|d   t        | «      “Œ c}|d<   |d	   s|d   rlt        | «      |d<   t        | «      |d<   t        |d   «      D �cg c]  }t        | «      ‘Œ c}|d<   t        |d   «      D �cg c]  }t        | «      ‘Œ c}|d<   |t        |d   <   |S |d   t        vrt        d«      ‚t        |d      }|S c c}w c c}w c c}w c c}w c c}w )z*Function to read in a structure descriptorr   zSTRUCTSTART should be 9r‚   Úntagsrœ   r   Úpredefr   Úinheritsr   Úis_superr   r�   r…   r€   r†   Ú	classnameÚnsupclassesÚsupclassnamesÚsupclasstablez"PREDEF=1 but can't find definition)rA   rv   rq   r�   Ú_read_tagdescrÉ   rÊ   ÚSTRUCT_DICT)r(   Ú
structdescÚstructstartrÕ   rÄ   Útags         r*   rÊ   rÊ   ë  s<  € ð €Jä˜Q“-€KØ�aÒÜÐ1Ó2Ð2ä% a›€JˆvÑÜ˜‹]€FÜ$ Q›-€JˆwÑÜ% a›=€JˆxÑà! A™:€JˆxÑØ# a™Z€JˆzÑØ# a™Z€JˆzÑà�hÓô ,1°¸GÑ1DÓ+Eö"GØ&'ô #0°Õ"2ò "Gˆ
�:Ñð ˜jÑ)ò 	*ˆCÜ& q›/ˆC�ŠKð	*ð .8¸
Ñ-Cö"3Ø&)Ø%(¨¢\ð #& f¡+¬¸qÓ/AÑ"Aò "3ˆ
�:Ñð
 1;¸:Ñ0Fö%:Ø),Ø(+¨KÒ(8ð &)¨¡[Ô2BÀ1Ó2EÑ%Eò %:ˆ
�=Ñ!ð �jÒ! Z°
Ò%;Ü&2°1£oˆJ�{Ñ#Ü(2°1«ˆJ�}Ñ%ä).¨z¸-Ñ/HÓ)Iö+KØ$%”˜Q•ò+KˆJ�Ñ'ô .3°:¸mÑ3LÓ-Mö+OØ()Ô  Õ#ò+OˆJ�Ñ'ð +5Œ�J˜vÑ&Ñ'ð Ðð �fÑ¤[Ñ0ÜÐ@ÓAÐAä  ¨FÑ!3Ñ4ˆ
àÐùò?"Gùò"3ùò%:ùò+Kùò+Os   ÂF)Â8F.Ã F3Ä7F8ÅF=c                 óÆ   — dt        | «      i}|d   dk(  rt        | «      |d<   t        | «      |d<   t        | «      }|dz  dk(  |d<   |dz  dk(  |d<   |d   t        v |d<   |S )	z$Function to read in a tag descriptorÚoffsetéÿÿÿÿrƒ   r   r�   rÈ   r€   Úscalar)rA   rU   rŒ   )r(   ÚtagdescÚtagflagss      r*   rÜ   rÜ   !  s…   € ð œ A›Ð'€GàˆxÑ˜BÒÜ(¨›Oˆ�Ñä$ Q›-€GˆJÑÜ˜!‹}€Hà !‘| qÑ(€GˆGÑØ# b™=¨BÑ.€GˆKÑØ 
Ñ+¬zÐ9€GˆHÑð €Nr,   c                 ó†  — t        | t        «      r�t        | t        «      rZ| j                  dk(  rd } n7| j                  |v r|| j                     } nt        j                  dd¬«       d } t        | t        «      rŒZt        | |«      \  }}|r|} d| fS t        | t        j                  j                  «      r.t        | «      D ]  \  }}t        ||«      \  }}|sŒ|| |<   Œ d| fS t        | t        j                  «      r.t        | «      D ]  \  }}t        ||«      \  }}|sŒ|| |<   Œ d| fS t        | t        j                  «      ry| j                  j                  t        j                  u rOt        | j                   «      D ]7  }t        | j#                  |«      |«      \  }}|sŒ$|| j%                  d«      |<   Œ9 d| fS d| fS )Nr   zNVariable referenced by pointer not found in heap: variable will be set to Noner   r�   TFrã   )Ú
isinstancer^   ra   rŸ   r    Ú_replace_heapr6   r�   rŽ   Ú	enumeraterÀ   Úndarrayry   Útyper‹   r�   ÚsizeÚitemr”   )ÚvariableÚheapÚreplaceÚnewÚirrÀ   ÚivÚvalues           r*   ré   ré   4  s¸  € ä�(œGÔ$ä˜¤7Ô+à�~‰~ Ò"Ø‘à—>‘> TÑ)Ø# H§N¡NÑ3‘Hä—M‘Mð #Jà-.õ0ð  $�Hô ˜¤7Õ+ô % X¨tÓ4‰ˆ�áØˆHà�Xˆ~Ðä	�HœbŸf™fŸo™oÔ	.ô $ HÓ-ò 	#‰JˆB�ä(¨°Ó6‰LˆG�SâØ"�˜’ð	#ð �hˆÐä	�HœbŸi™iÔ	(ô # 8Ó,ò 	#‰IˆB�ä(¨°Ó5‰LˆG�SâØ"�˜’ð	#ð �hˆÐä	�HœbŸj™jÔ	)ð �>‰>×Ñ¤"§*¡*Ñ,ä˜HŸM™MÓ*ò 3�ä,¨X¯]©]¸2Ó->ÀÓE‘�˜âØ/2�H×$Ñ$ RÓ(¨Ò,ð3ð �hˆÐð �hˆÐr,   c                   óB   ‡ — e Zd ZdZdd„Zˆ fd„Zˆ fd„Zd„ ZeZeZ	ˆ xZ
S )ÚAttrDicta]  
    A case-insensitive dictionary with access via item, attribute, and call
    notations:

        >>> from scipy.io._idl import AttrDict
        >>> d = AttrDict()
        >>> d['Variable'] = 123
        >>> d['Variable']
        123
        >>> d.Variable
        123
        >>> d.variable
        123
        >>> d('VARIABLE')
        123
        >>> d['missing']
        Traceback (most recent error last):
        ...
        KeyError: 'missing'
        >>> d.missing
        Traceback (most recent error last):
        ...
        AttributeError: 'AttrDict' object has no attribute 'missing'
    c                 ó8   — |€i }t         j                  | |«       y r`   )Údictrc   )rb   Úinits     r*   rc   zAttrDict.__init__‘  s   € Øˆ<ØˆDÜ�‰�d˜DÕ!r,   c                 ó>   •— t         ‰| �  |j                  «       «      S r`   )ÚsuperÚ__getitem__rŠ   )rb   r‚   Ú	__class__s     €r*   rý   zAttrDict.__getitem__–  s   ø€ Ü‰wÑ" 4§:¡:£<Ó0Ð0r,   c                 ó@   •— t         ‰| �  |j                  «       |«      S r`   )rü   Ú__setitem__rŠ   )rb   Úkeyrõ   rþ   s      €r*   r   zAttrDict.__setitem__™  s   ø€ Ü‰wÑ" 3§9¡9£;°Ó6Ð6r,   c                 óx   — 	 | j                  |«      S # t        $ r t        dt        | «      › d|› d�«      d ‚w xY w)Nú'z' object has no attribute ')rý   ÚKeyErrorÚAttributeErrorrì   )rb   r‚   s     r*   Ú__getattr__zAttrDict.__getattr__œ  sS   € ð	NØ×#Ñ# DÓ)Ð)øÜò 	NÜ Ø”D˜“J�<Ð:¸4¸&ÀÐBóDØIMðNð	Nús   ‚ “&9r`   )rd   re   rf   rg   rc   rý   r   r  Ú__setattr__Ú__call__Ú__classcell__)rþ   s   @r*   r÷   r÷   w  s)   ø„ ñó2"ô
1ô7òNð €KØ„Hr,   r÷   c           
      óö
  — g }|s|ri }n
t        «       }t        | d«      }t        |d«      }|dk7  rt        d|› �«      ‚t        |d«      }	|	dk(  r�n–|	dk(  �r‚|rt	        d«       |rt        |d«      }
nt        j                  d	¬
«      }
|rt	        d|
j                  › �«       |
j                  d«       	 t        |«      }|
j                  t        j                  dt        |«      «      «       t        |«      }|t        |«      j                  t        j                   «      dz  z  }|j#                  d«      }t$        |   dk(  r�t        j                   d«      }|
j                  t        j                  dt        |«      |z  «      «       |
j                  t        j                  dt        |||z  z
  |z  «      «      «       |
j                  |«       nâ|j'                  «       }t)        j*                  |j#                  ||z
  «      «      }|
j'                  «       t-        |«      z   dz   }|
j                  t        j                  dt        |dz  «      «      «       |
j                  t        j                  dt        ||dz  z
  dz  «      «      «       |
j                  |«       |
j                  |«       �Œ |j/                  «        |
}|j1                  d«       nt        d|	› �«      ‚	 t3        |«      }|j5                  |«       d|v r|d   rnŒ'|j/                  «        i }|D ]  }|d   dk(  sŒ|d   ||d   <   Œ |D ]=  }|d   dk(  sŒt7        |d   |«      \  }}|r||d<   |d   ||d   j9                  «       <   Œ? |�rß|D ]J  }|d   dk(  sŒt	        d«       t	        d|d   › �«       t	        d|d    › �«       t	        d!|d"   › �«        n |D ][  }|d   d#k(  sŒt	        d«       t	        d$|d%   › �«       t	        d&|d'   › �«       t	        d(|d)   › �«       t	        d*|d+   › �«        n |D ]J  }|d   d,k(  sŒt	        d«       t	        d-|d.   › �«       t	        d/|d0   › �«       t	        d1|d2   › �«        n |D ](  }|d   d3k(  sŒt	        d«       t	        d4|d5   › �«        n t	        d«       t	        d6t-        |«      › d7�«       |D �cg c]  }|d   ‘Œ	 }}t;        |«      D ]'  }|dk7  sŒ	t	        d8|j=                  |«      |fz  «       Œ) t	        d«       d|v r;t	        d9«       |D ]   }t	        d:|› d;t?        ||   «      › d<�«       Œ" t	        d«       |r|D ]
  }||   ||<   Œ |S |S c c}w )=aâ	  
    Read an IDL .sav file.

    Parameters
    ----------
    file_name : str
        Name of the IDL save file.
    idict : dict, optional
        Dictionary in which to insert .sav file variables.
    python_dict : bool, optional
        By default, the object return is not a Python dictionary, but a
        case-insensitive dictionary with item, attribute, and call access
        to variables. To get a standard Python dictionary, set this option
        to True.
    uncompressed_file_name : str, optional
        This option only has an effect for .sav files written with the
        /compress option. If a file name is specified, compressed .sav
        files are uncompressed to this file. Otherwise, readsav will use
        the `tempfile` module to determine a temporary filename
        automatically, and will remove the temporary file upon successfully
        reading it in.
    verbose : bool, optional
        Whether to print out information about the save file, including
        the records read, and available variables.

    Returns
    -------
    idl_dict : AttrDict or dict
        If `python_dict` is set to False (default), this function returns a
        case-insensitive dictionary with item, attribute, and call access
        to variables. If `python_dict` is set to True, this function
        returns a Python dictionary with all variable names in lowercase.
        If `idict` was specified, then variables are written to the
        dictionary specified, and the updated dictionary is returned.

    Examples
    --------
    >>> from os.path import dirname, join as pjoin
    >>> import scipy.io as sio
    >>> from scipy.io import readsav

    Get the filename for an example .sav file from the tests/data directory.

    >>> data_dir = pjoin(dirname(sio.__file__), 'tests', 'data')
    >>> sav_fname = pjoin(data_dir, 'array_float32_1d.sav')

    Load the .sav file contents.

    >>> sav_data = readsav(sav_fname)

    Get keys of the .sav file contents.

    >>> print(sav_data.keys())
    dict_keys(['array1d'])

    Access a content with a key.

    >>> print(sav_data['array1d'])
    [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0.]

    Úrbr   s   SRzInvalid SIGNATURE: s    s    zIDL Save file is compressedzw+bz.sav)Úsuffixz -> expanding to s   SR r>   r¥   r   r   rO   r   zInvalid RECFMT: rº   r¤   r   r¢   r§   r   r¦   r   z2--------------------------------------------------zDate: r¨   zUser: r©   zHost: rª   r   zFormat: r«   zArchitecture: r¬   zOperating System: r­   zIDL Version: r®   r¯   zAuthor: r°   zTitle: r±   z	ID Code: r²   r    zDescription: r´   zSuccessfully read z records of which:z - %i are of type %szAvailable variables:z - z [ú]) r÷   Úopenr4   rv   ÚprintÚtempfileÚNamedTemporaryFiler‚   ÚwriterA   r8   Úpackr’   rQ   r¼   r6   rI   r/   r½   r&   ÚzlibÚ
decompressÚlenÚcloser'   rÅ   r‰   ré   rŠ   ÚsetÚcountrì   )Ú	file_nameÚidictÚpython_dictÚuncompressed_file_nameÚverboseÚrecordsÚ	variablesr(   Ú	signatureÚrecfmtÚfoutr¤   rÁ   ÚunknownÚmodvalr)   Ú
rec_stringÚrrð   rñ   rò   rÀ   ÚrectypesÚrtÚvars                            r*   r   r   §  sÇ  € ðL €GÙ‘eØ‰	ä“Jˆ	ô 	ˆY˜Ó€Aô ˜A˜qÓ!€IØ�EÒÜÐ-¨i¨[Ð9Ó:Ð:ô ˜˜AÓ€Fà�ÒÙà	�;Ó	áÜÐ/Ô0á!ÜÐ.°Ó6‰Dä×.Ñ.°fÔ=ˆDáÜÐ% d§i¡i [Ð1Ô2ð 	�
‰
�=Ô!ð ô ! “mˆGØ�J‰J”v—{‘{ 4¬¨W«Ó6Ô7ô # 1“oˆGØ”| A“×-Ñ-¬b¯h©hÓ7¸%Ñ?Ñ?ˆGð —f‘f˜Q“iˆGô ˜GÑ$¨Ò4ÜŸ™ %›�Ø—
‘
œ6Ÿ;™; t¬S°«\¸FÑ-BÓCÔDØ—
‘
Ü—K‘K ¤c¨7°gÀÑ6FÑ+GÈ6Ñ*QÓ&RÓSôð —
‘
˜7Ô#Øð —&‘&“(ˆCô Ÿ™¨¯©°¸±Ó)<Ó=ˆJð —i‘i“k¤C¨
£OÑ3°bÑ8ˆGð �J‰J”v—{‘{ 4¬¨W°u©_Ó)=Ó>Ô?Ø�J‰J”v—{‘{ 4¬¨g¸À5¹Ñ.IÈUÑ-RÓ)SÓTÔUØ�J‰J�wÔØ�J‰J�zÔ"ñI ðN 	
�‰Œ	ð ˆØ	�‰ˆq�	ô Ð*¨6¨(Ð3Ó4Ð4ð Ü˜‹OˆØ�‰�qÔØ�A‰:Ø�ŠxØð ð ‡G�G„Ið €DØò .ˆØˆY‰<˜;Ó&Ø$% f¡IˆD��<‘Ò!ð.ð
 ò 8ˆØˆY‰<˜:Ó%Ü(¨¨6©°DÓ9‰LˆG�SÙØ��&‘	Ø./°©iˆI�a˜	‘l×(Ñ(Ó*Ò+ð8ò ð ò 	ˆFØ�iÑ  KÓ/Ü�f”Ü˜˜v f™~Ð.Ð/Ô0Ü˜˜v f™~Ð.Ð/Ô0Ü˜˜v f™~Ð.Ð/Ô0Ùð	ð ò 	ˆFØ�iÑ  IÓ-Ü�f”Ü˜ ¨Ñ!1Ð 2Ð3Ô4Ü˜ v¨f¡~Ð&6Ð7Ô8ÜÐ*¨6°$©<¨.Ð9Ô:Ü˜ f¨YÑ&7Ð%8Ð9Ô:Ùð	ð ò 	ˆFØ�iÑ  OÓ3Ü�f”Ü˜ ¨Ñ!1Ð 2Ð3Ô4Ü˜  w¡Ð0Ð1Ô2Ü˜	 &¨Ñ"2Ð!3Ð4Ô5Ùð	ð ò 	ˆFØ�iÑ  MÓ1Ü�f”Ü˜ f¨]Ñ&;Ð%<Ð=Ô>Ùð		ô 	ˆfŒÜÐ"¤3 w£< .Ð0BÐCÔDð +2Ö2 Q�A�i“LÐ2ˆÐ2ä�h“-ò 	IˆBØ�\Ó!ÜÐ,°·±¸rÓ0BÀBÐ/GÑGÕHð	Iô 	ˆfŒà˜Ñ!ÜÐ(Ô)Ø ò <�Ü˜˜C˜5 ¤4¨	°#©Ó#7Ð"8¸Ð:Õ;ð<ä�&ŒMáØò 	(ˆCØ" 3™ˆE�#ŠJð	(àˆàÐùò% 3s   ÓU6)NFNF)'Ú__all__r8   Únumpyr6   r  r  rŸ   rŒ   r½   rÝ   r+   r2   r4   r;   rA   rE   rG   rJ   rM   rQ   rU   rX   r\   r^   rj   rq   rt   r|   r�   r‘   rÅ   r¾   rÉ   rÊ   rÜ   ré   rù   r÷   r   rh   r,   r*   ú<module>r-     s@  ðð< ˆ+€ã Û Û Û Û ð ØØØØØØØØØØØØØØñ€
ð" "Ø$ØØ$ØØØØ$ØØ!ØØØØ!ñ#€ð  €òòòò
;ò
7ò
<ò
7ò
7ò
=ò
8ò
8ò
9ò
9÷
ñ ô	�Gô 	ò
ò	ò'MòT*òZ-ò`iòXò(,ò^3òlò&@ôF-ˆtô -ð` 05Ø16ôpr,   