+
    ¨ÝiE  ã                   ól   € ^ RI t ^ RIHt ]! R. R
O4      t ! R R]4      tR tR tR t ! R R	4      tR# )é    N)Ú
namedtupleÚServiceContextc                   ó   € ] tR t^tRtRtR# )r   aÌ  Provides important service-wide, read-only information about a service

:type service_name: str
:param service_name: The name of the service

:type service_model: :py:class:`botocore.model.ServiceModel`
:param service_model: The model of the service.

:type service_waiter_model: :py:class:`botocore.waiter.WaiterModel` or
    a waiter model-like object such as
    :py:class:`boto3.utils.LazyLoadedWaiterModel`
:param service_waiter_model: The waiter model of the service.

:type resource_json_definitions: dict
:param resource_json_definitions: The loaded json models of all resource
    shapes for a service. It is equivalient of loading a
    ``resource-1.json`` and retrieving the value at the key "resources".
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú-/usr/lib/python3/dist-packages/boto3/utils.pyr   r      s   † ñó& 	r   c                óF   € \        V 4       \        P                  V ,          # )zAImport module given a name.

Does not support relative imports.

)Ú
__import__ÚsysÚmodules)Únames   &r   Úimport_moduler   2   s   € ô ˆtÔÜ�;‰;�tÕÐr   c                 ó   a a€ VoV V3R  lpV# )c                  ó†   <€ SP                  R ^4      w  r\        V4      pV P                  S4       \        W4      ! R/ V B # )Ú.r   )Úrsplitr   ÚupdateÚgetattr)ÚkwargsÚmoduleÚfunction_nameÚ	full_nameÚparent_kwargss   ,  €€r   Ú_handlerÚlazy_call.<locals>._handler?   sA   ø€ Ø )× 0Ñ 0°°aÓ 8ÑˆÜ˜vÓ&ˆØ�‰�mÔ$Ü�vÔ-Ñ7°Ñ7Ð7r   r   )r   r   r    r   s   f, @r   Ú	lazy_callr"   <   s   ù€ Ø€Mö8ð €Or   c                 ó8   € W9   d   \        R V R24      hW V&   R# )zCannot inject class attribute "z*", attribute already exists in class dict.N)ÚRuntimeError)Úclass_attributesr   Úvalues   &&&r   Úinject_attributer'   H   s0   € ØÔÜØ-¨d¨Vð 4,ð -ó
ð 	
ð
 "'˜Ór   c                   ó0   a € ] tR t^Rt o RtR tR tRtV tR# )ÚLazyLoadedWaiterModela\  A lazily loaded waiter model

This does not load the service waiter model until an attempt is made
to retrieve the waiter model for a specific waiter. This is helpful
in docstring generation where we do not need to actually need to grab
the waiter-2.json until it is accessed through a ``get_waiter`` call
when the docstring is generated/accessed.
c                ó*   € Wn         W n        W0n        R # ©N)Ú_sessionÚ_service_nameÚ_api_version)ÚselfÚ
bc_sessionÚservice_nameÚapi_versions   &&&&r   Ú__init__ÚLazyLoadedWaiterModel.__init__\   s   € Ø"ŒØ)ÔØ'Ör   c                ó€   € V P                   P                  V P                  V P                  4      P	                  V4      # r+   )r,   Úget_waiter_modelr-   r.   Ú
get_waiter)r/   Úwaiter_names   &&r   r7   Ú LazyLoadedWaiterModel.get_waitera   s4   € Ø�}‰}×-Ñ-Ø×Ñ × 1Ñ 1ó
ç
‰*�[Ó
!ð	"r   )r.   r-   r,   N)	r   r   r	   r
   r   r3   r7   r   Ú__classdictcell__)Ú__classdict__s   @r   r)   r)   R   s   ø‡ € ñò(÷
"ð "r   r)   )r1   Úservice_modelÚservice_waiter_modelÚresource_json_definitions)	r   Úcollectionsr   Ú_ServiceContextr   r   r"   r'   r)   r   r   r   Ú<module>rA      sD   ðó Ý "áØòó€ô	�_ô 	ò.ò	ò'÷"ó "r   