<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

])              
   @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z Gd d   d  Z e   Z d d d  Z e j	 d e  d	 d
   Z
 x$ d j   D] Z e j	 e e
  q Wd d   Z x( d j   D] Z e j	 d e e  q Wd d   Z e j	 d e  d d   Z d d   Z d d   Z d d   Z d d d d d d d d d d  Z e j e e  d d d d d d d d  d!  Z e j e j j e  d" d d d d d d# d$  Z x' e e e f D] Z e j e e  qWd S)%    N)
quoprimimec               @   sX   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d S)ContentManagerc             C   s   i  |  _  i  |  _ d  S)N)get_handlersset_handlers)self r   3/opt/alt/python35/lib64/python3.5/contentmanager.py__init__	   s    	zContentManager.__init__c             C   s   | |  j  | <d  S)N)r   )r   keyhandlerr   r   r   add_get_handler   s    zContentManager.add_get_handlerc             O   s   | j    } | |  j k r2 |  j | | | |  S| j   } | |  j k rd |  j | | | |  Sd |  j k r |  j d | | |  St |   d  S)N )Zget_content_typer   get_content_maintypeKeyError)r   msgargskwZcontent_typemaintyper   r   r   get_content   s    zContentManager.get_contentc             C   s   | |  j  | <d  S)N)r   )r   Ztypekeyr   r   r   r   add_set_handler   s    zContentManager.add_set_handlerc             O   sQ   | j    d k r t d   |  j | |  } | j   | | | | |  d  S)NZ	multipartz"set_content not valid on multipart)r   	TypeError_find_set_handlerZclear_content)r   r   objr   r   r   r   r   r   set_content   s
    
zContentManager.set_contentc       	      C   s	  d  } x t  |  j D] } | |  j k r6 |  j | S| j } t | d d  } | rl d j | | f  n | } | d  k r | } | |  j k r |  j | S| |  j k r |  j | S| j } | |  j k r |  j | Sq Wd  |  j k r |  j d  St |   d  S)N
__module__r   .)type__mro__r   __qualname__getattrjoin__name__r   )	r   r   r   Zfull_path_for_errortypZqnamemodname	full_pathnamer   r   r   r   '   s&    	!	z ContentManager._find_set_handlerN)	r!   r   r   r	   r   r   r   r   r   r   r   r   r   r      s   	r   replacec             C   s7   |  j  d d  } |  j d d  } | j | d | S)NdecodeTcharsetASCIIerrors)get_payloadZ	get_paramr'   )r   r*   Zcontentr(   r   r   r   get_text_content@   s    r,   textc             C   s   |  j  d d  S)Nr'   T)r+   )r   r   r   r   get_non_text_contentG   s    r.   zaudio image video applicationc             C   s   |  j  d  S)Nr   )r+   )r   r   r   r   get_message_contentM   s    r/   zrfc822 external-bodyzmessage/c             C   s   t  |  j d   S)Nr   )bytesr+   )r   r   r   r   %get_and_fixup_unknown_message_contentS   s    r1   messagec                s   d j  | | f  |  d <| r t | d d  sT |  j     f d d   | D } y8 x1 | D]) } | j rz | j d  | |  | j <q^ WWnR t j j k
 r } z, t d j	 | j
 d |  j    |  WYd  d  } ~ Xn Xd  S)	N/zContent-Typer   r%   c                s+   g  |  ]! }   j    j | g     q Sr   )Zheader_factoryZheader_source_parse).0header)mpr   r   
<listcomp>d   s   	z _prepare_set.<locals>.<listcomp>zInvalid header: {}policy)r    hasattrr8   Zdefectsr%   emailr*   ZHeaderDefect
ValueErrorformatZfold)r   r   subtypeheadersr5   excr   )r6   r   _prepare_set_   s    	
		r@   c             C   s   | d  k r | d  k	 r d } | d  k	 r4 | |  d <| d  k	 r\ |  j  d | d d d d | d  k	 rr | |  d <| d  k	 r x* | j   D] \ } } |  j  | |  q Wd  S)NZ
attachmentzContent-Dispositionfilenamer5   r&   Tz
Content-ID)	set_paramitems)r   dispositionrA   cidparamsr
   valuer   r   r   _finalize_setp   s    
	
rH   c             C   sw   g  } | d d } xS t  d t |   |  D]9 } |  | | |  } | j t j |  j d   q- Wd j |  S)N      r   asciir   )rangelenappendbinascii
b2a_base64r'   r    )datamax_line_lengthZencoded_linesZunencoded_bytes_per_lineiZthisliner   r   r   _encode_base64   s    #rT   c                s  |  j  |  j   } | j j  d      f d d   } d d   } | d  k rVy d | |  j d  f SWn t k
 r Yn X| j d k r t d d	   | D  | j k r d | |  j d d
  f S| | d  d   } t j	 | j d  | j  } t
 j |  }	 t |  t |	  k r4d } n" d } t |  d k rV| | f S| d k rz| |  j d  }
 n | d k r| |  j d d
  }
 no | d k rt j	 | |  j d  | j  }
 n< | d k rt | |  | j  }
 n t d j |    | |
 f S)NrK   c                s     j  |     S)N)r    )lines)linesepr   r   embeded_body   s    z"_encode_text.<locals>.embeded_bodyc             S   s   d j  |   d S)Ns   
)r    )rU   r   r   r   normal_body   s    z!_encode_text.<locals>.normal_body7bit8bitc             s   s   |  ] } t  |  Vq d  S)N)rM   )r4   xr   r   r   	<genexpr>   s    z_encode_text.<locals>.<genexpr>surrogateescape
   zlatin-1base64zquoted-printablez$Unknown content transfer encoding {})encode
splitlinesrV   r'   UnicodeDecodeErrorZcte_typemaxrR   r   Zbody_encoderO   rP   rM   rT   r;   r<   )stringr(   cter8   rU   rW   rX   ZsniffZsniff_qpZsniff_base64rQ   r   )rV   r   _encode_text   s@    "	
rf   Zplainzutf-8c
             C   s   t  |  d | |	  t | | | |  j  \ } }
 |  j |
  |  j d t j j j | |  d d | |  d <t	 |  | | | |  d  S)Nr-   r(   r&   TzContent-Transfer-Encoding)
r@   rf   r8   set_payloadrB   r:   r(   ZALIASESgetrH   )r   rd   r=   r(   re   rD   rA   rE   rF   r>   Zpayloadr   r   r   set_text_content   s    	
ri   rfc822c	       	      C   s   | d k r t  d   | d k r` | d k rE t  d j |    | d  k rW d n | } nH | d k r | d k r t  d	 j |    d } n | d  k r d } t |  d
 | |  |  j | g  | |  d <t |  | | | |  d  S)Npartialz4message/partial is not supported for Message objectsrj   rY   rZ   binaryz*message/rfc822 parts do not support cte={}zexternal-bodyz1message/external-body parts do not support cte={}r2   zContent-Transfer-Encoding)NrY   rZ   rl   )NrY   )r;   r<   r@   rg   rH   )	r   r2   r=   re   rD   rA   rE   rF   r>   r   r   r   set_message_content   s$    	
rm   r_   c
       
      C   s   t  |  | | |	  | d k r: t | d |  j j } ny | d k ry t j | d d d d d d } | j d	  } n: | d
 k r | j d	  n | d k r | j d	 d  } |  j |  | |  d <t	 |  | | | |  d  S)Nr_   rR   zquoted-printableistextFr5   Z	quotetabsTrK   rY   rZ   rl   r]   zContent-Transfer-Encoding)rZ   rl   )
r@   rT   r8   rR   rO   Zb2a_qpr'   r`   rg   rH   )
r   rQ   r   r=   re   rD   rA   rE   rF   r>   r   r   r   set_bytes_content   s    !
ro   )rO   Zemail.charsetr:   Zemail.messageZemail.errorsr   r   Zraw_data_managerr,   r   r.   splitr   r/   r=   r1   r@   rH   rT   rf   ri   r   strrm   r2   ZMessagero   r0   	bytearray
memoryviewr"   r   r   r   r   <module>   sD   6			'					