+
    šÜiôa  ã                   óF  € ^ RI Ht ^ RIHtHtHtHtHtHt ^ RI	H
t
HtHtHtHtHt ^ RIHt ^ RIHt ^ RIHt  ! R R]4      t ! R	 R
]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR]R]R]R]R]R]R]/tR# )é    )ÚBytesIO)ÚSIGNED_HEADERS_BLACKLISTÚ"STREAMING_UNSIGNED_PAYLOAD_TRAILERÚUNSIGNED_PAYLOADÚ
BaseSignerÚ_get_body_as_dictÚ_host_from_url)ÚHTTPHeadersÚawscrtÚget_current_datetimeÚparse_qsÚurlsplitÚ
urlunsplit)ÚNoCredentialsError)Úregister_feature_id)Úpercent_encode_sequencec                   ó°   a € ] tR t^%t o Rt. ROt]P                  P                  P                  t
RtRtR tR tR tR tR tR tR tR	 tR
 tR tRtV tR# )ÚCrtSigV4AuthTc                ó8   € Wn         W n        W0n        R V n        R # ©N©ÚcredentialsÚ_service_nameÚ_region_nameÚ_expiration_in_seconds©Úselfr   Úservice_nameÚregion_names   &&&&Ú3/usr/lib/python3/dist-packages/botocore/crt/auth.pyÚ__init__ÚCrtSigV4Auth.__init__1   ó   € Ø&ÔØ)ÔØ'ÔØ&*ˆÖ#ó    c                ó´   € VP                   P                  R / 4      pVP                  R4      p\        V\        4      ;'       d    VP                  R4      R8H  # ©ÚchecksumÚrequest_algorithmÚinÚtrailer©ÚcontextÚgetÚ
isinstanceÚdict©r   ÚrequestÚchecksum_contextÚ	algorithms   &&  r    Ú_is_streaming_checksum_payloadÚ+CrtSigV4Auth._is_streaming_checksum_payload7   óM   € Ø"Ÿ?™?×.Ñ.¨z¸2Ó>ÐØ$×(Ñ(Ð)<Ó=ˆ	Ü˜)¤TÓ*×OÐO¨y¯}©}¸TÓ/BÀiÑ/OÐOr$   c                ó|  € V P                   f   \        4       h\        RR7      pV P                  V4      pV P	                  V4       \
        P                  P                  P                  V P                   P                  V P                   P                  V P                   P                  R7      pV P                  V4      '       d   \        pM+V P                  V4      '       d   V'       d   TpM	R pM\        pV P!                  V4      '       d&   \
        P                  P"                  P$                  pM$\
        P                  P"                  P&                  p\
        P                  P)                  \
        P                  P*                  P,                  V P.                  VV P0                  V P2                  VV P4                  V P6                  V P8                  VVV P:                  R7      pV P=                  V4      p\
        P                  P?                  W‡4      p	V	PA                  4        V PC                  W4       R # )NF©Úremove_tzinfo©Úaccess_key_idÚsecret_access_keyÚsession_token©r3   Úsignature_typeÚcredentials_providerÚregionÚserviceÚdateÚshould_sign_headerÚuse_double_uri_encodeÚshould_normalize_uri_pathÚsigned_body_valueÚsigned_body_header_typeÚexpiration_in_seconds)"r   r   r   Ú_get_existing_sha256Ú_modify_request_before_signingr   ÚauthÚAwsCredentialsProviderÚ
new_staticÚ
access_keyÚ
secret_keyÚtokenr4   r   Ú_should_sha256_sign_payloadr   Ú!_should_add_content_sha256_headerÚAwsSignedBodyHeaderTypeÚX_AMZ_CONTENT_SHA_256ÚNONEÚAwsSigningConfigÚAwsSigningAlgorithmÚV4Ú_SIGNATURE_TYPEr   r   Ú_should_sign_headerÚ_USE_DOUBLE_URI_ENCODEÚ_SHOULD_NORMALIZE_URI_PATHr   Ú_crt_request_from_aws_requestÚaws_sign_requestÚresultÚ_apply_signing_changes©
r   r1   Údatetime_nowÚexisting_sha256r@   Úexplicit_payloadÚbody_headerÚsigning_configÚcrt_requestÚfutures
   &&        r    Úadd_authÚCrtSigV4Auth.add_auth<   sÃ  € Ø×ÑÒ#Ü$Ó&Ð&ä+¸%Ô@ˆð ×3Ñ3°GÓ<ˆà×+Ñ+¨GÔ4ä%Ÿ{™{×AÑA×LÑLØ×*Ñ*×5Ñ5Ø"×.Ñ.×9Ñ9Ø×*Ñ*×0Ñ0ð  Mó  
Ðð ×.Ñ.¨w×7Ò7ÜAÑØ×-Ñ-¨g×6Ò6ßØ#2Ñ à#'Ñ ä/Ðà×1Ñ1Ð2B×CÒCä—‘×3Ñ3×IÑIñ ô !Ÿ+™+×=Ñ=×BÑBˆKäŸ™×5Ñ5Ü—k‘k×5Ñ5×8Ñ8Ø×/Ñ/Ø!5Ø×$Ñ$Ø×&Ñ&ØØ#×7Ñ7Ø"&×"=Ñ"=Ø&*×&EÑ&EØ.Ø$/Ø"&×"=Ñ"=ð 6ó 
ˆð ×8Ñ8¸ÓAˆÜ—‘×-Ñ-¨kÓJˆØ�‰ŒØ×#Ñ# GÖ9r$   c                ó  € \        VP                  4      pVP                  '       d   VP                  MR pVP                  '       dg   . pVP                  P	                  4        F&  w  rV\        V4      pVP                  V RV 24       K(  	  VR,           RP                  V4      ,           pM#VP                  '       d   V RVP                   2p\        P                  P                  VP                  P	                  4       4      pRpVP                  '       d?   \        VP                  R4      '       d   VP                  pM\        VP                  4      p\        P                  P!                  VP"                  VVVR7      p	V	# ©Ú/Ú=Ú?Ú&NÚseek)ÚmethodÚpathÚheadersÚbody_stream©r   Úurlrt   ÚparamsÚitemsÚstrÚappendÚjoinÚqueryr   ÚhttpÚHttpHeadersru   ÚbodyÚhasattrr   ÚHttpRequestrs   ©
r   Úaws_requestÚ	url_partsÚcrt_pathÚarrayÚparamÚvalueÚcrt_headersÚcrt_body_streamrh   s
   &&        r    r^   Ú*CrtSigV4Auth._crt_request_from_aws_requestq   ó<  € Ü˜[Ÿ_™_Ó-ˆ	Ø%.§^§^ ^�9—>’>¸ˆØ××ÐØˆEØ +× 2Ñ 2× 8Ñ 8Ö :‘�Ü˜E›
�Ø—‘ ˜w a¨ wÐ/Ö0ñ !;ð   #•~¨¯©°«Õ7‰HØ�_�_ˆ_Ø"˜ 1 Y§_¡_Ð$5Ð6ˆHä—k‘k×-Ñ-¨k×.AÑ.A×.GÑ.GÓ.IÓJˆð ˆØ××ÐÜ�{×'Ñ'¨×0Ò0Ø"-×"2Ñ"2‘ä")¨+×*:Ñ*:Ó";�ä—k‘k×-Ñ-Ø×%Ñ%ØØØ'ð	 .ó 
ˆð Ðr$   c                ób   € \         P                  ! \        VP                  4      4      Vn        R # r   ©r
   Ú
from_pairsÚlistru   ©r   r…   Úsigned_crt_requests   &&&r    ra   Ú#CrtSigV4Auth._apply_signing_changes�   ó$   € ä)×4Ò4ÜÐ#×+Ñ+Ó,ó
ˆÖr$   c                ó0   € VP                  4       \        9  # r   ©Úlowerr   ©r   ÚnameÚkwargss   &&,r    r[   Ú CrtSigV4Auth._should_sign_header•   ó   € Ø�z‰z‹|Ô#;Ñ;Ð;r$   c                óÔ   € V P                    F"  pW!P                  9   g   K  VP                  V K$  	  R VP                  9  d%   \        VP                  4      VP                  R &   R# R# ©ÚhostN©Ú_PRESIGNED_HEADERS_BLOCKLISTru   r	   rx   ©r   r1   Úhs   && r    rK   Ú+CrtSigV4Auth._modify_request_before_signing˜   óT   € ð ×2Ô2ˆAØ—O‘OÖ#Ø—O‘O AÒ&ñ 3ð ˜Ÿ™Ô(Ü&4°W·[±[Ó&AˆG�O‰O˜FÓ#ñ )r$   c                ó8   € VP                   P                  R 4      # ©úX-Amz-Content-SHA256©ru   r-   ©r   r1   s   &&r    rJ   Ú!CrtSigV4Auth._get_existing_sha256¢   ó   € Ø�‰×"Ñ"Ð#9Ó:Ð:r$   c                ó€   € VP                   P                  R 4      '       g   R# VP                  P                  RR4      # ©ÚhttpsTÚpayload_signing_enabled©rx   Ú
startswithr,   r-   r¬   s   &&r    rR   Ú(CrtSigV4Auth._should_sha256_sign_payload¥   ó4   € à�{‰{×%Ñ% g×.Ò.Ùð
 �‰×"Ñ"Ð#<¸dÓCÐCr$   c                ó
   € VR J# r   © ©r   re   s   &&r    rS   Ú.CrtSigV4Auth._should_add_content_sha256_header¯   ó   € à tÐ+Ð+r$   ©r   r   r   r   N©ÚAuthorizationz
X-Amz-Daterª   zX-Amz-Security-Token)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚREQUIRES_REGIONr£   r   rL   ÚAwsSignatureTypeÚHTTP_REQUEST_HEADERSrZ   r\   r]   r!   r4   rj   r^   ra   r[   rK   rJ   rR   rS   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r    r   r   %   sp   ø‡ € Ø€Oò$Ð ð —k‘k×2Ñ2×GÑG€OØ!ÐØ!%Ðò+òPò
3:òjò<
ò<òBò;òD÷,ð ,r$   r   c                   óF   a a€ ] tR t^´t oRtRtR tV 3R ltR tRt	Vt
V ;t# )ÚCrtS3SigV4AuthFc                ó   € R # r   r¸   r¬   s   &&r    rJ   Ú#CrtS3SigV4Auth._get_existing_sha256¹   ó   € ár$   c                ó$  <€ VP                   P                  R 4      p\        VRR4      pVf   / pVP                  RR4      pVe   V# RpVP                   P                  R/ 4      pVP                  R4      p\        V\        4      '       d    VP                  R4      R8X  d
   VR	,          pVP
                  P                  R
4      '       d   WQP                  9  d   R# VP                   P                  RR4      '       d   R# \        SV `%  V4      # )Úclient_configÚs3Nr²   úContent-MD5r'   r(   r)   Úheaderr›   r±   TÚhas_streaming_inputF)
r,   r-   Úgetattrr.   r/   rx   r´   ru   ÚsuperrR   )	r   r1   rÐ   Ú	s3_configÚsign_payloadÚchecksum_headerr2   r3   Ú	__class__s	   &&      €r    rR   Ú*CrtS3SigV4Auth._should_sha256_sign_payload½   sú   ø€ ð  Ÿ™×+Ñ+¨OÓ<ˆÜ˜M¨4°Ó6ˆ	ð ÒØˆIð !—}‘}Ð%>ÀÓEˆØÒ#ØÐð (ˆØ"Ÿ?™?×.Ñ.¨z¸2Ó>ÐØ$×(Ñ(Ð)<Ó=ˆ	Ü�i¤×&Ò&¨9¯=©=¸Ó+>À(Ô+JØ'¨Õ/ˆOà—‘×&Ñ& w×/Ò/Ø§o¡oÔ5áð �?‰?×ÑÐ4°e×<Ò<Ùô ‰wÑ2°7Ó;Ð;r$   c                ó   € R # ©Tr¸   r¹   s   &&r    rS   Ú0CrtS3SigV4Auth._should_add_content_sha256_headeræ   rÎ   r$   r¸   ©r¿   rÀ   rÁ   rÂ   r\   r]   rJ   rR   rS   rÆ   rÇ   Ú__classcell__©rÚ   rÉ   s   @@r    rË   rË   ´   s&   ù‡ € à"ÐØ!&Ðòõ'<÷Rò r$   rË   c                   ó°   a € ] tR t^ët o Rt. ROt]P                  P                  P                  t
RtRtR tR tR tR tR tR tR tR	 tR
 tR tRtV tR# )ÚCrtSigV4AsymAuthTc                ó8   € Wn         W n        W0n        R V n        R # r   r   r   s   &&&&r    r!   ÚCrtSigV4AsymAuth.__init__÷   r#   r$   c                ó’  € \        R 4       V P                  f   \        4       h\        RR7      pV P	                  V4      pV P                  V4       \        P                  P                  P                  V P                  P                  V P                  P                  V P                  P                  R7      pV P                  V4      '       d   \        pM+V P                  V4      '       d   V'       d   TpM	RpM\         pV P#                  V4      '       d&   \        P                  P$                  P&                  pM$\        P                  P$                  P(                  p\        P                  P+                  \        P                  P,                  P.                  V P0                  VV P2                  V P4                  VV P6                  V P8                  V P:                  VVV P<                  R7      pV P?                  V4      p\        P                  PA                  W‡4      p	V	PC                  4        V PE                  W4       R# )ÚSIGV4A_SIGNINGNFr8   r:   r>   )#r   r   r   r   rJ   rK   r   rL   rM   rN   rO   rP   rQ   r4   r   rR   r   rS   rT   rU   rV   rW   rX   ÚV4_ASYMMETRICrZ   r   r   r[   r\   r]   r   r^   r_   r`   ra   rb   s
   &&        r    rj   ÚCrtSigV4AsymAuth.add_authý   sÌ  € ÜÐ,Ô-Ø×ÑÒ#Ü$Ó&Ð&ä+¸%Ô@ˆð ×3Ñ3°GÓ<ˆà×+Ñ+¨GÔ4ä%Ÿ{™{×AÑA×LÑLØ×*Ñ*×5Ñ5Ø"×.Ñ.×9Ñ9Ø×*Ñ*×0Ñ0ð  Mó  
Ðð ×.Ñ.¨w×7Ò7ÜAÑØ×-Ñ-¨g×6Ò6ßØ#2Ñ à#'Ñ ä/Ðà×1Ñ1Ð2B×CÒCä—‘×3Ñ3×IÑIñ ô !Ÿ+™+×=Ñ=×BÑBˆKäŸ™×5Ñ5Ü—k‘k×5Ñ5×CÑCØ×/Ñ/Ø!5Ø×$Ñ$Ø×&Ñ&ØØ#×7Ñ7Ø"&×"=Ñ"=Ø&*×&EÑ&EØ.Ø$/Ø"&×"=Ñ"=ð 6ó 
ˆð ×8Ñ8¸ÓAˆÜ—‘×-Ñ-¨kÓJˆØ�‰ŒØ×#Ñ# GÖ9r$   c                ó  € \        VP                  4      pVP                  '       d   VP                  MR pVP                  '       dg   . pVP                  P	                  4        F&  w  rV\        V4      pVP                  V RV 24       K(  	  VR,           RP                  V4      ,           pM#VP                  '       d   V RVP                   2p\        P                  P                  VP                  P	                  4       4      pRpVP                  '       d?   \        VP                  R4      '       d   VP                  pM\        VP                  4      p\        P                  P!                  VP"                  VVVR7      p	V	# rm   rw   r„   s
   &&        r    r^   Ú.CrtSigV4AsymAuth._crt_request_from_aws_request3  rŽ   r$   c                ób   € \         P                  ! \        VP                  4      4      Vn        R # r   r�   r“   s   &&&r    ra   Ú'CrtSigV4AsymAuth._apply_signing_changesQ  r–   r$   c                ó0   € VP                  4       \        9  # r   r˜   rš   s   &&,r    r[   Ú$CrtSigV4AsymAuth._should_sign_headerW  rž   r$   c                óÔ   € V P                    F"  pW!P                  9   g   K  VP                  V K$  	  R VP                  9  d%   \        VP                  4      VP                  R &   R# R# r    r¢   r¤   s   && r    rK   Ú/CrtSigV4AsymAuth._modify_request_before_signingZ  r§   r$   c                ó8   € VP                   P                  R 4      # r©   r«   r¬   s   &&r    rJ   Ú%CrtSigV4AsymAuth._get_existing_sha256d  r®   r$   c                ó´   € VP                   P                  R / 4      pVP                  R4      p\        V\        4      ;'       d    VP                  R4      R8H  # r&   r+   r0   s   &&  r    r4   Ú/CrtSigV4AsymAuth._is_streaming_checksum_payloadg  r6   r$   c                ó€   € VP                   P                  R 4      '       g   R# VP                  P                  RR4      # r°   r³   r¬   s   &&r    rR   Ú,CrtSigV4AsymAuth._should_sha256_sign_payloadl  r¶   r$   c                ó
   € VR J# r   r¸   r¹   s   &&r    rS   Ú2CrtSigV4AsymAuth._should_add_content_sha256_headerv  r»   r$   r¼   Nr½   )r¿   rÀ   rÁ   rÂ   rÃ   r£   r   rL   rÄ   rÅ   rZ   r\   r]   r!   rj   r^   ra   r[   rK   rJ   r4   rR   rS   rÆ   rÇ   rÈ   s   @r    rã   rã   ë   sp   ø‡ € Ø€Oò$Ð ð —k‘k×2Ñ2×GÑG€OØ!ÐØ!%Ðò+ò4:òlò<
ò<òBò;òPò
D÷,ð ,r$   rã   c                   óF   a a€ ] tR tRt oRtRtR tV 3R ltR tRt	Vt
V ;t# )ÚCrtS3SigV4AsymAuthi{  Fc                ó   € R # r   r¸   r¬   s   &&r    rJ   Ú'CrtS3SigV4AsymAuth._get_existing_sha256€  rÎ   r$   c                ó^  <€ VP                   P                  R 4      p\        VRR4      pVf   / pVP                  RR4      pVe   V# VP                  P	                  R4      '       d   RVP
                  9  d   R# VP                   P                  RR4      '       d   R# \        SV `  V4      # )	rÐ   rÑ   Nr²   r±   rÒ   TrÔ   F)r,   r-   rÕ   rx   r´   ru   rÖ   rR   )r   r1   rÐ   r×   rØ   rÚ   s   &&   €r    rR   Ú.CrtS3SigV4AsymAuth._should_sha256_sign_payload„  s¨   ø€ ð  Ÿ™×+Ñ+¨OÓ<ˆÜ˜M¨4°Ó6ˆ	ð ÒØˆIð !—}‘}Ð%>ÀÓEˆØÒ#ØÐð —‘×&Ñ& w×/Ò/Ø G§O¡OÔ3áð �?‰?×ÑÐ4°e×<Ò<Ùô ‰wÑ2°7Ó;Ð;r$   c                ó   € R # rÝ   r¸   r¹   s   &&r    rS   Ú4CrtS3SigV4AsymAuth._should_add_content_sha256_header¨  rÎ   r$   r¸   rß   rá   s   @@r    rû   rû   {  s&   ù‡ € à"ÐØ!&Ðòõ"<÷Hò r$   rû   c                   ó”   a a€ ] tR tRt oRt]P                  P                  P                  t	]3V 3R llt
V 3R ltV 3R ltRtVtV ;t# )ÚCrtSigV4AsymQueryAuthi­  é  c                ó4   <€ \         SV `  WV4       W@n        R # r   ©rÖ   r!   r   ©r   r   r   r   ÚexpiresrÚ   s   &&&&&€r    r!   ÚCrtSigV4AsymQueryAuth.__init__±  ó   ø€ ô 	‰Ñ˜°KÔ@Ø&-Ö#r$   c                ó   <€ \         SV `  V4       VP                  P                  R 4      pVR8X  d   VP                  R  \	        VP
                  4      p\        VP                  RR7      pVP                  4        UUu/ uF  w  rVWV^ ,          bK  	  pppVP                  '       d"   VP                  \        V4      4       RVn	        \        V4      pTp	V	^ ,          V	^,          V	^,          W‰^,          3p
\        V
4      Vn        R# u uppi ©zcontent-typez0application/x-www-form-urlencoded; charset=utf-8T)Úkeep_blank_valuesÚ N)rÖ   rK   ru   r-   r   rx   r   r~   rz   ÚdataÚupdater   r   r   )r   r1   Úcontent_typer†   Úquery_string_partsÚkÚvÚ
query_dictÚnew_query_stringÚpÚnew_url_partsrÚ   s   &&         €r    rK   Ú4CrtSigV4AsymQueryAuth._modify_request_before_signing·  sð   ø€ Ü‰Ñ.¨wÔ7ð —‘×*Ñ*¨>Ó:ˆØÐMÔMØ—‘ Ð/ô ˜WŸ[™[Ó)ˆ	ô & i§o¡oÈÔNÐØ*<×*BÑ*BÔ*DÔEÑ*D¡$ !�a˜1�’gÑ*Dˆ
ÑEð �<�<ˆ<ð ×ÑÔ/°Ó8Ô9ØˆGŒLÜ2°:Ó>Ðð ˆØ˜1�˜q �t Q q¥TÐ+;¸q½TÐBˆÜ  Ó/ˆŽùó1 Fs   Á?D
c                óî   <€ \         SV `  W4       \        VP                  4      P                  p\        VP
                  4      p\        V^ ,          V^,          V^,          W4^,          34      Vn        R# ©r   N©rÖ   ra   r   rt   r~   rx   r   ©r   r…   r”   Úsigned_queryr  rÚ   s   &&&  €r    ra   Ú,CrtSigV4AsymQueryAuth._apply_signing_changesá  ó\   ø€ ä‰Ñ& {ÔGäÐ 2× 7Ñ 7Ó8×>Ñ>ˆÜ�[—_‘_Ó%ˆô % a¨¥d¨A¨a­D°!°Aµ$¸ÈÅdÐ%KÓLˆŽr$   ©r   ©r¿   rÀ   rÁ   rÂ   ÚDEFAULT_EXPIRESr   rL   rÄ   ÚHTTP_REQUEST_QUERY_PARAMSrZ   r!   rK   ra   rÆ   rÇ   rà   rá   s   @@r    r  r  ­  s<   ù‡ € Ø€OØ—k‘k×2Ñ2×LÑL€Oð ?N÷.õ(0÷TMõ Mr$   r  c                   ó8   a € ] tR tRt o RtRtRtR tR tRt	V t
R# )ÚCrtS3SigV4AsymQueryAuthiò  z–S3 SigV4A auth using query parameters.
This signer will sign a request using query parameters and signature
version 4A, i.e a "presigned url" signer.
Fc                ó   € R # ©Fr¸   r¬   s   &&r    rR   Ú3CrtS3SigV4AsymQueryAuth._should_sha256_sign_payloadü  ó   € ñ
 r$   c                ó   € R # r(  r¸   r¹   s   &&r    rS   Ú9CrtS3SigV4AsymQueryAuth._should_add_content_sha256_header  ó   € ár$   r¸   N©r¿   rÀ   rÁ   rÂ   Ú__doc__r\   r]   rR   rS   rÆ   rÇ   rÈ   s   @r    r&  r&  ò  s'   ø‡ € ñð #ÐØ!&Ðò÷ð r$   r&  c                   ó”   a a€ ] tR tRt oRt]P                  P                  P                  t	]3V 3R llt
V 3R ltV 3R ltRtVtV ;t# )ÚCrtSigV4QueryAuthi  r  c                ó4   <€ \         SV `  WV4       W@n        R # r   r  r  s   &&&&&€r    r!   ÚCrtSigV4QueryAuth.__init__  r
  r$   c                ó„  <€ \         S
V `  V4       VP                  P                  R 4      pVR8X  d   VP                  R  \	        VP
                  4      p\        VP                  RR7      P                  4        UUu/ uF  w  rEWE^ ,          bK  	  pppVP                  '       d#   VP                  VP                  4       / Vn	        VP                  '       d"   VP                  \        V4      4       RVn        \        V4      pTpV^ ,          V^,          V^,          Wx^,          3p	\        V	4      Vn        R# u uppi r  )rÖ   rK   ru   r-   r   rx   r   r~   rz   ry   r  r  r   r   r   )r   r1   r  r†   r  r  r  r  r  r  rÚ   s   &&        €r    rK   Ú0CrtSigV4QueryAuth._modify_request_before_signing  s!  ø€ Ü‰Ñ.¨wÔ7ð —‘×*Ñ*¨>Ó:ˆØÐMÔMØ—‘ Ð/ô ˜WŸ[™[Ó)ˆ	ô !Ø—‘°4ôç‰e‹gðô
ñ‘�ð ��tŠGñð 	ñ 
ð �>�>ˆ>Ø×Ñ˜gŸn™nÔ-ØˆGŒNð �<�<ˆ<ð ×ÑÔ/°Ó8Ô9ØˆGŒLÜ2°:Ó>Ðð ˆØ˜1�˜q �t Q q¥TÐ+;¸q½TÐBˆÜ  Ó/ˆŽùó?
s   Á=D<c                óî   <€ \         SV `  W4       \        VP                  4      P                  p\        VP
                  4      p\        V^ ,          V^,          V^,          W4^,          34      Vn        R# r  r  r  s   &&&  €r    ra   Ú(CrtSigV4QueryAuth._apply_signing_changesB  r   r$   r!  r"  rá   s   @@r    r1  r1    s<   ù‡ € Ø€OØ—k‘k×2Ñ2×LÑL€Oð ?N÷.õ.0÷`Mõ Mr$   r1  c                   ó8   a € ] tR tRt o RtRtRtR tR tRt	V t
R# )ÚCrtS3SigV4QueryAuthiS  zîS3 SigV4 auth using query parameters.
This signer will sign a request using query parameters and signature
version 4, i.e a "presigned url" signer.
Based off of:
http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html
Fc                ó   € R # r(  r¸   r¬   s   &&r    rR   Ú/CrtS3SigV4QueryAuth._should_sha256_sign_payload_  r*  r$   c                ó   € R # r(  r¸   r¹   s   &&r    rS   Ú5CrtS3SigV4QueryAuth._should_add_content_sha256_headerf  r-  r$   r¸   Nr.  rÈ   s   @r    r9  r9  S  s'   ø‡ € ñð #ÐØ!&Ðò÷ð r$   r9  Úv4zv4-queryÚv4aÚs3v4z
s3v4-queryÚs3v4azs3v4a-queryN)Úior   Úbotocore.authr   r   r   r   r   r	   Úbotocore.compatr
   r   r   r   r   r   Úbotocore.exceptionsr   Úbotocore.useragentr   Úbotocore.utilsr   r   rË   rã   rû   r  r&  r1  r9  ÚCRT_AUTH_TYPE_MAPSr¸   r$   r    Ú<module>rI     sÑ   ðõ ÷÷ ÷÷ õ 3Ý 2Ý 2ôL,�:ô L,ô^4�\ô 4ônM,�zô M,ô`/Ð)ô /ôdBMÐ,ô BMôJÐ3ô ô,HM˜ô HMôVÐ+ô ð6 	ˆ,ØÐ!Ø	ÐØ
ˆNØÐ%ØÐØÐ*ðÒ r$   