§
    §MºfœL  ã                   óü   — d dl mZ d dlZd dlmZ d dlmZ d dlZddlm	Z	m
Z
 ddlmZ ddlmZ dd	lmZmZmZmZmZ d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)dS )é    )ÚMutableSequenceN)Údedent)Ú	iskeywordé   )Úgrouping_lenÚmap_grouping)Ú	Component)Ú
exceptions)Úpatch_collections_abcÚstringify_idÚto_jsonÚcoerce_to_listÚclean_property_namec           	      ód  — |\  }}}|r‹t          |d         |||f¦  «        s8t          j        t          dt	          |d         ¦  «        › d�¦  «        ¦  «        ‚t          j        t          d| |z   |z   d         ›d|d         ›d�¦  «        ¦  «        ‚| ||fD ]}|D ]}	t          |	¦  «         ŒŒd S )Nr   zð
                    Callback arguments must be `Output`, `Input`, or `State` objects,
                    optionally wrapped in a list or tuple. We found (possibly after
                    unwrapping a list or tuple):
                    ú
                    z¢
                In a callback definition, you must provide all Outputs first,
                then all Inputs, then all States. After this item:
                éÿÿÿÿz:
                we found this item next:
                ú
                )Ú
isinstancer
   ÚIncorrectTypeExceptionr   ÚreprÚvalidate_callback_arg)
ÚoutputsÚinputsÚstateÚ
extra_argsÚtypesÚInputÚOutputÚStateÚargsÚargs
             úM/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/dash/_validate.pyÚvalidate_callbackr#      s   € Ø Ñ€Eˆ6�5Øð 
Ý˜* Qœ-¨&°%¸Ð)?Ñ@Ô@ð 
	ÝÔ3Ýðõ ˜* Qœ-Ñ(Ô(ð	ð ð ñô ñ	ô 	ð 	õ Ô/Ýðð ˜FÑ" UÑ*¨BÔ/ðð ð
 ˜A”ðð ð ñô ñ

ô 

ð 
	
ð ˜& %Ð(ð 'ð 'ˆØð 	'ð 	'ˆCÝ! #Ñ&Ô&Ð&Ð&ð	'ð'ð 'ó    c                 óæ  — t          t          | dd ¦  «        t          ¦  «        s*t          j        t          d| j        ›d�¦  «        ¦  «        ‚t          | d¦  «        rt          j        d¦  «        ‚t          | j	        t          ¦  «        rt          | ¦  «         d S t          | j	        t          ¦  «        rt          | ¦  «         d S t          j        t          d| j	        ›d�¦  «        ¦  «        ‚)NÚcomponent_propertyz<
                component_property must be a string, found r   Úcomponent_eventzd
            Events have been removed.
            Use the associated property instead.
            z>
                component_id must be a string or dict, found )r   ÚgetattrÚstrr
   r   r   r&   ÚhasattrÚNonExistentEventExceptionÚcomponent_idÚdictÚvalidate_id_dictÚvalidate_id_string)r!   s    r"   r   r   3   s  € Ý•g˜cÐ#7¸Ñ>Ô>ÅÑDÔDð 
ÝÔ/ÝðØ<?Ô<Rðð ð ñô ñ
ô 
ð 	
õ ˆsÐ%Ñ&Ô&ð 
ÝÔ2ðñ
ô 
ð 	
õ �#Ô"¥DÑ)Ô)ð 
Ý˜ÑÔÐÐÐå	�CÔ$¥cÑ	*Ô	*ð 

Ý˜3ÑÔÐÐÐõ Ô/ÝðØ>AÔ>Nðð ð ñô ñ
ô 
ð 	
r$   c           
      ó˜   — | j         }|D ]?}t          |t          ¦  «        s(t          j        t          d|›d|›d�¦  «        ¦  «        ‚Œ@d S )Nz[
                    Wildcard ID keys must be non-empty strings,
                    found z in id r   )r,   r   r)   r
   r   r   )r!   Úarg_idÚks      r"   r.   r.   U   s‚   € ØÔ€Fàð ð ˆõ ˜!�SÑ!Ô!ð 	ÝÔ3Ýðàðð à'-ðð ð ñô ñô ð ð	ð	ð r$   c           
      óÂ   ‡— | j         Šd}ˆfd„|D ¦   «         }|rDt          j        d‰› dd                     |¦  «        › dd                     |¦  «        › d�¦  «        ‚d S )Nz.{c                 ó   •— g | ]}|‰v ¯|‘Œ	S © r5   )Ú.0Úxr1   s     €r"   ú
<listcomp>z&validate_id_string.<locals>.<listcomp>k   s   ø€ Ð=Ð=Ð=˜1°°f°°�Q°°°r$   z
            The element `z` contains `z`, `z%` in its ID.
            Characters `z&` are not allowed in IDs.
            )r,   r
   ÚInvalidComponentIdErrorÚjoin)r!   Úinvalid_charsÚinvalid_foundr1   s      @r"   r/   r/   g   s™   ø€ ØÔ€Fà€MØ=Ð=Ð=Ð= Ð=Ñ=Ô=€MØð 
ÝÔ0ðØ ðð Ø.4¯kªk¸-Ñ.HÔ.Hðð àŸš ]Ñ3Ô3ðð ð ñ
ô 
ð 	
ð
ð 
r$   c           	      ó¦  — t          | t          t          f¦  «        s| g|g}} n4t          | ¦  «        t          |¦  «        k    rt	          j        d¦  «        ‚t          | |¦  «        D ]h\  }}t          |t          t          f¦  «        r|n|g}|D ]?} ||d         t          |d         ¦  «        ¦  «        |k    st	          j        d¦  «        ‚Œ@ŒidS )zÓ
    This validation is for security and internal debugging, not for users,
    so the messages are not intended to be clear.
    `output` comes from the callback definition, `output_spec` from the request.
    zWrong length output_specÚidÚpropertyz)Output does not match callback definitionN)r   ÚlistÚtupleÚlenr
   ÚCallbackExceptionÚzipr   )ÚoutputÚoutput_specr   ÚoutiÚspeciÚ
speci_listÚspecijs          r"   Úvalidate_output_specrK   u   sû   € õ �f�t¥U˜mÑ,Ô,ð GØ%˜h¨¨�ˆˆÝ	ˆV‰Œ�˜KÑ(Ô(Ò	(Ð	(ÝÔ*Ð+EÑFÔFÐFå˜6 ;Ñ/Ô/ð 	ð 	‰ˆˆeÝ(¨µµu°Ñ>Ô>ÐK�U�UÀUÀGˆ
Ø ð 	ð 	ˆFà�F˜6 $œ<Õ)<¸VÀJÔ=OÑ)PÔ)PÑQÔQØòð õ !Ô2Ø?ñô ð ðð	ð	ð 	r$   c                 ó”  ‡ — t          |¦  «        t          ‰ ¦  «        k    rt          j        d¦  «        ‚t	          ˆ fd„|¦  «        }t          |t          ¦  «        r5g }|}|D ]-}|                     ¦   «         st          j        |› d�¦  «        ‚Œ.n3t          |t          t          f¦  «        rt          |¦  «        }i }n|g}i }||fS )Nz'Inputs do not match callback definitionc                 ó   •— ‰|          S ©Nr5   )ÚindÚ	flat_argss    €r"   ú<lambda>z/validate_and_group_input_args.<locals>.<lambda>�   s   ø€ ¨Y°s¬^€ r$   z$ is not a valid Python variable name)
r   rB   r
   rC   r   r   r-   ÚisidentifierrA   r@   )rP   Úarg_index_groupingÚargs_groupingÚ	func_argsÚfunc_kwargsÚkeys   `     r"   Úvalidate_and_group_input_argsrX   Œ   sú   ø€ ÝÐ&Ñ'Ô'­3¨y©>¬>Ò9Ð9ÝÔ*Ð+TÑUÔUÐUå Ð!;Ð!;Ð!;Ð!;Ð=OÑPÔP€MÝÐ$¥dÑ+Ô+ð Øˆ	Ø#ˆØð 	ð 	ˆCØ×#Ò#Ñ%Ô%ð Ý Ô2ØÐ@Ð@Ð@ñô ð ðð	õ
 
Ð&­µ¨Ñ	6Ô	6ð Ý˜Ñ'Ô'ˆ	Øˆˆð #�Oˆ	Øˆà�kÐ!Ð!r$   c                 ó  — t          |t          t          f¦  «        s(t          j        t          d|› d|›d�¦  «        ¦  «        ‚t          |¦  «        t          | ¦  «        k    r8t          j        d|› dt          | ¦  «        › dt          |¦  «        › d�¦  «        ‚t          | ¦  «        D ]Ú\  }}t          |t          ¦  «        rÀ||         }t          |t          t          f¦  «        s.t          j        t          d|› d	|› d
|›d|›d�	¦  «        ¦  «        ‚t          |¦  «        t          |¦  «        k    rNt          j        t          d|› d|› dt          |¦  «        › dt          |¦  «        › d|›d|›d�¦  «        ¦  «        ‚ŒÛd S )Nz
                The callback zl is a multi-output.
                Expected the output type to be a list or tuple but got:
                z.
                z1
            Invalid number of output values for z.
            Expected z, got ú
            z&
                        The callback z output z… is a wildcard multi-output.
                        Expected the output type to be a list or tuple but got:
                        z'.
                        output spec: z
                        z=
                        Invalid number of output values for z item z#.
                        Expected z&
                        output spec: z'
                        output value: )r   r@   rA   r
   ÚInvalidCallbackReturnValuer   rB   Ú	enumerate)Úoutputs_listÚoutput_valueÚcallback_idÚirG   Úvis         r"   Úvalidate_multi_returnrb   ¤   s3  € Ý�l¥T­5 MÑ2Ô2ð 	
ÝÔ3ÝðØ)ðð ð ðð ð ñô ñ
ô 
ð 	
õ ˆ<ÑÔ�C Ñ-Ô-Ò-Ð-ÝÔ3ðØ1<ðð å˜,Ñ'Ô'ðð å/2°<Ñ/@Ô/@ðð ð ñ
ô 
ð 	
õ ˜\Ñ*Ô*ð ð ‰ˆˆ4Ý�d�DÑ!Ô!ð 	Ø˜a”ˆBÝ˜b¥4­ -Ñ0Ô0ð 
Ý Ô;ÝðØ&1ðð Ø;<ðð ð ðð ð '+ð	ð ð ñô ñ	ô 	ð 	õ �2‰wŒw�#˜d™)œ)Ò#Ð#Ý Ô;ÝðØ=Hðð ØPQðð å"% b¡'¤'ðð å14°T±´ðð ð '+ðð ð (*ð	ð ð ñô ñ	ô 	ð 	øð!ð r$   c                 ó®  ‡‡‡‡‡‡	‡
— t           t          t          t          d ¦  «        t          fŠ	t           t          t          t          d ¦  «        t
          t          fŠ
d
ˆfd„	Šˆ	fd„Šˆ
fd„Šˆˆfd„Šdˆˆˆfd„	}t          | t          ¦  «        r#t          | ¦  «        D ]\  }} |||¬¦  «         Œn || ¦  «         t          j        d‰›d	�¦  «        ‚)NFc                 ót  •— t          | ¦  «        j        }t          |dd¦  «        rd|j        d›d�nd}t          |¦  «        j        }|rt	          d¦  «        }n'|€dnd	|d
›d�}	t	          d|	› d|› d|› d|› d�	¦  «        }|sdnd}
t          j        t	          d‰›d|
d›d|› d|› d| › d�¦  «        ¦  «        ‚)Nr>   Fz(id=Úsú)Ú z—
                The value in question is either the only value returned,
                or is in the top level of the returned list,
                z[*]ú[Údú]zE
                The value in question is located at
                ú r   z,
                ztree with one valueÚvaluez#
                The callback for `z`
                returned a z having type `zC`
                which is not JSON serializable.

                z@
                and has string representation
                `zµ`

                In general, Dash properties can only be
                dash components, strings, dictionaries, numbers, None,
                or lists of those.
                )ÚtypeÚ__name__r(   r>   r   r
   r[   )Úbad_valÚ	outer_valÚpathÚindexÚtoplevelÚbad_typeÚouter_idÚ
outer_typeÚlocationÚindex_stringÚobjrE   s              €r"   Ú_raise_invalidz,fail_callback_output.<locals>._raise_invalidØ   sZ  ø€ Ý˜‘=”=Ô)ˆÝ/6°yÀ$ÈÑ/NÔ/NÐVÐ+˜)œ,Ð+Ð+Ð+Ð+Ð+ÐTVˆÝ˜)‘_”_Ô-ˆ
Øð 	Ýðñô ˆHˆHð %* M˜5˜5°~¸5°~°~°~°~ˆLÝðàðð à *ðð à-5ðð ð ðð ð ñô ˆHð ,4Ð@Ð#Ð#¸ˆÝÔ3ÝðØ#)ðð àðð ð à19ðð ð
 ðð ð ðð ð ñô ñ
ô 
ð 	
r$   c                 ó$   •— t          | ‰¦  «        S rN   ©r   )ÚvalÚvalid_childrens    €r"   Ú_valid_childz*fail_callback_output.<locals>._valid_child   s   ø€ Ý˜#˜~Ñ.Ô.Ð.r$   c                 ó$   •— t          | ‰¦  «        S rN   r|   )r}   Úvalid_propss    €r"   Ú_valid_propz)fail_callback_output.<locals>._valid_prop  s   ø€ Ý˜#˜{Ñ+Ô+Ð+r$   c                 ó|   •—  ‰| ¦  «        s ‰| ¦  «        sdS 	 t          | ¦  «         n# t          $ r Y dS w xY wdS )NFT)r   Ú	TypeError)r}   r   r‚   s    €€r"   Ú_can_serializez,fail_callback_output.<locals>._can_serialize  sd   ø€ Ø�˜SÑ!Ô!ð 	 [ [°Ñ%5Ô%5ð 	Ø�5ð	Ý�C‰LŒLˆLˆLøÝð 	ð 	ð 	Ø�5�5ð	øøøàˆts   ›+ «
9¸9c           	      óT  •‡— t          | t          ¦  «        �r`g }|                      ¦   «         D ]Ò\  Š} ‰|¦  «        s ‰|| ‰|¬¦  «          ‰|¦  «        sDˆfd„|D ¦   «         }|r n—t          ˆfd„|D ¦   «         ¦  «        r|                     ‰|f¦  «         t          |dd ¦  «        }t          |t          t          f¦  «        s7|r5 ‰|¦  «        s* ‰|| ‰dz   dz   t          |¦  «        j	        z   |¬¦  «         ŒÓ|r|d         \  Š} ‰|| ‰|¬¦  «         t          | dd ¦  «        }t          |t          t          f¦  «        s.|r, ‰| ¦  «        s! ‰|| t          |¦  «        j	        |¬¦  «          ‰| ¦  «        s$ ‰| t          | ¦  «        j	        d|d	¬
¦  «         d S d S )N)ro   rp   rq   rr   c                 óJ   •— g | ]}‰                      |d          ¦  «        °|‘Œ S ©r   ©Ú
startswith©r6   r`   Úps     €r"   r8   zAfail_callback_output.<locals>._validate_value.<locals>.<listcomp>  s>   ø€ ð ,ð ,ð ,Ø¸q¿|º|ÈAÈaÌDÑ?QÔ?Qð,Øð,ð ,ð ,r$   c              3   óP   •K  — | ] }|d                                ‰¦  «         V — Œ!dS )r   Nr‰   r‹   s     €r"   ú	<genexpr>z@fail_callback_output.<locals>._validate_value.<locals>.<genexpr>$  s6   øè è € ÐPÐP°a˜q œtŸš¨qÑ1Ô1Ð1ÐPÐPÐPÐPÐPÐPr$   Úchildrenú
z[*] r   rg   T)ro   rp   rq   rr   rs   )
r   r	   Ú_traverse_with_pathsÚallÚappendr(   rA   r   rm   rn   )	r}   rr   Úunserializable_itemsÚjÚchildrŒ   r…   rz   r   s	        @€€€r"   Ú_validate_valuez-fail_callback_output.<locals>._validate_value  sm  øø€ å�c�9Ñ%Ô%ñ 0	Ø#%Ð à×0Ò0Ñ2Ô2ð ð ‘��1à#�| A‘”ð RØ"�N¨1¸À!È5ÐQÑQÔQÐQà%�~ aÑ(Ô(ð <ð,ð ,ð ,ð ,Ø#7ð,ñ ,ô ,Ð(ð ,ð ð ˜ÝÐPÐPÐPÐPÐ;OÐPÑPÔPÑPÔPð <Ø,×3Ò3°Q¸°FÑ;Ô;Ð;õ    :¨tÑ4Ô4�Ý! %­%µÐ)AÑBÔBð Øð  ^ ^°EÑ%:Ô%:ð Ø&˜Ø$)Ø&)Ø!" T¡¨FÑ!2µT¸%±[´[Ô5IÑ!IØ"'ð	ñ ô ð øð $ð NØ+¨AÔ.‘��1ð � q°C¸aÀuÐMÑMÔMÐMõ ˜C ¨TÑ2Ô2ˆEÝ˜e¥e­_Ð%=Ñ>Ô>ð Øð   °Ñ!4Ô!4ð Ø"�NØ %Ø"%Ý! %™[œ[Ô1Ø#ð	ñ ô ð ð ˆ~˜cÑ"Ô"ð 	ØˆNØÝ˜s™)œ)Ô,ØØØðñ ô ð ð ð ð	ð 	r$   )rr   z"
        The callback for output `zÆ`
        returned a value which is not JSON serializable.

        In general, Dash properties can only be dash components, strings,
        dictionaries, numbers, None, or lists of those.
        )NFrN   )r)   ÚintÚfloatrm   r	   rA   r   r   r@   r\   r
   r[   )r^   rE   r—   r`   r}   r…   rz   r   r‚   r~   r�   s    `   @@@@@@r"   Úfail_callback_outputrš   Ô   s[  øøøøøøø€ Ý�3¥¥t¨D¡z¤zµ9Ð=€NÝ��U¥D¨¡J¤JµµÐG€Kð&
ð &
ð &
ð &
ð &
ð &
ðP/ð /ð /ð /ð /ð,ð ,ð ,ð ,ð ,ðð ð ð ð ð ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;õz �,¥Ñ%Ô%ð &Ý Ñ-Ô-ð 	*ð 	*‰FˆAˆsØˆO˜C qÐ)Ñ)Ô)Ð)Ð)ð	*ð 	ˆ˜Ñ%Ô%Ð%õ Ô
/ð	Ø"(ð	ð 	ð 	ñô ð r$   c                 ól   — | D ]0}|dv rt          j        d|› d�¦  «        ‚t          d|› d�¦  «        ‚d S )N)Úcomponents_cache_max_ageÚstatic_folderr   z„ is no longer a valid keyword argument in Dash since v1.0.
                See https://dash.plotly.com for details.
                z+Dash() got an unexpected keyword argument 'ú')r
   ÚObsoleteKwargExceptionr„   )ÚkwargsrW   s     r"   Úcheck_obsoleter¡   ^  ss   € Øð 	Nð 	NˆØÐ?Ð?Ð?ÝÔ3ðØðð ð ñô ð õ ÐLÀcÐLÐLÐLÑMÔMÐMð	Nð 	Nr$   c           	      óÒ   — || vr:t          j        d|› dt          |                      ¦   «         ¦  «        › d�¦  «        ‚|| |         vrt          j        d|› d|› d| › d�¦  «        ‚d S )Nz(
            Error loading dependency. "zQ" is not a registered library.
            Registered libraries are:
            rZ   z
            "zV" is registered but the path requested is not valid.
            The path requested: "z("
            List of registered paths: )r
   ÚDependencyExceptionr@   Úkeys)Úregistered_pathsÚpackage_nameÚpath_in_package_dists      r"   Úvalidate_js_pathr¨   k  sÂ   € ØÐ+Ð+Ð+ÝÔ,ðØ(4ðð õ Ð"×'Ò'Ñ)Ô)Ñ*Ô*ðð ð ñ
ô 
ð 	
ð Ð#3°LÔ#AÐAÐAÝÔ,ðØðð à"6ðð ð (8ðð ð ñ
ô 
ð 	
ð BÐAr$   c           	      ó¸   ‡— ˆfd„|D ¦   «         }|rHt          |¦  «        dk    rdnd}t          j        d|› dd                     |¦  «        › d| › d	�¦  «        ‚d S )
Nc                 óh   •— g | ].\  }}t          j        |¦  «                             ‰¦  «        °,|‘Œ/S r5   )ÚreÚcompileÚsearch)r6   Úcheckr`   rr   s      €r"   r8   z"validate_index.<locals>.<listcomp>€  s:   ø€ ÐOÐOÐO‘X�U˜A­r¬z¸%Ñ/@Ô/@×/GÒ/GÈÑ/NÔ/NÐOˆqÐOÐOÐOr$   r   re   rg   zMissing itemrk   z, z in ú.)rB   r
   ÚInvalidIndexExceptionr:   )ÚnameÚchecksrr   ÚmissingÚplurals     `  r"   Úvalidate_indexrµ     s†   ø€ ØOÐOÐOÐO ÐOÑOÔO€GØð 
Ý˜G™œ qÒ(Ð(��¨bˆÝÔ.ØC˜6ÐCÐC D§I¢I¨gÑ$6Ô$6ÐCÐC¸DÐCÐCÐCñ
ô 
ð 	
ð
ð 
r$   c                 óv   — t          | t          t          d¦  «        f¦  «        st          j        d¦  «        ‚d S )NÚCallablezLLayout must be a dash component or a function that returns a dash component.)r   r	   r   r
   ÚNoLayoutException)rl   s    r"   Úvalidate_layout_typer¹   ˆ  sF   € Ý�e�iÕ)>¸zÑ)JÔ)JÐKÑLÔLð 
ÝÔ*ð;ñ
ô 
ð 	
ð
ð 
r$   c                 ód  — | €t          j        d¦  «        ‚t          t          |dd ¦  «        ¦  «        }|r|hnt	          ¦   «         }|                     ¦   «         D ]S}t          t          |dd ¦  «        ¦  «        }|r||v rt          j        d|› d�¦  «        ‚|                     |¦  «         ŒTd S )NzÈ
            The layout was `None` at the time that `run_server` was called.
            Make sure to set the `layout` attribute of your application
            before running the server.
            r>   zF
                Duplicate component id found in the initial layout: `z`
                )r
   r¸   r   r(   ÚsetÚ	_traverseÚDuplicateIdErrorÚadd)ÚlayoutÚlayout_valueÚ	layout_idÚcomponent_idsÚ	componentr,   s         r"   Úvalidate_layoutrÄ   �  så   € Ø€~ÝÔ*ðñ
ô 
ð 	
õ �W \°4¸Ñ>Ô>Ñ?Ô?€Ià#,Ð7�Y�K�Kµ#±%´%€MØ!×+Ò+Ñ-Ô-ð (ð (ˆ	Ý#¥G¨I°t¸TÑ$BÔ$BÑCÔCˆØð 	˜L¨MÐ9Ð9ÝÔ-ðØFRðð ð ñô ð ð
 	×Ò˜,Ñ'Ô'Ð'Ð'ð(ð (r$   c                 ó¬   — t          j        d| ¦  «        }|D ];}|                     ¦   «         rt          |¦  «        rt	          d|› d| › d�¦  «        ‚Œ<d S )Nz<(.*?)>ú`z;` is not a valid Python variable name in `path_template`: "z".)r«   ÚfindallrR   r   Ú	Exception)ÚtemplateÚvariable_namesr±   s      r"   Úvalidate_templaterË   ¨  s{   € Ý”Z 	¨8Ñ4Ô4€Nàð ð ˆØ× Ò Ñ"Ô"ð 	¥i°¡o¤oð 	ÝØa�DÐaÐaÐU]ÐaÐaÐañô ð ð	ðð r$   c                 ó:  — i }|                       ¦   «         D ]F}|d         |vr|d         g||d         <   Œ||d                                       |d         ¦  «         ŒG|                      ¦   «         D ](}t          |¦  «        dk    rt          d|› d�¦  «        ‚Œ)d S )Nrq   Úmoduler   zmodules z have duplicate paths)Úvaluesr“   rB   rÈ   )ÚregistryÚpath_to_moduleÚpageÚmoduless       r"   Úcheck_for_duplicate_pathnamesrÓ   ²  sÆ   € Ø€NØ—’Ñ!Ô!ð @ð @ˆØ�Œ<˜~Ð-Ð-Ø,0°¬NÐ+;ˆN˜4 œ<Ñ(Ð(à˜4 œ<Ô(×/Ò/°°X´Ñ?Ô?Ð?Ð?à!×(Ò(Ñ*Ô*ð Gð GˆÝˆw‰<Œ<˜!ÒÐÝÐE wÐEÐEÐEÑFÔFÐFð ðGð Gr$   c                 ó®   — |                       ¦   «         D ]?}d|vrt          j        d|d         › d�¦  «        ‚|d         dk    rt          d¦  «        ‚Œ@d S )Nr¿   zNo layout in module `rÍ   z` in dash.page_registryÚ__main__zó
                When registering pages from app.py, `__name__` is not a valid module name.  Use a string instead.
                For example, `dash.register_page("my_module_name")`, rather than `dash.register_page(__name__)`
                )rÎ   r
   r¸   rÈ   )rÏ   rÑ   s     r"   Úvalidate_registryrÖ   ¿  s„   € Ø—’Ñ!Ô!ð ð ˆØ˜4ÐÐÝÔ.ØO¨¨X¬ÐOÐOÐOñô ð ð �Œ>˜ZÒ'Ð'Ýðñô ð ð (ðð r$   c                 óV   — t          |d¦  «        st          j        d| › d�¦  «        ‚d S )Nr¿   z'
            No layout found in module zN
            A variable or a function named "layout" is required.
            )r*   r
   r¸   )rÍ   rÑ   s     r"   Úvalidate_pages_layoutrØ   Î  sJ   € Ý�4˜Ñ"Ô"ð 
ÝÔ*ðØ'-ðð ð ñ
ô 
ð 	
ð
ð 
r$   c                 ó¨   — |                       dd ¦  «        st          j        d¦  «        ‚t          j        ¦   «         rt          j        d¦  «        ‚d S )NÚassets_folderz=`dash.register_page()` must be called after app instantiationu  
            dash.register_page() canâ€™t be called within a callback as it updates dash.page_registry, which is a global variable.
             For more details, see https://dash.plotly.com/sharing-data-between-callbacks#why-global-variables-will-break-your-app
            )Úgetr
   Ú	PageErrorÚflaskÚhas_request_context)Úconfigs    r"   Úvalidate_use_pagesrà   Ø  sg   € Ø�:Š:�o tÑ,Ô,ð 
ÝÔ"ØKñ
ô 
ð 	
õ Ô Ñ"Ô"ð 
ÝÔ"ðñ
ô 
ð 	
ð
ð 
r$   c                 óX   — t          | t          ¦  «        st          j        d¦  «        ‚| S )NzJThe first attribute of dash.register_page() must be a string or '__name__')r   r)   r
   rÜ   )rÍ   s    r"   Úvalidate_module_namerâ   ç  s3   € Ý�f�cÑ"Ô"ð 
ÝÔ"ØXñ
ô 
ð 	
ð €Mr$   c                 ó  ‡
‡— t          ¦   «         }i }|                      ¦   «         D ]�}t          |d         ¦  «        }|                     |¦  «         |D ]R}|                     |t          ¦   «         ¦  «         ||                              t          |d         ¦  «        ¦  «         ŒSŒ‚d„ |                      ¦   «         D ¦   «         D ]º}|d         }|                     dg ¦  «        }|                     dg ¦  «        }t          |d         ¦  «        Š
t          d„ |D ¦   «         |z   ¦  «        Šˆ
fd„t          ˆfd	„|                     ¦   «         D ¦   «         ¦  «        D ¦   «         }	|	rt          j        d
|	› d�¦  «        ‚Œ»d S )NrE   Ú
raw_inputsc              3   óD   K  — | ]}|                      d ¦  «        ¯|V — ŒdS )ÚlongN)rÛ   ©r6   r7   s     r"   rŽ   z*validate_long_callbacks.<locals>.<genexpr>û  s1   è è € ÐGÐG˜1¸¿º¸v¹¼ÐG�QÐGÐGÐGÐGÐGÐGr$   ræ   ÚprogressÚrunningc                 ó   — g | ]
}|d          ‘ŒS rˆ   r5   rç   s     r"   r8   z+validate_long_callbacks.<locals>.<listcomp>  s   € Ð-Ð-Ð- �q˜”tÐ-Ð-Ð-r$   c                 ó   •— g | ]}|‰v ¯|‘Œ	S r5   r5   )r6   r7   Úlong_inputss     €r"   r8   z+validate_long_callbacks.<locals>.<listcomp>  s.   ø€ ð 
ð 
ð 
àØ�KÐÐð àÐÐr$   c              3   óL   •K  — | ]\  }}|                      ‰¦  «        ¯|V — Œd S rN   )Úintersection)r6   r2   Úvr   s      €r"   rŽ   z*validate_long_callbacks.<locals>.<genexpr>  s8   øè è € ÐXÐX™t˜q !ÀÇÂÈwÑ@WÔ@WÐX˜ÐXÐXÐXÐXÐXÐXr$   zLong callback circular error!
z~ is used as input for a long callback but also used as output from an input that is updated with progress or running argument.)	r»   rÎ   r   ÚupdateÚ
setdefaultrÛ   Úitemsr
   ÚLongCallbackError)Úcallback_mapÚall_outputsÚinput_indexedÚcallbackÚoutÚoÚ	long_inforè   ré   Úcircularrì   r   s             @@r"   Úvalidate_long_callbacksrü   ï  sÙ  øø€ õ ‘%”%€KØ€MØ ×'Ò'Ñ)Ô)ð Lð LˆÝ˜X hÔ/Ñ0Ô0ˆØ×Ò˜3ÑÔÐØð 	Lð 	LˆAØ×$Ò$ Q­©¬Ñ.Ô.Ð.Ø˜!Ô×#Ò#¥N°8¸LÔ3IÑ$JÔ$JÑKÔKÐKÐKð	Lð HÐG × 3Ò 3Ñ 5Ô 5ÐGÑGÔGð ð ˆØ˜VÔ$ˆ	Ø—=’= ¨RÑ0Ô0ˆØ—-’- 	¨2Ñ.Ô.ˆå$ X¨lÔ%;Ñ<Ô<ˆÝÐ-Ð- WÐ-Ñ-Ô-°Ñ8Ñ9Ô9ˆð
ð 
ð 
ð 
åÐXÐXÐXÐX }×':Ò':Ñ'<Ô'<ÐXÑXÔXÑXÔXð
ñ 
ô 
ˆð ð 	ÝÔ.ðm°(ð mð mð mñô ð ð	ðð r$   c                 ó˜   ‡‡— d‰‰fv rd S ˆˆfd„}t          | t          t          f¦  «        r| D ]} ||¦  «         Œd S  || ¦  «         d S )NÚinitial_duplicatec                 óN   •— | j         r‰s‰st          j        d¦  «        ‚d S d S d S )Na*  allow_duplicate requires prevent_initial_call to be True. The order of the call is not guaranteed to be the same on every page load. To enable duplicate callback with initial call, set prevent_initial_call='initial_duplicate'  or globally in the config prevent_initial_callbacks='initial_duplicate')Úallow_duplicater
   ÚDuplicateCallback)rø   Úconfig_prevent_initial_callÚprevent_initial_calls    €€r"   Ú_validz)validate_duplicate_output.<locals>._valid  s[   ø€ àÔð
	à(ð
	ð 0ð
	õ
 Ô.ð[ñô ð ð
	ð 
	ð 
	ð 
	ð 
	ð 
	r$   )r   r@   rA   )rE   r  r  r  rù   s    ``  r"   Úvalidate_duplicate_outputr    s‡   øø€ ð Ð3Ð5PÐQÐQÐQØˆðð ð ð ð ð õ �&�4¥˜-Ñ(Ô(ð Øð 	ð 	ˆAØˆF�1‰IŒIˆIˆIàˆà
€Fˆ6�N„N€N€N€Nr$   )*Úcollections.abcr   r«   Útextwrapr   Úkeywordr   rÝ   Ú	_groupingr   r   Údevelopment.base_componentr	   rg   r
   Ú_utilsr   r   r   r   r   r#   r   r.   r/   rK   rX   rb   rš   r¡   r¨   rµ   r¹   rÄ   rË   rÓ   rÖ   rØ   rà   râ   rü   r  r5   r$   r"   ú<module>r     s"  ðØ +Ð +Ð +Ð +Ð +Ð +Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð'ð 'ð 'ð@
ð 
ð 
ðDð ð ð$
ð 
ð 
ðð ð ð."ð "ð "ð0-ð -ð -ð`Gð Gð GðT
Nð 
Nð 
Nð
ð 
ð 
ð(
ð 
ð 
ð
ð 
ð 
ð(ð (ð (ð0ð ð ð
Gð 
Gð 
Gðð ð ð
ð 
ð 
ð
ð 
ð 
ðð ð ðð ð ð@ð ð ð ð r$   