ó
    ×›‘h;  ã                   ó`  • S r SSKrSSKJr  SSKJr  SSKJr  SSKJ	r	J
r
  SSKJrJr  SSKJr  SS	KJr  SS
KJr  SSKJrJrJr  SSKJrJr  SSKJrJrJrJrJ r J!r!J"r"J#r#J$r$   " S S\
5      r% " S S\	5      r& " S S\
5      r' " S S\
5      r( " S S\RR                  5      r* " S S\	5      r+g)z 
Tests for L{twisted.web.util}.
é    N)Údefer)ÚnetworkString)ÚFailure)ÚSynchronousTestCaseÚTestCase)ÚresourceÚutil)ÚFlattenerError)ÚFOUND)ÚRequest)Ú	TagLoaderÚflattenStringÚtags)ÚDummyChannelÚDummyRequest)	ÚDeferredResourceÚFailureElementÚParentRedirectÚ_FrameElementÚ_SourceFragmentElementÚ_SourceLineElementÚ_StackElementÚformatFailureÚ
redirectToc                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	ÚRedirectToTestsé!   z
Tests for L{redirectTo}.
c                 óD  • [        [        5       S5      nSUl        Sn[        X!5        U R	                  UR
                  [        5        U R	                  UR                  R                  S5      U/5        U R	                  UR                  R                  S5      S/5        g)zž
L{redirectTo} will set the C{Location} and C{Content-Type} headers on
its request, and set the response code to C{FOUND}, so the browser will
be redirected.
Tó   GETs   http://target.example.com/4321s   locations   content-types   text/html; charset=utf-8N)	r   r   Úmethodr   ÚassertEqualÚcoder   ÚresponseHeadersÚgetRawHeaders©ÚselfÚrequestÚ	targetURLs      Ú^C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/web/test/test_util.pyÚtest_headersAndCodeÚ#RedirectToTests.test_headersAndCode&   sŠ   € ô œ,›.¨$Ó/ˆØˆŒØ5ˆ	Ü�9Ô&Ø×Ñ˜Ÿ™¤uÔ-Ø×ÑØ×#Ñ#×1Ñ1°+Ó>ÀÀô	
ð 	×ÑØ×#Ñ#×1Ñ1°/ÓBØ(Ð)õ	
ó    c                 ót   • [        [        5       S5      nSUl        SnU R                  [        [
        X!5        g)zG
L{redirectTo} will raise TypeError if unicode object is passed in URL
Tr   zhttp://target.example.com/4321N)r   r   r    ÚassertRaisesÚ	TypeErrorr   r%   s      r)   Útest_redirectToUnicodeURLÚ)RedirectToTests.test_redirectToUnicodeURL9   s0   € ô œ,›.¨$Ó/ˆØˆŒØ4ˆ	Ø×Ñœ)¤Z°ÕDr,   c                 óZ   • [        S/5      n[        SU5      nSnU R                  X#5        g)za
Legitimate URLs are fully interpolated in the `redirectTo` response body without transformation
r,   s   https://twisted.org/sÚ   
<html>
    <head>
        <meta http-equiv="refresh" content="0;URL=https://twisted.org/">
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
    <a href="https://twisted.org/">click here</a>
    </body>
</html>
N©r   r   r!   ©r&   r'   ÚhtmlÚexpecteds       r)   Útest_legitimateRedirectÚ'RedirectToTests.test_legitimateRedirectB   s4   € ô  ˜uÓ%ˆÜÐ1°7Ó;ˆð	ˆð 	×Ñ˜Õ(r,   c                 óZ   • [        S/5      n[        SU5      nSnU R                  X#5        g)z]
Malicious URLs are HTML-escaped before interpolating them in the `redirectTo` response body
r,   s?   https://twisted.org/"><script>alert(document.location)</script>sX  
<html>
    <head>
        <meta http-equiv="refresh" content="0;URL=https://twisted.org/&quot;&gt;&lt;script&gt;alert(document.location)&lt;/script&gt;">
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
    <a href="https://twisted.org/&quot;&gt;&lt;script&gt;alert(document.location)&lt;/script&gt;">click here</a>
    </body>
</html>
Nr3   r4   s       r)   Útest_maliciousRedirectÚ&RedirectToTests.test_maliciousRedirectT   s7   € ô  ˜uÓ%ˆÜØNÐPWó
ˆð	ˆð 	×Ñ˜Õ(r,   © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r*   r0   r7   r:   Ú__static_attributes__r<   r,   r)   r   r   !   s   † ñò
ò&Eò)õ$)r,   r   c                   ó<   • \ rS rSrSrS\S\4S jrS rS rS r	S	r
g
)ÚParentRedirectTestséi   z
Test L{ParentRedirect}.
ÚrequestPathÚreturnc                 ó  • [        [        5       S5      nSUl        UR                  S5      R	                  S5      Ul        [        5       nUR                  " U5        UR                  R                  S5      nUc   eUu  nU$ )z©
Render a response to a request with path *requestPath*

@param requestPath: A slash-separated path like C{b'/foo/bar'}.

@returns: The value of the I{Location} header.
Tr   ó   /s   Location)
r   r   r    ÚlstripÚsplitÚprepathr   Úrenderr#   r$   )r&   rF   r'   r   ÚheadersÚlocations         r)   ÚdoLocationTestÚ"ParentRedirectTests.doLocationTestn   sx   € ô œ,›.¨$Ó/ˆØˆŒØ%×,Ñ,¨TÓ2×8Ñ8¸Ó>ˆŒä!Ó#ˆØ�Š˜Ô à×)Ñ)×7Ñ7¸ÓDˆØÑ"Ð"Ð"Ø‰
ˆØˆr,   c                 óˆ   • U R                  SU R                  S5      5        U R                  SU R                  S5      5        g)zQ
At the URL root issue a redirect to the current URL, removing any query
string.
ó   http://10.0.0.1/rI   s   /?biff=baffN©r!   rP   ©r&   s    r)   Útest_locationRootÚ%ParentRedirectTests.test_locationRoot‚   s<   € ð
 	×ÑÐ,¨d×.AÑ.AÀ$Ó.GÔHØ×ÑÐ,¨d×.AÑ.AÀ.Ó.QÕRr,   c                 óˆ   • U R                  SU R                  S5      5        U R                  SU R                  S5      5        g)z\
A request for a resource one level down from the URL root produces
a redirect to the root.
rS   s   /foos   /foo?bar=sproiiingNrT   rU   s    r)   Útest_locationToRootÚ'ParentRedirectTests.test_locationToRootŠ   s?   € ð
 	×ÑÐ,¨d×.AÑ.AÀ'Ó.JÔKØ×ÑØ ×!4Ñ!4Ð5JÓ!Kõ	
r,   c                 óÊ   • U R                  SU R                  S5      5        U R                  SU R                  S5      5        U R                  SU R                  S5      5        g)zX
Requests for resources directly under the path C{/foo/} produce
redirects to C{/foo/}.
s   http://10.0.0.1/foo/s   /foo/s   /foo/bars   /foo/bar?biz=bazNrT   rU   s    r)   Útest_locationUpOneÚ&ParentRedirectTests.test_locationUpOne”   s[   € ð
 	×ÑÐ0°$×2EÑ2EÀhÓ2OÔPØ×ÑÐ0°$×2EÑ2EÀkÓ2RÔSØ×ÑØ# T×%8Ñ%8Ð9LÓ%Mõ	
r,   r<   N)r=   r>   r?   r@   rA   ÚbytesrP   rV   rY   r\   rB   r<   r,   r)   rD   rD   i   s*   † ñð¨%ð °Eô ò(Sò
õ	
r,   rD   c                   óZ   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)ÚFailureElementTestsé    zb
Tests for L{FailureElement} and related helpers which can render a
L{Failure} as an HTML string.
c                 óÎ   • S nUR                   R                  S-   U l         U" 5         g! [         a/    [	        SS9U l        U R
                  R                  S   U l         gf = f)z?
Create a L{Failure} which can be used by the rendering tests.
c                  ó   • Sn [        U 5      e)NzThis is a problem)Ú	Exception)Úmessages    r)   ÚlineNumberProbeAlsoBrokenÚ<FailureElementTests.setUp.<locals>.lineNumberProbeAlsoBroken«   s   € Ø)ˆGÜ˜GÓ$Ð$r,   é   T)ÚcaptureVarséÿÿÿÿN)Ú__code__Úco_firstlinenoÚbaseÚBaseExceptionr   ÚfailureÚframesÚframe)r&   rf   s     r)   ÚsetUpÚFailureElementTests.setUp¦   s]   € ò
	%ð
 .×6Ñ6×EÑEÈÑIˆŒ	ð	1Ù%Õ'øÜó 	1Ü"¨tÑ4ˆDŒLØŸ™×,Ñ,¨RÑ0ˆDŽJð	1ús   £+ «6A$Á#A$c                 ó  • [        [        [        R                  " [        R                  " SS9[        R                  " SS95      5      SS5      n[        SU5      nSnUR                  U R                  UR                  S5      5        U$ )	z>
L{_SourceLineElement} renders a source line and line number.
Ú
lineNumber©rM   Ú
sourceLineé2   z    print 'hello'Nu:   <div><span>50</span><span> Â  Â print 'hello'</span></div>zutf-8)	r   r   r   ÚdivÚspanr   ÚaddCallbackr!   Úencode)r&   ÚelementÚdr6   s       r)   Útest_sourceLineElementÚ*FailureElementTests.test_sourceLineElement¸   s{   € ô %ÜÜ—’œŸš¨,Ñ7¼¿ºÈ,Ñ9WÓXóð Øó
ˆô ˜$ Ó(ˆðOð 	ð 	
�‰�d×&Ñ&¨¯©¸Ó(@ÔAØˆr,   c                 ó  • [        [        [        R                  " [        R                  " SS9[        R                  " SS9SS95      U R
                  5      n/ SQn[        SU5      nSn[        U5       Ha  u  pVSnUS	::  a/  XGR                  SS
/US	:H     U R                  U-   SU-   5      -  nM<  XGR                  SU R                  U-   SU-   5      -  nMc     UR                  S5      nUR                  U R                  U5        U$ )zk
L{_SourceFragmentElement} renders source lines at and around the line
number indicated by a frame object.
ru   rv   rw   ÚsourceLines)u#    Â  Â message = "This is a problem"u    Â  Â raise Exception(message)Ú Nrƒ   z?<div class="snippet{}Line"><span>{}</span><span>{}</span></div>rh   Ú	Highlightu    Â  Â  Â  Â Úutf8)r   r   r   ry   rz   rq   r   Ú	enumerateÚformatrm   r|   r{   r!   )	r&   r}   Úsourcer~   ÚstringToCheckForru   rw   ÚtemplateÚbytesToCheckFors	            r)   Útest_sourceFragmentElementÚ.FailureElementTests.test_sourceFragmentElementË   s  € ô
 )ÜÜ—’Ü—I’I \Ñ2Ü—I’I \Ñ2Ø(ñóð �J‰Jó	
ˆò
ˆô
 ˜$ Ó(ˆàÐÜ&/°Ö&7Ñ"ˆJØXˆHØ˜Q‹Ø §O¡OØ˜Ð% j°A¡oÑ6Ø—I‘I 
Ñ*Ø.°Ñ;ó%ñ Ò ð !§O¡OØ˜Ÿ	™	 JÑ.°°j±ó%ñ Ò ñ '8ð +×1Ñ1°&Ó9ˆà	�‰�d×&Ñ&¨Ô8Øˆr,   c           	      óü   • [        [        [        R                  " SS95      U R                  5      n[        SU5      nUR                  U R                  S[        [        R                  S5      5      -   S-   5        U$ )z�
The I{filename} renderer of L{_FrameElement} renders the filename
associated with the frame object used to initialize the
L{_FrameElement}.
Úfilenamerv   Nó   <span>Úcó   </span>)r   r   r   rz   rq   r   r{   r!   r   Ú__file__Úrstrip©r&   r}   r~   s      r)   Útest_frameElementFilenameÚ-FailureElementTests.test_frameElementFilenameõ   sg   € ô  ¤	¬$¯)ª)¸:Ñ*FÓ GÈÏÉÓTˆÜ˜$ Ó(ˆØ	�‰ð ×ÑØœ¤h§o¡o°cÓ&:Ó;Ñ;¸jÑHô		
ð ˆr,   c                 óÚ   • [        [        [        R                  " SS95      U R                  5      n[        SU5      nUR                  U R                  SU R                  S-   4-  5        U$ )z’
The I{lineNumber} renderer of L{_FrameElement} renders the line number
associated with the frame object used to initialize the
L{_FrameElement}.
ru   rv   Ns   <span>%d</span>rh   )	r   r   r   rz   rq   r   r{   r!   rm   r•   s      r)   Útest_frameElementLineNumberÚ/FailureElementTests.test_frameElementLineNumber  sX   € ô  ¤	¬$¯)ª)¸<Ñ*HÓ IÈ4Ï:É:ÓVˆÜ˜$ Ó(ˆØ	�‰�d×&Ñ&Ð(:¸d¿i¹iÈ!¹mÐ=MÑ(MÔNØˆr,   c                 ó¸   • [        [        [        R                  " SS95      U R                  5      n[        SU5      nUR                  U R                  S5        U$ )z�
The I{function} renderer of L{_FrameElement} renders the line number
associated with the frame object used to initialize the
L{_FrameElement}.
Úfunctionrv   Ns&   <span>lineNumberProbeAlsoBroken</span>)r   r   r   rz   rq   r   r{   r!   r•   s      r)   Útest_frameElementFunctionÚ-FailureElementTests.test_frameElementFunction  sH   € ô  ¤	¬$¯)ª)¸:Ñ*FÓ GÈÏÉÓTˆÜ˜$ Ó(ˆØ	�‰�d×&Ñ&Ð(QÔRØˆr,   c                 ó\  • [        SU R                  5      nUR                  S5      n[        R                  " 5       nU" SU5      nU R                  U[        5        U R                  UR                  U R                  5        U R                  U/UR                  R                  5       5        g)z³
The I{source} renderer of L{_FrameElement} renders the source code near
the source filename/line number associated with the frame object used to
initialize the L{_FrameElement}.
Nrˆ   )r   rq   ÚlookupRenderMethodr   ry   ÚassertIsInstancer   ÚassertIdenticalr!   ÚloaderÚload©r&   r}   ÚrendererÚtagÚresults        r)   Útest_frameElementSourceÚ+FailureElementTests.test_frameElementSource  sƒ   € ô    d§j¡jÓ1ˆØ×-Ñ-¨hÓ7ˆÜ�hŠh‹jˆÙ˜$ Ó$ˆØ×Ñ˜fÔ&<Ô=Ø×Ñ˜VŸ\™\¨4¯:©:Ô6Ø×Ñ˜#˜ §¡× 2Ñ 2Ó 4Õ5r,   c                 óÖ  • [        SU R                  R                  SS 5      nUR                  S5      n[        R
                  " 5       nU" SU5      nU R                  U[        5        U R                  US   [        5        U R                  US   R                  U R                  R                  S   5        U R                  US   [        5        U R                  US   R                  U R                  R                  S   5        U R                  US   R                  R                  5       US   R                  R                  5       5        U R                  S[        U5      5        g)z„
The I{frames} renderer of L{_StackElement} renders each stack frame in
the list of frames used to initialize the L{_StackElement}.
Né   rp   r   rh   )r   ro   rp   r    r   ry   r¡   Úlistr   r¢   rq   ÚassertNotEqualr£   r¤   r!   Úlenr¥   s        r)   Útest_stackElementÚ%FailureElementTests.test_stackElement)  s  € ô
    d§l¡l×&9Ñ&9¸"¸1Ð&=Ó>ˆØ×-Ñ-¨hÓ7ˆÜ�hŠh‹jˆÙ˜$ Ó$ˆØ×Ñ˜f¤dÔ+Ø×Ñ˜f Q™i¬Ô7Ø×Ñ˜V A™YŸ_™_¨d¯l©l×.AÑ.AÀ!Ñ.DÔEØ×Ñ˜f Q™i¬Ô7Ø×Ñ˜V A™YŸ_™_¨d¯l©l×.AÑ.AÀ!Ñ.DÔEà×Ñ˜F 1™I×,Ñ,×1Ñ1Ó3°V¸A±Y×5EÑ5E×5JÑ5JÓ5LÔMØ×Ñ˜œC ›KÕ(r,   c                 ón  • [        U R                  5      nUR                  S5      n[        R                  " 5       nU" SU5      nU R                  U[        5        U R                  UR                  U R                  R                  5        U R                  U/UR                  R                  5       5        g)zk
The I{traceback} renderer of L{FailureElement} renders the failure's
stack frames using L{_StackElement}.
Ú	tracebackN)r   ro   r    r   ry   r¡   r   r¢   ÚstackFramesrp   r!   r£   r¤   r¥   s        r)   Útest_failureElementTracebackÚ0FailureElementTests.test_failureElementTraceback;  sˆ   € ô
 ! §¡Ó.ˆØ×-Ñ-¨kÓ:ˆÜ�hŠh‹jˆÙ˜$ Ó$ˆØ×Ñ˜f¤mÔ4Ø×Ñ˜V×/Ñ/°·±×1DÑ1DÔEØ×Ñ˜#˜ §¡× 2Ñ 2Ó 4Õ5r,   c           	      óÈ   • [        U R                  [        [        R                  " SS95      5      n[        SU5      nSnUR                  U R                  SU-   S-   5        U$ )zQ
The I{type} renderer of L{FailureElement} renders the failure's
exception type.
Útyperv   Ns   builtins.Exceptionr�   r’   ©r   ro   r   r   rz   r   r{   r!   )r&   r}   r~   Úexcs       r)   Útest_failureElementTypeÚ+FailureElementTests.test_failureElementTypeH  sU   € ô
 ! §¡¬y¼¿ºÈ&Ñ9QÓ/RÓSˆÜ˜$ Ó(ˆØ#ˆØ	�‰�d×&Ñ&¨	°C©¸*Ñ(DÔEØˆr,   c           	      ó¸   • [        U R                  [        [        R                  " SS95      5      n[        SU5      nUR                  U R                  S5        U$ )zQ
The I{value} renderer of L{FailureElement} renders the value's exception
value.
Úvaluerv   Ns   <span>This is a problem</span>r¹   r•   s      r)   Útest_failureElementValueÚ,FailureElementTests.test_failureElementValueS  sH   € ô
 ! §¡¬y¼¿ºÈ'Ñ9RÓ/SÓTˆÜ˜$ Ó(ˆØ	�‰�d×&Ñ&Ð(IÔJØˆr,   )rm   ro   rq   N)r=   r>   r?   r@   rA   rr   r   rŒ   r–   r™   r�   r©   r°   rµ   r»   r¿   rB   r<   r,   r)   r`   r`       s?   † ñò
1ò$ò&(òTò 	ò	ò6ò)ò$6ò	õr,   r`   c                   ó$   • \ rS rSrSrS rS rSrg)ÚFormatFailureTestsi^  z}
Tests for L{twisted.web.util.formatFailure} which returns an HTML string
representing the L{Failure} instance passed to it.
c                 óJ   • U R                  [        [        [        5       5        g)ze
If there is an error flattening the L{Failure} instance,
L{formatFailure} raises L{FlattenerError}.
N)r.   r
   r   ÚobjectrU   s    r)   Útest_flattenerErrorÚ&FormatFailureTests.test_flattenerErrord  s   € ð
 	×Ñœ.¬-¼»ÕBr,   c                 óô   •  [        S5      e! [         a    [        [        5       5      n Of = fU R	                  U[
        5        U R                  [        S U 5       5      5        U R                  SU5        g)zµ
The return value of L{formatFailure} is a C{str} instance (not a
C{unicode} instance) with numeric character references for any non-ASCII
characters meant to appear in the output.
zFake bugc              3   ó*   #   • U  H	  oS :  v •  M     g7f)é€   Nr<   )Ú.0Úchs     r)   Ú	<genexpr>Ú7FormatFailureTests.test_returnsBytes.<locals>.<genexpr>w  s   é € Ð6ªv¨ žHªvùs   ‚s   &#160;N)	rd   rn   r   r   r¡   r^   Ú
assertTrueÚallÚassertIn)r&   r¨   s     r)   Útest_returnsBytesÚ$FormatFailureTests.test_returnsBytesk  sd   € ð	.Ü˜JÓ'Ð'øÜó 	.Ü"¤7£9Ó-ŠFð	.úð 	×Ñ˜f¤eÔ,Ø�‰œÑ6©vÓ6Ó6Ô7à�‰�i Õ(s   ‚ �-¬-r<   N)r=   r>   r?   r@   rA   rÅ   rÑ   rB   r<   r,   r)   rÂ   rÂ   ^  s   † ñò
Cõ)r,   rÂ   c                   ó    • \ rS rSrS rS rSrg)Ú
SDResourcei|  c                 ó   • Xl         g ©N©Údefault)r&   rØ   s     r)   Ú__init__ÚSDResource.__init__}  s   € Ø�r,   c                 ó’   • [         R                  " U R                  5      n[        R                  " U5      nUR
                  " X5      $ rÖ   )r   ÚsucceedrØ   r	   r   ÚgetChildWithDefault)r&   Únamer'   r~   r   s        r)   rÝ   ÚSDResource.getChildWithDefault€  s5   € Ü�MŠM˜$Ÿ,™,Ó'ˆÜ×(Ò(¨Ó+ˆØ×+Ò+¨DÓ:Ð:r,   r×   N)r=   r>   r?   r@   rÙ   rÝ   rB   r<   r,   r)   rÔ   rÔ   |  s   † òõ;r,   rÔ   c                   ó*   • \ rS rSrSrS rS rS rSrg)ÚDeferredResourceTestsi†  z 
Tests for L{DeferredResource}.
c                 óÔ   • [         R                  " 5       nSUl        [        U5      n[	        / SQ5      n[         R
                  " X#5        U R                  UR                  SS/5        g )Nrh   )ÚfooÚbarÚbazrä   rå   )r   ÚResourceÚisLeafrÔ   r   ÚgetChildForRequestr!   Úpostpath)r&   ÚrÚsr~   s       r)   ÚtestDeferredResourceÚ*DeferredResourceTests.testDeferredResource‹  sQ   € Ü×ÒÓˆØˆŒÜ�q‹MˆÜÒ.Ó/ˆÜ×#Ò# AÔ)Ø×Ñ˜Ÿ™ e¨U ^Õ4r,   c                 óî   • / n[        / 5      nUR                  Ul        [        R                  " 5       n[        [        R                  " U5      5      nUR                  U5        U R                  X/5        g)z�
L{DeferredResource} uses the request object's C{render} method to
render the resource which is the result of the L{Deferred} being
handled.
N)	r   ÚappendrM   r   ræ   r   r   rÜ   r!   )r&   Úrenderedr'   r¨   ÚdeferredResources        r)   Útest_renderÚ!DeferredResourceTests.test_render“  s^   € ð ˆÜ˜rÓ"ˆØ!Ÿ™ˆŒä×"Ò"Ó$ˆÜ+¬E¯MªM¸&Ó,AÓBÐØ×Ñ Ô(Ø×Ñ˜ 8Õ,r,   c                 ó|  • [        / 5      nUR                  5       n[        [        5       5      n[	        [
        R                  " U5      5      nUR                  U5        U R                  U R                  U5      U5        A[        R                  " 5         U R                  [        5      nU R                  U/ 5        g)z�
If the L{Deferred} fails, L{DeferredResource} reports the failure via
C{processingFailed}, and does not cause an unhandled error to be
logged.
N)r   ÚnotifyFinishr   ÚRuntimeErrorr   r   ÚfailrM   r!   ÚfailureResultOfÚgcÚcollectÚflushLoggedErrors)r&   r'   r~   ro   rñ   Úerrorss         r)   Útest_renderNoFailureÚ*DeferredResourceTests.test_renderNoFailure¢  s‘   € ô ˜rÓ"ˆØ× Ñ Ó"ˆÜœ,›.Ó)ˆÜ+¬E¯JªJ°wÓ,?Ó@ÐØ×Ñ Ô(Ø×Ñ˜×-Ñ-¨aÓ0°'Ô:ØÜ
�
Š
ŒØ×'Ñ'¬Ó5ˆØ×Ñ˜ Õ$r,   r<   N)	r=   r>   r?   r@   rA   rì   rò   rý   rB   r<   r,   r)   rá   rá   †  s   † ñò5ò-õ%r,   rá   ),rA   rù   Útwisted.internetr   Útwisted.python.compatr   Útwisted.python.failurer   Útwisted.trial.unittestr   r   Útwisted.webr   r	   Útwisted.web.errorr
   Útwisted.web.httpr   Útwisted.web.serverr   Útwisted.web.templater   r   r   Útwisted.web.test.requesthelperr   r   Útwisted.web.utilr   r   r   r   r   r   r   r   r   r   rD   r`   rÂ   ræ   rÔ   rá   r<   r,   r)   Ú<module>r
     s–   ðñó 
å "Ý /Ý *ß @ß &Ý ,Ý "Ý &ß ?Ñ ?ß E÷
÷ 
õ 
ôE)�hô E)ôP4
Ð-ô 4
ôn{˜(ô {ô|)˜ô )ô<;�×"Ñ"ô ;ô+%Ð/õ +%r,   