‡Æ
GDó9c       sŒ    d  Z  # % d Z ' d Z ) d k Z d k Z d k Z * d k l Z , d Z - d Z . d Z	 0 d f  d	 „  ƒ  YZ
 ‰ d
 f  d „  ƒ  YZ ° d „  Z Ð d Z Ñ e i d ƒ Z Ø d Z Ú d „  Z è d „  Z î d „  Z d „  Z d „  Z ,d „  Z 0d Z 2d „  Z :d „  Z Xh  d d „ Z ˆd „  Z ”h  d „ Z œd e f d „  ƒ  YZ ªd f  d  „  ƒ  YZ d S(!   s¬  Registries.

An option registry is a sort of multi-leveled, sectioned dictionary.
Instead of a single key, the contents of a Registry are organized by
two keys: section and option key.  A Registry is thus organized
appropriately for use with INI-style configuration files, and that
is in fact the format read by this module.

A Registry is actually a stack, so that an application can read multiple
configuration files and still be able to retain information about which
files contained what options.  When an option is looked up in the Registry,
the topmost instance of it is returned.  Each Registry level has a label
attribute which can be used for whatever the application wants.
s4   $Id: Registry.py,v 1.4 1999/12/04 22:08:22 rob Exp $s.   Copyright 1999 Rob Tillotson <robt@debian.org>N(   s   UserDicts	   ^\[(.*)\]s   ^([^ 	=]+)\s*=\s*(.*)$s   ^#s   OldRegistryLevelc      sw   0 1 e  d „ Z 6 d „  Z ? d „  Z U d „  Z X d „  Z a d „  Z k d „  Z q e  d „ Z } d	 „  Z	 RS(
   Nc    s+   1 2 h  |  _ 3 | |  _ 4 d |  _ d  S(   Ni    (   s   selfs   datas   labels   case_sensitive(   s   selfs   labelsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   __init__1 s   c  	  sŸ   6 7 d } 8 x‚ |  i i ƒ  d 8 rl } 9 | d | } : xB |  i | i ƒ  d : r( } ; | d | |  i | | f } qT W< | d } q! W= | Sd  S(   Ns    i    s   [%s]
s   %s = %s
s   
(   s   ss   selfs   datas   keyss   ks   l(   s   selfs   ss   ks   lsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   __str__6 s   	 	 	&c    s°  ? @ t  | ƒ t  d ƒ j o @ t | d ƒ } n B t } C xht t i | i ƒ  ƒ d C rI} D | p t
 i t | ƒ o
 E q\ n G t
 i t | ƒ } H | ot I |  i o I t i | i d ƒ ƒ } n J | i d ƒ } K |  i i | ƒ o K h  |  i | <n L q\ n N t
 i t | ƒ } O | oi P |  i o P t i | i d ƒ ƒ } n Q | i d ƒ } R | i d ƒ } S | |  i | | <n q\ Wd  S(   Ns    s   ri    i   i   (   s   types   fs   opens   Nones   secs   maps   strings   strips	   readliness   ls   res   matchs
   rx_comments
   rx_sections   ms   selfs   case_sensitives   lowers   groups   datas   has_keys   rx_variables   ns   v(   s   selfs   fs   secs   ls   ms   ns   vsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   load? s,    	 	

  

 c    s#   U V |  i i t i | ƒ ƒ Sd  S(   N(   s   selfs   datas   has_keys   strings   lowers   k(   s   selfs   ksF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   has_sectionU s   c    sv   X Y |  i o( Z t i | ƒ } [ t i | ƒ } n ] | } ^ | } _ |  i | ƒ o |  i	 | i
 | ƒ Sd  S(   N(   s   selfs   case_sensitives   strings   lowers   secs   ss   vars   vs   has_sections   datas   has_key(   s   selfs   secs   vars   ss   vsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   has_keyX s   		c    sz   a b |  i o( c t i | ƒ } d t i | ƒ } n f | } g | } h |  i | | ƒ o i |  i	 | | =n d  S(   N(
   s   selfs   case_sensitives   strings   lowers   secs   ss   vars   vs   has_keys   data(   s   selfs   secs   vars   ss   vsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   del_keya s   		c    s[   k l |  i o l t i | ƒ } n
 m | } n |  i i | ƒ o o |  i | =n d  S(   N(   s   selfs   case_sensitives   strings   lowers   secs   ss   datas   has_key(   s   selfs   secs   ssF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   del_sectionk s
    	c    sˆ   q r y^ s |  i o( t t i | ƒ } u t i | ƒ } n w | } x | } y |  i | | SWn z t	 j
 o { | Sn Xd  S(   N(   s   selfs   case_sensitives   strings   lowers   secs   ss   vars   vs   datas   KeyErrors   default(   s   selfs   secs   vars   defaults   ss   vsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   getq s   		c    sŽ   } ~ |  i o(  t i | ƒ } € t i | ƒ } n ‚ | } ƒ | } „ |  i i	 | ƒ o … h  |  i | <n † | |  i | | <d  S(   N(   s   selfs   case_sensitives   strings   lowers   secs   ss   vars   vs   datas   has_keys   value(   s   selfs   secs   vars   values   ss   vsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   set} s   		(
   s   Nones   __init__s   __str__s   loads   has_sections   has_keys   del_keys   del_sections   gets   set(    sF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   OldRegistryLevel0 s   		
s   OldRegistryc      st   ‰ Š d Z  ‹ d „  Z  d „  Z ’ d „  Z — e d „ Z Ÿ d „  Z ¢ d „  Z ¦ d „  Z ª e d	 „ Z	 RS(
   Ni   c    s   ‹ Œ g  |  _  t |  _ d  S(   N(   s   selfs   datas   OldRegistryLevels
   base_class(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   __init__‹ s   c    s     |  i i | ƒ d  S(   N(   s   selfs   datas   appends   r(   s   selfs   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   push s   c    s-   ’ “ |  i d } ” |  i d =• | Sd  S(   Ni   (   s   selfs   datas   r(   s   selfs   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   pop’ s   c    sP   — ˜ |  i | ƒ } ™ y š | i | ƒ Wn › œ n X |  i | ƒ d  S(   N(   s   selfs
   base_classs   labels   rs   loads   fs   push(   s   selfs   fs   labels   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   load— s   c    s   Ÿ   |  i d i Sd  S(   Ni   (   s   selfs   datas   label(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   labelŸ s   c    s5   ¢ £ t  t i t | d „ ¤ |  i ƒ ¤ d ƒ Sd  S(   Nc    s   £ |  i | ƒ S(   N(   s   xs   has_sections   k(   s   xs   ksF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>£ s    i    (   s   reduces   operators   or_s   maps   keys   selfs   data(   s   selfs   keysF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   has_section¢ s    c    s8   ¦ § t  t i t | | d „ ¨ |  i ƒ ¨ d ƒ Sd  S(   Nc    s   § |  i | | ƒ S(   N(   s   xs   has_keys   ss   v(   s   xs   ss   vsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>§ s    i    (   s   reduces   operators   or_s   maps   secs   vars   selfs   data(   s   selfs   secs   varsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   has_key¦ s    c    s&   ª « t  | | d „ |  i | ƒ Sd  S(   Nc    s   « | i | | |  ƒ S(   N(   s   xs   gets   ss   vs   d(   s   ds   xs   ss   vsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>« s    (   s   reduces   secs   vars   selfs   datas   default(   s   selfs   secs   vars   defaultsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   getª s   (
   s   is_registrys   __init__s   pushs   pops   Nones   loads   labels   has_sections   has_keys   get(    sF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   OldRegistry‰ s   	c  	  s»  ° ± t  |  ƒ t  d ƒ j o ± t |  d ƒ }  n ² g  } ´ d } µ x9t t i |  i ƒ  ƒ d µ r} ¶ | p t
 i t | ƒ o
 · qe n ¹ t
 i t | ƒ } º | oN » | o » | i d ƒ n
 ¼ d } ½ | i | i d ƒ d ƒ ¾ qe n À t
 i t | ƒ } Á | o` Â | i d ƒ } Ã | i d ƒ } Ä | i d t i | d	 d
 ƒ t i | d d ƒ f ƒ n qe WÇ | o Ç | i d ƒ n È t i | d ƒ Sd  S(   Ns    s   ri    s   };

i   s    {
i   s     %s "%s";
s   .s   ::s   "s   \"s   };
(   s   types   fs   opens   os   havesecs   maps   strings   strips	   readliness   ls   res   matchs
   rx_comments
   rx_sections   ms   appends   groups   rx_variables   ns   vs   replaces   join(   s   fs   os   havesecs   ls   ms   ns   vsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   convert_config_file° s.    		 	


 	

@
 s%   (?ms)(?:^\s*\/\/.*?$)|(?:\/\*.*?\*\/)så   (?xis)(
		    (?:"")|(?:".*?[^\\]")                               # string
		  | \{ | \} | ;                                       # various tokens
		  | (?:\/\/.*?\
)|(?:\/\*.*?\*\/)
		  | (?:[^" 	
\{\};][^ 	
\{\};]*)
		  )
		  s   ::c    st   Ú à á t  i t i t |  ƒ d ƒ }  â t i t |  ƒ } ã t d „  ä t	 d „  å | t
 t | ƒ ƒ ƒ ƒ Sd S(   sÜ   Tokenize a string.

    Returns a list of tokens, each one a string.  Tokenization is
    based on a regular expression (_tokenize_re); the string is
    processed with re.split, and all of the matches are returned.
    s    c    s   ã |  t j	 o |  d d j S(   Ni    s   /(   s   xs   None(   s   xsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>ã s    c    s   ä | d o |  p t S(   Ni   (   s   ys   xs   None(   s   xs   ysF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>ä s    N(   s   strings   joins   res   splits   _comment_res   ss   _tokenize_res   ls   filters   maps   ranges   len(   s   ss   lsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   tokenizeÚ s   !c    sN   è ê ë |  o |  d d j o" ë t i |  d d !d d ƒ Sn ì |  Sd S(   s3   Convert a quoted string to an unquoted string.
    i    s   "i   s   \"N(   s   ss   strings   replace(   s   ssF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   unquote_stringè s    "c    s´   î ö ÷ | o  ø t i | | d  t ƒ } ù | d } û |  i | ƒ oP ü t	 |  | ƒ t	 g  ƒ j o ü |  | g |  | <n ý |  | i
 | ƒ n ÿ | |  | <n d S(   sa  Assignment helper function for parser.

    Given a base path and list of tokens, assigns the value to the
    specified entry below the path (that is, for tokens 0 ... n,
    tokens 0 ... n-1 are assumed to specify additional path components,
    and token n is assumed to be a value.  Multiple values at the
    same path are converted to a list.
    i   N(   s   tokenss   strings   joins   paths	   _path_seps   ps   values   dicts   has_keys   types   append(   s   dicts   paths   tokenss   ps   valuesF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   assign_valueî s   
  c    s¬   	g  } 
g  } x_ |  d rR } | d d d g j o | i | ƒ n  | i | | f ƒ g  } q$ W| o | i | t f ƒ n | Sd S(   sõ   Split a token list by delimiters.

    Finds the delimiters used in parsing ({, }, and ;) and returns
    pairs of (token-list, delimiter), where the token-list is a
    list of tokens which came between the last delimiter and this
    one.
    i    s   {s   }s   ;N(   s   ms   accs   ls   xs   appends   None(   s   ls   ms   accs   xsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   delim_splits   		 	
c    s  g  } h  } xò t t |  ƒ ƒ d rÙ \ } }  | o  t t | ƒ } n "| d j p | o% #| o #t	 | | | ƒ n nq $| d j o0 %| o %t	 | | | ƒ n &| d =n1 '| d j o  (| i
 t i | t ƒ ƒ n q0 W*| Sd S(   sv   Main parsing function.

    Parses a configuration string and returns a dictionary representing
    its contents.
    i    s   ;s   }i   s   {N(   s   paths   dicts   delim_splits   tokenizes   ss   ts   ds   maps   unquote_strings   assign_values   appends   strings   joins	   _path_sep(   s   ss   paths   dicts   ts   dsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   parses"   		 
 
 
 $c    sI   ,-t  |  ƒ t  d ƒ j o -t |  ƒ }  n .t |  i ƒ  ƒ Sd  S(   Ns    (   s   types   fs   opens   parses   read(   s   fsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys	   parsefile,s    s@   abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_c    sš   23t  |  ƒ } 4| d j o
 | d j o 4|  Sn] 5| d j o 5d SnB 6| d j o 6d Sn' 7| d j o 7d Sn 8d	 | Sd  S(
   Ni    i~   i	   s   \ti
   s   \ni   s   \rs   \%03o(   s   ords   ss   o(   s   ss   osF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys	   quotechar2s       c    s‰   :;t  |  ƒ t  d ƒ j o ;|  Sn <|  o <d Sn =t d „  |  ƒ o( >d t i t t |  ƒ d ƒ d Sn ?|  Sd  S(   Ns    s   ""c    s   =|  t j S(   N(   s   xs   _achars(   s   xsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>=s    s   "(   s   types   ss   filters   strings   joins   maps	   quotechar(   s   ssF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   maybe_quote:s     (c    s	  XY| GHZg  } [|  i ƒ  } \| i ƒ  ^| i | ƒ o’ _| | i d g  ƒ } `| ok axH | d ar: } b| | j o b| i
 | ƒ n c| i
 | ƒ qs Wd| | } ed G| GHn n gx#| d gr} h|  | } it | ƒ t h  ƒ j oDj| o | d | p | }	 k| i |	 ƒ o | |	 i d d ƒ o’l| i ƒ  }
 m|
 i ƒ  nxl|
 d nr_} o| | } pt | ƒ t h  ƒ j ox q| i d t | ƒ t | ƒ f ƒ r| t d „  t | | s|	 o |	 d | p | ƒ ƒ } t| i d ƒ n¹ ut | ƒ t g  ƒ j om v| i d	 t | ƒ t | ƒ f ƒ wx- | d wr  } w| i d
 t | ƒ ƒ q|Wx| i d ƒ n0 z| i d t | ƒ t | ƒ t | ƒ f ƒ q„Wnf }| i d t | ƒ ƒ ~| t d „  t | | | o | d | p | ƒ ƒ } | i d ƒ n¤ €t | ƒ t g  ƒ j oa | i d t | ƒ ƒ ‚x- | d ‚r  } ‚| i d
 t | ƒ ƒ q™Wƒ| i d ƒ n' …| i d t | ƒ t | ƒ f ƒ qá W†| Sd  S(   Ns   orderi    s	   ordering:s   ::s   iterates   %s %s {c    s   rd |  S(   Ns     (   s   x(   s   xsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>rs    s   };s   %s::%s {s     %s;s
   %s::%s %s;s   %s {c    s   ~d |  S(   Ns     (   s   x(   s   xsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>~s    s   %s %s;(   s   dkeys   ss   dicts   keyss   sorts   hintss   has_keys   gets   orders   xs   removes   ks   is   types   hks   kkeyss   kks   iis   appends   maybe_quotes   maps
   writelevels   v(   s   dicts   hintss   dkeys   ss   keyss   orders   xs   ks   is   hks   kkeyss   kks   iis   vsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys
   writelevelXs`   	
 	  	* 	&&& 	 7; 	 *s    c    sÑ   ˆ‰h  } Šx´ |  i ƒ  d Šr¡ \ } } ‹| } Œt i | d ƒ } | d | d  f \ } } ŽxE | d Žr8 } | i | ƒ o h  | | <n | | } qv W‘| | | <q W’| Sd  S(   Ni    s   ::i   (   s   trees   dicts   itemss   ks   is   ds   strings   splits   dks   dvs   kks   has_key(   s   dicts   trees   ks   is   ds   dks   dvs   kksF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   maketreeˆs   	 	 	 c    s2   ”•t  |  ƒ } —t i t | | ƒ d ƒ Sd  S(   Ns   
(   s   maketrees   dicts   trees   strings   joins
   writelevels   hints(   s   dicts   hintss   treesF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys	   writeconf”s   s   RegistryLevelc      s,   œd „  Z  ¡d „  Z ¤h  d „ Z RS(   Nc    s#   žt  i |  ƒ Ÿ| |  _ d  S(   N(   s   UserDicts   __init__s   selfs   ls   label(   s   selfs   lsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   __init__s   c    s   ¡¢t  | ƒ |  _ d  S(   N(   s	   parsefiles   fs   selfs   data(   s   selfs   fsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   load¡s   c    sr   ¤¥t  | ƒ t  d ƒ j o ¥t | d ƒ } n ¦| i t |  i | ƒ ƒ §| i d ƒ ¨| i ƒ  d  S(   Ns    s   ws   
(	   s   types   fs   opens   writes	   writeconfs   selfs   datas   hintss   close(   s   selfs   fs   hintssF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   save¤s
    (   s   __init__s   loads   save(    sF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   RegistryLevelœs   s   Registryc      s€   ª«d Z  ¬d „  Z °d „  Z ³d „  Z ¸d „  Z ¼d „  Z Âe d „ Z Êd „  Z Íd	 „  Z	 Ðe d
 „ Z
 RS(   Ni   c    s   ¬­g  |  _ ®t |  _ d  S(   N(   s   selfs   datas   RegistryLevels
   base_class(   s   selfs   as   kwsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   __init__¬s   c    s   °±|  i i | ƒ d  S(   N(   s   selfs   datas   appends   r(   s   selfs   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   push°s   c    s-   ³´|  i d } µ|  i d =¶| Sd  S(   Ni   (   s   selfs   datas   r(   s   selfs   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   pop³s   c    sR   ¸¹t  | ƒ t  d ƒ j o ¹| i | d ƒ } n ºt i |  i | ƒ d  S(   Ns    s   w(   s   types   fs   opens   pickles   dumps   selfs   data(   s   selfs   fsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   pickle¸s    c    s†   ¼½t  | ƒ t  d ƒ j o ½| i | d ƒ } n ¾t i | ƒ } ¿t  | ƒ t  g  ƒ j o ¿t d ‚ n À| |  _ d  S(   Ns    s   rs
   bad pickle(	   s   types   fs   opens   pickles   loads   ds   RuntimeErrors   selfs   data(   s   selfs   fs   dsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   unpickle¼s     c    sP   ÂÃ|  i | ƒ } Äy Å| i | ƒ Wn ÆÇn XÈ|  i | ƒ d  S(   N(   s   selfs
   base_classs   labels   rs   loads   fs   push(   s   selfs   fs   labels   rsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   loadÂs   c    s   ÊË|  i d i Sd  S(   Ni   (   s   selfs   datas   label(   s   selfsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   labelÊs   c    s/   ÍÎt  t i t | d „ |  i ƒ d ƒ Sd  S(   Nc    s   Î|  i | ƒ S(   N(   s   xs   has_keys   k(   s   xs   ksF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>Îs    i    (   s   reduces   operators   or_s   maps   keys   selfs   data(   s   selfs   keysF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   has_keyÍs   c    s#   ÐÑt  | d „ |  i | ƒ Sd  S(   Nc    s   Ñ| i | |  ƒ S(   N(   s   xs   gets   ks   d(   s   ds   xs   ksF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   <lambda>Ñs    (   s   reduces   keys   selfs   datas   default(   s   selfs   keys   defaultsF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   getÐs   (   s   is_registrys   __init__s   pushs   pops   pickles   unpickles   Nones   loads   labels   has_keys   get(    sF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   Registryªs   	(   s   __doc__s   __version__s   __copyright__s   strings   res   operators   UserDicts
   rx_sections   rx_variables
   rx_comments   OldRegistryLevels   OldRegistrys   convert_config_files   _comment_res   compiles   _tokenize_res	   _path_seps   tokenizes   unquote_strings   assign_values   delim_splits   parses	   parsefiles   _acharss	   quotechars   maybe_quotes
   writelevels   maketrees	   writeconfs   RegistryLevels   Registry(    sF   /afs/sipb.mit.edu/project/pilot-locker/share/python/Sulfur/Registry.pys   ?# s6   					Y' 			0