.
52c      s)     k  Z   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 g Z  d  d d g Z  d d d g Z  d  d d d
 d d d d d g	 Z  e  i e  i d Z	   d d d  Z
 E d   Z U d d  Z  d Z ° d   Z Î e d j o Ï e   n d S(   s   ftps   https   gophers   nntps   waiss   files   prosperos    s   telnets   mailtos   newss   +-.c 
  s}    ! d } " d } # d } $ d } % d } & t i |  d  } ' | d j oc ( xY |  |  d ( r }	 ) |	 t
 j o * Pn qe W, t i |  |   |  | d f \ } }  n - | t j ow . |  d  d j o_ / t i |  d d  } 0 | d j  o 1 t |   } n 2 |  d | !|  | f \ } }  n n 3 | o
 | t j oN 4 t i |  d  } 5 | d j o% 6 |  |  |  | d f \ }  } n n 7 | t j oN 8 t i |  d	  } 9 | d j o% : |  |  |  | d f \ }  } n n ; | t j oN < t i |  d
  } = | d j o% > |  |  |  | d f \ }  } n n ? | | |  | | | f Sd  S(   Ns    s   :i    i   i   s   //s   /s   #s   ?s   ;(   s   netlocs   paths   paramss   querys   fragments   strings   finds   urls   is   cs   scheme_charss   lowers   schemes   uses_netlocs   lens   allow_framentss   uses_fragments   rfinds
   uses_querys   uses_params(
   s   urls   schemes   allow_framentss   netlocs   paths   paramss   querys   fragments   is   cs   /usr/lib/python/urlparse.pys   urlparsei   c   sæ   E |  \ } } } } } } F | o: G | d  d j o G d | } n H d | | } n I | o J | d | } n K | o L | d | } n M | o N | d | } n O | o P | d | } n Q | 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/python/urlparse.pys
   urlunparsec   sò  U V |  o W | Sn X t |  d |  \ } } } } } } Z t | | |  \ }	 }
 } } } } ^ |	 | j o9 |
 o1 |	 t j o$ | t j o |	 t j o
 | t j ox a | }
 c t i |
 d  } d | d j  o d d } n e t i |
 d |  } f | d j o g |
 |  }
 n n h |	 | j p
 |	 t j o# i t |	 |
 | | | | f  Sn k |	 t j o: l |
 o# m t |	 |
 | | | | f  Sn o | }
 n p | d  d j o# q t |	 |
 | | | | f  Sn s | oD t | } u | o v | } n w t |	 |
 | | | | f  Sn y t i | d  } z | d j o { | |  d | } n | t i | 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 i | d  }  t |	 |
 | | | | 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   strings   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/python/urlparse.pys   urljoins  
      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/python/urlparse.pys   tests   __main__N(   s   strings   uses_relatives   uses_netlocs   non_hierarchicals   uses_paramss
   uses_querys   uses_fragments   letterss   digitss   scheme_charss   urlparses
   urlunparses   urljoins
   test_inputs   tests   __name__(    s   /usr/lib/python/urlparse.pys   ?