ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    e5dKQ                     @   sv  d dl mZ d dlmZ d dlmZ d dlmZ G dd dZG dd dZG d	d
 d
e	Z
dd ZG dd dZG dd deZG dd dZG dd deZG dd dZG dd deZG dd deZG dd deZG dd dZG dd  d ZG d!d" d"eZG d#d$ d$eZG d%d& d&ZG d'd( d(Zeeeeeeeeeeeeeeeeeeeed)ZG d*d+ d+Zd,S )-    )MappingProxyType)utils)errors)_header_value_parserc                   @   s^   e Zd ZdddZedd Zedd Zed	d
 Zedd Zdd Z	dd Z
dd ZdS )Address Nc                 C   s   d td ||||f}d|ks(d|kr0td|d k	r|s@|rHtdt|\}}|rjtd|||jrz|jd |j}|j	}|| _
|| _|| _d S )Nr   
z8invalid arguments; address parts cannot contain CR or LFz=addrspec specified when username and/or domain also specifiedz6Invalid addr_spec; only '{}' could be parsed from '{}'r   )joinfilter
ValueError	TypeErrorparserZget_addr_specformatall_defects
local_partdomain_display_name	_username_domain)selfdisplay_nameusernamer   	addr_specZinputsZa_srest r   ,/usr/lib64/python3.8/email/headerregistry.py__init__   s&     
zAddress.__init__c                 C   s   | j S Nr   r   r   r   r   r   <   s    zAddress.display_namec                 C   s   | j S r   )r   r    r   r   r   r   @   s    zAddress.usernamec                 C   s   | j S r   )r   r    r   r   r   r   D   s    zAddress.domainc                 C   sT   t | j}t|t|tj kr.t| j}n| j}| jrH|d | j S |sPdS |S )N@<>)setr   lenr   ZDOT_ATOM_ENDSquote_stringr   )r   namesetZlpr   r   r   r   H   s    
zAddress.addr_specc                 C   s   d | jj| j| j| jS )Nz1{}(display_name={!r}, username={!r}, domain={!r}))r   	__class____name__r   r   r   r    r   r   r   __repr__X   s      zAddress.__repr__c                 C   s^   t | j}t|t|tj kr.t| j}n| j}|rX| jdkrFdn| j}d||S | jS )Nr"   r   z{} <{}>)r#   r   r$   r   SPECIALSr%   r   r   )r   r&   dispr   r   r   r   __str__]   s    
zAddress.__str__c                 C   s8   t |t | krdS | j|jko6| j|jko6| j|jkS NF)typer   r   r   r   otherr   r   r   __eq__h   s    

zAddress.__eq__)r   r   r   N)r(   
__module____qualname__r   propertyr   r   r   r   r)   r,   r1   r   r   r   r   r      s   
*



r   c                   @   sF   e Zd ZdddZedd Zedd Zdd	 Zd
d Zdd Z	dS )GroupNc                 C   s   || _ |rt|nt | _d S r   )r   tuple
_addresses)r   r   	addressesr   r   r   r   r   s    zGroup.__init__c                 C   s   | j S r   r   r    r   r   r   r      s    zGroup.display_namec                 C   s   | j S r   )r7   r    r   r   r   r8      s    zGroup.addressesc                 C   s   d | jj| j| jS )Nz${}(display_name={!r}, addresses={!r})r   r'   r(   r   r8   r    r   r   r   r)      s
     zGroup.__repr__c                 C   s   | j d kr&t| jdkr&t| jd S | j }|d k	r\t|}t|t|tj kr\t|}ddd | jD }|r~d| n|}d	||S )N   r   , c                 s   s   | ]}t |V  qd S r   str).0xr   r   r   	<genexpr>   s     z Group.__str__.<locals>.<genexpr> z{}:{};)
r   r$   r8   r<   r#   r   r*   r%   r
   r   )r   r+   r&   Zadrstrr   r   r   r,      s    
zGroup.__str__c                 C   s,   t |t | krdS | j|jko*| j|jkS r-   )r.   r   r8   r/   r   r   r   r1      s
    
zGroup.__eq__)NN)
r(   r2   r3   r   r4   r   r8   r)   r,   r1   r   r   r   r   r5   p   s   


r5   c                   @   sP   e Zd Zdd Zdd Zedd Zedd Zd	d
 Ze	dd Z
dd ZdS )
BaseHeaderc                 C   s\   dg i}|  || t|d r4t|d |d< t| |d }|d= |j|f| |S )Ndefectsdecoded)parser   Z_has_surrogates	_sanitizer<   __new__init)clsnamevaluekwdsr   r   r   r   rF      s    zBaseHeader.__new__c                C   s   || _ || _|| _d S r   )_name_parse_tree_defects)r   rI   
parse_treerB   r   r   r   rG      s    zBaseHeader.initc                 C   s   | j S r   )rL   r    r   r   r   rI      s    zBaseHeader.namec                 C   s
   t | jS r   )r6   rN   r    r   r   r   rB      s    zBaseHeader.defectsc                 C   s   t | jj| jjt| f| jfS r   )_reconstruct_headerr'   r(   	__bases__r<   __dict__r    r   r   r   
__reduce__   s    zBaseHeader.__reduce__c                 C   s   t | |S r   )r<   rF   )rH   rJ   r   r   r   _reconstruct   s    zBaseHeader._reconstructc             	   C   s`   t t t | jdt ddgg}| jrH|t t ddg || j |j	|dS )Nzheader-name:z
header-sepr@   Zfws)policy)
r   ZHeaderZHeaderLabelZValueTerminalrI   rM   appendZCFWSListZWhiteSpaceTerminalfold)r   rV   headerr   r   r   rX      s    
zBaseHeader.foldN)r(   r2   r3   rF   rG   r4   rI   rB   rS   classmethodrT   rX   r   r   r   r   rA      s   "




rA   c                 C   s   t | |i |S r   )r.   rT   )Zcls_namebasesrJ   r   r   r   rP   
  s    rP   c                   @   s&   e Zd ZdZeejZedd Z	dS )UnstructuredHeaderNc                 C   s"   |  ||d< t|d |d< d S )NrO   rC   )value_parserr<   rH   rJ   rK   r   r   r   rD     s    zUnstructuredHeader.parse)
r(   r2   r3   	max_countstaticmethodr   get_unstructuredr]   rZ   rD   r   r   r   r   r\     s   
r\   c                   @   s   e Zd ZdZdS )UniqueUnstructuredHeaderr9   Nr(   r2   r3   r_   r   r   r   r   rb     s   rb   c                       sB   e Zd ZdZeejZedd Z	 fddZ
edd Z  ZS )
DateHeaderNc                 C   sz   |s6|d  t  d |d< d|d< t |d< d S t|trJt|}||d< t	|d |d< | 
|d |d< d S )NrB   datetimer   rC   rO   )rW   r   ZHeaderMissingRequiredValuer   Z	TokenList
isinstancer<   r   Zparsedate_to_datetimeZformat_datetimer]   r^   r   r   r   rD   .  s    

zDateHeader.parsec                    s   | d| _t j|| d S )Nre   )pop	_datetimesuperrG   r   argskwr'   r   r   rG   <  s    zDateHeader.initc                 C   s   | j S r   )rh   r    r   r   r   re   @  s    zDateHeader.datetime)r(   r2   r3   r_   r`   r   ra   r]   rZ   rD   rG   r4   re   __classcell__r   r   rm   r   rd     s   

rd   c                   @   s   e Zd ZdZdS )UniqueDateHeaderr9   Nrc   r   r   r   r   ro   E  s   ro   c                       sP   e Zd ZdZedd Zedd Z fddZe	dd	 Z
e	d
d Z  ZS )AddressHeaderNc                 C   s   t | \}} |S r   )r   Zget_address_list)rJ   address_listr   r   r   r]   N  s    zAddressHeader.value_parserc                 C   s   t |trV| | |d< }g }|jD ]"}|t|jdd |jD  q&t|j	}n"t
|dsf|g}dd |D }g }||d< ||d< dd	d |D |d
< d|kr| |d
 |d< d S )NrO   c                 S   s*   g | ]"}t |jpd |jpd |jp"d qS )r   )r   r   r   r   )r=   Zmbr   r   r   
<listcomp>]  s
   
z'AddressHeader.parse.<locals>.<listcomp>__iter__c                 S   s&   g | ]}t |d std|gn|qS )r8   N)hasattrr5   r=   itemr   r   r   rr   f  s   groupsrB   r:   c                 S   s   g | ]}t |qS r   r;   ru   r   r   r   rr   l  s     rC   )rf   r<   r]   r8   rW   r5   r   Zall_mailboxeslistr   rt   r
   )rH   rJ   rK   rq   rw   ZaddrrB   r   r   r   rD   T  s*    



zAddressHeader.parsec                    s(   t |d| _d | _t j|| d S )Nrw   )r6   rg   _groupsr7   ri   rG   rj   rm   r   r   rG   p  s    zAddressHeader.initc                 C   s   | j S r   )ry   r    r   r   r   rw   u  s    zAddressHeader.groupsc                 C   s&   | j d kr tdd | jD | _ | j S )Nc                 s   s   | ]}|j D ]
}|V  qqd S r   )r8   )r=   groupaddressr   r   r   r?   |  s     z*AddressHeader.addresses.<locals>.<genexpr>)r7   r6   ry   r    r   r   r   r8   y  s    
zAddressHeader.addresses)r(   r2   r3   r_   r`   r]   rZ   rD   rG   r4   rw   r8   rn   r   r   rm   r   rp   J  s   


rp   c                   @   s   e Zd ZdZdS )UniqueAddressHeaderr9   Nrc   r   r   r   r   r|     s   r|   c                   @   s   e Zd Zedd ZdS )SingleAddressHeaderc                 C   s(   t | jdkrtd| j| jd S )Nr9   z9value of single address header {} is not a single addressr   )r$   r8   r   r   rI   r    r   r   r   r{     s
    zSingleAddressHeader.addressN)r(   r2   r3   r4   r{   r   r   r   r   r}     s   r}   c                   @   s   e Zd ZdZdS )UniqueSingleAddressHeaderr9   Nrc   r   r   r   r   r~     s   r~   c                       sZ   e Zd ZdZeejZedd Z	 fddZ
edd Zedd	 Zed
d Z  ZS )MIMEVersionHeaderr9   c                 C   s   |  | |d< }t||d< |d |j |jd kr<d n|j|d< |j|d< |jd k	rtd|d |d |d< nd |d< d S )NrO   rC   rB   majorminorz{}.{}version)r]   r<   extendr   r   r   r   rH   rJ   rK   rO   r   r   r   rD     s    

zMIMEVersionHeader.parsec                    s6   | d| _| d| _| d| _t j|| d S )Nr   r   r   )rg   _version_major_minorri   rG   rj   rm   r   r   rG     s    zMIMEVersionHeader.initc                 C   s   | j S r   )r   r    r   r   r   r     s    zMIMEVersionHeader.majorc                 C   s   | j S r   )r   r    r   r   r   r     s    zMIMEVersionHeader.minorc                 C   s   | j S r   )r   r    r   r   r   r     s    zMIMEVersionHeader.version)r(   r2   r3   r_   r`   r   Zparse_mime_versionr]   rZ   rD   rG   r4   r   r   r   rn   r   r   rm   r   r     s   



r   c                       s8   e Zd ZdZedd Z fddZedd Z  Z	S )ParameterizedMIMEHeaderr9   c                 C   sZ   |  | |d< }t||d< |d |j |jd krBi |d< ndd |jD |d< d S )NrO   rC   rB   paramsc                 S   s&   i | ]\}}t | t |qS r   )r   rE   lower)r=   rI   rJ   r   r   r   
<dictcomp>  s   z1ParameterizedMIMEHeader.parse.<locals>.<dictcomp>)r]   r<   r   r   r   r   r   r   r   rD     s    

zParameterizedMIMEHeader.parsec                    s   | d| _t j|| d S )Nr   )rg   _paramsri   rG   rj   rm   r   r   rG     s    zParameterizedMIMEHeader.initc                 C   s
   t | jS r   )r   r   r    r   r   r   r     s    zParameterizedMIMEHeader.params)
r(   r2   r3   r_   rZ   rD   rG   r4   r   rn   r   r   rm   r   r     s   
r   c                       sJ   e Zd ZeejZ fddZedd Z	edd Z
edd Z  ZS )	ContentTypeHeaderc                    s2   t  j|| t| jj| _t| jj| _d S r   )	ri   rG   r   rE   rM   maintype	_maintypesubtype_subtyperj   rm   r   r   rG     s    zContentTypeHeader.initc                 C   s   | j S r   )r   r    r   r   r   r     s    zContentTypeHeader.maintypec                 C   s   | j S r   )r   r    r   r   r   r     s    zContentTypeHeader.subtypec                 C   s   | j d | j S )N/)r   r   r    r   r   r   content_type  s    zContentTypeHeader.content_type)r(   r2   r3   r`   r   Zparse_content_type_headerr]   rG   r4   r   r   r   rn   r   r   rm   r   r     s   


r   c                       s2   e Zd ZeejZ fddZedd Z	  Z
S )ContentDispositionHeaderc                    s2   t  j|| | jj}|d kr"|nt|| _d S r   )ri   rG   rM   content_dispositionr   rE   _content_disposition)r   rk   rl   Zcdrm   r   r   rG     s    zContentDispositionHeader.initc                 C   s   | j S r   )r   r    r   r   r   r     s    z,ContentDispositionHeader.content_disposition)r(   r2   r3   r`   r   Z parse_content_disposition_headerr]   rG   r4   r   rn   r   r   rm   r   r     s   
r   c                       sB   e Zd ZdZeejZedd Z	 fddZ
edd Z  ZS )ContentTransferEncodingHeaderr9   c                 C   s2   |  | |d< }t||d< |d |j d S NrO   rC   rB   r]   r<   r   r   r   r   r   r   rD     s    z#ContentTransferEncodingHeader.parsec                    s"   t  j|| t| jj| _d S r   )ri   rG   r   rE   rM   cte_cterj   rm   r   r   rG     s    z"ContentTransferEncodingHeader.initc                 C   s   | j S r   )r   r    r   r   r   r     s    z!ContentTransferEncodingHeader.cte)r(   r2   r3   r_   r`   r   Z&parse_content_transfer_encoding_headerr]   rZ   rD   rG   r4   r   rn   r   r   rm   r   r     s   

r   c                   @   s&   e Zd ZdZeejZedd Z	dS )MessageIDHeaderr9   c                 C   s2   |  | |d< }t||d< |d |j d S r   r   r   r   r   r   rD     s    zMessageIDHeader.parseN)
r(   r2   r3   r_   r`   r   Zparse_message_idr]   rZ   rD   r   r   r   r   r     s   
r   )Zsubjectdatezresent-datez	orig-dateZsenderzresent-sendertoz	resent-toZccz	resent-ccZbccz
resent-bccfromzresent-fromzreply-tozmime-versionzcontent-typezcontent-dispositionzcontent-transfer-encodingz
message-idc                   @   s4   e Zd ZeedfddZdd Zdd Zdd	 Zd
S )HeaderRegistryTc                 C   s&   i | _ || _|| _|r"| j t d S r   )registry
base_classdefault_classupdate_default_header_map)r   r   r   Zuse_default_mapr   r   r   r   9  s
    zHeaderRegistry.__init__c                 C   s   || j | < d S r   )r   r   r   rI   rH   r   r   r   map_to_typeK  s    zHeaderRegistry.map_to_typec                 C   s,   | j | | j}td|j || jfi S )N_)r   getr   r   r.   r(   r   r   r   r   r   __getitem__Q  s    zHeaderRegistry.__getitem__c                 C   s   | | ||S r   r   )r   rI   rJ   r   r   r   __call__U  s    
zHeaderRegistry.__call__N)	r(   r2   r3   rA   r\   r   r   r   r   r   r   r   r   r   5  s   
r   N)typesr   Zemailr   r   r   r   r   r5   r<   rA   rP   r\   rb   rd   ro   rp   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   <module>
   sV   `6d'7
%