
\až2c      si     k  Z   k  l l l l 	 d  d d d d d d d g Z  d  d d d d d d d g Z  d d	 d
 d d d g Z  d  d	 d d d g Z  d d d g Z	  d  d	 d d d d d d d d g
 Z
  e  i e  i d Z  h  Z  d   Z " d d d  Z H d   Z X d d  Z  d   Z  d Z » d   Z Ù e d j o Ú e   n d S(   s   ftps   https   gophers   nntps   waiss   files   prosperos    s   telnets   hdls   mailtos   newss   +-.c     s      h  a  d  S(   N(   s   _parse_cache(    s   /usr/lib/python1.4/urlparse.pys   clear_cachec   s³  " # |  | | f } $ t i |  o % t | Sn & d } } } } } ' t i |  d  }	 ( |	 d j oc ) xY |  |	  d ) r }
 * |
 t j o + Pn q W- t i |  |	   |  |	 d f \ } }  n . | t j ow / |  d  d j o_ 0 t i |  d d  }	 1 |	 d j  o 2 t |   }	 n 3 |  d |	 !|  |	 f \ } }  n n 4 | o
 | t j oN 5 t i |  d  }	 6 |	 d j o% 7 |  |	  |  |	 d f \ }  } n n 8 | t j oN 9 t i |  d	  }	 : |	 d j o% ; |  |	  |  |	 d f \ }  } n n < | t j oN = t i |  d
  }	 > |	 d j o% ? |  |	  |  |	 d f \ }  } n n @ | | |  | | | f } A | t | <B | Sd  S(   Ns    s   :i    i   i   s   //s   /s   #s   ?s   ;(   s   urls   schemes   allow_framentss   keys   _parse_caches   has_keys   netlocs   paths   paramss   querys   fragments   strings   finds   is   cs   scheme_charss   lowers   uses_netlocs   lens   uses_fragments   rfinds
   uses_querys   uses_paramss   tuple(   s   urls   schemes   allow_framentss   keys   netlocs   paths   paramss   querys   fragments   is   cs   tuples   /usr/lib/python1.4/urlparse.pys   urlparsei   c   sæ   H |  \ } } } } } } I | o: J | d  d j o J d | } n K d | | } n L | o M | d | } n N | o O | d | } n P | o Q | d | } n R | o S | d | } n T | Sd  S(   Ni   s   /s   //s   :s   ;s   ?s   #(   s   netlocs   urls   schemes   paramss   querys   fragment(   s    s   schemes   netlocs   urls   paramss   querys   fragments   /usr/lib/python1.4/urlparse.pys
   urlunparsec   sÀ  X Y |  o Z | Sn [ t |  d |  \ } } } } } } ] t | | |  \ }	 }
 } } } } a |	 | j o9 |
 o1 |	 t j o$ | t j o |	 t j o
 | t j or d | }
 f t |
 d  } g | d j  o g d } n h t |
 d |  } i | d j o j |
 |  }
 n n k |	 | j p
 |	 t j o# l t |	 |
 | | | | f  Sn n |	 t j o: o |
 o# p t |	 |
 | | | | f  Sn r | }
 n s | d  d j o# t t |	 |
 | | | | f  Sn v | o* w t |	 |
 | | | p | | f  Sn y t | d  } z | d j o { | |  d | } n | t | d  } } | d d j o ~ d | d <n  x%  d | j o  | i d  qW x  d o  d }  t |  d }  xf  | | j  oQ  | | d j o | | d o  | | d | d 5 Pn  | d } qìW PqÀW t |  d	 j o | d d j o  d g | d	 )n  t |	 |
 t | d  | | | f  Sd  S(
   Ns    s   @i    s   :i   s   /s   .s   ..i   (   s   bases   urls   urlparses   allow_framentss   bschemes   bnetlocs   bpaths   bparamss   bquerys	   bfragments   schemes   netlocs   paths   paramss   querys   fragments   uses_relatives   uses_netlocs   finds   is
   urlunparses   rfinds   splitfieldss   segmentss   removes   lens   ns
   joinfields(   s   bases   urls   allow_framentss   bschemes   bnetlocs   bpaths   bparamss   bquerys	   bfragments   schemes   netlocs   paths   paramss   querys   fragments   is   segmentss   ns   /usr/lib/python1.4/urlparse.pys   urljoinc   s]     d   t  |   \ } } } } } }  t | | | | | d f  }  | | f Sd S(   s¿   Removes any existing fragment from URL.

    Returns a tuple of the defragmented URL and the fragment.  If
    the URL contained no fragments, the second element is the
    empty string.
    s    N(
   s   urlparses   urls   ss   ns   ps   as   qs   frags
   urlunparses   defrag(   s   urls   ss   ns   ps   as   qs   frags   defrags   /usr/lib/python1.4/urlparse.pys	   urldefrags  
      http://a/b/c/d

      g:h        = <URL:g:h>
      http:g     = <URL:http://a/b/c/g>
      http:      = <URL:http://a/b/c/d>
      g          = <URL:http://a/b/c/g>
      ./g        = <URL:http://a/b/c/g>
      g/         = <URL:http://a/b/c/g/>
      /g         = <URL:http://a/g>
      //g        = <URL:http://g>
      ?y         = <URL:http://a/b/c/d?y>
      g?y        = <URL:http://a/b/c/g?y>
      g?y/./x    = <URL:http://a/b/c/g?y/./x>
      .          = <URL:http://a/b/c/>
      ./         = <URL:http://a/b/c/>
      ..         = <URL:http://a/b/>
      ../        = <URL:http://a/b/>
      ../g       = <URL:http://a/b/g>
      ../..      = <URL:http://a/>
      ../../g    = <URL:http://a/g>
      ../../../g = <URL:http://a/../g>
      ./../g     = <URL:http://a/b/g>
      ./g/.      = <URL:http://a/b/c/g/>
      /./g       = <URL:http://a/./g>
      g/./h      = <URL:http://a/b/c/g/h>
      g/../h     = <URL:http://a/b/c/h>
      http:g     = <URL:http://a/b/c/g>
      http:      = <URL:http://a/b/c/d>
c    sŽ  » Œ k  }  œ d } Ÿ |  i d oC ¿ |  i d } À | d j o Á |  i } n Ã t |  } n Å k } Æ | i t  } Ç x&Ç d oÈ | i	   } É | o É Pn Ê t i |  } Ë | o
 Ì q n Í | d } Î t |  } Ï d | | f GHÐ t | |  }	 Ñ | o Ò |	 } n Ó d |	 }
 Ô d | |
 f GHÕ t |  d j o | d d	 j o0 Ö |
 | d
 j o × d G| d
 Gd GHn n q Wd  S(   Ns    i   s   -i    s
   %-10s : %ss   <URL:%s>s
   %-10s = %si   s   =i   s   EXPECTEDs
   !!!!!!!!!!(   s   syss   bases   argvs   fns   stdins   fps   opens   StringIOs
   test_inputs   readlines   lines   strings   splits   wordss   urls   urlparses   partss   urljoins   abss   wrappeds   len(   s   syss   bases   fns   fps   StringIOs   lines   wordss   urls   partss   abss   wrappeds   /usr/lib/python1.4/urlparse.pys   tests   __main__N(   s   strings
   joinfieldss   splitfieldss   finds   rfinds   uses_relatives   uses_netlocs   non_hierarchicals   uses_paramss
   uses_querys   uses_fragments   letterss   digitss   scheme_charss   _parse_caches   clear_caches   urlparses
   urlunparses   urljoins	   urldefrags
   test_inputs   tests   __name__(    s   /usr/lib/python1.4/urlparse.pys   ?