Ë
    •2ÚicR  ã                   óÀ   — d Z ddlmZ ddlZddlZddlmZ ddl­ dZdZ	d	Z
d
ZdZdZ G d„ de«      Z G d„ de«      Zd„ Z G d„ de«      Zdd„Zej*                  fd„Zy)z‘
Implements the minimal functionality required
to extract a "Workbook" or "Book" stream (as one big string)
from an OLE2 Compound Document file.
é    )Úprint_functionN)Úunpacké   )Ú*s   ÐÏà¡±áéþÿÿÿéÿÿÿÿéýÿÿÿéüÿÿÿéûÿÿÿc                   ó   — e Zd Zy)ÚCompDocErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úC/var/www/html/acx/venv/lib/python3.12/site-packages/xlrd/compdoc.pyr   r      s   „ Ør   r   c                   ó4   — e Zd Zdej                  fd„Zdd„Zy)ÚDirNoder   c                 ó|  — || _         || _        t        d|dd «      \  }| _        | _        | _        | _        | _        t        d|dd «      \  | _        | _	        |dk(  rt        d«      | _        nt        |d|d	z
   d
«      | _        g | _        d| _        t        d|dd «      | _        |r| j!                  |«       y y )Nz<HBBiiié@   éP   z<iiét   é|   r   Ú é   Ú	utf_16_ler   z<IIIIéd   )ÚDIDÚlogfiler   ÚetypeÚcolourÚleft_DIDÚ	right_DIDÚroot_DIDÚ	first_SIDÚtot_sizeÚUNICODE_LITERALÚnameÚunicodeÚchildrenÚparentÚtsinfoÚdump)Úselfr   ÚdentÚDEBUGr    Úcbufsizes         r   Ú__init__zDirNode.__init__"   s¿   € àˆŒØˆŒô �9˜d 2 b˜kÓ*ñ	ˆ�4”:˜tœ{¨D¬M¸4¼>ØŒô �5˜$˜s 3˜-Ó(ñ 	(ˆŒ˜œà�qŠ=Ü'¨Ó+ˆD�Iä  Q x°¡zÐ 2°KÓ@ˆDŒIØˆŒØˆŒÜ˜W d¨3¨s mÓ4ˆŒÙØ�I‰I�eÕð r   c                 ó\  — t        | j                  d| j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  «       |dk(  r#t        d| j                  | j                  ¬«       y y )NzbDID=%d name=%r etype=%d DIDs(left=%d right=%d root=%d parent=%d kids=%r) first_SID=%d tot_size=%d
r   ztimestamp info©Úfile)Úfprintfr    r   r)   r!   r#   r$   r%   r,   r+   r&   r'   Úprintr-   )r/   r1   s     r   r.   zDirNode.dump5   sx   € ÜØ�L‰LØqØ�H‰H�d—i‘i §¡¨T¯]©]Ø�N‰N˜DŸM™M¨4¯;©;¸¿¹ÀtÇ~Á~ÐW[×WdÑWdô		
ð �AŠ:äÐ" D§K¡K°d·l±lÖCð r   N)r   )r   r   r   ÚsysÚstdoutr3   r.   r   r   r   r   r       s   „ à()°3·:±:ó ô&	Dr   r   c                 ó"  — |dk  ry t        | || |   j                  «       | |   j                  j                  |«       || |   _        t        | || |   j
                  «       | |   j                  dk(  rt        | || |   j                  «       y y )Nr   r   )Ú_build_family_treer#   r+   Úappendr,   r$   r!   r%   )ÚdirlistÚ
parent_DIDÚ	child_DIDs      r   r<   r<   @   sŽ   € Ø�1‚}�fÜ�w 
¨G°IÑ,>×,GÑ,GÔHØˆJÑ× Ñ ×'Ñ'¨	Ô2Ø *€GˆIÑÔÜ�w 
¨G°IÑ,>×,HÑ,HÔIØˆyÑ×Ñ 1Ò$Ü˜7 I¨w°yÑ/A×/JÑ/JÕKð %r   c                   óT   — e Zd ZdZej
                  ddfd„Zdd„Zdd„Zd„ Z	d	„ Z
d
„ Zy)ÚCompDoczÃ
    Compound document handler.

    :param mem:
      The raw contents of the file, as a string, or as an :class:`mmap.mmap`
      object. The only operation it needs to support is slicing.
    r   Fc                 óÒ  — || _         || _        || _        |dd t        k7  rt	        d«      ‚|dd dk7  rt	        d|dd z  «      ‚t        d|d	d «      \  }}|rt        d
||fz  |¬«       || _        t        d|dd «      \  }}|dkD  rt        d|z  |¬«       d}||kD  rt        d|z  |¬«       d}d|z  x| _        }	d|z  | _	        | j                  dk7  s| j                  dk7  r&t        d| j                  | j                  fz  |¬«       t        d|dd «      \  }
| _
        }| _        }}}}t        |«      dz
  }t        ||	«      \  }}|r |dz  }t        dt        |«      |	fz  |¬«       || _        || _        t!        j                   ddg«      |z  x}| _        |rxt        d|||	| j                  |¬«       t        d||fz  |¬«       t        d|
| j                  | j                  fz  |¬«       t        d||fz  |¬«       t        d||fz  |¬«       |	d z  }d!|z  }d}t%        t        d"|dd «      «      }||z   dz
  |z  }t'        d|d#z
  |z   d$z
  |dz
  z  «      }d}|dk(  r|t(        t*        dfv rnñ|}|t(        t*        t,        fvrÜ|dkD  rt        d%||fz  |¬«       ||k\  r%d&||fz  }|dkD  rt        ||¬«       n¦t	        |«      ‚|dk  rt	        d'|z  «      ‚||   rt	        d(|||   fz  «      ‚d||<   |dz  }|r||kD  rt        d)||||||¬«       d|	|z  z   }|j/                  t        |||||	z    «      «       |j1                  «       }|t(        t*        t,        fvrŒÜ|r||k7  rt        d*||||||¬«       |r$t        d+t        |«      |¬«       t3        |d,|«       g | _        d}d}t7        t        |«      «      D ]Í  } ||    }!|!t*        t(        fv rŒ|!|k\  r/|s!t        d-|¬«       t        d.|!|fz  |¬«       d}t8        || <   d}ŒK|!d/k  rt	        d0|!z  «      ‚||!   rt	        d1|!||!   fz  «      ‚d$||!<   |dz  }|r||kD  rt        d2|||||||!|¬«	       d|	|!z  z   }| j4                  j/                  t        |||||	z    «      «       ŒÏ |rDt        d3t        | j4                  «      |¬«       t3        | j4                  d,|«       t        |¬«       |r•|r“t        d+t        |«      |¬«       t3        |d,|«       t7        |t        | j4                  «      «      D ]  }"t8        | j4                  |"<   Œ t        d3t        | j4                  «      |¬«       t3        | j4                  d,|«       | j;                  | j                  d| j4                  | j                  | j                  d4d5¬6«      }#g }$d7}%t7        dt        |#«      d8«      D ]*  }&|%dz  }%|$j=                  t?        |%|#|&|&d8z    d|«      «       Œ, |$| _         tC        |$d|$d   jD                  «       |r|$D ]  }'|'jG                  |«       Œ | j@                  d   }(|(jH                  d9k(  sJ ‚|(jJ                  dk  s|(jL                  dk(  rd:| _'        nF| j;                  | j                  d| j4                  |	|(jJ                  |(jL                  d;d ¬6«      | _'        g | _(        |dkD  r|(jL                  dk(  rt        d<|¬«       |(jL                  dkD  r¬|}|})|dk\  r|)dkD  rz||   rt	        d=|||   fz  «      ‚d9||<   |)dz  })d||	z  z   }*t%        t        |||*|*|	z    «      «      }+| jP                  j/                  |+«       | j4                  |   }|dk\  r|)dkD  rŒz|rt        d>||)fz  |¬«       |)dk(  r	|t(        k(  sJ ‚|r$t        d?|¬«       t3        | jP                  d,|«       |rt        d@|¬«       t3        |d|«       y y )ANr   é   zNot an OLE2 compound documenté   é   s   þÿz)Expected "little-endian" marker, found %rz<HHé   z/
CompDoc format: version=0x%04x revision=0x%04xr5   é"   é   zMWARNING: sector size (2**%d) is preposterous; assuming 512 and continuing ...é	   zYWARNING: short stream sector size (2**%d) is preposterous; assuming 64 and continuing ...é   r   é   r   z"@@@@ sec_size=%d short_sec_size=%dz	<iiiiiiiié,   éL   zAWARNING *** file size (%d) not 512 + multiple of sector size (%d)ÚBz	sec sizesz mem data: %d bytes == %d sectorsz=SAT_tot_secs=%d, dir_first_sec_sid=%d, min_size_std_stream=%dz'SSAT_first_sec_sid=%d, SSAT_tot_secs=%dz)MSATX_first_sec_sid=%d, MSATX_tot_secs=%dé   z<%diz<109iém   r   zMSATX: sid=%d (0x%08X)z7MSAT extension: accessing sector %d but only %d in filez%MSAT extension: invalid sector id: %dzMSAT corruption: seen[%d] == %dz	[1]===>>>z	[2]===>>>zMSAT: len =é
   z8WARNING *** File is truncated, or OLE2 MSAT is corrupt!!z6INFO: Trying to access sector %d but only %d availabler   zMSAT: invalid sector id: %dz)MSAT extension corruption: seen[%d] == %dz	[3]===>>>z
SAT: len =Ú	directoryé   ©r)   Úseen_idr   é€   é   r   ÚSSCSzHWARNING *** OLE2 inconsistency: SSCS size is 0 but SSAT size is non-zerozSSAT corruption: seen[%d] == %dz&SSAT last sid %d; remaining sectors %dÚSSATÚseen))r    Úignore_workbook_corruptionr1   Ú	SIGNATUREr   r   r8   ÚmemÚsec_sizeÚshort_sec_sizeÚdir_first_sec_sidÚmin_size_std_streamÚlenÚdivmodÚmem_data_secsÚmem_data_lenÚarrayr[   ÚlistÚmaxÚEOCSIDÚFREESIDÚMSATSIDÚextendÚpopÚ	dump_listÚSATÚxrangeÚEVILSIDÚ_get_streamr=   r   r>   r<   r%   r.   r!   r&   r'   rY   rZ   ),r/   r^   r    r1   r\   ÚrevisionÚversionÚsszÚssszr_   ÚSAT_tot_secsÚ_unusedÚSSAT_first_sec_sidÚSSAT_tot_secsÚMSATX_first_sec_sidÚMSATX_tot_secsrf   re   Ú	left_overr[   ÚnentÚfmtÚtrunc_warnedÚMSATÚSAT_sectors_reqdÚexpected_MSATX_sectorsÚactual_MSATX_sectorsÚsidÚmsgÚoffsetÚactual_SAT_sectorsÚ
dump_againÚmsidxÚmsidÚsatxÚdbytesr>   ÚdidÚposÚdÚsscs_dirÚnsecsÚ	start_posÚnewss,                                               r   r3   zCompDoc.__init__T   sü  € ØˆŒØ*DˆÔ'ØˆŒ
Øˆq�ˆ8”yÒ ÜÐ>Ó?Ð?Øˆr�"ˆ:˜Ò$ÜÐJÈSÐQSÐTVÈZÑWÓXÐXÜ" 5¨#¨b°¨*Ó5Ñˆ�'ÙÜÐDÈÐQYÐGZÑZÐahÕiØˆŒÜ˜5 # b¨ *Ó-‰	ˆˆTØ�Š8ÜÐaØñØ#õ%àˆCØ�#Š:ÜÐmØñØ$õ&àˆDØ#$¨¡8Ð+ˆŒ˜Ø 4™iˆÔØ�=‰=˜CÒ 4×#6Ñ#6¸"Ò#<ÜÐ6¸$¿-¹-È×I\ÑI\Ð9]Ñ]ÐdkÕlô
 �;  B r 
Ó+ñ		
Ø˜$Ô0°'¸4Ô;SØ Ø ä˜3“x #‘~ˆÜ#)¨,¸Ó#AÑ ˆ�yÙà˜QÑˆMÜÐUÜ�s“8˜XÐ&ñ'Ø-4õ6à*ˆÔØ(ˆÔÜ Ÿ;™; s¨Q¨CÓ0°=Ñ@Ð@ˆˆtŒyáÜ�+˜s D¨(°D×4GÑ4GÈgÕVÜÐ4¸ÀmÐ7TÑTÐ[bÕcÜÐQØ ×!7Ñ!7¸×9QÑ9QÐSñTØZaõcäÐ;Ð?QÐS`Ð>bÑbÐipÕqÜÐ=ÐATÐVdÐ@fÑfÐmtÕuØ˜1‰}ˆØ�t‰mˆØˆô ”F˜7 C¨¨3 KÓ0Ó1ˆØ)¨DÑ0°1Ñ4¸Ñ=ÐÜ!$ QÐ)9¸CÑ)?À$Ñ)FÈÑ)JÐPTÐWXÑPXÑ(YÓ!ZÐØ ÐØ˜QÒÐ#6¼6Ä7ÈAÐ:NÑ#Nð à%ˆCØœf¤g¬wÐ7Ñ7ð ˜1’9ÜÐ2°c¸3°ZÑ?ÀgÕNØ˜-Ò'ØSÐWZÐ\iÐVjÑj�CØ˜q’yÜ˜c¨Õ0ØÜ& sÓ+Ð+Ø˜1’WÜ&Ð'NÐQTÑ'TÓUÐUØ˜’9Ü&Ð'HÈCÐQUÐVYÑQZÐK[Ñ'[Ó\Ð\Ø��S‘	Ø$¨Ñ)Ð$ÙÐ1Ð4JÒJÜ˜+ }°dÐ<LÐNdÐfzð  BIõ  JØ˜x¨#™~Ñ-�Ø—‘œF 3¨¨F°6¸(±?Ð(CÓDÔEØ—h‘h“j�ð- œf¤g¬wÐ7Ò7ñ0 Ð)Ð-CÒCÜ�+˜}¨dÐ4DÐF\Ð^rð  zAõ  BÙÜ�-¤ T£°Õ9Ü�d˜B Ô(ð ˆŒØÐØˆ
ÜœC ›IÓ&ò 	FˆEØ˜‘;ˆDØœ¤Ð(Ñ(ð Ø�}Ò$Ù#ÜÐTÐ[bÕcÜÐRØ Ð/ñ0Ø6=õ?à#$�LÜ%��U‘Ø�
ØØ˜’Ü"Ð#@À4Ñ#GÓHÐHØ�DŠzÜ"Ð#NÐRVÐX\Ð]aÑXbÐQcÑ#cÓdÐdØˆD�‰JØ !Ñ#ÐÙÐ+Ð.>Ò>Ü�k =°$Ð8HÐJ`Ðbvð  yKð  MQð  X_õ  `Ø˜8 d™?Ñ*ˆFØ�H‰H�O‰OœF 3¨¨F°6¸(±?Ð(CÓDÕEð1	Fñ4 Ü�,¤ D§H¡H£°GÕ<Ü�d—h‘h  GÔ,ô
 �wÕÙ‘ZÜ�-¤ T£°Õ9Ü�d˜B Ô(Ü˜}¬c°$·(±(«mÓ<ò )�Ü!(�—‘˜’ð)ä�,¤ D§H¡H£°GÕ<Ü�d—h‘h  GÔ,ð ×!Ñ!Ø�H‰H�c˜4Ÿ8™8 T§]¡]°D×4JÑ4JØ að "ó )ˆð ˆØˆÜ˜!œS ›[¨#Ó.ò 	JˆCØ�1‰HˆCØ�N‰Nœ7 3¨¨s°3°s±7Ð(;¸QÀÓHÕIð	Jð ˆŒÜ˜7 A w¨q¡z×':Ñ':Ô;ÙØò �Ø—‘�u•ðð
 —<‘< ‘?ˆØ�~‰~ Ò"Ð"Ð"Ø×Ñ Ò! X×%6Ñ%6¸!Ò%;ð ˆD�Ià×(Ñ(Ø—‘˜#˜tŸx™x¨°8×3EÑ3EØ×!Ñ!¨¸ð )ó ;ˆDŒIð ˆŒ	Ø˜1Ò ×!2Ñ!2°aÒ!7ÜÐ\ÐcjÕkØ×Ñ˜qÒ Ø$ˆCØ!ˆEØ˜’(˜u qšyØ˜’9Ü&Ð'HÈCÐQUÐVYÑQZÐK[Ñ'[Ó\Ð\Ø��S‘	Ø˜‘
�Ø #¨¡.Ñ0�	ÜœF 3¨¨I°iÀÑ6HÐ(IÓJÓK�Ø—	‘	× Ñ  Ô&Ø—h‘h˜s‘m�ð ˜’(˜u q›yñ ”eÐDÈÈUÀ|ÑSÐZaÕbØ˜A’: #¬¢-Ð/Ð/ÙÜ�&˜wÕ'Ü�d—i‘i  WÔ-ÙÜ�&˜wÕ'Ü�d˜B Õ(ð r   Nc	                 óê  — g }	|}
|€y|
dk\  ri|�<| j                   |
   rt        d||
| j                   |
   fz  «      ‚|| j                   |
<   ||
|z  z   }|	j                  ||||z    «       	 ||
   }
|
dk\  rŒi|
t        k(  s¬J ‚|}|
dk\  rw|�<| j                   |
   rt        d||
| j                   |
   fz  «      ‚|| j                   |
<   ||
|z  z   }|}||kD  r|}||z  }|	j                  ||||z    «       	 ||
   }
|
dk\  rŒw|
t        k(  sJ ‚|dk7  rt        | j                  d||||z
  «       dj                  |	«      S # t        $ r t        d||
fz  «      ‚w xY w# t        $ r t        d||
fz  «      ‚w xY w)Nr   ú%s corruption: seen[%d] == %dz:OLE2 stream %r: sector allocation table invalid entry (%d)z=WARNING *** OLE2 stream %r: expected size %d, actual size %d
r   )r[   r   r=   Ú
IndexErrorrj   r7   r    Újoin)r/   r^   ÚbaseÚsatr_   Ú	start_sidÚsizer)   rV   ÚsectorsÚsr”   ÚtodoÚgrabs                 r   rs   zCompDoc._get_stream  sé  € àˆØˆØˆ<à�q’&ØÐ&Ø—y‘y ’|Ü*Ð+JÈdÐTUÐW[×W`ÑW`ÐabÑWcÐMdÑ+dÓeÐeØ#*�D—I‘I˜a‘LØ  1 x¡<Ñ/�	Ø—‘˜s 9¨Y°xÑ-?Ð@ÔAðØ˜A™�Að �q“&ð œ’;Ð�;àˆDØ�q’&ØÐ&Ø—y‘y ’|Ü*Ð+JÈdÐTUÐW[×W`ÑW`ÐabÑWcÐMdÑ+dÓeÐeØ#*�D—I‘I˜a‘LØ  1 x¡<Ñ/�	Ø�Ø˜$’;Ø�DØ˜‘�Ø—‘˜s 9¨Y°t©^Ð<Ô=ðØ˜A™�Að �q“&ð$ œ’;Ð�;Ø�qŠyÜ˜Ÿ™ØTØ˜$  t¡ô-ð �x‰x˜Ó Ð øôA "ò Ü&ØTØ˜q˜	ñ"óð ðûô* "ò Ü&ØTØ˜q˜	ñ"óð ðús   Á*D; Ã3E Ä;EÅE2c                 ót  — |d   }|dd  }| j                   }||   j                  D ]�  }||   j                  j                  «       |j                  «       k(  sŒ2||   j                  }|dk(  r||   c S |dk(  r!|st        d«      ‚| j                  ||«      c S ||   j                  d«       t        d«      ‚ y )Nr   r   r   z"Requested component is a 'storage'z'Requested stream is not a 'user stream')r>   r+   r)   Úlowerr!   r   Ú_dir_searchr.   )r/   ÚpathÚstorage_DIDÚheadÚtailÚdlÚchildÚets           r   r¤   zCompDoc._dir_searchN  sÁ   € à�A‰wˆØ�A�BˆxˆØ�\‰\ˆØ˜‘_×-Ñ-ò 
	NˆEØ�%‰y�~‰~×#Ñ#Ó%¨¯©«Ó5Ø˜‘Y—_‘_�Ø˜’7Ø˜e™9Ò$Ø˜’7ÙÜ*Ð+OÓPÐPØ×+Ñ+¨D°%Ó8Ò8Ø�5‘	—‘˜qÔ!Ü"Ð#LÓMÐMð
	Nð r   c                 óÆ  — | j                  |j                  d«      «      }|€y|j                  | j                  k\  rX| j	                  | j
                  d| j                  | j                  |j                  |j                  ||j                  dz   ¬«      S | j	                  | j                  d| j                  | j                  |j                  |j                  |dz   d¬«      S )a  
        Interrogate the compound document's directory; return the stream as a
        string if found, otherwise return ``None``.

        :param qname:
          Name of the desired stream e.g. ``'Workbook'``.
          Should be in Unicode or convertible thereto.
        ú/NrL   rK   rU   r   ú (from SSCS))r¤   Úsplitr'   rb   rs   r^   rp   r_   r&   r   rY   rZ   r`   )r/   Úqnamer‘   s      r   Úget_named_streamzCompDoc.get_named_streama  sÆ   € ð ×Ñ˜UŸ[™[¨Ó-Ó.ˆØˆ9ØØ�:‰:˜×1Ñ1Ò1Ø×#Ñ#Ø—‘˜#˜tŸx™x¨¯©¸¿¹Ø—
‘
 °·±°a±ð $ó 9ð 9ð ×#Ñ#Ø—	‘	˜1˜dŸi™i¨×)<Ñ)<¸a¿k¹kØ—
‘
 ¨Ñ!7Àð $ó Gð Gr   c                 óä  — | j                  |j                  d«      «      }|€y|j                  | j                  kD  r%t	        d||j                  | j                  fz  «      ‚|j                  | j
                  k\  r�| j                  | j                  d| j                  | j                  |j                  |j                  ||j                  dz   «      }| j                  r8t        d| j                  ¬«       t        | j                   d	| j                  «       |S | j#                  | j$                  d
| j&                  | j(                  |j                  |j                  |dz   d«      d
|j                  fS )aq  
        Interrogate the compound document's directory.

        If the named stream is not found, ``(None, 0, 0)`` will be returned.

        If the named stream is found and is contiguous within the original
        byte sequence (``mem``) used when the document was opened,
        then ``(mem, offset_to_start_of_stream, length_of_stream)`` is returned.

        Otherwise a new string is built from the fragments and
        ``(new_string, 0, length_of_stream)`` is returned.

        :param qname:
          Name of the desired stream e.g. ``'Workbook'``.
          Should be in Unicode or convertible thereto.
        r­   N)Nr   r   z7%r stream length (%d bytes) > file data size (%d bytes)rL   rK   z
seenr5   rI   r   r®   )r¤   r¯   r'   rf   r   rb   Ú_locate_streamr^   rp   r_   r&   r   r1   r8   r    ro   r[   rs   rY   rZ   r`   )r/   r°   r‘   Úresults       r   Úlocate_named_streamzCompDoc.locate_named_streamv  s3  € ð" ×Ñ˜UŸ[™[¨Ó-Ó.ˆØˆ9ØØ�:‰:˜×)Ñ)Ò)ÜÐXØ˜!Ÿ*™* d×&7Ñ&7Ð8ñ 9ó :ð :à�:‰:˜×1Ñ1Ò1Ø×(Ñ(Ø—‘˜#˜tŸx™x¨¯©¸¿¹Ø—
‘
˜E 1§5¡5¨¡7ó,ˆFð �zŠzÜ�h T§\¡\Õ2Ü˜$Ÿ)™) R¨¯©Ô6ØˆMð × Ñ Ø—I‘I˜q $§)¡)¨T×-@Ñ-@À!Ç+Á+Ø—J‘J ¨Ñ 6¸ó>ð Ø—
‘
ðð r   c	                 ó´  ‡— |}	|	dk  rt        d|z  «      ‚d}
d}d}g }d}||z   dz
  |z  }|	dk\  rà| j                  |	   re| j                  sYt        d|z  | j                  ¬«       t        | j                  d	| j                  «       t        d
||	| j                  |	   fz  «      ‚|| j                  |	<   |dz  }||kD  rt        d|||z  fz  «      ‚|	|
dz   k(  r||z  }n%|
dk\  r|j                  ||f«       ||	|z  z   }||z   }|	}
||	   }	|	dk\  rŒà|	t        k(  sJ ‚||k(  sJ ‚|s‰||fS |j                  ||f«       dj                  ˆfd„|D «       «      d|fS )Nr   z%_locate_stream: start_sid (%d) is -vei�ÿÿÿiñØÿÿiHÝÿÿr   z_locate_stream(%s): seenr5   rI   r—   z,%s: size exceeds expected %d bytes; corrupt?r   c              3   ó.   •K  — | ]  \  }}‰|| –— Œ y ­w)Nr   )Ú.0r”   Úend_posr^   s      €r   ú	<genexpr>z)CompDoc._locate_stream.<locals>.<genexpr>Ê  s   øè ø€ ÒQÑ4F°I¸w˜˜Y wÔ/ÑQùs   ƒ)	r   r[   r\   r8   r    ro   r=   rj   r™   )r/   r^   rš   r›   r_   rœ   Úexpected_stream_sizer°   rV   rŸ   Úpr”   r¹   ÚslicesÚ	tot_foundÚfound_limits    `              r   r³   zCompDoc._locate_streamž  s¹  ø€ àˆØˆqŠ5ÜÐFÈÑRÓSÐSØˆØˆ	ØˆØˆØˆ	Ø+¨hÑ6¸Ñ:¸xÑGˆØ�1ŠfØ�y‰y˜Š|Ø×6Ò6ÜÐ4°uÑ<À4Ç<Á<ÕPÔR[Ð\`×\eÑ\eÐgiÐko×kwÑkwÔRxÜ&Ð'FÈ%ÐQRÐTX×T]ÑT]Ð^_ÑT`ÐIaÑ'aÓbÐbØ"ˆD�I‰I�a‰LØ˜‰NˆIØ˜;Ò&ä"ØBØ˜k¨HÑ4Ð5ñ6óð ð �A�a‘CŠxà˜8Ñ#‘ð ˜’6à—M‘M 9¨gÐ"6Ô7Ø  1 x¡<Ñ/�	Ø# hÑ.�ØˆAØ�A‘ˆAð1 �1‹fð2 ”FŠ{Ðˆ{Ø˜KÒ'Ð'Ð'áà˜Ð$8Ð9Ð9Ø�‰�y 'Ð*Ô+à—‘ÓQÈ&ÔQÓQÐSTÐVjÐkÐkr   )Nr   N©r   )r   r   r   Ú__doc__r9   r:   r3   rs   r¤   r±   rµ   r³   r   r   r   rB   rB   J   s9   „ ñð %(§J¡J°aÐTYó G)óR/!óbò&Gò*&óP,lr   rB   c                 ó�   — t        d|d|   fz  d|¬«       | |||z    D ]  }t        t        |«      d|¬«       Œ t        |¬«       y ©Nz%5d%sz =ú )Úendr6   r5   ©r8   Ústr)ÚalistÚstrideÚfÚdposÚequalÚvalues         r   Úx_dump_linerÎ   Í  sM   € Ü	ˆ'�T˜4 ™;Ð'Ñ
'¨S°qÕ9Ø�t˜D 6™MÐ*ò +ˆÜŒc�%‹j˜c¨Ö*ð+ä	ˆq†Mr   c                 ó   ‡ ‡‡— dˆ ˆˆfd„	}d }d }t        dt        ‰ «      ‰«      D ]@  }|€ ||«       |}Œ‰ ||‰z    ‰ ||‰z    k7  sŒ"||z
  ‰kD  r ||‰z
  d¬«        ||«       |}ŒB |�|�||k7  r ||d¬«       y y y y )Nr   c                 ó’   •— t        d| d|   fz  d‰¬«       ‰| | ‰z    D ]  }t        t        |«      d‰¬«       Œ t        ‰¬«       y rÃ   rÆ   )rË   rÌ   rÍ   rÈ   rÊ   rÉ   s      €€€r   Ú
_dump_linezdump_list.<locals>._dump_lineÔ  sN   ø€ Üˆg˜˜t E™{Ð+Ñ+°¸1Õ=Ø˜4  v¡Ð.ò 	/ˆEÜ”#�e“* #¨AÖ.ð	/ä�1Žr   r   )rÌ   rÀ   )rq   rc   )rÈ   rÉ   rÊ   rÑ   r�   Úoldposs   ```   r   ro   ro   Ó  s¬   ú€ ÷ð
 €CØ€FÜ�aœ˜U› VÓ,ò ˆØˆ>Ù�sŒOØ‰FØ�3�s˜6‘zÐ" e¨F°6¸&±=Ð&AÓAØ�V‰|˜fÒ$Ù˜3 ™<¨qÕ1Ù�sŒOØ‰Fðð Ð˜c˜o°#¸²-Ù�3˜aÖ ð 3@˜oÐr   rÀ   )rÁ   Ú
__future__r   rg   r9   Ústructr   Útimemachiner]   rj   rk   ÚSATSIDrl   rr   Ú	Exceptionr   Úobjectr   r<   rB   rÎ   r:   ro   r   r   r   ú<module>rÙ      s€   ðñõ
 &ã Û 
Ý ä ð 0€	à	€Ø
€Ø	€Ø
€Ø
€ô	�9ô 	ôDˆfô Dò@Lô@lˆfô @lóFð  #Ÿz™zô !r   