+
    VùCiŸ  ã                   ó`   € R t ^ RIt^ RIt^ RIHtHt ^ RIHt R tR t	R t
R tR tR	 tR
 tR# )zp
oauthlib.utils
~~~~~~~~~~~~~~

This module contains utility methods used by various parts of the OAuth 2 spec.
N)ÚquoteÚurlparse)Ú	urldecodec                óþ   € \        V \        4      '       g   V f   V # \        V \        \        \        34      '       d+   RP                  V  Uu. uF  p\        V4      NK  	  up4      # \        RV ,          4      hu upi )z5Convert a list of scopes to a space separated string.Ú z8Invalid scope (%s), must be string, tuple, set, or list.)Ú
isinstanceÚstrÚsetÚtupleÚlistÚjoinÚ
ValueError©ÚscopeÚss   & Ú?/usr/lib/python3/dist-packages/oauthlib/oauth2/rfc6749/utils.pyÚlist_to_scoper      se   € ä�%œ×Ò ¢ØˆÜ	�EœC¤¬Ð-×	.Ò	.Ø�x‰x©Ó/© Aœ˜Qž©Ñ/Ó0Ð0äÐSÐV[Õ[Ó\Ð\ùò 0s   ÁA:c                óÎ   € \        V \        \        \        34      '       d   V  Uu. uF  p\	        V4      NK  	  up# V f   R# V P                  4       P                  R4      # u upi )z5Convert a space separated string to a list of scopes.Nr   )r   r
   r   r	   r   ÚstripÚsplitr   s   & r   Úscope_to_listr      sS   € ä�%œ%¤¤sÐ+×,Ò,Ù %Ó&¡˜1”�A–¡Ñ&Ð&Ø	ŠÙà�{‰{‹}×"Ñ" 3Ó'Ð'ùò	 's   ¦A"c                 óŒ   € \        \        \        V 4      P                  4      4      pR V9   d   \	        VR ,          4      VR &   V# )r   )Údictr   r   Úqueryr   )ÚuriÚparamss   & r   Úparams_from_urir   "   s:   € Ü”)œH S›M×/Ñ/Ó0Ó1€FØ�&ÔÜ'¨¨w­Ó8ˆˆw‰Ø€Mó    c                ó¬   € RRRR/p\        V 4      w  r#rErgRV9   d   VP                  R^4      w  r8W83# VP                  VP                  4       4      pW83# )zmExtract hostname and port from URI.

Will use default port for HTTP and HTTPS if none is present in the URI.
ÚHTTPÚ80ÚHTTPSÚ443Ú:)r   r   ÚgetÚupper)	r   Údefault_portsÚschÚnetlocÚpathÚparr   ÚfraÚports	   &        r   Úhost_from_urir-   )   sj   € ð 	�Ø�ð€Mô
 *2°#«Ñ&€C�˜EØ
ˆf„}Ø—|‘| C¨Ó+‰ˆð ˆ<Ðð × Ñ  §¡£Ó-ˆàˆ<Ðr   c                ó|   € \        V \        4      '       g   \        R4      h\        V P	                  R4      RR7      # )zlEscape a string in an OAuth-compatible fashion.

TODO: verify whether this can in fact be used for OAuth 2

z#Only unicode objects are escapable.zutf-8ó   ~)Úsafe)r   r   r   r   Úencode)Úus   &r   Úescaper3   <   s3   € ô �aœ×ÒÜÐ>Ó?Ð?Ü�—‘˜'Ó"¨Ô.Ð.r   c                óö   € \         P                   P                  4       V ,
          pVP                  VP                  VP                  ^,          R,          ,           R,          ,           R,          p\        V4      # )z9Generate a age parameter for MAC authentication draft 00.i  i@B )ÚdatetimeÚnowÚmicrosecondsÚsecondsÚdaysr   )Ú
issue_timeÚtdÚages   &  r   Úgenerate_ager=   G   sZ   € ä	×	Ñ	×	Ñ	Ó	  :Õ	-€BØ�?‰?˜bŸj™j¨2¯7©7°R­<¸$Õ+>Õ>Øõõ Øõ €Cäˆs‹8€Or   c                óŽ   € \         P                  P                  R4      '       d   R# V P                  4       P	                  R4      # )zCheck if the uri is over ssl.ÚOAUTHLIB_INSECURE_TRANSPORTTzhttps://)ÚosÚenvironr$   ÚlowerÚ
startswith)r   s   &r   Úis_secure_transportrD   O   s0   € ä	‡z�z‡~�~Ð3×4Ò4ÙØ�9‰9‹;×!Ñ! *Ó-Ð-r   )Ú__doc__r5   r@   Úurllib.parser   r   Úoauthlib.commonr   r   r   r   r-   r3   r=   rD   © r   r   Ú<module>rI      s<   ðñó Û 	ß (å %ò]ò(òòò&/òô.r   