i8042 AUX port
  "   ˆl–ß=¿Jå!¶e	A
ãm\e¥1hßÄƒ[{ÂÁ n    ó
!`Nc           @   s7   d  Z  d d l Z d a d „  Z d „  Z d „  Z d S(   s'   Hashing backwards compatibility wrapperiÿÿÿÿNc            s   ‡  f d †  } | S(   Nc             s   t  d ˆ  d ƒ ‚ d  S(   Ns   TSIG algorithm s    requires Python 2.5.2 or later(   t   NotImplementedError(   t   argst   kwargs(   t   alg(    s.   /usr/lib64/python2.7/site-packages/dns/hash.pyt   func   s    
(    (   R   R   (    (   R   s.   /usr/lib64/python2.7/site-packages/dns/hash.pyt   _need_later_python   s    c          C   s$  i  a  yÚ d d  l }  |  j t  d <|  j t  d <|  j t  d <|  j t  d <t j d k ru |  j t  d <|  j	 t  d <n  t
 d ƒ t  d <t
 d ƒ t  d <t j d	 k  rß d
 d d „  ƒ  Y} x% t  D] } | t  | ƒ t  | <q¾ Wn  Wn= t k
 rd d  l } d d  l } | t  d <| t  d <n Xd  S(   Niÿÿÿÿt   MD5t   SHA1t   SHA224t   SHA256i t   SHA384t   SHA512i  t   HashlibWrapperc           B   s   e  Z d  „  Z d „  Z RS(   c         S   s   | |  _  |  j  ƒ  j |  _ d  S(   N(   t   basehasht   digest_size(   t   selfR   (    (    s.   /usr/lib64/python2.7/site-packages/dns/hash.pyt   __init__1   s    	c         _   s   |  j  | | Ž  S(   N(   R   (   R   R   R   (    (    s.   /usr/lib64/python2.7/site-packages/dns/hash.pyt   new5   s    (   t   __name__t
   __module__R   R   (    (    (    s.   /usr/lib64/python2.7/site-packages/dns/hash.pyR   0   s   	(    (   t   _hashest   hashlibt   md5t   sha1t   sha224t   sha256t   syst
   hexversiont   sha384t   sha512R   t   ImportErrort   sha(   R   R   t   nameR   R   (    (    s.   /usr/lib64/python2.7/site-packages/dns/hash.pyt   _setup   s(    
c         C   s$   t  d  k r t ƒ  n  t  |  j ƒ  S(   N(   R   t   NoneR!   t   upper(   t	   algorithm(    (    s.   /usr/lib64/python2.7/site-packages/dns/hash.pyt   get@   s    
(   t   __doc__R   R"   R   R   R!   R%   (    (    (    s.   /usr/lib64/python2.7/site-packages/dns/hash.pyt   <module>   s
   		$     	ˆ¿Äƒh¹ÂÁ      	auto
  	   ˆ¿Ä0ÂÁ  #   ˆl–Ðz¾”d
h¥ …@5pA¸ÛêbÑ¿Å„®4/ÃÂ ?÷     
__all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer',
    'RepresenterError']

from error import *
from nodes import *

import datetime

import sys, copy_reg, types

class RepresenterError(YAMLError):
    pass

class BaseRepresenter(object):

    yaml_representers = {}
    yaml_multi_representers = {}

    def __init__(self, default_style=None, default_flow_style=None):
        self.default_style = default_style
        self.default_flow_style = default_flow_style
        self.represented_objects = {}
        self.object_keeper = []
        self.alias_key = None

    def represent(self, data):
        node = self.represent_data(data)
        self.serialize(node)
        self.represented_objects = {}
        self.object_keeper = []
        self.alias_key = None

    def get_classobj_bases(self, cls):
        bases = [cls]
        for base in cls.__bases__:
            bases.extend(self.get_classobj_bases(base))
        return bases

    def represent_data(self, data):
        if self.ignore_aliases(data):
            self.alias_key = None
        else:
            self.alias_key = id(data)
        if self.alias_key is not None:
            if self.alias_key in self.represented_objects:
                node = self.represented_objects[self.alias_key]
                #if node is None:
                #    raise RepresenterError("recursive objects are not allowed: %r" % data)
                return node
            #self.represented_objects[alias_key] = None
            self.object_keeper.append(data)
        data_types = type(data).__mro__
        if type(data) is types.InstanceType:
            data_types = self.get_classobj_bases(data.__class__)+list(data_types)
        if data_types[0] in self.yaml_representers:
            no