python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_codecs.cpython-311.opt-1.pyc

e%	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZ	ddlZn
#e$rdZYnwxYw	ddlZn
#e$rdZYnwxYw	ddlZejejZn#e$rdZdZYnwxYwdZdZGd	d
eZGddZGd
deZGddeejZGddeejZGddeejZGddeejZ GddeejZ!GddeejZ"GddeejZ#GddeejZ$Gdd ejZ%Gd!d"ejZ&Gd#d$e#ejZ'Gd%d&ejZ(gd'Z)e)D]%Z*e+e*d(kre,e-e*&Gd)d*ejZ.gd+Z/Gd,d-ejZ0Gd.d/ejZ1Gd0d1ejZ2Gd2d3ejZ3Gd4d5ejZ4Gd6d7ejZ5Gd8d9ejZ6gd:Z7e8ed;re79d<e8ed=re79d>d?gZ:Gd@dAejeZ;GdBdCejZ<GdDdEejZ=GdFdGejZ>GdHdIeejZ?GdJdKeejZ@GdLdMejZAGdNdOejZBGdPdQejZCgdRZDdSdTgdUggdVdWgdXgdYZE	ddlFZFeD9dZd[d\geEdZ<n
#e$rdZFYnwxYw	ddlGZGeD9d]d^geEd]<n#e$rYnwxYwGd_d`ejZHiZIdaZJGdbdcejZKejLejMddkdeGdfdgejZNGdhdiejZOGdjdkejZPGdldmejZQejRedudnGdodpejZSGdqdrejZTGdsdtejZUGdudvejZVeWdwkrejXdSdS)xN)mock)support)	os_helper)warnings_helpercfd}|S)Ncd||t|fdSN)assertEquallen)inputexpectcoderselfs  D/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_codecs.pycheckzcoding_checker.<locals>.check"s2uE

';<<<<<)rrrs`` rcoding_checkerr!s'======Lrc

ddlm}m}m}ddlm}m
mmm	}ddd
G

fddtj
}|||||}|d	|d
f}|}	||d|	S)Nr)POINTERWINFUNCTYPEWinDLL)BOOLBYTEWCHARUINTDWORDicJeZdZdfdzfdzfdfdfdzfgZdS)'is_code_page_present.<locals>.CPINFOEXWMaxCharSizeDefaultCharLeadByteUnicodeDefaultCharCodePageCodePageNameN)__name__
__module____qualname___fields_)rMAX_DEFAULTCHAR
MAX_LEADBYTESMAX_PATHrrsr	CPINFOEXWr".sT"D)"D$89m!34)51&#U8^46rr0GetCPInfoExWkernel32)ctypesrrrctypes.wintypesrrrrr	Structure)cprrrrrr0	prototypeGetCPInfoExinforr-r.r/rrs          @@@@@@ris_code_page_presentr:'s
3333333333>>>>>>>>>>>>>>MOH666666666666F$666D$wwy/A/ABBI)^VVJ-?-?@AAK9;;D;r1d###rc&eZdZdZdZdZddZdS)QueuezF
    queue: write bytes at one end, read bytes from the other end
    c||_dSr
_buffer)rbuffers  r__init__zQueue.__init__?s
rc&|xj|z
c_dSr
r>)rcharss  rwritezQueue.writeBsrrc|dkr|j}|jdd|_|S|jd|}|j|d|_|SNrr>)rsizess   rreadz
Queue.readEsP66A<+DLHUdU#A<.DLHrN)r)r)r*r+__doc__rArDrIrrrr<r<;sPrr<ceZdZdZdZdS)MixInCheckStateHandlingctt|dzD]]}tj|}||d|}|}||dt|ds|||ddddf|	||d|
||tj|}|||||dd}|
|||z_dS)NrT)rangercodecsgetincrementaldecoderdecodegetstateassertIsInstanceintsetstate
assertTruer	rencodingurHidpart1statepart2s	         rcheck_state_handling_decodez3MixInCheckStateHandling.check_state_handling_decodeQsYs1vvax	-	-A6,X6688AHHQrrUOOEJJLLE!!%(C0008
6

E!HRaRL!,---AHHU1X$6$6 6777  

5557,X6688A
JJuHHQqrrUD))EQe,,,,'	-	-rctt|dzD]}tj|}||d|}|}tj|}|||||dd}||||zdS)NrNT)rOrrPgetincrementalencoderencoderSrVrrXs	         rcheck_state_handling_encodez3MixInCheckStateHandling.check_state_handling_encodegss1vvax	-	-A6,X6688AHHQrrUOOEJJLLE6,X6688A
JJuHHQqrrUD))EQe,,,,	-	-rN)r)r*r+r`rdrrrrLrLPs2---,-----rrLcHeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)ReadTestc	td}tj|j|}d}t	||j|dD]U\}}|t|g||z
}|	||V|	|d|	|j
dtj|j}d}t	||j|dD]A\}}||t|gz
}|	||B|	|ddd|	|j
d|d}t	||j|dD]A\}}||t|gz
}|	||B|	|ddd|	|j
d||j}	|	|dtjd|	D|jdS)NrTstrictc.g|]}t|gSrbytes.0cs  r
<listcomp>z*ReadTest.check_partial.<locals>.<listcomp>s &C&C&CauaSzz&C&C&Cr)r<rP	getreaderrYziprcrDrmrIr
bytebufferrQrRr@resetjoin
iterdecode)
rr
partialresultsqrresultrp
partialresultr\encodeds
          r
check_partialzReadTest.check_partialss

#JJ+FT]++A.."%ell4=&A&A>Z^"_"_"_	4	4Q

GGE1#JJaffhhFV]33332&&&s+++
8F(7799"%ell4=&A&A>Z^"_"_"_	4	4Q
ahhuaSzz***FV]3333#t,,b1113'''	
			"%ell4=&A&A>Z^"_"_"_	4	4Q
ahhuaSzz***FV]3333#t,,b1113''',,t}--GGF%&C&C7&C&C&CT]SSTT	
	
	
	
	
rc fddfd	}d}d}d}||d|||d|||dd|||dd|d	}g}g}t|D]D\}}	||d
zd
zdz|	z||d
zd
zdzE|d|dd
||d|dd
|t	dD]}
|D]}	d|
dz|	zdzz}|}t	dD]\}|d|
dz|	z|dd]|}t	dD]Y}|d|
dz|ddZdS)Nctj|j}t	jj|Sr
ioBytesIOrcrYrPrr)r
streamrs  rrrz)ReadTest.test_readline.<locals>.getreaders=ZT] ; ;<<F26#DM226:::rTc|}g}	|||}|sn||0d|S)NT)rGkeepends|)readlineappendrv)r
rrGreaderlineslinerrs      rreadalllinesz,ReadTest.test_readline.<locals>.readalllinesseYu%%FE
#D8DDT"""	
#
88E??"rufoo
bar
baz
spam
eggsufoo
|bar
|baz
|spam
|eggszfoo|bar|baz|spam|eggsF
)


u
uあrhrPazxxx
rxxx)TN)r	enumeraterrvrOr)
rrrH	sexpectedsexpectednoendslineendsvwvwor[lineendrGrrrs
`           @r
test_readlinezReadTest.test_readlines	;	;	;	;	;	#	#	#	#	#	#
.9	1a..	:::a//AAAar22I>>>a33_EEE1
%h//	-	-LQIIquSy(*W4555JJ#c	8+,,,,bggbkk488#((2,,GGGbggbkk599388C==III"II		D#

S7*W45"1rA$$66S7*$$66#1rA$$77S$$77
		rc|gd}d|fd}|}||d|d|dd|d|}||d|d|dd|dd|dt	|ddzddd|}||d||dd|d|}|dd	dd|dd|d|}|dd	dd|dd|dd|dd
d|}|dd	dd||dddg|ddz|ddS)N)zHumpty Dumpty sat on a wall,
z!Humpty Dumpty had a great fall.
z-All the king's horses and all the king's men
z#Couldn't put Humpty together again.rhctjj}t	jj|Sr
r)rdatars rrrz8ReadTest.test_mixed_readline_and_read.<locals>.getreaders=ZDM : :;;F26#DM226:::rrrNd()rGrCj)rvrrrIr	readlines)rrrrfrs`   @rtest_mixed_readline_and_readz%ReadTest.test_mixed_readline_and_reads888wwu~~	;	;	;	;	;	;

IKKuQx00027759#5#56662&&&
IKKuQx000E!HQK000B'''d3uQx==1+<+=+=&>tt&DEEE
IKKuQx000abb	2222&&&
IKKRq1148<<<48,,,2&&&
IKKRq1148<<<DG,,,B'''d1S5k222
IKKRq1148<<<q!""qrr(BCCC2&&&&&rc2gd}tjd||j}tj|j|}t|D]!\}}||||"dS)N)=z:<%!--===================================================
z,    BLOG index page: show recent articles,
z7    today's articles, or articles of a specific date.
z>========================================================--%>
z!<%@inputencoding="ISO-8859-1"%>
z<%@pagetemplate=TEMPLATE.y%>
z$<%@import=import frog.util, frog%>
z!<%@import=import frog.objects%>
z9<%@import=from frog.storageerrors import StorageError%>
z<%
rzimport logging
z+log=logging.getLogger("Snakelets.logger")
rrzuser=self.SessionCtx.user
z-storageEngine=self.SessionCtx.storageEngine
rrz-def readArticlesFromDate(date, count=None):
z2    entryids=storageEngine.listBlogEntries(date)
z%    entryids.reverse() # descending
z    if count:
z#        entryids=entryids[:count]
z
    try:
z\        return [ frog.objects.BlogEntry.load(storageEngine, date, Id) for Id in entryids ]
z    except StorageError,x:
z6        log.error("Error loading articles: "+str(x))
z,        self.abort("cannot load articles")
rzshowdate=None
rzarg=self.Request.getArg()
zif arg=="today":
z,    #-------------------- TODAY'S ARTICLES
z-    self.write("<h2>Today's articles</h2>")
z(    showdate = frog.util.isodatestr() 
.    entries = readArticlesFromDate(showdate)
zelif arg=="active":
z4    #-------------------- ACTIVE ARTICLES redirect
z     self.Yredirect("active.y")
zelif arg=="login":
z/    #-------------------- LOGIN PAGE redirect
z    self.Yredirect("login.y")
zelif arg=="date":
z7    #-------------------- ARTICLES OF A SPECIFIC DATE
z2    showdate = self.Request.getParameter("date")
zV    self.write("<h2>Articles written on %s</h2>"% frog.util.mediumdatestr(showdate))
rzelse:
z+    #-------------------- RECENT ARTICLES
z,    self.write("<h2>Recent articles</h2>")
z.    dates=storageEngine.listBlogEntryDates()
z    if dates:
z        entries=[]
z        SHOWAMOUNT=10
z         for showdate in dates:
zW            entries.extend( readArticlesFromDate(showdate, SHOWAMOUNT-len(entries)) )
z*            if len(entries)>=SHOWAMOUNT:
z                break
z                
rh)	rrrvrcrYrPrrrr)rrHrrr[rs      rtest_bug1175396zReadTest.test_bug1175396	s>
>
>
~BGGAJJ--dm<<==0!$-0088"6**	)	)IQT1Q4((((	)	)rcntd}tj|j|}tj|j|}|d||dd|d||dd||dd|d	||dd	||dd|d||d
d|d||d
d||d
d|d	||d
d	||d
d|d
||d
d
dS)Nrzfoo
Frfooz
bar
rhbarbazTrzbar
zfoo
)r<rP	getwriterrYrrrDrr)rrywriterrs    rtest_readlinequeuezReadTest.test_readlinequeueNsY#JJ0!$-00330!$-0033	W%88%@@@Y%88"===%88%@@@U%88%@@@%88"===	W$77AAAY$77>>>$77AAAU$77???$77<<<Y$77CCCCCrcd}d}d}||z|z|j}tj|}t	j|j|}|||||||||||ddS)NzAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
z`offending line: ladfj askldfj klasdj fskla dfzaskdj fasklfj laskd fjasklfzzzzaa%whereisthis!!!
znext line.
rhrcrYrrrPrrrr)rs1s2s3rHrrs       rtest_bug1098990_azReadTest.test_bug1098990_ais
R
q

U2Xdm,,A0!$-0088**B///**B///**B///**B/////rcd}d}d}d}d}||z|z|z|z|j}tj|}t	j|j|}|||||||||||||||||ddS)Nzaaaaaaaaaaaaaaaaaaaaaaaa
zbbbbbbbbbbbbbbbbbbbbbbbb
zstillokay:bbbbxx
zbroken!!!!badbad
zagainokay.
rhr)	rrrrs4s5rHrrs	         rtest_bug1098990_bzReadTest.test_bug1098990_bvs/
+
+
#
#

U2Xb[^##DM22A0!$-0088**B///**B///**B///**B///**B///**B/////r�c|tdj|j|d|jdd|j|d|jdd|j|d|jdd|j|d|jdd	|j|d|jd
d|j|d|jdd	|j|d|jd
d
|jd|j}dD]\}}||jt|d}||jt|d}|dz|z}||z|jz|z}|t|j|j|||jd||||jd||||jd||z|||jd
||j	z|zd
d|jD}|||jd||z|zdS)Nu[]backslashreplacez[\udc80]namereplacexmlcharrefreplacez
[&#56448;]ignore[]replacez[?][]z[??]rh))𐿿A)[])rr
surrogatepassc3 K|]	}d|zV
dS)\x%02xNr)robs  r	<genexpr>z0ReadTest.test_lone_surrogates.<locals>.<genexpr>sB'J'J+,(11}'J'J'J'J'J'Jr)assertRaisesUnicodeEncodeErrorrcrYrrill_formed_sequenceUnicodeDecodeErrorrRill_formed_sequence_replacerv)	rbombeforeafterbefore_sequenceafter_sequencetest_string
test_sequencers	         rtest_lone_surrogateszReadTest.test_lone_surrogatess,hot}MMM**4=:LMM$++DM::	<	<	<**4=-HH$++DM::	<	<	<**4=:MNN%,,T];;	=	=	=**4=(CCT]33	5	5	5**4=)DDdm44	6	6	6	
)00IIT]33	5	5	5)00	JJt}55	7	7	7ii
&&3	@	@MFE$mmDM::3s8899EO"\\$-88SCN 8+e3K ?2!568FGM0-2F"m
-
-
-[//
0?AA*
,
,
,
]11$-2ACC(
*
*
*
]11$-JJ#e^
-
-
-]11$-KK#d&FFN
P
P
P!ww'J'J040H'J'J'J J J]11$-ASTT#&66>
@
@
@
@+	@	@rcd|jd}tdt|D]}t	j|jd}|||d|d||||dddd|jd}tdt|D]}t	j|jd}|||d|d||||dddS)NurrNrhTu)rcrYrOrrPrQrrR)rrr[decs    rtest_incremental_surrogatepassz'ReadTest.test_incremental_surrogatepasss`t}o>>q#d))$$	C	CA=&.t}==oNNCSZZRaR112666SZZQRR$77BBBBt}o>>q#d))$$	=	=A=&.t}==oNNCSZZRaR112666SZZQRR118<<<<	=	=rN)
r)r*r+r~rrrrrrrrrrrrrfrfrs)
)
)
V999v.'.'.'`C)C)C)JDDD6000000"#+*@*@*@X=====rrfcdeZdZdZejdkrdZndZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdS)	UTF32Testutf-32little܀s$spamspams$spamspamctj|j\}}}}tj}||}|d|d|}|||jkp
||j	ktj|}||}|
|ddSNspamspamspamrPlookuprYrrrDgetvaluerWspamlespamberrIr_rrrHrr\s       rtest_only_one_bomzUTF32Test.test_only_one_bom"M$-88!F6JLLF1II		
JJLLT[(<A,<===JqMMF1II:.....rc^tjd}tj|j|}|t|jtjd}tj|j|}|t|jdS)NsrrrPrrrYrUnicodeErrorrIrrHrs   rtest_badbomzUTF32Test.test_badbomsJy!!+FT]++A..,///Jy!!+FT]++A..,/////rc6|dgddS)NÿĀ￿𐀀)rhrhrhrhrhrhrhrrrÿrrrÿĀrrrÿĀ￿rrrrr~rs rtest_partialzUTF32Test.test_partials6,


	
	
	
	
	
rc|dtjddd|dtjddddSN)rrNrT)rhrNrrrP
utf_32_decoders r
test_handlerszUTF32Test.test_handlersl-gy$GG	I	I	I-gxFF	H	H	H	H	HrcV|ttjddddSNrjT)rrrPrrs rtest_errorszUTF32Test.test_errors3,f.B!8T	3	3	3	3	3rc||jd|j||jd|jdSNrr`rYrrrs rtest_decoder_statezUTF32Test.test_decoder_stateZ(()3T[	B	B	B(()3T[	B	B	B	B	Brcd}|dtj|dd}|dtj|ddS)Ns𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀rsr)r
encoded_le
encoded_bes   rtest_issue8941zUTF32Test.test_issue8941suF
,-j99!<	>	>	>E
,-j99!<	>	>	>	>	>rN)r)r*r+rYsys	byteorderrrrrrrr	rrrrrrrrsH
}  11FFFF
/
/
/000


>HHH333BBB>>>>>rrc.eZdZdZdZdZdZdZdZdS)UTF32LETest	utf-32-lerc6|dgddSNr)rhrhrhrrrrrrrrrrrrrrrrrrrs rrzUTF32LETest.test_partial*6,


	
	
	
	
	
rcb|d|jddS)N𐈃srrcrYrs rtest_simplezUTF32LETest.test_simpleE/,,T];;=PQQQQQrcV|ttjddddSr)rrrPutf_32_le_decoders rrzUTF32LETest.test_errorsH3,f.E!8T	3	3	3	3	3rcfd}|dtj|ddS)Nsrr)rrPr(rr}s  rrzUTF32LETest.test_issue8941LA-,099!<	>	>	>	>	>rN	r)r*r+rYrrr%rrrrrrr&^H-


6RRR333>>>>>rrc.eZdZdZdZdZdZdZdZdS)UTF32BETest	utf-32-berc6|dgddSr rrs rrzUTF32BETest.test_partialXr!rcb|d|jddS)Nr#sr$rs rr%zUTF32BETest.test_simplesr&rcV|ttjddddSr)rrrPutf_32_be_decoders rrzUTF32BETest.test_errorsvr)rcfd}|dtj|ddS)Nsrr)rrPr5r+s  rrzUTF32BETest.test_issue8941zr,rNr-rrrr0r0Tr.rr0cjeZdZdZejdkrdZndZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdS)	UTF16Testutf-16r܀sspamspamsspamspamctj|j\}}}}tj}||}|d|d|}|||jkp
||j	ktj|}||}|
|ddSrrrs       rrzUTF16Test.test_only_one_bomrrc^tjd}tj|j|}|t|jtjd}tj|j|}|t|jdS)Nsrrrs   rrzUTF16Test.test_badbomsJ{##+FT]++A..,///J*+++FT]++A..,/////rc6|dgddS)Nr)rhrhrhrrrrrrrrrrrrrs rrzUTF16Test.test_partials6,


	
	
	
	
	
rc|dtjddd|dtjddddSr)rrP
utf_16_decoders rr	zUTF16Test.test_handlersr
rcV|ttjddddSr)rrrPr@rs rrzUTF16Test.test_errorsrrc||jd|j||jd|jdSrrrs rrzUTF16Test.test_decoder_staterrcd}||j}|tjtjt
tjd5}||dddn#1swxYwYtjtjd|j5}|	|
|ddddS#1swxYwYdS)NzHello
world
wbrzrY)rcrY
addCleanuprunlinkTESTFNopenrDrPrrI)rrrHfprs     rtest_bug691291zUTF16Test.test_bug691291sM
"IIdm$$	()*:;;;
)"D
)
)	RHHQKKK															
[)3"&-111	04:V[[]]B///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0s$!BB
B4)C**C.1C.cdD]}|t5}tjtj||jdddn#1swxYwY|dt|j	dD]}|t5}tjtj||jdddn#1swxYwY|dt|j	dS)N)UrUzr+UrEzinvalid mode)rtwtatzr+tz'can't have text and binary mode at once)
r
ValueErrorrPrIrrHrYassertInstr	exception)rmodecms   rtest_invalid_modeszUTF16Test.test_invalid_modess&	=	=D"":..
L"I,dT]KKKK
L
L
L
L
L
L
L
L
L
L
L
L
L
L
LMM.#bl*;*;<<<<-	-	-D"":..
L"I,dT]KKKK
L
L
L
L
L
L
L
L
L
L
L
L
L
L
LMMCbl++
-
-
-
-	-	-s#'AA	A	$'CC	C	N)r)r*r+rYrrrrrrrrr	rrrKrXrrrr8r8sH
}  ))
@F
@F
/
/
/000


*HHH333BBB
0
0
0
-
-
-
-
-rr8c(eZdZdZdZdZdZdZdS)UTF16LETest	utf-16-ler:c6|dgddSNr)rhrrrrrrrrrrrrrs rrzUTF16LETest.test_partial6,





	
	
	
	
	
rcgd}|D]W\}}|ttj|dd||dd|XdS)N)r
r)sAZA�)s	ABCDZABCD�)sr)sAr)sA�A)sArcrjTzutf-16ler)rrrPutf_16_le_decoderrRrtestsrawexpecteds    rrzUTF16LETest.test_errors


#	J	JMC0&2I!8T
3
3
3SZZ
I>>IIII	J	Jrc|d|jd|d|jddS)Nr#sީrrcrYrRrs rtest_nonbmpzUTF16LETest.test_nonbmpg,,T];;,	.	.	.,33DMBB%	'	'	'	'	'rNr)r*r+rYrrrrlrrrrZrZOH%


&
J
J
J'''''rrZc(eZdZdZdZdZdZdZdS)UTF16BETest	utf-16-ber;c6|dgddSr]rrs rrzUTF16BETest.test_partialr^rcgd}|D]W\}}|ttj|dd||dd|XdS)N)r`)sAra)s	ABCDZrb)sr)sr)sArc)sArcrjTzutf-16ber)rrrPutf_16_be_decoderrRres    rrzUTF16BETest.test_errors(rirc|d|jd|d|jddS)Nr#srkrs rrlzUTF16BETest.test_nonbmp7rmrNrnrrrrqrqrorrqcLeZdZdZdZdZdZdZdZdZ	fdZ
d	Zd
ZxZ
S)UTF8Testutf-8su	���rc6|dgddS)Nÿ߿ࠀ￿𐀀)rrrrÿ߿r|r|ÿ߿ࠀr}r}ÿ߿ࠀ￿r~r~r~r{rrs rrzUTF8Test.test_partialCs62


	
	
	
	
	
rcrd}||j|||jdS)Nu€ÿĀ߿ࠀ￿􏿿)r`rYrc)rrZs  rrzUTF8Test.test_decoder_stateYsE@(()*AHHT],C,C	E	E	E	E	ErcdD]e\}}}||||5|||j||dddn#1swxYwYfdS)N)[]rr)rru[��])rsurrogateescape[])rrz
[\x80\xff]r
error_handlerrh)subTestrrRrYrrrrhs    rtest_decode_errorzUTF8Test.test_decode_error^s.
		+		+)D-4}'/11
+
+  T]M!J!J!)+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
		+		+s0AA!	$A!	ct|d|jd|jdz|t5}d|jddddn#1swxYwY|j}||j	|j
|jddS)Nrrs[]u[]u)superrrrcrYBOMrrrUobjectstartend)rrWexc	__class__s   rrzUTF8Test.test_lone_surrogatesjs
$$&&&	
**4=:KLLI-	/	/	/

1
2
2	Lb"))$-9JKKK	L	L	L	L	L	L	L	L	L	L	L	L	L	L	LlCIcg$56GGGGGs3BB"Bc|d|jd|jdz|d|jd|jdz|d|jd|jdz|d|jdd|d|jdd|t
jd|t5d|jddddn#1swxYwY|t5d	|jdddddS#1swxYwYdS)
Nu	abcdefrs	abcdefu𐿿s𐿿rs[]sabcsabcz)
rrcrYrrRrWrPlookup_errorrrrs rtest_surrogatepass_handlerz#UTF8Test.test_surrogatepass_handlervsh..t}oNN$99	;	;	;+224=/RR$CC	E	E	E)00PP$AA	C	C	C	
.55dm_UU'	)	)	)8??
__+	-	-	-	
+O<<===


1
2
2	B	B!!$-AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B


1
2
2	C	C""4=/BBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	Cs$E--E14E1F;;F?F?cfgd}dD]}dD]}|||z |d|D]r}||5tj|j}|t|j|dddn#1swxYwYsdS)N)r
)ssssss)r)sssssssr)	rextendrrPrQrYrrrR)rcasesprefixsuffixrrs      rtest_incremental_errorsz UTF8Test.test_incremental_errorss>POO>	.	.F+
.
.Vf_----
.
N	O	O	O	H	HD4((
H
HAf24=AACC!!"4cj$GGG
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H	H	HsAB%%B)	,B)	)r)r*r+rYrrrrrrrrr
__classcell__rs@rrxrx=sH)".

C


,EEE

+
+
+
H
H
H
H
HCCC&HHHHHHHrrxc0eZdZdZdZdZdZdZdZdS)UTF7Testutf-7cd}|||j|d||d|j|d}|||j|d||d|j||d|jd|d|jdd}|||j|d||d|j|dtt
ttdt
||zd	z|zz
}|||jd
dS)NzGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?asciiz !"#$%&*;<=>@[]^_`{|}za+bsa+-bz 	

rh+sX+AAAAAQACAAMABAAFAAYABwAIAAsADAAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwBcAH4Afw-)	rrcrYrRrvsortedsetrmrO)rset_dset_owsother_asciis     r
test_asciizUTF7Test.test_asciis(	
dm44ell76K6KLLLg..55dmDDeLLL'dm44ell76K6KLLLg..55dmDDeLLLdm44g>>>
66>>>
4=11299W3E3EFFF7++224=AA2FFFggfSuT{{););)B)B)D)D%E%E%()<r)A%B%B&CDDEE++DM::D	E	E	E	E	Erc6|dgddS)Na+-bc€dĀe𐀀f) rra+za+-a+-brrrrza+-ba+-bcrrrrua+-bc€	a+-bc€drrrrua+-bc€dĀa+-bc€dĀerrrrrrrua+-bc€dĀe𐀀rrrs rrzUTF7Test.test_partial6.!
!
!
$	
$	
$	
$	
$	
rc	gd}|D]\}}||5|ttj|dd||dd|dddn#1swxYwYdS)N))sbu�b)saba�b)sabua��b)sa+IKa�)sa+IK-br)sa+IK,br)sa+IKxa€�)sa+IKx-ba€�b)sa+IKwgrr)s	a+IKwgr-br)sa+IKwgr,r)s
a+IKwgr,-bu	a€�-b)sa+IKwgrB
a€€�)s
a+IKwgrB-ba€€�b)s
a+/,+IKw-ba�€b)sa+//,+IKw-br)sa+///,+IKw-ba￿�€b)s
a+////,+IKw-br)sa+IKw-bua€b�)sa+IKwbr)sa+@brrgrjTrr)rrrrPutf_7_decoderrRres    rrzUTF7Test.test_errorss


.#	K	KMC#&&
K
K!!"4f6I #Xt555  GY!?!?JJJ
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K	K	KsABB	B	c|d|jd|d|jd|d|jd|d|jd|d|jd|d|jd|d|jd|d|jd	|d	|jd|d
|jddS)Nu𐒠s+2AHcoA-us+2AHcoAu€𐒠s
+IKzYAdyg-s	+IKzYAdygu
€€𐒠s
+IKwgrNgB3KA-s+IKwgrNgB3KArkrs rrlzUTF7Test.test_nonbmps,,T];;[III..t}=={KKK++DM::LIII**4=99<HHH+224=AA=QQQ--dm<<>PQQQ,,T];;=OPPP188GG)	+	+	+)00??1	3	3	3//
>>1	3	3	3	3	3rcgd}|D]]\}}||5||dd|dddn#1swxYwY^dS)N)
)sa+2AE-buab)sa+2AEbr)sa+2AEr)sa+2AEA-br)sa+2AH-br)s
a+IKzYAQ-bua€b)s
a+IKzYAQbr)sa+IKzYAQA-br)s
a+IKzYAd-br)sa+IKwgrNgB-bua€€b)sa+IKwgrNgBbr)s
a+IKwgrNgBr)s
a+IKwgrNgBA-brrrrrrrRres    rrzUTF7Test.test_lone_surrogatess


#	K	KMC#&&
K
K  GY!?!?JJJ
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K	K	Ks+AA	 A	N)	r)r*r+rYrrrrlrrrrrrspHEEE4%
%
%
NKKK<
3
3
3KKKKKrrceZdZdZdZdS)UTF16ExTestcX|ttjdddddS)Nr
rjrT)rrrPutf_16_ex_decoders rrzUTF16ExTest.test_errors#s-,f.EwPXZ[]abbbbbrcP|ttjdSr
)r	TypeErrorrPrrs r
test_bad_argszUTF16ExTest.test_bad_args&s!)V%<=====rN)r)r*r+rrrrrrr!s5ccc>>>>>rrc eZdZdZdZdZdS)ReadBufferTestcddl}|tj|ddddS)Nrrspam)r)arrayrrPreadbuffer_encode)rrs  r
test_arrayzReadBufferTest.test_array+sL$U[[g%>%>??	
	
	
	
	
rcV|tjdddS)Nrhrr)rrPrrs r
test_emptyzReadBufferTest.test_empty2s)1"55x@@@@@rc|ttj|ttjddSN*)rrrPrrs rrzReadBufferTest.test_bad_args5s<)V%=>>>)V%=rBBBBBrN)r)r*r+rrrrrrrr)sI


AAACCCCCrrc>eZdZdZejZdZdZdZ	dZ
dZdS)UTF8SigTest	utf-8-sigc6|dgddS)Nÿ߿ࠀ￿𐀀)rhrhrhrhrhurÿrÿ߿rrÿ߿ࠀrrÿ߿ࠀ￿rrrrrrs rrzUTF8SigTest.test_partial=s68


	
	
	
	
	
rcN|tddddS)NrrhrrTrs rtest_bug1601501zUTF8SigTest.test_bug1601501Ys(_k::B?????rctjd}d}|||d|dS)Nrr)rPrQrrRrc)rr\rHs   rtest_bomzUTF8SigTest.test_bom]sS5F(5577!((;"7"788!<<<<<rcd}tjdz}tjd}dgtt	ddzgdzD]}|tj|}tj}	|||}n|}|sn|	|E|
}|||dSNuABC¡∀XYZsABC¡∀XYZrrN)@ri)rPBOM_UTF8rrlistrOrrStringIOrIrDrr	r	unistring
bytestringrsizehintistreamostreamrgots	         rtest_stream_bomzUTF8SigTest.test_stream_bombs(	_'DD
!+..eArll!3!331112	-	-HfRZ
3344GkmmG
$'"<<11DD"<<>>D

d###
$""$$CS),,,,	-	-rcd}d}tjd}dgttddzgdzD]}|t	j|}t	j}	|||}n|}|sn||E|	}|
||dSr)rPrrrrOrrrrIrDrrrs	         rtest_stream_barezUTF8SigTest.test_stream_barexs(	2
!+..eArll!3!331112	-	-HfRZ
3344GkmmG
$'"<<11DD"<<>>D

d###
$""$$CS),,,,	-	-rN)r)r*r+rYrPrrrrrrrrrrrr9snH
/C


8@@@===
---,-----rrc&eZdZdZdZdZdZdS)EscapeDecodeTestc|tjdd|tjtddS)Nrr)rrP
escape_decode	bytearrayrs rrzEscapeDecodeTest.test_emptysN-c22H===-ikk::HEEEEErctj}tdD]?}t|g}|dkr'|||dz|dzdf@dS)Nr\0r )rPr
rOrmrrrRrs   rtest_rawzEscapeDecodeTest.test_rawsp%s	B	BAqc

AEzz  D!1!1AHa=AAA	B	Brc	tj}t||}|dd|dd|dd|dd|d	d
|dd|d
d|dd|dd|dd|dd|dd
|dd|dd|dd|dd|d d!|d"d|d#d!td$d%D]}t	|g}|d&vrD|t5|d'|zd'|zdddn#1swxYwY|t5|d'|zd'|zdddn#1swxYwY|t5|d(d(dddn#1swxYwY|t5|d)d)dddn#1swxYwY|t5|d*d*dddn#1swxYwYtd+d,D]T}|t5|d-|zt	|d.zgdddn#1swxYwYUdS)/N[\
][][\"]s["][\']s['][\\]s[\][\a]s[][\b]s[][\t]s[	][\n]s[
][\v]s[][\f]s[][\r]s[
][\7][\78]s[8][\41]s[!][\418]s[!8][\101]s[A][\1010]s[A0][\x41][\x410]a{sabfnrtvxr
\8\9\rr\%o)rPr
rrOrmassertWarnsDeprecationWarningupperrrRrr[rs     rtest_escapezEscapeDecodeTest.test_escapes%tV,,
i
h
h
h   
h	"""
h	"""
h	"""
h	"""
h	"""
h	"""
h	"""
h	"""
i$$$
i   
j'"""
j&!!!
k7###
j&!!!
k7###r3	<	<Aqc

A##%%&89900E%!)UQY///000000000000000!!"455
<
<eaggii'):;;;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<


0
1
1	"	"E&&!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"


0
1
1	"	"E&&!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"


0
1
1	(	(E)Y'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(uf%%	7	7A!!"455
7
7gk5!e)#5#5666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7slE  E$	'E$	7GG	G	.
HHH,
II	I	*
JJ
J:!K''K+	.K+	ctj}|t|d|t|d||ddd||ddd|t|d|t|d	||d
dd||d
dddS)
Ns\xs[\x]s[\x]\xr)rrr)[?]?rs\x0s[\x0]s[\x0]\x0)r)r3r4)rPr
rrRr)rrRs  rrzEscapeDecodeTest.test_errorss%*ff555*fh777
H55zBBB
I66EEE*fg666*fi888h77DDDi88,GGGGGrN)r)r*r+rrr1rrrrrrs\FFFBBB%7%7%7N	H	H	H	H	Hrr))u"ليهمابتكلموشعربي؟segbpdaj6bu4bxfgehfvwxn)u他们为什么不说中文sihqwcrb4cv8a8dqg056pqjye)u他們爲什麽不說中文sihqwctvzc91f659drss3x8bo0yb)uPročprostěnemluvíčeskysProprostnemluvesky-uyb24dma41a)u,למההםפשוטלאמדבריםעבריתs4dbcagdahymbxekheh6e0a7fei0b)uZयहलोगहिन्दीक्योंनहींबोलसकतेहैंs,i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd)u6なぜみんな日本語を話してくれないのかs&n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa)uH세계의모든사람들이한국어를이해한다면얼마나좋을까sE989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c)u8почемужеонинеговорятпорусскиs b1abfaaepdrnnbgefbaDotcwatmq2g4l)u*PorquénopuedensimplementehablarenEspañols-PorqunopuedensimplementehablarenEspaol-fmd56a)u-TạisaohọkhôngthểchỉnóitiếngViệts,TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g)u3年B組金八先生s3B-ww4c5e180e575a65lsy2b)u"安室奈美恵-with-SUPER-MONKEYSs(-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n)u'Hello-Another-Way-それぞれの場所s(Hello-Another-Way--fc4qua05auwb3674vfr0b)uひとつ屋根の下2s2-u9tlzr9756bt3uc0v)uMajiでKoiする5秒前sMajiKoi5-783gue6qz075azm5e)uパフィーdeルンバsde-jg4avhby1noc0d)uそのスピードでsd9juau41awczczp)z-> $1.00 <-s-> $1.00 <--r c eZdZdZdZdZdS)PunycodeTestctD]n\}}|t|ddt|dodSNpunycoder)punycode_testcasesrrTrclowerrunipunys   rtest_encodezPunycodeTest.test_encode<s|+				IC
CJJz**G44::<<D'""((**




				rctD]\}}|||d|dd}|||ddSr8)r:rrRrcr<s   rtest_decodezPunycodeTest.test_decodeHs+	;	;ICS$++j"9"9:::;;w''..w77DS$++j"9"9::::	;	;rc`ddtfdg}|D]\}}}|||5t|tr#|t|jd|n*||d||dddn#1swxYwYdS)Nxn--w&rj)rCrzxn-)r>errorsr9)rr
isinstance	ExceptionrrRr)r	testcasesr>rDrhs     rtest_decode_invalidz PunycodeTest.test_decode_invalidNs
,..1(
	'0	P	P"D&(477
P
Ph	22P%%lDKVTTTT$$T[[V%D%DhOOO	
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P	P	PsA#B""B&	)B&	N)r)r*r+r?rArHrrrr6r6;sF


;;;
P
P
P
P
Prr6)-)s%foo­͏᠆᠋bar​⁠baz︀︈️s	foobarbaz)sCAFEscafe)sßsss)sİsi̇)sŃͺsń ιNN)sǰ ªsǰ a)sᾷsᾶι)ǰrJ)ΐrK)ΰrL)ẖrM)ὖrN) rO)s rO)s N)s rO)s​r)s rO)rP)s…N)s᠎N)rr)s𝅵N)sN)s󱈴N)s􏈴N)s򏿾N)s􏿿N)sN)s�N)s⿵N)śś)s‎N)s‪N)s󠀁N)s󠁂N)sfoo־barN)s	fooﵐbarN)s	fooﹶbars	foo َbar)sا1N)ا1بrQrI)sX­ßİ℡ǰ ªΰ sxssi̇telǰ aΰ )sXß㌖İ℡⒟㌀s*xssキロメートルi̇tel(d)アパートceZdZdZdS)NameprepTestc	ddlm}ttD]\}\}}|t	|dd}||t||;t	|dd}	||||m#t$r.}tj
d|dzt	|fzd}~wwxYwdS)Nr)nameprepryrz
Test 3.%d: %srN)encodings.idnarUrnameprep_testsrTrrrrFr
TestFailed)rrUposorigpreppedes      r
test_nameprepzNameprepTest.test_namepreps++++++$-n$=$=	P	P C$|tWo66D!!,$????gw@@P$$XXd^^W==== PPP!,_As1vv-NOOOP	P	Ps(B
C)B;;CN)r)r*r+r]rrrrSrSs(PPPPPrrSc8eZdZdZdZdZdZdZdZdZ	dS)	
IDNACodecTestc&|tddd|tddd|tddd|tddd	dS)
N
python.orgidna
python.orgpython.org.python.org.xn--pythn-mua.orgpythön.orgxn--pythn-mua.org.pythön.org.rrs rtest_builtin_decodez!IDNACodecTest.test_builtin_decode
s]F33\BBB^V44mDDD16::OLLL2F;;=MNNNNNrcN|ddd|ddd|ddd|ddd	dS)
Nrcrbrarerdrgrfrirhrrcrs rtest_builtin_encodez!IDNACodecTest.test_builtin_encodes,,V44mDDD--f55~FFF//779MNNN)0088:OPPPPPrc(|td5dddddn#1swxYwY|td5ddddddS#1swxYwYdS)Nztoo longsTxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarbsNxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)assertRaisesRegexrrRrs r test_builtin_decode_length_limitz.IDNACodecTest.test_builtin_decode_length_limits

#
#L*
=
=	3	3
"**6222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3

#
#L*
=
=	1	1
 ((000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s!>AA$BBBctjdtjd}|d||ddS)Nrbabcrh)rPrrrrrIr)rrzs  rtest_streamzIDNACodecTest.test_streamsY$FV$$RZ%7%788	q			2&&&&&rc*|dtjddDdd|dtjddDdd|dtjd	d
Ddd|dtjdd
Dddtjd}||d
d||dd||dd||ddd|||d
d||dd||dd||ddddS)Nrhc36K|]}t|gVdSr
rlrns  rrz8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>#s*&I&IauaSzz&I&I&I&I&I&Irrarbrcc36K|]}t|gVdSr
rlrns  rrz8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>'s*&J&JauaSzz&J&J&J&J&J&Jrrdrec36K|]}t|gVdSr
rlrns  rrz8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>+*&Q&QauaSzz&Q&Q&Q&Q&Q&Qrrhric36K|]}t|gVdSr
rlrns  rrz8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>/ryrsxn--xams	ple-9ta.ou	äxample.srgrTorgsrg.zorg.)rrvrPrwrQrRru)rdecoders  rtest_incremental_decodez%IDNACodecTest.test_incremental_decode!seGGF%&I&I=&I&I&I6RRSS	
	
	
	
GGF%&J&J>&J&J&JFSSTT	
	
	
	
GGF%&Q&Q;P&Q&Q&QSYZZ[[	
	
	
	
GGF%&Q&Q;P&Q&Q&QSYZZ[[	
	
	

7&.v6688
55r:::77GGG..333T22E:::


55r:::77GGG//888T22B77777rc6|dtjddd|dtjddd|dtjddd|dtjdddtjd}||d	d||d
d||dd
d|||d	d||dd||dd
ddS)Nrrcrbrarerdrirhuäxz	ample.orgsxn--xample-9ta.rhTsorgz
ample.org.sxn--xample-9ta.org.)rrvrP
iterencoderbrcru)rencoders  rtest_incremental_encodez%IDNACodecTest.test_incremental_encode?sHHV&|V<<==	
	
	
	
HHV&}f==>>	
	
	
	
HHV&'7@@AA!	
	
	
	
HHV&'7@@AA!	
	
	

7&.v668800#666446HIIID116:::

00#666557MNNND11377777rcdddddddD]F}|tdjd||tdjd|GdS)z$Only supports "strict" error handlerrcrbrjra)rrrrN)rcrRrrFrrDs  rrzIDNACodecTest.test_errors[sFH---VX...#	6	6Fi)<ffMMMi$ff
6
6
6
6	6	6rN)
r)r*r+rjrmrprtr}rrrrrr_r_	sOOOQQQ111'''
888<888866666rr_cbeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdS)CodecsModuleTestc|tjddd|ttj|tjdd|t
tjdd|tjddd|tjd	dd
ddS)
Nlatin-1äöürrabcr
robjrY[]rrDr)rrPrRrrrrs rrAzCodecsModuleTest.test_decodehs	BB'	)	)	))V]333v..666,fmWgNNN	
?YOOO'	)	)	)y'(KKK					rc8|tjddd|ttj|t
tjdd|tjdd|ttjdd	|tjdd
d|tjdd	d
ddS)Nrrrr__spam__rrruÿffrr[ÿ]rrr)rrPrcrrLookupErrorrrs rr?zCodecsModuleTest.test_encodeus~yAA(	*	*	*)V]333+v}eZHHHu--v666,fmXwOOO	
>INNN(	*	*	*xJJJ	 	 	 	 	 rc|ttj|ttjddSr)rrrPregisterrs r
test_registerzCodecsModuleTest.test_registers:)V_555)V_b99999rcd}tj}tj||t
tj||||tj	||ttj||dS)Nnonexistent_codec_name)rMockrPrrrrassert_called_with
reset_mock
unregisterrassert_not_called)rnamesearch_functions   rtest_unregisterz CodecsModuleTest.test_unregisters')++((()V]D999**4000""$$$/***+v}d;;;))+++++rc|ttj|ttjd|ttjddS)Nr )rrrPrrrs rtest_lookupzCodecsModuleTest.test_lookupsT)V]333+v}jAAA+v}c:::::rc|ttj|ttjddSNr)rrrP
getencoderrrs rtest_getencoderz CodecsModuleTest.test_getencoder<)V%6777+v'8*EEEEErc|ttj|ttjddSr)rrrP
getdecoderrrs rtest_getdecoderz CodecsModuleTest.test_getdecoderrrc|ttj|ttjddSr)rrrPrrrrs rtest_getreaderzCodecsModuleTest.test_getreader<)V%5666+v'7DDDDDrc|ttj|ttjddSr)rrrPrrrs rtest_getwriterzCodecsModuleTest.test_getwriterrrctjtj}|tjtj|	tjtjdn*#tj$r|dYnwxYwt
jd}||j	ddS)Ntr_TRztest needs Turkish localeASCIIr)
locale	setlocaleLC_CTYPErFErrorskipTestrPrrr)r	oldlocalerps   rtest_lookup_issue1813z&CodecsModuleTest.test_lookup_issue1813s$V_55	(&/9EEE	7V_g6666|	7	7	7MM566666	7
M'"")))))sA++$BBcd}||tjtjD]}tt|dS)N),rcrRr	CodecInfoCodecIncrementalEncoderIncrementalDecoderStreamReaderStreamWriterrrrrbrQrrrregister_errorr
strict_errorsreplace_errors
ignore_errorsxmlcharrefreplace_errorsbackslashreplace_errorsnamereplace_errorsrIEncodedFilerrwrBOM_BEBOM_LEr	BOM_UTF16BOM_UTF16_BEBOM_UTF16_LE	BOM_UTF32BOM_UTF32_BEBOM_UTF32_LEBOM32_BEBOM32_LEBOM64_BEBOM64_LEStreamReaderWriter
StreamRecoder)assertCountEqualrP__all__getattr)rapis  rtest_allzCodecsModuleTest.test_allsQ
$	
c6>222>	!	!CFC    	!	!rcn|tjtjdD]}||5tjtj|d5}||t
jdddn#1swxYwYdddn#1swxYwYdS)N)wrzzr+w+rrr)	rFrrGrHrrPrIrTr)rrVfiles   r	test_openzCodecsModuleTest.test_opensE	()*:;;;5	G	GDd##
G
GK	 0$@@
GDH%%dF,EFFF
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G	G	Gs6!B)%!BB)BB)BB))B-	0B-	c|ttjdd|ttjdd|ttjdd|ttjdddD]R}|ttjdd||ttjdd|SdS)Nr	undefinedrrrhr)rjrrr)rrrPrcrRrs  rtest_undefinedzCodecsModuleTest.test_undefineds,
ukJJJ,
v{KKK,
r;GGG,
sKHHHI	<	<Fl
uk6
;
;
;l
v{F
<
<
<
<	<	<rcntj}tjd|5}|t5tjtjdddddn#1swxYwY|j	
ddddS#1swxYwYdS)Nz
builtins.openrPzinvalid-encoding)r	mock_openpatchrrrPrIrrHclose
assert_called)rrrs   r'test_file_closes_if_lookup_error_raisedz8CodecsModuleTest.test_file_closes_if_lookup_error_raiseds0N$$	
Z
3
3	)t"";//
H
HI,d4FGGG
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
DFFL&&(((		)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)s5B*!A1%B*1A5	5B*8A5	9$B**B.1B.N)r)r*r+rAr?rrrrrrrrrrrrrrrrrfs   :::
,
,
,;;;
FFFFFFEEEEEE***!!!.GGG	<	<	<)))))rrc&eZdZdZdZdZdZdS)StreamReaderTestcjtjd|_tjd|_dS)Nry한
글)rPrrrrrrrs rsetUpzStreamReaderTest.setUps*&w//j!>??rc||j}||ddgdS)Nu한
u글)rrrrrrs  rtest_readlineszStreamReaderTest.test_readliness>KK$$X(>?????rch|td}|td5t	j|dddn#1swxYwY|td5t	j|ddddS#1swxYwYdS)Nrr)rr<rorcopydeepcopyrs  r	test_copyzStreamReaderTest.test_copysKK;<<==

#
#I~
>
>		IaLLL															

#
#I~
>
>		M!																		#AA#&A#B''B+.B+ctttjdzD]}||5|td}|td5tj||dddn#1swxYwYdddn#1swxYwYdS)NrNprotocolrr)	rOpickleHIGHEST_PROTOCOLrrr<rordumpsrprotors   rtest_picklezStreamReaderTest.test_pickles,62Q677	+	+Eu--
+
+KK&C D DEE++I~FF++LE***+++++++++++++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+	+	+5>B,3B	B,BB,BB,,B0	3B0	N)r)r*r+rrrrrrrrrsV@@@@@@+++++rrc eZdZdZdZdZdS)StreamWriterTestc8tjd|_dS)Nry)rPrrrs rrzStreamWriterTest.setUps&w//rch|td}|td5t	j|dddn#1swxYwY|td5t	j|ddddS#1swxYwYdS)Nrr)rr<rorrrrs  rrzStreamWriterTest.test_copysKKc

##

#
#I~
>
>		IaLLL															

#
#I~
>
>		M!																		rctttjdzD]}||5|td}|td5tj||dddn#1swxYwYdddn#1swxYwYdS)NrNrrr)	rOrrrrr<rorrrs   rrzStreamWriterTest.test_pickles)62Q677	+	+Eu--
+
+KKc

++++I~FF++LE***+++++++++++++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+	+	+rNr)r*r+rrrrrrrrsA000+++++rrc eZdZdZdZdZdS)StreamReaderWriterTestcjtjd|_tjd|_dS)Nlatin1ry)rPrrrrrrs rrzStreamReaderWriterTest.setUps*&x00&w//rc~tjtd|j|j}|td5tj|dddn#1swxYwY|td5tj|ddddS#1swxYwYdS)Nrr)	rPrr<rrrorrrrs  rrz StreamReaderWriterTest.test_copys$%eCjj$+t{KK

#
#I/C
D
D		IaLLL															

#
#I/C
D
D		M!																		s$	A**A.1A.B22B69B6cttjdzD]}||5t	jt
d|j|j}|	td5tj||dddn#1swxYwYdddn#1swxYwYdS)NrNrrr)rOrrrrPrr<rrrorrrs   rrz"StreamReaderWriterTest.test_pickle!s162Q677	+	+Eu--
+
+-eCjj$+t{SS++I7KLL++LE***+++++++++++++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+	+	+s6A	B7>B B7 B$$B7'B$(B77B;	>B;	NrrrrrrsA000+++++rrceZdZdZdS)EncodedFileTestcvtjd}tj|dd}||dtj}tj|dd}|d||ddS)Nrr[rys\
rü)rrrPrrrIrDrrrefs   r
test_basiczEncodedFileTest.test_basic+sJ455

;
8
8$;<<<JLL

7I
6
6
w/////rN)r)r*r+rrrrrr)s#00000rr)erbig5	big5hkscscharmapcp037cp1006cp1026cp1125cp1140cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258cp424cp437cp500cp720cp737cp775cp850cp852cp855cp856cp857cp858cp860cp861cp862cp863cp864cp865cp866cp869cp874cp875cp932cp949cp950euc_jis_2004euc_jisx0213euc_jpeuc_krgb18030gb2312gbk	hp_roman8hzrb
iso2022_jpiso2022_jp_1iso2022_jp_2iso2022_jp_2004iso2022_jp_3iso2022_jp_ext
iso2022_kr	iso8859_1
iso8859_10
iso8859_11
iso8859_13
iso8859_14
iso8859_15
iso8859_16	iso8859_2	iso8859_3	iso8859_4	iso8859_5	iso8859_6	iso8859_7	iso8859_8	iso8859_9johabkoi8_rkoi8_tkoi8_ukz1048latin_1mac_cyrillic	mac_greekmac_iceland
mac_latin2	mac_romanmac_turkishpalmosptcp154r9raw_unicode_escape	shift_jisshift_jis_2004shift_jisx0213tis_620unicode_escapeutf_16	utf_16_be	utf_16_leutf_7utf_8mbcs_encodembcs
oem_encodeoemr9ceZdZdZejejeduddZ	dZ
dZdZdZ
d	ZdS)
BasicUnicodeTestc	d}tD]m}tj|j}|dr|dz
}n|dkrd}|dkr>||dd|ddtj||\}}||t|d|ztj	||\}}|||d|z|tvrtd}tj||}d}	|D]g}
|
|
|}|t!|t"ut!||	|z
}	htd}tj||}d	}
|	D]<}
|
t#|
g|
|z
}
=||
|d|z|tvr6	tj|d}	|D]}
|	|
z
}	|	d	d
z
}	tj|d	}
|	D](}
|
t#|
gz
}
)|
dd
z
}
||
|d|zd	tjtj|||}|||d|zd	tjtjd	||}||d	n#t4$rYnwxYw|dvr	tj|ddfd
|D}	tj|dd	fd|	D}
||
|d|z\#t4$rYiwxYwodS)Nabc123_codecrcrxr-encoding=%rrrhTrbrxrc3BK|]}|VdSr
rc)rorprs  rrz/BasicUnicodeTest.test_basics.<locals>.<genexpr>s/0N0Nq1B1B0N0N0N0N0N0Nrc3^K|]'}t|gV(dSr
rRrm)rorpr|s  rrz/BasicUnicodeTest.test_basics.<locals>.<genexpr>sS0H0H4518uaSzz0J0J0H0H0H0H0H0Hr)all_unicode_encodingsrPrrendswithrrrrrbroken_unicode_with_statefulr<rrDrIrWtypermrrrbrcrQrRrvrwrr)rrHrYrrrGrCryr
encodedresultrpchunkr
decodedresultr{r|rs               @@rtest_basicszBasicUnicodeTest.test_basicss-L	CL	CH=**/D  **
! Y&& v~~  !1!1#s!;!;!%c3!7!79994)(33A66IQT3q66=8+CDDD7F-h77::MUDUA}x'?@@@;;;#JJ3)(33A66 #
++ALLOOOFFHHEOODKK5$8$u++FFF!U*MM#JJ3)(33A66 "
&33AGGE1#JJ'''!V[[]]2MM  =83KLLL;;;1Df:8DDFFG
%(M;;%):)::

!W^^B%=%==MDf:8DDFFG$&M*DD%qc

)C)CC

!W^^C%>%>>M$$]A%2X%=??? WWV%6"-a::H&F&FGGF$$VQ
0HIII WWV%6"-b(;;X&G&GHHF$$VR00001#D4#333
C"H&">x"H"H"R"R),0N0N0N0NA0N0N0N(N(N
"H&">x"H"H"R"R(*0H0H0H0H9F0H0H0H)H)H
(()6)ACCCC'IL	CL	Cs$N;;
OOQ((
Q65Q6Nzneed _testcapi modulecd}tD]}}|tvrp	tj|d}|D]}||z
}|ddz
}tj|d}|D](}|t|gz
})|ddz
}|||d|zn#t$rYnwxYw|dvr	tj|dd
fd|D}tj|dd
fd	|D}|||d|zl#t$rYywxYwdS)
Nr~rrhTrrrc3BK|]}|VdSr
r)rorpcencoders  rrz4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>s/0O0O1C1C0O0O0O0O0O0Orc3^K|]'}t|gV(dSr
r)rorpcdecoders  rrz4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>sS0H0H4519qc

0K0K0H0H0H0H0H0Hr)rr	_testcapicodec_incrementalencoderrccodec_incrementaldecoderrRrmrrrv)rrHrYrrprrrs      @@rtest_basics_capiz!BasicUnicodeTest.test_basics_capis,
-!	C!	CH;;;?(A(KKH
%(M<<%););;

!X__R%>%>>M(A(KKH$&M*EE%s)D)DD

!X__S$%?%??M$$]A%2X%=????#D #333
C#,#EhPX#Y#Y),0O0O0O0OQ0O0O0O(O(O
#,#EhPX#Y#Y(*0H0H0H0H9F0H0H0H)H)H
(()6)ACCCC'3!	C!	Cs#C
C('C(0E88
FFcnddz}tD]}|dkr	|tvrtj|t	j||}tdD]B}|dd|	}|
||CdS)Nz%s
%s
)Xabc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123Xdef456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456rbrr)rrrPrrrrrcrOseekrIr)rrHrYrtrs      r	test_seekzBasicUnicodeTest.test_seek$s55-
	*
	*H6!!777/V%h//
188H;M;M0N0NOOF1XX
*
*Aq!!!{{}}  D))))	
*
	*
	*rctD]Q}tj|}|t||dvr|t|dRdS)N)rbr9r)rrPrrr)rrYr|s   rtest_bad_decode_argsz%BasicUnicodeTest.test_bad_decode_args3sf-	:	:H'11Gi111333!!)Wb999		:	:rcxtD]1}tj|}|t|2dSr
)rrPrrr)rrYrs   rtest_bad_encode_argsz%BasicUnicodeTest.test_bad_encode_args:sD-	2	2H'11Gi1111	2	2rcfddlm}t|j}|||dS)Nr)r)	encodingsrrencoding_tabler)rr
table_types   r"test_encoding_map_type_initializedz3BasicUnicodeTest.test_encoding_map_type_initialized?s@$$$$$$&/00
Z00000rcd}tD]_}|tvrT||||||||||`dS)Nr~)rrr`rcrd)rrZrYs   rrz#BasicUnicodeTest.test_decoder_stateEsy-	R	RH;;;001ahhx>P>PQQQ001ahhx>P>PQQQ	R	Rr)r)r*r+rrcpython_onlyunittestskipIfrrrrrrrrrrr|r|sNCNCNC`
X_Y$&(?@@#C#CA@#CJ
*
*
*:::222
111RRRRRrr|c eZdZdZdZdZdS)CharmapTestc|tjdddd|tjdddd|ttjddd|ttjddd|tjdd	dd
|tjdd	dd
|tjdddd|tjdddd|tjdd
dd|tjdd
ddtt
d}|tj|d
ddt|fdS)Nrjrrrs􏿿bcrrsabuab￾ruab�rsrzab\x02rsrrrsrrh)rrPcharmap_decoderrrmrOrrallbytess  rtest_decode_with_string_mapz'CharmapTest.test_decode_with_string_mapOs#!/8UCC	
	
	

	
!/8^LL	
	
	

	
,!?Hd	
	
	
	
,!?Hj	
	
	
	
!/9dCC	
	
	

	
!/9jII	
	
	

	
!/3EtLL	
	
	

	
!/3EzRR	
	
	

	
!/8TBB	
	
	

	
!/8ZHH	
	
	

s$$!(Hb99
X	
	
	
	
	
rc|tjddddddd|tjdddd	d
dd|tjddddddd
|tjddddddd|ttjddddd|ttjdddddd|ttjdddddd|tjdddddd|tjddddddd|tjddddddd|tjdddddd|tjddddddd|tjddddddd|tjdddddd|tjddddddd|tjdddddddtt
d}|tj|didt|f|tdtjdddd	dd|tdtjdddd	dddS)NrrjrrrprrNr rAaBbCc)AaBbCcrs􏿿rrhrrrNu￾rrrrrrz.character mapping must be in range\(0x110000\)riɚ;)
rrPrrrrmrOrrorrs  rtest_decode_with_int2str_mapz(CharmapTest.test_decode_with_int2str_maps!/8&)cc":":
<
<	
	
	
	
!/8&*t"="=
?
?	
	
	
	
!/8&2ss"C"C
E
E	
	
	
	
!/8&)cb"9"9
;
;	
	
	
	
,!?H'*s#3#3	
	
	

	
,!?H'*st#<#<	
	
	
	
,!?H'*sx#@#@	
	
	

	
!/9&)c"2"2
4
4	
	
	
	
!/9&)cd";";
=
=	
	
	
	
!/9&)ch"?"?
A
A	
	
	
	
!/3E&)c"2"2
4
4	
	
	
	
!/3E&)cd";";
=
=	
	
	
	
!/3E&)ch"?"?
A
A	
	
	
	
!/8&)c"2"2
4
4	
	
	
	
!/8&)cd";";
=
=	
	
	
	
!/8&)ch"?"?
A
A	
	
	
s$$!(Hb99
X	
	
	

	
y>!X34B'?'?	
	
	
	
y>!X34I'F'F	
	
	
	
	
rc
td}td}td}|tjdd|||dd|tjddd||dd	|tjddtj||dt
tjd
zdf|ttjddtjdz||d|ttjdd||d
|ttjdd||dd|tjdd||d
d|tjdd||ddd|tjdd||d
d|tjdd||ddd|tjdd||d
d|tjdd||ddddS)NrrrprrjrrirbcrsrNrirrrrrr)
ordrrPrr
maxunicodechrrrr)rrrrps    rtest_decode_with_int2int_mapz(CharmapTest.test_decode_with_int2int_mapsHHHHHH!/8&'A!"4"4
6
6	
	
	
	
!/8&.1";";
=
=	
	
	
	
!/8&)nq"A"A
C
C

 
 4
'+	
	
	
	
)!?H'*~'9aA#F#F	
	
	

	
,!?H'(Q<<	
	
	

	
,!?H'(Q6#:#:	
	
	

	
!/9&'A,,
0
0	
	
	
	
!/9&'A&"9"9
;
;	
	
	
	
!/3E&'A,,
0
0	
	
	
	
!/3E&'A&"9"9
;
;	
	
	
	
!/8&'A,,
0
0	
	
	
	
!/8&'A&"9"9
;
;	
	
	
	
	
rN)r)r*r+rrrrrrrrNsK5
5
5
nr
r
r
hI
I
I
I
I
rrceZdZdZdZdS)WithStmtTestctjd}tj|dd5}||ddddn#1swxYwY||jdS)Nrrryr)rrrPrrrIrWclosedrs   rtest_encodedfilezWithStmtTest.test_encodedfileG	sJ{##

9g
6
6	1"RWWYY000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1!!!!!s)A  A$'A$ctjd}tjd}tj||j|jd5}||dddddS#1swxYwYdS)Nrryrjü)	rrrPrrstreamreaderstreamwriterrrI)rrr9srws    rtest_streamreaderwriterz$WithStmtTest.test_streamreaderwriterM	sJ{##}W%%

&q$*;'+'8(DD	1GJSXXZZ000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s
)BBBN)r)r*r+rrrrrrrF	s2"""11111rrceZdZdZdZdS)	TypesTestctjtjtjtjtjtjtjtjtj	tj
tjtjg}ttdr|tj|D]}|t"|ddS)Nmbcs_decoder)rPrutf_8_decoderdrurrr(r5utf_32_ex_decodelatin_1_decodeascii_decoderhasattrrrrr)rdecodersr|s   rtest_decode_unicodezTypesTest.test_decode_unicodeV	s
### ###!!

6=))	0OOF.///	9	9Gi%8888	9	9rc&|tjdd|tjdd|tjdd|tjdd|t
tjd|tjddd|tjddd	|t
tjd|tjddd|tjddd	dS)
Nz\u1234)uሴrs\u1234
\U00110000z
\U00110000rrrr)z(\x5c\x55\x30\x30\x31\x31\x30\x30\x30\x30r)rrPunicode_escape_decoderaw_unicode_escape_decoderrrs rtest_unicode_escapezTypesTest.test_unicode_escapek	ss	
5i@@-PPP5jAA=QQQ9)DDmTTT9*EE}UUU,f.JN[[[5mYOOQ_```5mEWXXJ	L	L	L	
,f.NP^___9-SSUcddd9-I[\\J	L	L	L	L	LrN)r)r*r+rrrrrrrU	s7999*LLLLLrrc@eZdZdZdZdZdZdZdZdZ	dZ
d	ZdS)
UnicodeEscapeTestzunicode-escapeNc|tjdd|tjdddSNrhrrrhr)rrPunicode_escape_encoderrs rrzUnicodeEscapeTest.test_empty	sJ5b998DDD5c::GDDDDDrctj}tddD]D}|dkr<||t	|t|gdfEdS)N \rN)rPrrOrrrmrrcrs   rtest_raw_encodez!UnicodeEscapeTest.test_raw_encode	si-r3	B	BAH}}  A%**aAAA	B	Brctj}tdD]J}|dkrB||t	|gdzt|dzdfKdS)Nrrr0r )rPrrOrrmrrs   rtest_raw_decodez!UnicodeEscapeTest.test_raw_decode	ss-s	O	OAH}}  qc

T(9!:!:SVVc\1<MNNN	O	Orctj}t||}|dd|dd|dd|ddtd	D]A}t	|d
vr.|t	|d|zBtdd
D]0}|t	|d|z1|dd|dddS)N	s\trs\nrs\r\s\\rz	

rrr€\u20ac𝄠
\U0001d120)rPrrrOrrcrrcrrs    rtest_escape_encodez$UnicodeEscapeTest.test_escape_encode	s-tV,,
dF
dF
dF
dFr	8	8A1vvX%%c!ffy1}4466777sC	4	4AE#a&&9q=00223333
h
###
lN+++++rc
Ttj}t||}|dd|dd|dd|dd|d	d
|dd|d
d|dd|dd|dd|dd|dd
|dd|dd|dd|dd|d d!|d"d|d#d!|d$d%|d&d'td(d)D]}t	|g}|d*vrQ|t5|d+|zd,t|zdddn#1swxYwY|d-vrf|t5|d+|zd,t|d.z
zdddn#1swxYwY|t5|d/d0dddn#1swxYwY|t5|d1d2dddn#1swxYwY|t5|d3d4dddn#1swxYwYtd5d6D]P}|t5|d7|zt|dddn#1swxYwYQdS)8Nrrrz["]rz[']rz[\]rz[]rz[]rz[	]rz[
]rz[]rz[]rz[
]rrz[8]r z[!]r!z[!8]r"z[A]r#z[A0]r$r%rrrrr&r's	abfnrtuvxr
rsUNrr(z\8r)z\9r*u\úrrr+)	rPrrrOrmr-r.rr/r0s     rtest_escape_decodez$UnicodeEscapeTest.test_escape_decode	s-tV,,
i
h
h
h
h!!!
h!!!
h!!!
h!!!
h!!!
h!!!
h!!!
h!!!
i###
i
j&!!!
j%   
k6"""
j%   
k6"""
j(###
nl+++r3	?	?Aqc

A$$%%&89944E%!)TCFF]333444444444444444wwyy%%%%&899??E%!''))+TC"II-=>>>???????????????


0
1
1	!	!E&%   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!


0
1
1	!	!E&%   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!


0
1
1	'	'E)X&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'uf%%	+	+A!!"455
+
+gk3q66***
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+	+	+sl FF		F		5HH	H	'
III%
I>>JJ#
J<<KK3LL 	#L 	c	tj}dD]\}}t|D]}|t|d|zd|zz|t|d|zd|zzdzd|zd|zzdz|zd|zz}|||ddt
|f|||d	d
t
|fŌ|t|d||ddd||dd	d
dS)N))xr urUrr
r[\]]\rrr[�]�rrhrr)rPrrOrrrrrrRrpr\r[rs      rtest_decode_errorsz$UnicodeEscapeTest.test_decode_errors	s-3		@		@DAq1XX
@
@!!"4f"'!)d1f"4666!!"4f"(1*tAv"5"<>>>zDF*V3a7$q&@  h!7!7$D		9JKKK  i!8!8"2CII!>@@@@
@	
,fnEEE998DDD	::NKKKKKrc6|dgddS)N	

\ÿ￿𐀀) rhrhrhrr	r	
r	

r	

\rrr	

\ÿrrrrr
	

\ÿ￿rrrrrrrrrrrrs rrzUnicodeEscapeTest.test_partial	rrr)r*r+rYrrrrrrrrrrrrr~	sHEEEBBBOOO
,
,
,(+(+(+TLLL %
%
%
%
%
rrc@eZdZdZdZdZdZdZdZdZ	dZ
d	ZdS)
RawUnicodeEscapeTestzraw-unicode-escapeNc|tjdd|tjdddSr)rrPraw_unicode_escape_encoderrs rrzRawUnicodeEscapeTest.test_empty
sJ9"==xHHH9#>>HHHHHrctj}tdD]>}||t	|t|gdf?dS)NrrN)rPrrOrrrmrs   rrz$RawUnicodeEscapeTest.test_raw_encode
s\1s	>	>AVVCFF^^eQCjj!_====	>	>rctj}tdD]D}||t	|gdzt|dzdfEdS)Nrrrr )rPrrOrrmrrs   rrz$RawUnicodeEscapeTest.test_raw_decode
sl1s	K	KAVVE1#JJ$566Q#q8IJJJJ	K	Krctj}t||}tdD]3}|dvr-|dt	|zdt|gz4|dd|dddS)	NruUrr
rrrr)rPrrrOrrmrs    rrz'RawUnicodeEscapeTest.test_escape_encode
s1tV,,s	9	9A~~dSVVmUUA3ZZ%7888
h
###
lN+++++rctj}t||}tdD]3}|dvr-|dt	|gzdt|z4|dd|dddS)	Nrrr
rrrrr)rPrrrOrmr)rrRrrs    rrz'RawUnicodeEscapeTest.test_escape_decode
s1tV,,s	9	9A~~eeQCjj($Q-888
j(###
nl+++++rc	tj}dD]\}}t|D]}|t|d|zd|zz|t|d|zd|zzdzd|zd|zzdz|zd|zz}|||ddt
|f|||d	d
t
|fŌ|t|d||ddd||dd	d
dS)N)rrr
rrrrrrrr	rr
r)rPrrOrrrrrs      rrz'RawUnicodeEscapeTest.test_decode_errors(
s1(		@		@DAq1XX
@
@!!"4f"'!)d1f"4666!!"4f"(1*tAv"5"<>>>zDF*V3a7$q&@  h!7!7$D		9JKKK  i!8!8"2CII!>@@@@
@	
,fnEEE998DDD	::NKKKKKrc6|dgddS)Nr)rrrrrrrrrrrrrrrrrrrrrrrrs rrz!RawUnicodeEscapeTest.test_partial8
s6.


	
	
	
	
	
rrrrrrr
s#HIII>>>
KKK
,,,,,,LLL 




rrceZdZdZdS)EscapeEncodeTestc|gd}|D][\}}||5|tj||dddn#1swxYwY\|t
tjd|t
tjt
ddS)N))rr)foobar)r$r)s	spameggs)sspam\x00eggs	)sa'b)sa\'brs)sb\c)sb\\crs)sc
d)sc\ndrs)sd
e)sd\rers)sfg)sf\x7fgrsrrr)rrrP
escape_encoderrr)rrfroutputs    rrz#EscapeEncodeTest.test_escape_encodeX
s
	
	
	
"	E	ELD&4((
E
E  !5d!;!;VDDD
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E)V%96BBB)V%99W;M;MNNNNNs)AA	A	N)r)r*r+rrrrr"r"V
s(OOOOOrr"c&eZdZdZdZdZdZdS)SurrogateEscapeTestcV|dddd|dddd|dddd|dddddS)Nfoobarryr	foobarsu	rrRrcrs r	test_utf8zSurrogateEscapeTest.test_utf8l
s--g7HII'	)	)	)..w8IJJ&	(	(	(	
//9JKK-	/	/	/-44W>OPP(	*	*	*	*	*rc|dddd|dddddS)Nr+rrr,r-rs rrzSurrogateEscapeTest.test_asciix
sh--g7HII'	)	)	)..w8IJJ&	(	(	(	(	(rc|dddd|dddddS)Nsfoobarz
iso-8859-3ru	foobarr-rs rtest_charmapz SurrogateEscapeTest.test_charmap
sh--l<MNN'	)	)	)..|=NOO&	(	(	(	(	(rcZ|dddddS)Nurrsrlrs rtest_latin1zSurrogateEscapeTest.test_latin1
s;9@@L]^^0	2	2	2	2	2rN)r)r*r+r.rr1r3rrrr)r)j
sP
*
*
*((((((22222rr)ceZdZdZdS)BomTestc:	d}d}|tjtj|D]h}t	jtjd|5}|||||d||	|dz|d||	|dzdddn#1swxYwYt	jtjd|5}||d|
|d|d|||d||	|dddn#1swxYwYt	jtjd|5}|j|d|
|jd|jd|j||d||	|dddn#1swxYwYt	jtjd|5}|||||||d||	|dzdddn#1swxYwYt	jtjd|5}|j||j|j|j||d||	|dzdddn#1swxYwYjdS)N
1234567890)r9r[rrrrr1rrErr )
rFrrGrHrPrIrDrrrIassertNotEqualtellr)rrrfrYrs     r
test_seek0zBomTest.test_seek0
s	
	()*:;;;,	5,	5HY-thGGG
51





q			  4!8444q			  4!8444

5
5
5
5
5
5
5
5
5
5
5
5
5
5
5Y-thGGG
11Q   ##AFFHHa000q			


q			  4000

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1Y-thGGG
11tAw'''##AHMMOOQ777

a   t$$$q			  4000

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1Y-thGGG
51


qvvxx   


q			  4!8444
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5Y-thGGG
51t$$$

ahmmoo...t$$$q			  4!8444
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5O,	5,	5s_B+DD	D	8B+G//G3	6G3	B?K&&K*	-K*	BN00N4	7N4	B&RR	R	N)r)r*r+r:rrrr5r5
s#5555555555rr5)base64_codecuu_codecquopri_codec	hex_codecbase64base_64uu)quopriquoted_printablequotedprintablehexrot13)r;r<r=r>rot_13
zlib_codecrszlib	bz2_codecbz2ceZdZdZdZdZdZdZdZdZ	dZ
eje
d	d
ZdZdZd
ZdZdS)TransformCodecTestcttd}tD]}||5t	j||\}}||t|t	j||\}}||t||||dddn#1swxYwYdS)NrrE)	rmrObytes_transform_encodingsrrPrrrr)rbinputrYorGr[s      rrzTransformCodecTest.test_basics
s"uSzz""1	,	,Hx00
,
,7F-h77??	D  s6{{3337F-h77::	D  s1vv...  F+++

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,	,	,sBC%%C)	,C)	cRtD]}||5tjd|}tj|tj|}|}||ddddn#1swxYwYdSNrEr)	rOrrPrcrrrrrIrrrYsinrsouts     r	test_readzTransformCodecTest.test_read
s1	0	0Hx00
0
0mGX663)(33BJsOODD{{}}  w///	
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0	0	0A/BB	"B	cRtD]}||5tjd|}tj|tj|}|}||ddddn#1swxYwYdSrS)	rOrrPrcrrrrrrrTs     rrz TransformCodecTest.test_readline
s1	0	0Hx00
0
0mGX663)(33BJsOODD((  w///	
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0	0	0rXcd}tD]}||5|}t|}tj||}tj||}|||t|}tj||}|||tj||}|||dddn#1swxYwYdS)Ns12345rE)rOr
memoryviewrPrcrrR)roriginalrYrviewview_encodedview_decodeds       rtest_buffer_api_usagez(TransformCodecTest.test_buffer_api_usages1 1	5	5Hx00

5

5!$''}T844%}T8<<  t444!$''}T844  x000%}T8<<  t444

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5	5	5sB7C%%C)	,C)	cvd}tD]}||5d}||}|t|5}||dddn#1swxYwY||jjdddn#1swxYwYdS)Nzbad input typerEzM{!r} is not a text encoding; use codecs.encode\(\) to handle arbitrary codecs)	rOrformatrorrcassertIsNonerU	__cause__)r	bad_inputrYfmtmsgfailures      r/test_text_to_binary_denylists_binary_transformszBTransformCodecTest.test_text_to_binary_denylists_binary_transformss9$	1	?	?Hx00
?
?Kjj**++K==/$$X...///////////////!!'"3"=>>>

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?	?	?s53B-A7+B-7A;;B->A;?"B--B1	4B1	cd}|t|5ddddddS#1swxYwYdS)NzR^'rot_13' is not a text encoding; use codecs.encode\(\) to handle arbitrary codecszjust an example messagerG)rorrcrrgs  r-test_text_to_binary_denylists_text_transformsz@TransformCodecTest.test_text_to_binary_denylists_text_transformssC

#
#K
5
5	7	7%,,X666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7sAAAcd}tD]}||5tj||}d}||}|t|5||dddn#1swxYwY|t|5t||dddn#1swxYwYdddn#1swxYwYdS)Ns6encode first to ensure we meet any format restrictionsrEzM{!r} is not a text encoding; use codecs.decode\(\) to handle arbitrary codecs)	rOrrPrcrbrorrRr)rrrYencoded_datarfrgs      r/test_binary_to_text_denylists_binary_transformszBTransformCodecTest.test_binary_to_text_denylists_binary_transforms&sI1		=		=Hx00
=
=%}T8<<Kjj**++K==22 ''111222222222222222++K====l++228<<<===============
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=		=		=sZAC8*BC8BC8BC82#C!C8!C%%C8(C%)C88C<	?C<	c\dtdfD]}||5d}|t|5}|ddddn#1swxYwY||jjdddn#1swxYwYdS)Ns	immutablesmutable)rezR^'rot_13' is not a text encoding; use codecs.decode\(\) to handle arbitrary codecsrG)rrrorrRrcrUrd)rrergrhs    r-test_binary_to_text_denylists_text_transformsz@TransformCodecTest.test_binary_to_text_denylists_text_transforms5s0&	*(=(=>	?	?I	22
?
?K++K==/$$X...///////////////!!'"3"=>>>
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?	?	?s5B A*B *A..B 1A.2"B  B$	'B$	zRequires zlib supportcd}|tj5}tjdddddn#1swxYwY||jjt|jdS)Nz(^decoding with 'zlib_codec' codec failedhellorH)	rrIerrorrPrRrTrUrdr)rrgrhs   r!test_custom_zlib_error_is_wrappedz4TransformCodecTest.test_custom_zlib_error_is_wrapped?s9


tz
*
*	2gM(L111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2g/904W5F0G0G	I	I	I	I	IsAAAcddl}d}||j5}tjdddddn#1swxYwY||jjt|jdS)Nrz'^decoding with 'hex_codec' codec failedrsr>)	binasciirrrPrRrTrUrdr)rrwrgrhs    r test_custom_hex_error_is_wrappedz3TransformCodecTest.test_custom_hex_error_is_wrappedHs7


x~
.
.	1'M(K000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1g/904W5F0G0G	I	I	I	I	IsAA
Ac:tD]\}}tj|j}|D]_}||5tj|}||j|dddn#1swxYwY`dS)N)alias)transform_aliasesitemsrPrrrr)r
codec_namealiases
expected_namerzr9s      rtest_aliaseszTransformCodecTest.test_aliasesUs#4#:#:#<#<	?	?J"M*55:M 
?
?\\\..??!=//D$$TY
>>>???????????????
?	?	?s0BBBctjdd}||dd}|tj|d|dS)Nsspace tab	eol 
zquopri-codecsspace=20tab=09eol=20
sspace tab eol
)rPrcrrR)rr}	unescapeds   rtest_quopri_statelessz(TransformCodecTest.test_quopri_stateless]sX- 4nEE";<<<&	y.AA9MMMMMrcT|ttjdddS)Nrzuu-codec)rrRrPrRrs rtest_uu_invalidz"TransformCodecTest.test_uu_invalides$*fmS*EEEEErN)r)r*r+rrWrr`rirlrorqr
skipUnlessrIrurxrrrrrrrMrM
s	,	,	,000000555$
?
?
?777
=
=
=???X677II87IIII???NNNFFFFFrrMc6t|Sr
)_TEST_CODECSget)r}s r_get_test_codecrtsJ'''rceZdZdZdZdZejdZdZ	e
fdZdZdZ
d	Zd
ZdZdZd
ZdZdZdZdZdZdS)ExceptionChainingTestcd|_tjt|tjtt|_dS)Nexception_chaining_test)r}rPrrrFrRuntimeErrorobj_to_raisers rrzExceptionChainingTest.setUpzs@3((()?;;;)rct|jdtj|jddSr
)rpopr}r_cachers rtearDownzExceptionChainingTest.tearDowns;$///T_d33333rc\tj|||j}|t|j<dS)N)r)rPrr}r)rrcrR
codec_infos    r	set_codeczExceptionChainingTest.set_codecs4%ff+/?<<<
(2T_%%%rc#:Kd||j|j|}|||5}|Vdddn#1swxYwY||jj|||jjjdS)Nz${} with {!r} codec failed \({}: {}\))	rbr}r)rorTrUrdassertIsNotNone
__traceback__)r	operationexc_typergfull_msgcaughts      r
assertWrappedz#ExceptionChainingTest.assertWrappeds:AAT_h.?FF

#
#Hh
7
7	6LLL															f.8(CCCV-7EFFFFFsAAAc|jr
)r)rargskwdss   r	raise_objzExceptionChainingTest.raise_objsrc||_||j|j|d||5d|jdddn#1swxYwY|d||5t
jd|jdddn#1swxYwY|d||5d|jdddn#1swxYwY|d||5t
jd|jddddS#1swxYwYdS)NrY	str_inputdecodingbytes input)rrrrrcr}rPrR)rrrgrs    r
check_wrappedz#ExceptionChainingTest.check_wrappeds9(t~t~666



Hc
:
:	0	0t///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0



Hc
:
:	8	8M+t777	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8



Hc
:
:	3	3!!$/222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3



Hc
:
:	;	;M.$/:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;sGA&&A*-A*B//B36B3C88C<?C<EE	Ec<|tddS)Nrhrrrs rtest_raise_by_typez(ExceptionChainingTest.test_raise_by_types<,,,,,rcPd}|t||dS)NThis should be wrappedrrks  rtest_raise_by_valuez)ExceptionChainingTest.test_raise_by_values+&<,,c22222rcpd}Gddt}|||||dS)NrceZdZdZdS)WExceptionChainingTest.test_raise_grandchild_subclass_exact_size.<locals>.MyRuntimeErrorrN)r)r*r+	__slots__rrrMyRuntimeErrorrsIIIrrrrrrgrs   r)test_raise_grandchild_subclass_exact_sizez?ExceptionChainingTest.test_raise_grandchild_subclass_exact_sizesY&					\			>>#..^DDDDDrcpd}Gddt}|||||dS)NrceZdZdS)VExceptionChainingTest.test_raise_subclass_with_weakref_support.<locals>.MyRuntimeErrorN)r)r*r+rrrrrsDrrrrs   r(test_raise_subclass_with_weakref_supportz>ExceptionChainingTest.test_raise_subclass_with_weakref_supportsY&					\			>>#..^DDDDDrcfd}||||t|5d|jdddn#1swxYwY|t|5tjd|jdddn#1swxYwY|t|5d|jdddn#1swxYwY|t|5tjd|jddddS#1swxYwYdS)Ncr
r)rrrs  rrz:ExceptionChainingTest.check_not_wrapped.<locals>.raise_objs	r	str inputr)rrorrcr}rPrR)rrrgrs `  rcheck_not_wrappedz'ExceptionChainingTest.check_not_wrappeds?					y),,,

#
#L#
6
6	0	0t///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0

#
#L#
6
6	8	8M+t777	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8

#
#L#
6
6	3	3!!$/222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3

#
#L#
6
6	;	;M.$/:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;sGAA#&A#B,,B03B0C99C=C=EEEcXGddt}||ddS)NceZdZdZdS)KExceptionChainingTest.test_init_override_is_not_wrapped.<locals>.CustomInitcdSr
rrs rrAzTExceptionChainingTest.test_init_override_is_not_wrapped.<locals>.CustomInit.__init__srN)r)r*r+rArrr
CustomInitrs#




rrrhrr)rrs  r!test_init_override_is_not_wrappedz7ExceptionChainingTest.test_init_override_is_not_wrappedsJ									
z2.....rcXGddt}||ddS)NceZdZfdZxZS)IExceptionChainingTest.test_new_override_is_not_wrapped.<locals>.CustomNewcFt|Sr
)r__new__)clsrs rrzQExceptionChainingTest.test_new_override_is_not_wrapped.<locals>.CustomNew.__new__swws+++r)r)r*r+rrrs@r	CustomNewrs8
,
,
,
,
,
,
,
,
,rrrhr)rrs  r test_new_override_is_not_wrappedz6ExceptionChainingTest.test_new_override_is_not_wrappedsJ	,	,	,	,	,	,	,	,	
y"-----rcd}t|}d|_||d|dS)NzThis should NOT be wrappedrNz^{}$)rattrrrb)rrgrs   r&test_instance_attribute_is_not_wrappedz<ExceptionChainingTest.test_instance_attribute_is_not_wrappedsC*3sFMM#$6$677777rcL|tdddS)NrN1rrrs rtest_non_str_arg_is_not_wrappedz5ExceptionChainingTest.test_non_str_arg_is_not_wrappeds$|A44444rcTd}|tddd|dS)Nz^\('a', 'b', 'c'\)$rrrpr)rmsg_res  r!test_multiple_args_is_not_wrappedz7ExceptionChainingTest.test_multiple_args_is_not_wrappeds/'|Cc::FCCCCCrcd|j}|t|5d|jdddn#1swxYwY|t|5tjd|jdddn#1swxYwY|t|5d|jdddn#1swxYwY|t|5tjd|jddddS#1swxYwYdS)Nz^unknown encoding: {}$rr)rbr}rorrcrPrRrks  r%test_codec_lookup_failure_not_wrappedz;ExceptionChainingTest.test_codec_lookup_failure_not_wrappeds&&--do>>

#
#K
5
5	0	0t///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0

#
#K
5
5	8	8M+t777	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8

#
#K
5
5	3	3!!$/222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3

#
#K
5
5	;	;M.$/:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;sGAA!$A!B**B.1B.C77C;>C;EE	E	cd}d}|||tjd|j}||dtjd|j}||dd}||j}|t|5d|jdddn#1swxYwYd}||j}|t|5d|jddddS#1swxYwYdS)	NcdS)N)
not bytes!rrrrs  r
encode_to_strzSExceptionChainingTest.test_unflagged_non_text_codec_handling.<locals>.encode_to_strs"?rcdS)N)not str!rrrs  rdecode_to_byteszUExceptionChainingTest.test_unflagged_non_text_codec_handling.<locals>.decode_to_bytess!>rrrzd^{!r} encoder returned 'str' instead of 'bytes'; use codecs.encode\(\) to encode to arbitrary types$rzd^{!r} decoder returned 'bytes' instead of 'str'; use codecs.decode\(\) to decode to arbitrary types$r)	rrPrcr}rrRrbror)rrrr}decodedrfrgs       r&test_unflagged_non_text_codec_handlingz<ExceptionChainingTest.test_unflagged_non_text_codec_handlings	#	#	#	"	"	"}o666-do66,///-do66+...Fjj))

#
#Is
3
3	0	0t///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0Fjj))

#
#Is
3
3	3	3!!$/222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3s$4CC"CEE	E	N)r)r*r+rrr
contextlibcontextmanagerrrrrrrrrrrrrrrrrrrrrrxsI)))444
333
GGG   9E
;
;
;
;---333EEEEEE;;;///...888555DDD

;
;
;33333rrwin32z"code pages are specific to WindowsceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZejd
dddZejd
dddZdS)CodePageTestc>|ttjdd|ttjdd|t
tjdd|t
tjdddS)Nrrar')rrRrPcode_page_encodecode_page_decodeOSErrorrs rtest_invalid_code_pagez#CodePageTest.test_invalid_code_pages|*f&=r3GGG*f&=r4HHH'6#:CEEE'6#:CFFFFFrc	|tdtjdd|tdtjdddd|tdtj|jddddS)	Nr<ÿsrjTCP_UTF8r
)rorrPrrrrrs rtest_code_page_namez CodePageTest.test_code_page_names17#S&	2	2	217#S+x	G	G	G19#T\7Hd	L	L	L	L	Lrc|D]\}}}|	tj|||d}n8#t$r+}|d|d|d|d|Yd}~nd}~wwxYw||d||d|d|d	|dd
|	||dd||dt||ttj|||ddS)NTzUnable to decode z	 from "cp" with errors=: rz.decode("cp", )= != rN)	rPrrfailrassertGreaterEqualassertLessEqualrr)rr6rfrgrDrhrerrs        rcheck_decodezCodePageTest.check_decode"s|%*	D	D!C#H$5b#vtLLGG)HHHIII14bbb&&&##GHHHHHHHHH  XssBBB


HH>???''
A666$$WQZS::::!!"4+RfdDDDD	D	Ds$
A!AAc|D]\}}}|	tj|||}n8#t$r+}|d|d|d|d|Yd}~nd}~wwxYw||d||d|d|d|dd	|	||d
t||ttj|||dS)NzUnable to encode z to "cprrrz.encode("cprrrrN)rPrrrrrr)rr6rftextrDrhr}rs        rcheck_encodezCodePageTest.check_encode4sY&+
	?
	?"D&(#I$5b$GGGG)IIIIII15rrr66633HIIIIIIIII  XttRRRXX?@@@  SYY7777!!"4+Rv????
	?
	?s#
A!AAc^|dd|dddS)Nr)rrjrr)d騾rj)rrjN)rrr)rrs[y])u[€]rs[?])rrs[\xff])rrs)[\N{LATIN SMALL LETTER Y WITH DIAERESIS}])rrs[&#255;])urjN)[]rr)rrN)rrrjr)rrjr)rrjN)rrr)rru[�])rrz[\xff])rrr)rrN)abcrjN)r	rzabc)r	ru�abc)r	rz\x81abcrrrs r
test_cp932zCodePageTest.test_cp932DsL# 
			 	
# 
					rc^|dd|dddS)Ni)r)é€rj)rrjr
)ŁrjN)rrr)rrL)r)rrN)r)rrjr
)r
rjrr
rs rtest_cp1252zCodePageTest.test_cp1252esL$
!

	
	
		
$!
					rcbd}||d||ddS)N)r)r
rj+AOkgrA-)rrj+2//f/w-)rrj+3IA-)rrj+//0-)r)rrjr
)rrjr)rrjr)rrjr)s[+/]rjr)rrjrr
rr6s  rtest_cp_utf7zCodePageTest.test_cp_utf7wsQ
"
				
"	
										rc|dd||jd||jddS)Nr))r騾)rru�騾))􏿿rr)rru�􏿿))	[􏿿]rs[􏿿])r rs[􏿿?])rrrrs rtest_multibyte_encodingz$CodePageTest.test_multibyte_encodingsq# 
				
$,)
				
$,)
					rctjrtjdddddddgtdd	d
RD]]}t
|r.|tj	|ddd
|?tjrtd|^|tj	ddddS)Nri,i-i.i1i3i5iirrrrr6z  skipping cp=r)u	rs)rverboserstdoutrDrOr:rrPrprintrs  rtest_code_page_decode_flagsz(CodePageTest.test_code_page_decode_flagss?	#JT"""%ue2%))2+022
	1
	1B$B''
1  !8V!D!DjR[WYR[R[\\\\?1/2//0000V<<2	4	4	4	4	4rcntjdddd}||dtjdddd}||dtjdddd}||d	tjdd
dd}||ddS)NrrjFrs)rr s)u騾騾rrrr)rPrr)rrs  rtest_incrementalzCodePageTest.test_incrementals)#w%HH'***)#*98*/11	
-000)#*=x*/11	
"5666)#*0(*/11	
*-----rc0d}d|}tjd|5	tj|}||jdtj|n#tj|wxYw	ddddS#1swxYwYdS)Nir6z_winapi.GetACP)return_valuerx)rrrPrrrr)r	code_pagercodecs    rtest_mbcs_aliaszCodePageTest.test_mbcs_aliass	I
Z(y
A
A
A	(	(
(
d++  V444!$''''!$'''''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(s(B/A$B$A::BBBlF)rGmemusedry_runcd|dzdz
zdz}|t||dztjd|dd}||dt|~|t|d	|d||d	dd
d||d	ddd
dS)Ns01234567r4rNs
r rrTrr
0123456701iu(6701234567rrrPrrrGr}rs    rtest_large_inputzCodePageTest.test_large_inputs
47A+.>?WtAv...)#w8I4PPS\\222WQZ'!*555CRC,777CDD):	;	;	;	;	;rrcd|dzz}|t||dzdztjd|dd}||dt|~|t|d|||dddd	||dd
dddS)Ns
0123456턀r4rrrTrNru0123456턀01iu56턀0123456턀r4r5s    rtest_large_utf8_inputz"CodePageTest.test_large_utf8_inputs
*T1W5Wtqy2~666)%(DIIS\\222WQZ$///CRC*;<<<CDD)+BCCCCCrN)r)r*r+rrrrrrrrr!r&r)r.r
bigmemtestr6r8rrrrrs/GGGGLLLDDD$??? B$(444&...&
(
(
(WU1e<<<;;=<;"WU1e<<<DD=<DDDrrc,eZdZdZdZdZdZdZdS)	ASCIITestcX|ddddS)Nr~rsabc123rlrs rr?zASCIITest.test_encodes*119=====rcdD]`\}}}||||5||d||dddn#1swxYwYadS)N))	[€ÿ€]rr)r>rs[???])r>rs[&#128;&#255;&#8364;])u
[€ÿ€򫳞]rs[\x80\xff\u20ac\U000abcde]rrrrrrrrcrs    rtest_encode_errorzASCIITest.test_encode_errors.
	+	+)D-4}'/11
+
+  Wm!D!D!)+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+	+	++AA	A	c|t5dddddddS#1swxYwYdS)Nuÿrrrrrcrs r!test_encode_surrogateescape_errorz+ASCIITest.test_encode_surrogateescape_errors


1
2
2	<	<):;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<?AAcX|ddddS)Nrrrr)rrRrs rrAzASCIITest.test_decode
s*w//77777rcdD]`\}}}||||5||d||dddn#1swxYwYadS)Nrrrrrs    rrzASCIITest.test_decode_error
s.
		+		+)D-4}'/11
+
+  Wm!D!D!)+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
		+		+rBN)r)r*r+r?rArErArrrrr;r;s_>>>+++<<<
888
+
+
+
+
+rr;c&eZdZdZdZdZdZdS)
Latin1TestcdD]]\}}|||5||d|dddn#1swxYwY^dS)N))rrr)u€éÿsrrhr
r@rrrhs   rr?zLatin1Test.test_encode

	B	BND(4(;;
B
B  X!6!6AAA
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B		B	B*AA	A	cdD]`\}}}||||5||d||dddn#1swxYwYadS)N))[€]rr)rQrs[??])u	[€򫳞]rs[\u20ac\U000abcde])rQrs[&#8364;&#56448;]r?rr
r@rs    rtest_encode_errorszLatin1Test.test_encode_errors
s.
	+	+)D-4}'/11
+
+  X}!E!E!)+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+	+	+rBc|t5dddddddS#1swxYwYdS)Nu€r
rrDrs rrEz,Latin1Test.test_encode_surrogateescape_error*
s


1
2
2	?	?!!(,=>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?rFcdD]]\}}|||5||d|dddn#1swxYwY^dS)N))rrr)ru[€ÿ]rLr
rrMs   rrAzLatin1Test.test_decode/
rNrON)r)r*r+r?rRrErArrrrJrJ
sXBBB+++???
BBBBBrrJc2eZdZdZdZdZdZdZdZdS)StreamRecoderTestcRtj}tjd}tj||j|jtjj	tjj
}|ddg||
ddS)Nrrbsab)rrrPrrrcrRrrrr
writelinesrrrbior-srs    rtest_writelinesz!StreamRecoderTest.test_writelines9
sjll
g&&

!#u|U\"+/">	@\^^


tTl###/////rctj}tjd}tj||j|jtjj	tjj
}d}||d||
|ddS)Nr
uàñéry)rrrPrrrcrRrrvrrrDrr)rr[r-r\rs     r
test_writezStreamRecoderTest.test_writeA
sjll
h''

!#u|U\"+/">	@\^^
X&&'''W)=)=>>>>>rc:tjdd}tj|dd}||d|d||d||d||d||ddS)	Nzline1
line2
line3
r[rysline1
rsline2
sline3
r)rrrcrPrrrrrr[r\s   rtest_seeking_readz#StreamRecoderTest.test_seeking_readL
sj077DDEE

Wk
:
:
333




333
333
333,,,,,rc>tjdd}tj|dd}|d|d||d|d||d||d	||ddS)
Nz
123456789
r[ryr s
abc
s789
rs1
sabc
)	rrrcrPrrrDrrras   rtest_seeking_writez$StreamRecoderTest.test_seeking_writeW
sj--k::;;

Wk
:
:	



111



///11111111rctj}tjd}tj||j|jtjj	tjj
}|td5tj
|dddn#1swxYwY|td5tj|ddddS#1swxYwYdS)Nrr)rrrPrrrcrRrrrrrorrrrZs    rrzStreamRecoderTest.test_copye
sMjll
g&&

!#u|U\"+/">	@\^^
#
#I
?
?		IbMMM															

#
#I
?
?		M"																		s$B$$B(+B(
C,,C03C0ctd}tjd}tj||j|jtjjtjj	}ttjdzD]x}|
|5|td5tj||dddn#1swxYwYdddn#1swxYwYydS)NrrrNrr)r<rPrrrcrRrrrrrOrrrrorr)rryr-r\rs     rrzStreamRecoderTest.test_picklep
s[#JJ
g&&

!!U\5<"+/">	@\^^62Q677	,	,Eu--
,
,++IGG,,LU+++,,,,,,,,,,,,,,,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,	,	,s6C-4C
C-CC-CC--C1	4C1	N)	r)r*r+r]r_rbrdrrrrrrVrV8
sn000	?	?	?	-	-	-222				,	,	,	,	,rrVzneed _testinternalcapi moduleceZdZdZejZdZdZdZ	ddZ
dZdZd	Z
d
ZdZddZd
ZdZdZdZdZdS)LocaleCodecTestzD
    Test indirectly _Py_DecodeUTF8Ex() and _Py_EncodeUTF8Ex().
    )ruulatin1:§éuu255:ÿu
UCS:é€􏿿usurrogates:)s
blatin1:sb255:urjc.tj|d|SrF)_testinternalcapiEncodeLocaleEx)rrrDs   rrczLocaleCodecTest.encode
s /a@@@rc	|jD]}||5	||j|}|||}|||n#t
$ru|t5}|||dddn#1swxYwYt|j	}|
|dYnwxYwdddn#1swxYwYdS)N)rz!encode error: pos=[0-9]+, reason=)STRINGSrrcENCODINGrrrrrTrUassertRegex)rrDrrhr}rWerrmsgs       rcheck_encode_stringsz$LocaleCodecTest.check_encode_strings
sL	8	8D4((

8

8	8#{{4=&AAH#kk$77G$$Wh7777*SSS**<882BD&111222222222222222 ..F$$V-QRRRRR	S

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8	8	8sWC8A*-C8*$C)B1	%C)1B5
5C)8B5
9-C)&C8(C))C88C<	?C<	c0|ddSNrjrqrs rtest_encode_strictz"LocaleCodecTest.test_encode_strict
!!(+++++rc0|ddSNrrtrs rtest_encode_surrogateescapez+LocaleCodecTest.test_encode_surrogateescape
!!"344444rc	|ddnI#t$r<}t|dkr||jdnYd}~nd}~wwxYw|ddS)Nrhrunsupported error handlerz4 encoder doesn't support surrogatepass error handler)rcrRrTrrnrqrrs  rtest_encode_surrogatepassz)LocaleCodecTest.test_encode_surrogatepass
s	KKO,,,,			3xx666

===>>>>>>>>>		
!!/22222
A2AAc|t5}|dddddn#1swxYwY|t	|jddS)Nrhrr|)rrRrcrrTrUrrWs  r%test_encode_unsupported_error_handlerz5LocaleCodecTest.test_encode_unsupported_error_handler
s


z
*
*	0bKK.///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0R\**,GHHHHH>AAc.tj|d|SrF)rjDecodeLocaleEx)rr}rDs   rrRzLocaleCodecTest.decode
s /FCCCrc	|jdk}|rd}nd}t|j}|jD]}	||j|}||vr||n#t$rd}YnwxYw|r6||jd}||kr|||D]}||5	||j|}|||}	|	|	|n#t$r|t5}
|||dddn#1swxYwYt|
j}||d|YnwxYwdddn#1swxYwYdS)Nryrrjr)r}zdecode error: )rnr
BYTES_STRINGSrmrcrrrrRrrrrrTrUrW
startswith)rrDis_utf8
encode_errorsstringsrr}encoded2rhrrWrps            rcheck_decode_stringsz$LocaleCodecTest.check_decode_strings
sz=G+	%-MM$Mt)**L	-	-D
++dm]CC'))NN7+++%




-;;t}oFFw&&NN8,,,	8	8Gg..

8

8	8&~~dmVDDH#kk'6::G$$Wh7777*QQQ**<885BGV444555555555555555 ..FOOF$5$56F$G$GPPPPP	Q

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8	8	8sl4A&&A54A5F7D)-F7$F(:E	F(E!
!F($E!
%AF(%F7'F((F77F;	>F;	c0|ddSrsrrs rtest_decode_strictz"LocaleCodecTest.test_decode_strict
rvrc0|ddSrxrrs rtest_decode_surrogateescapez+LocaleCodecTest.test_decode_surrogateescape
rzrc	|ddnI#t$r<}t|dkr||jdnYd}~nd}~wwxYw|ddS)Nrrr|z4 decoder doesn't support surrogatepass error handler)rRrRrTrrnrr}s  rtest_decode_surrogatepassz)LocaleCodecTest.test_decode_surrogatepass
s	KK_----			3xx666

===>>>>>>>>>		
!!/22222rc|t5}|dddddn#1swxYwY|t	|jddS)Nrrr|)rrRrRrrTrUrs  r%test_decode_unsupported_error_handlerz5LocaleCodecTest.test_decode_unsupported_error_handler
s


z
*
*	1bKK/000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1R\**,GHHHHHrNri)r)r*r+rJrgetfilesystemencodingrnrmr
SURROGATESrcrqruryr~rrRrrrrrrrrrhrh|
s)s(**H*G8MJAAAA888,,,555
3
3
3III
DDDD 8 8 8D,,,555
3
3
3IIIIIrrhc*eZdZdZdZdZdZdZdS)	Rot13Testz"Test the educational ROT-13 codec.c\tjdd}||ddS)NzCaesar liked ciphersrot-13zPnrfne yvxrq pvcuref)rPrcr)r
ciphertexts  rr?zRot13Test.test_encode
s1]#98DD
%;<<<<<rc\tjdd}||ddS)Nz
Rg gh, Oehgr?rz
Et tu, Brute?)rPrRr)r	plaintexts  rrAzRot13Test.test_decode
s/M/8<<	O44444rctjd}|d}||ddS)NrzABBA nag Cheryl BakerzNOON ant Purely Onxre)rPrbrcr)rrrs   rrz!Rot13Test.test_incremental_encode
sI8&.x88::^^$;<<
%<=====rctjd}|d}||ddS)Nrzterra Ares envy thazgreen Nerf rail gun)rPrQrRr)rr|rs   rr}z!Rot13Test.test_incremental_decode
sI8&.x88::NN#899	$9:::::rN)r)r*r+rJr?rArr}rrrrr
sV,,===555>>>
;;;;;rrceZdZdZdZdS)
Rot13UtilTestzTest the ROT-13 codec via rot13 function,
    i.e. the user has done something like:
    $ echo "Hello World" | python -m encodings.rot_13
    cddlm}tjd}tj}||||d|}||ddS)Nr)rFz)Gb or, be abg gb or, gung vf gur dhrfgvbaz)To be, or not to be, that is the question)encodings.rot_13rFrrrrIr)rrFinfileoutfile
plain_texts     rtest_rot13_funczRot13UtilTest.test_rot13_funcs******HII+--
fgQ\\^^
7	9	9	9	9	9rN)r)r*r+rJrrrrrrs-	9	9	9	9	9rrceZdZdZdZdZdS)CodecNameNormalizationTestzTest codec name normalizationcddfd}tj||tj||tjd|tjd|tjd|tjd|tjd|tjd	|tjd
|tjd|tjd|tjd
dS)N)rNr rsr)NNNNc|dkrSS)Naaa_8r)rYFOUND	NOT_FOUNDs rrzFCodecNameNormalizationTest.test_codecs_lookup.<locals>.search_functions7""  rrzAAA-8zAAA---8zAAA   8u
aaaé€-8zAAA.8zAAA...8zBBB-8zBBB.8uaé€-8)rPrrFrrr)rrrrs  @@rtest_codecs_lookupz-CodecNameNormalizationTest.test_codecs_lookups,		!	!	!	!	!	!	((()?;;;
g 6 6777
g 6 6777
i 8 8999
i 8 8999
.? @ @AAAFM'$:$:;;;FM)$<$<===FM'$:$:;;;FM'$:$:;;;FM/$B$BCCCCCrctj}||dd||dd||dd||dd||dd||dddS)Nrvuutfé€􏿿-8zutf   8zUTF 8UTF_8zutf.8zutf...8)rnormalize_encodingr)r	normalizes  r!test_encodings_normalize_encodingz<CodecNameNormalizationTest.test_encodings_normalize_encoding,s0	7++W555#>??III9--w777	
7++W5557++W5559--y99999rN)r)r*r+rJrrrrrrrs;''DDD,
:
:
:
:
:rr__main__)YrPrrrrrrrrrtestrtest.supportrrrImportErrorrjr3sizeofc_wcharSIZEOF_WCHAR_Trr:rr<rLrfTestCaserrr0r8rZrqrxrrrrrr:r[rr%reprr6rWrSr_rrrrrrrrrr|rrrrrr"r)r5rOr{rIrKrMrrrrplatformrr;rJrVrrhrrrr)mainrrr<module>rsX



				











""""""((((((III3MMM
#V]6>22NN	
FNNN$$$(F*--------DQ=Q=Q=Q=Q=&Q=Q=Q=h
]>]>]>]>]>(+]>]>]>@+>+>+>+>+>(H-+>+>+>\+>+>+>+>+>(H-+>+>+>\`-`-`-`-`-(+`-`-`-F*'*'*'*'*'(H-*'*'*'X*'*'*'*'*'(H-*'*'*'X[H[H[H[H[Hx*[H[H[H|CKCKCKCKCKx*CKCKCKL>>>>>(#>>>CCCCCX&CCC S-S-S-S-S-(H-S-S-S-l<H<H<H<H<Hx(<H<H<H@eeeN
A
s1vvqyy
dd1ggPPPPP8$PPPBVVVrPPPPP8$PPP(Z6Z6Z6Z6Z6H%Z6Z6Z6z~)~)~)~)~)x(~)~)~)B+++++x(+++2+++++x(+++(+++++X.+++*
0
0
0
0
0h'
0
0
0fffP76=!!)  (((
76<  (  ''' 
_R_R_R_R_Rx(*A_R_R_RDu
u
u
u
u
(#u
u
u
p111118$111&L&L&L&L&L!&L&L&LRC
C
C
C
C
("3C
C
C
JP
P
P
P
P
8X%6P
P
P
fOOOOOx(OOO(22222(+222D6565656565h656565ry)EEEi6KKK$$\222',fol##	DDD
-JJJ$$[111&+Wk""				D	CFCFCFCFCF*CFCFCF\(((S3S3S3S3S3H-S3S3S3nS\W,9;;XDXDXDXDXD8$XDXD;;XDv$+$+$+$+$+!$+$+$+N"B"B"B"B"B""B"B"BJA,A,A,A,A,)A,A,A,H"d*,KLLnInInInInIh'nInIMLnIb;;;;;!;;;*99999H%999"":":":":":!2":":":JzHMOOOOOsYAA
A
AA A $A>>	B
	B
<NN'&N'+OOO