§
    7xÅjµ  ã                   ó¨   — d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ  ej        e¦  «        Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdeiZdS )z‰
NOTE: All functions in this module are considered private and are
subject to abrupt breaking changes. Please do not use them directly.

é    N)ÚGzipFile)Úcompress)Ú	urlencode)Úregister_feature_id)Údetermine_content_lengthc                 óJ  — t          | ||¦  «        r�|j        d         D ]ƒ}t                               |¦  «        }|�Ht                               d|¦  «          ||d         ¦  «        |d<   t          |d         |¦  «          dS t                               d|¦  «         Œ‚dS dS )zAAttempt to compress the request body using the modeled encodings.Ú	encodingsNz%Compressing request with %s encoding.ÚbodyÚheadersz$Unsupported compression encoding: %s)Ú_should_compress_requestÚrequest_compressionÚCOMPRESSION_MAPPINGÚgetÚloggerÚdebugÚ_set_compression_header)ÚconfigÚrequest_dictÚoperation_modelÚencodingÚencoders        úBC:\Projects\Historical\venv\Lib\site-packages\botocore/compress.pyÚmaybe_compress_requestr      sÃ   € å ¨°oÑFÔFð 	OØ'Ô;¸KÔHð 	Oð 	OˆHÝ)×-Ò-¨hÑ7Ô7ˆGØÐ"Ý—’ÐDÀhÑOÔOÐOØ'. w¨|¸FÔ/CÑ'DÔ'D�˜VÑ$Ý'¨°YÔ(?ÀÑJÔJÐJØ��å—’ÐCÀXÑNÔNÐNÐNð	Oð 	Oð	Oð 	Oó    c                 óR  — | j         dur�| j        dk    r’|j        �‹t          |¦  «        s4t	          |d         ¦  «        }d}t
                               ||¦  «         dS |j        r|                     ¦   «         }|j	        }d|vS t          |d         ¦  «        }| j        }||k    S dS )NTÚv2r
   z*Body type %s does not support compression.FÚrequiresLength)Údisable_request_compressionÚsignature_versionr   Ú_is_compressible_typeÚtyper   r   Úhas_streaming_inputÚget_streaming_inputÚmetadataÚ_get_body_sizeÚ"request_min_compression_size_bytes)	r   r   r   Ú	body_typeÚlog_msgÚstreaming_inputÚstreaming_metadataÚ	body_sizeÚmin_sizes	            r   r   r   -   sÂ   € àÔ*°$Ð6Ð6ØÔ$¨Ò,Ð,ØÔ/Ð;å$ \Ñ2Ô2ð 	Ý˜\¨&Ô1Ñ2Ô2ˆIØBˆGÝ�LŠL˜ )Ñ,Ô,Ð,Ø�5àÔ.ð 	>Ø-×AÒAÑCÔCˆOØ!0Ô!9ÐØ#Ð+=Ð=Ð=å" <°Ô#7Ñ8Ô8ˆ	ØÔ<ˆØ˜9Ò$Ð$àˆ5r   c                 óø   — | d         }t          |t          ¦  «        r*t          |dd¬¦  «                             d¦  «        }|| d<   t          |t          t
          t          f¦  «        }|pt          |d¦  «        S )Nr
   Túutf-8)Údoseqr   Úread)Ú
isinstanceÚdictr   ÚencodeÚstrÚbytesÚ	bytearrayÚhasattr)r   r
   Úis_supported_types      r   r    r    E   sv   € Ø˜Ô€Då�$�ÑÔð $Ý˜ T°GÐ<Ñ<Ô<×CÒCÀGÑLÔLˆØ#ˆ�VÑÝ" 4­#­uµiÐ)@ÑAÔAÐØÐ5¥¨¨fÑ 5Ô 5Ð5r   c                 ób   — t          | ¦  «        }|€t                               d| ¦  «         d}|S )NzCUnable to get length of the request body: %s. Skipping compression.r   )r   r   r   )r
   Úsizes     r   r%   r%   O   s>   € Ý# DÑ)Ô)€DØ€|Ý�Šð$àñ	
ô 	
ð 	
ð
 ˆØ€Kr   c                 óÚ  — t          d¦  «         t          | t          ¦  «        r"t          |                      d¦  «        ¦  «        S t          | t
          t          f¦  «        rt          | ¦  «        S t          | d¦  «        rit          | d¦  «        rJt          | d¦  «        r:|                      ¦   «         }t          | ¦  «        }|  
                    |¦  «         |S t          | ¦  «        S d S )NÚGZIP_REQUEST_COMPRESSIONr.   r0   ÚseekÚtell)r   r1   r4   Úgzip_compressr3   r5   r6   r7   r>   Ú_gzip_compress_fileobjr=   )r
   Úcurrent_positionÚcompressed_objs      r   Ú_gzip_compress_bodyrC   [   sã   € ÝÐ2Ñ3Ô3Ð3Ý�$�ÑÔð 
,Ý˜TŸ[š[¨Ñ1Ô1Ñ2Ô2Ð2Ý	�D�5¥)Ð,Ñ	-Ô	-ð ,Ý˜TÑ"Ô"Ð"Ý	��vÑ	Ô	ð ,Ý�4˜Ñ Ô ð 	"¥W¨T°6Ñ%:Ô%:ð 	"Ø#Ÿyšy™{œ{ÐÝ3°DÑ9Ô9ˆNØ�IŠIÐ&Ñ'Ô'Ð'Ø!Ð!Ý% dÑ+Ô+Ð+ð,ð ,r   c                 ó\  — t          j        ¦   «         }t          |d¬¦  «        5 }	 |                      d¦  «        }|sn@t	          |t
          ¦  «        r|                     d¦  «        }|                     |¦  «         ŒX	 d d d ¦  «         n# 1 swxY w Y   |                     d¦  «         |S )NÚwb)ÚfileobjÚmodeTi    r.   r   )	ÚioÚBytesIOr   r0   r1   r4   r3   Úwriter=   )r
   rB   ÚgzÚchunks       r   r@   r@   j   sé   € Ý”Z‘\”\€NÝ	˜.¨tÐ	4Ñ	4Ô	4ð ¸ð	Ø—I’I˜d‘O”OˆEØð ØÝ˜%¥Ñ%Ô%ð .ØŸš WÑ-Ô-�Ø�HŠH�U‰OŒOˆOð	ð ð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×Ò˜ÑÔÐØÐs   ¥ABÂBÂBc                 óV   — |                       d¦  «        }|€|| d<   d S |› d|› �| d<   d S )NzContent-Encodingú,)r   )r   r   Ú	ce_headers      r   r   r   x   sJ   € Ø—’Ð.Ñ/Ô/€IØÐØ&.ˆÐ"Ñ#Ð#Ð#à)2Ð&?Ð&?°XÐ&?Ð&?ˆÐ"Ñ#Ð#Ð#r   Úgzip)Ú__doc__rH   ÚloggingrP   r   r   r?   Úbotocore.compatr   Úbotocore.useragentr   Úbotocore.utilsr   Ú	getLoggerÚ__name__r   r   r   r    r%   rC   r@   r   r   © r   r   ú<module>rY      s  ððð ð 
€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *à %Ð %Ð %Ð %Ð %Ð %Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3à	ˆÔ	˜8Ñ	$Ô	$€ðOð Oð Oðð ð ð06ð 6ð 6ð	ð 	ð 	ð,ð ,ð ,ðð ð ð@ð @ð @ð Ð2Ð3Ð Ð Ð r   