Ë
    dÿafÏ™  ã                   ó2  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlmZ ej                   dk(  ZdZdZefd	„Zd
„ Zd„ Z G d„ dej.                  «      Z G d„ dej.                  «      Zedk(  r ej6                  «        yy)é    )ÚabcN)Úsupport)Úimport_helper)Úassert_python_okÚbig)ÚbÚBÚhÚHÚiÚIÚlÚLÚqÚQÚnÚN)Ú ú@ú=ú<ú>ú!c              #   óN   K  — t         D ]  }| D ]  }|dvr|dv rŒ||f–— Œ Œ y ­w)N©r   r   )r   r   )Úinteger_codes)Ú
byteordersÚcodeÚ	byteorders      ú+/root/Python-3.12.4/Lib/test/test_struct.pyÚiter_integer_formatsr!      s@   è ø€ Üò "ˆØ#ò 	"ˆIØ Ñ*¨t°zÑ/AØØ˜	/Ó!ñ	"ñ"ùs   ‚#%c                 ó   — | d d d…   S )Néÿÿÿÿ© )Úss    r    Ústring_reverser&      s   € Ø‰TˆrˆT‰7€Nó    c                 ó(   — t         r| S t        | «      S ©N)ÚISBIGENDIANr&   )Úvalues    r    Úbigendian_to_nativer,      s   € ÝØˆä˜eÓ$Ð$r'   c                   óD  — e 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j.                  d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej.                  d„ «       Z d„ Z!ej.                  d„ «       Z"ej.                  d„ «       Z#d „ Z$y!)"Ú
StructTestc                 ód   — | j                  t        j                  dd«      d   dk(  t        «       y )Nz=ié   r   )ÚassertEqualÚstructÚpackr*   ©Úselfs    r    Útest_isbigendianzStructTest.test_isbigendian%   s'   € Ø×Ñœ&Ÿ+™+ d¨AÓ.¨qÑ1°QÑ6¼ÕEr'   c                 óL  — | j                  t        j                  t        j                  d«       t        j                  d«      }| j	                  |dz  t        j                  d«      «       d}d}t        j                  |«      }t        j                  |«      }| j	                  |dz  |«       | j                  t        j                  t        j
                  dd«       | j                  t        j                  t        j
                  dddd«       | j                  t        t        j                  ft        j
                  dd«       | j                  t        t        j                  ft        j
                  dd«       | j                  t        j                  t        j                  d	d
«       t        j
                  ddd«      }| j                  t        j                  t        j                  d|«       | j                  t        j                  t        j                  d|«       y )NÚZr   é   Úiiizcbxxxxxxhhhhiillffd?z3c3b18x12h6i6l6f3d3?ÚfooÚPÚds   flapÚiir0   é   )ÚassertRaisesr2   ÚerrorÚcalcsizer1   r3   Ú	TypeErrorÚunpack)r5   ÚszÚfmtÚfmt3Úsz3r%   s         r    Útest_consistencezStructTest.test_consistence(   se  € Ø×Ñœ&Ÿ,™,¬¯©¸Ô=ä_‰_˜SÓ!ˆØ×Ñ˜˜a™¤§¡°Ó!7Ô8à$ˆØ%ˆÜ_‰_˜SÓ!ˆÜo‰o˜dÓ#ˆØ×Ñ˜˜a™ Ô%à×Ñœ&Ÿ,™,¬¯©°U¸AÔ>Ø×Ñœ&Ÿ,™,¬¯©°S¸!¸QÀÔBØ×Ñœ9¤f§l¡lÐ3´V·[±[À#ÀuÔMØ×Ñœ9¤f§l¡lÐ3´V·[±[À#ÀuÔMØ×Ñœ&Ÿ,™,¬¯©°s¸GÔDÜK‰K˜˜a Ó#ˆØ×Ñœ&Ÿ,™,¬¯©°u¸aÔ@Ø×Ñœ&Ÿ,™,¬¯©°s¸AÕ>r'   c                 óJ  — d}d}d}d}d}d}d}d}dD ]  }	d	D ]  }
|	|
z   }
t        j                  |
||||||||«	      }t        j                  |
|«      \  }}}}}}}}| j                  ||«       | j                  ||«       | j                  ||«       | j                  ||«       | j                  ||«       | j                  t	        d
|z  «      t	        d
|z  «      «       | j                  t	        d
|z  «      t	        d
|z  «      «       | j                  ||«       Œ Œ y )Nó   ar0   éÿ   iÿÿ  i   goƒÀÊ!	@T)r   r   r   r   r   r   )z	xcbhilfd?z	xcBHILfd?éd   )r2   r3   rD   r1   Úint)r5   Úcr   r
   r   r   Úfr=   ÚtÚprefixÚformatr%   ÚcpÚbpÚhpÚipÚlpÚfpÚdpÚtps                       r    Útest_transitivenesszStructTest.test_transitiveness=   s0  € ØˆØˆØˆØˆØˆØˆØˆØˆà3ó 	(ˆFØ4ó (Ø &™Ü—K‘K ¨¨1¨a°°A°q¸!¸QÓ?Ü17·±¸vÀqÓ1IÑ.B˜˜B  B¨¨BØ× Ñ   QÔ'Ø× Ñ   QÔ'Ø× Ñ   QÔ'Ø× Ñ   QÔ'Ø× Ñ   QÔ'Ø× Ñ ¤ S¨2¡X£´°C¸!±G³Ô=Ø× Ñ ¤ S¨2¡X£´°C¸!±G³Ô=Ø× Ñ   QÖ'ò(ñ	(r'   c                 ó   — g d‘d‘d‘d‘d‘d‘d‘d‘d	‘d
‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d ‘d!‘d"g d#d#d$f‘d%‘}|D ]¼  \  }}}}}d&|z   |fd'|z   |fd(|z   |fd)|z   t         xr |xs |ffD ]‹  \  }}t        j                  ||«      }	| j                  |	|«       | j                  t        j                  |«      t        |	«      «       t        j                  ||	«      d*   }
|
|k7  sŒ{| j                  |«       Œ Œ¾ y )+N)rO   rK   rK   rK   r   )ÚxcrK   ó    ar_   r   )ÚcxrK   ó   a ra   r   )r%   rK   rK   rK   r   )Ú0só
   helloworldr'   r'   r0   )Ú1src   ó   hre   r0   )Ú9src   ó	   helloworlrg   r0   )Ú10src   rc   rc   r   )Ú11src   ó   helloworld rj   r0   )Ú20src   ó   helloworld          rl   r0   )r   é   ó   rn   r   )r   iùÿÿÿó   ùro   r   )r	   rm   rn   rn   r   )r	   éù   ro   ro   r   )r
   é¼  ó   ¼ó   ¼r   )r
   iDýÿÿó   ýDó   Dýr   )r   rq   rr   rs   r   )r   iDý  rt   ru   r   )r   é€,ó   ,€ó   €,r   )r   é€âÓûó   ûÓâ€ó   €âÓûr   )r   rv   rw   rx   r   )r   ì   €b§w rz   r{   r   )r   rv   rw   rx   r   )r   ry   rz   r{   r   )r   rv   rw   rx   r   )r   r|   rz   r{   r   )rP   ç       @s   @   s      @r   )r=   r}   s   @       s          @r   )rP   ç       Às   À   s      Àr   )r=   r~   s   À       s          Àr   )ú?r   ó    r€   r   )r   r9   ó   r   r0   )r   Tr   r   r   r   r€   r0   )r   )r0   r   r   r0   r   r   r   r   r   )r*   r2   r3   r1   rB   ÚlenrD   Ú
assertTrue)r5   ÚtestsrF   Úargr   ÚlilÚasyÚxfmtÚexpÚresÚrevs              r    Útest_new_featureszStructTest.test_new_featuresU   sS  € ð&
Ø&ð&
à+ð&
ð ,ð&
ð 'ð	&
ð
 /ð&
ð 1ð&
ð Að&
ð Dð&
ð Hð&
ð Vð&
ð &ð&
ð +ð&
ð &ð&
ð ,ð&
ð 4ð&
ð  /ð!&
ð" 4ð#&
ð$ 6ð%&
ð& Cð'&
ð( Jð)&
ð* Cð+&
ð, Uð-&
ð. Cð/&
ð0 Jð1&
ð2 Cð3&
ð4 Uð5&
ð6 >ð7&
ð8<ð9&
ð< Eð=&
ð>@ð?&
ðB &ðC&
ðD &ðE&
ðF )ðG&
ðH "e˜U AÐ&ðI&
ðJ )ðK&
ˆðP (-ò 	)Ñ#ˆCc˜3 Ø!$ S¡¨# °°S±¸#°ÀÀSÁÈ#ÀØ!$ S¡¬+Ò*=¸#Ò*DÀÐ Eð Gò )‘sä—k‘k $¨Ó,Ø× Ñ   cÔ*Ø× Ñ ¤§¡°Ó!6¼¸C»ÔAÜ—m‘m D¨#Ó.¨qÑ1Ø˜#“:Ø—O‘O CÕ(ñ)ñ	)r'   c                 óª  — dddddddddddœ
}t        d«      D ]4  \  }}||z   }t        j                  |«      }| j                  |||   «       Œ6 d}|D ]Q  }dD ]J  }t        j                  ||d	   z   «      }t        j                  ||d   z   «      }	| j                  ||	«       ŒL ŒS | j                  t        j                  d
«      d«       | j	                  dt        j                  d«      «       | j	                  dt        j                  d«      «       | j	                  t        j                  d«      t        j                  d«      «       | j	                  t        j                  d«      t        j                  d«      «       | j	                  dt        j                  d«      «       | j	                  t        j                  d«      t        j                  d«      «       | j                  t        j                  d«      t        j                  d«      «       | j                  t        j                  d«      t        j                  d«      «       y )Nr0   r?   é   é   )
r   r	   r
   r   r   r   r   r   r   r   ©r   r   r   r   )ÚbBÚhHÚiIÚlLÚnNÚqQr   r   r   r
   r   r   r   r   r<   )r!   r2   rB   r1   ÚassertLessEqualÚassertGreaterEqual)
r5   Úexpected_sizer   r   rS   ÚsizeÚnative_pairsÚformat_pairÚsigned_sizeÚunsigned_sizes
             r    Útest_calcsizezStructTest.test_calcsizeŠ   sÜ  € à˜Ø˜Ø˜Ø˜Ø˜ñˆô  4Ð4HÓIò 	8‰OˆD)Ø˜t‘^ˆFÜ—?‘? 6Ó*ˆDØ×Ñ˜T =°Ñ#6Õ7ð	8ð :ˆØ'ò 	=ˆKØ$ò =	Ü$Ÿo™o¨i¸+Àa¹.Ñ.HÓIÜ &§¡°	¸KÈ¹NÑ0JÓ KØ× Ñ  ¨mÕ<ñ=ð	=ð 	×ÑœŸ™¨Ó-¨qÔ1Ø×Ñ˜Q¤§¡°Ó 4Ô5Ø×Ñ˜Q¤§¡°Ó 4Ô5Ø×ÑœVŸ_™_¨SÓ1´6·?±?À3Ó3GÔHØ×ÑœVŸ_™_¨SÓ1´6·?±?À3Ó3GÔHØ×Ñ˜Q¤§¡°Ó 4Ô5Ø×ÑœVŸ_™_¨SÓ1´6·?±?À3Ó3GÔHØ×Ñ¤§¡°Ó 4´f·o±oÀcÓ6JÔKØ×Ñ¤§¡°Ó 4´f·o±oÀcÓ6JÕKr'   c                 óª   ‡‡‡— dd l Š G ˆˆˆfd„dt        j                  «      Št        «       D ]"  \  }}||z   Š ‰‰«      }|j	                  «        Œ$ y )Nr   c                   óx   •‡ — e Zd Zˆˆ fd„Zej
                  ej                  W °j                  fd„Zˆfd„Z	ˆ xZ
S )ú+StructTest.test_integers.<locals>.IntTesterc                 óV  •— t         ‰|   d¬«       || _        |d   | _        |d d | _        | j                  t
        vrt        d| j                  z  «      ‚t        j                  |«      | _	        | j                  dz  | _
        | j                  t        d«      v r:d| _        d| j                  d	z
  z   | _        d| j                  d	z
  z  d	z
  | _        y | j                  t        d
«      v r&d| _        d| _        d| j                  z  d	z
  | _        y t        d| j                  z  «      ‚)NÚtest_one)Ú
methodNamer#   z"unrecognized packing byteorder: %sr   ÚbhilqnTr?   r0   ÚBHILQNFr   zunrecognized format code: %s)ÚsuperÚ__init__rS   r   r   r   Ú
ValueErrorr2   rB   ÚbytesizeÚbitsizeÚtupleÚsignedÚ	min_valueÚ	max_value)r5   rS   Ú	IntTesterÚ	__class__s     €€r    r©   z4StructTest.test_integers.<locals>.IntTester.__init__±   s  ø€ Üi Ñ/¸:Ð/ÔFØ$”Ø" 2™J”	Ø!'¨¨ ”Ø—~‘~¬Ñ3Ü$Ð%IØ%)§^¡^ñ&4ó 5ð 5ä &§¡°Ó 7”Ø#Ÿ}™}¨qÑ0”Ø—9‘9¤ h£Ñ/Ø"&D”KØ'(¨4¯<©<¸©>Ñ':Ð%;D”NØ%&¨¯©°a©Ñ%8¸1Ñ%<D•NØ—Y‘Y¤%¨£/Ñ1Ø"'D”KØ%&D”NØ%&¨¯©¡_°qÑ%8D•Nä$Ð%CØ%)§Y¡Yñ&/ó 0ð 0r'   c                 ó:  — | j                   }| j                  |cxk  r| j                  k  rBn n>|}| j                  r|dk  r|d| j                  z  z  }| j                  |d«       d|z  }t        |«      dz  rd|z   }|j                  d«      } ||«      }d| j                  t        |«      z
  z  |z   }| j                  dk(  s| j                  dv rt        st        |«      }| j                  t        |«      | j                  «        |||«      }| j                  ||«        |||«      d   }| j                  ||«       | j                  t        j                  t         f||d	|z   «       y | j                  t"        t$        t        j                  f|||«       y )
Nr   r0   z%xÚ0Úasciir€   r   )r   r   r   r   )rS   r¯   r°   r®   r¬   r˜   r‚   Úencoder«   r   r*   r&   r1   r@   r2   rA   rC   ÚOverflowErrorrª   )	r5   Úxr3   rD   Ú	unhexlifyrS   ÚexpectedÚgotÚ	retrieveds	            r    r¤   z4StructTest.test_integers.<locals>.IntTester.test_oneÇ   ss  € ð Ÿ™Ø—>‘> QÔ8¨$¯.©.×8Ø HØ—{’{ q¨1¢uØ  A¨¯©Ñ$5Ñ5˜Ø×+Ñ+¨H°aÔ8Ø# h™HÜ˜8“} qÒ(Ø#&¨¡>˜Ø'Ÿ™¨wÓ7HÙ(¨Ó2HØ '¨4¯=©=¼3¸x»=Ñ+HÑ IØ (ñ!)HàŸ™¨#Ò-ØŸ™¨.Ñ8ÅÜ#1°(Ó#;˜Ø×$Ñ$¤S¨£]°D·M±MÔBñ ˜v q›/CØ×$Ñ$ S¨(Ô3ñ !' v¨sÓ 3°AÑ 6IØ×$Ñ$ Q¨	Ô2ð ×%Ñ%¤v§|¡|´YÐ&?ÀÈØAHÈ3ÁõPð ×%Ñ%¤}´jÄ&Ç,Á,Ð&OØ&*¨F°Aõ7r'   c                 óH  •— ddl m} g }t        | j                  dz   «      D ]  }|j	                  d|z  «       Œ t        | j                  «      D ]=  }d}t        | j
                  «      D ]  }|dz   |d«      z  }Œ |j	                  |«       Œ? |j                  ddt        j                  d	z  g«       |D ])  }| |fD ]  }d
D ]  }||z   }	| j                  |	«       Œ Œ! Œ+  G d„ d«      }
 G d„ dt        «      } G d„ dt        «      }| j                  t        t        j                  ft        j                  | j                   d«       | j                  t        t        j                  ft        j                  | j                   |«       | j                  t        t        j                  ft        j                  | j                   d«       | j                  t        t        j                  ft        j                  | j                    |
«       «       | j                  t        t        j                  ft        j                  | j                    |«       «        |d«       |d«       |d«       |d«       |d«       |d«      fD ]  }	 t        j                  ‰|«       Œ  |d«       |d«       |d «       |ddi«       |g d¢«      fD ]B  }| j                  t        t        j                  ft        j                  | j                   |«       ŒD y #  | j#                  d«       Y Œ xY w)Nr   )Ú	randranger9   r0   r   é   i,  i`®
 rŽ   )r#   r   r0   c                   ó   — e Zd Zd„ Zy)úAStructTest.test_integers.<locals>.IntTester.run.<locals>.NotAnIntc                  ó   — y©Né*   r$   r4   s    r    Ú__int__zIStructTest.test_integers.<locals>.IntTester.run.<locals>.NotAnInt.__int__  ó   € Ø!r'   N)Ú__name__Ú
__module__Ú__qualname__rÅ   r$   r'   r    ÚNotAnIntrÁ   
  s   „ ó"r'   rÊ   c                   ó   — e Zd Zd„ Zd„ Zy)úBStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexablec                 ó   — || _         y r)   ©Ú_value)r5   r+   s     r    r©   zKStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexable.__init__  s	   € Ø&+˜r'   c                 ó   — | j                   S r)   rÎ   r4   s    r    Ú	__index__zLStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexable.__index__  s   € Ø#Ÿ{™{Ð*r'   N)rÇ   rÈ   rÉ   r©   rÑ   r$   r'   r    Ú	IndexablerÌ     s   „ ò,ó+r'   rÒ   c                   ó   — e Zd Zd„ Zd„ Zy)úAStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndexc                 ó   — t         ‚r)   )rC   r4   s    r    rÑ   zKStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndex.__index__  s   € Ü'˜r'   c                  ó   — yrÃ   r$   r4   s    r    rÅ   zIStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndex.__int__  rÆ   r'   N)rÇ   rÈ   rÉ   rÑ   rÅ   r$   r'   r    ÚBadIndexrÔ     s   „ ò(ó"r'   r×   za stringy      @      E@é
   é   rÄ   rM   é   z:integer code pack failed on object with '__index__' methodrK   r   Úa)r0   r?   r9   )Úrandomr¾   Úranger¬   Úappendr«   ÚextendÚsysÚmaxsizer¤   Úobjectr@   rC   r2   rA   r3   rS   Úfail)r5   r¾   Úvaluesr‰   r   ÚvalÚjÚbaseÚincrr¸   rÊ   rÒ   r×   ÚobjrS   s                 €r    Úrunz/StructTest.test_integers.<locals>.IntTester.runí   s»  ø€ Ý,ð Ü  §¡°Ñ!1Ó2ò ,CØ—M‘M ! s¡(Õ+ð,ô ˜tŸ|™|Ó,ò 'AØCÜ" 4§=¡=Ó1ò :˜Ø" a™x©9°S«>Ñ9™ð:à—M‘M #Õ&ð	'ð —‘˜s F¬C¯K©K¸©MÐ:Ô;ð #ò -DØ $˜u d˜{ò -˜Ø$,ò -˜DØ # d¡
˜AØ ŸM™M¨!Õ,ñ-ñ-ð-÷"ñ "ô+¤ô +ô"œvô "ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ø",ô.ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ø"+ô-ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ø"'ô)ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ù"*£*ô.ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ù"*£*ô.ñ
 & a›L©)°B«-¹À2»Ù% b›M©9°S«>¹9ÀS»>ðKò =Cð=ÜŸ™ F¨CÕ0ð=ñ & d›O©Y°s«^¹YÀt»_Ù% s¨A hÓ/±º9Ó1EðGò +Cà×%Ñ%¤y´&·,±,Ð&?Ü&,§k¡k°4·;±;Ø&)õ+ñ+øð=ØŸ	™	ð #<ö =ús   ÊLÌL!)rÇ   rÈ   rÉ   r©   r2   r3   rD   r¹   r¤   rê   Ú__classcell__)r²   r±   ÚbinasciirS   s   @€€€r    r±   r¢   °   s3   ù„ õ0ð, (.§{¡{Ø)/¯©Ù,4×,>Ñ,>ó$7÷LR+ð R+r'   r±   )rì   ÚunittestÚTestCaser!   rê   )r5   r   r   rQ   r±   rì   rS   s       @@@r    Útest_integerszStructTest.test_integers¬   sU   ú€ ã÷O	+ð O	+œ×)Ñ)ô O	+ôb  4Ó5ò 	‰OˆD)Ø˜t‘^ˆFÙ˜&Ó!ˆAØE‰EGñ	r'   c                 óÄ   ‡ — ˆ fd„}dD ]U  }dD ]N  }||z   } |t         j                  |«        |t         j                  |d«        |t         j                  |d«       ŒP ŒW y )Nc                 óÈ   •— ‰j                  t        j                  «      5 } | |i |¤Ž d d d «       ‰j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nzbad char in struct format)r@   r2   rA   ÚassertInÚstrÚ	exception)ÚfuncÚargsÚkwargsÚcmr5   s       €r    ÚassertStructErrorz2StructTest.test_nN_code.<locals>.assertStructErrorH  sQ   ø€ Ø×"Ñ"¤6§<¡<Ó0ð &°BÙdÐ%˜fÒ%÷&àM‰MÐ5´s¸2¿<¹<Ó7HÕI÷&ð &ús   ¡	AÁA!r•   r   r   r'   )r2   rB   r3   rD   )r5   rù   r   r   rS   s   `    r    Útest_nN_codezStructTest.test_nN_codeF  s`   ø€ ô	Jð ò 	>ˆDØ1ò >	Ø" 4™Ù!¤&§/¡/°6Ô:Ù!¤&§+¡+¨v°qÔ9Ù!¤&§-¡-°¸Õ=ñ	>ñ	>r'   c                 óÀ   — dD ]Y  \  }}}}t        j                  ||«      }| j                  ||«       t        j                  ||«      \  }| j                  ||«       Œ[ y )N))Úpó   abcr€   r'   )Ú1prý   r€   r'   )Ú2prý   s   arK   )Ú3prý   s   abs   ab)Ú4prý   s   abcrý   )Ú5prý   s   abc rý   )Ú6prý   s   abc  rý   )Ú1000psè  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsè  ÿxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsÿ   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r2   r3   r1   rD   )r5   r   Úinputrº   Úexpectedbackr»   s         r    Útest_p_codezStructTest.test_p_codeS  sa   € ð4Dò 	0Ñ/ˆD%˜ <ô —+‘+˜d EÓ*ˆCØ×Ñ˜S (Ô+Ü—]‘] 4¨Ó-‰FˆSØ×Ñ˜S ,Õ/ñ	0r'   c                 óÔ  — t        dd«      D ]Â  }d}||dz  z
  |k7  r|dz  }||dz  z
  |k7  rŒ||z
  }t        j                  d|«      }t        j                  d|«      d   }| j	                  ||«       t        j                  d|«      }| j	                  |t        |«      «       t        j                  d|«      d   }| j	                  ||«       ŒÄ d}t        j                  |d	«      }t        j                  d|«      }t        j                  d|«      d   }| j	                  ||«       d
}t        j                  |d«      }| j                  t        t        j                  d|«       y )Nr0   é!   g      à?r}   z<fr   z>fiÿÿÿ éh   iÿÿÿég   )
rÝ   r2   r3   rD   r1   r&   ÚmathÚldexpr@   r·   )r5   rç   ÚdeltaÚsmallerÚpackedÚunpackedÚ	bigpackedr   s           r    Útest_705836zStructTest.test_705836c  sP  € ô ˜!˜R“Lò 	-ˆDàˆEØ˜ ™Ñ$¨Ò,Ø˜‘ð ˜ ™Ñ$¨Ó,à˜U‘lˆGä—[‘[  wÓ/ˆFÜ—}‘} T¨6Ó2°1Ñ5ˆHð ×Ñ˜T 8Ô,ÜŸ™ D¨'Ó2ˆIØ×Ñ˜Y¬°vÓ(>Ô?Ü—}‘} T¨9Ó5°aÑ8ˆHØ×Ñ˜T 8Õ,ð	-ð$ ˆÜj‰j˜˜hÓ'ˆÜ—‘˜T 3Ó'ˆÜ—=‘=  vÓ.¨qÑ1ˆØ×Ñ˜˜hÔ'ð ˆÜj‰j˜˜hÓ'ˆØ×Ñœ-¬¯©°d¸CÕ@r'   c                 ó²  — t        «       D ]j  \  }}||z   }| j                  t        j                  t        j                  |d«       | j                  t        j                  t        j                  |d«       Œl | j                  t        j                  t        j                  dd«       | j                  t        j                  t        j                  dd«       y )Nç      ð?g      ø?r<   )r!   r@   r2   rA   r3   )r5   r   r   rS   s       r    Útest_1530559zStructTest.test_1530559„  s–   € Ü3Ó5ò 	F‰OˆD)Ø Ñ%ˆFØ×ÑœfŸl™l¬F¯K©K¸ÀÔEØ×ÑœfŸl™l¬F¯K©K¸ÀÕEð	Fð 	×Ñœ&Ÿ,™,¬¯©°S¸#Ô>Ø×Ñœ&Ÿ,™,¬¯©°S¸#Õ>r'   c           	      ó²  — d}d}t        j                  |«      }t        t        fD ]ñ  } ||«      }| j	                  |j                  |«      d«       | j	                  |j                  |d«      d«       | j	                  |j                  |d«      d«       t        d«      D ]+  }| j	                  |j                  ||«      |||dz    f«       Œ- t        dt        |«      d	z   «      D ].  }| j                  t         j                  |j
                  ||«       Œ0 Œó t        t        fD ]  } ||«      }| j	                  t        j
                  ||«      d«       | j	                  t        j
                  ||d«      d«       | j	                  t        j
                  ||d«      d«       t        d«      D ]0  }| j	                  t        j
                  |||«      |||dz    f«       Œ2 t        dt        |«      d	z   «      D ]3  }| j                  t         j                  t         j
                  |||«       Œ5 Œ | j	                  |j                  |d¬
«      d«       y )Ns	   abcd01234Ú4s)s   abcdr?   )s   cd01rŽ   )s   0123é   r0   )ÚbufferÚoffset)
r2   ÚStructÚbytesÚ	bytearrayr1   Úunpack_fromrÝ   r‚   r@   rA   )r5   Útest_stringrF   r%   ÚclsÚdatar   s          r    Útest_unpack_fromzStructTest.test_unpack_fromŒ  s$  € Ø"ˆØˆÜM‰M˜#ÓˆÜœ9Ð%ò 	HˆCÙ{Ó#ˆDØ×Ñ˜QŸ]™]¨4Ó0°*Ô=Ø×Ñ˜QŸ]™]¨4°Ó3°ZÔ@Ø×Ñ˜QŸ]™]¨4°Ó3°ZÔ@Ü˜1“Xò IØ× Ñ  §¡¨t°QÓ!7¸$¸qÀÀ1Á¸+¸ÕHðIä˜1œc +Ó.°Ñ2Ó3ò HØ×!Ñ!¤&§,¡,°·±¸tÀQÕGñHð	Hô œ9Ð%ó 	RˆCÙ{Ó#ˆDØ×ÑœV×/Ñ/°°TÓ:¸JÔGØ×ÑœV×/Ñ/°°T¸1Ó=¸zÔJØ×ÑœV×/Ñ/°°T¸1Ó=¸zÔJÜ˜1“Xò SØ× Ñ ¤×!3Ñ!3°C¸¸qÓ!AÀDÈÈ1ÈQÉ3ÀKÀ>ÕRðSä˜1œc +Ó.°Ñ2Ó3ò RØ×!Ñ!¤&§,¡,´×0BÑ0BÀCÈÈqÕQòRð	Rð 	×Ñ˜Ÿ™¨kÀ!˜ÓDØ#õ	%r'   c                 óâ  — d}t        j                   dd«      }d}t        j                  |«      }|j                  |d|«       |j	                  «       d t        |«       }| j                  ||«       |j                  |d|«       |j	                  «       d t        |«      dz    }| j                  ||d d |z   «       t        j                   dd«      }| j                  t        t        j                  f|j                  |d|«       | j                  t        t        j                  f|j                  |d|«       |}| j                  t        t        j                  ft        j                  d	|d «       y )
Nó   Reykjavik rocks, eow!r   ód                                                                                                       Ú21sr   rØ   ó
             r?   r'   )Úarrayr2   r  Ú	pack_intoÚtobytesr‚   r1   r@   rª   rA   rC   )r5   r   Úwritable_bufrF   r%   Úfrom_bufÚ	small_bufÚsbs           r    Útest_pack_intozStructTest.test_pack_into§  sB  € Ø.ˆÜ—{‘{ 3¨Ó1ˆØˆÜM‰M˜#Óˆð 	
‰L ! [Ô1Ø×'Ñ'Ó)Ð*;¬3¨{Ó+;Ð<ˆØ×Ñ˜ ;Ô/ð 	
‰L " kÔ2Ø×'Ñ'Ó)Ð*>¬3¨{Ó+;¸BÑ+>Ð?ˆØ×Ñ˜ ;¨s°Ð#3°kÑ#AÔBô —K‘K  WÓ-ˆ	Ø×Ñœ:¤v§|¡|Ð4°a·k±kÀ9ÈaØ%ô	'à×Ñœ:¤v§|¡|Ð4°a·k±kÀ9ÈaØ%ô	'ð ˆØ×Ñœ9¤f§l¡lÐ3´V×5EÑ5EÀsÈBØõ	 r'   c                 ó  ‡— d}t        j                   dd«      }dŠˆfd„} ||d|«       |j                  «       d t        |«       }| j                  ||«        ||d|«       |j                  «       d t        |«      dz    }| j                  ||d d |z   «       t        j                   dd«      }| j	                  t
        t        j                  f||d|«       | j	                  t
        t        j                  f||d	|«       y )
Nr%  r   r&  r'  c                  ó0   •— t        j                  ‰g| ¢­Ž S r)   )r2   r*  )rö   rF   s    €r    ú<lambda>z.StructTest.test_pack_into_fn.<locals>.<lambda>Ç  s   ø€ ¤&×"2Ñ"2°3Ð">¸Ò">€ r'   r   rØ   r(  r?   )r)  r+  r‚   r1   r@   rª   r2   rA   )r5   r   r,  r*  r-  r.  rF   s         @r    Útest_pack_into_fnzStructTest.test_pack_into_fnÃ  sû   ø€ Ø.ˆÜ—{‘{ 3¨Ó1ˆØˆÛ>ˆ	ñ 	,  ;Ô/Ø×'Ñ'Ó)Ð*;¬3¨{Ó+;Ð<ˆØ×Ñ˜ ;Ô/ñ 	,  KÔ0Ø×'Ñ'Ó)Ð*>¬3¨{Ó+;¸BÑ+>Ð?ˆØ×Ñ˜ ;¨s°Ð#3°kÑ#AÔBô —K‘K  WÓ-ˆ	Ø×Ñœ:¤v§|¡|Ð4°iÀÈAØ%ô	'à×Ñœ:¤v§|¡|Ð4°iÀÈAØ%õ	'r'   c                 ó¬   — t        j                   dd«      }t        d«      }||fD ],  }t        j                  d|«      \  }| j	                  |d«       Œ. y )Nr	   s   4Vxz>IixV4)r)  Ú
memoryviewr2   rD   r1   )r5   Údata1Údata2r"  r+   s        r    Útest_unpack_with_bufferz"StructTest.test_unpack_with_bufferÚ  sS   € ä—‘˜CÐ!4Ó5ˆÜÐ.Ó/ˆØ˜ENò 	0ˆDÜ—]‘] 4¨Ó.‰FˆEØ×Ñ˜U JÕ/ñ	0r'   c                 ó  —  G d„ dt         «      }t        d«      dz   D ]©  }dg g ddf}dgd	d
dddf}|dt        |«      z  z   }t        j                  |g|¢­Ž }t        j
                  ||«      }|dt        |«      z  z   }t        j                  |g|¢­Ž }	t        j
                  ||	«      }
| j                  t        |«      t        |
«      «       | j                  t        |«      t        |«      «       |D ]  }| j                  |«       Œ |
D ]  }| j                  |«       Œ t        j                  |dz   d«      }| j                  t        |«      t        j                  |dz   «      «       t        |«      dk7  r| j                  |d|z  ¬«       	 t        j                  |dz    |«       «       | j                  d|dz   z  «       Œ¬ dD ]*  }| j                  t        j
                  d|«      d   «       Œ, y # t        $ r Y Œéw xY w)Nc                   ó   — e Zd Zd„ Zy)ú+StructTest.test_bool.<locals>.ExplodingBoolc                 ó   — t         ‚r)   )ÚOSErrorr4   s    r    Ú__bool__z4StructTest.test_bool.<locals>.ExplodingBool.__bool__ä  s   € Ür'   N)rÇ   rÈ   rÉ   r?  r$   r'   r    ÚExplodingBoolr<  ã  s   „ ór'   r@  z<>!=)r   r$   r   r   r0   Útesté   r#   l        g  àÿÿÿßAr   z encoded bool is not one byte: %r)Úmsgz2Expected OSError: struct.pack(%r, ExplodingBool()))r   ó   ó   ÿó   ó   ðz>?)râ   r­   r‚   r2   r3   rD   r1   ÚassertFalserƒ   rB   rã   r>  )r5   r@  rR   ÚfalseÚtrueÚfalseFormatÚpackedFalseÚunpackedFalseÚ
trueFormatÚ
packedTrueÚunpackedTruerQ   r  rO   s                 r    Ú	test_boolzStructTest.test_boolâ  sý  € ô	œFô 	ô ˜F“m EÑ)ó "	?ˆFØ˜˜B  AÐ%ˆEØ3˜  2 |°\ÐAˆDà  3¬¨U«Ñ#3Ñ3ˆKÜ Ÿ+™+ kÐ:°EÒ:ˆKÜ"ŸM™M¨+°{ÓCˆMà #¬¨D«	¡/Ñ1ˆJÜŸ™ ZÐ7°$Ò7ˆJÜ!Ÿ=™=¨°ZÓ@ˆLà×ÑœS ›Y¬¨LÓ(9Ô:Ø×ÑœS ›Z¬¨]Ó);Ô<à"ò $Ø× Ñ  Õ#ð$à!ò #Ø—‘ Õ"ð#ô —[‘[ ¨¡¨QÓ/ˆFà×ÑœS ›[¬&¯/©/¸&À¹*Ó*EÔFä6‹{˜aÒØ× Ñ  Ð-OØ.4ñ.5Ð ô 6ð?Ü—‘˜F S™L©-«/Ô:ð —	‘	ð -Ø06¸±ñ>ö ?ðC"	?ðH ?ò 	7ˆAØO‰OœFŸM™M¨$°Ó2°1Ñ5Õ6ñ	7øô ò Úðús   ÆG;Ç;	HÈHc                 ól  — dj                  t        j                  dz   «      }| j                  t        j
                  t        j                  |«       dj                  t        j                  dz  t        j                  dz  «      }| j                  t        j
                  t        j                  |«       y )Nz{}br0   z{}b{}Hr?   )rS   rà   rá   r@   r2   rA   rB   )r5   Ú	hugecountÚ
hugecount2s      r    Útest_count_overflowzStructTest.test_count_overflow  sl   € Ø—L‘L¤§¡¨Q¡Ó/ˆ	Ø×Ñœ&Ÿ,™,¬¯©¸ÔCà—_‘_¤S§[¡[°!¡^´S·[±[À!±^ÓDˆ
Ø×Ñœ&Ÿ,™,¬¯©¸ÕDr'   c                 ó¾  — t        j                   dd«      }| j                  t        j                  t        j                  d«       | j                  t        j                  t        j
                  dd«       | j                  t        j                  t        j                  d|d«       | j                  t        j                  t        j                  d|d«       | j                  t        j                  t        j                  dd«       | j                  t        j                  t        j
                  dd«       | j                  t        j                  t        j                  d|dd«       | j                  t        j                  t        j                  d|d«       | j                  t        j                  t        j                  d	d
«       | j                  t        j                  t        j
                  d	d«       | j                  t        j                  t        j                  d	|dd
«       | j                  t        j                  t        j                  d	|d«       y )Nr   r&  Ú12345r'   r   Úc12345r¸   ó   xÚ14s42zspam and eggss   spam and eggs)r)  r@   r2   rA   r3   rD   r*  r  )r5   Ústores     r    Útest_trailing_counterz StructTest.test_trailing_counter  sŽ  € Ü—‘˜C Ó*ˆð 	×Ñœ&Ÿ,™,¬¯©°WÔ=Ø×Ñœ&Ÿ,™,¬¯©°wÀÔDØ×Ñœ&Ÿ,™,¬×(8Ñ(8¸'À5È!ÔLØ×Ñœ&Ÿ,™,¬×(:Ñ(:¸GÀUÈAÔNð 	×Ñœ&Ÿ,™,¬¯©°X¸sÔCØ×Ñœ&Ÿ,™,¬¯©°xÀÔFØ×Ñœ&Ÿ,™,¬×(8Ñ(8¸(ÀEÈ1Øô	 à×Ñœ&Ÿ,™,¬×(:Ñ(:¸HÀeØô	ð 	×Ñœ&Ÿ,™,¬¯©°W¸oÔNØ×Ñœ&Ÿ,™,¬¯©°wØ*ô	,à×Ñœ&Ÿ,™,¬×(8Ñ(8¸'À5È!Ø)ô	+à×Ñœ&Ÿ,™,¬×(:Ñ(:¸GÀUÈAÕNr'   c                 óP   — t        j                  d«      }|j                  d«       y )Nr   r>   )r2   r  r©   ©r5   r%   s     r    Útest_Struct_reinitializationz'StructTest.test_Struct_reinitialization-  s   € ô M‰M˜#ÓˆØ	
‰
4Õr'   c                 ó¾   — t        j                  d«      }|t        j                  d«      |dz   z  z  }t        j                  | t        j
                  |«      |«       y )NÚ2n3PÚP3n0Pr0   )r   Úcalcobjsizer2   rB   Úcheck_sizeofr  )r5   Ú
format_strÚnumber_of_codesÚ	totalsizes       r    rd  zStructTest.check_sizeof4  sJ   € ä×'Ñ'¨Ó/ˆ	à”V—_‘_ WÓ-°À1Ñ1DÑEÑEˆ	Ü×Ñ˜T¤6§=¡=°Ó#<¸iÕHr'   c                 ó‚  — t         D ]  }| j                  |d«       Œ | j                  dd«       | j                  dd«       | j                  dd«       | j                  dd	«       | j                  d
d«       | j                  dd«       | j                  dd«       | j                  dd«       | j                  dd	«       y )Nr0   Ú	BHILfdspPé	   ÁÒ  BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBiÒ  Úfdr?   Úxxxxxxxxxxxxxxr   Ú100HÚ187sÚ20prb   Ú0c)r   rd  )r5   r   s     r    Útest__sizeof__zStructTest.test__sizeof__;  s²   € ä!ò 	'ˆDØ×Ñ˜d AÕ&ð	'à×Ñ˜+ qÔ)Ø×Ñ˜* dÔ+Ø×Ñ˜$ Ô"Ø×ÑÐ*¨AÔ.Ø×Ñ˜& !Ô$Ø×Ñ˜& !Ô$Ø×Ñ˜% Ô#Ø×Ñ˜$ Ô"Ø×Ñ˜$ Õ"r'   c                 ób  — d}| j                  t        j                  |«      5  t        j                  dt	        d«      dd«       d d d «       d}| j                  t        j                  |«      5  t        j
                  dt	        d«      d«       d d d «       y # 1 sw Y   ŒUxY w# 1 sw Y   y xY w)Nzkpack_into requires a buffer of at least 6 bytes for packing 1 bytes at offset 5 \(actual buffer size is 1\)r   r0   rB  zounpack_from requires a buffer of at least 6 bytes for unpacking 1 bytes at offset 5 \(actual buffer size is 1\))ÚassertRaisesRegexr2   rA   r*  r  r  ©r5   Úregex1Úregex2s      r    Útest_boundary_error_messagez&StructTest.test_boundary_error_messageI  sŸ   € ð+ð 	ð
 ×#Ñ#¤F§L¡L°&Ó9ñ 	6Ü×Ñ˜S¤)¨A£,°°1Ô5÷	6ð+ð 	ð
 ×#Ñ#¤F§L¡L°&Ó9ñ 	5Ü×Ñ˜s¤I¨a£L°!Ô4÷	5ð 	5÷	6ð 	6ú÷	5ð 	5ús   £"BÁ/!B%ÂB"Â%B.c                 ó~  — t        d«      }| j                  t        j                  d«      5  t        j                  d|dd«       d d d «       | j                  t        j                  d«      5  t        j                  d|dd«       d d d «       | j                  t        j                  d	«      5  t        j
                  d|d«       d d d «       | j                  t        j                  d«      5  t        j
                  d|d«       d d d «       y # 1 sw Y   ŒËxY w# 1 sw Y   Œ–xY w# 1 sw Y   ŒbxY w# 1 sw Y   y xY w)
NrØ   z%no space to pack 4 bytes at offset -2ú<Iéþÿÿÿé{   z*offset -11 out of range for 10-byte bufferz<Biõÿÿÿz.not enough data to unpack 4 bytes at offset -2)r  rt  r2   rA   r*  r  )r5   Ú	byte_lists     r    Ú0test_boundary_error_message_with_negative_offsetz;StructTest.test_boundary_error_message_with_negative_offsetZ  s  € Ü˜b“Mˆ	Ø×#Ñ#Ü—‘Ø8ó:ñ 	7ô ×Ñ˜T 9¨b°#Ô6÷	7ð
 ×#Ñ#Ü—‘Ø<ó>ñ 	8ô ×Ñ˜T 9¨c°3Ô7÷	8ð
 ×#Ñ#Ü—‘ØAóCñ 	4ô ×Ñ˜t Y°Ô3÷	4ð
 ×#Ñ#Ü—‘Ø<ó>ñ 	5ô ×Ñ˜t Y°Ô4÷	5ð 	5÷	7ð 	7ú÷
	8ð 	8ú÷
	4ð 	4ú÷
	5ð 	5ús/   ¬DÁ-DÂ.D'Ã.D3ÄDÄD$Ä'D0Ä3D<c                 óŽ  — dt        t        j                  dz   «      z   dz   t        t        j                  «      z   dz   }| j                  t        j
                  |«      5  t	        j                  dt        d«      t        j                  d«       d d d «       dt        t        j                  dz   «      z   d	z   t        t        j                  «      z   dz   }| j                  t        j
                  |«      5  t	        j                  dt        d«      t        j                  «       d d d «       y # 1 sw Y   Œ xY w# 1 sw Y   y xY w)
Nz(pack_into requires a buffer of at least rŽ   z% bytes for packing 4 bytes at offset z \(actual buffer size is 10\)rz  rØ   r0   z*unpack_from requires a buffer of at least z' bytes for unpacking 4 bytes at offset )	ró   rà   rá   rt  r2   rA   r*  r  r  ru  s      r    Ú-test_boundary_error_message_with_large_offsetz8StructTest.test_boundary_error_message_with_large_offsetp  s  € ð 8¼#¼c¿k¹kÈA¹oÓ:NÑNØ4ñ5Ü7:¼3¿;¹;Ó7GñHà,ñ-ð 	ð
 ×#Ñ#¤F§L¡L°&Ó9ñ 	BÜ×Ñ˜T¤9¨R£=´#·+±+¸qÔA÷	Bð :¼CÄÇÁÈaÁÓ<PÑPØ6ñ7Ü9<¼S¿[¹[Ó9IñJà,ñ-ð 	ð
 ×#Ñ#¤F§L¡L°&Ó9ñ 	AÜ×Ñ˜t¤Y¨r£]´C·K±KÔ@÷	Að 	A÷	Bð 	Bú÷	Að 	Aús   Á 0D/Ã7/D;Ä/D8Ä;Ec                 óÐ   — | j                  t        «      5  t        j                  dd«       d d d «       | j	                  t        j                  dd«      d«       y # 1 sw Y   Œ0xY w)Nr   r   rK   )éa   )r@   rC   r2   rD   r1   r4   s    r    Útest_issue29802zStructTest.test_issue29802‚  sR   € ð ×ÑœyÓ)ñ 	"ÜM‰M˜#˜qÔ!÷	"ð 	×ÑœŸ™ s¨DÓ1°:Õ>÷	"ð 	"ús   –AÁA%c                 ó  — t        j                  d«      }| j                  |j                  d«       t        j                  |j                  j	                  «       «      }| j                  |j                  |j                  «       y )Nz=i2H)r2   r  r1   rS   r¶   )r5   r%   Ús2s      r    Útest_format_attrzStructTest.test_format_attr‹  sW   € ÜM‰M˜&Ó!ˆØ×Ñ˜Ÿ™ 6Ô*ô ]‰]˜1Ÿ8™8Ÿ?™?Ó,Ó-ˆØ×Ñ˜Ÿ™ A§H¡HÕ-r'   c                 óÔ   — d}t        d|«      \  }}}| j                  |d«       | j                  |j                  «       d«       | j                  d|«       | j                  d|«       y )Nzùif 1:
            import struct

            class C:
                def __init__(self):
                    self.pack = struct.pack
                def __del__(self):
                    self.pack('I', -42)

            struct.x = C()
            z-cr   r'   s   Exception ignored in:s	   C.__del__)r   r1   Úrstriprò   )r5   r   ÚrcÚstdoutÚstderrs        r    Ú)test_struct_cleans_up_at_runtime_shutdownz4StructTest.test_struct_cleans_up_at_runtime_shutdown“  sa   € ð
ˆô .¨d°DÓ9ÑˆˆFFØ×Ñ˜˜QÔØ×Ñ˜Ÿ™›¨#Ô.Ø‰Ð.°Ô7Ø‰l FÕ+r'   c                 óÒ   — t        j                  d«      }t        j                  |«      }|j	                  d«       ~t        j                  «        | j                   |«       d«       y )NÚ_structr   z(_struct module was not garbage collected)r   Úimport_fresh_moduleÚweakrefÚrefrB   ÚgcÚcollectÚassertIsNone)r5   Ú_struct_moduleÚ
module_refs      r    Ú'test__struct_reference_cycle_cleaned_upz2StructTest.test__struct_reference_cycle_cleaned_up¥  sU   € ô
 '×:Ñ:¸9ÓEˆÜ—[‘[ Ó0ˆ
Ø×Ñ Ô$Øô 	
‰
ŒØ×ÑÙ‹LÐDõ	Fr'   c                 ó$  — t         j                  }t        t        j                  dd«      «      }||fD ]B  }| j	                  |¬«      5  | j                  t        «      5  d|_        d d d «       d d d «       ŒD y # 1 sw Y   ŒxY w# 1 sw Y   Œ[xY w)Nr   rY  )r!  r0   )r2   r  ÚtypeÚiter_unpackÚsubTestr@   rC   r¸   )r5   r  Úunpack_iteratorr!  s       r    Útest__struct_types_immutablez'StructTest.test__struct_types_immutable´  sŠ   € ô —‘ˆÜœv×1Ñ1°#°tÓ<Ó=ˆØ˜OÐ,ò 	ˆCØ—‘ #Ó&ñ Ø×&Ñ&¤yÓ1ñ ØC”E÷÷ð ñ	÷ð ú÷ð ús$   Á	BÁA:Á'BÁ:BÁ?BÂB	c                 ó¦   — dD ]@  }| j                  t        j                  d«      5  t        j                  |«       d d d «       ŒB y # 1 sw Y   ŒMxY w)N)ú z2 ir€   zembedded null character)rt  r2   rA   rB   r^  s     r    Útest_issue35714zStructTest.test_issue35714À  sO   € à$ò 	#ˆAØ×'Ñ'¬¯©Ø(AóCñ #ä—‘ Ô"÷#ð #ñ	#÷#ð #ús   ¦AÁA	c                 ó’   ‡ — ˆ fd„}dD ]$  }dD ]  } |||d«       Œ dD ]  } |||d«       Œ Œ& d} |d|d«       d	} |d|d«       y )
Nc                 ó¾  •— | |z   }t        j                  |«      }|rd|dz  z  dz
  }d}nd|dz  dz
  z  dz
  }d|dz  dz
  z   }d|› d|› d|› }t        d«      |dz
  |dz   t        d	«      fD ]]  }‰
j                  ||¬
«      5  ‰
j	                  t         j
                  |«      5  t        j                  ||«       d d d «       d d d «       Œ_ d}d}	‰
j                  ||	¬
«      5  ‰
j	                  t         j
                  |«      5  t        j                  ||	«       d d d «       d d d «       y # 1 sw Y   ŒsxY w# 1 sw Y   ŒÕxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)Nr?   r   r0   r   ú'z' format requires z <= number <= gšd~ÅQÊgšd~ÅQJ)re  Únumberz#required argument is not an integerr   )r2   rB   rN   r›  rt  rA   r3   )rR   Úint_typeÚis_unsignedÚfmt_strrš   Úmax_Úmin_Ú	error_msgr¤  Ú
not_numberr5   s             €r    Útest_error_msgz2StructTest.test_issue98248.<locals>.test_error_msgÉ  sp  ø€ Ø˜xÑ'ˆGÜ—?‘? 7Ó+ˆDÙØ˜T A™X‘¨Ñ*Ø‘à˜T A™X¨™\Ñ*¨QÑ.Ø˜d Q™h¨™lÑ+Ð+Ø˜H˜:Ð%7¸°v¸^ÈDÈ6ÐRˆIÜ˜u›: t¨a¡x°¸±¼3¸t»9ÐEò 5Ø—\‘\¨W¸V\ÓDñ 5Ø×/Ñ/´·±¸iÓHñ 5ÜŸ™ G¨VÔ4÷5÷5ð 5ð5ð >ˆIØˆJØ—‘¨¸ÓDñ 5Ø×+Ñ+¬F¯L©L¸)ÓDñ 5Ü—K‘K ¨Ô4÷5÷5ð 5÷	5ð 5ú÷5ð 5ú÷5ð 5ú÷5ð 5úsH   Â!D;Â&D/Â=D;Ã&!EÄEÄEÄ/D8Ä4D;Ä;E	ÅE	ÅEÅEú@=<>ÚBHILQTÚbhilqFr   r   r   r$   )r5   r¬  rR   r¥  s   `   r    Útest_issue98248zStructTest.test_issue98248Ç  ss   ø€ ô	5ð( ò 	8ˆFØ#ò 7Ù˜v x°Õ6ð7à#ò 8Ù˜v x°Õ7ñ8ð	8ð ˆÙs˜H dÔ+àˆÙs˜H eÕ,r'   c                 óz   ‡ ‡—  G d„ d«      Šˆˆ fd„}dD ]  }dD ]  } |||z   «       Œ Œ  |d«        |d«       y )Nc                   ó   — e Zd Zd„ Zy)ú:StructTest.test_issue98248_error_propagation.<locals>.Div0c                 ó   — ddz   y )Nr0   r   r$   r4   s    r    rÑ   zDStructTest.test_issue98248_error_propagation.<locals>.Div0.__index__ì  s	   € ØA“r'   N)rÇ   rÈ   rÉ   rÑ   r$   r'   r    ÚDiv0r³  ë  s   „ ór'   rµ  c                 óà   •— ‰j                  | d¬«      5  ‰j                  t        «      5  t        j                  |  ‰«       «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NÚZeroDivisionError)re  rô   )r›  r@   r·  r2   r3   )r§  rµ  r5   s    €€r    Útest_error_propagationzLStructTest.test_issue98248_error_propagation.<locals>.test_error_propagationï  sb   ø€ Ø—‘¨Ð<OÓPñ 1Ø×&Ñ&Ô'8Ó9ñ 1Ü—K‘K ©«Ô0÷1÷1ð 1÷1ð 1ú÷1ð 1ús"   •A$«AÁA$ÁA!	ÁA$Á$A-r­  Ú
BHILQbhilqr   r   r$   )r5   r¸  rR   r¥  rµ  s   `   @r    Ú!test_issue98248_error_propagationz,StructTest.test_issue98248_error_propagationé  sQ   ù€ ÷	ñ 	õ	1ð
 ò 	:ˆFØ(ò :Ù& v°Ñ'8Õ9ñ:ð	:ñ 	˜sÔ#Ù˜sÕ#r'   c                 ó†   —  G d„ dt         j                  «      } |«       }| j                  |j                  d«      d«       y )Nc                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ú?StructTest.test_struct_subclass_instantiation.<locals>.MyStructc                 ó$   •— t         ‰|   d«       y )Nz>h)r¨   r©   )r5   r²   s    €r    r©   zHStructTest.test_struct_subclass_instantiation.<locals>.MyStruct.__init__þ  s   ø€ Ü‘Ñ  Õ&r'   )rÇ   rÈ   rÉ   r©   rë   )r²   s   @r    ÚMyStructr½  ý  s   ø„ ÷'ð 'r'   r¿  i90  s   09)r2   r  r1   r3   )r5   r¿  Ú	my_structs      r    Ú"test_struct_subclass_instantiationz-StructTest.test_struct_subclass_instantiationû  s4   € ô	'”v—}‘}ô 	'ñ “Jˆ	Ø×Ñ˜Ÿ™¨Ó.°Õ<r'   N)%rÇ   rÈ   rÉ   r6   rI   r\   rŒ   rŸ   rï   rú   r  r  r  r#  r0  r4  r9  rQ  rU  r\  r_  rd  r   Úcpython_onlyrr  rx  r~  r€  rƒ  r†  rŒ  r—  r  r   r°  rº  rÁ  r$   r'   r    r.   r.   $   s  „ òFò?ò*(ò03)òj LòDXòt>ò0ò AòB?ò%ò6 ò8'ò.0ò)7òVEòOò2òIð ×Ññ#ó ð#ò5ò"5ò,Aò$?ò.ò,ò$Fð ×Ññó ðò#ð ×Ññ-ó ð-ðB ×Ññ$ó ð$ó"=r'   r.   c                   ó:   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚUnpackIteratorTestzD
    Tests for iterative unpacking (struct.Struct.iter_unpack).
    c                 óð  ‡ — ˆ fd„}t        j                  d«      }|j                  d«      } ||«       |j                  d«      } ||«       ‰ j                  t         j                  «      5  |j                  d«       d d d «       ‰ j                  t         j                  «      5  |j                  d«       d d d «       t        j                  d«      }‰ j                  t         j                  «      5  |j                  d«       d d d «       ‰ j                  t         j                  «      5  |j                  d«       d d d «       y # 1 sw Y   ŒÊxY w# 1 sw Y   ŒxY w# 1 sw Y   Œ[xY w# 1 sw Y   y xY w)	Nc                 ó†   •— ‰j                  | t        j                  «       ‰j                  | t        j                  «       y r)   )ÚassertIsInstancer   ÚIteratorÚIterable)Úitr5   s    €r    Ú_check_iteratorz:UnpackIteratorTest.test_construct.<locals>._check_iterator  s+   ø€ Ø×!Ñ! "¤c§l¡lÔ3Ø×!Ñ! "¤c§l¡lÕ3r'   ú>ibcpr'   s   1234567s   123456s   12345678r   s   12)r2   r  rš  r@   rA   )r5   rË  r%   rÊ  s   `   r    Útest_constructz!UnpackIteratorTest.test_construct
  s%  ø€ ô	4ô M‰M˜'Ó"ˆØ]‰]˜3ÓˆÙ˜ÔØ]‰]˜:Ó&ˆÙ˜Ôà×ÑœvŸ|™|Ó,ñ 	%ØM‰M˜)Ô$÷	%à×ÑœvŸ|™|Ó,ñ 	'ØM‰M˜+Ô&÷	'ô M‰M˜#ÓˆØ×ÑœvŸ|™|Ó,ñ 	ØM‰M˜#Ô÷	à×ÑœvŸ|™|Ó,ñ 	!ØM‰M˜%Ô ÷	!ð 	!÷	%ð 	%ú÷	'ð 	'ú÷	ð 	ú÷	!ð 	!ús0   Á-EÂ&EÃ4E Ä-E,ÅEÅEÅ E)Å,E5c                 óŠ   — t        t        j                  d«      j                  d«      «      }| j	                  t
        |«       y )NrÌ  r'   )r™  r2   r  rš  r@   rC   )r5   Úiter_unpack_types     r    Útest_uninstantiablez&UnpackIteratorTest.test_uninstantiable  s2   € Ü¤§¡¨gÓ 6× BÑ BÀ3Ó GÓHÐØ×Ñœ)Ð%5Õ6r'   c                 óˆ  — t        j                  d«      }t        t        dd«      «      }|j	                  |«      }| j                  t        |«      d«       | j                  t        |«      d«       | j                  t        |«      d«       | j                  t        t        |«       | j                  t        t        |«       y )Nú>IBr0   é   ©irB  ©i	rØ   )ié   )	r2   r  r  rÝ   rš  r1   Únextr@   ÚStopIteration©r5   r%   r   rÊ  s       r    Útest_iteratezUnpackIteratorTest.test_iterate#  s   € ÜM‰M˜%Ó ˆÜ”%˜˜2“,ÓˆØ]‰]˜1ÓˆØ×Ñœ˜b› ?Ô3Ø×Ñœ˜b›Ð#3Ô4Ø×Ñœ˜b›Ð#3Ô4Ø×Ñœ-¬¨rÔ2Ø×Ñœ-¬¨rÕ2r'   c                 ód  — t        j                  d«      }t        t        dd«      «      }|j	                  t        |«      «      }| j                  t        |«      d«       | j                  t        |«      d«       | j                  t        t        |«       | j                  t        t        |«       y ©NrÒ  r0   é   rÔ  rÕ  )
r2   r  r  rÝ   rš  r6  r1   r×  r@   rØ  rÙ  s       r    Útest_arbitrary_bufferz(UnpackIteratorTest.test_arbitrary_buffer-  s   € ÜM‰M˜%Ó ˆÜ”%˜˜2“,ÓˆØ]‰]œ: a›=Ó)ˆØ×Ñœ˜b› ?Ô3Ø×Ñœ˜b›Ð#3Ô4Ø×Ñœ-¬¨rÔ2Ø×Ñœ-¬¨rÕ2r'   c                 ó  — t         j                  }t        j                  d«      }t	        t        dd«      «      }|j                  |«      }| j                   ||«      d«       t        |«       | j                   ||«      d«       t        |«       | j                   ||«      d«       t        |«       | j                   ||«      d«       | j                  t        t        |«       | j                   ||«      d«       y )NrÒ  r0   rÓ  r9   r?   r   )ÚoperatorÚlength_hintr2   r  r  rÝ   rš  r1   r×  r@   rØ  )r5   Úlhr%   r   rÊ  s        r    Útest_length_hintz#UnpackIteratorTest.test_length_hint6  sÄ   € Ü×!Ñ!ˆÜM‰M˜%Ó ˆÜ”%˜˜2“,ÓˆØ]‰]˜1ÓˆØ×Ñ™˜B› Ô#ÜˆRŒØ×Ñ™˜B› Ô#ÜˆRŒØ×Ñ™˜B› Ô#ÜˆRŒØ×Ñ™˜B› Ô#Ø×Ñœ-¬¨rÔ2Ø×Ñ™˜B› Õ#r'   c           	      ó.  — t        j                  dt        t        dd«      «      «      }| j	                  t        |«      d«       | j	                  t        |«      d«       | j                  t        t
        |«       | j                  t        t
        |«       y rÜ  )r2   rš  r  rÝ   r1   r×  r@   rØ  )r5   rÊ  s     r    Útest_module_funcz#UnpackIteratorTest.test_module_funcE  sl   € ä×Ñ ¤u¬U°1°b«\Ó':Ó;ˆØ×Ñœ˜b› ?Ô3Ø×Ñœ˜b›Ð#3Ô4Ø×Ñœ-¬¨rÔ2Ø×Ñœ-¬¨rÕ2r'   c                 óR  — ddddddddt        d	«      fd
t        d«      fdg
}|D ]_  \  }}|d d d…   }| j                  |t        j                  d|«      d   «       | j                  |t        j                  d|«      «       | j                  |t        j                  d|«      d   «       | j                  |t        j                  d|«      «       t
        j                  dk(  rQ| j                  |t        j                  d|«      d   «       | j                  |t        j                  d|«      «       Œ| j                  |t        j                  d|«      d   «       | j                  |t        j                  d|«      «       Œb g d¢}|D ]  \  }}| j                  t        j                  t        j                  d|«      d   «      «       | j                  t        j                  t        j                  d|d d d…   «      d   «      «       Œƒ t        j                  dt        j                  «      }| j                  |d   dz  d«       t        j                  dt        j                   «      }| j                  |d   dz  d«       g d¢}	|	D ],  \  }}}| j                  |t        j                  ||«      «       Œ. g d¢}
|
D ]+  \  }}| j                  t        t        j                  ||«       Œ- dg}|D ],  \  }}}| j                  |t        j                  ||«      «       Œ. y )N)s    <r  )s    Àr~   )s   ÿ{g     üï@)s    ç      ?)s    g      p>)ó     g        )s    €g       €s    |z+infs    üz-inf)s   U5g     TÕ?r#   ú<er   ú>eÚlittleÚe))ré  s   ü)ré  s    þ)ré  s   ÿÿ)ré  s   |)ré  s    ~)ré  s   ÿr0   é~   ))rê  s    g     `>)rê  rè  g      `>)rê  rè  g      P>)rê  ó   ÿg     ø?)rê  rî  güÿÿÿÿû?)rê  ó    g     ü?)rê  rï  rç  )rê  s   <g    ð?)rê  ó   < g     ð?)rê  rð  g     ð?)rê  ó   {ÿiàÿ  )rê  rñ  iïÿ  )rê  s   €g     `¾)rê  ó   € g      `¾)rê  rò  g      P¾)rê  s   ¼g    ð¿)rê  ó   ¼ g     ð¿)rê  ró  g     ð¿)rê  s   ûÿi ÿÿ))rê  ç     þï@)rê  ç      ð@)rê  çœu ˆ<ä7~)rê  ç     þïÀ)rê  ç      ðÀ)rê  çœu ˆ<ä7þ)ré  rô  )ré  rõ  )ré  rö  )ré  r÷  )ré  rø  )ré  rù  )rê  s   gÿg  ÿÿÿýŸ@)Úfloatr1   r2   rD   r3   rà   r   rƒ   r  ÚisnanÚnanr@   r·   )r5   Ú&format_bits_float__cleanRoundtrip_listÚle_bitsrP   Úbe_bitsÚformat_bits__nan_listÚ
formatcodeÚbitsr  Ú format_bits_float__rounding_listÚ%format_bits_float__roundingError_listÚ+format_bits_float__doubleRoundingError_lists               r    Útest_half_floatz"UnpackIteratorTest.test_half_floatM  sÜ  € ð ØØ"Ø!Ø!ØØØœ% ›-Ð(Øœ% ›-Ð(Ø)ð2
Ð.ð Aó 	?‰JˆGQØ™d ˜d‘mˆGØ×Ñ˜Q¤§¡¨d°GÓ <¸QÑ ?Ô@Ø×Ñ˜W¤f§k¡k°$¸Ó&:Ô;Ø×Ñ˜Q¤§¡¨d°GÓ <¸QÑ ?Ô@Ø×Ñ˜W¤f§k¡k°$¸Ó&:Ô;Ü}‰} Ò(Ø× Ñ  ¤F§M¡M°#°wÓ$?ÀÑ$BÔCØ× Ñ  ¬&¯+©+°c¸1Ó*=Ö>à× Ñ  ¤F§M¡M°#°wÓ$?ÀÑ$BÔCØ× Ñ  ¬&¯+©+°c¸1Ó*=Ö>ð	?ò!
Ðð !6ò 	LÑˆJ˜ØO‰OœDŸJ™J¤v§}¡}°T¸4Ó'@ÀÑ'CÓDÔEØO‰OœDŸJ™J¤v§}¡}°T¸4ÁÀ"À¹:Ó'FÀqÑ'IÓJÕKð	Lô —‘˜T¤4§8¡8Ó,ˆØ×Ñ˜ ™ TÑ)¨4Ô0Ü—‘˜T¤D§H¡H 9Ó-ˆØ×Ñ˜ ™ TÑ)¨4Ô0ò,
Ð(ð, $Dò 	?ÑˆJ˜˜aØ×Ñ˜T¤6§;¡;¨z¸1Ó#=Õ>ð	?ò1
Ð-ð  Cò 	I‰MˆJ˜Ø×Ñœm¬V¯[©[¸*ÀaÕHð	Ið
 7ð7
Ð3ð $Oò 	?ÑˆJ˜˜aØ×Ñ˜T¤6§;¡;¨z¸1Ó#=Õ>ñ	?r'   N)rÇ   rÈ   rÉ   Ú__doc__rÍ  rÐ  rÚ  rÞ  rã  rå  r  r$   r'   r    rÄ  rÄ    s+   „ ñò!ò*7ò3ò3ò$ò3óf?r'   rÄ  Ú__main__)Úcollectionsr   r)  r’  r  rà  rí   r2   rà   r  rA  r   Útest.supportr   Útest.support.script_helperr   r   r*   r   r   r!   r&   r,   rî   r.   rÄ  rÇ   Úmainr$   r'   r    ú<module>r     s—   ðÝ Û Û 	Û Û Û Û Û 
Û å Ý &Ý 7àm‰m˜uÑ$€àJ€Ø(€
à$.ó "òò%ô^=×"Ñ"ô ^=ôBn?˜×*Ñ*ô n?ðb ˆzÒØ€H‡MM…Oð r'   