U m‰^T ã@s2ddlZddlmZd dd„Zdd„Zdd„ZdS) éN)Ú merge_dictscCsV| |i¡}t||ƒdt | di¡¡i}t||ƒt||ƒ|dk rRt||ƒ|S)NÚ __default__)ÚgetÚresolve_referencesÚcopyÚdeepcopyrÚ_merge_client_retry_config)Zendpoint_prefixZ retry_modelÚ definitionsÚclient_retry_configZservice_configZfinal_retry_config©r úl/private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/botocore/botocore/translate.pyÚbuild_retry_configs  ÿ   r cCs&| d¡}|dk r"|d|dd<dS)NZ max_attemptsér)r)Z retry_configr Zmax_retry_attempts_overrider r r r)s   ÿÿrcCsd| ¡D]V\}}t|tƒrt|ƒdkrTt| ¡ƒddkrT|t| ¡ƒd||<qt||ƒqdS)aJRecursively replace $ref keys. To cut down on duplication, common definitions can be declared (and passed in via the ``definitions`` attribute) and then references as {"$ref": "name"}, when this happens the reference dict is placed with the value from the ``definition`` dict. This is recursively done. rrz$refN)ÚitemsÚ isinstanceÚdictÚlenÚlistÚkeysÚvaluesr)Úconfigr ÚkeyÚvaluer r r r;s   r)N)rZbotocore.utilsrr rrr r r r Ús  ÿ