+
    i                     n   R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
HtHt ^ RIHtHt ^ RIHtHtHtHtHtHt ]P.                  ! ]4      t]t ! R R4      tR tR 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]&]$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*]+]!4      t/R+]#R,]"R-]*R.]-R/]/R0]./t0R# )1a  Response parsers for the various protocol types.

The module contains classes that can take an HTTP response, and given
an output shape, parse the response into a dict according to the
rules in the output shape.

There are many similarities amongst the different protocols with regard
to response parsing, and the code is structured in a way to avoid
code duplication when possible.  The diagram below is a diagram
showing the inheritance hierarchy of the response classes.

::


                                +-------------------+
                                |   ResponseParser  |
                                +-------------------+
                                ^    ^    ^   ^   ^
                                |    |    |   |   |
                                |    |    |   |   +--------------------------------------------+
                                |    |    |   +-----------------------------+                  |
                                |    |    |                                 |                  |
           +--------------------+    |    +----------------+                |                  |
           |                         |                     |                |                  |
+----------+----------+       +------+-------+     +-------+------+  +------+-------+   +------+--------+
|BaseXMLResponseParser|       |BaseRestParser|     |BaseJSONParser|  |BaseCBORParser|   |BaseRpcV2Parser|
+---------------------+       +--------------+     +--------------+  +----------+---+   +-+-------------+
          ^         ^          ^           ^        ^        ^                  ^         ^
          |         |          |           |        |        |                  |         |
          |         |          |           |        |        |                  |         |
          |        ++----------+-+       +-+--------+---+    |              +---+---------+-+
          |        |RestXMLParser|       |RestJSONParser|    |              |RpcV2CBORParser|
    +-----+-----+  +-------------+       +--------------+    |              +---+---------+-+
    |QueryParser|                                            |
    +-----------+                                       +----+-----+
                                                        |JSONParser|
                                                        +----------+

The diagram above shows that there is a base class, ``ResponseParser`` that
contains logic that is similar amongst all the different protocols (``query``,
``json``, ``rest-json``, ``rest-xml``, ``smithy-rpc-v2-cbor``).  Amongst the various services
there is shared logic that can be grouped several ways:

* The ``query`` and ``rest-xml`` both have XML bodies that are parsed in the
  same way.
* The ``json`` and ``rest-json`` protocols both have JSON bodies that are
  parsed in the same way.
* The ``rest-json`` and ``rest-xml`` protocols have additional attributes
  besides body parameters that are parsed the same (headers, query string,
  status code).

This is reflected in the class diagram above.  The ``BaseXMLResponseParser``
and the BaseJSONParser contain logic for parsing the XML/JSON body,
and the BaseRestParser contains logic for parsing out attributes that
come from other parts of the HTTP response.  Classes like the
``RestXMLParser`` inherit from the ``BaseXMLResponseParser`` to get the
XML body parsing logic and the ``BaseRestParser`` to get the HTTP
header/status code/query string parsing.

Additionally, there are event stream parsers that are used by the other parsers
to wrap streaming bodies that represent a stream of events. The
BaseEventStreamParser extends from ResponseParser and defines the logic for
parsing values from the headers and payload of a message from the underlying
binary encoding protocol. Currently, event streams support parsing bodies
encoded as JSON and XML through the following hierarchy.


                                  +--------------+
                                  |ResponseParser|
                                  +--------------+
                                    ^    ^    ^
               +--------------------+    |    +------------------+
               |                         |                       |
    +----------+----------+   +----------+----------+    +-------+------+
    |BaseXMLResponseParser|   |BaseEventStreamParser|    |BaseJSONParser|
    +---------------------+   +---------------------+    +--------------+
                     ^                ^        ^                 ^
                     |                |        |                 |
                     |                |        |                 |
                   +-+----------------+-+    +-+-----------------+-+
                   |EventStreamXMLParser|    |EventStreamJSONParser|
                   +--------------------+    +---------------------+

Return Values
=============

Each call to ``parse()`` returns a dict has this form::

    Standard Response

    {
      "ResponseMetadata": {"RequestId": <requestid>}
      <response keys>
    }

    Error response

    {
      "ResponseMetadata": {"RequestId": <requestid>}
      "Error": {
        "Code": <string>,
        "Message": <string>,
        "Type": <string>,
        <additional keys>
      }
    }

N)ETreeXMLParseError)EventStreamNoInitialResponseError)CachedPropertyensure_booleanis_json_value_headerlowercase_dictmerge_dictsparse_timestampc                   2   a  ] tR t^t o R tR tR tRtV tR# )ResponseParserFactoryc                    / V n         R # N	_defaultsselfs   &2/usr/lib/python3/dist-packages/botocore/parsers.py__init__ResponseParserFactory.__init__   s	        c                <    V P                   P                  V4       R# )a'  Set default arguments when a parser instance is created.

You can specify any kwargs that are allowed by a ResponseParser
class.  There are currently two arguments:

    * timestamp_parser - A callable that can parse a timestamp string
    * blob_parser - A callable that can parse a blob type

N)r   update)r   kwargss   &,r   set_parser_defaults)ResponseParserFactory.set_parser_defaults   s     	f%r   c                @    \         V,          pV! R/ V P                  B # )N )PROTOCOL_PARSERSr   )r   protocol_name
parser_clss   && r   create_parser#ResponseParserFactory.create_parser   s    %m4
+DNN++r   r   N)	__name__
__module____qualname____firstlineno__r   r   r"   __static_attributes____classdictcell____classdict__s   @r   r   r      s     
&, ,r   r   c                 4    \        4       P                  V 4      # r   )r   r"   )protocols   &r   r"   r"      s     "00::r   c                    a  V 3R  lpV# )c                 d   < \        VR 4      '       d   VP                  pVf   RpMTpS! WV4      # )text )hasattrr0   )r   shapenode_or_stringr0   funcs   &&& r   _get_text_content(_text_content.<locals>._get_text_content   s:    >6**!&&D| !DD&&r   r   )r5   r6   s   f r   _text_contentr8      s    
' r   c                       ] tR t^tRtR# )ResponseParserErrorr   N)r$   r%   r&   r'   r(   r   r   r   r:   r:      s    r   r:   c                      a  ] tR t^t o RtRtRtRtRR l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R tR tR tR tRtV tR# )ResponseParseraS  Base class for response parsing.

This class represents the interface that all ResponseParsers for the
various protocols must implement.

This class will take an HTTP response and a model shape and parse the
HTTP response into a dictionary.

There is a single public method exposed: ``parse``.  See the ``parse``
docstring for more info.

utf-8Nc                    Vf   \         pWn        Vf   V P                  pW n        R V n        V P
                  e   V P                  W4      V n        R # R # r   )DEFAULT_TIMESTAMP_PARSER_timestamp_parser_default_blob_parser_blob_parser_event_stream_parserEVENT_STREAM_PARSER_CLS)r   timestamp_parserblob_parsers   &&&r   r   ResponseParser.__init__   sZ    #7!133K'$(!''3(,(D(D )D% 4r   c                .    \         P                  ! V4      # r   )base64	b64decoder   values   &&r   rA   #ResponseParser._default_blob_parser   s     &&r   c                   \         P                  RVR,          4       \         P                  RVR,          4       VR,          R8  df   V P                  V4      '       d   V P                  V4      pMMV P	                  V4      '       d   V P                  W4      pV# V P                  W4      pMV P                  W4      pV'       d$   VP                  P                  R4      '       d   V# \        V\        4      '       dK   VP                  R/ 4      pVR,          VR	&   VR,          p\        V4      VR
&   WCR&   V P                  W4       V# )a  Parse the HTTP response given a shape.

:param response: The HTTP response dictionary.  This is a dictionary
    that represents the HTTP request.  The dictionary must have the
    following keys, ``body``, ``headers``, and ``status_code``.

:param shape: The model shape describing the expected output.
:return: Returns a dictionary representing the parsed response
    described by the model.  In addition to the shape described from
    the model, each response will also have a ``ResponseMetadata``
    which contains metadata about the response, which contains at least
    two keys containing ``RequestId`` and ``HTTPStatusCode``.  Some
    responses may populate additional keys, but ``RequestId`` will
    always be present.

zResponse headers: %rheaderszResponse body:
%rbodystatus_codei-  eventstreamResponseMetadataHTTPStatusCodeHTTPHeaders)LOGdebug_is_generic_error_response_do_generic_error_parse_is_modeled_error_shape_do_modeled_error_parse_do_error_parse	_do_parseserializationget
isinstancedictr	   _add_checksum_response_metadata)r   responser3   parsedresponse_metadatarO   s   &&&   r   parseResponseParser.parse   s(   " 			((9*=>		&(89M"c)..x8855h?--e4455hF--h>^^H4F U((,,];;M fd## &

+=r B2:=2I./ y)G/=g/Fm,):%&00Mr   c                    VP                  R / 4      P                  R/ 4      pVP                  R4      pV'       d   WBR&   R# R# )contextchecksumresponse_algorithmChecksumAlgorithmNr_   )r   rc   re   checksum_context	algorithms   &&&  r   rb   .ResponseParser._add_checksum_response_metadata  sB    #<<	26:::rJ$(()=>	5>12 r   c                R    VR J;'       d    VP                   P                  RR4      # )N	exceptionF)metadatar_   )r   r3   s   &&r   rZ   &ResponseParser._is_modeled_error_shape%  s&    D KKU^^%7%7U%KKr   c                    VR ,          R8  dL   RV9  g   VR,          f   R# VR,          P                  4       pVP                  R4      ;'       g    V'       * # R# )rQ   i  rP   NTs   <html>)strip
startswith)r   rc   rP   s   && r   rX   )ResponseParser._is_generic_error_response(  sW     M"c)X%&)9)AF#))+D??9-99T9 *r   c                    \         P                  R 4       RR\        VR,          4      R\        P                  P
                  P                  VR,          R4      /R/ /# )zlReceived a non protocol specific error response from the service, unable to populate error code and message.ErrorCoderQ   Messager1   rS   )rV   rW   strhttpclient	responsesr_   r   rc   s   &&r   rY   &ResponseParser._do_generic_error_parse;  sd     			B	

 H]344;;0044]+R 
 	
r   c                F    \        V P                  P                   R 24      h)z
._do_parseNotImplementedError	__class__r$   r   rc   r3   s   &&&r   r]   ResponseParser._do_parseL  s    !T^^%<%<$=Z"HIIr   c                F    \        V P                  P                   R 24      h)z._do_error_parser   r   s   &&&r   r\   ResponseParser._do_error_parseO  s     !T^^%<%<$==M"NOOr   c                F    \        V P                  P                   R 24      h)z._do_modeled_error_parser   )r   rc   r3   rd   s   &&&&r   r[   &ResponseParser._do_modeled_error_parseR  s%    !~~&&''?@
 	
r   c                Z    \        V R VP                   2V P                  4      pV! W4      # )_handle_)getattr	type_name_default_handle)r   r3   nodehandlers   &&& r   _parse_shapeResponseParser._parse_shapeW  s2    HU__-.0D0D
 u##r   c                t    . pVP                   pV F#  pVP                  V P                  WE4      4       K%  	  V# r   )memberappendr   )r   r3   r   rd   member_shapeitems   &&&   r   _handle_listResponseParser._handle_list]  s8     ||DMM$++L?@ r   c                    V# r   r   r   r3   rL   s   &&&r   r   ResponseParser._default_handlef  s    r   c                r    V P                   pVR ,          P                  R4      p\        VR,          W#V4      # )ri   operation_namerP   )rC   r_   r   )r   rc   r3   parsernames   &&&  r   _create_event_stream#ResponseParser._create_event_streami  s7    **	"&&'788F+UDAAr   c                &    \        V4      ^ ,          #     )listrK   s   &&r   _get_first_keyResponseParser._get_first_keyn  s    E{1~r   c                   VP                   '       d   VP                  4       pVP                  R R4       VP                  4        UUu/ uF  w  rEVf   K  WEbK  	  ppp\	        V4      ^8w  d   Rp\        WaP                  ,          4      hV P                  V4      pVP                   Uu. uF0  pVP                  V,          P                  P                  RV4      NK2  	  p	pWy9  d   \        P                  RV4       R# R# u uppi u upi )__typeNCInvalid service response: %s must have one and only one member set.r   zqReceived a tagged union response with member unknown to client: %s. Please upgrade SDK for full response support.TF)is_tagged_unioncopypopitemslenr:   r   r   membersr^   r_   rV   info)
r   r3   rL   cleaned_valuekv	error_msgtagr   serialized_member_namess
   &&&       r    _has_unknown_tagged_union_member/ResponseParser._has_unknown_tagged_union_memberq  s      !JJLMh-!.!4!4!6!6!!6   =!Q&&  *)jj*@AA%%m4C $mm'+F f%3377G+ $ ' 1D
 +'s   DD*6Dc                    R RV//# )SDK_UNKNOWN_MEMBERr   r   )r   r   s   &&r   #_handle_unknown_tagged_union_member2ResponseParser._handle_unknown_tagged_union_member  s    $vsm44r   c                    VR,          pVP                  R4      p\        V4      ^8X  d7   V^ ,          '       d(   WR,          R&   V^,          VR,          R&   V^ ,          # V# )z
Error response may contain an x-amzn-query-error header to translate
errors codes from former `query` services into other protocols. We use this
to do our lookup in the errorfactory for modeled errors.
x-amzn-query-error;rz   QueryErrorCodeType)splitr   )r   coderO   errorquery_errorquery_error_componentss   &&&&  r    _do_query_compatible_error_parse/ResponseParser._do_query_compatible_error_parse  si     23!,!2!23!7%&!+0Fq0I0I/3'N+,%;A%>E'N6")!,,r   )rB   rC   r@   )headerrO   
statusCodeNN)r$   r%   r&   r'   __doc__DEFAULT_ENCODINGrD   KNOWN_LOCATIONSr   rA   rf   rb   rZ   rX   rY   r]   r\   r[   r   r   r   r   r   r   r   r   r(   r)   r*   s   @r   r<   r<      s      "
 :O'/b?L:&
"JP

$B
65 r   r<   c                      a a ] tR tRt oRV 3R lltR tR tV 3R ltR tR t	R t
R	 tR
 tR t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]t]t]tRtVtV ;t# )BaseXMLResponseParseri  c                \   < \         SV `  W4       \        P                  ! R 4      V n        R# )z{.*}N)superr   recompile_namespace_re)r   rE   rF   r   s   &&&r   r   BaseXMLResponseParser.__init__  s"    )7ZZ/r   c                   / pVP                   pVP                  pVP                  P                  R 4      ;'       g    RpVP                  P                  R 4      ;'       g    RpVP                  P                  R4      '       d   \	        V\
        4      '       g   V.pV F`  pV FR  p	V P                  V	4      p
W8X  d   V P                  WI4      pK-  W8X  d   V P                  WY4      pKF  \        RV
 24      h	  XVX&   Kb  	  V# )r   keyrL   	flattenedzUnknown tag: )	r   rL   r^   r_   r`   r   	_node_tagr   r:   )r   r3   r   rd   	key_shapevalue_shapekey_location_namevalue_location_namekeyval_nodesingle_pairtag_namekey_nameval_names   &&&          r   _handle_map!BaseXMLResponseParser._handle_map  s    II	kk%3377?HH5)77;;FCNNw"";//
48N8N6DK*>>+60#00HH4#00JH-hZ.HII  +  (F8   r   c                N    V P                   P                  R VP                  4      # r1   )r   subr   )r   r   s   &&r   r   BaseXMLResponseParser._node_tag  s    !!%%b$((33r   c                   < VP                   P                  R 4      '       d   \        V\        4      '       g   V.p\        SV `  W4      # )r   )r^   r_   r`   r   r   r   )r   r3   r   r   s   &&&r   r   "BaseXMLResponseParser._handle_list  s?     "";//
48N8N6Dw#E00r   c                   / pVP                   pVP                  P                  R R4      '       d   V P                  V4      pV P	                  V4      pV P                  W4      '       d#   V P                  V4      pV P                  V4      # V EF@  pWG,          pVP                  P                  R4      p	WP                  9   g"   VP                  P                  R4      '       d   KZ  V P                  W4      p
VP                  V
4      pVe   V P                  W4      W7&   K  VP                  P                  R4      '       g   K  / pVP                  R,          pVP                  P                  4        FB  w  rV P                  P                  VP!                  R4      ^ ,          R,           V4      pWV&   KD  	  W9   g   EK6  W,          W7&   EKC  	  V# )rr   FlocationeventheaderxmlAttributer   :)r   rs   r_   _get_error_root_build_name_to_xml_noder   r   r   r^   r   _member_key_namer   attribr   r   r   r   )r   r3   r   rd   r   xml_dictr   member_namer   r   xml_namemember_nodeattribslocation_namer   rL   new_keys   &&&              r   _handle_structure'BaseXMLResponseParser._handle_structure  s   -->>k511''-D//500AA%%h/C;;C@@"K"/L#1155jAH000--11-@@ ,,\GH",,x0K&&*&7&7 '# ++//?? , : :6 B"&++"3"3"5JC"0044%++C03c93G (-G$	 #6
 !+*1*@F'3 #4 r   c                x    V P                  V4      R 8X  d$   V F  pV P                  V4      R8X  g   K  Vu # 	  V# )ErrorResponserz   r   )r   original_rootchilds   && r   r   %BaseXMLResponseParser._get_error_root  s;    >>-(O;&>>%(G3 L ' r   c                   VP                   R 8X  dM   VP                  P                  R4      '       d,   VP                  P                  P                  R4      pVe   V# VP                  P                  R4      pVe   V# V# )r   r   r   )r   r^   r_   r   )r   r3   r   list_member_serialized_nameserialized_names   &&&  r   r   &BaseXMLResponseParser._member_key_name  sz    
 ??f$)<)<)@)@)M)M*/,,*D*D*H*H+' +622--11&9&""r   c                4   \        V\        4      '       d   V P                  V^ ,          4      # / pV Fa  pV P                  V4      pWB9   dD   \        W$,          \        4      '       d   W$,          P	                  V4       KO  W$,          V.W$&   K]  W2V&   Kc  	  V# r   )r`   r   r   r   r   )r   parent_noder   r   r   s   &&   r   r   -BaseXMLResponseParser._build_name_to_xml_node  s     k4((//A??D..&C
 hmT22M((. &.]D$9HM $   r   c                     \         P                  ! \         P                  ! 4       V P                  R 7      pVP	                  V4       VP                  4       pV#   \         d   p\        RT RT 24      hRp?ii ; i))targetencodingzUnable to parse response (z6), invalid XML received. Further retries may succeed:
N)r   	XMLParserTreeBuilderr   feedcloser   r:   )r   
xml_stringr   rootes   &&   r   _parse_xml_string_to_dom.BaseXMLResponseParser._parse_xml_string_to_dom  s    
	__((*T5J5JF KK
#<<>D   	%,QC 0GGQlT 	s   AA A;%A66A;c                    VP                  4        FJ  w  r#\        V4      '       d'   V P                  V4      pV P                  V4      W&   K<  VP                  W&   KL  	  V# r   )r   r   r   _replace_nodesr0   )r   rd   r   rL   sub_dicts   &&   r   r  $BaseXMLResponseParser._replace_nodes'  sQ     ,,.JCE{{77>"11(;#jj ) r   c                    VR 8X  d   R# R# )trueTFr   r   r3   r0   s   &&&r   _handle_boolean%BaseXMLResponseParser._handle_boolean0  s    6>r   c                    \        V4      # r   floatr"  s   &&&r   _handle_float#BaseXMLResponseParser._handle_float7  s    T{r   c                $    V P                  V4      # r   r@   r"  s   &&&r   _handle_timestamp'BaseXMLResponseParser._handle_timestamp;  s    %%d++r   c                    \        V4      # r   intr"  s   &&&r   _handle_integer%BaseXMLResponseParser._handle_integer?  s    4yr   c                    V# r   r   r"  s   &&&r   _handle_string$BaseXMLResponseParser._handle_stringC  s    r   c                $    V P                  V4      # r   rB   r"  s   &&&r   _handle_blob"BaseXMLResponseParser._handle_blobG  s      &&r   )r   r   )r$   r%   r&   r'   r   r   r   r   r  r   r   r   r  r  r8   r#  r(  r,  r1  r4  r8  _handle_character_handle_double_handle_longr(   r)   __classcell__r   r+   s   @@r   r   r     s     0*41#J .     , ,     ' ' '"N"LLr   r   c                   H   a  ] tR tRt o R tR tR tR
R ltR tR t	Rt
V tR	# )QueryParseriP  c                   VR ,          pV P                  V4      pV P                  V4      pV P                  V4       RV9   d!   VP                  VP	                  R4      4       RV9   d   RVP	                  R4      /VR&   V# )rP   Errors	RequestIdrS   )r  r   r  r   r   )r   rc   r3   xml_contentsr  rd   s   &&&   r   r\   QueryParser._do_error_parseQ  s    ',,\:--d3F# vMM&**X./& *5vzz+7N)OF%&r   c                (    V P                  WR R7      # )Finject_metadata_parse_body_as_xmlr   s   &&&r   r[   #QueryParser._do_modeled_error_parsea  s    &&x&NNr   c                (    V P                  WR R7      # )TrG  rI  r   s   &&&r   r]   QueryParser._do_parsed  s    &&x&MMr   c                   VR ,          pV P                  V4      p/ pVeH   TpRVP                  9   d$   V P                  VP                  R,          V4      pV P                  W'4      pV'       d   V P	                  WV4       V# )rP   resultWrapper)r  r^   _find_result_wrapped_shaper   _inject_response_metadata)r   rc   r3   rH  rD  r  rd   starts   &&&&    r   rJ  QueryParser._parse_body_as_xmlg  s    ',,\:E%"5"5577''8$ &&u4F**48r   c                4    V P                  V4      pW1,          # r   )r   )r   element_namexml_root_nodemappings   &&& r   rP  &QueryParser._find_result_wrapped_shapev  s    ..}=$$r   c                    V P                  V4      pVP                  R 4      pVe?   V P                  V4      pVP                  4        F  w  rgVP                  WV&   K  	  WRR &   R# R# )rS   N)r   r_   r   r0   )r   r   inject_intorW  
child_nodesub_mappingr   rL   s   &&&     r   rQ  %QueryParser._inject_response_metadataz  sf    ..t4[[!34
!66zBK)//1
#(::  2.9*+	 "r   r   N)T)r$   r%   r&   r'   r\   r[   r]   rJ  rP  rQ  r(   r)   r*   s   @r   r@  r@  P  s*      ON%: :r   r@  c                   >   a a ] tR tRt oR tV 3R ltR tRtVtV ;t	# )EC2QueryParseri  c                x    V P                  V4      pVP                  R 4      pVe   RVP                  /VR&   R# R# )	requestIdNrC  rS   )r   r_   r0   )r   r   rZ  rW  r[  s   &&&  r   rQ  (EC2QueryParser._inject_response_metadata  s?    ..t4[[-
!/:JOO.LK*+ "r   c                `   < \         SV `  W4      pR V9   d   RVP                  R 4      /VR&   V# )	RequestIDrC  rS   )r   r\   r   )r   rc   r3   originalr   s   &&& r   r\   EC2QueryParser._do_error_parse  s>     7*8;("X\\+6,H'( r   c                    V F@  pV P                  V4      R 8X  g   K  V F  pV P                  V4      R8X  g   K  Vu u # 	  KB  	  V# )rB  rz   r  )r   r  r  errors_childs   &&  r   r   EC2QueryParser._get_error_root  sF    "E~~e$0$)L~~l3w>++ %* #
 r   r   )
r$   r%   r&   r'   rQ  r\   r   r(   r)   r=  r>  s   @@r   r_  r_    s     M( r   r_  c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )BaseJSONParseri  c                   / pVP                   '       d   TpV# VP                  pVf   R # / pV P                  W4      '       d#   V P                  V4      pV P	                  V4      # V FX  pWF,          pVP
                  P                  RV4      pVP                  V4      p	V	f   K>  V P                  WF,          V	4      W6&   KZ  	  V# )Nr   )is_document_typer   r   r   r   r^   r_   r   )
r   r3   rL   final_parsedmember_shapesr   r   r   	json_name	raw_values
   &&&       r   r   BaseJSONParser._handle_structure  s    !!! L( % "MMM} L44UBB))%0??DD,,9(66::6;O	!IIi0	(040A0A%2I1L-  - r   c                    / pVP                   pVP                  pVP                  4        F+  w  rbV P                  WF4      pV P                  WR4      pWV&   K-  	  V# r   )r   rL   r   r   )	r   r3   rL   rd   r   r   r   
actual_keyactual_values	   &&&      r   r   BaseJSONParser._handle_map  sZ    II	kk++-JC**9:J,,[@L!-: ( r   c                $    V P                  V4      # r   r7  r   s   &&&r   r8  BaseJSONParser._handle_blob  s      ''r   c                $    V P                  V4      # r   r+  r   s   &&&r   r,   BaseJSONParser._handle_timestamp  s    %%e,,r   c                    V P                  VR ,          4      pRRRRR/R/ /pVR,          pVP                  RVP                  RR4      4      VR,          R&   VP                  R4      pTP                  R	T;'       d    \        V4      4      pVee   R
V9   d   VP                  R
^4      ^ ,          pRV9   d   VP	                  R^4      ^,          pRV9   d   V P                  WuV4      pWtR,          R&   V P                  WAR,          4       V# )rP   rz   r|   r1   r{   rS   rO   messagerQ   r   r   #r   )_parse_body_as_jsonr_   r}   r   rsplitr   rQ  )r   rc   r3   rP   r   rO   response_coder   s   &&&     r   r\   BaseJSONParser._do_error_parse  s   ''(899b&"57I2N9% %)HHtxx	2.%
gy!
 !]3xx-"F"FC4FG d{zz#q)!,d{{{3*1-#w.<<5 &*'N6"&&uy.ABr   c                P    R V9   d   VR ,          VP                  R/ 4      R&   R# R# )x-amzn-requestidrS   rC  N)
setdefault)r   rd   rO   s   &&&r   rQ  (BaseJSONParser._inject_response_metadata  s0    (EL"FF0"5kB )r   c                    V'       g   / # VP                  V P                  4      p \        P                  ! V4      pV#   \         d    R T/u # i ; i)r|  )decoder   jsonloads
ValueError)r   body_contentsrP   original_parseds   &&  r   r~  "BaseJSONParser._parse_body_as_json  sU    I##D$9$9:	%"jj.O"" 	% t$$	%s   ? AAr   N)r$   r%   r&   r'   r  r   r8  r,  r\   rQ  r~  r(   r)   r*   s   @r   rk  rk    s.     2(-"H
% 
%r   rk  c                      a  ] tR tRt o ^t^t]R 4       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R tR tRtV tR# )BaseCBORParseri	  c                    ^ V P                   ^V P                  ^V P                  ^V P                  ^V P                  ^V P
                  ^V P                  ^V P                  /# r   )_parse_unsigned_integer_parse_negative_integer_parse_byte_string_parse_text_string_parse_array
_parse_map
_parse_tag_parse_simple_and_floatr   s   &r    major_type_to_parsing_method_map/BaseCBORParser.major_type_to_parsing_method_map  sb     t++t++t&&t&&t  ttt++	
 		
r   c                V    \         P                  ! \         P                  ! V4      4      # r   )ioBufferedReaderBytesIO)r   bytess   &&r   get_peekable_stream_from_bytes-BaseCBORParser.get_peekable_stream_from_bytes  s      E!233r   c                    V P                  V^4      pV^,	          pV^,          pW0P                  9   d   V P                  V,          pV! W4      # \        RV RV 24      h)   z8Unsupported inital byte found for data item- Major type:z, Additional info: )_read_bytes_as_intr  r:   )r   streaminitial_byte
major_typeadditional_infomethods   &&    r   parse_data_itemBaseCBORParser.parse_data_item  sx     ..vq9!Q&
 '3>>>:::FF&22%(\)<"#% r   c                    ^^^^^^^^/pV^8  d   V# W#9   d   W2,          pV P                  W4      # \        RV 24      h)   zhInvalid CBOR integer returned from the service; unparsable additional info found for major type 0 or 1: )r  r:   )r   r  r  additional_info_to_num_bytes	num_bytess   &&&  r   r  &BaseCBORParser._parse_unsigned_integer2  sl    	(
$ R""<4EI**6==%@@O?PR r   c                2    RV P                  W4      ,
          # )r  )r  r   r  r  s   &&&r   r  &BaseCBORParser._parse_negative_integerG  s    D00IIIr   c                Z   W P                   8w  d#   V P                  W4      pV P                  W4      # . p V P                  V4      '       d   MNV P	                  V^4      pV^,          pV P                  W4      pVP                  V P                  W4      4       Kg  RP                  V4      # )Tr   )INDEFINITE_ITEM_ADDITIONAL_INFOr  _read_from_stream_handle_break_coder  r   join)r   r  r  lengthchunksr  s   &&&   r   r  !BaseCBORParser._parse_byte_stringK  s    BBB11&JF))&99F**622#66vqA".";55fNd44VDE88F##r   c                B    V P                  W4      P                  R 4      # )r=   )r  r  r  s   &&&r   r  !BaseCBORParser._parse_text_string[  s    &&v?FFwOOr   c                   W P                   8w  d;   V P                  W4      p\        V4       Uu. uF  q@P                  V4      NK  	  up# . pV P	                  V4      '       g#   VP                  V P                  V4      4       K9  V# u upi r   )r  r  ranger  r  r   )r   r  r  r  _r   s   &&&   r   r  BaseCBORParser._parse_array_  sx    BBB11&JF:?-H-Q((0-HHE--f55T11&9:L Is   Bc                    / pW P                   8w  d7   V P                  W4      p\        V4       F  pV P                  W4       K  	  V# V P	                  V4      '       g   V P                  W4       K*  V# r   )r  r  r  _parse_key_value_pairr  )r   r  r  r   r  r  s   &&&   r   r  BaseCBORParser._parse_mapj  sj    BBB11&JF6]**69 #L --f55**69Lr   c                ^    V P                  V4      pV P                  V4      pVe   WBV&   R # R # r   )r  )r   r  r   r   rL   s   &&&  r   r  $BaseCBORParser._parse_key_value_pairw  s4    ""6*$$V,#J r   c                    V P                  W4      pV P                  V4      pV^8X  d   V P                  V4      # \        RV 24      h)r  z*Found CBOR tag not supported by botocore: )r  r  _parse_datetimer:   )r   r  r  r   rL   s   &&&  r   r  BaseCBORParser._parse_tag  sQ    **6C$$V,!8''..%<SEB r   c                x    \        V\        \        34      '       d   V P                  V4      # \	        R V 24      h)z Unable to parse datetime value: )r`   r0  r'  r@   r:   rK   s   &&r   r  BaseCBORParser._parse_datetime  s;    ec5\**))%00%25': r   c                    ^R^R^R^R/pW#9   d	   W2,          # ^R^R^R/pW$9   d7   WB,          w  rV\         P                  ! WPP                  W4      4      ^ ,          # \        RV R24      h)	   FTNz0Invalid additional info found for major type 7: zI.  This indicates an unsupported simple type or an indefinite float value)z>e   )z>f   )z>d   )structunpackr  r:   )r   r  r  additional_info_simple_valuesfloat_formatsfloat_formatr  s   &&&    r   r  &BaseCBORParser._parse_simple_and_float  s     	)
% ;0AA
 			
 +&3&D#L==44VG  ">>O PU V
 	
r   c                    \         P                  VP                  ^4      R,          R4      V P                  8X  d#   VP	                  ^\
        P                  4       R# R# )r  :Nr  NbigTN)r0  
from_bytespeek
BREAK_CODEseekosSEEK_CUR)r   r  s   &&r   r  !BaseCBORParser._handle_break_code  sA    >>&++a.,e4GKK2;;' Hr   c                P    V P                  W4      p\        P                  VR 4      # )r  )r  r0  r  )r   r  r  bytes   &&& r   r  !BaseCBORParser._read_bytes_as_int  s#    %%f8~~dE**r   c                ^    VP                  V4      p\        V4      V8w  d   \        R 4      hV# )zgEnd of stream reached; this indicates a malformed CBOR response from the server or an issue in botocore)readr   r:   )r   r  r  rL   s   &&& r   r   BaseCBORParser._read_from_stream  s5    I&u:"%$ 
 r   r   N)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*   s   @r   r  r  	  su     &(#J

 

4**J$ P
D
+ r   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	BaseEventStreamParseri  c                `   / pVP                   P                  R 4      '       dQ   VR,          P                  R4      pVP                  P                  V4      pV'       d   V P                  W4      W4&   V# V P	                  WVP                  V4       V P                  WVP                  V4       V# )rR   rO   z:event-type)r^   r_   r   r]   _parse_non_payload_attrs_parse_payload)r   rc   r3   rn  
event_typeevent_shapes   &&&   r   r]   BaseEventStreamParser._do_parse  s    ""=11!),00?J--++J7K+/>>,( 	 )) Mr   c                   VR ,          P                  R4      pVP                  P                  V4      pVeT   V P                  VR,          4      pV P                  WE4      pRRVRVP                  RVP                  RR4      4      //pV# RRVR ,          P                  RR4      RVR ,          P                  R	R4      //pV# )
rO   z:exception-typerP   rz   r{   r|   r|  r1   z:error-codez:error-message)r_   r   _initial_body_parser   )r   rc   r3   exception_typeexception_shaper  rP   r   s   &&&     r   r\   %BaseEventStreamParser._do_error_parse  s    !),001BC--++N;&"66x7GHO$$_FDNtxx	488Ir3JKE  HY/33M2Fx	2667GLE r   c                
   VP                   P                  R 4      '       d   V F  pW5,          pVP                   P                  R4      '       g   K.  VR,          pVP                  R8X  d   TpMOVP                  R8X  d   VP                  V P                  4      pM"V P                  V4      p	V P                  Wi4      pWV&    R# 	  V P                  VR,          4      p
V P                  W*4      pVP                  V4       R# R# )eventeventpayloadrP   blobstringN)r^   r_   r   r  r   r  r   r   )r   rc   r3   ro  rn  r   r   rP   parsed_body	raw_parser  body_parseds   &&&&&       r   r  $BaseEventStreamParser._parse_payload  s    ""7++%,2--11.AA#F+D#--7&*%//8;&*kk$2G2G&H$($<$<T$B	&*&7&7(' *5& &  #66x7GHO++ECK,' ,r   c                    VR ,          pV Fk  pW6,          pVP                   P                  R4      '       g   K.  We9   g   K6  WV,          pVP                  R8X  d   V P                  VR,          4      pWV&   Km  	  R# )rO   r   	timestampg     @@N)r^   r_   r   r@   )	r   rc   r3   ro  rn  rO   r   r   rL   s	   &&&&&    r   r  .BaseEventStreamParser._parse_non_payload_attrs  so     9%!D(.L))--m<<?#ME#--< !% 6 6uv~ F).& "r   c                    \        R 4      hr  r   r   r  s   &&r   r  )BaseEventStreamParser._initial_body_parse      
 ""788r   r   N)r$   r%   r&   r'   r]   r\   r  r  r  r(   r)   r*   s   @r   r  r    s#      *-,/9 9r   r  c                   &   a  ] tR tRt o R tRtV tR# )EventStreamJSONParseri  c                $    V P                  V4      # r   r~  r  s   &&r   r  )EventStreamJSONParser._initial_body_parse      ''66r   r   Nr$   r%   r&   r'   r  r(   r)   r*   s   @r   r  r    s     7 7r   r  c                   &   a  ] tR tRt o R tRtV tR# )EventStreamXMLParseri"  c                `    V'       g   \         P                  ! R 4      # V P                  V4      # r   r   Elementr  r   r  s   &&r   r  (EventStreamXMLParser._initial_body_parse#  %    ==$$,,Z88r   r   Nr  r*   s   @r   r  r  "  s     9 9r   r  c                   &   a  ] tR tRt o R tRtV tR# )EventStreamCBORParseri)  c                T    VR 8X  d   / # V P                  V P                  V4      4      # r   )r  r  r  s   &&r   r  )EventStreamCBORParser._initial_body_parse*  s0    CI##//>
 	
r   r   Nr  r*   s   @r   r  r  )  s     
 
r   r  c                   >   a  ] tR tRt o ]t R tR tR tR t	Rt
V tR# )
JSONParseri2  c                    / pVeA   VP                   pV'       d   V P                  WV4      pMV P                  VR,          V4      pV P                  W1R,          4       V# )NrP   rO   )event_stream_name_handle_event_stream_handle_json_bodyrQ  )r   rc   r3   rd   
event_names   &&&  r   r]   JSONParser._do_parse7  s\    00J228JO//0@%H&&v	/BCr   c                4    V P                  VR ,          V4      # )rP   )r  r   s   &&&r   r[   "JSONParser._do_modeled_error_parseB  s    %%hv&6>>r   c                    VP                   V,          pV P                  W4      p VP                  4       pT P                  TP                  T4      pYXT&   T#   \         d    R p\	        T4      hi ; iz,First event was not of type initial-response)r   r   get_initial_responser   r:   r  payload	r   rc   r3   r   event_stream_shapeevent_streamr  r   rd   s	   &&&&     r   r  JSONParser._handle_event_streamE  sz    "]]:600N	1 557E ''u=)z & 	1FI%i00	1s   A A1c                F    V P                  V4      pV P                  W#4      # r   )r~  r   )r   raw_bodyr3   parsed_jsons   &&& r   r  JSONParser._handle_json_bodyQ  s%     ..x8  44r   r   N)r$   r%   r&   r'   r  rD   r]   r[   r  r  r(   r)   r*   s   @r   r  r  2  s'     32	?
5 5r   r  c                   h   a a ] tR tRt oR tR tR tR tR tR t	R t
R	 tR
 tV 3R ltRtVtV ;t# )BaseRestParseriY  c                V    / pV P                  V4      VR &   V P                  WV4       V# )rS   )_populate_response_metadata_add_modeled_parser   rc   r3   rn  s   &&& r   r]   BaseRestParser._do_parseZ  s8    +/+K+K,
'( 	>r   c                r    Vf   V# VP                   pV P                  WWC4       V P                  WWC4       R # r   )r   r  r  )r   rc   r3   rn  ro  s   &&&& r   r4  !BaseRestParser._add_modeled_parseb  s;    =%%]	
 	H]Ir   c                .    / pV P                  WV4       V# r   r4  r5  s   &&& r   r[   &BaseRestParser._do_modeled_error_parsek      >r   c                    / pVR ,          pRV9   d   VR,          VR&   V# RV9   d"   VR,          VR&   VP                  RR4      VR&   V# )rO   r  rC  x-amz-request-id
x-amz-id-2r1   HostIdrm   r   rc   rs   rO   s   &&  r   r3  *BaseRestParser._populate_response_metadatap  sf    9%($+,>$?H[!   7*$+,>$?H[! ")\2!>HXr   c                >   R VP                   9   d   VP                   R ,          pW5,          pVP                   P                  R4      '       d   V P                  W4      pWtV&   R# VP                  R9   dA   VR,          p\	        V\
        4      '       d   VP                  V P                  4      pWtV&   R# V P                  VR,          4      pV P                  Wh4      WE&   R# V P                  VR,          4      pV P                  W(4      p	VP                  V	4       R# )r'  rR   rP   N)r  r  )r^   r_   r   r   r`   r  r  r   r  r   r   )
r   rc   r3   ro  rn  payload_member_name
body_shaperP   r  r  s
   &&&&&     r   r  BaseRestParser._parse_payload}  s    +++ #("5"5i"@&;J''++M::00F4801%%);;'dE**;;t'<'<=D4801"&":":8F;K"L484E4E51 #66x7GHO++ECK,r   c                   VR ,          pV F  pW6,          pVP                   P                  R4      pVf   K,  VR8X  d   V P                  WqR,          4      WF&   KO  VR 8X  d   V P                  Wu4      WF&   Kk  VR8X  g   Kt  VP                   P                  RV4      p	W9   g   K  V P                  WuV	,          4      WF&   K  	  R# )rO   r   Nr   rQ   r   r   )r^   r_   r   _parse_header_map)
r   rc   r3   ro  rn  rO   r   r   r   header_names
   &&&&&     r   r  'BaseRestParser._parse_non_payload_attrs  s     9%!D(.L#1155jAH\)%)%6%6 ="9&" Y&%)%;%; &" X%*88<<VTJ))-):):$k&:*L&! "r   c                    / pVP                   P                  R R4      P                  4       pV FB  pVP                  4       P                  V4      '       g   K*  V\	        V4      R pW%,          W6&   KD  	  V# )r   r1   N)r^   r_   lowerrw   r   )r   r3   rO   rd   prefixrI  r   s   &&&    r   rH   BaseRestParser._parse_header_map  sq     $$((4::<"K  "--f55 #3v;=1&3 # r   c                    \        R 4      hr  r  r  s   &&r   r  "BaseRestParser._initial_body_parse  r  r   c                    Tp\        V4      '       dF   \        P                  ! V4      P                  V P                  4      p\
        P                  ! V4      pV# r   )r   rI   rJ   r  r   r  r  )r   r3   rL   rd   decodeds   &&&  r   r4  BaseRestParser._handle_string  sF    &&&&u-44T5J5JKGZZ(Fr   c                   < VP                   P                  R 4      pVR8X  dD   \        V\        4      '       g.   VP	                  R4       Uu. uF  qDP                  4       NK  	  pp\        SV `  W4      # u upi )r   r   ,)r^   r_   r`   r   r   rv   r   r   )r   r3   r   r   r  r   s   &&&  r   r   BaseRestParser._handle_list  sb    &&**:6x
4(>(>'+zz#7!GGID7w#E00 8s   A6r   )r$   r%   r&   r'   r]   r4  r[   r3  r  r  rH  r  r4  r   r(   r)   r=  r>  s   @@r   r1  r1  Y  s=     J
-2091 1r   r1  c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )BaseRpcV2Parseri  c                    / pVeP   VP                   pV'       d   V P                  WV4      pM/ pV P                  WV4       V P                  V4      VR&   V# )NrS   )r  r  r  r3  )r   rc   r3   rd   r  s   &&&  r   r]   BaseRpcV2Parser._do_parse  si     % 7 7 22%6 ##HV<)-)I)I*F%& r   c                6    Vf   V# V P                  WV4       R # r   )r  r5  s   &&&&r   r4  "BaseRpcV2Parser._add_modeled_parse  s    =H\:r   c                .    / pV P                  WV4       V# r   r:  r5  s   &&& r   r[   'BaseRpcV2Parser._do_modeled_error_parse  r<  r   c                B    / pVR ,          pRV9   d   VR,          VR&   V# )rO   r  rC  r   rA  s   &&  r   r3  +BaseRpcV2Parser._populate_response_metadata  s.    9%($+,>$?H[!r   c                   / pVP                   pVP                  '       dy   VP                  4       pVP                  R R4       VP	                  4        UUu/ uF  w  rgVf   K  WgbK  	  ppp\        V4      ^8w  d   Rp\        WP                  ,          4      hV F5  p	WI,          p
VP                  V	4      pVf   K"  V P                  W4      W9&   K7  	  V# u uppi )r   Nr   )
r   r   r   r   r   r   r:   r   r_   r   )r   r3   r   rd   r   r   r   r   r   r   r   r   s   &&&         r   r  !BaseRpcV2Parser._handle_structure  s    --    IIKMh-!.!4!4!6!6!!6   =!Q&&  *)jj*@AA"K"/L((;/K&&*&7&7 '#	 # !s   C#Cc                z    V P                  VR ,          4      pV P                  W$4      pVP                  V4       R# )rP   N)r  r   r   )r   rc   r3   rn  r  r  s   &&&&  r   r  BaseRpcV2Parser._parse_payload  s5    228F3CD''?K(r   c                    \        R 4      hr  r  r  s   &&r   r  #BaseRpcV2Parser._initial_body_parse  r  r   r   N)r$   r%   r&   r'   r]   r4  r[   r3  r  r  r  r(   r)   r*   s   @r   rX  rX    s-      ;

0)
9 9r   rX  c                   \   a a ] tR tRt o]tR tV 3R ltR tR t	R t
R t]
t]tRtVtV ;t# )	RestJSONParseri  c                $    V P                  V4      # r   r	  r  s   &&r   r  "RestJSONParser._initial_body_parse  r  r   c                H   < \         SV `  W4      pV P                  W14       V# r   )r   r\   _inject_error_code)r   rc   r3   r   r   s   &&& r   r\   RestJSONParser._do_error_parse  s%    '80r   c                   V P                  VR ,          4      pRpRVR,          9   d   VR,          R,          pM0RV9   g   RV9   d#   VP                  RVP                  RR4      4      pVf   R# \        V\        4      '       d1   VP	                  R^4      ^ ,          P                  R^4      R
,          pWAR	,          R&   R# )rP   Nzx-amzn-errortyperO   r   r{   r1   r   r}  rz   r  )r  r_   r`   r}   r   r  )r   r   rc   rP   r   s   &&&  r   rl  !RestJSONParser._inject_error_code#  s     ''(89)!44I&'9:Dt^v~88FDHHVR$89D<dC  ::c1%a(//Q7;D!%gvr   c                    \        V4      # r   )r   r   s   &&&r   r#  RestJSONParser._handle_boolean2  s    e$$r   c                    \        V4      # r   r/  r   s   &&&r   r1  RestJSONParser._handle_integer5  s    5zr   c                    \        V4      # r   r&  r   s   &&&r   r(  RestJSONParser._handle_float8  s    U|r   r   )r$   r%   r&   r'   r  rD   r  r\   rl  r#  r1  r(  r<  r;  r(   r)   r=  r>  s   @@r   rh  rh    s7     37
&% #L"NNr   rh  c                   6   a  ] tR tRt o ]tR tR tR tRt	V t
R# )RpcV2CBORParseri?  c                X    VR 8X  d   V# V P                  V4      pV P                  V4      # r  )r  r  )r   r  body_contents_streams   && r   r  #RpcV2CBORParser._initial_body_parseB  s8    C  #BB 
 ##$899r   c           	        V P                  VR ,          4      pRRVP                  RVP                  RR4      4      RR/R/ /pVR,          pVP                  R4      pVf!   VP                  R	4      pVe   \        V4      pVee   R
V9   d   VP                  R
^4      ^ ,          pRV9   d   VP	                  R^4      ^,          pRV9   d   V P                  WeV4      pWdR,          R&   RV9   d   VR,          VP                  R/ 4      R&   V# )rP   rz   r|   r|  r1   r{   rS   rO   r   rQ   r   r}  r   r  rC  )r  r_   r}   r   r  r   r  )r   rc   r3   rP   r   rO   r   r  s   &&&     r   r\   RpcV2CBORParser._do_error_parseJ  s#   ''(89488Itxx	2/FG 
 9%xx!<$LL7M(=)d{zz#q)!,d{{{3*1-#w.<<5 &*'N6"(DK"EE/4[A r   c                    VP                   V,          pV P                  W4      p VP                  4       pT P                  TP                  4      pYXT&   T#   \         d    R p\	        T4      hi ; ir%  )r   r   r&  r   r:   r  r'  r(  s	   &&&&     r   r  $RpcV2CBORParser._handle_event_streamj  sx    "]]:600N	1 557E ))%--8)z & 	1FI%i00	1s   A A0r   N)r$   r%   r&   r'   r  rD   r  r\   r  r(   r)   r*   s   @r   rw  rw  ?  s      3:@
 
r   rw  c                   X   a a ] tR tRt o]tR tR tR tR t	]
V 3R l4       tRtVtV ;t# )RestXMLParseriw  c                `    V'       g   \         P                  ! R 4      # V P                  V4      # r   r  r  s   &&r   r  !RestXMLParser._initial_body_parsez  r  r   c                    VR ,          '       d    V P                  V4      # V P	                  V4      #   \         d    \        P                  RRR7        L5i ; i)rP   z2Exception caught when parsing error response body:T)exc_info)_parse_error_from_bodyr:   rV   rW   _parse_error_from_http_statusr   s   &&&r   r\   RestXMLParser._do_error_parse  s`     F228<< 11(;; ' 		H!  s   3 "AAc           
         R R\        VR,          4      R\        P                  P                  P	                  VR,          R4      /RRVR,          P	                  RR4      R	VR,          P	                  R
R4      //# )rz   r{   rQ   r|   r1   rS   rC  rO   r>  r@  r?  )r}   r~   r   r   r_   r   s   &&r   r  +RestXMLParser._parse_error_from_http_status  s    H]344;;0044]+R Xi0445GL(9-11,C!
 	
r   c                v   VR ,          pV P                  V4      pV P                  V4      pV P                  V4       VP                  R8X  d<   V P	                  V4      pVP                  RR4       VP                  RR4       RVRV/# RV9   d   RVP                  R4      /VR&   RRRRR//p\        Wd4       V# )rP   rz   rC  r1   r@  rS   r|   r{   )r  r   r  r   r3  r   r
   )r   rc   rD  r  rd   rs   defaults   &&     r   r  $RestXMLParser._parse_error_from_body  s    ',,\:--d3F#88w 77AH
 JJ{B'JJx$V%7BBF"*5vzz+7N)OF%&YFB78G$r   c                &   < \         SV `  W4      pV# r   )r   r4  )r   r3   r0   r   s   &&&r   r4  RestXMLParser._handle_string  s    w%e2r   r   )r$   r%   r&   r'   r  rD   r  r\   r  r  r8   r4  r(   r)   r=  r>  s   @@r   r  r  w  s8     29
<6
.   r   r  ec2queryr  z	rest-jsonzrest-xmlzsmithy-rpc-v2-cbor)1r   rI   http.clientr~   r  r  loggingr  r   r  botocore.compatr   r   botocore.eventstreamr   r   botocore.utilsr   r   r   r	   r
   r   	getLoggerr$   rV   r?   r   r"   r8   	Exceptionr:   r<   r   r@  r_  rk  r  r  r  r  r  r  r1  rX  rh  rw  r  r   r   r   r   <module>r     s  kZ   	   	 	  0 D  !* , ,*;*	) 	W Wtn#N n#b1:' 1:h![ !H^%^ ^%B~^ ~BP9N P9f71> 7
902G 9
1> 
$5 $5Nu1^ u1pD9n D9N$#^^ $#N5o~ 5pKN$9 K^ 
>[
J/ r   