Ë
    °ëj}Á ã            
      ó
  — U d Z ddlm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ZddlZddlZddlZddlmZmZ ddlmZmZ ddlmZ ddlmZ ddlmZ dd	lmZmZmZ dd
lmZmZm Z m!Z!m"Z"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z)m*Z*m+Z+ ddlm,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z; ddlm<Z< ddl=Z=ddl>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF ddl=mGZGmHZHmIZImJZJmKZKmLZL ddlMmNZNmOZOmPZP ddlQmRZRmSZS ddlTmUZUmVZVmWZW ddlXmYZYmZZZm[Z[ ddl\m]Z]m^Z^m_Z_m`Z`maZa ddlbmcZc ddldmeZe ddlmfZf ddlgmhZhmiZimjZjmkZkmlZl ddlmmnZnmoZo ddlpmqZqmrZr dd lhmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{ dd!lim|Z|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡ dd"lˆm‰Z‰ dd#lŠm‹Z‹ dd$lŒm�Z� dd%lŽm�Z�m�Z�m‘Z‘m’Z’ dd&l“m”Z”m•Z• dd'l–m—Z— dd(l˜m™Z™ dd)llmšZšm›Z›mœZœm�Z�mžZž dd*lŸm Z m¡Z¡ e,r dd+l¢m£Z£m¤Z¤ dd,l¥m¦Z¦ dd-l(m§Z§ dd.l¨m©Z© dd/l˜mªZª e�jV                  d0k\  Z¬e7eƒee~f   Z­ e6d1e­¬2«      Z®e7e|eƒ   e|e   e|e~   f   Z¯eRZ°e.e-e°geEj~                  f   Z±e²e�jf                  gZ´d3eµd4<   e¶e�jn                  e�jp                  �jr                  gZºd3eµd5<   e»e�jx                  e�jp                  �jz                  gZ¾d3eµd6<   e¿e�j€                  e�jp                  �jx                  gZÁd3eµd7<   eÂej^                  gZÃd3eµd8<   eee e!e"e#gZÄd3eµd9<   e�jŠ                  e�jp                  �jŠ                  gZÆd3eµd:<   e	�jŽ                  e
�j�                  e
�j’                  e
�j”                  e
�j–                  e
�j˜                  gZÍd3eµd;<   ejh                  e�jœ                  e�jp                  jh                  e�jp                  �jœ                  e�jž                  e=�jž                  e�j                   e�j¢                  e�j¤                  e�j¤                  g
ZÓe�j¨                  e�jª                  gZÖd3eµd<<   e^e]e`ead=œZ×d>eµd?<   	 	 	 	 	 	 did@„ZØdjdA„ZÙ	 	 	 	 	 	 dkdB„ZÚ	 	 	 	 	 	 	 	 dldC„ZÛddDœ	 	 	 	 	 	 	 	 	 dmdE„ZÜe/e5e-   eWf   ZÝ	 	 	 	 	 	 	 	 dndF„ZÞe7e/eße-f   df   Zà G dG„ dH«      ZádodI„Zâ G dJ„ dK«      ZãdL„ dM„ dN„ dO„ dP„ dQ„ dR„ dS„ dTœZädUeµdV<   	 	 	 	 	 	 	 	 dpdW„ZådqdX„Zæ	 	 	 	 	 	 	 	 drdY„ZçdsdZ„Zèdtd[„Zé	 	 	 	 	 	 dud\„Zê	 	 	 	 dvd]„Zë G d^„ d_eI«      Zìdddddd`œ	 	 	 	 	 	 	 	 	 	 	 	 	 dwda„Zí G db„ dc«      Zîdxdd„Zï G de„ df«      Zð G dg„ dh«      Zñy)yz-Convert python types to pydantic-core schema.é    )ÚannotationsN)Ú	ExitStackÚcontextmanager)ÚcopyÚdeepcopy)ÚDecimal)ÚEnum)Úpartial)Ú	ParameterÚ_ParameterKindÚ	signature)ÚIPv4AddressÚIPv4InterfaceÚIPv4NetworkÚIPv6AddressÚIPv6InterfaceÚIPv6Network)Úchain)Ú
attrgetter)ÚFunctionTypeÚ
LambdaTypeÚ
MethodType)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚFinalÚ
ForwardRefÚIterableÚIteratorÚMappingÚTypeÚTypeVarÚUnionÚcastÚoverload)ÚUUID)Úwarn)Ú
CoreSchemaÚMultiHostUrlÚPydanticCustomErrorÚ$PydanticSerializationUnexpectedValueÚPydanticUndefinedÚUrlÚcore_schemaÚto_jsonable_python)ÚLiteralÚTypeAliasTypeÚ	TypedDictÚget_argsÚ
get_originÚis_typeddicté   )ÚAliasChoicesÚAliasGeneratorÚ	AliasPath)ÚGetCoreSchemaHandlerÚGetJsonSchemaHandler)Ú
ConfigDictÚJsonDictÚJsonEncoder)ÚPydanticSchemaGenerationErrorÚPydanticUndefinedAnnotationÚPydanticUserError)ÚAfterValidatorÚBeforeValidatorÚFieldValidatorModesÚPlainValidatorÚWrapValidator)ÚJsonSchemaValue)Úversion_short)ÚPydanticDeprecatedSince20é   )Ú_core_utilsÚ_decoratorsÚ_discriminated_unionÚ_known_annotated_metadataÚ_typing_extra)ÚConfigWrapperÚConfigWrapperStack)ÚCoreMetadataHandlerÚbuild_metadata_dict)	ÚCoreSchemaOrFieldÚcollect_invalid_schemasÚdefine_expected_missing_refsÚget_refÚget_type_refÚis_function_with_inner_schemaÚ%is_list_like_schema_with_items_schemaÚsimplify_schema_referencesÚvalidate_core_schema)Ú	DecoratorÚDecoratorInfosÚFieldSerializerDecoratorInfoÚFieldValidatorDecoratorInfoÚModelSerializerDecoratorInfoÚModelValidatorDecoratorInfoÚRootValidatorDecoratorInfoÚValidatorDecoratorInfoÚget_attribute_from_basesÚinspect_field_serializerÚinspect_model_serializerÚinspect_validator)Úextract_docstrings_from_cls)Úcollect_dataclass_fields)ÚPydanticRecursiveRef)Úget_standard_typevars_mapÚhas_instance_in_typeÚrecursively_defined_type_refsÚreplace_types)Úimport_cached_base_modelÚimport_cached_field_info)ÚMockCoreSchema)ÚCallbackGetCoreSchemaHandler)Úget_cls_type_hints_lenientÚis_annotatedÚis_finalvarÚis_self_typeÚis_zoneinfo_type)Úlenient_issubclassÚsmart_deepcopy)ÚComputedFieldInfoÚ	FieldInfo)Ú	BaseModel)ÚDiscriminator)ÚStandardDataclass)ÚGetJsonSchemaFunction)é   é   ÚFieldDecoratorInfoType)Úboundz
list[type]ÚTUPLE_TYPESÚ
LIST_TYPESÚ	SET_TYPESÚFROZEN_SET_TYPESÚ
DICT_TYPESÚIP_TYPESÚSEQUENCE_TYPESÚ
PATH_TYPESÚDEQUE_TYPES)ÚbeforeÚafterÚplainÚwrapzbdict[FieldValidatorModes, type[BeforeValidator | AfterValidator | PlainValidator | WrapValidator]]Ú_mode_to_validatorc                óR   — d| j                   v ry| j                   D ]	  }||k(  sŒ	 y y)z×Check if field name is in validator fields.

    Args:
        info: The field info.
        field: The field name to check.

    Returns:
        `True` if field name is in validator fields, `False` otherwise.
    Ú*TF)Úfields)ÚinfoÚfieldÚv_field_names      úp/home/oem/CyberBrain26-unified/dev-env/.venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.pyÚ)check_validator_fields_against_field_namer›   �   s6   € ð ˆd�k‰kÑØØŸ™ò ˆØ˜5Ó Ùðð ó    c           	     ó  — t        |«      }| D ]{  }d|j                  j                  v rŒ|j                  j                  du rŒ5|j                  j                  D ].  }||vsŒt	        d|j
                  › d|j                  › d�d¬«      ‚ Œ} y)	av  Check if the defined fields in decorators exist in `fields` param.

    It ignores the check for a decorator if the decorator has `*` as field or `check_fields=False`.

    Args:
        decorators: An iterable of decorators.
        fields: An iterable of fields name.

    Raises:
        PydanticUserError: If one of the field names does not exist in `fields` param.
    r•   Fz*Decorators defined with incorrect fields: ú.zO (use check_fields=False if you're inheriting from the model and intended this)zdecorator-missing-field©ÚcodeN)Úsetr—   r–   Úcheck_fieldsrB   Úcls_refÚcls_var_name)Ú
decoratorsr–   Údecr˜   s       rš   Úcheck_decorator_fields_existr§   ²   s”   € ô �‹[€FØò ˆØ�#—(‘(—/‘/Ñ!ØØ�8‰8× Ñ  EÑ)ØØ—X‘X—_‘_ò 	ˆEØ˜FÒ"Ü'Ø@ÀÇÁÀÈQÈs×O_ÑO_ÐN`Øeðfà2ôð ñ	ñrœ   c                óZ   — | D �cg c]  }t        |j                  |«      sŒ|‘Œ c}S c c}w ©N)r›   r—   )Úvalidator_functionsr˜   r¦   s      rš   Ú$filter_field_decorator_info_by_fieldr«   Í   s*   € ð /Öm�CÔ2[Ð\_×\dÑ\dÐfkÕ2lŠCÒmÐmùÒms   …(¡(c                óÐ  — |s| S | d   dk(  rt        | d   ||«      | d<   | S | d   dk(  r.| j                  d«      x}�t        | d   |   ||«      | d   |<   | S t        | «      r6| j                  dt	        j
                  «       «      }t        |||«      | d<   | S | d   dk(  r6| j                  dt	        j
                  «       «      }t        |||«      | d<   | S t        d	| d   › �«      ‚)
NÚtypeÚnullableÚschemaÚtupleÚvariadic_item_indexÚitems_schemaÚdictÚvalues_schemazO`@validator(..., each_item=True)` cannot be applied to fields with a schema of )Úapply_each_item_validatorsÚgetÚapply_validatorsr[   r/   Ú
any_schemaÚ	TypeError)r¯   Úeach_item_validatorsÚ
field_namer±   Úinner_schemas        rš   rµ   rµ   Ó   s.  € ñ  Øˆð
 ˆf�~˜Ò#Ü5°f¸XÑ6FÐH\Ð^hÓiˆˆxÑØˆØ	�‰˜7Ò	"Ø#)§:¡:Ð.CÓ#DÐDÐÐQÜ:JØ�~Ñ&Ð':Ñ;Ø$Øó;ˆF�>Ñ"Ð#6Ñ7ð €Mô 
/¨vÔ	6Ø—z‘z .´+×2HÑ2HÓ2JÓKˆÜ!1°,Ð@TÐV`Ó!aˆˆ~Ñð €Mð 
�‰˜6Ò	!Ø—z‘z /´;×3IÑ3IÓ3KÓLˆÜ"2°<ÐAUÐWaÓ"bˆˆÑð
 €Mô Ø]Ð^dÐekÑ^lÐ]mÐnó
ð 	
rœ   )Útitlec               ó¬  — ddl m} ddlm} ddlm} t        «       } || «      }|j                  |«      }	|�||	d<   nd|	vr|j                  |	d<   ||u s ||«      s ||«      rdn|j                  }
|
rd|	vrt        j                  |
«      |	d<   |S t        ||«      r5|j                  d	   j                  r|j                  d	   j                  |	d<   |S )
a…  Add title and description for model-like classes' JSON schema.

    Args:
        schema_or_field: The schema data to generate a JSON schema from.
        handler: The `GetCoreSchemaHandler` instance.
        cls: The model-like class.
        title: The title to set for the model's schema, defaults to the model's name

    Returns:
        JsonSchemaValue: The updated JSON schema.
    r7   ©Úis_pydantic_dataclass)Ú	RootModelrK   )Úis_builtin_dataclassNr½   ÚdescriptionÚroot)ÚdataclassesrÀ   Ú
root_modelrÁ   Ú_dataclassesrÂ   rq   Úresolve_ref_schemaÚ__name__Ú__doc__ÚinspectÚcleandocÚ
issubclassÚmodel_fieldsrÃ   )Úschema_or_fieldÚhandlerÚclsr½   rÀ   rÁ   rÂ   r~   Újson_schemaÚoriginal_schemaÚ	docstrings              rš   Úmodify_model_json_schemarÕ   ø   sâ   € õ$ 4Ý&Ý2ä(Ó*€Iá˜/Ó*€KØ×0Ñ0°Ó=€OØÐØ#(ˆ˜Ò Ø	˜Ñ	'Ø#&§<¡<ˆ˜Ñ à˜yÑ(Ñ,@ÀÔ,EÑI^Ð_bÔIc‘Ðil×itÑit€IÙ�]¨/Ñ9Ü)0×)9Ñ)9¸)Ó)Dˆ˜Ñ&ð Ðô 
�C˜Ô	#¨×(8Ñ(8¸Ñ(@×(LÒ(LØ),×)9Ñ)9¸&Ñ)A×)MÑ)Mˆ˜Ñ&ØÐrœ   c                ó"  — | s|S d|v r|S |gt        |d|j                  j                  «      dd ¢­D ]Y  }| j                  |«      }|€Œt	        j
                  dt        «       › d�t        «       t        j                  |d¬«      |d<   |c S  |S )	a  Iterate over the json_encoders and add the first matching encoder to the schema.

    Args:
        json_encoders: A dictionary of types and their encoder functions.
        tp: The type to check for a matching encoder.
        schema: The schema to add the encoder to.
    ÚserializationÚ__mro__Néÿÿÿÿz=`json_encoders` is deprecated. See https://docs.pydantic.dev/z</concepts/serialization/#custom-serializers for alternativesÚjson)Ú	when_used)
ÚgetattrÚ	__class__rØ   r¶   Úwarningsr(   rI   rJ   r/   Ú$plain_serializer_function_ser_schema)Újson_encodersÚtpr¯   ÚbaseÚencoders        rš   Ú,_add_custom_serialization_from_json_encodersrä   "  s±   € ñ ØˆØ˜&Ñ Øˆð ÐH”g˜b )¨R¯\©\×-AÑ-AÓBÀ3ÀBÐGÑHò ˆØ×#Ñ# DÓ)ˆØˆ?Øä�‰ØKÌMËOÐK\ð  ]Yð  ZÜ%ô	
ô #.×"RÑ"RÐSZÐflÔ"mˆˆÑØŠðð €Mrœ   c                  ó<   — e Zd ZdZdd„Zedd„«       Zedd„«       Zy)	ÚTypesNamespaceStackzA stack of types namespaces.c                ó   — |g| _         y r©   ©Ú_types_namespace_stack)ÚselfÚtypes_namespaces     rš   Ú__init__zTypesNamespaceStack.__init__J  s   € Ø=LÐ<MˆÕ#rœ   c                ó    — | j                   d   S ©NrÙ   rè   ©rê   s    rš   ÚtailzTypesNamespaceStack.tailM  s   € à×*Ñ*¨2Ñ.Ð.rœ   c              #  óB  K  — t        j                  |«      j                  «       }|j                  | j                  xs i «       | j
                  j                  |«       	 d –— | j
                  j                  «        y # | j
                  j                  «        w xY w­wr©   )rP   Úget_module_ns_ofr   Úupdaterð   ré   ÚappendÚpop)rê   Úfor_typerë   s      rš   ÚpushzTypesNamespaceStack.pushQ  su   è ø€ ä'×8Ñ8¸ÓB×GÑGÓIˆØ×Ñ˜tŸy™yš¨BÔ/Ø×#Ñ#×*Ñ*¨?Ô;ð	.Ûà×'Ñ'×+Ñ+Õ-øˆD×'Ñ'×+Ñ+Õ-üs   ‚ABÁ!B  Á%BÂ BÂBN)rë   ÚTypesNamespace)Úreturnrø   )rö   ú	type[Any])	rÉ   Ú
__module__Ú__qualname__rÊ   rì   Úpropertyrð   r   r÷   © rœ   rš   ræ   ræ   G  s3   „ Ù&óNð ò/ó ð/ð ò.ó ñ.rœ   ræ   c                ó   — | �| S |S )aB  Return the first argument if it is not None, otherwise return the second argument.

    Use case: serialization_alias (argument a) and alias (argument b) are both defined, and serialization_alias is ''.
    This function will return serialization_alias, which is the first argument, even though it is an empty string.
    rþ   )ÚaÚbs     rš   Ú_get_first_non_nullr  \  s   € ð �ˆ1Ð$ 1Ð$rœ   c                  ó  — e Zd ZdZdZ	 dL	 	 	 	 	 	 	 dMd„Ze	 	 	 	 	 	 	 	 	 	 	 	 dNd„«       ZedOd„«       Z	edPd„«       Z
edQd„«       ZedRd	„«       ZdSd
„ZdTd„ZdUd„ZdTd„ZdTd„ZdVd„ZdWd„ZdWd„ZdXd„Z	 	 	 	 	 	 dYd„Z G d„ de«      ZdZd„ZdZd„Zd[d„Z	 d\	 	 	 	 	 d]d„Zd^d„Ze	 dL	 	 	 	 	 d_d„«       ZdZd„Z d`d„Z!dad„Z"e#dbd „«       Z$e#dcd!„«       Z$ddded"„Z$dad#„Z%dfd$„Z&dgd%„Z'dgd&„Z(dhd'„Z)dd(œ	 	 	 	 	 	 	 	 	 did)„Z*	 	 	 	 	 	 	 	 djd*„Z+	 	 	 	 	 	 	 	 dkd+„Z,e	 	 	 	 	 	 	 	 dld,„«       Z-e	 	 	 	 	 	 dmd-„«       Z.e	 	 	 	 	 	 	 	 dnd.„«       Z/	 	 	 	 	 	 	 	 dod/„Z0dpd0„Z1	 	 	 	 dXd1„Z2dqd2„Z3drd3„Z4dsd4„Z5e6jn                  df	 	 	 	 	 	 	 	 	 dtd5„Z8dud6„Z9dvd7„Z:dvd8„Z;dpd9„Z<dwd:„Z=dxd;„Z>dyd<„Z?dzd=„Z@dvd>„ZA	 	 	 	 	 	 d{d?„ZBd|d@„ZCd}dA„ZD	 	 	 	 	 	 d~dB„ZEddC„ZF	 	 	 	 	 	 d€dD„ZGdE„ f	 	 	 	 	 	 	 d�dF„ZHd‚dG„ZI	 	 	 	 	 	 d‚dH„ZJ	 	 	 	 	 	 	 	 dƒdI„ZK	 dd	 	 	 	 	 	 	 d„dJ„ZL	 	 	 	 	 	 d…dK„ZMy)†ÚGenerateSchemaz\Generate core schema for a Pydantic model, dataclass and types like `str`, `datetime`, ... .)Ú_config_wrapper_stackré   Ú_typevars_mapÚfield_name_stackÚmodel_type_stackÚdefsNc                ó¬   — t        |«      | _        t        |«      | _        || _        t        «       | _        t        «       | _        t        «       | _
        y r©   )rR   r  ræ   ré   r  Ú_FieldNameStackr  Ú_ModelTypeStackr  Ú_Definitionsr	  )rê   Úconfig_wrapperrë   Útypevars_maps       rš   rì   zGenerateSchema.__init__q  sE   € ô &8¸Ó%GˆÔ"Ü&9¸/Ó&JˆÔ#Ø)ˆÔÜ /Ó 1ˆÔÜ /Ó 1ˆÔÜ “Nˆ�	rœ   c                óŒ   — | j                  | «      }||_        ||_        ||_        ||_        t        «       |_        ||_        |S r©   )Ú__new__r  ré   r  r  r  r  r	  )rÑ   Úconfig_wrapper_stackÚtypes_namespace_stackr  r  r	  Úobjs          rš   Ú__from_parentzGenerateSchema.__from_parent  sI   € ð �k‰k˜#ÓˆØ$8ˆÔ!Ø%:ˆÔ"Ø/ˆÔØ(ˆÔÜ.Ó0ˆÔØˆŒØˆ
rœ   c                ó.   — | j                   j                  S r©   )r  rð   rï   s    rš   Ú_config_wrapperzGenerateSchema._config_wrapper‘  s   € à×)Ñ)×.Ñ.Ð.rœ   c                ó.   — | j                   j                  S r©   )ré   rð   rï   s    rš   Ú_types_namespacezGenerateSchema._types_namespace•  s   € à×*Ñ*×/Ñ/Ð/rœ   c                óÌ   — | j                   j                  xs t        }|j                  | j                  | j
                  | j                  | j                  | j                  «      S r©   )	r  Úschema_generatorr  Ú_GenerateSchema__from_parentr  ré   r  r  r	  )rê   rÑ   s     rš   Ú_current_generate_schemaz'GenerateSchema._current_generate_schema™  sV   € à×"Ñ"×3Ñ3ÒE´~ˆØ× Ñ Ø×&Ñ&Ø×'Ñ'Ø×!Ñ!Ø×ÑØ�I‰Ió
ð 	
rœ   c                ó.   — | j                   j                  S r©   )r  Úarbitrary_types_allowedrï   s    rš   Ú_arbitrary_typeszGenerateSchema._arbitrary_types¤  s   € à×#Ñ#×;Ñ;Ð;rœ   c                ó*   — t        j                  «       S )zGenerate a CoreSchema for `str`)r/   Ú
str_schemarï   s    rš   r"  zGenerateSchema.str_schema¨  s   € ä×%Ñ%Ó'Ð'rœ   c                óJ   — t        j                  | j                  |«      «      S r©   )r/   Úlist_schemaÚgenerate_schema©rê   Ú
items_types     rš   Ú_list_schemazGenerateSchema._list_schema®  s   € Ü×&Ñ& t×';Ñ';¸JÓ'GÓHÐHrœ   c                ój   — t        j                  | j                  |«      | j                  |«      «      S r©   )r/   Údict_schemar%  )rê   Ú	keys_typeÚvalues_types      rš   Ú_dict_schemazGenerateSchema._dict_schema±  s,   € Ü×&Ñ& t×';Ñ';¸IÓ'FÈ×H\ÑH\Ð]hÓHiÓjÐjrœ   c                óJ   — t        j                  | j                  |«      «      S r©   )r/   Ú
set_schemar%  r&  s     rš   Ú_set_schemazGenerateSchema._set_schema´  s   € Ü×%Ñ% d×&:Ñ&:¸:Ó&FÓGÐGrœ   c                óJ   — t        j                  | j                  |«      «      S r©   )r/   Úfrozenset_schemar%  r&  s     rš   Ú_frozenset_schemaz GenerateSchema._frozenset_schema·  s   € Ü×+Ñ+¨D×,@Ñ,@ÀÓ,LÓMÐMrœ   c           	     óî  ‡‡
‡‡‡— t        ‰j                  j                  «       «      Š
t        ‰«      Š‰j                  sd nt        j                  ‰j                  «      }|dk(  rd }‰j                  |dœŠ‰j                  «       D ��ci c]  \  }}|€Œ	||“Œ c}}Šd Št        ‰t        «      rdŠt        j                  d«      }nft        ‰t        «      rdŠt        j                  d«      }n>t        ‰t        «      rdŠt        j                  d«      }nt        j                  d„ «      }‰
r�dˆfd„}t!        ‰j"                  dd «      t$        j"                  j&                  k(  }t        j(                  ‰‰
‰|rd n‰j"                  ‰d	|gi¬
«      }| j*                  j,                  r!t        j.                  t1        d«      ||¬«      }|S dˆ
ˆˆˆˆfd„}	t        j2                  ‰d	|	gi¬«      S c c}}w )NzAn enumeration.)r½   rÃ   ÚintÚstrÚfloatc                ó   — | S r©   rþ   ©Úxs    rš   ú<lambda>z-GenerateSchema._enum_schema.<locals>.<lambda>Ó  s   € ÐXY€ rœ   c                ó\   •—  || «      }|j                  |«      }|j                  ‰«       |S r©   )rÈ   ró   )r¯   rÐ   rÒ   rÓ   Ú
js_updatess       €rš   Úget_json_schemaz4GenerateSchema._enum_schema.<locals>.get_json_schema×  s0   ø€ Ù% f›o�Ø")×"<Ñ"<¸[Ó"I�Ø×&Ñ& zÔ2Ø"Ð"rœ   Ú__func__Úpydantic_js_functions)Úsub_typeÚmissingÚrefÚmetadataÚvalue)r×   c                óŠ   •—  |t        j                  ‰‰‰‰¬«      «      }|j                  |«      }|j                  ‰«       |S )N)rA  rC  )r/   Úenum_schemarÈ   ró   )	Ú_rÐ   rÒ   rÓ   ÚcasesÚenum_refÚ	enum_typer=  rA  s	       €€€€€rš   Úget_json_schema_no_casesz=GenerateSchema._enum_schema.<locals>.get_json_schema_no_casesñ  sD   ø€ Ù%¤k×&=Ñ&=¸iÈÐYaÐgoÔ&pÓq�Ø")×"<Ñ"<¸[Ó"I�Ø×&Ñ& zÔ2Ø"Ð"rœ   ©rD  )r¯   r)   rÐ   r<   rù   rH   )rÐ   r<   rù   rH   )ÚlistÚ__members__ÚvaluesrY   rÊ   rË   rÌ   rÉ   ÚitemsrÍ   r5  r/   Úsimple_ser_schemar6  r7  rß   rÜ   Ú	_missing_r	   r?  rG  r  Úuse_enum_valuesÚ no_info_after_validator_functionr   Úis_instance_schema)rê   rK  rÃ   ÚkÚvÚvalue_ser_typer>  Údefault_missingrG  rL  rI  rJ  r=  rA  s    `        @@@@rš   Ú_enum_schemazGenerateSchema._enum_schemaº  sÌ  ü€ Ü 	× 5Ñ 5× <Ñ <Ó >Ó?ˆä 	Ó*ˆØ"+×"3Ò"3‘d¼×9IÑ9IÈ)×J[ÑJ[Ó9\ˆàÐ,Ò,àˆKØ(×1Ñ1À+ÑNˆ
Ø'1×'7Ñ'7Ó'9×K™t˜q !¸Q¹]�a˜‘dÓKˆ
à:>ˆÜ�i¤Ô%ØˆHÜ4?×4QÑ4QÐRWÓ4X‰NÜ˜	¤3Ô'àˆHÜ(×:Ñ:¸5ÓA‰NÜ˜	¤5Ô)ØˆHÜ(×:Ñ:¸7ÓC‰Nô )×MÑMÉkÓZˆNáõ#ô & i×&9Ñ&9¸:ÀtÓLÔPT×P^ÑP^×PgÑPgÑgˆOÜ%×1Ñ1ØØØ!Ù /™°Y×5HÑ5HØØ1°OÐ3DÐEôˆKð ×#Ñ#×3Ò3Ü)×JÑJÜ˜wÓ'¨ÀNô�ð Ð÷#ñ #ô ×1Ñ1ØØ1Ð4LÐ3MÐNôð ùós Ls   Â

G1ÂG1c                ó¨  ‡‡— ddl m} t        dt        dt        dt
        dt        dt        diŠdˆfd	„}t        j                  t        j                  |‰   «      t        j                  t        j                  ‰t        j                  «       «      t        j                  ‰«      ¬
«      t        j                  |«      t!        ˆˆfd„g¬«      ¬«      S )NrK   )ÚIP_VALIDATOR_LOOKUPÚipv4Úipv4networkÚipv4interfaceÚipv6Úipv6networkÚipv6interfacec           	     óz   •— t        | ‰t        f«      st        d‰› dt        | «      › d| › d�«      ‚t        | «      S )Nz
Expected `z` but got `z` with value `'z-'` - serialized value may not be as expected.)Ú
isinstancer6  r,   r­   )Úiprá   s    €rš   Úser_ipz)GenerateSchema._ip_schema.<locals>.ser_ip  sF   ø€ Ü˜b 2¤s )Ô,Ü:Ø    K´°R³¨z¸ÈÈÐLyÐzóð ô �r“7ˆNrœ   )rÒ   Úpython_schemac                ó   •— d‰‰   dœS )NÚstring©r­   Úformatrþ   )Ú_1Ú_2Úip_type_json_schema_formatrá   s     €€rš   r;  z+GenerateSchema._ip_schema.<locals>.<lambda>  s   ø€ °hÐJdÐegÑJhÑ-i€ rœ   ©Újs_functions)Ú
lax_schemaÚstrict_schemar×   rD  )rf  r   rù   r6  )Ú_validatorsr]  r   r   r   r   r   r   r/   Úlax_or_strict_schemaÚ no_info_plain_validator_functionÚjson_or_python_schemarU  r"  rV  rß   rT   )rê   rá   r]  rg  ro  s    `  @rš   Ú
_ip_schemazGenerateSchema._ip_schema  s°   ù€ Ý4ô ˜Ü˜Ü˜?Ü˜Ü˜Ü˜?ð&
Ð"õ	ô ×/Ñ/Ü"×CÑCÐDWÐXZÑD[Ó\Ü%×;Ñ;Ü'×HÑHÈÌ[×McÑMcÓMeÓfÜ)×<Ñ<¸RÓ@ôô &×JÑJÈ6ÓRÜ(ÜiÐjôô

ð 
	
rœ   c                óš   — t        |t        «      s't        |›d�t        «       t	        j
                  «       S t	        j                  |«      S )Na   is not a Python type (it may be an instance of an object), Pydantic will allow any object with no validation since we cannot even enforce that the input is an instance of the given type. To get rid of this error wrap the type with `pydantic.SkipValidation`.)re  r­   r(   ÚUserWarningr/   r¸   rV  )rê   rá   s     rš   Ú_arbitrary_type_schemaz%GenerateSchema._arbitrary_type_schema!  sL   € Ü˜"œdÔ#ÜØ�&ð Zð Zô ôô ×)Ñ)Ó+Ð+Ü×-Ñ-¨bÓ1Ð1rœ   c                ó    — t        d|›d�«      ‚)Nú,Unable to generate pydantic-core schema for a¨  . Set `arbitrary_types_allowed=True` in the model_config to ignore this error or implement `__get_pydantic_core_schema__` on your type to fully support it.

If you got this error by calling handler(<some type>) within `__get_pydantic_core_schema__` then you likely need to call `handler.generate_schema(<some type>)` since we do not call `__get_pydantic_core_schema__` on `<some type>` otherwise to avoid infinite recursion.)r@   ©rê   r  s     rš   Ú_unknown_type_schemaz#GenerateSchema._unknown_type_schema-  s#   € Ü+Ø:¸3¸'ð Bfð fó
ð 	
rœ   c                óš   — |€|S 	 t        j                  ||«      S # t         j                  $ r t        j                  ||«       |cY S w xY wr©   )rN   Úapply_discriminatorÚMissingDefinitionForUnionRefÚset_discriminator_in_metadata)rê   r¯   Údiscriminators      rš   Ú_apply_discriminator_to_unionz,GenerateSchema._apply_discriminator_to_union8  s_   € ð Ð ØˆMð	Ü'×;Ñ;ØØóð øô $×@Ñ@ò 	ä ×>Ñ>ØØôð ŠMð	ús   † œ+A
Á	A
c                  ó   — e Zd Zy)úGenerateSchema.CollectedInvalidN)rÉ   rû   rü   rþ   rœ   rš   ÚCollectedInvalidr‡  J  s   „ Ørœ   rˆ  c                ó´   — | j                  |«      }t        |«      }t        |«      r| j                  «       ‚t	        j
                  |«      }t        |«      }|S r©   )Úcollect_definitionsr\   rV   rˆ  rN   Úapply_discriminatorsr]   )rê   r¯   s     rš   Úclean_schemazGenerateSchema.clean_schemaM  sR   € Ø×)Ñ)¨&Ó1ˆÜ+¨FÓ3ˆÜ" 6Ô*Ø×'Ñ'Ó)Ð)Ü%×:Ñ:¸6ÓBˆÜ% fÓ-ˆØˆrœ   c                ó*  — t        d|j                  dd «      «      }|r|| j                  j                  |<   d|v rt	        j
                  |d   «      }t	        j                  |t        | j                  j                  j                  «       «      «      S )Nú
str | NonerC  )	r%   r¶   r	  Údefinitionsr/   Údefinition_reference_schemaÚdefinitions_schemarN  rP  )rê   r¯   rC  s      rš   rŠ  z"GenerateSchema.collect_definitionsV  s|   € Ü�< §¡¨E°4Ó!8Ó9ˆÙØ)/ˆD�I‰I×!Ñ! #Ñ&Ø�F‰?Ü ×<Ñ<¸VÀE¹]ÓKˆFÜ×-Ñ-ØÜ�—‘×&Ñ&×-Ñ-Ó/Ó0ó
ð 	
rœ   c                ó~   — t        |«      j                  }|j                  dg «      }||vr|j                  |«       y y )Nr@  )rS   rD  Ú
setdefaultrô   )rê   Úmetadata_schemaÚjs_functionrD  r@  s        rš   Ú_add_js_functionzGenerateSchema._add_js_functiona  sD   € Ü& Ó7×@Ñ@ˆØ (× 3Ñ 3Ð4KÈRÓ PÐð Ð3Ñ3Ø!×(Ñ(¨Õ5ð 4rœ   Tc                ó&  — d}|r| j                  ||«      }|�|}|€| j                  |«      }t        ||«      }|�4t        || j                  j
                  «      }|r| j                  ||«       t        | j                  j                  ||«      }|S )a  Generate core schema.

        Args:
            obj: The object to generate core schema for.
            from_dunder_get_core_schema: Whether to generate schema from either the
                `__get_pydantic_core_schema__` function or `__pydantic_core_schema__` property.

        Returns:
            The generated core schema.

        Raises:
            PydanticUndefinedAnnotation:
                If it is not possible to evaluate forward reference.
            PydanticSchemaGenerationError:
                If it is not possible to generate pydantic-core schema.
            TypeError:
                - If `alias_generator` returns a disallowed type (must be str, AliasPath or AliasChoices).
                - If V1 style validator with `each_item=True` applied on a wrong field.
            PydanticUserError:
                - If `typing.TypedDict` is used instead of `typing_extensions.TypedDict` on Python < 3.12.
                - If `__modify_schema__` method is used instead of `__get_pydantic_json_schema__`.
        N)
Ú_generate_schema_from_propertyÚ_generate_schema_innerÚ!_extract_get_pydantic_json_schemaÚresolve_original_schemar	  r�  r–  rä   r  rà   )rê   r  Úfrom_dunder_get_core_schemar¯   Úfrom_propertyÚmetadata_js_functionr”  s          rš   r%  zGenerateSchema.generate_schemal  sœ   € ð6 %)ˆá&Ø ×?Ñ?ÀÀSÓIˆMØÐ(Ø&�àˆ>Ø×0Ñ0°Ó5ˆFä@ÀÀfÓMÐØÐ+Ü5°f¸d¿i¹i×>SÑ>SÓTˆOÙØ×%Ñ% oÐ7KÔLä=¸d×>RÑ>R×>`Ñ>`ÐbeÐgmÓnˆàˆrœ   c                óŽ	  — | j                   j                  |«      5 \  }}|�|cddd«       S |j                  }|j                  }|j                  }t        t        |j                  j                  «       |j                  j                  «       |j                  j                  «       «      h |j                  «       £|j                  «       £«       t        |j                  d¬«      }|j                  |«      }| j                  ||«      }	t!        t#        t$        ||	¬«      g¬«      }
|j&                  j                  «       }| j(                  j+                  |«      5  | j,                  j+                  |«      5  | j.                  } d}|j1                  d«      dk(  rù|j2                  d   |u sJ ‚|j2                  d	   t4        u sJ ‚|j2                  dd	 D ]½  }t7        |d
i «      j1                  dd«      }|€Œ#t9        |t:        «      r6t=        j>                  t=        j@                  |dd¬«      | jB                  «      }tE        |«      }|tF        tH        fvrtK        d«      ‚| jM                  |d¬«      d   }|tN        usŒ¬| jQ                  |«      } n |jR                  r]| jU                  d|d   |«      }|d   }tW        ||d«      }tY        jZ                  ||t7        |dd«      dt7        |dd«      |||
¬«      }�n	tY        j\                  |j_                  «       D ��ci c]  \  }}|| ja                  |||«      “Œ c}}|j                  «       D �cg c]  }| jc                  ||j                  «      ‘Œ  c}||jd                  ¬«      }tg        ||jh                  j                  «       d«      }tk        |tm        «       «      }|�|}tW        ||d«      }tY        jZ                  ||t7        |dd«      dt7        |dd«      |||
¬«      }| jo                  ||jp                  j                  «       «      }tW        ||d«      }|| j                   jr                  |<   tY        jt                  |«      cddd«       cddd«       cddd«       S c c}}w c c}w # 1 sw Y   nxY wddd«       n# 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)z%Generate schema for a Pydantic model.NF)Úcheck©rÑ   r½   rp  Úextra_fields_behaviorÚallowr   rÙ   Ú__annotations__Ú__pydantic_extra__T)Úis_argumentÚis_classzEThe type annotation for `__pydantic_extra__` must be `Dict[str, ...]`©ÚrequiredrK   rÄ   r¯   ÚinnerÚ__pydantic_custom_init__Ú__pydantic_post_init__)Úcustom_initrÆ   Ú	post_initÚconfigrC  rD  )Úcomputed_fieldsÚextras_schemaÚ
model_nameÚouter);r	  Úget_schema_or_refrÎ   Ú__pydantic_decorators__r°  r§   r   Úfield_validatorsrP  Úfield_serializersÚ
validatorsÚkeysrQ   Úmodel_configÚcore_configÚ_get_model_title_from_configrT   r
   rÕ   Úmodel_validatorsr  r÷   ré   r  r¶   rØ   ÚobjectrÜ   re  r6  rP   Úeval_type_backportÚ_make_forward_refr  r5   r   r³   r@   Ú _get_args_resolving_forward_refsr   r%  Ú__pydantic_root_model__Ú_common_field_schemaÚapply_model_validatorsr/   Úmodel_schemaÚmodel_fields_schemarQ  Ú_generate_md_field_schemaÚ_computed_field_schemarÉ   r·   Úroot_validatorsrW   ro   Ú_apply_model_serializersÚmodel_serializersr�  r�  )rê   rÑ   Ú	model_refÚmaybe_schemar–   r¥   r°  r  r»  r½   rD  r½  r±  Úcandidate_clsÚextras_annotationrá   Úextra_items_typeÚ
root_fieldr¼   rÅ  rW  rX  ÚdÚfields_schemaÚnew_inner_schemar¯   s                             rš   Ú_model_schemazGenerateSchema._model_schema›  sß  € à�Y‰Y×(Ñ(¨Ó-ð b	JÑ1J°)¸\ØÐ'Ø#÷b	Jñ b	Jð ×%Ñ%ˆFØ×4Ñ4ˆJØ(×8Ñ8ˆOÜ(ÜØ×/Ñ/×6Ñ6Ó8Ø×0Ñ0×7Ñ7Ó9Ø×)Ñ)×0Ñ0Ó2óð
 :�&—+‘+“-Ð9 /×"6Ñ"6Ó"8Ð9ôô +¨3×+;Ñ+;À5ÔIˆNØ(×4Ñ4°SÓ9ˆKØ×5Ñ5°c¸>ÓJˆEÜ*¼ÔAYÐ_bÐjoÔ9pÐ8qÔrˆHà)×:Ñ:×AÑAÓCÐà×+Ñ+×0Ñ0°Ó@ñ LJÀ$×B]ÑB]×BbÑBbÐcfÓBgñ LJØ×4Ñ4�à $�Ø—?‘?Ð#:Ó;¸wÒFØŸ;™; q™>¨SÑ0Ð0Ð0ØŸ;™; r™?¬fÑ4Ð4Ð4Ø),¯©°S°bÐ)9ò &˜Ü,3°MÐCTÐVXÓ,Y×,]Ñ,]Ø0°$ó-Ð)ð -Ñ8Ü)Ð*;¼SÔAÜ4A×4TÑ4TÜ$1×$CÑ$CØ(9ÀuÐW[ô%&ð %)×$9Ñ$9ó	5"Ð 1ô ",Ð,=Ó!>˜BØ!¬$´¨Ñ5Ü&CØ$kó'"ð !"ð 04×/TÑ/TØ 1Ø)-ð 0Uó 0ð  ñ0!Ð,ð  0´sÒ:Ø04×0DÑ0DÐEUÓ0V Ù %ð/&ð2 ×.Ò.Ø!%×!:Ñ!:¸6À6È&Á>ÐS]Ó!^�JØ#-¨hÑ#7�LÜ#9¸,ÐHXÐZaÓ#b�LÜ#.×#;Ñ#;ØØ$Ü$+¨CÐ1KÈTÓ$RØ#'Ü")¨#Ð/GÈÓ"NØ*Ø%Ø!)ô	$’Lô =H×<[Ñ<[ØY_×YeÑYeÓYg×hÑQUÐQRÐTU˜˜D×:Ñ:¸1¸aÀÓLÑLÓhð &5×%;Ñ%;Ó%=ö)à !ð !×7Ñ7¸¸:×;WÑ;WÕXò)ð '4Ø#&§<¡<ô=�Mô $4°MÀ:×C]ÑC]×CdÑCdÓCfÐhlÓ#m�LÜ'CÀLÔRoÓRqÓ'rÐ$Ø'Ð3Ø'7˜Ü#9¸,ÐHXÐZaÓ#b�Lä#.×#;Ñ#;ØØ$Ü$+¨CÐ1KÈTÓ$RØ#(Ü")¨#Ð/GÈÓ"NØ*Ø%Ø!)ô	$�Lð ×6Ñ6°|ÀZ×EaÑEa×EhÑEhÓEjÓk�Ü/°Ð8HÈ'ÓR�Ø39�—	‘	×%Ñ% iÑ0Ü"×>Ñ>¸yÓI÷YLJ÷ LJñ LJ÷-b	Jñ b	JùóL iùò)÷cLJð LJú÷ LJ÷ LJñ LJú÷-b	J÷ b	Jñ b	Júsu   œR;­D/R;ÅR&Å8A>RÇ7BRÊ BRÌRÌ=RÍ#RÍ5C5RÑ*	R&Ñ3	R;ÒRÒRÒR&Ò	R;Ò&R/	Ò+R;Ò;Sc                óÀ   — |€y|j                   r|j                   S |j                  }|r5 || «      }t        |t        «      st	        d|› d|j
                  › �«      ‚|S y)zfGet the title of a model if `model_title_generator` or `title` are set in the config, else return NoneNzmodel_title_generator ú must return str, not )r½   Úmodel_title_generatorre  r6  r¹   rÝ   )Úmodelr  rØ  r½   s       rš   r¼  z+GenerateSchema._get_model_title_from_config  sq   € ð
 Ð!Øà×ÒØ!×'Ñ'Ð'à .× DÑ DÐÙ Ù)¨%Ó0ˆEÜ˜e¤SÔ)ÜÐ"8Ð9NÐ8OÐOeÐfk×fuÑfuÐevÐ wÓxÐxØˆLàrœ   c                óp   — |d   dk(  r-| j                   j                  }|d   D ]
  }|||d   <   Œ |d   S |S )zuUnpack all 'definitions' schemas into `GenerateSchema.defs.definitions`
        and return the inner schema.
        r­   r�  rC  r¯   )r	  r�  )rê   r¯   r�  Úss       rš   Ú_unpack_refs_defsz GenerateSchema._unpack_refs_defs  sQ   € ð �&‰>˜]Ò*ØŸ)™)×/Ñ/ˆKØ˜MÑ*ò *�Ø()�˜A˜e™HÒ%ð*à˜(Ñ#Ð#Øˆrœ   c                ó\  — t        |«      r| j                  j                  «       }| j                  j	                  |«      5 \  }}|�|cddd«       S 	 ddd«       ||u rd}nd}t        |dd«      x}�  ||t        | j                  | |¬«      «      }n“t        |dd«      x}�(t        |t        «      s|j                  dd«      |k(  r|}n\t        |dd«      x}	�Lt        d	t        «       t        j                   |	«       D �
cg c]  }
t        j                  |
«      ‘Œ c}
«      }ny| j                  |«      }t!        |«      r|d
   j#                  dd«      }|r||d<   nt%        |«      }|r.|| j                  j&                  |<   t        j(                  |«      S |S # 1 sw Y   �ŒKxY wc c}
w )a0  Try to generate schema from either the `__get_pydantic_core_schema__` function or
        `__pydantic_core_schema__` property.

        Note: `__get_pydantic_core_schema__` takes priority so it can
        decide whether to use a `__pydantic_core_schema__` attribute, or generate a fresh schema.
        NÚunpackzto-defÚ__get_pydantic_core_schema__)Úref_modeÚ__pydantic_core_schema__rÑ   Ú__get_validators__zc`__get_validators__` is deprecated and will be removed, use `__get_pydantic_core_schema__` instead.r¯   rC  )rx   r  r¶   r	  r´  rÜ   rt   r™  re  rs   r(   rJ   r/   Úchain_schemaÚ"with_info_plain_validator_functionrÜ  rZ   rõ   rX   r�  r�  )rê   r  ÚsourcerH  rÍ  rà  Ú
get_schemar¯   Úexisting_schemar¸  rX  rC  s               rš   r˜  z-GenerateSchema._generate_schema_from_property   s·  € ô ˜ÔØ×'Ñ'×+Ñ+Ó-ˆCØ�Y‰Y×(Ñ(¨Ó-ð 	$Ñ1B°!°\ØÐ'Ø#÷	$ñ 	$Ø'÷	$ð �&‰=Ø‰HàˆHô " #Ð'EÀtÓLÐLˆJÐYÙØÔ4°T×5PÑ5PÐRVÐaiÔjó‰Fô !(¨Ð-GÈÓ NÐNˆ_Ð[Ü˜´Ô?Ø×#Ñ# E¨4Ó0°CÒ7à$‰FÜ# CÐ)=¸tÓDÐDˆjÐQÜØuÜ)ôô !×-Ñ-ÑjtÓjvÖ.wÐef¬{×/]Ñ/]Ð^_Õ/`Ò.wÓx‰Fð à×'Ñ'¨Ó/ˆä(¨Ô0Ø˜Ñ"×&Ñ& u¨dÓ3ˆCÙØ #��u’ä˜&“/ˆCáØ)/ˆD�I‰I×!Ñ! #Ñ&Ü×:Ñ:¸3Ó?Ð?àˆ÷W	$ñ 	$üò2 /xs   ÁFÄF)ÆF&c                ó.  — 	 t        j                  || j                  ¬«      }t        |t        «      rt	        |j                  d|› �«      ‚| j                  rt        || j                  «      }|S # t        $ r}t	        j
                  |«      |‚d }~ww xY w)N)Úglobalnsz%Unable to evaluate forward reference )rP   r¿  r  Ú	NameErrorrA   Úfrom_name_errorre  r   Ú__forward_arg__r  rp   )rê   r  Úes      rš   Ú_resolve_forward_refz#GenerateSchema._resolve_forward_refW  s�   € ð	HÜ×2Ñ2°3À×AVÑAVÔWˆCô
 �cœ:Ô&Ü-¨c×.AÑ.AÐEjÐknÐjoÐCpÓqÐqà×ÒÜ  T×%7Ñ%7Ó8ˆCàˆ
øô ò 	HÜ-×=Ñ=¸aÓ@ÀaÐGûð	Hús   ‚!A0 Á0	BÁ9BÂBc                 ó   — y r©   rþ   )rê   r  r©  s      rš   rÁ  z/GenerateSchema._get_args_resolving_forward_refsm  s   € Øfirœ   c                 ó   — y r©   rþ   r~  s     rš   rÁ  z/GenerateSchema._get_args_resolving_forward_refsp  s   € ØTWrœ   c           	     óÄ   — t        |«      }|r<t        |D �cg c]%  }t        |t        «      r| j	                  |«      n|‘Œ' c}«      }|S |rt        d|› d�«      ‚|S c c}w )Nz	Expected z+ to have generic parameters but it had none)r4   r°   re  r   rî  r¹   )rê   r  r©  Úargsr   s        rš   rÁ  z/GenerateSchema._get_args_resolving_forward_refss  sk   € Ü˜‹}ˆÙÜÐdhÖiÐ_`¼*ÀQÌ
Ô:S˜$×3Ñ3°AÔ6ÐYZÑZÒiÓjˆDð ˆñ Ü˜i¨ uÐ,WÐXÓYÐYØˆùò js   —*Ac                ó>   — | j                  |«      }|st        S |d   S )Nr   )rÁ  r   )rê   r  rò  s      rš   Ú_get_first_arg_or_anyz$GenerateSchema._get_first_arg_or_any{  s#   € Ø×4Ñ4°SÓ9ˆÙÜˆJØ�A‰wˆrœ   c                ó¤   — | j                  |«      }|st        t        fS t        |«      dk  rt        |«      }t	        d|› d�«      ‚|d   |d   fS )Nr7   z Expected two type arguments for z, got 1r   rK   )rÁ  r   Úlenr5   r¹   )rê   r  rò  Úorigins       rš   Ú_get_first_two_args_or_anyz)GenerateSchema._get_first_two_args_or_any�  s[   € Ø×4Ñ4°SÓ9ˆÙÜœ�:ÐÜˆt‹9�qŠ=Ü “_ˆFÜÐ>¸v¸hÀgÐNÓOÐOØ�A‰w˜˜Q™ÐÐrœ   c                ó&  — t        |«      r| j                  |«      S t        |t        «      r|S t        |t        «      rt        |«      }t        |t
        «      r | j                  | j                  |«      «      S t        «       }t        ||«      r6| j                  j                  |«      5  | j                  |«      cd d d «       S t        |t        «      r t        j                  |j                   ¬«      S | j#                  |«      S # 1 sw Y   ŒJxY w)N)Ú
schema_ref)rv   Ú_annotated_schemare  r³   r6  r   r%  rî  rq   rz   r  r÷   rÕ  rl   r/   r�  Útype_refÚ
match_type)rê   r  r~   s      rš   r™  z%GenerateSchema._generate_schema_innerŠ  sâ   € Ü˜ÔØ×)Ñ)¨#Ó.Ð.ä�cœ4Ô àˆJä�cœ3ÔÜ˜S“/ˆCä�cœ:Ô&Ø×'Ñ'¨×(AÑ(AÀ#Ó(FÓGÐGä,Ó.ˆ	ä˜c 9Ô-Ø×&Ñ&×+Ñ+¨CÓ0ñ /Ø×)Ñ)¨#Ó.÷/ñ /ô �cÔ/Ô0Ü×:Ñ:ÀcÇlÁlÔSÐSà�‰˜sÓ#Ð#÷/ð /ús   Â+DÄDc                ód  — |t         u r| j                  «       S |t        u rt        j                  «       S |t
        u rt        j                  «       S |t        u rt        j                  «       S |t        u rt        j                  «       S |t        u rt        j                  «       S |t        u s|t        u rt        j                  «       S |t         j"                  u rt        j$                  «       S |t         j                   u rt        j&                  «       S |t         j(                  u rt        j*                  «       S |t         j,                  u rt        j.                  «       S |t0        u rt        j2                  «       S |t4        u rt        j6                  «       S |t8        u rt        j:                  «       S |t<        u rt        j>                  «       S |�|t@        jB                  u rt        jD                  «       S |tF        v r| jI                  |«      S |tJ        v r| jM                  |«      S |tN        v r| jQ                  t        «      S |tR        v r| jU                  t        «      S |tV        v r| jY                  t        «      S |tZ        v r| j]                  t        «      S |t^        v r| ja                  t        t        «      S tc        |td        «      r| jg                  |«      S |th        u r| jk                  «       S tA        jl                  |«      rt        jn                  «       S tA        jp                  |«      r| js                  |«      S tu        |«      r| jw                  |d«      S tA        jx                  |«      r| j{                  |d«      S tA        j|                  |«      r| j                  |j€                  «      S |t‚        j„                  k(  r| j‡                  |«      S |tˆ        jŠ                  jŒ                  u s|tŽ        jŒ                  u r| j‘                  «       S tc        |tŽ        j’                  «      r| j•                  |«      S t—        |«      r<|t˜        u rt        j                  «       S | j                  | j›                  |«      «      S tc        |tœ        tž        t         t¢        f«      r| j¥                  |«      S t§        j¨                  |«      r!t«        |t¬        «      r| j¯                  |«      S t±        |«      r| j³                  «       S tA        j´                  |«      r| j·                  |d«      S t¹        |«      }|�| j»                  ||«      S | j½                  |d«      }|�|\  }}| j¿                  ||«      S | jÀ                  r| jÃ                  |«      S | jÅ                  |«      S )aÈ  Main mapping of types to schemas.

        The general structure is a series of if statements starting with the simple cases
        (non-generic primitive types) and then handling generics and other more complex cases.

        Each case either generates a schema directly, calls into a public user-overridable method
        (like `GenerateSchema.tuple_variable_schema`) or calls into a private method that handles some
        boilerplate before calling into the user-facing method (e.g. `GenerateSchema._tuple_schema`).

        The idea is that we'll evolve this into adding more and more user facing methods over time
        as they get requested and we figure out what the right API for them is.
        Nrþ   )cr6  r"  Úbytesr/   Úbytes_schemar5  Ú
int_schemar7  Úfloat_schemaÚboolÚbool_schemaÚcomplexÚcomplex_schemar   r¾  r¸   ÚdatetimeÚdateÚdate_schemaÚdatetime_schemaÚtimeÚtime_schemaÚ	timedeltaÚtimedelta_schemar   Údecimal_schemar'   Úuuid_schemar.   Ú
url_schemar*   Úmulti_host_url_schemarP   ÚNoneTypeÚnone_schemar‹   rx  r†   Ú_tuple_schemar‡   r(  rˆ   r0  r‰   r3  rŒ   Ú_sequence_schemarŠ   r-  re  r2   Ú_type_alias_type_schemar­   Ú_type_schemaÚis_callable_typeÚcallable_schemaÚis_literal_typeÚ_literal_schemar6   Ú_typed_dict_schemaÚis_namedtupleÚ_namedtuple_schemaÚis_new_typer%  Ú__supertype__ÚreÚPatternÚ_pattern_schemaÚcollectionsÚabcÚHashableÚtypingÚ_hashable_schemar#   Ú_unsubstituted_typevar_schemarw   r   rô  r   r   r   r
   Ú_callable_schemarË   ÚisclassrÍ   r	   r[  ry   Ú_zoneinfo_schemaÚis_dataclassÚ_dataclass_schemar5   Ú_match_generic_typeÚ0_get_prepare_pydantic_annotations_for_known_typeÚ_apply_annotationsr   r{  r  )rê   r  r÷  ÚresÚsource_typer   s         rš   rý  zGenerateSchema.match_type£  sµ  € ð ”#‰:Ø—?‘?Ó$Ð$Ø”E‰\Ü×+Ñ+Ó-Ð-Ø”C‰ZÜ×)Ñ)Ó+Ð+Ø”E‰\Ü×+Ñ+Ó-Ð-Ø”D‰[Ü×*Ñ*Ó,Ð,Ø”G‰^Ü×-Ñ-Ó/Ð/Ø”C‰Z˜3¤&™=Ü×)Ñ)Ó+Ð+Ø”H—M‘MÑ!Ü×*Ñ*Ó,Ð,Ø”H×%Ñ%Ñ%Ü×.Ñ.Ó0Ð0Ø”H—M‘MÑ!Ü×*Ñ*Ó,Ð,Ø”H×&Ñ&Ñ&Ü×/Ñ/Ó1Ð1Ø”G‰^Ü×-Ñ-Ó/Ð/Ø”D‰[Ü×*Ñ*Ó,Ð,Ø”C‰ZÜ×)Ñ)Ó+Ð+Ø”LÑ Ü×4Ñ4Ó6Ð6Øˆ[˜C¤=×#9Ñ#9Ñ9Ü×*Ñ*Ó,Ð,Ø”H‰_Ø—?‘? 3Ó'Ð'Ø”KÑØ×%Ñ% cÓ*Ð*Ø”JÑØ×$Ñ$¤SÓ)Ð)Ø”IÑØ×#Ñ#¤CÓ(Ð(ØÔ$Ñ$Ø×)Ñ)¬#Ó.Ð.Ø”NÑ"Ø×(Ñ(¬Ó-Ð-Ø”JÑØ×$Ñ$¤S¬#Ó.Ð.Ü˜œ]Ô+Ø×/Ñ/°Ó4Ð4Ø”D‰[Ø×$Ñ$Ó&Ð&Ü×+Ñ+¨CÔ0Ü×.Ñ.Ó0Ð0Ü×*Ñ*¨3Ô/Ø×'Ñ'¨Ó,Ð,Ü˜#ÔØ×*Ñ*¨3°Ó5Ð5Ü×(Ñ(¨Ô-Ø×*Ñ*¨3°Ó5Ð5Ü×&Ñ& sÔ+à×'Ñ'¨×(9Ñ(9Ó:Ð:Ø”B—J‘JÒØ×'Ñ'¨Ó,Ð,Ø”K—O‘O×,Ñ,Ñ,°´v·±Ñ0FØ×(Ñ(Ó*Ð*Ü˜œVŸ^™^Ô,Ø×5Ñ5°cÓ:Ð:Ü˜ÔØ”e‰|Ü"×-Ñ-Ó/Ð/Ø×'Ñ'Ø×*Ñ*¨3Ó/óð ô ˜œl¬J¼
ÄGÐLÔMØ×(Ñ(¨Ó-Ð-Ü�_‰_˜SÔ!¤j°´dÔ&;Ø×$Ñ$ SÓ)Ð)Ü˜cÔ"Ø×(Ñ(Ó*Ð*ä×%Ñ% cÔ*Ø×)Ñ)¨#¨tÓ4Ð4ä˜C“ˆØÐØ×+Ñ+¨C°Ó8Ð8à×CÑCÀCÈÓLˆØˆ?Ø'*Ñ$ˆK˜Ø×*Ñ*¨;¸ÓDÐDà× Ò Ø×.Ñ.¨sÓ3Ð3Ø×(Ñ(¨Ó-Ð-rœ   c                ó„  — t        |t        «      r| j                  |«      S t        j                  |«      r| j                  ||«      S t        j                  |«      r| j                  ||«      S | j                  ||«      }|�|S t        j                  |«      r| j                  |«      S |t        v r| j                  |«      S |t        v r | j                  | j                  |«      «      S |t         v r | j#                  | j                  |«      «      S |t$        v r | j'                  | j                  |«      «      S |t(        v r | j*                  | j-                  |«      Ž S t/        |«      r| j1                  ||«      S |t2        j4                  t6        fv r| j9                  |«      S |t:        v r | j=                  | j                  |«      «      S |t2        j>                  t@        jB                  j>                  t2        jD                  t@        jB                  jD                  hv r| jG                  |«      S |tH        jJ                  t2        jJ                  fv r| jM                  |«      S | jO                  |d«      }|�|\  }}| jQ                  ||«      S | jR                  r| jU                  |«      S | jW                  |«      S )Nrþ   ),re  r2   r  rP   r.  r/  r  r  r˜  Úorigin_is_unionÚ_union_schemar†   r  r‡   r(  rô  rˆ   r0  r‰   r3  rŠ   r-  rø  r6   r  r(  r"   r­   Ú_subclass_schemarŒ   r  r   r%  r&  Ú	GeneratorÚ_iterable_schemar"  r#  r$  r1  r2  r   r{  r  )rê   r  r÷  r�  r3  r4  r   s          rš   r0  z"GenerateSchema._match_generic_type  ss  € Ü�fœmÔ,Ø×/Ñ/°Ó4Ð4ô ×%Ñ% fÔ-Ø×)Ñ)¨#¨vÓ6Ð6Ü×&Ñ& vÔ.Ø×*Ñ*¨3°Ó7Ð7à×;Ñ;¸FÀCÓHˆØÐ$Ø Ð ä×(Ñ(¨Ô0Ø×%Ñ% cÓ*Ð*Ø”{Ñ"Ø×%Ñ% cÓ*Ð*Ø”zÑ!Ø×$Ñ$ T×%?Ñ%?ÀÓ%DÓEÐEØ”yÑ Ø×#Ñ# D×$>Ñ$>¸sÓ$CÓDÐDØÔ'Ñ'Ø×)Ñ)¨$×*DÑ*DÀSÓ*IÓJÐJØ”zÑ!Ø$�4×$Ñ$ d×&EÑ&EÀcÓ&JÐKÐKÜ˜&Ô!Ø×*Ñ*¨3°Ó7Ð7ØœŸ™¤TÐ*Ñ*Ø×(Ñ(¨Ó-Ð-Ø”~Ñ%Ø×(Ñ(¨×)CÑ)CÀCÓ)HÓIÐIØœŸ™¬¯©×)AÑ)AÄ6×CSÑCSÔU`×UdÑUd×UnÑUnÐoÑoØ×(Ñ(¨Ó-Ð-ØœŸ
™
¤F§N¡NÐ3Ñ3Ø×'Ñ'¨Ó,Ð,à×CÑCÀCÈÓLˆØˆ?Ø'*Ñ$ˆK˜Ø×*Ñ*¨;¸ÓDÐDà× Ò Ø×.Ñ.¨vÓ6Ð6Ø×(Ñ(¨Ó-Ð-rœ   r¨  c          	     ó    — | j                  |||«      }t        j                  |d   |j                  «       sdn||d   |d   |d   |d   ¬«      S )zAPrepare a TypedDictField to represent a model or typeddict field.r¯   FÚserialization_excludeÚvalidation_aliasÚserialization_aliasrD  )r©  r<  r=  r>  rD  )rÃ  r/   Útyped_dict_fieldÚis_required)rê   ÚnameÚ
field_infor¥   r©  Úcommon_fields         rš   Ú_generate_td_field_schemaz(GenerateSchema._generate_td_field_schemaA  sf   € ð ×0Ñ0°°zÀ:ÓNˆÜ×+Ñ+Ø˜Ñ"Ø",×"8Ñ"8Ô":‘UÀØ".Ð/FÑ"GØ)Ð*<Ñ=Ø ,Ð-BÑ CØ! *Ñ-ô
ð 	
rœ   c           	     ó‚   — | j                  |||«      }t        j                  |d   |d   |d   |d   |d   |d   ¬«      S )z0Prepare a ModelField to represent a model field.r¯   r<  r=  r>  ÚfrozenrD  ©r<  r=  r>  rF  rD  )rÃ  r/   Úmodel_field©rê   rA  rB  r¥   rC  s        rš   rÇ  z(GenerateSchema._generate_md_field_schemaT  s^   € ð ×0Ñ0°°zÀ:ÓNˆÜ×&Ñ&Ø˜Ñ"Ø".Ð/FÑ"GØ)Ð*<Ñ=Ø ,Ð-BÑ CØ Ñ)Ø! *Ñ-ô
ð 	
rœ   c                óÖ   — | j                  |||«      }t        j                  ||d   |j                  |j                  xs d|j
                  rdnd|d   |d   |d   |d   |d   ¬	«
      S )
zJPrepare a DataclassField to represent the parameter/field, of a dataclass.r¯   NFr<  r=  r>  rF  rD  )ÚinitÚ	init_onlyÚkw_onlyr<  r=  r>  rF  rD  )rÃ  r/   Údataclass_fieldrK  Úinit_varrM  rI  s        rš   Ú_generate_dc_field_schemaz(GenerateSchema._generate_dc_field_schemae  sƒ   € ð ×0Ñ0°°zÀ:ÓNˆÜ×*Ñ*ØØ˜Ñ"Ø—‘Ø ×)Ñ)Ò1¨TØ&×.Ò.‘D°EØ".Ð/FÑ"GØ)Ð*<Ñ=Ø ,Ð-BÑ CØ Ñ)Ø! *Ñ-ô
ð 	
rœ   c                ó´  — |j                   �4|j                   dk  s%|j                  �|j                  �|j                  �€d\  }}}t	        | t
        «      r| j                  |«      \  }}}nCt	        | t        «      r3 | |«      }t	        |t        «      st        d| › d|j                  › �«      ‚|j                   �|j                   dk  rd|_         |j                   dk(  r)t        ||«      |_        t        ||«      |_        ||_        |j                  €||_        |j                  €t        ||«      |_        |j                  €t        ||«      |_        yyy)a„  Apply an alias_generator to aliases on a FieldInfo instance if appropriate.

        Args:
            alias_generator: A callable that takes a string and returns a string, or an AliasGenerator instance.
            field_info: The FieldInfo instance to which the alias_generator is (maybe) applied.
            field_name: The name of the field from which to generate the alias.
        NrK   ©NNNúalias_generator r×  )Úalias_priorityÚaliasr=  r>  re  r9   Úgenerate_aliasesr   r6  r¹   rÝ   r  )Úalias_generatorrB  r»   rU  r=  r>  s         rš   Ú$_apply_alias_generator_to_field_infoz3GenerateSchema._apply_alias_generator_to_field_infoz  sm  € ð ×%Ñ%Ð-Ø×(Ñ(¨AÒ-Ø×ÑÐ'Ø×*Ñ*Ð2Ø×-Ñ-Ñ5à;KÑ8ˆEÐ#Ð%8ä˜/¬>Ô:Ø?N×?_Ñ?_Ð`jÓ?kÑ<�Ð'Ñ)<Ü˜O¬XÔ6Ù'¨
Ó3�Ü! %¬Ô-Ü#Ð&6°Ð6GÐG]Ð^c×^mÑ^mÐ]nÐ$oÓpÐpð
 ×(Ñ(Ð0°J×4MÑ4MÐQRÒ4RØ,-�
Ô)ð ×(Ñ(¨AÒ-Ü1DÐEXÐZ_Ó1`�
Ô.Ü.AÐBRÐTYÓ.Z�
Ô+Ø#(�
Ô ð ×ÑÐ'Ø#(�
Ô Ø×-Ñ-Ð5Ü1DÐEXÐZ_Ó1`�
Ô.Ø×*Ñ*Ð2Ü.AÐBRÐTYÓ.Z�
Õ+ð 3ð9 6rœ   c                ó¸  — |j                   �|j                   dk  s|j                  €³d\  }}}t        | t        «      r| j	                  |«      \  }}}nCt        | t
        «      r3 | |«      }t        |t        «      st        d| › d|j                  › �«      ‚|j                   �|j                   dk  rd|_         |j                   dk(  rt        ||«      |_        yyy)a­  Apply an alias_generator to alias on a ComputedFieldInfo instance if appropriate.

        Args:
            alias_generator: A callable that takes a string and returns a string, or an AliasGenerator instance.
            computed_field_info: The ComputedFieldInfo instance to which the alias_generator is (maybe) applied.
            computed_field_name: The name of the computed field from which to generate the alias.
        NrK   rR  rS  r×  )
rT  rU  re  r9   rV  r   r6  r¹   rÝ   r  )rW  Úcomputed_field_infoÚcomputed_field_namerU  r=  r>  s         rš   Ú-_apply_alias_generator_to_computed_field_infoz<GenerateSchema._apply_alias_generator_to_computed_field_info¬  sð   € ð$  ×.Ñ.Ð6Ø"×1Ñ1°QÒ6Ø"×(Ñ(Ð0à;KÑ8ˆEÐ#Ð%8ä˜/¬>Ô:Ø?N×?_Ñ?_Ð`sÓ?tÑ<�Ð'Ñ)<Ü˜O¬XÔ6Ù'Ð(;Ó<�Ü! %¬Ô-Ü#Ð&6°Ð6GÐG]Ð^c×^mÑ^mÐ]nÐ$oÓpÐpð
 #×1Ñ1Ð9Ð=P×=_Ñ=_ÐcdÒ=dØ56Ð#Ô2ð
 #×1Ñ1°QÒ6Ü,?Ð@SÐUZÓ,[Ð#Õ)ð 7ð) 1rœ   c                óÎ   — |j                   xs | j                   }|€y|j                  €< |||«      }t        |t        «      st	        d|› d|j
                  › �«      ‚||_        yy)ae  Apply a field_title_generator on a FieldInfo or ComputedFieldInfo instance if appropriate
        Args:
            config_wrapper: The config of the model
            field_info: The FieldInfo or ComputedField instance to which the title_generator is (maybe) applied.
            field_name: The name of the field from which to generate the title.
        Nzfield_title_generator r×  )Úfield_title_generatorr½   re  r6  r¹   rÝ   )r  rB  r»   r^  r½   s        rš   Ú*_apply_field_title_generator_to_field_infoz9GenerateSchema._apply_field_title_generator_to_field_info×  sw   € ð !+× @Ñ @Ò hÀN×DhÑDhÐà Ð(Øà×ÑÐ#Ù)¨*°jÓAˆEÜ˜e¤SÔ)ÜÐ"8Ð9NÐ8OÐOeÐfk×fuÑfuÐevÐ wÓxÐxà$ˆJÕð $rœ   c                ó`	  ‡ ‡— t        «       }t        ‰j                  t        t        f«      �r@‰ j
                  }‰ j                  r[|xs i j                  «       }|j                  ‰ j                  j                  «       D ��ci c]  \  }}|j                  |“Œ c}}«       t        j                  ‰j                  |«      }|‰j                  urŸt        |t        «      s� |j                  |«      }	|	j                  ‰_        |	j                  j                  «       D ]0  \  }}|‰j                  vsŒ|‰j                   vsŒ$t#        ‰||«       Œ2 g |	j$                  ¢‰j$                  ¢‰_        ‰j                  ‰j$                  }}
dˆˆ fd„}g }t'        |j(                  j+                  «       |«      D ]=  }|j-                  t.        |j0                  j2                     j5                  |«      «       Œ? ‰ j6                  j9                  |«      5  ‰j:                  �‰ j=                  |
||z   |¬«      }n‰ j=                  |
||z   «      }d d d «       t'        |j>                  j+                  «       |«      }tA        |«      rd‰_!        |D �cg c]  }|j0                  jD                  du sŒ|‘Œ }}|D �cg c]	  }||vsŒ|‘Œ }}tG        ||«      }tI        |||«      }‰jK                  «       stM        ‰|«      }‰ jO                  |t'        |jP                  j+                  «       |«      «      }‰ jS                  ‰ jT                  ‰|«       ‰jV                  ‰jX                  t[        ‰j\                  «      xs ‰j\                  dk(  xs d t_        ‰j`                  «      dœ}|j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}‰jb                  }te        tg        ||«      g¬«      }‰ jT                  jh                  }|�‰ jk                  |‰|«       tm        ‰jn                  tp        tr        f«      r‰jn                  ju                  «       }n‰jn                  }tw        |‰jx                  rdnd |‰jz                  ‰j|                  |¬«      S c c}}w # 1 sw Y   �ŒMxY wc c}w c c}w c c}}w )	Nc                ó@   •— ‰j                  | ‰j                  «      } | S r©   )r…  r„  )r¯   rB  rê   s    €€rš   Úset_discriminatorz>GenerateSchema._common_field_schema.<locals>.set_discriminator  s    ø€ Ø×7Ñ7¸À
×@XÑ@XÓYˆFØˆMrœ   )Útransform_inner_schemaTÚ )r½   rÃ   Ú
deprecatedÚexamples©Újs_annotation_functionsrG  ©r¯   r)   rù   r)   )?rr   rn   Ú
annotationr   r6  r  r  r   ró   rQ  rÉ   rP   Úeval_type_lenientrl   Úfrom_annotationÚ_attributes_setÚmetadata_lookupÚsetattrrD  r«   r¶  rP  rô   r“   r—   ÚmodeÚ_from_decoratorr  r÷   r„  r2  r¸  Ú$_validators_require_validate_defaultÚvalidate_defaultÚ	each_itemrµ   r·   r@  Úwrap_defaultÚ_apply_field_serializersr·  r_  r  r½   rÃ   r  re  r0   rf  Újson_schema_extrarT   Úget_json_schema_update_funcrW  rX  re  r=  r8   r:   Úconvert_to_aliasesÚ_common_fieldÚexcluder>  rF  )rê   rA  rB  r¥   r}   rë   rW  rX  Ú	evaluatedÚnew_field_infor4  r   rb  Úvalidators_from_decoratorsÚ	decoratorr¯   Úthis_field_validatorsrº   Újson_schema_updatesrw  rD  rW  r=  s   ` `                    rš   rÃ  z#GenerateSchema._common_field_schemaí  sh  ù€ ô -Ó.ˆ	ä 
× 5Ñ 5¼
ÄCÐ7HÕIØ"×3Ñ3ˆOØ×!Ò!Ø#2Ò#8°b×">Ñ">Ó"@�à×&Ñ&À$×BTÑBT×BZÑBZÓB\×']¹$¸!¸Q¨¯
©
°A©Ó']Ô^ä%×7Ñ7¸
×8MÑ8MÈÓ_ˆIØ 
× 5Ñ 5Ñ5Ô>RÐS\Ô^rÔ>sØ!: ×!:Ñ!:¸9Ó!E�Ø(6×(AÑ(A�
Ô%ð +×:Ñ:×@Ñ@ÓBò 2‘D�A�qð
  
× :Ñ :Ò:¸qÈ
×HbÑHbÒ?bÜ 
¨A¨qÕ1ð2ð 'W¨×(?Ñ(?Ð&VÀ*×BUÑBUÐ&V�
Ô#à#-×#8Ñ#8¸*×:MÑ:M�[ˆö	ð
 &(Ð"Ü=¸j×>YÑ>Y×>`Ñ>`Ó>bÐdhÓiò 	rˆIØ&×-Ñ-Ô.@ÀÇÁ×ATÑATÑ.U×.eÑ.eÐfoÓ.pÕqð	rð ×"Ñ"×'Ñ'¨Ó-ñ 		Ø×'Ñ'Ð3Ø×0Ñ0Ø Ð/IÑ!IÐbsð 1ó ‘ð ×0Ñ0ØØÐ"<Ñ<ó�÷		ô !EÀZ×EZÑEZ×EaÑEaÓEcÐeiÓ jÐÜ/Ð0EÔFØ*.ˆJÔ'Ø+@Ö] aÀAÇFÁF×DTÑDTÐX\ÒD\¢Ð]ÐÐ]Ø,AÖ c qÀQÐNbÒEb¢Ð cÐÐ cÜ+¨FÐ4HÈ$ÓOˆä! &Ð*?ÀÓFˆð
 ×%Ñ%Ô'Ü! *¨fÓ5ˆFà×.Ñ.ØÔ8¸×9UÑ9U×9\Ñ9\Ó9^Ð`dÓeó
ˆð 	×7Ñ7¸×8LÑ8LÈjÐZ^Ô_ð  ×%Ñ%Ø%×1Ñ1Ü˜z×4Ñ4Ó5Ò\¸×9NÑ9NÐRTÑ9TÒ\ÐX\Ü*¨:×+>Ñ+>Ó?ñ	
Ðð 1D×0IÑ0IÓ0K×]©¨¨1ÈqÉ}˜q !™tÐ]ÐÑ]à&×8Ñ8Ðä&Ü%@ÐATÐVgÓ%hÐ$iô
ˆð ×.Ñ.×>Ñ>ˆØÐ&Ø×5Ñ5°oÀzÐSWÔXä�j×1Ñ1´LÄ)Ð3LÔMØ)×:Ñ:×MÑMÓOÑà)×:Ñ:ÐäØØ*4×*<Ò*<¡$À$Ø-Ø *× >Ñ >Ø×$Ñ$Øô
ð 	
ùóq (^÷<		ñ 		üò$  ^ùÚ cùó, ^s6   ÂR
È:RÊ
R Ê(R Ê2	R%Ê<R%Î2
R*Î=R*ÒRc                óî  — | j                  |d¬«      }g }d}|D ]9  }|�|t        j                  u rd}Œ|j                  | j	                  |«      «       Œ; t        |«      dk(  r|d   }ntg }|D ]X  }|j                  di «      j                  t        j                  «      }	|	�|j                  ||	f«       ŒH|j                  |«       ŒZ t        j                  |«      }|rt        j                  |«      }|S )zGenerate schema for a Union.Tr¨  FrK   r   rD  )rÁ  rP   r  rô   r%  rö  r¶   rL   ÚTAGGED_UNION_TAG_KEYr/   Úunion_schemaÚnullable_schema)
rê   Ú
union_typerò  Úchoicesr®   ÚargrÛ  Úchoices_with_tagsÚchoiceÚtags
             rš   r7  zGenerateSchema._union_schemaY  sû   € à×4Ñ4°ZÈ$Ð4ÓOˆØ$&ˆØˆØò 	:ˆCØˆ{˜c¤]×%;Ñ%;Ñ;Ø‘à—‘˜t×3Ñ3°CÓ8Õ9ð		:ô ˆw‹<˜1ÒØ˜‘
‰AàKMÐØ!ò 5�Ø—j‘j ¨RÓ0×4Ñ4´[×5UÑ5UÓV�Ø�?Ø%×,Ñ,¨f°c¨]Õ;à%×,Ñ,¨VÕ4ð5ô ×(Ñ(Ð):Ó;ˆAáÜ×+Ñ+¨AÓ.ˆAØˆrœ   c                ó$  — | j                   j                  |«      5 \  }}|�|cd d d «       S t        |«      xs |}|j                  }t	        |«      }| j
                  j                  |«      5  t        j                  || j                  «      }t        ||«      }| j                  |«      }|d   dk7  sJ ‚||d<   d d d «       | j                   j                  |<   t        j                  |«      cd d d «       S # 1 sw Y   Œ@xY w# 1 sw Y   y xY w)Nr­   r�  rC  )r	  r´  r5   Ú	__value__rm   ré   r÷   rP   rk  r  rp   r%  r�  r/   r�  )rê   r  rC  rÍ  r÷  rj  r  r¯   s           rš   r  z&GenerateSchema._type_alias_type_schemat  s  € ð �Y‰Y×(Ñ(¨Ó-ð 	@Ñ1D°#°|ØÐ'Ø#÷	@ñ 	@ô   “_Ò+¨ˆFà×)Ñ)ˆJÜ4°SÓ9ˆLà×,Ñ,×1Ñ1°&Ó9ñ $Ü*×<Ñ<¸ZÈ×I^ÑI^Ó_�
Ü*¨:°|ÓD�
Ø×-Ñ-¨jÓ9�Ø˜f‘~¨Ò6Ð6Ð6Ø #��u‘÷$ð *0ˆD�I‰I×!Ñ! #Ñ&Ü×:Ñ:¸3Ó?÷!	@ñ 	@÷$ð $ú÷	@ð 	@ús*   œD­ADÁ.AC:Â;5DÃ:D	Ã?DÄDc                óð   — t        j                  |«      }|s
J d|› �«       ‚t        j                  |«      }| j                  j
                  r)t        d„ |D «       «      rt        j                  d„ |«      }|S )zGenerate schema for a Literal.z(literal "expected" cannot be empty, obj=c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr©   )re  r	   )Ú.0rX  s     rš   ú	<genexpr>z1GenerateSchema._literal_schema.<locals>.<genexpr>�  s   è ø€ Ò7^ÐPQ¼
À1Äd×8KÑ7^ùs   ‚c                ó>   — t        | t        «      r| j                  S | S r©   )re  r	   rE  )rX  s    rš   r;  z0GenerateSchema._literal_schema.<locals>.<lambda>’  s   € ¤Z°´4Ô%8˜!Ÿ'™'€ ¸a€ rœ   )rP   Úall_literal_valuesr/   Úliteral_schemar  rT  ÚanyrU  )rê   Úliteral_typeÚexpectedr¯   s       rš   r  zGenerateSchema._literal_schemaŠ  sp   € ä ×3Ñ3°LÓAˆÙÐRÐCÀLÀ>ÐRÓRˆxÜ×+Ñ+¨HÓ5ˆà×Ñ×/Ò/´CÑ7^ÐU]Ô7^Ô4^Ü ×AÑAÙ?ÀóˆFð ˆrœ   c                óÒ  — t        «       }| j                  j                  |«      5  | j                  j	                  |«      5 \  }}|�|cddd«       cddd«       S t        |«      }|�|}t        s%t        |«      j                  dk(  rt        dd¬«      ‚	 t        |d«      }| j                  j                  |«      5  | j                  j                  |«      5  | j                  j                  |«      }| j                   } |j"                  }	i }
t%        j&                  |«      }| j                  j(                  rt+        |d¬«      }nd}t-        || j.                  «      j1                  «       D ]á  \  }}t3        ||«      }||	v }t5        |«      t6        j8                  k(  rd}| j;                  |d¬	«      d
   }n4t5        |«      t6        j<                  k(  rd}| j;                  |d¬	«      d
   } |j>                  |«      }|�|j@                  €||v r
||   |_         | jC                  | j                  ||«       | jE                  ||||¬	«      |
|<   Œã | jG                  |tI        |«      «      }tK        tM        tN        ||¬«      g¬«      }tQ        jR                  |
||jT                  jW                  «       D �cg c]  }| jY                  ||jZ                  «      ‘Œ  c}|||¬«      }| j]                  ||j^                  jW                  «       «      }ta        ||jb                  jW                  «       d«      }|| j                  jd                  |<   tQ        jf                  |«      cddd«       cddd«       cddd«       cddd«       S # t        $ r d}Y �Œòw xY wc c}w # 1 sw Y   nxY wddd«       n# 1 sw Y   nxY wddd«       n# 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)aŠ  Generate schema for a TypedDict.

        It is not possible to track required/optional keys in TypedDict without __required_keys__
        since TypedDict.__new__ erases the base classes (it replaces them with just `dict`)
        and thus we can track usage of total=True/False
        __required_keys__ was added in Python 3.9
        (https://github.com/miss-islington/cpython/blob/1e9939657dd1f8eb9f596f77c1084d2d351172fc/Doc/library/typing.rst?plain=1#L1546-L1548)
        however it is buggy
        (https://github.com/python/typing_extensions/blob/ac52ac5f2cb0e00e7988bae1e2a1b8257ac88d6d/src/typing_extensions.py#L657-L666).

        On 3.11 but < 3.12 TypedDict does not preserve inheritance information.

        Hence to avoid creating validators that do not do what users expect we only
        support typing.TypedDict on Python >= 3.12 or typing_extension.TypedDict on all versions
        Nr(  zXPlease use `typing_extensions.TypedDict` instead of `typing.TypedDict` on Python < 3.12.ztyped-dict-versionrŸ   Ú__pydantic_config__T)Úuse_inspectr¨  r   Fr¡  rp  )rÑ   r°  rC  rD  r¯  Úall)4rr   r  r÷   r	  r´  rm   Ú_SUPPORTS_TYPEDDICTr­   rû   rB   rf   ÚAttributeErrorr  ré   r  r»  r  Ú__required_keys__r_   ÚbuildÚuse_attribute_docstringsrj   ru   r  rQ  rp   r5   rP   ÚRequiredrÁ  ÚNotRequiredrl  rÃ   r_  rD  r¼  rQ   rT   r
   rÕ   r/   Útyped_dict_schemar°  rP  rÈ  r·  rÊ  rË  rÄ  r½  r�  r�  )rê   Útyped_dict_clsr÷  r}   Útyped_dict_refrÍ  r  r¯  r»  Úrequired_keysr–   r¥   Úfield_docstringsr»   rj  r©  rB  r½   rD  rÒ  Ú	td_schemar¯   s                         rš   r  z!GenerateSchema._typed_dict_schema—  s  € ô  -Ó.ˆ	à×"Ñ"×'Ñ'¨Ó7ñ V	O¸¿¹×9TÑ9TÐUcÓ9dð V	Oñ i
ØØàÐ'Ø#÷V	O÷ V	Oò V	Oô 5°^ÓDˆLØÐ!Ø!'�å&¬4°Ó+?×+JÑ+JÈhÒ+VÜ'ØnØ-ôð ð
Ü,DÀ^ÐUjÓ,k�ð ×+Ñ+×0Ñ0°Ó8ñ @O¸$×:UÑ:U×:ZÑ:ZÐ[iÓ:jñ @OØ"×2Ñ2×>Ñ>¸~ÓN�à×4Ñ4�à0>×0PÑ0P�à@B�ä+×1Ñ1°.ÓA�
à×'Ñ'×@Ò@Ü'BÀ>Ð_cÔ'dÑ$à'+Ð$ä.HÈÐY]×YnÑYnÓ.o×.uÑ.uÓ.wò Ñ*�J 
Ü!.¨z¸<Ó!H�JØ)¨]Ð:�Hä! *Ó-´×1GÑ1GÒGØ#'˜Ø%)×%JÑ%JØ&Ø%)ð &Kó &ð ñ&™
ô $ JÓ/´=×3LÑ3LÒLØ#(˜Ø%)×%JÑ%JØ&Ø%)ð &Kó &ð ñ&˜
ð
 "; ×!:Ñ!:¸:Ó!F�Jà(Ð4Ø&×2Ñ2Ð:Ø&Ð*:Ñ:à1AÀ*Ñ1M˜
Ô.Ø×CÑCÀD×DXÑDXÐZdÐfpÔqØ)-×)GÑ)GØ" J°
ÀXð *Hó *�F˜:Ò&ð3ð: ×9Ñ9¸.Ì-ÐX^ÓJ_Ó`�Ü.Ü")Ô*BÈÐ^cÔ"dÐ!eô�ô (×9Ñ9ØØ&ð ",×!;Ñ!;×!BÑ!BÓ!Dö%àð ×3Ñ3°A°z×7SÑ7SÕTò%ð 'Ø%Ø&ô
�	ð ×6Ñ6°yÀ*×B^ÑB^×BeÑBeÓBgÓh�Ü/°¸
×8SÑ8S×8ZÑ8ZÓ8\Ð^cÓd�Ø8>�—	‘	×%Ñ% nÑ5Ü"×>Ñ>¸~ÓN÷A@O÷ @Oñ @O÷-V	O÷ V	Oò V	Oøô& "ò Ø“ðüòn%÷i@Oð @Oú÷ @O÷ @Oñ @Oú÷-V	O÷ V	Oñ V	Oú÷ V	O÷ V	Oñ V	Oús£   ¦OÁOÁ		OÁ:OÂNÂ#OÂ>N3ÃGN	Ê8#NËBN	Í"	N3Í+	OÍ4	OÎNÎOÎNÎOÎN	ÎN'Î#N3Î*	OÎ3N<Î8OÎ?	OÏO	ÏOÏO&c                ó²  — | j                   j                  |«      5  | j                  j                  |«      5 \  }}|�|cddd«       cddd«       S t	        |«      }|�|}| j
                  j                  |«      5  t        || j                  «      }|s|j                  D �ci c]	  }|t        “Œ }}|r-|j                  «       D ��	ci c]  \  }}	|t        |	|«      “Œ }}}	t        j                  |j                  «       D ��	cg c]A  \  }}	| j                  ||	|j                  j!                  |t"        j$                  «      ¬«      ‘ŒC c}	}t'        d¬«      ¬«      }
t        j(                  |
||¬«      cddd«       cddd«       cddd«       S c c}w c c}	}w c c}	}w # 1 sw Y   nxY w	 ddd«       n# 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)z!Generate schema for a NamedTuple.N)ÚdefaultT)Újs_prefer_positional_argumentsrM  )rC  )r  r÷   r	  r´  rm   ré   ru   r  Ú_fieldsr   rQ  rp   r/   Úarguments_schemaÚ_generate_parameter_schemaÚ_field_defaultsr¶   r   ÚemptyrT   Úcall_schema)rê   Únamedtuple_clsr÷  Únamedtuple_refrÍ  r  r   rW  r»   rj  r­  s              rš   r  z!GenerateSchema._namedtuple_schema  sñ  € à×"Ñ"×'Ñ'¨Ó7ñ !	e¸¿¹×9TÑ9TÐUcÓ9dð !	eñ i
ØØàÐ'Ø#÷!	e÷ !	eò !	eô 5°^ÓDˆLØÐ!Ø!'�à×,Ñ,×1Ñ1°.ÓAñ eÜ.HÈÐY]×YnÑYnÓ.o�Ù"à3A×3IÑ3IÖ"J¨a 1¤c¡6Ð"J�KÐ"Jáð 7B×6GÑ6GÓ6I÷#á2˜J¨
ð #¤M°*¸lÓ$KÑKð#�Kñ #ô
 $/×#?Ñ#?ð 7B×6GÑ6GÓ6I÷ñ 3˜J¨
ð ×7Ñ7Ø&Ø&Ø$2×$BÑ$B×$FÑ$FÀzÔS\×SbÑSbÓ$cð 8õ óô 1ÐPTÔUô
$Ð ô #×.Ñ.Ð/?ÀÐUcÔd÷/eð e÷!	e÷ !	eò !	eùò #Kùó#ùó÷eð eúð e÷!	e÷ !	eñ !	eú÷ !	e÷ !	eñ !	eúsv   œG¸F8¿	GÁ*F8Á<'F"Â#F
Â1F"ÃFÃ%F"ÄAFÅ
+F"Å5	F8Å>	GÆF"Æ"F+Æ'F8Æ/	GÆ8G	Æ=GÇGc                óÖ  — t        «       }|t        j                  u r |j                  |«      }n |j                  ||«      }|j
                  €J d«       ‚|j
                  |j                  }}| j                  j                  |«      5  | j                  ||«      }	ddd«       |j                  «       st        |	«      }	t        j                  |	«      }
|�||
d<   |j                  �|j                  |
d<   |
S | j                  j                   }t#        |t$        «      r"|j                  �|j                  |«      |
d<   |
S t#        |t&        «      r ||«      |
d<   |
S # 1 sw Y   ŒÄxY w)zXPrepare a ArgumentsParameter to represent a field in a namedtuple or function signature.Nz<field.annotation should not be None when generating a schemarp  rU  )rr   r   r°  rl  Úfrom_annotated_attributerj  rD  r  r÷   r2  r@  ru  r/   Úarguments_parameterrU  r  rW  re  r9   r   )rê   rA  rj  rª  rp  r}   r˜   r4  r   r¯   Úparameter_schemarW  s               rš   r®  z)GenerateSchema._generate_parameter_schema&  so  € ô -Ó.ˆ	à”i—o‘oÑ%Ø-�I×-Ñ-¨jÓ9‰Eà6�I×6Ñ6°zÀ7ÓKˆEØ×ÑÐ+ÐkÐ-kÓkÐ+Ø#(×#3Ñ#3°U·^±^�[ˆØ×"Ñ"×'Ñ'¨Ó-ñ 	GØ×,Ñ,¨[¸+ÓFˆF÷	Gð × Ñ Ô"Ü! %¨Ó0ˆFä&×:Ñ:¸4ÀÓHÐØÐØ'+Ð˜VÑ$Ø�;‰;Ð"Ø(-¯©Ð˜WÑ%ð  Ðð #×2Ñ2×BÑBˆOÜ˜/¬>Ô:¸×?TÑ?TÐ?`Ø,;×,AÑ,AÀ$Ó,GÐ  Ñ)ð  Ðô ˜O¬XÔ6Ù,;¸DÓ,AÐ  Ñ)ØÐ÷#	Gð 	Gús   Â	EÅE(c                ó^  ‡— t        |«      Š| j                  |«      }‰r|rt        ˆfd„|D «       «      }|sG|t        v r*t	        j
                  t	        j                  «       gd¬«      S t	        j
                  g «      S |d   t        u rCt        |«      dk(  r*t	        j
                  | j                  |d   «      gd¬«      S t        d«      ‚t        |«      dk(  r|d   dk(  rt	        j
                  g «      S t	        j
                  |D �cg c]  }| j                  |«      ‘Œ c}«      S c c}w )	zIGenerate schema for a Tuple, e.g. `tuple[int, str]` or `tuple[int, ...]`.c              3  ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr©   )rp   )r�  Úparamr  s     €rš   r‘  z/GenerateSchema._tuple_schema.<locals>.<genexpr>P  s   øè ø€ ÒRÀ%œ=¨°×=ÑRùs   ƒr   )r±   rÙ   r7   z&Variable tuples can only have one typerK   rþ   )rm   rÁ  r°   r†   r/   Útuple_schemar¸   ÚEllipsisrö  r%  Ú
ValueError)rê   Ú
tuple_typeÚparamsrº  r  s       @rš   r  zGenerateSchema._tuple_schemaI  s  ø€ ô 1°Ó<ˆØ×6Ñ6°zÓBˆá™FÜÓRÈ6ÔRÓRˆFñ Øœ[Ñ(Ü"×/Ñ/´×1GÑ1GÓ1IÐ0JÐ`aÔbÐbô #×/Ñ/°Ó3Ð3Ø�B‰Zœ8Ñ#Ü�6‹{˜aÒÜ"×/Ñ/°×1EÑ1EÀfÈQÁiÓ1PÐ0QÐghÔiÐiô !Ð!IÓJÐJÜ�‹[˜AÒ &¨¡)¨r¢/ô ×+Ñ+¨BÓ/Ð/ä×+Ñ+ÐV\Ö,]ÈU¨T×-AÑ-AÀ%Õ-HÒ,]Ó^Ð^ùÒ,]s   ÄD*c                ó`   — t        j                  t        j                  t        «      dd¬«      S )NÚis_typezInput should be a type©Úcustom_error_typeÚcustom_error_message)r/   Úcustom_error_schemarV  r­   rï   s    rš   r  zGenerateSchema._type_schemag  s)   € Ü×.Ñ.Ü×*Ñ*¬4Ó0Ø'Ø!9ô
ð 	
rœ   c                óÈ   ‡‡— t         j                  dk  rJ d«       ‚ddlmŠmŠ d	ˆˆfd„}t        d„ g¬«      }t        j                  |t        j                  «       |¬«      S )
z/Generate schema for a zone_info.ZoneInfo object)r‚   é	   ÚUnreachabler   )ÚZoneInfoÚZoneInfoNotFoundErrorc               óx   •— t        | ‰«      r| S 	  ‰| «      S # ‰t        t        f$ r t        ddd| i«      ‚w xY w)NÚzoneinfo_strzinvalid timezone: {value}rE  )re  r½  r¹   r+   )rE  rÉ  rÊ  s    €€rš   Úvalidate_str_is_valid_iana_tzzFGenerateSchema._zoneinfo_schema.<locals>.validate_str_is_valid_iana_tzw  sQ   ø€ Ü˜% Ô*Ø�ðiÙ “Ð&øØ)¬:´yÐAò iÜ)¨.Ð:UÐX_ÐafÐWgÓhÐhðiús   ‘ ™ 9c                ó   — dddœS )Nrj  Úzoneinfork  rþ   ©rm  rn  s     rš   r;  z1GenerateSchema._zoneinfo_schema.<locals>.<lambda>  s   € ÈXÐakÑDl€ rœ   rp  ©r×   rD  )rE  r   rù   rÉ  )	ÚsysÚversion_inforÏ  rÉ  rÊ  rT   r/   rv  Úto_string_ser_schema)rê   rÍ  rD  rÉ  rÊ  s      @@rš   r-  zGenerateSchema._zoneinfo_scheman  s]   ù€ ô ×Ñ˜fÒ$Ø'˜-Ó'�5÷ 	=ö	iô 'Ñ5lÐ4mÔnˆÜ×;Ñ;Ø)Ü%×:Ñ:Ó<Øô
ð 	
rœ   c           	     ó¸   — | j                  |d¬«      }t        j                  |D �cg c]$  }| j                  t        j
                  |   «      ‘Œ& c}«      S c c}w )z*Generate schema for `Type[Union[X, ...]]`.Tr¨  )rÁ  r/   r„  r%  r(  r"   )rê   r†  rò  s      rš   Ú_union_is_subclass_schemaz(GenerateSchema._union_is_subclass_schema†  sL   € à×4Ñ4°ZÈ$Ð4ÓOˆÜ×'Ñ'Ð]aÖ(bÐUY¨×)=Ñ)=¼f¿k¹kÈ$Ñ>OÕ)PÒ(bÓcÐcùÒ(bs   §)Ac           	     óü  — | j                  |«      }t        j                  |«      xs |}|t        k(  r| j	                  «       S t        |t        j                  «      r×|j                  rbt        j                  t        |j                  «      «      r| j                  |j                  «      S t        j                  |j                  «      S |j                  rMt        j                  |j                  D �cg c]$  }| j!                  t        j"                  |   «      ‘Œ& c}«      S | j	                  «       S t        j                  t        |«      «      r| j                  |«      S t        j                  |«      S c c}w )z-Generate schema for a Type, e.g. `Type[int]`.)rô  rP   Úannotated_typer   r  re  r(  r#   Ú	__bound__r6  r5   rÖ  r/   Úis_subclass_schemaÚ__constraints__r„  r%  r"   )rê   Útype_Ú
type_paramÚcs       rš   r8  zGenerateSchema._subclass_schema‹  s+  € à×/Ñ/°Ó6ˆ
ä"×1Ñ1°*Ó=ÒKÀˆ
ØœÒØ×$Ñ$Ó&Ð&Ü˜
¤F§N¡NÔ3Ø×#Ò#Ü ×0Ñ0´¸J×<PÑ<PÓ1QÔRØ×9Ñ9¸*×:NÑ:NÓOÐOÜ"×5Ñ5°j×6JÑ6JÓKÐKØ×+Ò+Ü"×/Ñ/ØCM×C]ÑC]Ö^¸a�T×)Ñ)¬&¯+©+°a©.Õ9Ò^óð ð ×(Ñ(Ó*Ð*Ü×*Ñ*¬:°jÓ+AÔBØ×1Ñ1°*Ó=Ð=ä×1Ñ1°*Ó=Ð=ùò _s   Ã5)E9c                óŽ  — ddl m} | j                  |«      }t        j                  |«      }t        |«      }t        j                  t        j                  d¬«      }|t        k7  r1ddl
m} t        j                  |t        j                  ||«      g«      }t        j                  ||d¬«      }t        j                  |||¬«      S )	z5Generate schema for a Sequence, e.g. `Sequence[int]`.rK   )Úserialize_sequence_via_listÚSequence)Úcls_repr)Úsequence_validatorT)r¯   Úinfo_arg)rÒ   rh  r×   )Ú_serializersrà  r%  r/   r$  r{   rV  r(  rá  r   rt  rã  rã  Úno_info_wrap_validator_functionÚ#wrap_serializer_function_ser_schemarw  )	rê   r'  rà  Úitem_type_schemar$  rÒ   rh  rã  r×   s	            rš   r  zGenerateSchema._sequence_schema¢  s±   € å=à×/Ñ/°
Ó;ÐÜ!×-Ñ-Ð.>Ó?ˆä$ [Ó1ˆÜ#×6Ñ6´v·±ÐQ[Ô\ˆØœÒÝ7ä'×4Ñ4Ø¤× KÑ KÐL^Ð`kÓ lÐmóˆMô $×GÑGØ'Ð0@È4ô
ˆô ×0Ñ0Ø#°=ÐP]ô
ð 	
rœ   c                ól   — | j                  |«      }t        j                  | j                  |«      «      S )z$Generate a schema for an `Iterable`.)rô  r/   Úgenerator_schemar%  )rê   rÜ  Ú	item_types      rš   r:  zGenerateSchema._iterable_schema¹  s.   € à×.Ñ.¨uÓ5ˆ	ä×+Ñ+¨D×,@Ñ,@ÀÓ,KÓLÐLrœ   c                ó  — ddl m} t        d„ g¬«      }t        j                  t        d«      dt        j                  «       ¬«      }|t        j                  k(  s|t        j                  k(  r"t        j                  |j                  ||¬«      S | j                  |d	¬
«      d   }|t        u r"t        j                  |j                  ||¬«      S |t        u r"t        j                  |j                   ||¬«      S t#        d|›d�«      ‚)NrK   )rt  c                ó   — dddœS )Nrj  Úregexrk  rþ   rÐ  s     rš   r;  z0GenerateSchema._pattern_schema.<locals>.<lambda>Â  s   € ÈXÐahÑDi€ rœ   rp  ÚpatternrÚ   )rÛ   Úreturn_schemarÑ  Tr¨  r   r}  rž   )rd  rt  rT   r/   rß   r   r"  r(  r#  r"  rv  Úpattern_either_validatorrÁ  r6  Úpattern_str_validatorrÿ  Úpattern_bytes_validatorr@   )rê   Úpattern_typert  rD  Úserrº  s         rš   r$  zGenerateSchema._pattern_schema¿  s  € Ý!ä&Ñ5iÐ4jÔkˆÜ×>Ñ>Ü�yÓ!¨VÄ;×CYÑCYÓC[ô
ˆð œ6Ÿ>™>Ò)¨\¼R¿Z¹ZÒ-Gä×?Ñ?Ø×4Ñ4ÀCÐRZôð ð ×5Ñ5ØØð 6ó 
ð ñˆð ”C‰<Ü×?Ñ?Ø×1Ñ1ÀÈxôð ð ”e‰^Ü×?Ñ?Ø×3Ñ3À3ÐQYôð ô 0Ð2^Ð_kÐ^nÐnoÐ0pÓqÐqrœ   c                óˆ   — t        j                  t        j                  t        j                  j
                  «      dd¬«      S )NÚis_hashablezInput should be hashablerÂ  )r/   rÅ  rV  r%  r&  r'  rï   s    rš   r)  zGenerateSchema._hashable_schemaÛ  s3   € Ü×.Ñ.Ü×*Ñ*¬;¯?©?×+CÑ+CÓDØ+Ø!;ô
ð 	
rœ   c                ó(	  ‡ ‡— ‰ j                   j                  |«      5  ‰ j                  j                  |«      5 \  }}|�|cddd«       cddd«       S t	        |«      }|�|}t        «       5 }|j                  D ]B  }t        j                  |«      sŒ|j                  ‰ j                  j                  |«      «       ŒD d}t        |j                  «      D ]O  }t        j                  |«      sŒt        |dd«      }|j                  ‰ j                  j                  |«      «       ŒQ ‰ j                  j                  |«      }	‰ j                   Š ddlm}
  |
|«      rIt%        |j&                  «      }|rJ|j)                  «       D ]  }|j+                  |‰ j,                  «       Œ  nt/        |‰ j,                  |¬«      }‰ j                  j0                  j2                  dk(  r7|j5                  «       D ]$  \  }}|j6                  du sŒt9        d|› d	�d
¬«      ‚ |j:                  j=                  d«      xs t?        j@                  |«      ŠtC        ˆˆ fd„|j5                  «       D «       d„ ¬«      }tE        |d«      }tE        |d«      }tG        jH                  |jJ                  |‰jL                  j)                  «       D �cg c]  }‰ jO                  |‰jP                  «      ‘Œ  c}|¬«      }tS        |‰jT                  j)                  «       d«      }‰jV                  j)                  «       }tY        ||d«      }‰ j[                  |t]        |«      «      }t_        ta        tb        ||¬«      g¬«      }tG        jd                  ||||t        jf                  |«      D �cg c]  }|jh                  ‘Œ c}||	|‰ j                  j0                  jj                  ¬«	      }‰ jm                  |‰jn                  j)                  «       «      }tY        ||d«      }|‰ j                  jp                  |<   tG        jr                  |«      cddd«       cddd«       cddd«       S c c}w c c}w # 1 sw Y   nxY wJ d«       ‚# 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)z Generate schema for a dataclass.Nr™  r7   r¿   )r  r£  FzField zd has `init=False` and dataclass has config setting `extra="allow"`. This combination is not allowed.z dataclass-init-false-extra-allowrŸ   rµ  c              3  óJ   •K  — | ]  \  }}‰j                  ||‰«      –— Œ y ­wr©   )rP  )r�  rW  rX  r¥   rê   s      €€rš   r‘  z3GenerateSchema._dataclass_schema.<locals>.<genexpr>  s$   øè ø€ ÒaÉ$È!ÈQ�T×3Ñ3°A°q¸*×EÑaùs   ƒ #c                ó(   — | j                  d«      duS )NrM  F©r¶   )r   s    rš   r;  z2GenerateSchema._dataclass_schema.<locals>.<lambda>   s   €  !§%¡%¨	Ó"2¸%Ð"?€ rœ   )ÚkeyÚ__post_init__Ú	__slots__)r°  Úcollect_init_onlyrª  r¡  rp  )r®  rC  r–   Úslotsr¯  rD  rF  r³  rÈ  ):r  r÷   r	  r´  rm   r   rØ   rÅ   r.  Úenter_contextré   ÚreversedrÜ   r  r  r»  r  rÀ   r   Ú__pydantic_fields__rP  Úapply_typevars_mapr  rk   rð   ÚextrarQ  rK  rB   Ú__dict__r¶   r_   rŸ  ÚsortedÚhasattrr/   Údataclass_args_schemarÉ   r°  rÈ  r·  r·   rÉ  r½  rÄ  r¼  rQ   rT   r
   rÕ   Údataclass_schemar–   rA  rF  rÊ  rË  r�  r�  )rê   Ú	dataclassr÷  Údataclass_refrÍ  r  Údataclass_bases_stackÚdataclass_baser¯  r»  rÀ   r–   r˜   r»   rò  Úhas_post_initÚ	has_slotsrÒ  Úargs_schemar¼   r½  r½   rD  Ú	dc_schemar¯   r¥   s   `                        @rš   r/  z GenerateSchema._dataclass_schemaâ  sk  ù€ ð ×"Ñ"×'Ñ'¨	Ó2ñ g	(°D·I±I×4OÑ4OÐPYÓ4Zð g	(ñ _
ØØàÐ'Ø#÷g	(÷ g	(ò g	(ô 5°YÓ?ˆLØÐ!Ø"�	ä“ð XNÐ 5à&/×&7Ñ&7ò n�NÜ"×/Ñ/°Õ?Ø-×;Ñ;¸D×<WÑ<W×<\Ñ<\Ð]kÓ<lÕmðnð
 �Ü&.¨y×/@Ñ/@Ó&Aò e�NÜ"×/Ñ/°Õ?Ü!(¨Ð9NÐPTÓ!U˜Ø-×;Ñ;¸D×<VÑ<V×<[Ñ<[Ð\bÓ<cÕdðeð
 #×2Ñ2×>Ñ>¸yÓI�à×4Ñ4�å?á(¨Ô3Ü% i×&CÑ&CÓD�FÙ#Ø%+§]¡]£_ò Z˜EØ!×4Ñ4°\À4×CXÑCXÕYñZô 6Ø!Ø×-Ñ-Ø%1ô�Fð ×-Ñ-×2Ñ2×8Ñ8¸GÒCà-3¯\©\«^ò Ñ)˜
 EØ Ÿ:™:¨Ò.Ü"3Ø"(¨¨ð 5Cð !Dà%Gô#ð ðð '×/Ñ/×3Ñ3Ð4MÓNÒqÔR`×RfÑRfÐgpÓRq�
ô ÜaÐRX×R^ÑR^ÓR`ÔaÙ?ô�ô !(¨	°?Ó C�Ü# I¨{Ó;�	ä)×?Ñ?Ø×&Ñ&Øð ",×!;Ñ!;×!BÑ!BÓ!Dö%àð ×3Ñ3°A°z×7SÑ7SÕTò%ð '4ô�ô  0°¸Z×=WÑ=W×=^Ñ=^Ó=`ÐbfÓg�à#-×#>Ñ#>×#EÑ#EÓ#GÐ Ü5°lÐDTÐV]Ó^�à×9Ñ9¸)Ä]ÐSYÓEZÓ[�Ü.Ü")Ô*BÈ	ÐY^Ô"_Ð!`ô�ô (×8Ñ8ØØ Ø+Ø%Ü4?×4FÑ4FÀyÓ4QÖR¨5˜EŸJ›JÒRØ#Ø&Ø%ð  ×5Ñ5×:Ñ:×AÑAô�	ð ×6Ñ6°yÀ*×B^ÑB^×BeÑBeÓBgÓh�Ü/°Ð8HÈ'ÓR�Ø7=�—	‘	×%Ñ% mÑ4Ü"×>Ñ>¸}ÓM÷qXNð XN÷g	(÷ g	(ò g	(ùòD%ùò, S÷[XNð XNúðx (˜-Ó'�5÷Og	(ð g	(ú÷ g	(÷ g	(ñ g	(ús{   žRºQ3Á	RÁQ3Á-%Q ÂAQ Ã/DQ ÈB9Q Ê?#QË"B7Q ÎQÎ,BQ Ð:	Q3Ñ	RÑ
Q Ñ Q)Ñ%Q3Ñ3Q<	Ñ8RÒRc                óê  — t        |«      }t        j                  || j                  ¬«      }t        j
                  dt        j                  dt        j                  di}g }d}d}|j                  j                  «       D ]ü  \  }}	|	j                  |j                  u rt        j                  t        t        «      }
n||   }
|j                  |	j                   «      }|�0| j#                  ||
|	j$                  |«      }|j'                  |«       Œ�|	j                   t        j(                  k(  r| j+                  |
«      }Œ¾|	j                   t        j,                  k(  sJ |	j                   «       ‚| j+                  |
«      }Œþ d}| j.                  }|j0                  r$|j                  d«      }|�| j+                  |«      }t3        j4                  t3        j6                  ||||j8                  ¬«      ||¬«      S )	zsGenerate schema for a Callable.

        TODO support functional validators once we support them in Config
        )rë   Úpositional_onlyÚpositional_or_keywordÚkeyword_onlyNrù   )Úvar_args_schemaÚvar_kwargs_schemaÚpopulate_by_name)rð  )r   rP   Úget_function_type_hintsr  r   ÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDÚKEYWORD_ONLYÚ
parametersrQ  rj  r°  r(  r%   r   r¶   Úkindr®  rª  rô   ÚVAR_POSITIONALr%  ÚVAR_KEYWORDr  Úvalidate_returnr/   r±  r­  r  )rê   ÚfunctionÚsigÚ
type_hintsÚmode_lookupÚarguments_listr  r  rA  Úprj  Úparameter_modeÚ
arg_schemarð  r  Úreturn_hints                   rš   r+  zGenerateSchema._callable_schemaO  sÃ  € ô
 ˜Ó!ˆä"×:Ñ:¸8ÐUY×UjÑUjÔkˆ
ô ×%Ñ%Ð'8Ü×+Ñ+Ð-DÜ×"Ñ" Nðr
ˆð @BˆØ9=ˆØ;?Ðà—~‘~×+Ñ+Ó-ò 	E‰GˆD�!Ø�|‰|˜sŸy™yÑ(Ü#Ÿ[™[¬¬cÓ2‘
à'¨Ñ-�
à(Ÿ_™_¨Q¯V©VÓ4ˆNØÐ)Ø!×<Ñ<¸TÀ:ÈqÏyÉyÐZhÓi�
Ø×%Ñ% jÕ1Ø—‘œ9×3Ñ3Ò3Ø"&×"6Ñ"6°zÓ"B‘à—v‘v¤×!6Ñ!6Ò6Ð>¸¿¹Ó>Ð6Ø$(×$8Ñ$8¸Ó$DÑ!ð	Eð  8<ˆØ×-Ñ-ˆØ×)Ò)Ø$Ÿ.™.¨Ó2ˆKØÐ&Ø $× 4Ñ 4°[Ó A�ä×&Ñ&Ü×(Ñ(ØØ /Ø"3Ø!/×!@Ñ!@ô	ð Ø'ô	
ð 		
rœ   c                ó>  — t        |t        j                  «      sJ ‚|j                  }|j                  }	 |j                  «       }|d ut        |«      dk7  z   |z   dkD  rt        d«      ‚|r| j                  |j                  «      S |r"| j                  t        j                  |   «      S |r@| j                  |«      }t        j                  d„ t        j                   «       ¬«      |d<   |S t        j                   «       S # t        $ r t        |dd «      d u}Y ŒÕw xY w)NÚ__default__r   rK   zZPydantic does not support mixing more than one of TypeVar bounds, constraints and defaultsc                ó   —  || «      S r©   rþ   )r:  Úhs     rš   r;  z>GenerateSchema._unsubstituted_typevar_schema.<locals>.<lambda>œ  s
   € ™Q˜q›T€ rœ   )r¯   r×   )re  r(  r#   rÙ  rÛ  Úhas_defaultr�  rÜ   rö  ÚNotImplementedErrorr%  r-  r7  r$   r/   rç  r¸   )rê   Útypevarr…   ÚconstraintsÚtypevar_has_defaultr¯   s         rš   r*  z,GenerateSchema._unsubstituted_typevar_schema„  s"  € Ü˜'¤6§>¡>Ô2Ð2Ð2à×!Ñ!ˆØ×-Ñ-ˆð	TØ")×"5Ñ"5Ó"7Ðð
 ˜Ð¤# kÓ"2°aÑ"7Ñ8Ð;NÑNÐQRÒRÜ%Ølóð ñ Ø×'Ñ'¨×(;Ñ(;Ó<Ð<ÙØ×%Ñ%¤f§l¡l°;Ñ&?Ó@Ð@ÙØ×)Ñ)¨%Ó0ˆFÜ&1×&UÑ&UÙ!¬+×*@Ñ*@Ó*Bô'ˆF�?Ñ#ð ˆMä×)Ñ)Ó+Ð+øô) ò 	Tä")¨'°=À$Ó"GÈtÐ"SÒð	Tús   ¶D ÄDÄDc                óx  ‡— 	 t        j                  ‰j                  ‰j                  j                  | j
                  «      }|t        u rt        dd¬«      ‚t        || j                  «      }t        j                  ‰j                  |¬«      ‰_        | j                  |«      }| j!                  |t#        |j%                  «       ‰j&                  «      d¬«      }| j(                  j*                  }|�(| j-                  |‰j                  ‰j&                  ¬«       | j/                  | j(                  ‰j                  ‰j&                  «       dˆfd„}t1        |g¬	«      }t3        j4                  ‰j&                  |‰j                  j6                  |¬
«      S # t        $ r}t        j                  |«      |‚d }~ww xY w)Nz�Computed field is missing return type annotation or specifying `return_type` to the `@computed_field` decorator (e.g. `@computed_field(return_type=int|str)`)zmodel-field-missing-annotationrŸ   )Úreturn_typeT©Úcomputed_field)rW  rZ  r[  c                ó’  •—  || «      }d|d<   ‰j                   j                  }|�||d<   ‰j                   j                  }|�||d<   ‰j                   j                  s‰j                   j                  dk(  rd|d<   ‰j                   j                  }|�t        |«      |d<   ‰j                   j                  }|�t        ||«       |S )NTÚreadOnlyr½   rÃ   rd  re  rf  )r—   r½   rÃ   re  rf  r0   rw  Úadd_json_schema_extra)r¯   rÐ   rÒ   r½   rÃ   rf  rw  rÒ  s          €rš   Úset_computed_field_metadatazJGenerateSchema._computed_field_schema.<locals>.set_computed_field_metadataÅ  sÃ   ø€ Ù! &›/ˆKà&*ˆK˜
Ñ#à—F‘F—L‘LˆEØÐ Ø',�˜GÑ$àŸ&™&×,Ñ,ˆKØÐ&Ø-8�˜MÑ*à�v‰v× Ò  A§F¡F×$5Ñ$5¸Ò$;Ø,0�˜LÑ)à—v‘v—‘ˆHØÐ#Ü*<¸XÓ*F�˜JÑ'à !§¡× 8Ñ 8ÐØ Ð,Ü% kÐ3DÔEàÐrœ   rg  )rð  rU  rD  )r¯   rU   rÐ   r<   rù   rH   )rM   Úget_function_return_typeÚfuncr—   r6  r  rê  rA   rë  r-   rB   rp   r  rÅ   Úreplacer%  rv  r«   rP  r¤   r  rW  r\  r_  rT   r/   r8  rU  )	rê   rÒ  r·  r6  rí  Úreturn_type_schemarW  r<  rD  s	    `       rš   rÈ  z%GenerateSchema._computed_field_schema¢  s�  ø€ ð
	HÜ%×>Ñ>¸q¿v¹vÀqÇvÁv×GYÑGYÐ[_×[pÑ[pÓqˆKð Ô+Ñ+Ü#ðdà5ôð ô $ K°×1CÑ1CÓDˆô ×$Ñ$ Q§V¡V¸ÔEˆŒØ!×1Ñ1°+Ó>Ðà!×:Ñ:ØÜ0Ð1B×1IÑ1IÓ1KÈQÏ^É^Ó\Øð ;ó 
Ðð ×.Ñ.×>Ñ>ˆØÐ&Ø×>Ñ>Ø /ÀQÇVÁVÐab×aoÑaoð ?ô ð 	×7Ñ7¸×8LÑ8LÈaÏfÉfÐVW×VdÑVdÔeõ	ô4 'Ð@[Ð?\Ô]ˆÜ×)Ñ)Ø�N‰NÐ*<ÀAÇFÁFÇLÁLÐ[cô
ð 	
øôo ò 	HÜ-×=Ñ=¸aÓ@ÀaÐGûð	Hús   ƒ?F Æ	F9ÆF4Æ4F9c                ó¨   — t        «       }| j                  |d¬«      ^}}| j                  ||«      }|D ]  }t        ||«      sŒt	        ||«      }Œ |S )zdGenerate schema for an Annotated type, e.g. `Annotated[int, Field(...)]` or `Annotated[int, Gt(0)]`.Tr¨  )rr   rÁ  r2  re  ru  )rê   rØ  r}   r4  r   r¯   rj  s          rš   rû  z GenerateSchema._annotated_schemaä  sm   € ä,Ó.ˆ	à$(×$IÑ$IØØð %Jó %
Ð!ˆ�kð ×(Ñ(¨°kÓBˆð &ò 	:ˆJÜ˜* iÕ0Ü% j°&Ó9‘ð	:ð ˆrœ   c                óÒ   — ddl m}m}m} 	 t	        |«       t        |«      xs |}|t        v r	 |||«      S |t        v r	 |||«      S |t        v r	 |||«      S y # t
        $ r Y y w xY w)NrK   )Ú)deque_schema_prepare_pydantic_annotationsÚ)mapping_like_prepare_pydantic_annotationsÚ(path_schema_prepare_pydantic_annotations)
Ú_std_types_schemarC  rD  rE  Úhashr¹   r5   r�   rŽ   ÚMAPPING_TYPES)rê   r  r   rC  rD  rE  Ú
obj_origins          rš   r1  z?GenerateSchema._get_prepare_pydantic_annotations_for_known_typeô  s~   € ÷	
ñ 	
ð	Ü�ŒIô   “_Ò+¨ˆ
àœÑ#Ù;¸CÀÓMÐMØœ;Ñ&Ù<¸SÀ+ÓNÐNØœ=Ñ(Ù<¸SÀ+ÓNÐNàøô! ò 	áð	ús   ŒA Á	A&Á%A&c                ó   — | S r©   rþ   r9  s    rš   r;  zGenerateSchema.<lambda>  s   € Èq€ rœ   c                ó°  ‡ ‡‡— t        t        j                  |«      «      }‰ j                  ‰t	        |«      «      }|�|\  Š}g }dˆ ˆˆfd„}t        |‰ «      }|D ]  }|€Œ‰ j                  |||«      }Œ  |‰«      }	|r6t        |	«      j                  }
|
j                  dg «      j                  |«       t        ‰ j                  j                  ‰|	«      S )a„  Apply arguments from `Annotated` or from `FieldInfo` to a schema.

        This gets called by `GenerateSchema._annotated_schema` but differs from it in that it does
        not expect `source_type` to be an `Annotated` object, it expects it to be  the first argument of that
        (in other words, `GenerateSchema._annotated_schema` just unpacks `Annotated`, this process it).
        c                óè   •— ‰j                  | ‰«      }|€‰j                  | «      }n|}t        | |«      }|�4t        |‰j                  j
                  «      }|�‰j                  ||«        ‰|«      S r©   )r˜  r™  rš  r›  r	  r�  r–  )r  r�  r¯   rž  r”  rê   r4  rc  s        €€€rš   Úinner_handlerz8GenerateSchema._apply_annotations.<locals>.inner_handler%  s{   ø€ Ø ×?Ñ?ÀÀ[ÓQˆMØÐ$Ø×4Ñ4°SÓ9‘à&�Ü#DÀSÈ&Ó#QÐ Ø#Ð/Ü"9¸&À$Ç)Á)×BWÑBWÓ"X�Ø"Ð.Ø×)Ñ)¨/Ð;OÔPÙ)¨&Ó1Ð1rœ   Ú pydantic_js_annotation_functions©r  r   rù   r)   )rN  rO   Úexpand_grouped_metadatar1  r°   rt   Ú_get_wrapped_inner_schemarS   rD  r“  Úextendrä   r  rà   )rê   r4  r   rc  r3  rN  rM  Úget_inner_schemarj  r¯   rD  s   `` `       rš   r2  z!GenerateSchema._apply_annotations  sç   ú€ ô Ô4×LÑLÈ[ÓYÓZˆØ×CÑCÀKÔQVÐWbÓQcÓdˆØˆ?Ø'*Ñ$ˆK˜àHJÐ(÷	2ô 8¸ÀtÓLÐà%ò 	ˆJØÐ!ØØ#×=Ñ=Ø  *Ð.Nó Ñð	ñ " +Ó.ˆÙ+Ü*¨6Ó2×;Ñ;ˆHØ×ÑÐ BÀBÓG×NÑNÐOoÔpÜ;¸D×<PÑ<P×<^Ñ<^Ð`kÐmsÓtÐtrœ   c                ó¬  — t        «       }t        ||«      rM|j                  D ]  }| j                  ||«      }Œ |j                  �| j                  ||j                  «      }|S |d   dk(  r?|j                  dt        j                  «       «      }| j                  ||«      }|r||d<   |S |}|j                  dd «      }|�X|j                  «       }|dt        |«      › �z   }|| j                  j                  v r| j                  j                  |   S ||d<   n“|d   dk(  r‹|d   }|| j                  j                  v rn| j                  j                  |   j                  «       }|dt        |«      › �z   }|| j                  j                  v r| j                  j                  |   S ||d<   t        j                  ||j                  «       «      }	|	�|	S |S )Nr­   r®   r¯   rC  rH  údefinition-refrú  )rr   re  rD  Ú_apply_single_annotationr„  r…  r¶   r/   r¸   r   Úreprr	  r�  rO   Úapply_known_metadata)
rê   r¯   rD  r}   Úfield_metadatarª  rÓ   rC  Únew_refÚmaybe_updated_schemas
             rš   rV  z'GenerateSchema._apply_single_annotationA  s×  € Ü,Ó.ˆ	ä�h 	Ô*Ø"*×"3Ñ"3ò O�Ø×6Ñ6°v¸~ÓN‘ðOð ×%Ñ%Ð1Ø×;Ñ;¸FÀH×DZÑDZÓ[�ØˆMà�&‰>˜ZÒ'à—J‘J˜x¬×)?Ñ)?Ó)AÓBˆEØ×1Ñ1°%¸ÓBˆEÙØ#(��xÑ ØˆMà ˆØ�j‰j˜ Ó%ˆØˆ?Ø—[‘[“]ˆFØ˜a¤ X£Ð/Ð0Ñ0ˆGØ˜$Ÿ)™)×/Ñ/Ñ/Ø—y‘y×,Ñ,¨WÑ5Ð5Ø#ˆF�5ŠMØ�F‰^Ð/Ò/Ø˜Ñ&ˆCØ�d—i‘i×+Ñ+Ñ+ØŸ™×.Ñ.¨sÑ3×8Ñ8Ó:�Ø !¤D¨£NÐ#3Ð 4Ñ4�Ø˜dŸi™i×3Ñ3Ñ3ØŸ9™9×0Ñ0°Ñ9Ð9Ø '��u‘ä8×MÑMÈhÐX^×XcÑXcÓXeÓfÐàÐ+Ø'Ð'ØÐrœ   c                óÌ  — t        «       }t        ||«      rÍ|j                  D ]  }| j                  ||«      }Œ i }|j                  r|j                  |d<   |j
                  r|j
                  |d<   |j                  rt        |j                  «      |d<   |j                  }|s|r>t        |«      j                  j                  dg «      j                  t        ||«      «       |S )Nr½   rÃ   rf  rN  )rr   re  rD  Ú$_apply_single_annotation_json_schemar½   rÃ   rf  r0   rw  rS   r“  rô   rx  )rê   r¯   rD  r}   rY  Újson_schema_updaterw  s          rš   r]  z3GenerateSchema._apply_single_annotation_json_schemak  sá   € ô -Ó.ˆ	ä�h 	Ô*Ø"*×"3Ñ"3ò [�Ø×BÑBÀ6È>ÓZ‘ð[à24ÐØ�~Š~Ø.6¯n©nÐ" 7Ñ+Ø×#Ò#Ø4<×4HÑ4HÐ" =Ñ1Ø× Ò Ü1CÀH×DUÑDUÓ1VÐ" :Ñ.à (× :Ñ :ÐÙ!Ñ%6Ü# FÓ+×4Ñ4×?Ñ?Ð@bÐdfÓg×nÑnÜ/Ð0BÐDUÓVôð ˆrœ   c                ó\   ‡ ‡‡‡‡— t        ‰dd «      xs d„ Šdˆˆˆˆˆ fd„}t        |‰ «      S )Nrß  c                ó   —  || «      S r©   rþ   )rå  rÐ   s     rš   r;  z:GenerateSchema._get_wrapped_inner_schema.<locals>.<lambda>‰  s
   € ¡G¨F£O€ rœ   c                ó    •—  ‰| ‰«      }‰j                  |‰«      }‰j                  |‰«      }t        ‰|«      }|�‰j                  |«       |S r©   )rV  r]  rš  rô   )rå  r¯   rž  rj  rS  Úmetadata_get_schemarN  rê   s      €€€€€rš   Únew_handlerz=GenerateSchema._get_wrapped_inner_schema.<locals>.new_handlerŒ  s\   ø€ Ù(¨Ð1AÓBˆFØ×2Ñ2°6¸:ÓFˆFØ×>Ñ>¸vÀzÓRˆFä#DÀZÐQWÓ#XÐ Ø#Ð/Ø0×7Ñ7Ð8LÔMØˆMrœ   )rå  r   rù   úcore_schema.CoreSchema)rÜ   rt   )rê   rS  rj  rN  rc  rb  s   ```` @rš   rQ  z(GenerateSchema._get_wrapped_inner_schema‚  s9   ü€ ô 6=¸ZÐIgÐimÓ5nò 6
Ù3ð 	÷	ñ 	ô ,¨K¸Ó>Ð>rœ   c                óÜ  — |�rÁt        |«      }|d   dk(  r|d   }| j                  ||«      |d<   |S t        j                  d|j	                  dd«      «      }|�.|| j
                  j                  |<   t        j                  |«      }|d   }t        |j                  |j                  j                  |¬«      \  }}	 t        j                  |j                  |j                  j                  | j                   «      }	|	t(        u rd}n| j+                  |	«      }|j                  j                  d	k(  r=t        j,                  |j                  ||||j                  j.                  ¬
«      |d<   |S |j                  j                  dk(  sJ ‚t        j0                  |j                  ||||j                  j.                  ¬
«      |d<   |S # t"        $ r}
t%        j&                  |
«      |
‚d}
~
ww xY w)z$Apply field serializers to a schema.r­   r�  r¯   zstr|NonerC  NrÙ   r7  r’   )Úis_field_serializerrä  rð  rÛ   r×   r‘   )r   rv  r(  r%   r¶   r	  r�  r/   r�  rg   r>  r—   rp  rM   r=  r6  r  rê  rA   rë  r-   r%  rç  rÛ   rß   )rê   r¯   Úserializersr8  r¼   rC  Ú
serializerrf  rä  r6  rí  rð  s               rš   rv  z'GenerateSchema._apply_field_serializers˜  sÌ  € ò Ü˜&“\ˆFØ�f‰~ Ò.Ø% hÑ/�Ø#'×#@Ñ#@ÀÈ{Ó#[��xÑ Ø�ä—k‘k *¨f¯j©j¸ÀÓ.EÓF�Ø�?Ø17�D—I‘I×)Ñ)¨#Ñ.Ü(×DÑDÀSÓI�Fð % R™ˆJÜ,DØ—‘ §¡×!5Ñ!5Ànô-Ñ)Ð ðLÜ)×BÑBØ—O‘O Z§_¡_×%@Ñ%@À$×BWÑBWó�ð Ô/Ñ/Ø $‘à $× 4Ñ 4°[Ó A�à�‰×#Ñ# vÒ-Ü*5×*YÑ*YØ—O‘OØ(;Ø%Ø"/Ø(Ÿo™o×7Ñ7ô+��Ñ'ð  ˆð "—‘×+Ñ+¨wÒ6Ð6Ð6Ü*5×*ZÑ*ZØ—O‘OØ(;Ø%Ø"/Ø(Ÿo™o×7Ñ7ô+��Ñ'ð ˆøô3 ò LÜ1×AÑAÀ!ÓDÈ!ÐKûðLús   Â>?G Ç	G+ÇG&Ç&G+c                óÎ  — |j                  dd«      }|�r!t        |«      d   }t        |j                  |j                  j
                  «      }	 t        j                  |j                  |j                  j                  | j                  «      }|t        u rd}n| j                  |«      }|j                  j
                  dk(  r8t        j                   |j                  |||j                  j"                  ¬«      }	n7t        j$                  |j                  |||j                  j"                  ¬«      }	|	|d<   |r||d<   |S # t        $ r}t        j                  |«      |‚d}~ww xY w)z$Apply model serializers to a schema.rC  NrÙ   r’   )rä  rð  rÛ   r×   )rõ   rN  rh   r>  r—   rp  rM   r=  r6  r  rê  rA   rë  r-   r%  r/   rç  rÛ   rß   )
rê   r¯   rg  rC  rh  rä  r6  rí  rð  Ú
ser_schemas
             rš   rÊ  z'GenerateSchema._apply_model_serializersÐ  s=  € ð !Ÿ*™* U¨DÓ1ˆÚÜ˜kÓ*¨2Ñ.ˆJÜ/°
·±ÀÇÁ×AUÑAUÓVˆHðLÜ)×BÑBØ—O‘O Z§_¡_×%@Ñ%@À$×BWÑBWó�ð
 Ô/Ñ/Ø $‘à $× 4Ñ 4°[Ó A�à�‰×#Ñ# vÒ-Ü4?×4cÑ4cØ—O‘OØ%Ø"/Ø(Ÿo™o×7Ñ7ô	5‘
ô )×MÑMØ—O‘OØ%Ø"/Ø(Ÿo™o×7Ñ7ô	�
ð '1ˆF�?Ñ#ÙØˆF�5‰MØˆøô3 ò LÜ1×AÑAÀ!ÓDÈ!ÐKûðLús   Á?E  Å 	E$Å	EÅE$r©   )r  rQ   rë   údict[str, Any] | Noner  údict[Any, Any] | Nonerù   ÚNone)r  rR   r  ræ   r  r  r  rl  r	  r  rù   r  )rù   rQ   )rù   rk  )rù   r  )rù   r  )rù   r)   )r'  r   rù   r)   )r+  r   r,  r   rù   r)   )rK  z
type[Enum]rù   r)   )rá   r   rù   r)   rO  )r¯   r)   r„  zstr | Discriminator | Nonerù   r)   ri  )r”  r)   r•  úCallable[..., Any]rù   rm  )T)r  r   rœ  r  rù   rd  )rÑ   ztype[BaseModel]rù   rd  )rÙ  z#type[BaseModel | StandardDataclass]r  zConfigWrapper | Nonerù   rŽ  )r  r   rå  r   rù   zcore_schema.CoreSchema | None)r  r   rù   r   )r  r   r©  zLiteral[True]rù   útuple[Any, ...])r  r   rù   útuple[Any, ...] | None)F)r  r   r©  r  rù   rp  )r  r   rù   ztuple[Any, Any])r  r   rù   rd  )r  r   r÷  r   rù   r)   )
rA  r6  rB  r}   r¥   r_   r©  r  rù   zcore_schema.TypedDictField)rA  r6  rB  r}   r¥   r_   rù   zcore_schema.ModelField)rA  r6  rB  r}   r¥   r_   rù   zcore_schema.DataclassField)rW  ú%Callable[[str], str] | AliasGeneratorrB  r}   r»   r6  rù   rm  )rW  rq  rZ  r|   r[  r6  )r  rQ   rB  zFieldInfo | ComputedFieldInfor»   r6  rù   rm  )rA  r6  rB  r}   r¥   r_   rù   Ú_CommonField)r†  r   rù   rd  )r–  r   rù   r)   )r¤  r   r÷  r   rù   rd  )r²  r   r÷  r   rù   rd  )
rA  r6  rj  rú   rª  r   rp  zJLiteral['positional_only', 'positional_or_keyword', 'keyword_only'] | Nonerù   zcore_schema.ArgumentsParameter)r¾  r   rù   rd  )rù   rd  )rÜ  r   rù   rd  )r'  r   rù   rd  )rÜ  r   rù   zcore_schema.GeneratorSchema)rô  r   rù   rd  )r  ztype[StandardDataclass]r÷  ztype[StandardDataclass] | Nonerù   rd  )r#  rn  rù   zcore_schema.CallSchema)r2  ztyping.TypeVarrù   rd  )rÒ  zDecorator[ComputedFieldInfo]r·  z2dict[str, Decorator[FieldSerializerDecoratorInfo]]rù   zcore_schema.ComputedField)rØ  r   rù   rd  )r  r   r   ro  rù   ztuple[Any, list[Any]] | None)r4  r   r   z	list[Any]rc  z"Callable[[CoreSchema], CoreSchema]rù   r)   )r¯   rd  rD  r   rù   rd  )rS  r;   rj  r   rN  zlist[GetJsonSchemaFunction]rù   rt   )r¯   rd  rg  z-list[Decorator[FieldSerializerDecoratorInfo]]r8  r  rù   rd  )r¯   rd  rg  z1Iterable[Decorator[ModelSerializerDecoratorInfo]]rù   rd  )NrÉ   rû   rü   rÊ   rþ  rì   Úclassmethodr  rý   r  r  r  r   r"  r(  r-  r0  r3  r[  rx  r{  r  r…  Ú	Exceptionrˆ  rŒ  rŠ  r–  r%  rÕ  Ústaticmethodr¼  rÜ  r˜  rî  r&   rÁ  rô  rø  r™  rý  r0  rD  rÇ  rP  rX  r\  r_  rÃ  r7  r  r  r  r  r   r°  r®  r  r  r-  rÖ  r8  r  r:  r$  r)  r/  r+  r*  rÈ  rû  r1  r2  rV  r]  rQ  rv  rÊ  rþ   rœ   rš   r  r  e  sE  „ Ùfð€Ið /3ð	#à%ð#ð /ð#ð ,ð	#ð
 
ó#ð ðà0ðð  3ðð *ð	ð
 ,ðð ðð 
òó ðð" ò/ó ð/ð ò0ó ð0ð ò
ó ð
ð ò<ó ð<ó(óIókóHóNóFóP
ó>
2ó	
ðØ ðØ1Kðà	óô$˜9ô óó	
ó	6ð -1ð-àð-ð &*ð-ð 
 ó	-ó^dJðL à[_ðØ2ðØDXðà	òó ðó&	ó5ónð, Úió ØiàÚWó ØWôóó ó$ó2k.óZ/.ðn ñ
àð
ð ð
ð #ð	
ð ð
ð 
$ó
ð&
àð
ð ð
ð #ð	
ð
 
 ó
ð"
àð
ð ð
ð #ð	
ð
 
$ó
ð* ð/[Ø>ð/[ØLUð/[Øcfð/[à	ò/[ó ð/[ðb ð(\Ø>ð(\à.ð(\ð !ò(\ó ð(\ðT ð%Ø%ð%Ø3Pð%Ø^að%à	ò%ó ð%ð*j
Øðj
Ø%.ðj
Ø<Jðj
à	ój
óXð6@àð@ð 
ó@ó,óhOóT#eðR !—‘Ø[_ð! àð! ð ð! ð ð	! ð
 Yð! ð 
(ó! óF_ó<
ó
ó0dó
>ó.
ó.Móró8
ðk(Ø0ðk(Ø:Xðk(à	ók(óZ3
ój,ð<@
à'ð@
ð Nð@
ð 
#ó	@
óDð ØðØ%4ðà	%óñD FQð	-uàð-uð ð-uð !Cð	-uð
 
ó-uó^(ðTØ,ðØ8;ðà	óð.?à.ð?ð ð?ð +Fð	?ð
 
&ó?ð4  %ð	6à&ð6ð Cð6ð ð	6ð
 
 ó6ðp&Ø,ð&Ø;lð&à	ô&rœ   r  c                ó.   — t        j                  | |«      S r©   )r/   Ú!no_info_before_validator_function©Úfr¯   rH  s      rš   r;  r;  ý  s   € ´×0]Ñ0]Ð^_ÐagÓ0h€ rœ   c                ó.   — t        j                  | |«      S r©   )r/   rU  rx  s      rš   r;  r;  þ  s   € ¬{×/[Ñ/[Ð\]Ð_eÓ/f€ rœ   c                ó,   — t        j                  | «      S r©   )r/   rv  )ry  rm  rn  s      rš   r;  r;  ÿ  s   € ¬K×,XÑ,XÐYZÓ,[€ rœ   c                ó.   — t        j                  | |«      S r©   )r/   ræ  rx  s      rš   r;  r;   	  s   € ¬k×.YÑ.YÐZ[Ð]cÓ.d€ rœ   c                ó2   — t        j                  | ||¬«      S ©N)r»   )r/   Ú#with_info_before_validator_function©ry  r¯   r»   s      rš   r;  r;  	  s   € ¼;×;jÑ;jØ	ˆ6˜jô<€ rœ   c                ó2   — t        j                  | ||¬«      S r~  )r/   Ú"with_info_after_validator_functionr€  s      rš   r;  r;  	  s   € ¼+×:hÑ:hØ	ˆ6˜jô;€ rœ   c                ó0   — t        j                  | |¬«      S r~  )r/   rä  )ry  rH  r»   s      rš   r;  r;  	  s   € ´[×5cÑ5cØ	�jô6€ rœ   c                ó2   — t        j                  | ||¬«      S r~  )r/   Ú!with_info_wrap_validator_functionr€  s      rš   r;  r;  
	  s   € ¼×9fÑ9fØ	ˆ6˜jô:€ rœ   ))r�   úno-info)r�   r†  )r‘   r†  )r’   r†  )r�   ú	with-info)r�   r‡  )r‘   r‡  )r’   r‡  z Mapping[tuple[FieldValidatorModes, Literal['no-info', 'with-info']], Callable[[Callable[..., Any], core_schema.CoreSchema, str | None], core_schema.CoreSchema]]Ú_VALIDATOR_F_MATCHc                óÔ   — |D ]b  }t        |j                  |j                  j                  «      }|rdnd}t	        |j                  j                  |f   |j                  | |«      } Œd | S )a  Apply validators to a schema.

    Args:
        schema: The schema to apply validators on.
        validators: An iterable of validators.
        field_name: The name of the field if validators are being applied to a model field.

    Returns:
        The updated schema.
    r‡  r†  )ri   r>  r—   rp  rˆ  )r¯   r¸  r»   Ú	validatorrä  Úval_types         rš   r·   r·   	  sg   € ð"  ò iˆ	Ü$ Y§^¡^°Y·^±^×5HÑ5HÓIˆÙ"*‘;°	ˆä# Y§^¡^×%8Ñ%8¸(Ð$CÑDÀYÇ^Á^ÐU[Ð]gÓh‰ð	ið
 €Mrœ   c                óB   — | D ]  }|j                   j                  sŒ y y)a?  In v1, if any of the validators for a field had `always=True`, the default value would be validated.

    This serves as an auxiliary function for re-implementing that logic, by looping over a provided
    collection of (v1-style) ValidatorDecoratorInfo's and checking if any of them have `always=True`.

    We should be able to drop this function and the associated logic calling it once we drop support
    for v1-style validator decorators. (Or we can extend it and keep it if we add something equivalent
    to the v1-validator `always` kwarg to `field_validator`.)
    TF)r—   Úalways)r¸  rŠ  s     rš   rr  rr  +	  s(   € ð  ò ˆ	Ø�>‰>× Ó Ùðð rœ   c                ó\  — | j                  dd«      }|D �]Œ  }|dk(  r|j                  j                  dk7  rŒ#|dk(  r|j                  j                  dk(  rŒBt        |j                  |j                  j                  «      }|j                  j                  dk(  rF|r"t        j                  |j                  | ¬«      } Œ©t        j                  |j                  | ¬«      } ŒË|j                  j                  dk(  rH|r#t        j                  |j                  | ¬«      } �Œ	t        j                  |j                  | ¬«      } �Œ,|j                  j                  dk(  sJ ‚|r#t        j                  |j                  | ¬«      } �Œlt        j                  |j                  | ¬«      } �Œ� |r|| d<   | S )	a“  Apply model validators to a schema.

    If mode == 'inner', only "before" validators are applied
    If mode == 'outer', validators other than "before" are applied
    If mode == 'all', all validators are applied

    Args:
        schema: The schema to apply validators on.
        validators: An iterable of validators.
        mode: The validator mode.

    Returns:
        The updated schema.
    rC  Nrª  r�   r³  r’   )r#  r¯   r�   )rõ   r—   rp  ri   r>  r/   r…  ræ  r  rw  r‚  rU  )r¯   r¸  rp  rC  rŠ  rä  s         rš   rÄ  rÄ  ;	  sc  € ð& —j‘j ¨Ó-€CØó nˆ	Ø�7Š?˜yŸ~™~×2Ñ2°hÒ>ØØ�7Š?˜yŸ~™~×2Ñ2°hÒ>ØÜ$ Y§^¡^°Y·^±^×5HÑ5HÓIˆØ�>‰>×Ñ &Ò(ÙÜ$×FÑFÐPY×P^ÑP^ÐgmÔn‘ä$×DÑDÈiÏnÉnÐekÔl‘Ø�^‰^× Ñ  HÒ,ÙÜ$×HÑHÐR[×R`ÑR`ÐioÔp’ä$×FÑFÐPY×P^ÑP^ÐgmÔn’à—>‘>×&Ñ&¨'Ò1Ð1Ð1ÙÜ$×GÑGÐQZ×Q_ÑQ_ÐhnÔo’ä$×EÑEÈyÏ~É~ÐflÔm’ð+nñ, Øˆˆu‰Ø€Mrœ   c                óò   — | j                   r,t        j                  || j                   | j                  ¬«      S | j                  t
        ur,t        j                  || j                  | j                  ¬«      S |S )a  Wrap schema with default schema if default value or `default_factory` are available.

    Args:
        field_info: The field info object.
        schema: The schema to apply default on.

    Returns:
        Updated schema by default value or `default_factory`.
    )Údefault_factoryrs  )rª  rs  )r�  r/   Úwith_default_schemars  rª  r-   )rB  r¯   s     rš   ru  ru  j	  sr   € ð ×!Ò!Ü×.Ñ.Ø J×$>Ñ$>ÐQ[×QlÑQlô
ð 	
ð 
×	Ñ	Ô#4Ñ	4Ü×.Ñ.Ø˜J×.Ñ.À×A\ÑA\ô
ð 	
ð ˆrœ   c                óR  — t        | dd«      }t        | d«      r]t        «       }|duxr% |j                  j                  |t        |dd«      fv}|s&t        | dd«      }t        d|rd|› d�nd	› d
�d¬«      ‚t        | d«      r!t        | «      st        | j                  |«      S |€y|S )z`Extract `__get_pydantic_json_schema__` from a type, handling the deprecated `__modify_schema__`.Ú__get_pydantic_json_schema__NÚ__modify_schema__r?  rÉ   zjThe `__modify_schema__` method is not supported in Pydantic v2. Use `__get_pydantic_json_schema__` insteadz in class `ú`rd  rž   zcustom-json-schemarŸ   Ú
__origin__)	rÜ   r  rq   r“  r?  rB   rv   rš  r–  )rá   r¯   Újs_modify_functionr~   Úhas_custom_v2_modify_js_funcÚcls_names         rš   rš  rš  €	  sÛ   € ä  Ð%CÀTÓJÐäˆrÐ&Ô'Ü,Ó.ˆ	ð  dÐ*ò WØ×6Ñ6×?Ñ?Ø&¬Ð0BÀJÐPTÓ(UÐVðWð 	%ñ ,Ü˜r :¨tÓ4ˆHÜ#ð=ÙZb¸{È8È*ÐTUÑ=VÐhjÐ<kÐklðnà)ôð ô ˆr�<Ô ¬°bÔ)9Ü0°·±ÀÓGÐGàÐ!ØàÐrœ   c                ó$   ‡ ‡— 	 	 	 	 	 	 dˆˆ fd„}|S )Nc                ó8   •— i  || «      ¥‰¥}t        |‰«       |S r©   )r;  )Úcore_schema_or_fieldrÐ   rÒ   rw  r^  s      €€rš   Újson_schema_update_funcz<get_json_schema_update_func.<locals>.json_schema_update_func¢	  s-   ø€ ð N™Ð!5Ó6ÐMÐ:LÐMˆÜ˜kÐ+<Ô=ØÐrœ   )rœ  rU   rÐ   r<   rù   rH   rþ   )r^  rw  r�  s   `` rš   rx  rx  Ÿ	  s(   ù€ ðØ/ðØ:Nðà	öð #Ð"rœ   c                ó‚   — t        |t        «      r| j                  t        |«      «       y t	        |«      r	 || «       y y r©   )re  r³   ró   r0   Úcallable)rÒ   rw  s     rš   r;  r;  ¬	  s:   € ô Ð#¤TÔ*Ø×ÑÔ-Ð.?Ó@ÕAÜ	Ð#Ô	$Ù˜+Õ&ð 
%rœ   c                  óJ   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   y)rr  rd  r¯   ú4str | list[str | int] | list[list[str | int]] | Noner=  rŽ  r>  úbool | Noner<  rF  zdict[str, Any]rD  N)rÉ   rû   rü   r¤  rþ   rœ   rš   rr  rr  µ	  s&   … Ø"Ó"ØJÓJØ#Ó#Ø&Ó&ØÓØÔrœ   rr  )r=  r>  r<  rF  rD  c               ó   — | |||||dœS )N©r¯   r=  r>  r<  rF  rD  rþ   r¤  s         rš   rz  rz  ¾	  s    € ð Ø,Ø2Ø!6ØØñð rœ   c                  ó*   — e Zd ZdZdd„Zedd„«       Zy)r  z*Keeps track of references and definitions.c                ó0   — t        «       | _        i | _        y r©   )r¡   Úseenr�  rï   s    rš   rì   z_Definitions.__init__Ô	  s   € Ü!›eˆŒ	Ø>@ˆÕrœ   c              #  óH  K  — t        |«      }|| j                  v s|| j                  v r|t        j                  |«      f–— y| j                  j                  |«       	 |df–— | j                  j                  |«       y# | j                  j                  |«       w xY w­w)ao  Get a definition for `tp` if one exists.

        If a definition exists, a tuple of `(ref_string, CoreSchema)` is returned.
        If no definition exists yet, a tuple of `(ref_string, None)` is returned.

        Note that the returned `CoreSchema` will always be a `DefinitionReferenceSchema`,
        not the actual definition itself.

        This should be called for any type that can be identified by reference.
        This includes any recursive types.

        At present the following types can be named/recursive:

        - BaseModel
        - Dataclasses
        - TypedDict
        - TypeAliasType
        N)rY   r§  r�  r/   r�  ÚaddÚdiscard)rê   rá   rC  s      rš   r´  z_Definitions.get_schema_or_refØ	  s„   è ø€ ô( ˜2Óˆà�$—)‘)Ñ˜s d×&6Ñ&6Ñ6Øœ×?Ñ?ÀÓDÐEÓEà�I‰I�M‰M˜#Ôð'Ø˜D�kÒ!à—	‘	×!Ñ! #Õ&ø�—	‘	×!Ñ! #Õ&üs   ‚AB"Á B Á&B"ÂBÂB"N©rù   rm  )rá   r   rù   z3Iterator[tuple[str, None] | tuple[str, CoreSchema]])rÉ   rû   rü   rÊ   rì   r   r´  rþ   rœ   rš   r  r  Ñ	  s   „ Ù4óAð ò'ó ñ'rœ   r  c                óZ   — | d   dk(  r|j                  | d   d «      S | d   dk(  r| d   S | S )Nr­   rU  rú  r�  r¯   rû  )r¯   r�  s     rš   r›  r›  ø	  sA   € Øˆf�~Ð)Ò)Ø�‰˜v lÑ3°TÓ:Ð:Ø	�‰˜=Ò	(Ø�hÑÐàˆrœ   c                  ó2   — e Zd ZdZdd„Zedd„«       Zdd„Zy)	r  ©Ú_stackc                ó   — g | _         y r©   r®  rï   s    rš   rì   z_FieldNameStack.__init__
  s	   € Ø!#ˆ�rœ   c              #  ó~   K  — | j                   j                  |«       d –— | j                   j                  «        y ­wr©   ©r¯  rô   rõ   )rê   r»   s     rš   r÷   z_FieldNameStack.push
  s)   è ø€ à�‰×Ñ˜:Ô&ÛØ�‰�‰Õùó   ‚;=c                ó:   — | j                   r| j                   d   S y rî   r®  rï   s    rš   r¶   z_FieldNameStack.get
  ó   € Ø�;Š;Ø—;‘;˜r‘?Ð"àrœ   Nr«  )r»   r6  rù   úIterator[None])rù   rŽ  ©rÉ   rû   rü   rþ  rì   r   r÷   r¶   rþ   rœ   rš   r  r  
  s%   „ Ø€Ió$ð òó ðô
rœ   r  c                  ó2   — e Zd ZdZdd„Zedd„«       Zdd„Zy)	r  r®  c                ó   — g | _         y r©   r®  rï   s    rš   rì   z_ModelTypeStack.__init__
  s	   € Ø"$ˆ�rœ   c              #  ó~   K  — | j                   j                  |«       d –— | j                   j                  «        y ­wr©   r²  )rê   Útype_objs     rš   r÷   z_ModelTypeStack.push
  s)   è ø€ à�‰×Ñ˜8Ô$ÛØ�‰�‰Õùr³  c                ó:   — | j                   r| j                   d   S y rî   r®  rï   s    rš   r¶   z_ModelTypeStack.get 
  rµ  rœ   Nr«  )r»  r­   rù   r¶  )rù   ztype | Noner·  rþ   rœ   rš   r  r  
  s%   „ Ø€Ió%ð òó ðô
rœ   r  )r—   ÚFieldDecoratorInfor˜   r6  rù   r  )r¥   zIterable[AnyFieldDecorator]r–   zIterable[str]rù   rm  )rª   z+Iterable[Decorator[FieldDecoratorInfoType]]r˜   r6  rù   z'list[Decorator[FieldDecoratorInfoType]])r¯   rd  rº   z'list[Decorator[ValidatorDecoratorInfo]]r»   rŽ  rù   rd  )
rÏ   rU   rÐ   r<   rÑ   r   r½   rŽ  rù   rH   )rà   zJsonEncoders | Nonerá   r   r¯   r)   rù   r)   )r   r   r  r   rù   r   )r¯   rd  r¸  z�Iterable[Decorator[RootValidatorDecoratorInfo]] | Iterable[Decorator[ValidatorDecoratorInfo]] | Iterable[Decorator[FieldValidatorDecoratorInfo]]r»   rŽ  rù   rd  )r¸  z+Iterable[Decorator[ValidatorDecoratorInfo]]rù   r  )r¯   rd  r¸  z0Iterable[Decorator[ModelValidatorDecoratorInfo]]rp  z Literal['inner', 'outer', 'all']rù   rd  )rB  r}   r¯   rd  rù   rd  )rá   r   r¯   r)   rù   zGetJsonSchemaFunction | None)r^  rH   rw  ú3JsonDict | typing.Callable[[JsonDict], None] | Nonerù   r�   )rÒ   rH   rw  r¾  )r¯   rd  r=  r¡  r>  rŽ  r<  r¢  rF  r¢  rD  r   rù   rr  )r¯   r)   r�  zdict[str, CoreSchema]rù   zCoreSchema | None)òrÊ   Ú
__future__r   Ú_annotationsÚcollections.abcr%  rÅ   r  rË   ÚosÚpathlibr"  rÒ  r(  rÞ   Ú
contextlibr   r   r   r   Údecimalr   Úenumr	   Ú	functoolsr
   r   r   r   Ú	ipaddressr   r   r   r   r   r   Ú	itertoolsr   Úoperatorr   Útypesr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Úuuidr'   r(   Útyping_extensionsÚpydantic_corer)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   Úaliasesr8   r9   r:   Úannotated_handlersr;   r<   r¯  r=   r>   r?   Úerrorsr@   rA   rB   Úfunctional_validatorsrC   rD   rE   rF   rG   rÒ   rH   ÚversionrI   rJ   rd  rL   rM   rN   rO   rP   Ú_configrQ   rR   Ú_core_metadatarS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   Ú_docs_extractionrj   r¬  rk   Ú_forward_refrl   Ú	_genericsrm   rn   ro   rp   Ú_import_utilsrq   rr   Ú_mock_val_serrs   Ú_schema_generation_sharedrt   ru   rv   rw   rx   ry   Ú_utilsrz   r{   r–   r|   r}   Úmainr~   r   rÇ   r€   r�   rÓ  rœ  r½  r„   ÚAnyFieldDecoratorÚModifyCoreSchemaWrapHandlerÚGetCoreSchemaFunctionr°   ÚTupler†   r¤  rN  ÚListr&  ÚMutableSequencer‡   r¡   ÚSetÚ
MutableSetrˆ   Ú	frozensetÚ	FrozenSetr‰   r³   rŠ   r‹   rá  rŒ   ÚPathLikeÚPathÚPurePathÚ	PosixPathÚPurePosixPathÚPureWindowsPathr�   ÚMutableMappingÚOrderedDictÚDefaultDictÚdefaultdictÚCounterrH  ÚdequeÚDequerŽ   r“   r›   r§   r«   rµ   rÕ   ÚJsonEncodersrä   r6  rø   ræ   r  r  rˆ  r·   rr  rÄ  ru  rš  rx  r;  rr  rz  r  r›  r  r  rþ   rœ   rš   ú<module>rö     s¡  ðÚ 3å 2ã Û Û Û Û 	Û Û 	Û 
Û Û ß 0ß Ý Ý Ý ß 8Ñ 8ß f× fÝ Ý ß 6Ñ 6÷÷ ÷ ÷ õ  Ý ã ÷	÷ 	ó 	÷ d× cç =Ñ =ß Kß 6Ñ 6ß bÑ bß wÕ wÝ )Ý #Ý 0ß fÕ fß 6ß D÷
÷ 
õ 
÷÷ ÷ ó õ :Ý -Ý .ß tÓ tß MÝ )Ý Cß pÕ pß 6áß5Ý Ý%Ý/Ý@à×&Ò&¨'Ñ1Ð àÐ1Ð3NÐPlÐlÑmÐ Ù Ð!9ÐASÔTÐ ØØÐ$Ñ%ØÐ)Ñ*ØÐ*Ñ+ð-ñÐ ð 3Ð Ø  #Ð'BÐ!CÀ[×E[ÑE[Ð![Ñ\Ð à  &§,¢,Ð/€ˆZÓ /Ø §¢¨[¯_ª_×-LÒ-LÐM€
ˆJÓ MØ˜fŸjšj¨+¯/ª/×*DÒ*DÐE€	ˆ:Ó EØ )¨6×+;Ò+;¸[¿_º_×=PÒ=PÐQÐ �*Ó QØ §¡Ð,€
ˆJÓ ,Ø# ]°KÀÈmÐ]hÐi€ˆ*Ó iØ$Ÿošo¨{¯ª×/GÒ/GÐH€�
Ó Hà‡K‚KØ‡L‚LØ×ÒØ×ÒØ×ÒØ×Òð€
ˆJó ð ‡N�NØ
×ÒØ‡O‚O×ÑØ‡O‚O×"Ò"Ø×ÒØ×!Ò!Ø
×ÒØ×ÒØ×ÒØ
‡N‚Nð€ð '×,Ò,¨f¯lªlÐ;€ˆZÓ ;ð ¨À.ÐZgÑhð ð ó ið
Ø
ðàðð 
óó*ð6nØDðnØMPðnà,ónð"Ø"ð"àAð"ð ð"ð ó	"ðT ñ$Ø&ð$à!ð$ð 
ð	$ð
 ð$ð ó$ðN �D˜‘I˜{Ð*Ñ+€ðØ&ðØ,/ðØ9CðàóðD �t˜C ˜H‘~ tÐ+Ñ,€÷.ñ .ó*%÷Qñ Qñp< iÙfÙ[Ùdñññññð ð ó ð2Ø"ðð7ðð
 ðð óó2ð ,Ø"ð,à@ð,ð +ð,ð ó	,ó^ó,ð>
#Ø'ð
#Ø<oð
#àó
#ð'Ø ð'Ø5hó'ô�9ô ð NRØ&*Ø)-ØØñØ"ðð Kðð $ð	ð
 'ðð ðð ðð ó÷&$'ñ $'óN÷ñ ÷&ò rœ   