
    <e`                       d dl Z d dlZd dlmZmZ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mZ d dlZd dlmZmZ d dlmZ d dlmZmZ  ed          Zd dlmZmZmZmZ  G d	 d
ej                  Z G d dej                  Z G d d          Z G d dej                  Z G d dej                  Z  G d dej                  Z!dZ"dZ#dZ$dZ%ej&        ddgZ'dZ(ej)        ddej&        ej*        ej+        z  dgZ,dZ-ej.        dd d!ej&        igZ/d"Z0ej)        d#dej1        d$d ej&        d#dd%gZ2d&Z3d'Z4e5d(k    r ej6                     dS dS ))    N)BytesIOUnsupportedOperationDEFAULT_BUFFER_SIZE)support)_4G
bigmemtest)import_module)TESTFNunlinklzma)LZMACompressorLZMADecompressor	LZMAErrorLZMAFilec                   v   e Zd Zd Zd Zd Zd Zd'dZd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej          e!e"dz   d           d!                         Z#ej          e!e"dz   d"           d#                         Z$d$ Z%ej&        d%             Z'd&S )(CompressorDecompressorTestCasec                 8   |                      t          t          g            |                      t          t          d           |                      t          t          d           |                      t          t          d           |                      t          t          d           |                      t          t          t          j                   |                      t                    5  t          d	d
t          j        ig           d d d            n# 1 swxY w Y   |                      t          t          d           |                      t          t          d           |                      t                    5  t          t          j        d           d d d            n# 1 swxY w Y   |                      t                    5  t          t          j        d           d d d            n# 1 swxY w Y   |                      t          t          t                     |                      t                    5  t          t          j
        t                     d d d            n# 1 swxY w Y   |                      t                    5  t          t          j        t                     d d d            n# 1 swxY w Y   t                      }|                      t          |j                   |                      t          |j        dd           |                      t          |j        d           |                                }|                      t          |j        d           |                      t          |j                   t                      }|                      t          |j                   |                      t          |j        dd           |                    |           |                      t          |j        d           d S )Ng@format checkasdfpreset   filters   idr   r    s   qwmemlimitzzz   r   r      foo   bars   blahs   quux)assertRaises	TypeErrorr   
ValueErrorr   FORMAT_AUTOFILTER_LZMA2r   
FORMAT_RAWFILTERS_RAW_1	FORMAT_XZFORMAT_ALONEcompressflush
decompressEOFError)selflzcemptylzds       %/usr/lib/python3.11/test/test_lzma.pytest_simple_bad_argsz3CompressorDecompressorTestCase.test_simple_bad_args   s   )^R888)^DAAA)^2>>>)^FCCC)^Q???*nT=MNNNz** 	J 	J!tT5F.G-HIIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	)%5r:::)%5FFFy)) 	= 	=T_e<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= z** 	B 	BT_yAAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	*&6NNNz** 	K 	KDNMJJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	Kz** 	N 	ND$5}MMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N )S\222)S\66BBB)SY888		*clG<<<*ci000  )S^444)S^VVDDDu(CNG<<<<<sZ   0DD"DF++F/2F/G88G<?G<!I11I58I5!KK
Kc                    |                      t          t          dg           |                      t          t          ddig           |                      t          t          ddig           |                      t                    5  t          t          j        ddg           d d d            n# 1 swxY w Y   |                      t                    5  t          t          j        ddg           d d d            n# 1 swxY w Y   |                      t                    5  t          t          j        ddg           d d d            d S # 1 swxY w Y   d S )	N   wobsiter   xyzzyr   r    ́ r   r    foo)r*   r+   r   r,   r   r.   FILTER_DELTA
FILTER_X86r7   s    r;   test_bad_filter_specz3CompressorDecompressorTestCase.test_bad_filter_specB   s=   )^j\JJJ*n|nMMM*ne}oNNNz** 	J 	J4+<Q$G$G#HIIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Jz** 	J 	J4+<Q$G$G#HIIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Jz** 	H 	H4?1$E$E#FGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs6   B33B7:B7DD
D(EEEc                     t                      }|                    t                     |                     t          |j        d           d S )Ns   nyan)r   r5   COMPRESSED_XZr*   r6   r7   r:   s     r;   test_decompressor_after_eofz:CompressorDecompressorTestCase.test_decompressor_after_eofM   s?      }%%%(CNG<<<<<    c                 v   t          d          }|                     t          |j        t                     t          t
          j        d          }|                     t          |j        t                     t          t
          j        d          }|                     t          |j        t                     d S )N   r#   )	r   r*   r   r5   rH   r   r1   r2   COMPRESSED_ALONErI   s     r;   test_decompressor_memlimitz9CompressorDecompressorTestCase.test_decompressor_memlimitR   s    ---)S^]CCCt~===)S^]CCCt04@@@)S^5EFFFFFrK   rK   c                 :   |                      |j                   |                    |          }|                     |t                     |                     |j        |           |                     |j                   |                     |j        |           d S N)assertFalseeofr5   assertEqualINPUTr   
assertTrueunused_data)r7   r:   datar   rW   outs         r;   _test_decompressorz1CompressorDecompressorTestCase._test_decompressor^   s    !!!nnT""e$$$E***   +66666rK   c                     t                      }|                     |t          t          j                   t                      }|                     |t
          t          j                   d S rQ   )r   rZ   rH   r   CHECK_CRC64rN   
CHECK_NONErI   s     r;   test_decompressor_autoz5CompressorDecompressorTestCase.test_decompressor_autof   sT      ]D4DEEE  %5tGGGGGrK   c                     t          t          j                  }|                     |t          t          j                   d S rQ   )r   r   r1   rZ   rH   r\   rI   s     r;   test_decompressor_xzz3CompressorDecompressorTestCase.test_decompressor_xzm   s2    t~..]D4DEEEEErK   c                     t          t          j                  }|                     |t          t          j                   d S rQ   )r   r   r2   rZ   rN   r]   rI   s     r;   test_decompressor_alonez6CompressorDecompressorTestCase.test_decompressor_aloneq   s3    t011%5tGGGGGrK   c                     t          t          j        t                    }|                     |t
          t          j                   d S Nr   )r   r   r/   r0   rZ   COMPRESSED_RAW_1r]   rI   s     r;   test_decompressor_raw_1z6CompressorDecompressorTestCase.test_decompressor_raw_1u   7    tFFF%5tGGGGGrK   c                     t          t          j        t                    }|                     |t
          t          j                   d S rd   )r   r   r/   FILTERS_RAW_2rZ   COMPRESSED_RAW_2r]   rI   s     r;   test_decompressor_raw_2z6CompressorDecompressorTestCase.test_decompressor_raw_2y   rg   rK   c                     t          t          j        t                    }|                     |t
          t          j                   d S rd   )r   r   r/   FILTERS_RAW_3rZ   COMPRESSED_RAW_3r]   rI   s     r;   test_decompressor_raw_3z6CompressorDecompressorTestCase.test_decompressor_raw_3}   rg   rK   c                     t          t          j        t                    }|                     |t
          t          j                   d S rd   )r   r   r/   FILTERS_RAW_4rZ   COMPRESSED_RAW_4r]   rI   s     r;   test_decompressor_raw_4z6CompressorDecompressorTestCase.test_decompressor_raw_4   rg   rK   c           	      *   t                      }g }t          dt          t                    d          D ]T}|                     |j                   |                    |                    t          ||dz                                 Ud                    |          }| 	                    |t                     | 	                    |j        t          j                   |                     |j                   | 	                    |j        d           d S Nr   
   rK   r   rangelenrH   rR   rS   appendr5   joinrT   rU   r   r   r\   rV   rW   r7   r:   rY   is       r;   test_decompressor_chunksz7CompressorDecompressorTestCase.test_decompressor_chunks   s      q#m,,b11 	> 	>ASW%%%JJs~~mAadF&;<<====hhsmme$$$D$4555   #.....rK   c           	         t                      }g }t          dt          t                    d          D ]}|                     |j                   |                    |                    d                     |                    |                    d                     |                    |                    d                     |                    |                    t          ||dz                                 d                    |          }| 	                    |t                     | 	                    |j        t          j                   |                     |j                   | 	                    |j        d           d S ru   rw   r|   s       r;   test_decompressor_chunks_emptyz=CompressorDecompressorTestCase.test_decompressor_chunks_empty   sE     q#m,,b11 	> 	>ASW%%%JJs~~c**+++JJs~~c**+++JJs~~c**+++JJs~~mAadF&;<<====hhsmme$$$D$4555   #.....rK   c                    t                      }d}g }t          t                    dz  }|                    |                    t          d |         |                     |                     |j                   |                     t          |d                   |           |                    |                    d|                     |                     |j                   |                     t          |d                   |           |                    |                    t          |d          |                     |                     t          |d                   |           |j	        sZ|                    |                    d|                     |                     t          |d                   |           |j	        Zd
                    |          }|                     |t                     |                     |j        t          j                   |                     |j        d           d S )Nd      
max_lengthrK   )r   ry   rH   rz   r5   rR   needs_inputrT   assertLessEqualrS   r{   rU   r   r   r\   rW   )r7   r:   r   rY   len_s        r;    test_decompressor_chunks_maxsizez?CompressorDecompressorTestCase.test_decompressor_chunks_maxsize   s	     
 =!!Q&

3>>-"6-7 " 9 9 	: 	: 	:)))SWz222 	

3>>#*>==>>>)))SWz222 	

3>>-"6-7 " 9 9 	: 	: 	:SR\\:666 ' 	;JJs~~cj~AABBB  SWz::: ' 	; hhsmme$$$D$4555#.....rK   c                    t                      }g }|                     |                    t          d d         d          d           |                    |                    dd                     |                    |                    t          dd         d                     |                    |                    t          dd                               |                     d                    |          t                     d S )Nr   r   r   rK   r   i      r   rT   r5   rH   rz   r{   rU   r7   r:   rY   s      r;   test_decompressor_inputbuf_1z;CompressorDecompressorTestCase.test_decompressor_inputbuf_1   s        	dsd(;34 ( 6 67:	< 	< 	<
 	

3>>#q))*** 	

3>>-C"8"==>>> 	

3>>-"566777#.....rK   c                    t                      }g }|                     |                    t          d d         d          d           |                    |                    d                     |                    |                    t          dd         d                     |                    |                    t          dd         d                     |                    |                    t          dd                               |                     d                    |          t                     d S )N   r   r   rK   i  r   ,  r   r   s      r;   test_decompressor_inputbuf_2z;CompressorDecompressorTestCase.test_decompressor_inputbuf_2   s       	dsd(;34 ( 6 67:	< 	< 	<

3>>#&&''' 	

3>>-C"8!<<=== 	

3>>-C"8!<<=== 	

3>>-"566777#.....rK   c                    t                      }g }|                    |                    t          d d         d                     |                    |                    t          dd         d                     |                    |                    t          dd                               |                     d                    |          t                     d S )Nr      r   rK   )r   rz   r5   rH   rT   r{   rU   r   s      r;   test_decompressor_inputbuf_3z;CompressorDecompressorTestCase.test_decompressor_inputbuf_3   s        	

3>>-"5q99::: 	

3>>-C"8!<<=== 	

3>>-"566777#.....rK   c                 |    t                      }d}|                     |t          |z   t          j        |           d S )Ns	   fooblibarrW   )r   rZ   rH   r   r\   )r7   r:   extras      r;   test_decompressor_unused_dataz<CompressorDecompressorTestCase.test_decompressor_unused_data   sJ      ]U%:D<L,1 	  	3 	3 	3 	3 	3rK   c                    t                      }|                     t          |j        t                     t          t
          j                  }|                     t          |j        t                     t          t
          j                  }|                     t          |j        t                     t          t
          j
        t                    }|                     t          |j        t                     d S rd   )r   r*   r   r5   re   r   r1   rN   r2   rH   r/   r0   rI   s     r;   test_decompressor_bad_inputz:CompressorDecompressorTestCase.test_decompressor_bad_input  s      )S^5EFFFt~..)S^5EFFFt011)S^]CCCtFFF)S^]CCCCCrK   c                     t                      }|                     t          |j        t                     |                     t          |j        t                     d S rQ   )r   r*   r   r5   re   rI   s     r;   test_decompressor_bug_28275z:CompressorDecompressorTestCase.test_decompressor_bug_28275  sI      )S^5EFFF)S^5EFFFFFrK   c                     t                      }|                    t                    |                                z   }t	                      }|                     ||t          j                   d S rQ   )r   r3   rU   r4   r   rZ   r   r\   r7   r8   cdatar:   s       r;   test_roundtrip_xzz0CompressorDecompressorTestCase.test_roundtrip_xz  sW    U##ciikk1  UD,<=====rK   c                     t          t          j                  }|                    t                    |                                z   }t                      }|                     ||t          j                   d S rQ   )	r   r   r2   r3   rU   r4   r   rZ   r]   r   s       r;   test_roundtrip_alonez3CompressorDecompressorTestCase.test_roundtrip_alone  s[    T.//U##ciikk1  UDO<<<<<rK   c                 &   t          t          j        t                    }|                    t
                    |                                z   }t          t          j        t                    }|                     ||t          j	                   d S rd   
r   r   r/   rq   r3   rU   r4   r   rZ   r]   r   s       r;   test_roundtrip_rawz1CompressorDecompressorTestCase.test_roundtrip_raw#  sh    T_mDDDU##ciikk1tFFFUDO<<<<<rK   c                    t          t          j        t                    }|                    t
                    }||                    d          z  }||                    d          z  }||                    d          z  }||                                z  }t          t          j        t                    }|                     ||t          j	                   d S )Nr   rK   r   r   s       r;   test_roundtrip_raw_emptyz7CompressorDecompressorTestCase.test_roundtrip_raw_empty)  s    T_mDDDU##c"""c"""c"""tFFFUDO<<<<<rK   c           	         t                      }g }t          dt          t                    d          D ]:}|                    |                    t          ||dz                                 ;|                    |                                           d                    |          }t                      }| 	                    ||t          j                   d S ru   r   rx   ry   rU   rz   r3   r4   r{   r   rZ   r   r\   r7   r8   r   r}   r:   s        r;   test_roundtrip_chunksz4CompressorDecompressorTestCase.test_roundtrip_chunks3  s    q#e**b)) 	6 	6ALLeAadFm445555SYY[[!!!  UD,<=====rK   c           	         t                      }g }t          dt          t                    d          D ]}|                    |                    t          ||dz                                 |                    |                    d                     |                    |                    d                     |                    |                    d                     |                    |                                           d                    |          }t                      }| 	                    ||t          j                   d S ru   r   r   s        r;   test_roundtrip_empty_chunksz:CompressorDecompressorTestCase.test_roundtrip_empty_chunks=  s   q#e**b)) 	, 	,ALLeAadFm44555LLc**+++LLc**+++LLc**++++SYY[[!!!  UD,<=====rK   c                     t                      }|                     |t          t          z   t          j        t                     d S )Nr   )r   rZ   rH   rN   r   r\   rI   s     r;   test_decompressor_multistreamz<CompressorDecompressorTestCase.test_decompressor_multistreamL  sL      ]5E%E $ 0>N 	  	P 	P 	P 	P 	PrK   r   r   )sizememusec                 v   t                      }|                    d|z            |                                z   }t                              |          }	 |                     t          |          |           |                     t          |                    d                    d           d }d S # d }w xY w)N   xr   )r   r3   r4   r   r5   rT   ry   strip)r7   r   r8   r   ddatas        r;   test_compressor_bigmemz5CompressorDecompressorTestCase.test_compressor_bigmemS  s     TD[))CIIKK7&&	SZZ...ST!2!233Q777EEEDELLLLs   AB4 4B8r   c                    t                      }d}t          j        |          }	 |||z  dz   z  }t                              |          }|                    |          }|                     ||           d x}x}}d S # d x}x}}w xY w)Ni      )r   random	randbytesr   r3   r5   rT   )r7   r   r:   	blocksizeblockinputr   r   s           r;   test_decompressor_bigmemz7CompressorDecompressorTestCase.test_decompressor_bigmem_  s       $	 ++	)TY.23EMM%((ENN5))EUE***$((E(EEEED(E(EE((((s   AA> >Bc                    t          t          j        dz             D ]}|                     t                    5  t          j        t                      |           d d d            n# 1 swxY w Y   |                     t                    5  t          j        t                      |           d d d            n# 1 swxY w Y   d S Nr   )rx   pickleHIGHEST_PROTOCOLr*   r+   dumpsr   r   )r7   protos     r;   test_picklez*CompressorDecompressorTestCase.test_pickleo  s/   62Q677 	8 	8E""9-- 6 6^--u5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6""9-- 8 8-//7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8s#   "A''A+	.A+	"B::B>	B>	c                     t          j        t          d          }t                      } |            }t	          d          D ]}|                                 |                      |            |z
  dd           d S )Ngettotalrefcountr   r   rv   )delta)r   get_attributesysr   rx   __init__assertAlmostEqual)r7   r   r:   refs_beforer}   s        r;   &test_refleaks_in_decompressor___init__zECompressorDecompressorTestCase.test_refleaks_in_decompressor___init__v  s    "06HII  &&((s 	 	ALLNNNN//11K?"MMMMMrK   NrK   )(__name__
__module____qualname__r<   rF   rJ   rO   rZ   r^   r`   rb   rf   rk   ro   rs   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   skip_if_pgo_taskr   r   r   r   r   refcount_testr   r"   rK   r;   r   r      s       &= &= &=P	H 	H 	H= = =
G G G7 7 7 7H H HF F FH H HH H HH H HH H HH H H
/ 
/ 
// / // / /@/ / /,/ / /*/ / / 3 3 3D D DG G G> > >= = == = == = => > >> > >P P P ZS3Yq)))  *)  ZS3Yq)))
) 
) *) 
)8 8 8 N N N N NrK   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
S )"CompressDecompressFunctionTestCasec                 N   |                      t          t          j                   |                      t          t          j        g            |                      t          t          j        dd           |                      t          t          j        dd           |                      t          t          j        dd           |                      t          t          j        dd	           |                      t                    5  t                              dd
dt          j        ig           d d d            n# 1 swxY w Y   |                      t          t          j                   |                      t          t          j        g            |                      t          t          j        dd           |                      t          t          j        dd           |                      t                    5  t                              dt          j        i            d d d            n# 1 swxY w Y   |                      t                    5  t                              dt          j        d           d d d            n# 1 swxY w Y   |                      t                    5  t                              dt          	           d d d            n# 1 swxY w Y   |                      t                    5  t                              dt          j	        t                     d d d            n# 1 swxY w Y   |                      t                    5  t                              dt          j
        t                     d d d            d S # 1 swxY w Y   d S )NrK   xzr   noner   blahr   rM   r   r   r    r!   r   g   1Ar#   r'   r&   r   r$   )r*   r+   r   r3   r,   r.   r5   r/   r0   r1   r2   rE   s    r;   test_bad_argsz0CompressDecompressFunctionTestCase.test_bad_args  s   )T]333)T]B777)T]CEEE)T]CvFFF)T]CGGG)T]CFFFz** 	N 	NMM#a49J2K1LMMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	)T_555)T_b999)T_c&III)T_cEJJJy)) 	E 	EOOCODDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E z** 	M 	MOOC)OLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M z** 	8 	8OOCO777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8z** 	O 	OOOCONNN	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	Oz** 	J 	JOO 1=  J J J	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Jsl   +D==EE=(H11H58H5(J

JJ/"KK!$K!-L;;L?L? -NN!Nc                 &   |                      t                    5  t                              t          d           d d d            n# 1 swxY w Y   |                      t                    5  t                              t          t          j        d           d d d            n# 1 swxY w Y   |                      t                    5  t                              t          t          j        d           d d d            d S # 1 swxY w Y   d S )NrM   r#   r   )r*   r   r   r5   rH   r1   rN   r2   rE   s    r;   test_decompress_memlimitz;CompressDecompressFunctionTestCase.test_decompress_memlimit  s   y)) 	: 	:OOMDO999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:y)) 	I 	IOO!$.4  I I I	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I y)) 	O 	OOO$T->  O O O	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	Os5   "A		AA.-B''B+.B+-DD
D
c                 b   t                               t                    }|                     |t                     t                               t
                    }|                     |t                     t                               t          t           j                  }|                     |t                     t                               t
          t           j                  }|                     |t                     t                               t          t           j	        t                    }|                     |t                     t                               t          t           j	        t                    }|                     |t                     t                               t          t           j	        t                    }|                     |t                     t                               t          t           j	        t                     }|                     |t                     d S rd   )r   r5   rH   rT   rU   rN   r1   r2   re   r/   r0   rj   ri   rn   rm   rr   rq   r7   r   s     r;   test_decompress_good_inputz=CompressDecompressFunctionTestCase.test_decompress_good_input  s   ..&&& 011&&&t~>>&&& 0$2CDD&&& $/=   J J&&& $/=   J J&&& $/=   J J&&& $/=   J J&&&&&rK   c                    |                      t          t          j        t          d d                    |                      t          t          j        t
          d d                    |                      t          t          j        t          d d         t          j        t                     |                      t          t          j        t          d d         t          j        t                     |                      t          t          j        t          d d         t          j        t                     |                      t          t          j        t          d d         t          j        t                     d S )N   r'   )r*   r   r   r5   rH   rN   re   r/   r0   rj   ri   rn   rm   rr   rq   rE   s    r;    test_decompress_incomplete_inputzCCompressDecompressFunctionTestCase.test_decompress_incomplete_input  s9   )T_mDSD6IJJJ)T_6Ftt6LMMM)T_6Ftt6L!%- 	 	I 	I 	I)T_6Ftt6L!%- 	 	I 	I 	I)T_6Ftt6L!%- 	 	I 	I 	I)T_6Ftt6L!%- 	 	I 	I 	I 	I 	IrK   c                    |                      t                    5  t                              t                     d d d            n# 1 swxY w Y   |                      t                    5  t                              t
                     d d d            n# 1 swxY w Y   |                      t                    5  t                              t          t          j                   d d d            n# 1 swxY w Y   |                      t                    5  t                              t          t          j	                   d d d            n# 1 swxY w Y   |                      t                    5  t                              t          t          j
        t                     d d d            d S # 1 swxY w Y   d S Nr   r'   )r*   r   r   r5   COMPRESSED_BOGUSre   rN   r1   rH   r2   r/   r0   rE   s    r;   test_decompress_bad_inputz<CompressDecompressFunctionTestCase.test_decompress_bad_input  s   y)) 	. 	.OO,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.y)) 	. 	.OO,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.y)) 	E 	EOO,T^ODDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Ey)) 	E 	EOOM$2CODDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Ey)) 	3 	3OOM$/$1  3 3 3	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3sY    AAA, BBB=,C55C9<C9,EEE72F66F:=F:c                    t                               t                    }t                               |          }|                     |t                     t                               t          t           j                  }t                               |          }|                     |t                     t                               t          t           j                  }t                               |          }|                     |t                     t                               t          t           j        t                    }t                               |t           j        t                    }|                     |t                     d S rd   )	r   r3   rU   r5   rT   r1   r2   r/   rq   )r7   r   r   s      r;   test_roundtripz1CompressDecompressFunctionTestCase.test_roundtrip  s   e$$&&&&&eT^44&&&&&eT%677&&&&&eT_mLLtNN&&&&&rK   c                     t                               t          t          z             }|                     |t
          dz             d S )Nr   )r   r5   rH   rN   rT   rU   r   s     r;   test_decompress_multistreamz>CompressDecompressFunctionTestCase.test_decompress_multistream  s9    0@ @AA	*****rK   c                     t                               t          t          z             }|                     |t
                     d S rQ   r   r5   rH   r   rT   rU   r   s     r;   test_decompress_trailing_junkz@CompressDecompressFunctionTestCase.test_decompress_trailing_junk  s5    0@ @AA&&&&&rK   c                     t                               t          dz  t          z             }|                     |t
          dz             d S )Nr   r   r   s     r;   )test_decompress_multistream_trailing_junkzLCompressDecompressFunctionTestCase.test_decompress_multistream_trailing_junk  s>     14D DEE	*****rK   N)r   r   r   r   r   r   r   r   r   r   r   r   r"   rK   r;   r   r     s        J J J:O O O' ' ':
I 
I 
I3 3 3' ' '&+ + +' ' '+ + + + +rK   r   c                   $    e Zd Z	 ddZd Zd ZdS )TempFilerK   c                 "    || _         || _        d S rQ   )filenamerX   )r7   r   rX   s      r;   r   zTempFile.__init__
  s     			rK   c                     t          | j        d          5 }|                    | j                   d d d            d S # 1 swxY w Y   d S )Nwb)openr   writerX   r7   fs     r;   	__enter__zTempFile.__enter__  s    $-&& 	!GGDI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   >AAc                 .    t          | j                   d S rQ   )r   r   )r7   argss     r;   __exit__zTempFile.__exit__  s    t}rK   Nr   )r   r   r   r   r   r  r"   rK   r;   r   r     sI        G         rK   r   c                      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d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@d?S )@FileTestCasec                    t          t          t                              5 }	 d d d            n# 1 swxY w Y   t          t                      d          5 }	 d d d            n# 1 swxY w Y   t          t                      d          5 }	 d d d            n# 1 swxY w Y   t          t                      d          5 }	 d d d            d S # 1 swxY w Y   d S )Nwxa)r   r   rH   r   s     r;   	test_initzFileTestCase.test_init  s   gm,,-- 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	gii%% 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	gii%% 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	gii%% 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sB   044A%%A),A)BB!BCCCc                 n   t          j        t                    }t          |t                    5  t          |          5 }|                     |                                t                     d d d            n# 1 swxY w Y   t          |d          5 }|	                    t                     d d d            n# 1 swxY w Y   t          |          5 }|                     |                                t          dz             d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr  r   )
pathlibPathr
   r   rH   r   rT   readrU   r   )r7   r   r   s      r;    test_init_with_PathLike_filenamez-FileTestCase.test_init_with_PathLike_filename"  s   <''h.. 	6 	6(## 2q  51112 2 2 2 2 2 2 2 2 2 2 2 2 2 2(C(( A              (## 6q  5195556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s|   D*.A9-D*9A=	=D* A=	D*B;/D*;B?	?D*B?	D*1DD*D	D*D	D**D.1D.c                 ~   t          t          t                    5  t          t                    5 }	 d d d            n# 1 swxY w Y   t          t          d          5 }	 d d d            n# 1 swxY w Y   t          t          d          5 }	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr  r  )r   r
   rH   r   r   s     r;   test_init_with_filenamez$FileTestCase.test_init_with_filename,  s   fm,, 	 	&!! Q              &#&& !              &#&& !              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sy   B2>B2A	B2A	B2A, B2,A0	0B23A0	4B2BB2B	B2!B	"B22B69B6c                    t          t                    5  t          t          d          5  	 d d d            n# 1 swxY w Y   t          t          d          5  	 d d d            n# 1 swxY w Y   t          t          d          5  	 d d d            n# 1 swxY w Y   t          t          d          5  	 d d d            n# 1 swxY w Y   t          t          d          5  	 d d d            n# 1 swxY w Y   t          t          d          5  	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nrrbr  r   r  ab)r   r
   r   rE   s    r;   test_init_modezFileTestCase.test_init_mode5  s   f 	 	&#&&                &$''                &#&&                &$''                &#&&                &$''                	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   D79D7=	D7 =	D7A'D7'A+	+D7.A+	/D7B	D7B	D7B	D75C7D7C	D7
C	D7#C1%D71C5	5D78C5	9D7DD7D#	#D7&D#	'D77D;>D;c                    |                      t          t                     dD ]}t          t                     t          t          |          5  	 d d d            n# 1 swxY w Y   |                     t
                    5  t          t          |          5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )N)r  xb)
addCleanupr   r
   r   r*   FileExistsError)r7   modes     r;   test_init_with_x_modez"FileTestCase.test_init_with_x_modeD  st   ''' 	 	D6NNN&$''                ""?33  fd++                              		 	sH   AA 	#A 	B<B%B<%B))B<,B)-B<<C 	C 	c                 @   |                      t                    5  t          t          t                    d           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d	           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d
           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d           d d d            d S # 1 swxY w Y   d S )N)r   r  r   xtzx+rxwxrtzr+wtzw+rw)r*   r,   r   r   rH   rE   s    r;   test_init_bad_modezFileTestCase.test_init_bad_modeN  s   z** 	7 	7W]++X666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7z** 	1 	1W]++R000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1z** 	3 	3W]++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3z** 	3 	3W]++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3z** 	3 	3W]++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3z** 	3 	3W]++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3z** 	3 	3W]++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3z** 	3 	3W]++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3z** 	3 	3W]++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3z** 	3 	3W]++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3z** 	3 	3W]++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   #A

AA/#BB"%B"#C22C69C6#EE
E
+#FF!F?#G..G25G2#II	I'#JJJ;#K**K.1K.#L>>MM##NNNc                    |                      t                    5  t          t                      dd           d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dt
          j                   d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dt
          j        dz              d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    t
          j
                   d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    t
          j                   d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    t
          j                   d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    t
          j                   d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    t
          j                   d d d            d S # 1 swxY w Y   d S )Nr  s   asdr   r   )r*   r+   r   r   r   r   CHECK_UNKNOWNCHECK_ID_MAXr,   rH   r]   CHECK_CRC32r\   CHECK_SHA256rE   s    r;   test_init_bad_checkz FileTestCase.test_init_bad_checkf  s   y)) 	3 	3WYY62222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 y)) 	? 	?WYY4+=>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?y)) 	B 	BWYY4+<q+@AAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B z** 	D 	DW]++4?CCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Dz** 	E 	EW]++43CDDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Ez** 	E 	EW]++43CDDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Ez** 	F 	FW]++43DEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fz** 	G 	GW]++43EFFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   AA
A
+)B  B$'B$,C==DD".EE #E .F;;F?F? .HH!H?.I99I= I=.KK Kc                 r   |                      t                    5  t          t                      dd           d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dd           d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dd           d d d            n# 1 swxY w Y   |                      t
                    5  t          t                      dd           d d d            n# 1 swxY w Y   |                      t
                    5  t          t                      dd           d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dd           d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                    d	           d d d            d S # 1 swxY w Y   d S )
Nr  g(\@r   rv      r   irB   r   )r*   r+   r   r   r   OverflowErrorr,   rH   rE   s    r;   test_init_bad_presetz!FileTestCase.test_init_bad_presetz  s   y)) 	2 	2WYYD1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2y)) 	0 	0WYYB////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0y)) 	0 	0WYYB////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0}-- 	0 	0WYYB////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0}-- 	0 	0WYYB////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0y)) 	3 	3WYYE2222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 z** 	7 	7W]++A6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s}   AA
A
+BBB;C&&C*-C*D66D:=D:FF
F
+GGG;$H,,H03H0c                 *   |                      t                    5  t          t                      ddg           d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dddig           d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dddig           d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dt
          j        dd	g           d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dt
          j        dd	g           d d d            n# 1 swxY w Y   |                      t                    5  t          t                      dt
          j        dd	g           d d d            d S # 1 swxY w Y   d S )
Nr  r>   r   r?   r   r    r@   r   rA   )	r*   r+   r   r   r,   r   r.   rC   rD   rE   s    r;   test_init_bad_filter_specz&FileTestCase.test_init_bad_filter_spec  s   y)) 	; 	;WYYj\::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;z** 	= 	=WYYwl^<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=z** 	> 	>WYYtUm_====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>z** 	D 	DWYY%)%6qAABD D D D	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D z** 	D 	DWYY%)%6qAABD D D D	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D z** 	B 	BWYY%)_Q??@B B B B	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bsk    AAA,"BB!B?"C--C14C1-EEE0-F))F-0F--HHHc                     |                      t                    5  t          t                      dt          j        dt                     d d d            d S # 1 swxY w Y   d S )Nr     )r   r   r   )r*   r,   r   r   r   r/   r0   rE   s    r;   !test_init_with_preset_and_filtersz.FileTestCase.test_init_with_preset_and_filters  s    z** 	6 	6WYYDO}6 6 6 6	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   0AAAc                 T   t          t                    5 }t          |          }|                                 |                     |j                   |                                 |                     |j                   d d d            n# 1 swxY w Y   t          t          t                    5  t          t                    }|j        }|                                 | 	                    |j                   |                                 d d d            d S # 1 swxY w Y   d S rQ   )
r   rH   r   closerR   closedr   r
   _fprV   )r7   srcr   fps       r;   
test_closezFileTestCase.test_close  sk   ]## 	)sAGGIIISZ(((GGIIISZ(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) fm,, 	 	  ABGGIIIOOBI&&&GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s%   A,BBB2ADD!$D!c                 h   t          t          t                              }	 |                     |j                   |                                 |                     |j                   |                                 n# |                                 w xY w|                     |j                   t          t                      d          }	 |                     |j                   |                                 n# |                                 w xY w|                     |j                   d S Nr  )r   r   rH   rR   r5  r  r4  rV   r   s     r;   test_closedzFileTestCase.test_closed  s    W]++,,	QX&&&FFHHHQX&&&GGIIIIAGGIIII!!!WYY$$	QX&&&GGIIIIAGGIIII!!!!!s   AB   BC? ?Dc                 *   t          t          t                              }	 |                     t          |j                   |                                 n# |                                 w xY w|                     t          |j                   t          t          t                    5  t          t                    }	 | 
                    |                                |j                                                   |                     |                                t                     |                                 n# |                                 w xY w	 d d d            n# 1 swxY w Y   |                     t          |j                   d S rQ   )r   r   rH   r*   r   filenor4  r,   r   r
   rT   r6  assertIsInstanceintr   s     r;   test_filenozFileTestCase.test_fileno  sn   W]++,,	2AH===GGIIIIAGGIIII*ah///fm,, 	 	  A  QU\\^^<<<%%ahhjj#666										 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	*ah/////s6    A A.+E(A,E-E(EE((E,/E,c                    t          t          t                              }	 |                     |                                           |                                 |                     |                                           |                                 n# |                                 w xY w|                     t          |j                   t          t                      d          }	 | 	                    |                                           |                                 n# |                                 w xY w|                     t          |j                   t          t                    }d |_        t          |          }	 | 	                    |                                           |                                 n# |                                 w xY w|                     t          |j                   d S )Nr  c                      dS )NFr"   r"   rK   r;   <lambda>z,FileTestCase.test_seekable.<locals>.<lambda>  s    u rK   )
r   r   rH   rV   seekabler  r4  r*   r,   rR   )r7   r   r7  s      r;   test_seekablezFileTestCase.test_seekable  s   W]++,,	OOAJJLL)))FFHHHOOAJJLL)))GGIIIIAGGIIII*aj111WYY$$	QZZ\\***GGIIIIAGGIIII*aj111m$$$}SMM	QZZ\\***GGIIIIAGGIIII*aj11111s$   A"B B00'D, ,E'G G#c                    t          t          t                              }	 |                     |                                           |                                 |                     |                                           |                                 n# |                                 w xY w|                     t          |j                   t          t                      d          }	 | 	                    |                                           |                                 n# |                                 w xY w|                     t          |j                   d S r;  )
r   r   rH   rV   readabler  r4  r*   r,   rR   r   s     r;   test_readablezFileTestCase.test_readable  s	   W]++,,	OOAJJLL)))FFHHHOOAJJLL)))GGIIIIAGGIIII*aj111WYY$$	QZZ\\***GGIIIIAGGIIII*aj11111   A"B B00'D, ,Ec                    t          t          t                              }	 |                     |                                           |                                 |                     |                                           |                                 n# |                                 w xY w|                     t          |j                   t          t                      d          }	 | 	                    |                                           |                                 n# |                                 w xY w|                     t          |j                   d S r;  )
r   r   rH   rR   writabler  r4  r*   r,   rV   r   s     r;   test_writablezFileTestCase.test_writable  s   W]++,,	QZZ\\***FFHHHQZZ\\***GGIIIIAGGIIII*aj111WYY$$	OOAJJLL)))GGIIIIAGGIIII*aj11111rJ  c                 X	   t          t          t                              5 }|                     |                                t
                     |                     |                                d           d d d            n# 1 swxY w Y   t          t          t                              5 }|                     |                                t
                     d d d            n# 1 swxY w Y   t          t          t                    t          j                  5 }|                     |                                t
                     |                     |                                d           d d d            n# 1 swxY w Y   t          t          t                    t          j	                  5 }|                     |                                t
                     |                     |                                d           d d d            n# 1 swxY w Y   t          t          t                    t          j        t                    5 }|                     |                                t
                     |                     |                                d           d d d            n# 1 swxY w Y   t          t          t                    t          j        t                    5 }|                     |                                t
                     |                     |                                d           d d d            n# 1 swxY w Y   t          t          t                    t          j        t                     5 }|                     |                                t
                     |                     |                                d           d d d            n# 1 swxY w Y   t          t          t"                    t          j        t$                    5 }|                     |                                t
                     |                     |                                d           d d d            d S # 1 swxY w Y   d S )NrK   r   r'   )r   r   rH   rT   r  rU   rN   r   r1   r2   re   r/   r0   rj   ri   rn   rm   rr   rq   r   s     r;   	test_readzFileTestCase.test_read  s   gm,,-- 	,QVVXXu---QVVXXs+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, g.//00 	.AQVVXXu---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.gm,,T^DDD 	,QVVXXu---QVVXXs+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, g.//8IJJJ 	,aQVVXXu---QVVXXs+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, g.//!_mE E E 	,HIQVVXXu---QVVXXs+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, g.//!_mE E E 	,HIQVVXXu---QVVXXs+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, g.//!_mE E E 	,HIQVVXXu---QVVXXs+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, g.//!_mE E E 	,HIQVVXXu---QVVXXs+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   ABBB0.C**C.1C."AFFF<AHH"%H"AJ>>KK<AMM"%M"AO>>PP<ARR#&R#c                 H   t          t          t                              5 }|                     |                    d          d           d d d            n# 1 swxY w Y   t          t          t
                              5 }|                     |                    d          d           d d d            n# 1 swxY w Y   t          t          t                    t          j                  5 }|                     |                    d          d           d d d            n# 1 swxY w Y   t          t          t
                    t          j                  5 }|                     |                    d          d           d d d            d S # 1 swxY w Y   d S )Nr   rK   r   )	r   r   rH   rT   r  rN   r   r1   r2   r   s     r;   test_read_0zFileTestCase.test_read_0/  sB   gm,,-- 	-QVVAYY,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-g.//00 	-AQVVAYY,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-gm,,T^DDD 	-QVVAYY,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-g.//8IJJJ 	-aQVVAYY,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-sG   *AAA*B::B>B>2*D((D,/D, *FFFc                 ~   t          t          t                              5 }g }	 |                    d          }|sn9|                     t          |          d           |                    |           Q|                     d                    |          t                     d d d            d S # 1 swxY w Y   d S NTrv   rK   )
r   r   rH   r  r   ry   rz   rT   r{   rU   )r7   r   chunksresults       r;   test_read_10zFileTestCase.test_read_109  s    gm,,-- 	6F& $$S[["555f%%%& SXXf--u555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   BB22B69B6c                    t          t          t          dz                      5 }|                     |                                t
          dz             d d d            n# 1 swxY w Y   t          t          t          t          z                       5 }|                     |                                t
          dz             d d d            n# 1 swxY w Y   t          t          t          dz            t          j	        t                    5 }|                     |                                t
          dz             d d d            d S # 1 swxY w Y   d S )Nr   r      r'   )r   r   rH   rT   r  rU   rN   rn   r   r/   rm   r   s     r;   test_read_multistreamz"FileTestCase.test_read_multistreamD  s   gma/0011 	2QQVVXXuqy111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2gm.>>??@@ 	2AQVVXXuqy111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2g.233!_mE E E 	2HIQVVXXuqy111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s5   1A""A&)A&1CCC1EEEc                 n   t           j        }t          t                    t           _        	 t	          t          t          dz                      5 }|                     |                                t          dz             d d d            n# 1 swxY w Y   |t           _        d S # |t           _        w xY wNr   )	_compressionBUFFER_SIZEry   rH   r   r   rT   r  rU   )r7   saved_buffer_sizer   s      r;   )test_read_multistream_buffer_size_alignedz6FileTestCase.test_read_multistream_buffer_size_alignedM  s     )4#&}#5#5 	9'-1"45566 6!  5195556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 (9L$$$'8L$8888s/   $B& 1BB& BB& BB& &B4c                     t          t          t          t          z                       5 }|                     |                                t                     d d d            d S # 1 swxY w Y   d S rQ   r   r   rH   r   rT   r  rU   r   s     r;   test_read_trailing_junkz$FileTestCase.test_read_trailing_junkX  s    gm.>>??@@ 	.AQVVXXu---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   .A%%A),A)c                     t          t          t          dz  t          z                       5 }|                     |                                t          dz             d d d            d S # 1 swxY w Y   d S r[  ra  r   s     r;   #test_read_multistream_trailing_junkz0FileTestCase.test_read_multistream_trailing_junk\  s    gma/2BBCCDD 	2QVVXXuqy111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   1A++A/2A/c                 n   t          t          t                    5  t          t                    5 }|                     |                                t                     |                     |                                d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrK   )r   r
   rH   r   rT   r  rU   r   s     r;   test_read_from_filez FileTestCase.test_read_from_file`  s   fm,, 	0 	0&!! 0Q  5111  3///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s5   B*ABB*B	B*B	B**B.1B.c                    	 t          j        d          }n%# t          $ r |                     d           Y nw xY wt	          t           t
                    5  t          |          5 }|                     |                                t                     |                     |                                d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nascii%Temporary file name needs to be ASCIIrK   )
r
   encodeUnicodeEncodeErrorskipTestr   rH   r   rT   r  rU   )r7   bytes_filenamer   s      r;   'test_read_from_file_with_bytes_filenamez4FileTestCase.test_read_from_file_with_bytes_filenamef  sa   	C#]733NN! 	C 	C 	CMMABBBBB	Cfm,, 	0 	0.)) 0Q  5111  3///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0sC    99C &AC<C C	C C	C  C$'C$c                     t          t          t          d d                             5 }|                     t          |j                   d d d            d S # 1 swxY w Y   d S )Nr   )r   r   rH   r*   r6   r  r   s     r;   test_read_incompletez!FileTestCase.test_read_incompletep  s    gmDSD12233 	0qh///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   !AAAc                    t           d d         }t          t          |                    5 }|                     t          |j                   d d d            n# 1 swxY w Y   t          t          |                    5 }|                     |                    t          t                              t                     |                     t          |j        d           d d d            n# 1 swxY w Y   t          d          D ]_}t          t          |d |                             5 }|                     t          |j        d           d d d            n# 1 swxY w Y   `d S )Nir      )
rH   r   r   r*   r6   r  rT   ry   rU   rx   )r7   	truncatedr   r}   s       r;   test_read_truncatedz FileTestCase.test_read_truncatedt  s    "$3$'	gi(()) 	0Qh///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0gi(()) 	3QQVVCJJ//777h222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 r 	7 	7A')BQB-0011 7Q!!(AFA6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7	7 	7s6   !AA A A"C..C25C2."EE 	#E 	c                 &   t          t          t                              }|                                 |                     t
          |j                   t          t                      d          5 }|                     t
          |j                   d d d            n# 1 swxY w Y   t          t          t                              5 }|                     t          |j        t                                 d d d            d S # 1 swxY w Y   d S r;  )	r   r   rH   r4  r*   r,   r  r+   floatr   s     r;   test_read_bad_argszFileTestCase.test_read_bad_args  sO   W]++,,				*af---gii%% 	2j!&111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2gm,,-- 	:i999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s$   2!BB#&B#.DD
D
c                     t          t          t                              5 }|                     t          |j                   d d d            d S # 1 swxY w Y   d S rQ   )r   r   r   r*   r   r  r   s     r;   test_read_bad_datazFileTestCase.test_read_bad_data  s    g.//00 	1Ai000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   !AAAc                    t          t          t                              5 }g }	 |                                }|sn|                    |           -|                     d                    |          t                     |                     |                                d           d d d            d S # 1 swxY w Y   d S )NTrK   r   r   rH   read1rz   rT   r{   rU   r7   r   blocksrU  s       r;   
test_read1zFileTestCase.test_read1  s    gm,,-- 	-F& f%%%	&
 SXXf--u555QWWYY,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   BB66B:=B:c                     t          t          t                              5 }|                     |                    d          d           d d d            d S # 1 swxY w Y   d S )Nr   rK   )r   r   rH   rT   r|  r   s     r;   test_read1_0zFileTestCase.test_read1_0  s    gm,,-- 	.QWWQZZ---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   *AA Ac                    t          t          t                              5 }g }	 |                    d          }|sn|                    |           .|                     d                    |          t                     |                     |                                d           d d d            d S # 1 swxY w Y   d S rS  r{  r}  s       r;   test_read1_10zFileTestCase.test_read1_10  s    gm,,-- 	-F& f%%%	&
 SXXf--u555QWWYY,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   BB77B;>B;c                    t          t          t          dz                      5 }g }	 |                                }|sn|                    |           -|                     d                    |          t          dz             |                     |                                d           d d d            d S # 1 swxY w Y   d S )Nr   TrK   r{  r}  s       r;   test_read1_multistreamz#FileTestCase.test_read1_multistream  s    gma/0011 	-QF& f%%%	&
 SXXf--uqy999QWWYY,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   B
B<<C C c                    t          t          t                              }|                                 |                     t
          |j                   t          t                      d          5 }|                     t
          |j                   d d d            n# 1 swxY w Y   t          t          t                              5 }|                     t          |j        d            d d d            d S # 1 swxY w Y   d S r;  )r   r   rH   r4  r*   r,   r|  r+   r   s     r;   test_read1_bad_argsz FileTestCase.test_read1_bad_args  sK   W]++,,				*ag...gii%% 	3j!'222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3gm,,-- 	8i$777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s$   2!BB#&B#"C::C>C>c                 2   t          t          t                              5 }|                                }|                     t          |          d           |                     t                              |                     | 	                    |
                                t                     d d d            n# 1 swxY w Y   t          t          t                              5 }|                    d          }|                     t          |          d           |                     t                              |                     | 	                    |
                                t                     d d d            d S # 1 swxY w Y   d S )Nr   rv   )r   r   rH   peekassertGreaterry   rV   rU   
startswithrT   r  )r7   r   rU  s      r;   	test_peekzFileTestCase.test_peek  s   gm,,-- 	.VVXXFs6{{A...OOE,,V44555QVVXXu---		. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.
 gm,,-- 	.VVBZZFs6{{A...OOE,,V44555QVVXXu---		. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s%   BC  CC,BFFFc                     t          t                      d          5 }|                     t          |j                   d d d            d S # 1 swxY w Y   d S r;  )r   r   r*   r,   r  r   s     r;   test_peek_bad_argszFileTestCase.test_peek_bad_args  s    gii%% 	2j!&111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   !AAAc                    t          t                    5 }|                                }d d d            n# 1 swxY w Y   t          t          t                              5 }|                     t          t          |                    |           d d d            n# 1 swxY w Y   t          t          t                              5 }|                     t          t          |                    |           d d d            n# 1 swxY w Y   t          t          t                    t          j
                  5 }|                     t          t          |                    |           d d d            n# 1 swxY w Y   t          t          t                    t          j                  5 }|                     t          t          |                    |           d d d            n# 1 swxY w Y   t          t          t                    t          j        t                    5 }|                     t          t          |                    |           d d d            d S # 1 swxY w Y   d S r   )r   rU   	readlinesr   rH   assertListEquallistiterrN   r   r1   r2   rj   r/   ri   r7   r   liness      r;   test_iteratorzFileTestCase.test_iterator  sT   U^^ 	"qKKMME	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"gm,,-- 	7  d1gg666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7g.//00 	7A  d1gg666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7gm,,T^DDD 	7  d1gg666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7g.//8IJJJ 	7a  d1gg666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7g.//!_mE E E 	7HI  d1gg666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7sf   6::"1BB#&B#1DDD 1E==FF51G22G69G601I..I25I2c                 V   t          t                    5 }|                                }d d d            n# 1 swxY w Y   t          t          t                              5 }|D ]*}|                     |                                |           +	 d d d            d S # 1 swxY w Y   d S rQ   )r   rU   r  r   rH   rT   readline)r7   r   r  lines       r;   test_readlinezFileTestCase.test_readline  s   U^^ 	"qKKMME	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"gm,,-- 	5 5 5  t44445	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   6::".BB"%B"c                 J   t          t                    5 }|                                }d d d            n# 1 swxY w Y   t          t          t                              5 }|                     |                                |           d d d            d S # 1 swxY w Y   d S rQ   )r   rU   r  r   rH   r  r  s      r;   test_readlineszFileTestCase.test_readlines  s   U^^ 	"qKKMME	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"gm,,-- 	7  666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   6::")BBBc                    	 t                               dt          d          z  d          }|                     t	          |          t
          j                   t          t          |                    }| 	                    |
                    d          d           dt          z   }|                     |j        j                                        |d           d S )N    g    >Ar1  r   r   z)Excessive amount of data was decompressed)r   r3   r@  
assertLessry   r\  r]  r   r   rT   r  r   r   _bufferrawtell)r7   bombdecomp
max_decomps       r;   test_decompress_limitedz$FileTestCase.test_decompress_limited  s    ;}}USXX-a}88D		<#;<<<'$--((Q///,,
V^/4466
7	9 	9 	9 	9 	9rK   c                 (   t                      5 }t          |d          5 }|                    t                     d d d            n# 1 swxY w Y   t                              t                    }|                     |                                |           d d d            n# 1 swxY w Y   t                      5 }t          |dt          j                  5 }|                    t                     d d d            n# 1 swxY w Y   t                              t          t          j                  }|                     |                                |           d d d            n# 1 swxY w Y   t                      5 }t          |dt          j	                  5 }|                    t                     d d d            n# 1 swxY w Y   t                              t          t          j	                  }|                     |                                |           d d d            n# 1 swxY w Y   t                      5 }t          |dt          j
        t                    5 }|                    t                     d d d            n# 1 swxY w Y   t                              t          t          j
        t                    }|                     |                                |           d d d            d S # 1 swxY w Y   d S )Nr  r   r'   )r   r   r   rU   r   r3   rT   getvaluer1   r2   r/   ri   )r7   dstr   expecteds       r;   
test_writezFileTestCase.test_write  sF   YY 	7##s## q              }}U++HS\\^^X666		7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7
 YY 	7##s4>::: a              }}U4>}BBHS\\^^X666		7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7
 YY 	7##s4+<===               }}U43D}EEHS\\^^X666		7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7
 YY 	7##s4?"/1 1 1 45               }}U4?-: % < <HS\\^^X666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   B%AB%A	B%A	A
B%%B),B)>E,D6E,D	E,	D	
AE,,E03E0H3"G	=H3	G	H3G	AH33H7:H7#L/J
LJ	LJ	ALLLc           	         t                      5 }t          |d          5 }t          dt          t                    d          D ]'}|                    t          ||dz                       (	 d d d            n# 1 swxY w Y   t                              t                    }|                     |	                                |           d d d            d S # 1 swxY w Y   d S )Nr  r   rv   )
r   r   rx   ry   rU   r   r   r3   rT   r  )r7   r  r   startr  s        r;   test_write_10zFileTestCase.test_write_10  sH   YY 	7##s## 3q"1c%jj"55 3 3EGGE%b.1222233 3 3 3 3 3 3 3 3 3 3 3 3 3 3 }}U++HS\\^^X666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s6   CAA9-C9A=	=C A=	A
CCCc                    t           d d         }t           dd         }t           dd          }d                    d |||fD                       }t                      5 }t          |d          5 }|                    |           d d d            n# 1 swxY w Y   t          |d          5 }|                    |           d d d            n# 1 swxY w Y   t          |d          5 }|                    |           d d d            n# 1 swxY w Y   |                     |                                |           d d d            d S # 1 swxY w Y   d S )NrM      rK   c              3   J   K   | ]}t                               |          V  d S rQ   r   r3   .0r  s     r;   	<genexpr>z1FileTestCase.test_write_append.<locals>.<genexpr>  .      LLDMM!,,LLLLLLrK   r  r  )rU   r{   r   r   r   rT   r  )r7   part1part2part3r  r  r   s          r;   test_write_appendzFileTestCase.test_write_append  s-   eted4i dee88LLueU6KLLLLLYY 	7##s## q              #s## q              #s## q              S\\^^X666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s~   E/BEB	EB	E,CEC	EC	E)D?ED	ED	+EEEc                    	 t          t          d          5 }|                    t                     d d d            n# 1 swxY w Y   t                              t                    }t          t          d          5 }|                     |                                |           d d d            n# 1 swxY w Y   t          t                     d S # t          t                     w xY w)Nr  r  )
r   r
   r   rU   r   r3   r   rT   r  r   )r7   r   r  s      r;   test_write_to_filezFileTestCase.test_write_to_file"  s*   	&#&& !              }}U++Hfd## 5q  84445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6NNNNNF6NNNNsO   C >C AC A7C =)B2&C 2B66C 9B6:C C)c                 D   	 t          j        d          }n%# t          $ r |                     d           Y nw xY w	 t	          |d          5 }|                    t                     d d d            n# 1 swxY w Y   t                              t                    }t          t           d          5 }| 
                    |                                |           d d d            n# 1 swxY w Y   t          t                      d S # t          t                      w xY w)Nrh  ri  r  r  )r
   rj  rk  rl  r   r   rU   r   r3   r   rT   r  r   )r7   rm  r   r  s       r;   &test_write_to_file_with_bytes_filenamez3FileTestCase.test_write_to_file_with_bytes_filename,  sy   	C#]733NN! 	C 	C 	CMMABBBBB	C	.#.. !              }}U++Hfd## 5q  84445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6NNNNNF6NNNNs_    99D	 A4(D	 4A88D	 ;A8<7D	 3)C(D	 (C,,D	 /C,0D	 	Dc                 6   t           d d         }t           dd         }t           dd          }d                    d |||fD                       }	 t          t          d          5 }|                    |           d d d            n# 1 swxY w Y   t          t          d          5 }|                    |           d d d            n# 1 swxY w Y   t          t          d          5 }|                    |           d d d            n# 1 swxY w Y   t          t          d          5 }|                     |                                |           d d d            n# 1 swxY w Y   t          t                     d S # t          t                     w xY w)NrM   r  rK   c              3   J   K   | ]}t                               |          V  d S rQ   r  r  s     r;   r  z9FileTestCase.test_write_append_to_file.<locals>.<genexpr>>  r  rK   r  r  r  )	rU   r{   r   r
   r   r   rT   r  r   )r7   r  r  r  r  r   s         r;   test_write_append_to_filez&FileTestCase.test_write_append_to_file:  sJ   eted4i dee88LLueU6KLLLLL
	&#&& !              &#&& !              &#&& !              fd## 5q  84445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6NNNNNF6NNNNs   F &B<F BF BF (C
>F 
CF CF *D F DF DF ,)E!F !E%%F (E%)F Fc                    t          t                      d          }|                                 |                     t          |j        d           t          t          t                    d          5 }|                     t          |j        d           d d d            n# 1 swxY w Y   t          t                      d          5 }|                     t          |j        d            |                     t          |j        d           |                     t          |j        d           d d d            d S # 1 swxY w Y   d S )Nr  r(   r  r)   texti  )r   r   r4  r*   r,   r   rH   r+   r   s     r;   test_write_bad_argsz FileTestCase.test_write_bad_argsK  s   WYY$$				*agv666gm,,c22 	;aj!'6:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;gii%% 	7i$777i&999i#666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s%   4"B""B&)B&	A$D::D>D>c                    t          t                    5 }|                                }d d d            n# 1 swxY w Y   t                      5 }t          |d          5 }|                    |           d d d            n# 1 swxY w Y   t
                              t                    }|                     |                                |           d d d            d S # 1 swxY w Y   d S r;  )	r   rU   r  r   
writelinesr   r3   rT   r  )r7   r   r  r  r  s        r;   test_writelineszFileTestCase.test_writelinesV  s{   U^^ 	"qKKMME	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"YY 	7##s## $qU###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $}}U++HS\\^^X666		7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7sC   6::C! B6C!B	C!	B	
A
C!!C%(C%c                    t          t          t                              5 }|                    d           |                     |                                t          dd                     d d d            d S # 1 swxY w Y   d S )Ni+  r   r   rH   seekrT   r  rU   r   s     r;   test_seek_forwardzFileTestCase.test_seek_forward_  s    gm,,-- 	4FF3KKKQVVXXuSTT{333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   AA::A>A>c                 >   t          t          t          dz                      5 }|                    t	          t
                    dz              |                     |                                t
          dd                     d d d            d S # 1 swxY w Y   d S )Nr   {   )r   r   rH   r  ry   rU   rT   r  r   s     r;    test_seek_forward_across_streamsz-FileTestCase.test_seek_forward_across_streamsd  s    gma/0011 	4QFF3u::#$$$QVVXXuSTT{333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   A BBBc                 :   t          t          t                              5 }|                    d           |                    dd           |                     |                                t          dd                     d d d            d S # 1 swxY w Y   d S )Nr   i  r   i8  r   r   rH   r  r  rT   rU   r   s     r;   %test_seek_forward_relative_to_currentz2FileTestCase.test_seek_forward_relative_to_currenti  s    gm,,-- 	5FF3KKKFF4OOOQVVXXuTUU|444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   A!BBBc                    t          t          t                              5 }|                    dd           |                     |                                t          dd                     d d d            d S # 1 swxY w Y   d S )Nir   r  r   s     r;   !test_seek_forward_relative_to_endz.FileTestCase.test_seek_forward_relative_to_endo      gm,,-- 	5FF4OOOQVVXXuTUU|444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5   AA;;A?A?c                 8   t          t          t                              5 }|                    d           |                    d           |                     |                                t          dd                     d d d            d S # 1 swxY w Y   d S )Ni     r  r   s     r;   test_seek_backwardzFileTestCase.test_seek_backwardt  s    gm,,-- 	4FF4LLLFF3KKKQVVXXuSTT{333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   A BBBc                 x   t          t          t          dz                      5 }|                    t	          t
                    dz              |                    d           |                     |                                t
          dd          t
          z              d d d            d S # 1 swxY w Y   d S )Nr   iM  i  )r   r   rH   r  ry   rU   r  rT   r   s     r;   !test_seek_backward_across_streamsz.FileTestCase.test_seek_backward_across_streamsz  s    gma/0011 	<QFF3u::#$$$FF3KKKQVVXXuSTT{U':;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   A=B//B36B3c                    t          t          t                              5 }|                    dd           |                     |                                t          dd                     d d d            d S # 1 swxY w Y   d S )Nijr   r  r   s     r;   "test_seek_backward_relative_to_endz/FileTestCase.test_seek_backward_relative_to_end  r  r  c                    t          t          t                              5 }|                    t	          t
                    dz              |                     |                                t	          t
                               |                     |                                d           d d d            d S # 1 swxY w Y   d S )N)#  rK   )	r   r   rH   r  ry   rU   rT   r  r  r   s     r;   test_seek_past_endzFileTestCase.test_seek_past_end  s    gm,,-- 	,FF3u::$%%%QVVXXs5zz222QVVXXs+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   BB<<C C c                 N   t          t          t                              5 }|                    d           |                     |                                d           |                     |                                t                     d d d            d S # 1 swxY w Y   d S )Nir   )r   r   rH   r  rT   r  r  rU   r   s     r;   test_seek_past_startz!FileTestCase.test_seek_past_start  s    gm,,-- 	.FF3KKKQVVXXq)))QVVXXu---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   A+BB!Bc                    t          t          t                              }|                                 |                     t
          |j        d           t          t                      d          5 }|                     t
          |j        d           d d d            n# 1 swxY w Y   t          t          t                              5 }|                     t
          |j        dd           |                     t          t
          f|j        dd           |                     t          |j        d            |                     t          |j        d           d d d            d S # 1 swxY w Y   d S )Nr   r  r   	   r"   s   derp)r   r   rH   r4  r*   r,   r  r+   r   s     r;   test_seek_bad_argszFileTestCase.test_seek_bad_args  s   W]++,,				*afa000gii%% 	5j!&!444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5gm,,-- 	:j!&!Q777y*5qvq"EEEi666i999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s%   3"B!!B%(B%BE((E,/E,c                 \   t          t          t                              5 }d}	 |                     |                                |           |                    d          }|sn|t          |          z  }S|                     |                                t          t                               d d d            n# 1 swxY w Y   t          t                      d          5 }t          dt          t                    d          D ]O}|                     |                                |           |	                    t          ||dz                       P|                     |                                t          t                               d d d            d S # 1 swxY w Y   d S )Nr   T   r     )
r   r   rH   rT   r  r  ry   rU   rx   r   )r7   r   posrU  s       r;   	test_tellzFileTestCase.test_tell  s   gm,,-- 	3C#  3/// s6{{"# QVVXXs5zz222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 gii%% 	3QE

C00 , ,  3///c#c'k*++++QVVXXs5zz222		3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s%   BB??CC&B.F!!F%(F%c                     t          t          t                              }|                                 |                     t
          |j                   d S rQ   )r   r   rH   r4  r*   r,   r  r   s     r;   test_tell_bad_argszFileTestCase.test_tell_bad_args  sB    W]++,,				*af-----rK   c                 f   t                      }|                    t          d          }|                     t	          |          d           |                     |j                   t                      }|                    t          d          }|                     |j                   |                     |j                   |                    d          }|                     t	          |          d           |                     |j                   |                     ||z   |           d S )Nr   r   ih3  i]3  rK      )	r   r5   ISSUE_21872_DATrT   ry   rV   rS   rR   r   )r7   d1entired2out1out2s         r;   test_issue21872zFileTestCase.test_issue21872  s    2>>Ve,,,
 
 }}_}??(((    }}S!!TB'''f-----rK   c                 n   t          j         dg d          }t          |          |j        z  }t          t	                      d          5 }|                     |                    |          |           |                     |                                |           d d d            d S # 1 swxY w Y   d S )NQ)r   r   r   rX  r   r  )arrayry   itemsizer   r   rT   r   r  )r7   qLENGTHr   s       r;   test_issue44439zFileTestCase.test_issue44439  s    K___--Q!*$gii%% 	/QWWQZZ000QVVXXv...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   AB**B.1B.N)Ar   r   r   r	  r  r  r  r  r#  r)  r-  r/  r2  r9  r<  rA  rF  rI  rM  rO  rQ  rV  rY  r_  rb  rd  rf  rn  rp  rt  rw  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"   rK   r;   r  r    s         6 6 6      3 3 30G G G(7 7 7"B B B"6 6 6
  (" " ""0 0 0 2 2 242 2 2"2 2 2", , ,:- - -	6 	6 	62 2 2	9 	9 	9. . .2 2 20 0 00 0 00 0 07 7 7: : :1 1 1	- 	- 	-. . .	- 	- 	-	- 	- 	-8 8 8
. 
. 
.2 2 27 7 75 5 57 7 7	9 	9 	97 7 707 7 77 7 7      "	7 	7 	77 7 74 4 4
4 4 4
5 5 55 5 5
4 4 4< < <5 5 5
, , ,. . .: : :3 3 3 . . .
. . .</ / / / /rK   r  c                   J    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S )OpenTestCasec                    t                               t          t                    d          5 }|                     |                                t                     d d d            n# 1 swxY w Y   t                      5 }t                               |d          5 }|                    t                     d d d            n# 1 swxY w Y   t                               |	                                          }|                     |t                     t                               |d          5 }|                    t                     d d d            n# 1 swxY w Y   t                               |	                                          }|                     |t          dz             d d d            d S # 1 swxY w Y   d S )Nr  r   r  r   )
r   r   r   rH   rT   r  rU   r   r5   r  )r7   r   bio	file_datas       r;   test_binary_modeszOpenTestCase.test_binary_modes  sE   YYw}--t44 	.QVVXXu---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.YY 	3#3%%               77IY...3%%               77IY	222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3sm   .A((A,/A,F:C8F:C	F:C	A%F:1EF:E	F:E	 AF::F>F>c                 (   t                               d          }|                    dt          j                  }t
                              t          t                    dd          5 }| 	                    |
                                |           d d d            n# 1 swxY w Y   t                      5 }t
                              |dd          5 }|                    |           d d d            n# 1 swxY w Y   t
                              |                                                              d          }| 	                    ||           t
                              |dd          5 }|                    |           d d d            n# 1 swxY w Y   t
                              |                                                              d          }| 	                    ||dz             d d d            d S # 1 swxY w Y   d S )Nrh  
r   encodingr!  atr   )rU   decodereplaceoslinesepr   r   r   rH   rT   r  r   r5   r  )r7   uncompresseduncompressed_rawr   r  r   s         r;   test_text_modeszOpenTestCase.test_text_modes  s   ||G,,'//bjAAYYw}--tgYFF 	5!QVVXX|444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5YY 	>#3w77 &1%%%& & & & & & & & & & & & & & &77>>wGGIY(89993w77 &1%%%& & & & & & & & & & & & & & &77>>wGGIY(81(<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>sn   *)BB#&B#8HC8,H8C<	<H?C<	 A5H5FHF	HF	AHHHc                 *   t          t                    5  t                              t          d          5 }|                    t
                     d d d            n# 1 swxY w Y   t          t          d          5 }t                              |                                          }|                     |t
                     d d d            n# 1 swxY w Y   t                              t          d          5 }|                     |                                t
                     d d d            n# 1 swxY w Y   t                              t          d          5 }|                    t
                     d d d            n# 1 swxY w Y   t                              t          d          5 }|                     |                                t
          dz             d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r  r  r   )	r   r
   r   r   r   rU   r5   r  rT   )r7   r   r   s      r;   test_filenamezOpenTestCase.test_filename  s   f 	6 	664(( A              fd## 3q OOAFFHH55	  E2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 64(( 2A  51112 2 2 2 2 2 2 2 2 2 2 2 2 2 264(( A              64(( 6A  5195556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   !HAHA!	!H$A!	%H=ACHC	HC	#H<.D6*H6D:	:H=D:	>#H!F<HF	HF	#H31G0$H0G4	4H7G4	8HHHc                    t          j        t                    }t          |          5  t                              |d          5 }|                    t                     d d d            n# 1 swxY w Y   t          |d          5 }t                              |	                                          }| 
                    |t                     d d d            n# 1 swxY w Y   t                              |d          5 }| 
                    |	                                t                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   r  )r  r  r
   r   r   r   r   rU   r5   r  rT   )r7   r   r   r   s       r;   test_with_pathlike_filenamez(OpenTestCase.test_with_pathlike_filename  s   <''h 	2 	28T** a              h%% 3 OOAFFHH55	  E2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 8T** 2a  51112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s~   EA, E,A0	0E3A0	4EACEC	E"C	#E.D;/E;D?	?ED?	EEEc                 H   |                      t                    5  t                              t          d           d d d            n# 1 swxY w Y   |                      t                    5  t                              t          d           d d d            n# 1 swxY w Y   |                      t                    5  t                              t          dd           d d d            n# 1 swxY w Y   |                      t                    5  t                              t          dd           d d d            n# 1 swxY w Y   |                      t                    5  t                              t          dd	           d d d            d S # 1 swxY w Y   d S )
Nr   rbtr  zutf-8r  ignore)errorsr  )newline)r*   r,   r   r   r
   rE   s    r;   test_bad_paramszOpenTestCase.test_bad_params  s   z** 	" 	"IIfb!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"z** 	% 	%IIfe$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%z** 	6 	6IIfdWI555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6z** 	5 	5IIfd8I444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5z** 	2 	2IIfdDI111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2sY   !AAA-!BB!B?#C..C25C2#EE	E'#FFFc                 X   t           j        t          d}t          j        t	          t
                    dfi |5 }|                     |                                t                     d d d            n# 1 swxY w Y   t	                      5 }t          j        |dfi |5 }|	                    t                     d d d            n# 1 swxY w Y   t          j
        |                                fi |}|                     |t                     d d d            d S # 1 swxY w Y   d S )Nr'   r  r   )r   r/   r0   r   r   re   rT   r  rU   r   r5   r  )r7   optionsr   r  r   s        r;   test_format_and_filtersz$OpenTestCase.test_format_and_filters  s   !_GGYw/00$BB'BB 	.aQVVXXu---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.YY 	/#30000 A              BB'BBIY...		/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/sH   .A44A8;A8D!C<DC	DC	ADD#&D#c                    t                               d          }|                    dt          j                  }t                      5 }t                              |dd          5 }|                    |           d d d            n# 1 swxY w Y   t          	                    |
                                                              d          }|                     ||           |                    d           t                              |dd          5 }|                     |                                |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nrh  r  r!  z	utf-16-ler  r   r   )rU   r  r  r	  r
  r   r   r   r   r5   r  rT   r  r  )r7   r  r  r  r   r   s         r;   test_encodingzOpenTestCase.test_encoding)  s   ||G,,'//bjAAYY 	9#3{;; &q%%%& & & & & & & & & & & & & & &77>>{KKIY(8999HHQKKK3{;; 9q  <8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s[   	E('B	=E(	B	E(B	B
E()EE(E	E(E	E((E,/E,c                 B   t          t                              d                    5 }t                              |ddd          5 }|                     |                                d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Ns   foobarr   rh  r  )r  r  foobar)r   r   r3   r   rT   r  )r7   r  r   s      r;   test_encoding_error_handlerz(OpenTestCase.test_encoding_error_handler6  s   T]]=1122 	5c3wxHH 5A  84445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s5   B)A<0B<B 	 BB 	BBBc                    t                               d          }t                      5 }t                              |ddd          5 }|                    |           d d d            n# 1 swxY w Y   |                    d           t                              |ddd          5 }|                     |                                |g           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nrh  r!  r  )r  r  r   r   )	rU   r  r   r   r   r   r  rT   r  )r7   r  r  r   s       r;   test_newlinezOpenTestCase.test_newline<  s   ||G$$YY 	8#3wEE               HHQKKK3wEE 8  7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8		8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8sY   C6A*C6*A.	.C61A.	26C6(*CC6C"	"C6%C"	&C66C:=C:c                    |                      t          t                     dD ]}t          t                     d|v rdnd }t                              t          ||          5  	 d d d            n# 1 swxY w Y   |                     t                    5  t                              t          |          5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )N)r  r  r  trh  r  )r  r   r
   r   r   r*   r  )r7   r  r  s      r;   test_x_modezOpenTestCase.test_x_modeF  s   '''% 	 	D6NNN"%++ww4H64(;;                ""?33  YYvt,,                              	 	sH   #A11A5	8A5	!C7C9CC		CC	CC 	#C 	N)r   r   r   r  r  r  r  r  r  r  r  r"  r%  r"   rK   r;   r  r    s        3 3 3> > >6 6 6	2 	2 	22 2 2	/ 	/ 	/9 9 95 5 58 8 8	 	 	 	 	rK   r  c                   &    e Zd Zd Zd Zd Zd ZdS )MiscellaneousTestCasec                    |                      t                              t          j                             |                      t                              t          j                             |                     t                              t          j        dz                        |                     t                              t          j                             d S r   )rV   r   is_check_supportedr]   r'  rR   r&  r%  rE   s    r;   test_is_check_supportedz-MiscellaneousTestCase.test_is_check_supportedT  s     	//@@AAA//0@AABBB 	001BQ1FGGHHH 	001CDDEEEEErK   c                 (   |                      t                    5  t                              d           d d d            n# 1 swxY w Y   |                      t                    5  t                              ddi           d d d            n# 1 swxY w Y   |                      t                    5  t                              t          j        dd           d d d            n# 1 swxY w Y   |                      t          j                  5  t                              t          j        dd           d d d            n# 1 swxY w Y   t                              t          j        dd	d
dd          }| 	                    |d           d S )Ns
   not a dictr       rr  )r    junkr  r    distr   r   r      )r    pblplc	dict_size   ]   )
r*   r+   r   _encode_filter_propertiesr,   r.   r   rC   FILTER_LZMA1rT   )r7   propss     r;   test__encode_filter_propertiesz4MiscellaneousTestCase.test__encode_filter_properties`  s   y)) 	: 	:**=999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:z** 	: 	:**D%=999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:z** 	R 	R**$2CR+P+PQQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	Rt~.. 	: 	:**$2C37,9 ,9 : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:
 ..'$0 0   	 455555sG   AA	A'BBB5(C))C-0C-(EEEc                    |                      t                    5  t                              t          j        dt
          i           d d d            n# 1 swxY w Y   |                      t          j                  5  t                              t          j        d           d d d            n# 1 swxY w Y   t                              t          j        d          }| 	                    |d         t          j                   | 	                    |d         d           | 	                    |d         d           | 	                    |d	         d
           | 	                    |d         d           d S )Nz	should bes   too longr5  r    r1  r   r2  r   r3  r   r4  r0  )
r*   r+   r   _decode_filter_propertiesrD   bytesr   rC   r7  rT   )r7   
filterspecs     r;   test__decode_filter_propertiesz4MiscellaneousTestCase.test__decode_filter_propertiesu  s   y)) 	R 	R**4?[%<PQQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	Rt~.. 	K 	K**4+<kJJJ	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 33!#79 9
D)4+<===D)1---D)1---D)1---K0':::::s#   -AAA>&B00B47B4c                     t                               t           j        d          }t                               |          }t                               t           j        |          }|                     ||           d S )Nr5  )r   r;  r7  r6  rT   )r7   spec1	reencodedspec2s       r;    test_filter_properties_roundtripz6MiscellaneousTestCase.test_filter_properties_roundtrip  sg    ..!#79 922599	..t/@)LL&&&&&rK   N)r   r   r   r*  r9  r>  rC  r"   rK   r;   r'  r'  R  sS        
F 
F 
F6 6 6*; ; ;' ' ' ' 'rK   r'  s  
LAERTES

       O, fear me not.
       I stay too long: but here my father comes.

       Enter POLONIUS

       A double blessing is a double grace,
       Occasion smiles upon a second leave.

LORD POLONIUS

       Yet here, Laertes! aboard, aboard, for shame!
       The wind sits in the shoulder of your sail,
       And you are stay'd for. There; my blessing with thee!
       And these few precepts in thy memory
       See thou character. Give thy thoughts no tongue,
       Nor any unproportioned thought his act.
       Be thou familiar, but by no means vulgar.
       Those friends thou hast, and their adoption tried,
       Grapple them to thy soul with hoops of steel;
       But do not dull thy palm with entertainment
       Of each new-hatch'd, unfledged comrade. Beware
       Of entrance to a quarrel, but being in,
       Bear't that the opposed may beware of thee.
       Give every man thy ear, but few thy voice;
       Take each man's censure, but reserve thy judgment.
       Costly thy habit as thy purse can buy,
       But not express'd in fancy; rich, not gaudy;
       For the apparel oft proclaims the man,
       And they in France of the best rank and station
       Are of a most select and generous chief in that.
       Neither a borrower nor a lender be;
       For loan oft loses both itself and friend,
       And borrowing dulls the edge of husbandry.
       This above all: to thine ownself be true,
       And it must follow, as the night the day,
       Thou canst not then be false to any man.
       Farewell: my blessing season this in thee!

LAERTES

       Most humbly do I take my leave, my lord.

LORD POLONIUS

       The time invites you; go; your servants tend.

LAERTES

       Farewell, Ophelia; and remember well
       What I have said to you.

OPHELIA

       'Tis in my memory lock'd,
       And you yourself shall keep the key of it.

LAERTES

       Farewell.
s   this is not a valid lzma streams   7zXZ  ִF !   t/] bXn䴝o
2h\6(wd"u.n򎍏/=/Mާz-]rZo#z/FMt6 BF$Ql,bnԨNȆ3x2O@Q /OozSt<I#ud6Y]-Pee:	7
pJV%G=?(΂=I3RisPX2jLbc-HoJliQk?@xH12Puw㾪iWЀ#cb5]dWlUGyF7v5h8W5:?rD5@7cԗitSkKvy6Te]:kla4r}r*z8hӼl-KZL3Ϝ!^9w PPKdZ}%$/&,qh{Q)qÀo![Ԋwt`^??\RԎXaЫS>ɕH	%$.oRbU^S/vr̢GkzʀЋIxy-0z^֏_Pi萄ܿky܁+\YYhw̴ |ejz`A叩	=_%voZO	M-<"CMg~b|'x!JFu 87yu_@qc#5)_3]o]5myK+ b t0ȏ׮+iܹk>f${pƈ0_h6Z%'
"冟7X=mNX[FUɆ0a+* _$_ޯ46qɒ`}ʮ`wجVeZ#d{wB:^VaH
\Xu#%*v!	4    Vj?uLU   twPg    YZs  ]    bXn䴝o
2h\6(wd"u.n򎍏/=/Mާz-]rZo#z/FMt6 BF$Ql,bnԨNȆ3x2O@Q /OozSt<I#ud6Y]-Pee:	7
pJV%G=?(΂=I3RisPX2jLbpljr=	3!EvVF״P~E7ƻc%I;砋Z(o>`᪨١}獃4T㘼DMA@ȓSaśTJE}g#ZVɝc>0S/y_(r?@:zBeyX :	xD\&GYJv{)Ao 5F?vVtTf'k\Y|wdd  ,Xsv}%
ߢ.6
h
 BlU}sHpB8ZA;z{5!A$qg/|r^=n6{>8
:'.
:݂'["wD$wq,1,2w$JdmgA&8i;NQrheL;mQN[jEOliB^R].-eiNwbQ~餈4kM)T3)B ^..	H5#NV$Kkt'R2-LH0~?SOE]<Z0a*?rnGd^8uEI
Vⳕi!&1FDP SO3D!w_G+.]>#h;5JK^-[\ʯԡĸprr.l []+0gaKYI,
V_#>wW,63J2=kTUti_lhfxr   )r    r   s  ] bXncyqm' QIVL8_뼥
W$=R;k8	{+cS3mb4*+.9bZrA0s"rGސcu۩.Al<OiŴg4t6"o?^}}[:
[lg2n7@6Tu	8[4PCV"x~NK%k:{6è\@F_ȐsU87JMг;X﮳eO,z,dyjlB8#6PKP؈ҡC?۔_"eޛ>H;#4ź%v9A"2i3߾Dm7o:Jہ6O	Q펕S/MSJd=^BE͑G.b&ٟj\CvҊ?^H>IqYK7DWOl5U{ϣk{O*B-(R@E:VY]ĥgX3 ]n콣Yu*TA$AAiw젇%=DѻqCqpL "t~cix)l)@lynD:Җ? %_h#7QDhnѣ_?q17_|ʷSWt9L|WsL_$Fkvfhî1QG5yIcwrIp:p_va"ّeëH*m}}>l%΄dӂ5fOg^&	@ΟJ{rzMho^U7\!kUd~熊z;PGw^ı3Sf @売sxRD`WϑTZ-X|^[7֢		Q5/@S5VhAKVCMxOO<e*Hk6G+)͜lK}5u*F2   r   r.  s  ] -Ԩd?ﾯH2.g5z	[}WmHgQRA5
v~:o:JCc*o\lE2aU{׸wܾ88\[_9%fs#=<\t=7ft\Q8Ԫآ >-ӎ#ArAmJ~B(`WKkaj S%iXB;EeTbg
jу]"Mr\j~PGHN*Z.	pE1ͩHP~0JK]9F_[ԋ6뿻$kS{,f:Sjz殘Q~r?&ˀ	|x|dhh+'Ł3q`Z#܊Il{6ճxhz%ݘ!RUaX1=R0㤚bd$]Bh2cL`4xZ]T^؉;Y9zo)f]$np;QK @:UcX
!"=.6g=WnOTDW3pntVOjMi$3܊fYKhwO2^&Vi=yZoƶw%c`]8mQh`[q0g"NR)(0\G!xzHyM
\A	arMꄛ!~Hoڇh颾qN!WGڡA`j?5B~E!^ݨy}))D2fuɗx4_6$t9=˿v\8jk)ffnĩMIE5TpӉ3/֏ou;PRFj$hK(c7)ݲ,.yQi`h-	^ [!M.-S+8,  ë~$eP]iog^Ek`~y+^D"!ҧT5Y4ZHf]όx3TUHy7X ( /\JvP8~4kAyPJNaO:eqACmw	uCwUP 8L4w!L2 j;Vːlv@EZ[E`>ޡbZЩ`{;fk1.N(u!LГBjc_}dàY/,bl@p8quHX}OXݾeO`CF=K$I_XJ'v+.vTv5ṑS"(xCXpS'J!G	2 oSdy,fߞE\L h}W#\oz r,  )r    start_offsetr    s  ] bXn䴝o
2h\6(wd"u.n򎍏/=/Mާz-]rZo#z/FMt6 BF$Ql,bnԨNȆ3x2O@Q /OozSt<I#ud6Y]-Pee:	7
pJV%G=?(΂=I3RisPX2jLbc-HoJliQk?@xH12Puw㾪iWЀ#cb5]dWlUGyF7v5h8W5:?rD5@7cԗitSkKvy6Te]:kla4r}r*z8hӼl-KZL3Ϝ!^9w PPKdZ}%$/&,qh{Q)qÀo![Ԋwt`^??\RԎXaЫS>ɕH	%$.oRbU^S/vr̢GkzʀЋIxy-0z^֏_Pi萄ܿky܁+\YYhw̴ |ejz`A叩	=_%voZO	M-<"CMg~b|'x!JFu 87yu_@qc#5)_3]o]5myK+ b t0ȏ׮+iܹk>f${pƈ0_h6Z%'
"冟7X=mNX[FUɆ0a+* _$_ޯ46qɒ`}ʮ`wجVeZ#d{wB:^VaH
\Xu#%*v!	4   rX  @   )r    r   r3  s  \ bWh'֐,vJq lxBf=&fx
>TnFv_?V<#w؞*]c~]Eg"8=~WDǙ1u9hw|lk6o7{Y_b$=wZ@kmE*ح{j,)mB<ca( -c'B`װ]Bܖ6DՃ1&5 PZ&jŏSӥu$̗oV~xWp4HDY)t"Fߥ"xȒ
[l*Yر@o7ru5$U{	}QxNXX`v-f/\)Bg#2B2444q	93?mPXa)djw2A\C3!o[:0.@\4Jv4kkfss^ea=&rpEՀykTHoŌ0-e\>k	!^qA<EG񶹂sa̒ҶUنaTG@	7*޼]6N񄞟'<ߙsqН%p4{=MH:֤0DӨS `W 7N#	1al	jA:\=D3]eZAdgFQqBro仴@dQ
/ظS5:gDzڐ5H!	uRlQOb	RA -IGE$jѪI2s53D0%P}JO^hlV.owඤ*rG+i[w@_yW.-mU6gSA(=ޒ,DnE\Yˌ~EuVƙm<[u1
w%![·B,%df"g.3XY+4qA
=9*/s1b@FQ\ ,E7[!mA}3R5FH)ccнn{IJB`w&`}@Oxe	|eg@Y88NJ!qqWk*7Jmq
:`.+)ހXQmcPA'ɬ)tZR`]gRFTHS<PeJ^[c~']A,K{MxQ3=a9a2sbE"dDIJ!dGm_rNBqPΧeP!|6ͿIirejPqwS7hMʆ?P}y~I<Q8ߔ>rkv⹊qIs"㩥>D;33'e.;HqW~2x
6	;j[-%@2\ǯ¡Oth_A_W&D܅;X,>-7S)pQBLdsuȕ*)v{FWlj s  ]  @ h3        `DѻZ^3+g-1F%-ps8,|*xТb!cهUn VJ"8%_`?@*^&gɯ'}FN\Mz-˚O@gƥwnG'GIrυy[/_MQ+xF]&,fHgrvqxYF9'Fd<\kai C"4)֧`y|jX!Nǅjv]c5ՙi^Gl:,'4$Ywkkņ>~G5]0dw#(3ʡbXr+m3qŞ*6s-r?CgJN'M
Q
`mNql:qGT!0~4J827At]5MK,j7(l2ڕ(0BhpJ	go??}όV:вkk=Ǎ/`.X*~j";V`t0d)}\bJ
+V!ޘK7`ā~؍mY)/Pm[zZӋPf0ЕJ{Wope]ڷ5<g!̱\72Mc350L-˖Uʰ̉*P.~9o?}P
;m|#03<^HiֳTFq}&ĮΜU̶drwNzsRl5^eVYٟ*Ĩ6+ֈ[_rcfx|~L/ۘCiOt<Q`%5k
7I<#)&C`!˩FMuʕebXa[BOf;Crbٜi]<zT9pFPw堔a q&Wo5q8t4-H	dQJ s."pNg}|d3X[E+WvG/I<L\1O{mW~^@D@A9;BOutNJ5ZO6[7o*[ɷa'uq+y aMļ0'pQHK=nFOY0	|Py~h0d[ _vcI3`WyrkBiŊ^ԁ>"v`$^2.dd@Y|j}riVX4rBNPS[I(;9|^0;.*[l_Xf!43D{t]5Ufb
,Q	@<,-3 7	K7*X~Okz"3sL;^⽪Zfڦ:]}a?5M
}M2Yo īTU"unA̐i~4*JtuוZG~ST,C`2>Qśhu bVKc ޅ-:*;`ݗgS}5e7/!Y'C(bTD_E֘{\fz9˥bqW!;z~is+5k htUޣˆj
C?0Jj;0d#;c&8?Jncb4lhnZe,B-c|&LL86bViF̎4/^W?܄(dOD64,SJc^0	D[憰n^븸)a @+/h3`+P-Bn^/w<M!EY<٦Bǃ"D|&d`70o喤v;]'hA&9~@t<4)=:&6A+ <k\dv^l5C?ԠMCȀ3BPjyzE[oT'*HM7f;'wM 帷 D+PgnkcƐVUovfZ3^翬vxJjn*o>_+D{sHAGݭ7q+Wg"X~4`q)KsV5s*;{<@GjLؒ&	u5]\A|ICeQ*~uXyP
fZEu>'`cZ8jUoe>Rb#H-!ޝkw{/K)A:UM̻{9 ((6iu؞q7-BQ8vACd!'ͮؓިb2K l	|DU>w7}W|g|1 m@6+	D Mҵ'~Co	fI1φ`͂wcdCUEMJH=*I"^S6=@,Gr[>n<(}~4stff	/)
ײwQnsƷ(G<6[~H ~:e(_(c̟gvS=S>
YRGAOdcPܟ"[Q~䈡#CϾHؾmWFQ(XDKB.-՞|N]Z=)MLTiN?4O&u70ؓBNEyϘDʚL_]ܩ1 cؿp-N(#2Ilr __main__)7r\  r  ior   r   r   r	  r  r   r   r   testr   unittesttest.supportr   r   test.support.import_helperr	   test.support.os_helperr
   r   r   r   r   r   r   TestCaser   r   r   r  r  r'  rU   r   rH   rN   r.   r0   re   rC   PRESET_DEFAULTPRESET_EXTREMEri   rj   FILTER_IA64rm   rn   rD   rq   rr   r  r   mainr"   rK   r;   <module>rR     se        A A A A A A A A A A 				    



        ( ( ( ( ( ( ( ( 4 4 4 4 4 4        }V F F F F F F F F F F F FgN gN gN gN gNX%6 gN gN gNTD+ D+ D+ D+ D+): D+ D+ D+N       A/ A/ A/ A/ A/8$ A/ A/ A/Hu u u u u8$ u u up7' 7' 7' 7' 7'H- 7' 7' 7'x>	@ 6 +4 `(" X )Q778* \ )155) /$2EEG GH:& | (%@@)*,) Z )155>>)Qa@@B? HA% L zHMOOOOO rK   