Ë
    7bîh¸œ  ã                   ó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      ú:/opt/python-3.12.12/usr/lib/python3.12/test/test_struct.pyÚiter_integer_formatsr!      s6   è ø€ ßˆÛ#ˆ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=   s&  € ØˆØˆØˆØˆØˆØˆØˆØˆä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Ö'ò 5ñ 4r'   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"‘d#‘d$‘d%‘d&‘d'‘d(‘d)g d*d*d+f‘d,‘}|D ]¼  \  }}}}}d-|z   |fd.|z   |fd/|z   |fd0|z   t         xr |xs |ffD ]‹  \  }}t        j                  ||«      }	| j                  |	|«       | j                  t        j                  |«      t        |	«      «       t        j                  ||	«      d1   }
|
|k7  sŒ{| j                  |«       Œ Œ¾ y )2N)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   )Ú0prc   r'   r'   r0   )Ú1prc   ó    ro   r0   )Ú2prc   ó   hrq   r0   )Ú10prc   ó
   	helloworlrs   r0   )Ú11prc   ó   
helloworldru   r   )Ú12prc   ó   
helloworld rw   r0   )Ú20prc   ó   
helloworld         ry   r0   )r   é   ó   r{   r   )r   iùÿÿÿó   ùr|   r   )r	   rz   r{   r{   r   )r	   éù   r|   r|   r   )r
   é¼  ó   ¼ó   ¼r   )r
   iDýÿÿó   ýDó   Dýr   )r   r~   r   r€   r   )r   iDý  r   r‚   r   )r   é€,ó   ,€ó   €,r   )r   é€âÓûó   ûÓâ€ó   €âÓûr   )r   rƒ   r„   r…   r   )r   ì   €b§w r‡   rˆ   r   )r   rƒ   r„   r…   r   )r   r†   r‡   rˆ   r   )r   rƒ   r„   r…   r   )r   r‰   r‡   rˆ   r   )rP   ç       @s   @   s      @r   )r=   rŠ   s   @       s          @r   )rP   ç       Às   À   s      Àr   )r=   r‹   s   À       s          Àr   )Ú?r   ro   ro   r   )rŒ   r9   ó   r   r0   )rŒ   Tr   r   r   rŒ   ro   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   s   € ð-
Ø&ð-
à+ð-
ð ,ð-
ð 'ð	-
ð
 /ð-
ð 1ð-
ð Að-
ð Dð-
ð Hð-
ð Vð-
ð /ð-
ð 7ð-
ð 9ð-
ð Jð-
ð Lð-
ð  Pð!-
ð" \ð#-
ð$ &ð%-
ð& +ð'-
ð( &ð)-
ð* ,ð+-
ð, 4ð--
ð. /ð/-
ð0 4ð1-
ð2 6ð3-
ð4 Cð5-
ð6 Jð7-
ð8 Cð9-
ð: Uð;-
ð< Cð=-
ð> Jð?-
ð@ CðA-
ðB UðC-
ðD >ðE-
ðF<ðG-
ðJ EðK-
ðL@ðM-
ðP &ðQ-
ðR &ðS-
ðT )ðU-
ðV "e˜U AÐ&ðW-
ðX )ðY-
ˆó^ (-Ñ#ˆ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Õ(ñ Gñ (-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‰OˆD)Ø˜t‘^ˆFÜ—?‘? 6Ó*ˆDØ×Ñ˜T =°Ñ#6Õ7ð  Jð :ˆÛ'ˆ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Úasciiro   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Ö2CØ—M‘M ! s¡(Õ+ð 3ô ˜tŸ|™|Ö,AØCÜ" 4§=¡=Ö1˜Ø" a™x©9°S«>Ñ9™ð 2à—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ðKñ & d›O©Y°s«^¹YÀt»_Ù% s¨A hÓ/±º9Ó1EóGCà×%Ñ%¤y´&·,±,Ð&?Ü&,§k¡k°4·;±;Ø&)õ+ñGøð=ØŸ	™	ð #<ö =ú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³   sP   ú€ ã÷O	+ð O	+œ×)Ñ)ô O	+ôb  4Ö5‰OˆD)Ø˜t‘^ˆFÙ˜&Ó!ˆAØE‰EGñ  6r'   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>.assertStructErrorO  sJ   ø€ Ø×"Ñ"¤6§<¡<Ô0°BÙdÐ%˜fÒ%÷ 1àM‰MÐ5´s¸2¿<¹<Ó7HÕI÷ 1Ð0ús   ¡	AÁA!r¡   rœ   r   r'   )r2   rB   r3   rD   )r5   r  r   r   rS   s   `    r    Útest_nN_codezStructTest.test_nN_codeM  sV   ø€ ô	Jó ˆDÛ1	Ø" 4™Ù!¤&§/¡/°6Ô:Ù!¤&§+¡+¨v°qÔ9Ù!¤&§-¡-°¸Õ=ñ	 2ñ r'   c                 óÀ   — dD ]Y  \  }}}}t        j                  ||«      }| j                  ||«       t        j                  ||«      \  }| j                  ||«       Œ[ y )N)	)rm   ó   abcr'   r'   )Úpr  ro   r'   )rn   r  ro   r'   )rp   r  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_codeZ  s]   € ó	4DÑ/ˆD%˜ <ô —+‘+˜d EÓ*ˆCØ×Ñ˜S (Ô+Ü—]‘] 4¨Ó-‰FˆSØ×Ñ˜S ,Õ/ñ	4Dr'   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_705836k  sK  € ô ˜!˜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‰OˆD)Ø Ñ%ˆFØ×ÑœfŸl™l¬F¯K©K¸ÀÔEØ×ÑœfŸl™l¬F¯K©K¸ÀÕEð  6ð 	×Ñœ&Ÿ,™,¬¯©°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Ó%ˆCÙ{Ó#ˆDØ×Ñ˜QŸ]™]¨4Ó0°*Ô=Ø×Ñ˜QŸ]™]¨4°Ó3°ZÔ@Ø×Ñ˜QŸ]™]¨4°Ó3°ZÔ@Ü˜1–XØ× Ñ  §¡¨t°QÓ!7¸$¸qÀÀ1Á¸+¸ÕHð ä˜1œc +Ó.°Ñ2Ö3Ø×!Ñ!¤&§,¡,°·±¸tÀQÕGñ 4ð &ô œ9Ô%ˆCÙ{Ó#ˆDØ×ÑœV×/Ñ/°°TÓ:¸JÔGØ×ÑœV×/Ñ/°°T¸1Ó=¸zÔJØ×ÑœV×/Ñ/°°T¸1Ó=¸zÔJÜ˜1–XØ× Ñ ¤×!3Ñ!3°C¸¸qÓ!AÀDÈÈ1ÈQÉ3ÀKÀ>ÕRð ä˜1œc +Ó.°Ñ2Ö3Ø×!Ñ!¤&§,¡,´×0BÑ0BÀCÈÈqÕQò 4ð &ð 	×Ñ˜Ÿ™¨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   r0  r1  c                  ó0   •— t        j                  ‰g| ¢­Ž S r)   )r2   r4  )r  rF   s    €r    Ú<lambda>z.StructTest.test_pack_into_fn.<locals>.<lambda>Ï  s   ø€ ¤&×"2Ñ"2°3Ð">¸Ó">r'   r   rä   r2  r?   )r3  r5  rŽ   r1   r@   r¶   r2   rA   )r5   r*  r6  r4  r7  r8  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)r3  Ú
memoryviewr2   rD   r1   )r5   Údata1Údata2r,  r+   s        r    Útest_unpack_with_bufferz"StructTest.test_unpack_with_bufferâ  sN   € ä—‘˜CÐ!4Ó5ˆÜÐ.Ó/ˆØ˜E“NˆDÜ—]‘] 4¨Ó.‰FˆEØ×Ñ˜U JÕ/ñ #r'   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   «       | j                  t        j
                  d|«      d   «       | j                  t        j
                  d|«      d   «       | j                  t        j
                  d|«      d   «       Œ¤ y # t        $ r Y Œaw 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Õ   rI  r$   r'   r    ÚExplodingBoolrF  ë  s   „ ór'   rJ  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>?z<?z=?z@?)rî   r¹   rŽ   r2   r3   rD   r1   ÚassertFalser   rB   rï   rH  )r5   rJ  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 ?ˆAØO‰OœFŸM™M¨$°Ó2°1Ñ5Ô6ØO‰OœFŸM™M¨$°Ó2°1Ñ5Ô6ØO‰OœFŸM™M¨$°Ó2°1Ñ5Ô6ØO‰OœFŸM™M¨$°Ó2°1Ñ5Õ6ñ	 ?øô ò Úðús   ÆI3É3	J É?J 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   r0  Ú12345r'   r   Úc12345rÄ   ó   xÚ14s42zspam and eggss   spam and eggs)r3  r@   r2   rA   r3   rD   r4  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_reinitialization8  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    rn  zStructTest.check_sizeof?  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«       | j                  dd	«       y )Nr0   Ú	BHILfdspPé	   ÁÒ  BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBiÒ  Úfdr?   Úxxxxxxxxxxxxxxr   Ú100HÚ187srx   rb   rm   Ú0c)r   rn  )r5   r   s     r    Útest__sizeof__zStructTest.test__sizeof__F  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   rL  zounpack_from requires a buffer of at least 6 bytes for unpacking 1 bytes at offset 5 \(actual buffer size is 1\))ÚassertRaisesRegexr2   rA   r4  r(  r)  ©r5   Úregex1Úregex2s      r    Útest_boundary_error_messagez&StructTest.test_boundary_error_messageU  s   € ð+ð 	ð
 ×#Ñ#¤F§L¡L°&Õ9Ü×Ñ˜S¤)¨A£,°°1Ô5÷ :ð+ð 	ð
 ×#Ñ#¤F§L¡L°&Õ9Ü×Ñ˜s¤I¨a£L°!Ô4÷ :Ð9÷ :Ð9ú÷ :Ð9ú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(  r}  r2   rA   r4  r)  )r5   Ú	byte_lists     r    Ú0test_boundary_error_message_with_negative_offsetz;StructTest.test_boundary_error_message_with_negative_offsetf  s  € Ü˜b“Mˆ	Ø×#Ñ#Ü—‘Ø8õ:ô ×Ñ˜T 9¨b°#Ô6÷:ð
 ×#Ñ#Ü—‘Ø<õ>ô ×Ñ˜T 9¨c°3Ô7÷>ð
 ×#Ñ#Ü—‘ØAõCô ×Ñ˜t Y°Ô3÷Cð
 ×#Ñ#Ü—‘Ø<õ>ô ×Ñ˜t Y°Ô4÷>ð >÷:ð :ú÷
>ð >ú÷
Cð Cú÷
>ð >ú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\)rƒ  rä   r0   z*unpack_from requires a buffer of at least z' bytes for unpacking 4 bytes at offset )	rÿ   rì   rí   r}  r2   rA   r4  r(  r)  r~  s      r    Ú-test_boundary_error_message_with_large_offsetz8StructTest.test_boundary_error_message_with_large_offset|  sÿ   € ð 8¼#¼c¿k¹kÈA¹oÓ:NÑNØ4ñ5Ü7:¼3¿;¹;Ó7GñHà,ñ-ð 	ð
 ×#Ñ#¤F§L¡L°&Õ9Ü×Ñ˜T¤9¨R£=´#·+±+¸qÔA÷ :ð :¼CÄÇÁÈaÁÓ<PÑPØ6ñ7Ü9<¼S¿[¹[Ó9IñJà,ñ-ð 	ð
 ×#Ñ#¤F§L¡L°&Õ9Ü×Ñ˜t¤Y¨r£]´C·K±KÔ@÷ :Ð9÷ :Ð9ú÷ :Ð9ú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Ž  sK   € ð ×Ñœ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   rc  )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À  ss   € ô —‘ˆÜœv×1Ñ1°#°tÓ<Ó=ˆØ˜OÓ,ˆCØ—‘ #Õ&Ø×&Ñ&¤yÕ1ØC”E÷ 2÷ 'Ð&ñ -ç1Ð1ú÷ 'Ð&ú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 iro   zembedded null character)r}  r2   rA   rB   rh  s     r    Útest_issue35714zStructTest.test_issue35714Ì  sI   € ã$ˆAØ×'Ñ'¬¯©Ø(AõCä—‘ Ô"÷Cð Cñ %÷Cð 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)ro  Únumberz#required argument is not an integerr   )r2   rB   rN   r¤  r}  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Õ  sT  ø€ Ø˜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Ø—\‘\¨W¸V\ÕDØ×/Ñ/´·±¸iÕHÜŸ™ G¨VÔ4÷ I÷ EÐDð Fð >ˆIØˆJØ—‘¨¸ÕDØ×+Ñ+¬F¯L©L¸)ÕDÜ—K‘K ¨Ô4÷ E÷ EÐD÷	 IÐHú÷ EÐDú÷ EÐDú÷ EÐDú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Ó  sd   ø€ ô	5ó( ˆFÛ#Ù˜v x°Õ6ð $ã#Ù˜v x°Õ7ñ $ð ð ˆÙ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)ro  r   )r¤  r@   rÀ  r2   r3   )r°  r¾  r5   s    €€r    Útest_error_propagationzLStructTest.test_issue98248_error_propagation.<locals>.test_error_propagationû  sR   ø€ Ø—‘¨Ð<OÕPØ×&Ñ&Ô'8Õ9Ü—K‘K ©«Ô0÷ :÷ QÐPß9Ð9ú÷ QÐPú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õ  sG   ù€ ÷	ñ 	õ	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-  r:  r>  rC  r[  r_  rf  ri  rn  r   Úcpython_onlyr{  r  r‡  r‰  rŒ  r  r•  r   r¦  r©  r¹  rÃ  rÊ  r$   r'   r    r.   r.   $   s  „ òFò?ò*(ò0:)òx LòDXòt>ò0ò"AòB?ò%ò6 ò8'ò.0ò,7ò\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rL  ©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£  r@  r1   rà  r@   rá  râ  s       r    Útest_arbitrary_bufferz(UnpackIteratorTest.test_arbitrary_buffer9  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_hintB  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_funcQ  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_floatY  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Ó*=Ö>ð Aò!
Ðó !6Ñˆ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ð !6ô —‘˜T¤4§8¡8Ó,ˆØ×Ñ˜ ™ TÑ)¨4Ô0Ü—‘˜T¤D§H¡H 9Ó-ˆØ×Ñ˜ ™ TÑ)¨4Ô0ò,
Ð(ó, $DÑˆJ˜˜aØ×Ñ˜T¤6§;¡;¨z¸1Ó#=Õ>ð $Dò1
Ð-ó  C‰MˆJ˜Ø×Ñœm¬V¯[©[¸*ÀaÕHð Cð
 7ð7
Ð3ó $OÑˆJ˜˜aØ×Ñ˜T¤6§;¡;¨z¸1Ó#=Õ>ñ $O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   r3  r›  r  ré  rù   r2   rì   r™  rK  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€Ø(€
à$.ó "òò%ôj=×"Ñ"ô j=ôZn?˜×*Ñ*ô n?ðb ˆzÒØ€H‡MM…Oð r'   