
    tni                     ,   d Z ddlZddlZddlZddl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 ddlmZmZ dd	lmZmZmZ  ej        e          Zd
dgZg dZdZdZdZ dZ! G d d          Z" G d d          Z# G d de$e#          Z%dS )zInternal module to help with normalizing botocore client args.

This module (and all function/classes within this module) should be
considered internal, and *not* a public API.

    N)Config)EndpointCreator)EndpointResolverBuiltins)EndpointRulesetResolver)RequestSigner)UserAgentStringregister_feature_id)$PRIORITY_ORDERED_SUPPORTED_PROTOCOLSensure_booleanis_s3_accelerate_urllegacyregional)zap-northeast-1z
ap-south-1zap-southeast-1zap-southeast-2
aws-globalzca-central-1zeu-central-1z
eu-north-1z	eu-west-1z	eu-west-2z	eu-west-3z	sa-east-1	us-east-1z	us-east-2z	us-west-1z	us-west-22   )when_supportedwhen_required)	preferreddisabledrequiredc                       e Zd Z	 d&dZ	 	 	 d'dZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd&dZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d  Z!d! Z"d" Z#d# Z$d$ Z%d% Z&dS )(ClientArgsCreatorNc                     || _         || _        || _        || _        || _        |t          j                    | _        d S || _        d S N)_event_emitter_response_parser_factory_loader_exceptions_factory_config_storer   from_environment_session_ua_creator)selfevent_emitter
user_agentresponse_parser_factoryloaderexceptions_factoryconfig_storeuser_agent_creators           J/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/botocore/args.py__init__zClientArgsCreator.__init__V   sV     ,(?%#5 )%'6'G'I'ID$$$'9D$$$    c                 0   |                      |||	||||          }|d         }|d         }|d         }|d         }|d         }|d         }|d                             dd           }|d	         }|d
         }|d         }|d         }|d         }t          j        | j                  }t	          |j        ||d         |d         |||
          }||d<   t          di |}t          |          }|                    |||d         || j	        |j
        |j        |j        |j        f||j        |j                  }d| }dt           j        j        i} |                    ||||            t           j                            ||| d                   }!t           j                            |          }"|                     ||||||||||	|||          }#| j                            |          }$|r|j        nd }%|%|_        |!||"|||| j        ||| j        |#|$dS )Nservice_nameparameter_validationendpoint_configprotocolconfig_kwargs	s3_configmetadata	partitionsocket_optionsconfigured_endpoint_urlsigning_regionregion_nameaccount_id_endpoint_modesigning_namesignature_versions3endpoint_url)
r9   r>   verifyr%   max_pool_connectionsproxiestimeoutr6   client_certproxies_configzcreating-serializer.timestamp_precision)protocol_nameservice_modelserializer_kwargs)rE   )
serializerendpointresponse_parserr#   request_signerrG   r&   client_configr5   r'   endpoint_ruleset_resolverr)    )compute_client_argsgetcopyr   r   
service_idr   r   create_endpointr   r@   rA   connect_timeoutread_timeoutrC   rD   botocore	serializeTIMESTAMP_PRECISION_DEFAULTemitcreate_serializerparserscreate_parser_build_endpoint_resolverr!   with_client_configr$   _supplied_user_agentr   r   )&r"   rG   r9   	is_securer>   r?   credentialsscoped_configrM   endpoint_bridge
auth_tokenendpoints_ruleset_datapartition_data
final_argsr.   r/   r0   r1   r2   r3   r5   r6   r7   r8   endpoint_region_namer:   r#   signer
new_configendpoint_creatorrJ   
event_namerH   rI   rK   ruleset_resolverclient_ua_creatorsupplied_uas&                                         r*   get_client_argsz!ClientArgsCreator.get_client_argsj   s    --
 

 ".1)*@A$%67j)"?3{+	#J/33KFF	#$45",-F"G()9:.}=#01K#L 	$"566$N+/0
 
 (d,,m,,
*=99#33,(8$($A!+!@&/1HI)".%4 4 
 
 ;L::
!8#5#Q
 	"'/	 	 	
 	
 	
 '99  12G H : 
 


 #*88BB88" #$
 
" !4GG
 
 3@Im..T*5
' % .*$*l'""&":)9"3
 
 	
r,   c                    |j         }|j        }	d}
|r
|j        sd}
n(|r&|                    d          }|t	          |          }
|                     |          }|                     ||          }|t          d           |                     ||||||          }|d                             dg           }| j	        
                    |                                          }t          |d	         |d
         |          }d|v r|                    d           d|v r|                    d           ||                    |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j                    | !                    |           | "                    |           | #                    |           | $                    |           | %                    |           | &                    |           | '                    |           | (                    ||           | )                    ||           | *                    ||           |                     |          }| +                    |          }|rd|v r	|i }d|d<   ||
|||	||| ,                    ||          dS )NTFr/   )rM   r>   ENDPOINT_OVERRIDE)r.   r9   r>   ra   rd   r3   r4   tagsr9   r<   )r9   r<   r$   	dualstack)use_dualstack_endpointfips)use_fips_endpoint)rU   rV   r@   rA   rD   retriesrC   inject_host_prefixtcp_keepaliveuser_agent_extrauser_agent_appid"request_min_compression_size_bytesdisable_request_compressionclient_context_paramssigv4a_signing_region_setrequest_checksum_calculationresponse_checksum_validationr:   auth_scheme_preferencerv   )r.   r/   r7   r0   r1   r2   r3   r6   )-endpoint_prefixresolved_protocolr/   rQ   r   compute_s3_config _compute_configured_endpoint_urlr	   _compute_endpoint_configr!   r_   	to_stringdictupdaterU   rV   r@   rA   rD   ry   rC   rz   r{   r|   r}   r~   r   r   r   r   r   r:   r   _compute_retry_config_compute_connect_timeout _compute_user_agent_appid_config#_compute_request_compression_config)_compute_sigv4a_signing_region_set_config_compute_checksum_config(_compute_account_id_endpoint_mode_config_compute_inject_host_prefix&_compute_auth_scheme_preference_config!_compute_signature_version_config_is_s3_service_compute_socket_options)r"   rG   rM   rd   r9   r>   ra   rc   r.   r1   r/   	raw_valuer3   r7   r0   endpoint_variant_tagspreliminary_ua_stringr2   is_s3_services                      r*   rP   z%ClientArgsCreator.compute_client_args   s    %4 2# 	A!C 	A#(   	A%))*@AAI$'5i'@'@$**=99	"&"G"G'% #H #
 #
 #. 344477%#0+ 8 
 
 !0
 ; ? ? K K !% 8 K K!
 !

)++ 	 '6-.AB,
 
 

 ///   ===***  4 888$   - =*7%2%G%-,;%-)5#0#C+9!.!?!.!?!D "=&3&I!; "> ">)6)O'4'K; !   > 	""=111%%m444--m<<<00???66}EEE%%m44455mDDD((FFF33=	
 	
 	
 	..}mLLL**=99	++L99 	7[,AAA 	26I./ )$8'>. *""::} 
 
 	
r,   c                 v    ||j         dk    r+| j                            d          }|| |d<   d S d|d<   d S d S )NUNSETdisable_host_prefix_injectionrz   T)_inject_host_prefixr   get_config_variable)r"   rM   r2   (configured_disable_host_prefix_injections       r*   r   z-ClientArgsCreator._compute_inject_host_prefixd  s{     !0G;; "663  5
 8C A@ (   7;2333 <;r,   c                     ||S |                      |          rt                              d           |S | j                            d          S )Nz"Ignoring configured endpoint URLs.r>   ) _ignore_configured_endpoint_urlsloggerdebugr   r   )r"   rM   r>   s      r*   r   z2ClientArgsCreator._compute_configured_endpoint_urlw  sT    #00?? 	 LL=>>>!55nEEEr,   c                 V    |r|j         |j         S | j                            d          S )Nignore_configured_endpoint_urls)r   r   r   )r"   rM   s     r*   r   z2ClientArgsCreator._ignore_configured_endpoint_urls  s;    	A=I @@!55-
 
 	
r,   c                     | j                             d          }|?|j        8||j        }n.|                                }|                    |j                   |S )Nr=   )r   r   r=   rR   r   )r"   rM   s3_configurations      r*   r   z#ClientArgsCreator.compute_s3_config  sm    -AA$GG $+#+'4'7$$ (8'<'<'>'>$$++M,<===r,   c                 
    |dv S )a,  Whether the service is S3 or S3 Control.

        Note that throughout this class, service_name refers to the endpoint
        prefix, not the folder name of the service in botocore/data. For
        S3 Control, the folder name is 's3control' but the endpoint prefix is
        's3-control'.
        )r=   z
s3-controlrO   )r"   r.   s     r*   r   z ClientArgsCreator._is_s3_service  s     333r,   c                 |    |||||d}|dk    r | j         dd|i|S |dk    r | j        di |S  | j        di |S )N)r.   r9   r>   ra   rd   r=   r3   stsrO   )_compute_s3_endpoint_config_compute_sts_endpoint_config_resolve_endpoint)r"   r.   r9   r>   ra   rd   r3   resolve_endpoint_kwargss           r*   r   z*ClientArgsCreator._compute_endpoint_config  s     )&(".#
 #
 4343  #'>   5  444OO7NOOO%t%@@(?@@@r,   c                     |                      |d         |          }|rd |d<    | j        di |}|                     ||d                    |r|d         dk    rd|d<   |S )Nr9   rd   r   r   rO   )_should_force_s3_globalr   !_set_region_if_custom_s3_endpoint)r"   r3   r   force_s3_globalr0   s        r*   r   z-ClientArgsCreator._compute_s3_endpoint_config  s     66#M2I
 
  	:59#M20$0KK3JKK..45FG	
 	
 	
  	9}=MM-8OM*r,   c                 d    d}|r!d|v r|d         }|                      |           |dv }|dk    o|S )Nr   us_east_1_regional_endpoint)r   N)_validate_s3_regional_config)r"   r9   r3   s3_regional_configis_global_regions        r*   r   z)ClientArgsCreator._should_force_s3_global  sZ    % 	B6)CC!*+H!I--.@AAA&*==!X-B2BBr,   c                 X    |t           vr t          j                            |          d S )N)%s3_us_east_1_regional_endpoint_config)VALID_REGIONAL_ENDPOINTS_CONFIGrW   
exceptions+InvalidS3UsEast1RegionalEndpointConfigError)r"   
config_vals     r*   r   z.ClientArgsCreator._validate_s3_regional_config  s:    <<<%QQ6@ R    =<r,   c                     |d         5|d         /|                     d          }|d         |d<   |d         |d<   d S d S d S )Nr8   r9   r=   resolve)r"   r0   rd   rJ   s       r*   r   z3ClientArgsCreator._set_region_if_custom_s3_endpoint  sb     ,-5.6&..t44H089I0JO,--5m-DOM*** 6566r,   c                      | j         di |}|                     |d         |d         |          r|                     ||d                    |S )Nr9   r>   ra   rO   )r   _should_set_global_sts_endpoint_set_global_sts_endpoint)r"   r   r0   s      r*   r   z.ClientArgsCreator._compute_sts_endpoint_config  ss    0$0KK3JKK//#M2#N3
 
 	
 ))!8!E   r,   c                     |o(|                     di                                d          }|s|rdS |                                 dk    o|t          v S )Nr4   rt   Fr   )rQ   "_get_sts_regional_endpoints_configLEGACY_GLOBAL_STS_REGIONS)r"   r9   r>   r0   has_variant_tagss        r*   r   z1ClientArgsCreator._should_set_global_sts_endpoint  sq     + /B/B0
 0

#f++ 	  	+ 	53355A 988	
r,   c                     | j                             d          }|sd}|t          vr t          j                            |          |S )Nsts_regional_endpointsr   )sts_regional_endpoints_config)r   r   r   rW   r   &InvalidSTSRegionalEndpointsConfigError)r"   r   s     r*   r   z4ClientArgsCreator._get_sts_regional_endpoints_config  sl    (,(:(N(N$)
 )
% - 	7,6))23 3 %LL.K M    -,r,   c                 ,    |rdnd}| d|d<   d|d<   d S )Nhttpshttpz://sts.amazonaws.comr>   r   r8   rO   )r"   r0   ra   schemes       r*   r   z*ClientArgsCreator._set_global_sts_endpoint  s4    %16-3*I*I*I',7()))r,   c                 2    |                     ||||          S r   r   )r"   r.   r9   r>   ra   rd   s         r*   r   z#ClientArgsCreator._resolve_endpoint   s%     &&+|Y
 
 	
r,   c                     t           j        t           j        dfg}|o|j        }|| j                            d          }|r,|                    t           j        t           j        df           |S )N   r{   )	socketIPPROTO_TCPTCP_NODELAYr{   r   r   append
SOL_SOCKETSO_KEEPALIVE)r"   rc   rM   r6   client_keepalives        r*   r   z)ClientArgsCreator._compute_socket_options,  s{     "-v/A1EF(H]-H##1EE     	O!!6#4f6I1"MNNNr,   c                 Z    |                      |           |                     |           d S r   )_compute_retry_max_attempts_compute_retry_moder"   r2   s     r*   r   z'ClientArgsCreator._compute_retry_config;  s0    ((777  /////r,   c                 
   |                     d          }|?d|v r|                    dd            d S d|v r|                    d          }|dz   |d<   d S | j                            d          }||i }||d<   ||d<   d S d S )Nry   total_max_attemptsmax_attemptsr   )rQ   popr   r   )r"   r2   ry   valuer   s        r*   r   z-ClientArgsCreator._compute_retry_max_attempts?  s      ##I..#w..ND111((N33 16	,- )==nMM#+2i(,8G()))	 $#r,   c                     |                     d          }|i }||d<   nd|v rd S | j                            d          }|d}||d<   d S )Nry   mode
retry_moder   rQ   r   r   )r"   r2   ry   r   s       r*   r   z%ClientArgsCreator._compute_retry_mode_  sl    ##I..?G'.M)$$w F';;LII
!J$r,   c                 ~    |                     d          }|d S | j                            d          }|r||d<   d S d S )NrU   r   )r"   r2   rU   s      r*   r   z*ClientArgsCreator._compute_connect_timeoutm  sc     (++,=>>&F,@@
 
  	?/>M+,,,	? 	?r,   c                 (   |                     d          }|                     d          }|| j                            d          }|                     |          }||d<   || j                            d          }nt	          |          }||d<   d S )Nr~   r   )rQ   r   r   _validate_min_compression_sizer   )r"   r2   min_sizer   s       r*   r   z5ClientArgsCreator._compute_request_compression_configz  s     $$%IJJ $$%BCC)==4 H 66x@@>F:;)==- HH
 &h//H7?3444r,   c                 D   d}d}d| d}	 t          |          }nJ# t          t          f$ r6 | dt          |           d}t          j                            |          w xY w||cxk    r|k    s-n | d| d	| d
}t          j                            |          |S )Nr   i   zInvalid value "z)" for request_min_compression_size_bytes.z$ Value must be an integer. Received z	 instead.	error_msgz Value must be between z and .)int
ValueError	TypeErrortyperW   r   InvalidConfigError)r"   r   min_allowed_min_sizemax_allowed_min_sizeerror_msg_basemsgs         r*   r   z0ClientArgsCreator._validate_min_compression_size  s!    &2h 2 2 2 		H8}}HHI& 	H 	H 	H! 6 6 NN6 6 6  %8838GGG	H $xGGGG3GGGGG! F F'F F.BF F F  %8838GGGs
    AA#c                 `    t          |t                    r|S |                                dk    S )Ntrue)
isinstanceboollower)r"   vals     r*   _ensure_booleanz!ClientArgsCreator._ensure_boolean  s,    c4   	)J99;;&((r,   c           
      T   |d S |                      |          pi }|j        }|dv s||}n|}|                     ||||
||j        ||          }|
|j        pi }ni }|                     |          r|                    |           ||j        nd }t          |||||||	|          S )N)r=   r   )r9   r.   r3   rd   client_endpoint_urllegacy_endpoint_urlrb   r:   )endpoint_ruleset_datarg   rG   builtinsclient_contextr#   use_sslrequested_auth_scheme)	r   r   *compute_endpoint_resolver_builtin_defaultshostr   r   r   r<   r   )r"   rf   rg   rM   rG   ri   r9   r>   rJ   ra   rd   r#   rb   r:   s3_config_rawservice_name_raweprv2_region_nameresolver_builtinsr  sig_versions                       r*   r^   z*ClientArgsCreator._build_endpoint_resolver  s     ")4 ..}==C(8 },,0C 4 + KK))#+ , (#%= L 	
 	
 $*@FBNNN/00 	1!!-000 ( ++ 	
 '"8)'&)'"-	
 	
 	
 		
r,   c	                    |r|}	n|                                 s|}	nd }	|                    dd          rd}
nD|)t          |          s|                    d          dk    }
n|                    d          dk    }
t          j        |t          j        |	d u r|                    d          pdt          j        |	d u r|                    |          pdt          j	        | 
                    |d d           t          j        |                     ||          t          j        |                    dd          t          j        |
t          j        |                    dd	          t          j        |                    dd          t          j        |                    d
d          t          j        |	t          j        |r|                    d          nd t          j        |iS )Nuse_accelerate_endpointFaddressing_stylevirtualpathrx   )r9   r>   r0   use_arn_regionT$s3_disable_multiregion_access_points
account_id)resolver_uses_builtin_datarQ   r   EPRBuiltins
AWS_REGIONAWS_USE_FIPS$_resolve_endpoint_variant_config_varAWS_USE_DUALSTACK_resolve_use_dualstack_endpointAWS_STS_USE_GLOBAL_ENDPOINTr   AWS_S3_USE_GLOBAL_ENDPOINTr   AWS_S3_ACCELERATEAWS_S3_FORCE_PATH_STYLEAWS_S3_USE_ARN_REGIONAWS_S3CONTROL_USE_ARN_REGIONAWS_S3_DISABLE_MRAPSDK_ENDPOINT
ACCOUNT_IDget_deferred_propertyACCOUNT_ID_ENDPOINT_MODE)r"   r9   r.   r3   rd   r  r  rb   r:   given_endpointforce_path_styles              r*   r
  z<ClientArgsCreator.compute_endpoint_resolver_builtin_defaults  s$     	"0NN !;;== 	"0NN!N ==2E:: 	K$ ,5I6
 6
,  )}}-?@@IM(}}-?@@FJ "K$$&  $HH'  )$&  $CC   344 +!%$( 5   2,,[)DD)9==)5, , /1A-y}} $0 0 4imm %7 7 +Y]]6. . $n" %K$E$E% % % 02Jg4
 4	
r,   c                     |                     d          }|| j                            d          }|8t          |          t          k    r t
                              dt                     ||d<   d S )Nr}   zVThe configured value for user_agent_appid exceeds the maximum length of %d characters.)rQ   r   r   lenUSERAGENT_APPID_MAXLENr   warning)r"   r2   r}   s      r*   r   z2ClientArgsCreator._compute_user_agent_appid_configN  s    (,,-?@@##1EE"    ($%%(>>>NN3&  
 -=()))r,   c                 r    |                     d          }|| j                            d          }||d<   d S )Nr   r   )r"   r2   r   s      r*   r   z;ClientArgsCreator._compute_sigv4a_signing_region_set_config_  sS    $1$5$5'%
 %
! %,(,(:(N(N+) )% 6O1222r,   c                 z    |                      |dt                     |                      |dt                     d S )Nr   )
config_keyvalid_optionsr   )_handle_checksum_config)VALID_REQUEST_CHECKSUM_CALCULATION_CONFIG)VALID_RESPONSE_CHECKSUM_VALIDATION_CONFIGr   s     r*   r   z*ClientArgsCreator._compute_checksum_configi  sZ    $$5C 	% 	
 	
 	

 	$$5C 	% 	
 	
 	
 	
 	
r,   c                 <   |                     |          }|| j                            |          }t          |t                    r|                                }||vr"t          j                            |||          | 	                    ||           |||<   d S )N)r3  config_valuer4  )
rQ   r   r   r   strr   rW   r   InvalidChecksumConfigError%_register_checksum_config_feature_ids)r"   r2   r3  r4  r   s        r*   r5  z)ClientArgsCreator._handle_checksum_configu  s     !!*--=&:::FFEeS!! 	"KKMME%%%@@%"+ A   
 	225*EEE$)j!!!r,   c                     d }|dk    rd|                                  }n|dk    rd|                                  }|t          |           d S d S )Nr   FLEXIBLE_CHECKSUMS_REQ_r   FLEXIBLE_CHECKSUMS_RES_)upperr	   )r"   r   r3  checksum_config_feature_ids       r*   r<  z7ClientArgsCreator._register_checksum_config_feature_ids  sz    %)"7779%++--99 '& 9999%++--99 ' &1 :;;;;; 21r,   c           	         d}|                     d          }|t          j        u rd||<   d S |                     |          }|| j                            |          }t          |t                    r|                                }|t          vr/t          j	        
                    d| d| dt           d          |||<   d S )	Nr:   r<   r   zThe configured value 'z' for 'z ' is invalid. Valid values are: r   r   )rQ   rW   UNSIGNEDr   r   r   r:  r   %VALID_ACCOUNT_ID_ENDPOINT_MODE_CONFIGr   r   )r"   r2   r3  r<   r:   s        r*   r   z:ClientArgsCreator._compute_account_id_endpoint_mode_config  s   /
 *--.ABB 111(2M*%F#0#4#4Z#@#@ #+'+'9'M'M( ($ .44 	H'?'E'E'G'G$ %89 9 %88W3K W WT^ W W.SW W W 9   
 %=j!!!r,   c                    d}d}|r|j         r
|j         }d}n| j                            |          }|d ||<   d S t          |t                    s6t
          j                            | dt          |           d| d          d	                    d	 |
                    d          D                       }|rt          |          }|||<   d S )
Nr   FTz, must be a comma-delimited string. Received z
 instead: r   r   ,c              3      K   | ]B}|                                 |                    d d                              dd          V  CdS )  	N)stripreplace).0items     r*   	<genexpr>zKClientArgsCreator._compute_auth_scheme_preference_config.<locals>.<genexpr>  sb       
 
zz||
LLb!!))$33
 
 
 
 
 
r,   )r   r   r   r   r:  rW   r   r   r   joinsplitClientConfigString)r"   rM   r2   r3  set_in_config_objectr   s         r*   r   z8ClientArgsCreator._compute_auth_scheme_preference_config  s-    .
$ 	G]A 	G!8E#'  &:::FFE=(,M*%F%%% 	%88! @ @ $U@ @7<@ @ @ 9     
 
C((
 
 
 
 
   	.&u--E$)j!!!r,   c                     |r7|j         r2|j         }t          |t                    rt          |          |d<   d S d S d S d S )Nr<   )r<   r   r:  rR  )r"   rM   r2   r   s       r*   r   z3ClientArgsCreator._compute_signature_version_config  sn     	O]< 	O!3E%%% O5G5N5N1222	O 	O 	O 	OO Or,   r   )NNN)'__name__
__module____qualname__r+   rq   rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r^   r
  r   r   r   r5  r<  r   r   r   rO   r,   r*   r   r   U   sy         : : : :> #z
 z
 z
 z
x|
 |
 |
|; ; ;&F F F	
 	
 	
     &4 4 4A A A0  *C C C  E E E
 
 

 
 
- - -8 8 8


 

 

   0 0 09 9 9@% % %? ? ?@ @ @,  0) ) )B
 B
 B
HZ
 Z
 Z
x= = ="O O O

 

 

* * *,< < <= = =<!* !* !*FO O O O Or,   r   c                       e Zd ZdZdS )ConfigObjectWrapperz8Base class to mark values set via in-code Config object.N)rU  rV  rW  __doc__rO   r,   r*   rY  rY    s        BBDr,   rY  c                         e Zd Zd fd	Z xZS )rR  Nc                 H    t                                          | |          S r   )super__new__)clsr   	__class__s     r*   r^  zClientConfigString.__new__  s    wwsE***r,   r   )rU  rV  rW  r^  __classcell__)r`  s   @r*   rR  rR    s=        + + + + + + + + + +r,   rR  )&rZ  rR   loggingr   botocore.exceptionsrW   botocore.parsersbotocore.serializebotocore.configr   botocore.endpointr   botocore.regionsr   r  r   botocore.signersr   botocore.useragentr   r	   botocore.utilsr
   r   r   	getLoggerrU  r   r   r   r/  r6  r7  rD  r   rY  r:  rR  rO   r,   r*   <module>rm     s                   " " " " " " - - - - - - D D D D D D 4 4 4 4 4 4 * * * * * * C C C C C C C C          
	8	$	$ #    (  - )- )) %HO HO HO HO HO HO HO HOV	 	 	 	 	 	 	 	+ + + + +1 + + + + +r,   