shell bypass 403
o
^b�N � @ s� g d �Z ddlZddlZddlZddlZddlmZ ddlmZm Z ddl
mZ dZdZ
e�d�Ze�d ej�ZG d
d� d�ZG dd
� d
e�ZdZG dd� de�Zeeejd ��Zde ZejZdS ))� Generator�DecodedGenerator�BytesGenerator� N)�deepcopy)�StringIO�BytesIO)�_has_surrogates�_�
z
\r\n|\r|\nz^From c @ s� e Zd Z d&dd�dd�Zdd� Zd'dd �Zd
d� Zdd
� Zdd� Zdd� Z dd� Z
dd� Zdd� Zdd� Z
e
Zdd� Zdd� Zdd� Zd d!� Zed(d"d#��Zed$d%� �ZdS ))r N��policyc C s8 |d u r|d u rdn|j }|| _|| _|| _|| _d S )NT)�mangle_from_�_fp�
_mangle_from_�maxheaderlenr )�self�outfpr
r r � r �8/usr/local/python-3.10/lib/python3.10/email/generator.py�__init__$ s
zGenerator.__init__c C s | j �|� d S �N)r �write�r �sr r r r D s zGenerator.writeFc C s� | j d u r |j n| j }|d ur|j|d�}| jd ur"|j| jd�}|j| _| �| j�| _d| _| �| j�| _| j }|j }z-|| _ ||_ |r]|� � }|sUdt
�t
�
� � }| �|| j � | �
|� W || _ ||_ d S || _ ||_ w )N)�linesep�Zmax_line_length� zFrom nobody )r �cloner r �_NL�_encode�_encoded_NLZ_EMPTY�_encoded_EMPTYZget_unixfrom�time�ctimer �_write)r �msg�unixfromr r Zold_gen_policyZold_msg_policyZufromr r r �flattenH s2
�zGenerator.flattenc C s | j || jd | jd�S �Nr )� __class__r r )r �fpr r r r y s �zGenerator.clonec C � t � S r )r �r r r r �_new_buffer� s zGenerator._new_bufferc C s |S r r r r r r r � s zGenerator._encodec C sX |sd S t �|�}|d d� D ]
}| �|� | �| j� q|d r*| �|d � d S d S )N���)�NLCRE�splitr r )r �lines�liner r r �_write_lines� s
�zGenerator._write_linesc C s� | j }zd | _| �� | _ }| �|� W || _ | j}| `n || _ | j}| `w |rJt|�}|�d�d u r:|d |d<