ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3
i                 @   s   d dl Zd dlmZ d dlZd dlZd dlZe	dd e
dD Ze	dd e
dD ZdZG dd dZd	d
 ZG dd dejZej reZdddZdS )    N)_compare_digestc             c   s   | ]}|d A V  qdS )\   N ).0xr   r   /usr/lib64/python3.6/hmac.py	<genexpr>   s    r      c             c   s   | ]}|d A V  qdS )6   Nr   )r   r   r   r   r   r      s    c               @   sN   e Zd ZdZdddZedd Zdd Zd	d
 Zdd Z	dd Z
dd ZdS )HMAC@   Nc                sf  t j rtdt|ttfs0tdt|j  d krLt	j
dtd tj t r\ | _n,t trxd fdd	| _nd fd	d	| _| j | _| j | _| jj| _t| jd
r| jj}|dk rt	j
d|| jf td | j}nt	j
d| j td | j}|| _t||kr| j|j }|j|d}| jj|jt | jj|jt |d k	rb| j| d S )Nz*This class is not available in FIPS mode. zUse hmac.new().z,key: expected bytes or bytearray, but got %rz<HMAC() without an explicit digestmod argument is deprecated.       c                s   t j | S )N)_hashlibnew)d)	digestmodr   r   <lambda>;   s    zHMAC.__init__.<locals>.<lambda>c                s
    j | S )N)r   )r   )r   r   r   r   =   s    
block_size   z:block_size of %d seems too small; using our default of %d.z<No block_size attribute on given digest object; Assuming %d.    z9This class is not available in FIPS mode. Use hmac.new().)r   )r   )_hashlibopensslget_fips_mode
ValueError
isinstancebytes	bytearray	TypeErrortype__name__	_warningswarnPendingDeprecationWarningr   Zmd5callabledigest_consstrouterinnerdigest_sizehasattrr   	blocksizeRuntimeWarninglendigestljustupdate	translatetrans_5Ctrans_36)selfkeymsgr   r*   r   )r   r   __init__   sJ     





zHMAC.__init__c             C   s   d| j j S )Nzhmac-)r'   name)r3   r   r   r   r7   ]   s    z	HMAC.namec             C   s    t j rtd| jj| d S )Nz'hmac.HMAC is not available in FIPS mode)r   r   r   r'   r/   )r3   r5   r   r   r   r/   a   s    zHMAC.updatec             C   s:   | j j| j }| j|_| j|_| jj |_| jj |_|S )N)	__class____new__r$   r(   r'   copyr&   )r3   otherr   r   r   r:   h   s    z	HMAC.copyc             C   s   | j j }|j| jj  |S )N)r&   r:   r/   r'   r-   )r3   hr   r   r   _currentu   s    
zHMAC._currentc             C   s   | j  }|j S )N)r=   r-   )r3   r<   r   r   r   r-   ~   s    zHMAC.digestc             C   s   | j  }|j S )N)r=   	hexdigest)r3   r<   r   r   r   r>      s    zHMAC.hexdigest)NN)r   
__module____qualname__r*   r6   propertyr7   r/   r:   r=   r-   r>   r   r   r   r   r      s   
A	
r   c             C   sX   | d krt dt| tr"| j S t| r2| d} t| tjsFtd| jj j	ddS )Nz.'digestmod' argument is mandatory in FIPS moder   z6Only OpenSSL hashlib hashes are accepted in FIPS mode._-)
r   r   r%   lowerr#   r   ZHASHr   r7   replace)r   r   r   r   _get_openssl_name   s    
rF   c               @   s   e Zd ZdddZdS )HMAC_opensslNc             C   sL   t |ttfs tdt|j t|}tjj	| ||d}|rH|j
| |S )Nz,key: expected bytes or bytearray, but got %r)r   )r   r   r   r   r   r   rF   _hmacopensslr   r9   r/   )clsr4   r5   r   r7   resultr   r   r   r9      s    
zHMAC_openssl.__new__)NN)r   r?   r@   r9   r   r   r   r   rG      s   rG   c             C   s   t | ||S )N)r   )r4   r5   r   r   r   r   r      s    r   )NN)warningsr    	_operatorr   Zcompare_digestZhashlibr   r   rH   r   ranger1   r2   r(   r   rF   rG   r   r   r   r   r   r   <module>   s   z