§
    WøÁi¥ã  ã                  óL  — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 dd	lm
Z
 dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  ddlmZ ddl!m"Z" ddl#m$Z$ ddl#m%Z% dd l#m&Z& dd!l'm(Z( ddl'mZ) dd"l*m+Z+ dd#l*m,Z, dd$l*m-Z- dd%lm.Z. erBdd&l/m0Z0 dd'lm1Z1 dd(l2m3Z3 dd)l4m5Z5 dd*l6m7Z7 dd+l8m9Z9 dd,l:m;Z; dd-l<m=Z= dd.l>m?Z? dd/l#m@Z@ dd0l'mAZA  ed1e¬2¦  «        ZB ed3eC¬2¦  «        ZD ejE        ¦   «         ZFeeGeeeGef                  f         ZHd{d:„ZI ejJ        d;¦  «        d|d=„¦   «         ZK ejL        d>d?¬@¦  «         ejJ        d;¦  «        	 d|d}dH„¦   «         ¦   «         ZMd~dR„ZNdSdSdSdSdTej.        ej.        dTdTdUœ	ddh„ZOdSdSdSdSdSdTej.        ej.        dTdTdiœ
d€dn„ZP	 	 	 	 	 	 d�do„ZQ	 	 	 d‚dp„ZRdq„ ZS	 	 	 	 dƒdr„ZTds„ ZUdt„ ZVdu„ ZWdv„ ZXdw„ ZY G dx„ dy¦  «        ZZdz„ Z[dSS )„zßprivate module containing functions used to convert database
rows into object instances and associated state.

the functions here are called primarily by Query, Mapper,
as well as some of the attribute loading strategies.

é    )Úannotations)ÚAny)ÚDict)ÚIterable)ÚList)ÚMapping)ÚOptional)ÚSequence)ÚTuple)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Úexc)Úpath_registry)Ú_DEFER_FOR_STATE)Ú_RAISE_FOR_STATE)Ú_SET_DEFERRED_EXPIRED)ÚPassiveFlag)ÚFromStatement)ÚORMCompileState)ÚQueryContext)Ú	_none_set)Ú	state_stré   )Úutil)Úresult_tuple)ÚChunkedIteratorResult)ÚFrozenResult)ÚSimpleResultMetaData)Úselect)ÚForUpdateArg)ÚLABEL_STYLE_TABLENAME_PLUS_COL)ÚSelectState)Ú
EMPTY_DICT)Ú_IdentityKeyType)ÚLoaderCallableStatus)Ú	ORMOption)ÚMapper)ÚQuery)ÚSession)ÚInstanceState)ÚCursorResult)Ú_ExecuteOptions)ÚResult)ÚSelectÚ_T)ÚboundÚ_OÚcursorúCursorResult[Any]Úcontextr   ÚreturnúResult[Any]c                ó\  ‡ ‡‡‡‡‡‡‡— t          ¦   «         ‰_        ‰j        rdŠ‰j        j        ‰_        n	dŠi ‰_        ‰j        }|j        }‰j        j         o)t          |j	        ¦  «        dk    o|j	        d         j
        Š	 t          t          ˆˆ fd„‰j        j	        D ¦   «         Ž ¦  «        \  Š}}‰j        r"‰j        s‰j        rt!          j        d¦  «        ‚nO# t$          $ rB t'          j        ¦   «         5  ‰                      ¦   «          ddd¦  «         n# 1 swxY w Y   Y nw xY wd„ Šddd	œd
„Šˆˆˆfd„‰j        j	        D ¦   «         }t-          |||¬¦  «        }ˆˆ ˆˆˆfd„}‰j                             dd¦  «        rt           |d¦  «        ¦  «        Šˆfd„}t3          ||‰‰ ‰ j        j        ¬¦  «        }	|	j                             t=          |‰¬¦  «        ¦  «        |	_        ‰j        j        rd„ }
d|
f|	_         ‰j        r|	                     ‰j        ¦  «         |	S )a¤  Return a :class:`.Result` given an ORM query context.

    :param cursor: a :class:`.CursorResult`, generated by a statement
     which came from :class:`.ORMCompileState`

    :param context: a :class:`.QueryContext` object

    :return: a :class:`.Result` object representing ORM results

    .. versionchanged:: 1.4 The instances() function now uses
       :class:`.Result` objects and has an all new interface.

    FTr   r   c                ó<   •— g | ]}|                      ‰‰¦  «        ‘ŒS © )Úrow_processor)Ú.0Úquery_entityr7   r5   s     €€ú`/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/sqlalchemy/orm/loading.pyú
<listcomp>zinstances.<locals>.<listcomp>q   s9   ø€ ð ð ð à$ð !×.Ò.¨w¸Ñ?Ô?ðð ð ó    zØCan't use yield_per with eager loaders that require uniquing or row buffering, e.g. joinedload() against collections or subqueryload().  Consider the selectinload() strategy for better flexibility in loading objects.Nc                ó*   — t          j        d¦  «        ‚)Nz@Can't use the ORM yield_per feature in conjunction with unique()©Úsa_excÚInvalidRequestError)Úentrys    r@   Ú
_no_uniquezinstances.<locals>._no_unique‡   s   € ÝÔ(ØNñ
ô 
ð 	
rB   ©ÚlegacyÚ	uncertainc               ó@   ‡ ‡‡— |sˆ ˆfd„}|S ‰st           S dŠˆfd„}|S )Nc                ót   •— ‰r	 t          | ¦  «        S #  Y nxY wt          j        d‰›d‰rdnd› d�¦  «        ‚)Nz=Can't apply uniqueness to row tuple containing value of type z; z the values returned appear to bezthis datatype producesz non-hashable values)ÚhashrE   rF   )ÚobjÚdatatyperK   s    €€r@   Úgoz,instances.<locals>._not_hashable.<locals>.go�   ss   ø€ Øð ðÝ# C™yœyÐ(øðØ˜øøøåÔ0ð-Ø&ð-ð -ð %ð6Ð:Ð:à5ð	-ð -ð -ñô ð ó   … ”Fc                óX   •— ‰s	 t          | ¦  «        S #  Y nxY wdŠt          | ¦  «        S )NT)rN   Úid)rO   Ú_use_ids    €r@   rQ   z,instances.<locals>._not_hashable.<locals>.go¥   s>   ø€ ð ð 	#ðÝ# C™yœyÐ(øðØ˜øøøð
 #�Gå˜#‘w”w�rR   )rT   )rP   rJ   rK   rQ   rU   s   ` ` @r@   Ú_not_hashablez instances.<locals>._not_hashableŒ   sd   øøø€ Øð (	ðð ð ð ð ð ð  ˆIØð 	ÝˆIàˆGðð ð ð ð ð  ˆIrB   c                óº   •— g | ]W}‰j         r‰nK|j        s5|j        s|j        r' ‰|j        j        ‰j        j        |j        ¬ ¦  «        n|j        rt          nd‘ŒXS )rI   N)	Ú	yield_perÚuse_id_for_hashÚ_non_hashable_valueÚ_null_column_typeÚcolumnÚtypeÚload_optionsÚ_legacy_uniquingrT   )r>   ÚentrH   rV   r7   s     €€€r@   rA   zinstances.<locals>.<listcomp>·   s�   ø€ ð ð ð ð" ð Ô ðˆJˆJð Ô+ð	9ð Ô0ð	9ð 58Ô4Ið	9��Ø”J”OØ"Ô/Ô@Ø!Ô3ðñ ô ð ð Ô.Ð8•R�R°Dðð ð rB   )Ú_unique_filtersc              3  ót  •‡K  — 	 | }i ‰	_         |r‰
                     |¦  «        }|sd S n‰
                     ¦   «         }‰r‰d         Šˆfd„|D ¦   «         }nˆfd„|D ¦   «         }‰rÈ|r&t          ‰	j                             ¦   «         ¦  «        }‰	j        rdt          ‰	j                             ¦   «         ¦  «        }‰	j                             ¦   «          |D ]\  }}|                     ‰	|¦  «         Œ‰	j        °d|r3‰	j                             ¦   «          ‰	j                             |¦  «         |V — |sd S �Œ4)NTr   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r<   r<   )r>   ÚrowÚprocs     €r@   rA   z-instances.<locals>.chunks.<locals>.<listcomp>ß   s!   ø€ Ð3Ð3Ð3 c˜˜˜S™	œ	Ð3Ð3Ð3rB   c                óH   •‡— g | ]Št          ˆfd „‰D ¦   «         ¦  «        ‘ŒS )c                ó&   •— g | ]} |‰¦  «        ‘ŒS r<   r<   )r>   re   rd   s     €r@   rA   z8instances.<locals>.chunks.<locals>.<listcomp>.<listcomp>â   s!   ø€ Ð9Ð9Ð9¨˜4˜4 ™9œ9Ð9Ð9Ð9rB   )Útuple)r>   rd   Úprocesss    @€r@   rA   z-instances.<locals>.chunks.<locals>.<listcomp>á   sD   øø€ ð ð ð Ø?B•EÐ9Ð9Ð9Ð9°Ð9Ñ9Ô9Ñ:Ô:ðð ð rB   )	ÚpartialsÚ	fetchmanyÚ_raw_all_rowsÚlistÚpost_load_pathsÚitemsÚclearÚinvokeÚupdate)ÚsizerX   ÚfetchÚrowsÚtop_level_post_loadsÚ
post_loadsÚpathÚ	post_loadre   r7   r5   Úis_top_levelri   Úsingle_entitys           @€€€€€r@   Úchunkszinstances.<locals>.chunksÏ   s°  øøè è € ð/	ØˆIà!ˆGÔàð /Ø×(Ò(¨Ñ3Ô3�àð Ø�Eðð ×,Ò,Ñ.Ô.�àð Ø˜q”z�Ø3Ð3Ð3Ð3¨UÐ3Ñ3Ô3��ðð ð ð ØFKðñ ô �ð ð IØð õ ,0ØÔ/×5Ò5Ñ7Ô7ñ,ô ,Ð(ð Ô-ð 8Ý!% gÔ&=×&CÒ&CÑ&EÔ&EÑ!FÔ!F�JØÔ+×1Ò1Ñ3Ô3Ð3Ø+5ð 8ð 8™˜˜iØ!×(Ò(¨°$Ñ7Ô7Ð7Ð7ð	 Ô-ð 8ð ð IØÔ+×1Ò1Ñ3Ô3Ð3ØÔ+×2Ò2Ð3GÑHÔHÐHàˆJˆJˆJàð Ø�ñ_/	rB   Úprebuffer_rowsc                ó"   •— t          ‰¦  «        S ©N)Úiter)rs   Ú_prebuffereds    €r@   r|   zinstances.<locals>.chunks  s   ø€ Ý˜Ñ%Ô%Ð%rB   )Úsource_supports_scalarsÚrawÚdynamic_yield_per)ÚfilteredÚis_single_entityc                ó*   — t          j        d¦  «        ‚)Nz~The unique() method must be invoked on this Result, as it contains results that include joined eager loads against collectionsrD   )rO   s    r@   Úrequire_uniquez!instances.<locals>.require_unique  s   € ÝÔ,ð&ñô ð rB   )!Ú
_new_runidÚrunidÚtop_level_contextrn   Úcompile_stateÚ_has_mapper_entitiesr^   Ú_only_return_tuplesÚlenÚ	_entitiesÚsupports_single_entityrm   ÚziprX   Úloaders_require_bufferingÚloaders_require_uniquingrE   rF   Ú	Exceptionr   Úsafe_reraiseÚcloser!   Úexecution_optionsÚgetr   r7   Ú_is_server_sideÚ_attributesÚunionÚdictÚmulti_row_eager_loadersÚ_unique_filter_state)r5   r7   rŒ   r…   ÚlabelsÚextraÚunique_filtersÚrow_metadatar|   Úresultrˆ   rH   rV   r�   rz   ri   r{   s   ``         @@@@@@r@   Ú	instancesr¥   N   sd  øøøøøøøø€ õ ‘L”L€G„MàÔ ð %ØˆØ")Ô";Ô"KˆÔÐàˆØ"$ˆÔàÔ)€MØÔ1€HàÔ Ô4Ð4ð 	>Ý�Ô'Ñ(Ô(¨AÒ-ð	>àÔ# AÔ&Ô=ð ðÝ#'Ýðð ð ð ð à(/Ô(=Ô(Gðñ ô ðñ$
ô $
Ñ ˆ�&˜%ð Ôð 		ØÔ-ð		àÔ/ð		õ Ô,ð=ñô ð øøõ ð ð ð ÝÔÑ Ô ð 	ð 	Ø�LŠL‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øøðøøøð
ð 
ð 
ð
 +0¸5ð )ð )ð )ð )ð )ðVð ð ð ð ð ð" Ô(Ô2ð#ñ ô €Nõ( (Ø� ~ðñ ô €Lð0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ðd Ô ×$Ò$Ð%5°uÑ=Ô=ð &õ ˜F˜F 4™LœLÑ)Ô)ˆð	&ð 	&ð 	&ð 	&ð 	&õ #ØØØ -ØØ œ.Ô8ðñ ô €Fð  Ô+×1Ò1Ý�h°Ð?Ñ?Ô?ñô €FÔð
 ÔÔ4ð 	=ð	ð 	ð 	ð (,¨^Ð&<ˆÔ#àÔð ,Ø×Ò˜Ô*Ñ+Ô+Ð+à€Ms7   ÂAC! Ã!D-Ã>DÄD-ÄD#	Ä#D-Ä&D#	Ä'D-Ä,D-zsqlalchemy.orm.contextTc           	     óº  ‡— t           j        j        Š|r|                      ¦   «          ‰j                             |d¬¦  «        }| j        }	 d| _        ˆfd„t          |j        ¦  «        D ¦   «         }d„ |j        D ¦   «         }t          |d„ |j        D ¦   «         ¦  «        }g }	| 
                    ¦   «         D ]z}
|D ]W}|
|         �M|                      t          j        |
|         ¦  «        t          j        |
|         ¦  «        |i i ¬¦  «        |
|<   ŒX|	                      ||
¦  «        ¦  «         Œ{|                     |	¦  «        || _        S # || _        w xY w)az  Merge a :class:`_engine.FrozenResult` back into a :class:`_orm.Session`,
    returning a new :class:`_engine.Result` object with :term:`persistent`
    objects.

    See the section :ref:`do_orm_execute_re_executing` for an example.

    .. seealso::

        :ref:`do_orm_execute_re_executing`

        :meth:`_engine.Result.freeze`

        :class:`_engine.FrozenResult`

    F©rJ   c                óD   •— g | ]\  }}t          |‰j        ¦  «        ¯|‘ŒS r<   ©Ú
isinstanceÚ_MapperEntity©r>   ÚiÚeÚquerycontexts      €r@   rA   z'merge_frozen_result.<locals>.<listcomp>I  s@   ø€ ð 
ð 
ð 
á��1Ý˜!˜\Ô7Ñ8Ô8ð
Øð
ð 
ð 
rB   c                ó   — g | ]	}|j         ‘Œ
S r<   ©Ú_label_name©r>   r`   s     r@   rA   z'merge_frozen_result.<locals>.<listcomp>N  s   € Ð9Ð9Ð9 C�”Ð9Ð9Ð9rB   c                ó   — g | ]	}|j         ‘Œ
S r<   ©Ú_extra_entitiesr³   s     r@   rA   z'merge_frozen_result.<locals>.<listcomp>Q  s   € Ð@Ð@Ð@¨3�3Ô&Ð@Ð@Ð@rB   N©ÚloadÚ
_recursiveÚ_resolve_conflict_map)r   Ú	preloadedÚorm_contextÚ
_autoflushÚORMSelectCompileStateÚ_create_entities_collectionÚ	autoflushÚ	enumerater�   r   Úrewrite_rowsÚ_merger   Úinstance_stateÚinstance_dictÚappendÚwith_new_rows)ÚsessionÚ	statementÚfrozen_resultr¸   ÚctxrÀ   Úmapped_entitiesÚkeysÚkeyed_tupler¤   Únewrowr­   r¯   s               @r@   Úmerge_frozen_resultrÐ   +  s§  ø€ õ" ”>Ô-€Làð à×ÒÑÔÐà
Ô
,×
HÒ
HØ˜%ð Iñ ô €Cð Ô!€Ið&Ø!ˆÔð
ð 
ð 
ð 
å! #¤-Ñ0Ô0ð
ñ 
ô 
ˆð
 :Ð9¨3¬=Ð9Ñ9Ô9ˆå"ØÐ@Ð@°#´-Ð@Ñ@Ô@ñ
ô 
ˆð ˆØ#×0Ò0Ñ2Ô2ð 	/ð 	/ˆFØ$ð ð �Ø˜!”9Ð(Ø '§¢Ý"Ô1°&¸´)Ñ<Ô<Ý"Ô0°¸´Ñ;Ô;Ø!Ø#%Ø.0ð !/ñ !ô !�F˜1‘Iøð �MŠM˜+˜+ fÑ-Ô-Ñ.Ô.Ð.Ð.à×*Ò*¨6Ñ2Ô2à%ˆÔÐø˜IˆÔÐ%Ð%Ð%Ð%s   ÁC<E Å	Ez:func:`_orm.merge_result`zyThe function as well as the method on :class:`_orm.Query` is superseded by the :func:`_orm.merge_frozen_result` function.)ÚalternativeÚqueryú
Query[Any]Úiteratorú>Union[FrozenResult, Iterable[Sequence[Any]], Iterable[object]]r¸   Úboolú"Union[FrozenResult, Iterable[Any]]c           	     ó  ‡‡‡— t           j        j        Š| j        Š‰r‰                     ¦   «          t          |t          ¦  «        r|}t          |j        ¦  «        }nd}‰j	         
                    | d¬¦  «        }‰j        }	 d‰_        | ot          |j        ¦  «        dk    }|r@t          |j        d         ‰j        ¦  «        rˆˆfd„|D ¦   «         }nît          |¦  «        }nÞˆfd„t!          |j        ¦  «        D ¦   «         }g }d	„ |j        D ¦   «         }	t#          |	d
„ |j        D ¦   «         ¦  «        }
|D ]‰}t          |¦  «        }|D ]W}||         �M‰                     t'          j        ||         ¦  «        t'          j        ||         ¦  «        ‰i i ¬¦  «        ||<   ŒX|                      |
|¦  «        ¦  «         ŒŠ|r|                     |¦  «        |‰_        S t          |¦  «        |‰_        S # |‰_        w xY w)z Merge a result into the given :class:`.Query` object's Session.

    See :meth:`_orm.Query.merge_result` for top-level documentation on this
    function.

    NTr§   Fr   r   c           	     óŒ   •— g | ]@}‰                      t          j        |¦  «        t          j        |¦  «        ‰i i ¬ ¦  «        ‘ŒAS )r·   )rÃ   r   rÄ   rÅ   )r>   Úinstancer¸   rÈ   s     €€r@   rA   z merge_result.<locals>.<listcomp>“  sc   ø€ ð 	ð 	ð 	ð !ð —N’NÝ"Ô1°(Ñ;Ô;Ý"Ô0°Ñ:Ô:Ø!Ø#%Ø.0ð #ñ ô ð	ð 	ð 	rB   c                óD   •— g | ]\  }}t          |‰j        ¦  «        ¯|‘ŒS r<   r©   r¬   s      €r@   rA   z merge_result.<locals>.<listcomp>   s@   ø€ ð ð ð á�A�qÝ˜a Ô!;Ñ<Ô<ðØðð ð rB   c                ó   — g | ]	}|j         ‘Œ
S r<   r±   r³   s     r@   rA   z merge_result.<locals>.<listcomp>¦  s   € Ð=Ð=Ð=¨�C”OÐ=Ð=Ð=rB   c                ó   — g | ]	}|j         ‘Œ
S r<   rµ   r³   s     r@   rA   z merge_result.<locals>.<listcomp>©  s   € ÐDÐDÐD¨s�sÔ*ÐDÐDÐDrB   r·   )r   r»   r¼   rÈ   r½   rª   r    r€   Údatar¾   r¿   rÀ   r�   r�   r«   rm   rÁ   r   rÃ   r   rÄ   rÅ   rÆ   rÇ   )rÒ   rÔ   r¸   rÊ   rË   rÀ   r{   r¤   rÌ   rÍ   rÎ   rd   rÏ   r­   r¯   rÈ   s     `           @@r@   Úmerge_resultrß   g  s  øøø€ õ$ ”>Ô-€LàŒm€GØð à×ÒÑÔÐõ �(�LÑ)Ô)ð Ø ˆÝ˜Ô*Ñ+Ô+ˆˆàˆà
Ô
,×
HÒ
HØ�dð Iñ ô €Cð Ô!€Ið1&Ø!ˆÔØ)Ð)ÐE­c°#´-Ñ.@Ô.@ÀAÒ.Eˆàð &	3Ý˜#œ-¨Ô*¨LÔ,FÑGÔGð (ð	ð 	ð 	ð 	ð 	ð %-ð	ñ 	ô 	��õ ˜h™œ��ðð ð ð å% c¤mÑ4Ô4ðñ ô ˆOð
 ˆFØ=Ð=¨s¬}Ð=Ñ=Ô=ˆDå&ØÐDÐD°c´mÐDÑDÔDñô ˆKð  ð 3ð 3�Ý˜c™œ�Ø(ð ð �AØ˜a”yÐ,Ø$+§N¢NÝ&Ô5°f¸Q´iÑ@Ô@Ý&Ô4°V¸A´YÑ?Ô?Ø!%Ø')Ø24ð %3ñ %ô %˜˜q™	øð —’˜k˜k¨&Ñ1Ô1Ñ2Ô2Ð2Ð2àð 	 Ø ×.Ò.¨vÑ6Ô6ð &ˆÔÐõ ˜‘<”<à%ˆÔÐø˜IˆÔÐ%Ð%Ð%Ð%s   ÂEG: Ç$G: Ç:	HrÈ   r,   Úmapperú
Mapper[_O]Úkeyú_IdentityKeyType[_O]Úpassiver   ú)Union[LoaderCallableStatus, Optional[_O]]c                ó²  — | j                              |¦  «        }|�ºt          j        |¦  «        }|j        r&|j                             |¦  «        st          j        S |j        rp|t          j	        z  st          j
        S |t          j        z  s|S 	 |                     ||¦  «         n,# t          j        $ r |                      |g¦  «         Y dS w xY w|S dS )zqLook up the given key in the given session's identity map,
    check the object for expired state if found.

    N)Úidentity_mapr™   r   rÄ   Úinheritsrà   ÚisaÚPASSIVE_CLASS_MISMATCHÚexpiredÚSQL_OKÚPASSIVE_NO_RESULTÚRELATED_OBJECT_OKÚ_load_expiredÚorm_excÚObjectDeletedErrorÚ_remove_newly_deleted)rÈ   rà   râ   rä   rÚ   Ústates         r@   Úget_from_identityrô   Á  sû   € ð Ô#×'Ò'¨Ñ,Ô,€HØÐÝÔ)¨(Ñ3Ô3ˆàŒ?ð 	5 5¤<×#3Ò#3°FÑ#;Ô#;ð 	5ÝÔ4Ð4ð Œ=ð 	Ø�ZÔ.Ñ.ð  å!Ô3Ð3Ø�zÔ;Ñ;ð  ð
  �ðØ×#Ò# E¨7Ñ3Ô3Ð3Ð3øÝÔ-ð ð ð Ø×-Ò-¨u¨gÑ6Ô6Ð6Ø�t�tðøøøð ˆàˆts   ÂB) Â)%CÃCNF)	r^   Úrefresh_stateÚwith_for_updateÚonly_load_propsÚno_autoflushÚbind_argumentsr˜   Úrequire_pk_colsÚis_user_refreshrÉ   úUnion[Select, FromStatement]úOptional[_IdentityKeyType]r^   úOptional[Sequence[ORMOption]]rõ   úOptional[InstanceState[Any]]rö   úOptional[ForUpdateArg]r÷   úOptional[Iterable[str]]rø   rù   úMapping[str, Any]r˜   r/   rú   rû   c       	        óh   — |�|d         }|d         }ndx}}t          | ||||||||||	|
|¬¦  «        S )z.Load the given identity key from the database.Nr   r   ©
r^   rõ   rö   r÷   Úidentity_tokenrø   rù   r˜   rú   rû   )Úload_on_pk_identity)rÈ   rÉ   râ   r^   rõ   rö   r÷   rø   rù   r˜   rú   rû   Úidentr  s                 r@   Úload_on_identr  ç  se   € ð  €Ø�A”ˆØ˜Qœˆˆà!%Ð%ˆ�åØØØØ!Ø#Ø'Ø'Ø%Ø!Ø%Ø+Ø'Ø'ðñ ô ð rB   r  Úprimary_key_identityúOptional[Tuple[Any, ...]]r  úOptional[Any]c       
   	     óˆ  ‡‡— |}|                      ¦   «         }|j        rJ ‚|€t          j        }|j        t
          j        u rt          j        }n|j        }|�Ä|j	        d         }|j
        \  }Šd|v rjˆfd„t          |j        |¦  «        D ¦   «         }t          j        ||¦  «        }t          |¦  «        t          |¦  «        k    rt!          j        d¦  «         t          j        |ddi¦  «        f|_        ˆfd„t          ||j        ¦  «        D ¦   «         }nd}|�
d}||_        n|j        �d}|j        |_        nd}|rœ|rš‰st+          j        d	¦  «        ‚‰j        j        }ˆfd
„|                     |¦  «        D ¦   «         }|r t+          j        d|› d‰j        › d�¦  «        ‚‰j        j        }|D ]&}||         j        r|                     |¦  «        } nŒ'‰r'‰j        r |d‰j        j         iz  } |j!        ‰j        Ž }tE          ||||‰||¬¦  «        \  }}||_        d|_#        |r|ddiz  }t           j$         %                    |
d|i¦  «        }
|  &                    |||
|	¬¦  «         '                    ¦   «          (                    ¦   «         }	 | )                    ¦   «         S # tT          j+        $ r Y dS w xY w)z6Load the given primary key identity from the database.NÚplugin_subjectc                ó4   •— h | ]\  }}|­‰|         j         ’ŒS r   ©râ   )r>   ÚcolÚvalueÚ_get_paramss      €r@   ú	<setcomp>z&load_on_pk_identity.<locals>.<setcomp>8  s2   ø€ ð ð ð á�C˜Ø�=ð ˜CÔ Ô$à �=�=rB   zofully NULL primary key identity cannot load any object.  This condition may raise an error in a future release.Ú
_orm_adaptTc                ó2   •— i | ]\  }}‰|         j         |“ŒS r<   r  )r>   Úid_valÚprimary_keyr  s      €r@   ú
<dictcomp>z'load_on_pk_identity.<locals>.<dictcomp>K  s7   ø€ ð 
ð 
ð 
á#�˜ð ˜Ô$Ô(¨&ð
ð 
ð 
rB   Fz9refresh_state is required when require_pk_cols is presentc                ó\   •— h | ](}‰j         |         j                             ¦   «         ¯&|’Œ)S r<   )ÚattrsÚhistoryÚhas_changes)r>   râ   rõ   s     €r@   r  z&load_on_pk_identity.<locals>.<setcomp>d  sF   ø€ ð 
ð 
ð 
àØÔ" 3Ô'Ô/×;Ò;Ñ=Ô=ð
Øð
ð 
ð 
rB   z7Please flush pending primary key changes on attributes z for mapper z! before proceeding with a refreshÚ_current_path)Úversion_checkr÷   rõ   r  rû   r½   Ú_sa_orm_load_options)Úparamsr˜   rù   ),Ú_cloneÚ_is_lambda_elementr   Údefault_load_optionsÚ_compile_optionsr%   Údefault_select_compile_optionsr   Údefault_compile_optionsÚ_propagate_attrsÚ_get_clauser’   r  Úsql_utilÚadapt_criterion_to_nullr�   r   ÚwarnÚ_deep_annotateÚ_where_criteriaÚ_for_update_argrE   ÚArgumentErrorrà   Ú_primary_key_propkeysÚ
differencerF   Ú_propsÚ_is_relationshiprœ   r^   Ú	load_pathÚparentÚoptionsÚ_set_get_optionsÚ	_order_byr&   Ú
merge_withÚexecuteÚuniqueÚscalarsÚonerð   ÚNoResultFound)rÈ   rÉ   r	  r^   rõ   rö   r÷   r  rø   rù   r˜   rú   rû   rÒ   ÚqÚcompile_optionsrà   r(  Únonesr   r  Úrefresh_state_prokeysr  ÚmpÚpÚnew_compile_optionsr¤   r  s       `                      @r@   r  r    sÕ  øø€ ð$ €EØ�Š‰Œ€AàÔ#Ð#Ð#Ð#àÐÝ#Ô8ˆð 	Ô"ÝÔ5ð	6ð 	6õ *ÔAˆˆà#Ô4ˆàÐ'ØÔ'Ð(8Ô9ˆà%+Ô%7Ñ"ˆ�kð Ð'Ð'Ð'ðð ð ð å"% fÔ&8Ð:NÑ"OÔ"Oðñ ô ˆEõ #Ô:¸;ÈÑNÔNˆKå�5‰zŒz�SÐ!5Ñ6Ô6Ò6Ð6Ý”	ðñô ð õ Ô# K°,ÀÐ1EÑFÔFð
ˆÔð
ð 
ð 
ð 
å'*Ø$ fÔ&8ñ(ô (ð
ñ 
ô 
ˆˆð ˆàÐ"ØˆØ+ˆÔÐØ	Ô	Ð	*ØˆØ!Ô1ˆÔÐàˆàð ?˜?ð ?Øð 	ÝÔ&ØKñô ð ð !.Ô 4Ô JÐð
ð 
ð 
ð 
à,×7Ò7¸ÑHÔHð
ñ 
ô 
ˆð
 ð 	õ Ô,ð,àð,ð ,à,9Ô,@ð,ð ,ð ,ñô ð ðD Ô!Ô(ˆØ ð 	ð 	ˆAØ�!ŒuÔ%ð Ø"7×"=Ò"=¸oÑ"NÔ"N�Ø�ðð ð 3˜Ô3ð 3Ø˜O¨]Ô-DÔ-KÐLÑLˆØˆAŒI�}Ô1Ð2ˆå(8ØØØ#Ø'Ø#Ø%Ø'ð)ñ )ô )Ñ%Ð˜ð -€AÔØ€A„Kàð .Ø˜ uÐ-Ñ-ˆåœ×2Ò2ØÐ2°LÐAñô Ðð 	�ŠØØØ/Ø)ð	 	ñ 	
ô 	
÷ 
Š‰Œß	Š‰Œð ðØ�zŠz‰|Œ|ÐøÝÔ ð ð ð Øˆtˆtðøøøs   ÊJ. Ê.KË Kc                ó¦   — i }i }	|r||	d<   |r||	d<   |r
||	d<   d|d<   |rt          |¦  «        |d<   |r||	d<   |r||	d<   |	r||	z  }|r| |z  } | |fS )	NÚ_version_checkÚ_populate_existingÚ_refresh_stateTÚ_for_refresh_stateÚ_only_load_propsÚ_identity_tokenÚ_is_user_refresh)Ú	frozenset)
Úcompile_optÚload_optÚpopulate_existingr  r÷   rõ   r  rû   r@  r^   s
             r@   r7  r7  Æ  sÃ   € ð €OØ€LØð 7Ø)6ˆÐ%Ñ&Øð ?Ø->ˆÐ)Ñ*Øð 5Ø)6ˆÐ%Ñ&Ø04ˆÐ,Ñ-Øð IÝ.7¸Ñ.HÔ.HˆÐ*Ñ+Øð 9Ø*8ˆÐ&Ñ'àð ;Ø+:ˆÐ'Ñ(Øð !Ø�LÑ ˆØð 'Ø�Ñ&ˆà˜Ð Ð rB   c	           	     ó~  — |r|                      |¦  «        }
n|j        }
i }|                     | j        d|¦  «         |ot	          |¦  «        dk    o|d         j        }|
D ]$}|r
|j        |vrŒ |j        | |||f||||dœ|	¤Ž Œ%|�2||j        ur+|r|j	        |         }n|}| 
                    |¦  «         d S d S d S )NÚmemoized_setupsr   éÿÿÿÿ)r÷   Úcolumn_collectionÚmemoized_populatorsÚcheck_for_adapt)Ú_iterate_polymorphic_propertiesÚ_polymorphic_propertiesÚsetr   r�   Úis_aliased_classrâ   ÚsetupÚpolymorphic_onÚcolumnsrÆ   )rŒ   rà   r?   rx   ÚadapterrU  Úwith_polymorphicr÷   Úpolymorphic_discriminatorÚkwÚpoly_propertiesÚquick_populatorsrW  r  Úpds                  r@   Ú_setup_entity_queryrf  è  s<  € ð ð 9Ø ×@Ò@Øñ
ô 
ˆˆð !Ô8ˆàÐà‡H‚Hˆ]Ô%Ð'8Ð:JÑKÔKÐKð ÐN¥# d¡)¤)¨q¢.ÐN°T¸"´XÔ5N€Oà ð 
ð 
ˆØð 	˜uœy°Ð?Ð?ØØˆŒØØØØð	
	
ð
 ,Ø/Ø 0Ø+ð
	
ð 
	
ð ð
	
ð 
	
ð 
	
ð 
	
ð 	"Ð-Ø%¨VÔ-BÐBÐBàð 	+Ø”Ð!:Ô;ˆBˆBà*ˆBØ× Ò  Ñ$Ô$Ð$Ð$Ð$ð 	.Ð-ØBÐBrB   c                óP   — t          j        dt          | ¦  «        ›d�¦  «         d S )NzLoading context for aW   has changed within a load/refresh handler, suggesting a row refresh operation took place. If this event handler is expected to be emitting row refresh operations within an existing load or refresh operation, set restore_load_context=True when establishing the listener to ensure the context remains unchanged when the event handler completes.)r   r+  r   )ró   s    r@   Ú_warn_for_runid_changedrh    s:   € Ý„I€Iõ !*¨%Ñ 0Ô 0Ð 0Ð 0ð	3ñô ð ð ð rB   c
                ó|
  ‡‡‡‡‡‡ ‡!‡"‡#‡$‡%‡&‡'‡(‡)‡*‡+‡,‡-‡.‡/‡0‡1‡2‡3‡4— ‰j         Š ‰j        }
d‰f}|                     |
j        |d¦  «        }|�€ä‰j        }‰�!|                     ˆfd„‰D ¦   «         ¦  «        }|                     ‰j        dt          ¦  «        }g }g g g g g g dœ}‰€-‰j        }‰rˆfd„|D ¦   «         }|                     |¦  «        Š,ndŠ,||‰,dœ}|D �]7}||v �r||         }|t          u r(|d          
                    |j        |j        f¦  «         ŒA|t          u r#|d	          
                    |j        d
f¦  «         Œm|t          u r(|d          
                    |j        |j        f¦  «         Œžd}‰r%‰j        |         }|�|                     |d
¦  «        }|s|                     |d
¦  «        }|r$|d          
                    |j        |f¦  «         �Œ|                     ‰| |‰|‰|¦  «         �Œ"| 
                    |¦  «         �Œ9|                     |
j        ||¦  «         |d         }d„ |                     ¦   «         D ¦   «         Š*|d         D ]}|                     ‰| |‰|‰‰*¦  «         Œ‰j        Š-‰j        j        j        r‰j        j        |z   n|Š&‰j        j        Š2‰j        p‰j        Š)t9          ‰j        j        j        ¦  «        Š%t9          ‰j        j        j         ¦  «        Š.t9          ‰j        j        j!        ¦  «        Š(‰(r‰j        j        j!        Š't          j"        Š#t          j#        Š"‰j        j$        Š1‰j%        Š0‰j&        Š!‰j'        Š3‰3r0‰j(        }|�%‰r‰j        |         }|                     |¦  «        Š4ndŠ4‰sõ|	�ód|j        f}|‰j        v r/‰j        |         j)        dk    r‰j        |         j*        d         }nd}‰ +                    ||	¦  «        }|r˜||	ur”‰�J ‚|j,        r-g }|}|r&||	ur"| 
                    |¦  «         |j-        }|r||	u°"n|g}|D ]V}t\           /                    ‰‰&|¦  «        rŒta          ‰|||	|¦  «        }t\           1                    ‰‰&|j2        |||¦  «         ŒWt\           3                    ‰‰&‰¦  «        Š+‰r‰j        Š/‰/€‰ 4                    ‰¦  «        Š/n
dŠ/|d         Š,‰j5        rtl          j7        Š$ntl          j        Š$ˆˆ ˆ!ˆ"ˆ#ˆ$ˆ%ˆ&ˆ'ˆˆˆ(ˆ)ˆ*ˆ+ˆ,ˆ-ˆ.ˆ/ˆˆ0ˆ1ˆ2ˆ3ˆ4fd„}‰j8        r#|	s!‰sˆ ˆ!ˆ$ˆ,fd„}ts          |‰| ‰|||‰|¦	  «	        }|S )z]Produce a mapper level row processor callable
    which processes rows into mapped instances.ÚgettersNc              3  ó2   •K  — | ]}‰j         |         V — Œd S r   )r2  )r>   Úkrà   s     €r@   ú	<genexpr>z&_instance_processor.<locals>.<genexpr>U  s;   øè è € ð 'ð 'Ø%&�”˜aÔ ð'ð 'ð 'ð 'ð 'ð 'rB   rS  )ÚnewÚquickÚdeferredÚexpireÚexistingÚeagerc                ó*   •— g | ]}‰j         |         ‘ŒS r<   )r^  )r>   Úcr_  s     €r@   rA   z'_instance_processor.<locals>.<listcomp>l  s    ø€ Ð?Ð?Ð?°!˜7œ?¨1Ô-Ð?Ð?Ð?rB   )Úcached_populatorsÚtodoÚprimary_key_getterrn  rq  Fro  rv  c                ó4   — i | ]\  }}|t          |¦  «        “ŒS r<   )rm   )r>   râ   r  s      r@   r  z'_instance_processor.<locals>.<dictcomp>¼  s$   € ÐOÐOÐO¡z s¨E�#•t˜E‘{”{ÐOÐOÐOrB   rw  Úloader))Úselectinload_polymorphicTÚentitiesrx  c                óò  •— ‰r1‰}|                      ¦   «         } ‰|¦  «        }|j        ‰ k    }d}d}nØ‰ ‰| ¦  «        ‰f}‰"                     |¦  «        }|�@ ‰|¦  «        } ‰|¦  «        }|j        ‰ k    }| }d}‰#r‰$r|st          ‰||| ‰$¦  «         ns ‰|d         ¦  «        rd S d}d}d}‰j                             ¦   «         } ‰|¦  «        } ‰|¦  «        }||_        ‰|_        ‰!|_        ‰" 	                    ||¦  «         ‰}‰|u rd}|s|�r0|r‰s|s‰|_
        ‰|_        t          ‰| |||‰||‰¦	  «	         |rê|j        }	|rj‰r:|j        j                             |‰¦  «         |j        |	k    rt!          |¦  «         ‰r+ ‰‰j        |¦  «         |j        |	k    rt!          |¦  «         n=‰r;|j        j                             |‰‰¦  «         |j        ‰ k    rt!          |¦  «         |s|j        r1‰r‰r|                     |‰¦  «         n|                     |‰"¦  «         ‰r‰                     |d¦  «         n­|j        }
|‰j        v}|r
|
s‰d         rrt3          ‰| |||‰|
‰¦  «        }|rZ‰rB|j        }	|j        j                             |‰|¦  «         |j        |	k    rt!          |¦  «         |                     ||¦  «         ‰r‰j        r‰                     |d¦  «         |S )NTFr   rs  )rO   rŠ   r™   Ú_validate_version_idÚclass_managerÚnew_instancerâ   r  Ú
session_idÚ_add_unpresentr^   r4  Ú_populate_fullÚmanagerÚdispatchr¸   rh  rÈ   ÚrefreshÚmodifiedÚ_commitÚ_commit_allÚ	add_stateÚunloadedrj   Ú_populate_partialÚinvoke_all_eagers)%rd   ró   rÚ   Údict_ÚisnewÚcurrentloadÚloaded_instanceÚidentitykeyÚeffective_populate_existingÚexisting_runidr‹  Úto_loadr7   Úidentity_classr  rÅ   rÄ   Úis_not_primary_keyÚload_evtr4  Úloaded_as_persistentrà   r÷   Úpersistent_evtrQ  Ú
populatorsry   rx  Úpropagated_loader_optionsÚrefresh_evtÚrefresh_identity_keyrõ   rŠ   r�  Úsession_identity_mapr  Úversion_id_getters%               €€€€€€€€€€€€€€€€€€€€€€€€€r@   Ú	_instancez&_instance_processor.<locals>._instance+  s3  ø€ àð 6	Hà!ˆEØ—y’y‘{”{ˆHØ!�M (Ñ+Ô+ˆEØ”K 5Ò(ˆEØˆKØ#ˆOˆOð
 Ø"Ð" 3Ñ'Ô'ØðˆKð ,×/Ò/°Ñ<Ô<ˆHàÐ#à&˜ xÑ0Ô0�Ø%˜ hÑ/Ô/�àœ uÒ,�Ø"'˜i�Ø"'�à ð Ð%6ð ¸{ð Ý(Ø  u¨cÐ3Dñô ð øð &Ð% k°!¤nÑ5Ô5ð  Ø˜4à�Ø"�Ø"&�à!Ô/×<Ò<Ñ>Ô>�à%˜ hÑ/Ô/�Ø&˜ xÑ0Ô0�Ø'�”	Ø'5�Ô$ð $.�Ô Ø$×3Ò3°E¸;ÑGÔGÐGà&7Ð#Ø˜EÐ!Ð!Ø*.Ð'ð
 ð [	2Ð5ñ [	2ð ð ,Ø)ð,Ø1Lð,ð &?�Ô"Ø"+�”åØØØØØØØØ+Øñ
ô 
ð 
ð ð Gð "'¤�à"ð 7Øð ;ØœÔ.×3Ò3°E¸7ÑCÔCÐCØ œ;¨.Ò8Ð8Ý3°EÑ:Ô:Ð:Ø%ð ;Ø,Ð,¨W¬_¸eÑDÔDÐDØ œ;¨.Ò8Ð8Ý3°EÑ:Ô:Ð:øØ ð 7Ø”MÔ*×2Ò2Ø˜w¨ñô ð ð ”{ eÒ+Ð+Ý/°Ñ6Ô6Ð6à.ð G°%´.ð GØ$ð G¨ð GØŸš e¨_Ñ=Ô=Ð=Ð=à×)Ò)¨%Ð1EÑFÔFÐFàð 1Ø×#Ò# E¨4Ñ0Ô0Ð0øð ”~ˆHØ Ô!1Ð1ˆEàð 2˜Hð 2¨
°7Ô(;ð 2õ
 ,ØØØØØØØØñ	ô 	�ð ð 2Ø"ð ;Ø).¬˜ØœÔ.×6Ò6°u¸gÀwÑOÔOÐOØ œ;¨.Ò8Ð8Ý3°EÑ:Ô:Ð:à—M’M %¨Ñ1Ô1Ð1àð 2˜WÔ6ð 2Ø×#Ò# E¨5Ñ1Ô1Ð1àˆrB   c                óJ   •— ‰ ‰| ¦  «        ‰f} ‰|d         ¦  «        s|S d S )Nr   r<   )rd   r’  r–  r  r—  rx  s     €€€€r@   Úensure_no_pkz)_instance_processor.<locals>.ensure_no_pkÎ  sB   ø€ àØ"Ð" 3Ñ'Ô'ØðˆKð
 &Ð% k°!¤nÑ5Ô5ð Ø"Ð"à�trB   ):Ú_identity_classrŒ   r™   r   Ú	_prop_setÚintersectionr&   r  Ú_tuple_getterr   rÆ   râ   Ú_deferred_column_loaderr   r   Ú_raise_column_loaderr^  Ú_getterÚcreate_row_processorrZ  ro   rœ  Úcurrent_pathrx   rÈ   rç   rQ  Úalways_refreshrÖ   r  r…  r¸   r†  r™  rÄ   rÅ   Úhash_keyrŠ   r  r  Úversion_id_colÚstrategyÚ
local_optsÚ_should_selectin_loadÚ	is_mapperrè   ÚPostLoadÚpath_existsÚ_load_subclass_via_inÚcallable_for_pathrà   Úfor_contextÚ_identity_key_from_stateÚallow_partial_pksr   Ú
issupersetÚpolymorphic_mapÚ_decorate_polymorphic_switch)5r?   rà   r7   r¤   rx   r_  r÷   rõ   ra  Ú_polymorphic_fromrŒ   Ú
getter_keyrj  Úpropsrd  rw  rv  Úpk_colsÚpropr  ÚgetterÚadapted_colr¯  râ   Úoption_entitiesÚselectin_load_viaÚ_load_supersÚ_endmost_mapperÚ_selectinload_entityÚ	callable_r¡  r£  r–  r  rÅ   rÄ   r—  r˜  r4  r™  rš  rQ  r›  ry   rx  rœ  r�  rž  rŠ   r�  rŸ  r  r   s5    ``  ```                        @@@@@@@@@@@@@@@@@@@@@r@   Ú_instance_processorrË  +  sÇ  øøøøøøøøøøøøøøøøøøøøøøøøøø€ ð* Ô+€NØÔ)€Mð ˜VÐ$€JØ�hŠh�}Ô/°¸TÑBÔB€Gà�ð Ô ˆØÐ&Ø×&Ò&ð 'ð 'ð 'ð 'Ø*9ð'ñ 'ô 'ñ ô ˆEð  Ÿ8š8ØÔÐ 1µ:ñ
ô 
Ðð ˆàØØØØØð
ð 
Ðð Ð àÔ(ˆGàð @Ø?Ð?Ð?Ð?°wÐ?Ñ?Ô?�Ø!'×!5Ò!5°gÑ!>Ô!>ÐÐà!%Ðð "3ØØ"4ð
ð 
ˆð
 ð @	"ñ @	"ˆDØÐ'Ð'Ñ'à& tÔ,�ØÕ*Ð*Ð*Ø% eÔ,×3Ò3Øœ 4Ô#?Ð@ñô ð ð ð Õ1Ð1Ð1ð & hÔ/×6Ò6¸¼À%Ð7HÑIÔIÐIÐIØÕ,Ð,Ð,Ø% eÔ,×3Ò3Øœ 4Ô#<Ð=ñô ð ð ð "�FØð Hð* '.¤o°cÔ&:˜Ø&Ð2Ø%+§^¢^°KÀÑ%GÔ%G˜FØ!ð <Ø!'§¢°°UÑ!;Ô!;˜Øð Ø)¨'Ô2×9Ò9¸4¼8ÀVÐ:LÑMÔMÐMÑMð
 ×1Ò1Ø#Ø(Ø Ø"Ø"Ø#Ø-ñô ð ñ ð —’˜DÑ!Ô!Ð!Ñ!à�Š�Ô)¨:°wÑ?Ô?Ð?àÐ 3Ô4ÐàOÐOÐ5F×5LÒ5LÑ5NÔ5NÐOÑOÔO€JØ˜”ð 
ð 
ˆØ×!Ò!Ø�\ 4¨°¸À*ñ	
ô 	
ð 	
ð 	
ð !(Ô AÐð Ô Ô-Ô2ð	ˆÔÔ*¨TÑ1Ð1àð ð #œ?Ô7ÐàÔ1ÐJ°VÔ5JÐÝ�FÔ(Ô1Ô6Ñ7Ô7€HÝ�vÔ+Ô4Ô<Ñ=Ô=€KÝ˜'œ/Ô2ÔGÑHÔH€NØð MØ&œÔ7ÔLÐÝÔ.€NÝÔ,€MØ”Ô)€JØŒM€EØÔ+€NàÔ)€MØð %ØÔ.ˆØÐ%Øð AØ!(¤°Ô!@�Ø &§¢¨~Ñ >Ô >ÐÐà $Ðàð 3Ð.Ð:Ø˜œÐ#ˆà�'Ô$Ð$Ð$¨Ô);¸CÔ)@Ô)Ið N
ò *
ð *
ð &Ô0°Ô5Ô@ÀÔLˆOˆOà"ˆOØ"×8Ò8ØØñ
ô 
Ðð
 ð %	Ð!2Ð:KÐ!KÐ!Kð #Ð*Ð*Ð*à Ô*ð 
3Ø!�Ø"3�à#ð?à'Ð/@Ð@Ð@à ×'Ò'¨Ñ8Ô8Ð8Ø&5Ô&>�Oð	 $ð?à'Ð/@Ð@Ð@øð
 !2Ð2�à(4ð ð Ð$Ý×'Ò'Ø˜YÐ(<ñô ð ð Ý1ØØØ(Ø%Ø#ñô �	õ ×*Ò*ØØØ(Ô/Ø(ØØ(ñô ð ð õ ×$Ò$ W¨i¸ÑIÔI€Iàð ;Ø,Ô0ÐØÐ'ð $*×#BÒ#BØñ$ô $Ð øð  $Ðà$Ð%9Ô:ÐàÔð 4Ý&Ô1ÐÐå&Ô3Ðð^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð ^ð@ Ôð 
Ð&7ð 
Àð 
ð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		õ 1ØØØØØØØ%ØØñ

ô 

ˆ	ð ÐrB   c                óì   ‡‡‡	‡
‡‡— |j         Š
|j         }|j        d u}t          ‰
j        j        ¦  «        dk    Š|j        s|r‰
                     ||¦  «        \  ŠŠ	Šn‰
j        \  ŠŠ	Šˆˆ	ˆ
ˆˆˆfd„}|S )Nr   c                ó<  •— ‰sˆfd„|D ¦   «         }|sd S | j         }|j        r+‰                     |¦  «        }‰
                     |¦  «        }n‰}‰
}|f|j        z   |fz   } ‰j        |Ž }	| j        j        |	_        |	xj        d|j        iz  c_        | j        r|	 	                    d¬¦  «        }	| j
                             |	t          ˆfd„|D ¦   «         ¬¦  «        ¦  «                             ¦   «                              ¦   «                              ¦   «          d S )Nc                óR   •— g | ]#\  }}|j                              ‰¦  «        ¯||f‘Œ$S r<   )rà   Ú+_would_selectin_load_only_from_given_mapper)r>   ÚsÚvrà   s      €r@   rA   z:_load_subclass_via_in.<locals>.do_load.<locals>.<listcomp>  sG   ø€ ð ð ð á�A�qØ”8×GÒGÈÑOÔOðØ�A�ðð ð rB   r  T)rQ  c                óZ   •— g | ]'\  }}‰r|j         d          d         n|j         d          ‘Œ(S )r   r   r  )r>   ró   Ú
load_attrsÚzero_idxs      €r@   rA   z:_load_subclass_via_in.<locals>.do_load.<locals>.<listcomp>#  sF   ø€ ð ð ð á)˜˜zð (0ÐA�E”I˜a”L ”O�O°U´Y¸q´\ðð ð rB   )Úprimary_keys)rÒ   r5  Ú_prepend_pathÚ_with_optionsr6  rŒ   r&  r$  rQ  r˜   rÈ   r:  r�   r;  r<  Úall)r7   rx   ÚstatesÚ	load_onlyÚeffective_entityÚ
orig_queryÚenable_opt_lclÚdisable_opt_lclr6  Úq2Údisable_optÚ
enable_optrà   rÅ  r?  rÔ  s             €€€€€€r@   Údo_loadz&_load_subclass_via_in.<locals>.do_loadü  sk  ø€ Øð 	ðð ð ð à"ðñ ô ˆFð ð Ø�à”]ˆ
àŒ;ð 	*Ø'×5Ò5°dÑ;Ô;ˆNØ)×7Ò7¸Ñ=Ô=ˆOˆOà'ˆNØ)ˆOàÐ 
Ô 8Ñ8¸OÐ;MÑMð 	ð ˆQŒY˜Ð ˆà%Ô3ÔKˆÔØ
ÐÔ °´Ð=Ñ=ÐÔàÔ$ð 	>Ø×%Ò%¸Ð%Ñ=Ô=ˆBàŒ×ÒØÝðð ð ð à-3ðñ ô ðñ ô ñ	
ô 	
÷ Š&‰(Œ(—7’7‘9”9ŸSšS™UœU˜U˜U˜UrB   )rà   rè   r�   Úbase_mapperr  r[  Ú_subclass_load_via_inÚ_subclass_load_via_in_mapper)r7   rx   ÚentityÚpolymorphic_fromrÅ  Úpolymorphic_from_mapperÚnot_against_basemostrâ  rà  rá  rà   r?  rÔ  s       `   @@@@@r@   r¶  r¶  è  sÆ   øøøøøø€ ð Œ]€Fð
 /Ô5ÐØ2Ô;À4ÐGÐå�6Ô%Ô1Ñ2Ô2°aÒ7€HàÔð IÐ"6ð IØ%+×%AÒ%AØÐ$ñ&
ô &
Ñ"ˆˆ:�{�{ð &,Ô%HÑ"ˆˆ:�{ð,#ð ,#ð ,#ð ,#ð ,#ð ,#ð ,#ð ,#ð ,#ð ,#ð\ €NrB   c	                óB  — |r²| j         |_         |d         D ]\  }	}
 |
|¦  «        ||	<   Œ|rA|d         D ]7\  }	}|                     |	d ¦  «         |r|j                             |	¦  «         Œ8n*|d         D ]!\  }	}|r|j                             |	¦  «         Œ"|d         D ]\  }	} ||||¦  «         Œd S ||j        k    rD||_        |d         D ]\  }	}
|	|vr |
|¦  «        ||	<   Œ|d         D ]\  }	} ||||¦  «         Œd S |d         D ]\  }	} ||||¦  «         Œd S )Nro  rq  rn  rr  )rŠ   ÚpopÚexpired_attributesÚaddr4  )r7   rd   ró   rŽ  r�  r4  r‘  rQ  r›  râ   rÃ  Úset_callableÚ	populators                r@   rƒ  rƒ  -  sÓ  € ð ð ()à”mˆŒà% gÔ.ð 	%ð 	%‰KˆC�Ø˜ ™œˆE�#‰JˆJØð 	6Ø%/°Ô%9ð 6ð 6Ñ!��\Ø—	’	˜#˜tÑ$Ô$Ð$Øð 6ØÔ,×0Ò0°Ñ5Ô5Ð5øð6ð
 &0°Ô%9ð 6ð 6Ñ!��\Øð 6ØÔ,×0Ò0°Ñ5Ô5Ð5øà(¨Ô/ð 	)ð 	)‰NˆC�ØˆI�e˜U CÑ(Ô(Ð(Ð(ð	)ð 	)ð 
�e”oÒ	%Ð	%ð $ˆŒð & gÔ.ð 	)ð 	)‰KˆC�Ø˜%ÐÐØ#˜V C™[œ[��c‘
øð )¨Ô4ð 	)ð 	)‰NˆC�ØˆI�e˜U CÑ(Ô(Ð(Ð(ð	)ð 	)ð )¨Ô4ð 	)ð 	)‰NˆC�ØˆI�e˜U CÑ(Ô(Ð(Ð(ð	)ð 	)rB   c                ó  — |sO|r |d         D ]\  }}	||v r |	|¦  «        ||<   Œ| j         |         }
|d         D ]\  }}||
v r ||||¦  «         Œn�|}
|
| j         |<   |d         D ]\  }}	||
v r |	|¦  «        ||<   Œ|d         D ];\  }}||
v r2|                     |d ¦  «         |r|j                             |¦  «         Œ<|d         D ]\  }}||
v r ||||¦  «         Œ|d         D ]\  }}||vr ||||¦  «         Œ|
S )Nro  rr  rq  rn  rs  )rj   rë  rì  rí  )r7   rd   ró   rŽ  r�  r4  r‹  r›  râ   rÃ  r•  rï  rî  s                r@   rŒ  rŒ  f  sŸ  € ð ð -Øð 	-à)¨'Ô2ð -ð -‘��VØ˜(�?�?Ø!' ¨¡¤�E˜#‘JøàÔ" 5Ô)ˆØ(¨Ô4ð 	-ð 	-‰NˆC�Ø�gˆ~ˆ~Ø�	˜% ¨Ñ,Ô,Ð,øð	-ð ˆØ")ˆÔ˜Ñà% gÔ.ð 	)ð 	)‰KˆC�Ø�gˆ~ˆ~Ø#˜V C™[œ[��c‘
øØ!+¨HÔ!5ð 	6ð 	6ÑˆC�Ø�gˆ~ˆ~Ø—	’	˜#˜tÑ$Ô$Ð$Øð 6ØÔ,×0Ò0°Ñ5Ô5Ð5øØ(¨Ô/ð 	-ð 	-‰NˆC�Ø�gˆ~ˆ~Ø�	˜% ¨Ñ,Ô,Ð,øà$ WÔ-ð )ð )‰ˆˆYØ�hÐÐØˆI�e˜U CÑ(Ô(Ð(øà€NrB   c           
     óô   — |                       ||| j        ¦  «         ||¦  «        k    rNt          j        dt	          |¦  «        ›d|                       ||| j        ¦  «        ›d ||¦  «        ›d�¦  «        ‚d S )Nz
Instance 'z' has version id 'z3' which does not match database-loaded version id 'z'.)Ú_get_state_attr_by_columnr¯  rð   ÚStaleDataErrorr   )rà   ró   rŽ  rd   rÃ  s        r@   r~  r~  ‹  s¨   € Ø×'Ò'Øˆu�fÔ+ñô à	ˆ�‰Œòð õ Ô$Ð$õ ˜%Ñ Ô Ð Ð Ø×0Ò0Ø˜5 &Ô"7ñô ð ð ð ��s‘”��ðñ

ô 

ð 
	
ðð rB   c	                óÔ   ‡ ‡‡‡‡‡‡‡‡‡‡— |�|Šn‰j         Š‰€‰ S ‰r‰j        ‰         Šˆˆˆˆˆˆfd„}	t          j        |	¦  «        Š‰                     ‰¦  «        Šˆˆˆ ˆˆˆfd„}
|
S )Nc           	     óÆ   •— 	 ‰j         |          }|‰u rd S |                     ‰¦  «        sdS t          ‰|‰‰‰‰‰¬¦  «        S # t          $ r t	          d| z  ¦  «        ‚w xY w)NF)r¾  z*No such polymorphic_identity %r is defined)r¼  ré   rË  ÚKeyErrorÚAssertionError)ÚdiscriminatorÚ
sub_mapperr_  r7   rà   rx   r?   r¤   s     €€€€€€r@   Úconfigure_subclass_mapperz?_decorate_polymorphic_switch.<locals>.configure_subclass_mapper±  s£   ø€ ð	ØÔ/°Ô>ˆJð ˜VÐ#Ð#Ø�tØ—^’^ FÑ+Ô+ð Ø�uå&ØØØØØØØ"(ðñ ô ð øõ ð 	ð 	ð 	Ý Ø<¸}ÑLñô ð ð	øøøs   ƒA ÁA c           
     ó.  •—  ‰| ¦  «        }|�^‰|         }|r || ¦  «        S |du r: ‰| ¦  «        }|r+t          j        d|›d‰	›d‰j        |         ›d‰›�¦  «        ‚d S  ‰| ¦  «        S  ‰| ¦  «        }|rt          j        d|›d‰	›d�¦  «        ‚d S )NFzRow with identity key zG can't be loaded into an object; the polymorphic discriminator column 'z' refers to z-, which is not a sub-mapper of the requested z	' is NULL)rE   rF   r¼  )
rd   rø  r¡  r’  r£  rÃ  Úinstance_fnrà   Úpolymorphic_instancesr]  s
       €€€€€€r@   Úpolymorphic_instancez:_decorate_polymorphic_switch.<locals>.polymorphic_instanceÌ  sü   ø€ Ø˜˜s™œˆØÐ$Ø-¨mÔ<ˆIØð (Ø �y ‘~”~Ð%Ø˜eÐ#Ð#Ø*˜l¨3Ñ/Ô/�àð  Ý Ô4Ð4ð (˜K˜KØ*˜N˜NØ"Ô2°=ÔAÐAÐAØ"˜Fð	ñô ð ð  ˜4à"�{ 3Ñ'Ô'Ð'à&˜, sÑ+Ô+ˆKàð ÝÔ0Ð0ð *˜k˜k¨>¨>¨>ð;ñô ð ð �trB   )r]  r^  r   ÚPopulateDictrª  )rü  r7   r?   rà   r¤   rx   ra  r_  r£  rú  rþ  rÃ  rý  r]  s   `````` ``  @@@r@   r½  r½  œ  sÖ   øøøøøøøøøøø€ ð !Ð,Ø2ˆˆàÔ.ˆØÐØÐàð 9Ø œ¨Ô8ˆðð ð ð ð ð ð ð ð ð õ. !Ô-Ð.GÑHÔHÐà�^Š^˜NÑ+Ô+€Fð$ð $ð $ð $ð $ð $ð $ð $ð $ð $ðL  ÐrB   c                  ój   — e Zd ZdZdZd„ Zd„ Zd„ Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zd	S )
r´  z4Track loaders and states for "post load" operations.)ÚloadersrÙ  Ú	load_keysc                óR   — i | _         t          j        ¦   «         | _        d | _        d S r   )r  r   ÚOrderedDictrÙ  r  )Úselfs    r@   Ú__init__zPostLoad.__init__ú  s$   € ØˆŒÝÔ&Ñ(Ô(ˆŒØˆŒˆˆrB   c                ó   — || j         |<   d S r   )rÙ  )r  ró   Ú	overwrites      r@   rŠ  zPostLoad.add_stateÿ  s   € ð
 'ˆŒ�EÑÐÐrB   c                óF  ‡	— | j         sd S t          j                             |¦  «        }| j                             ¦   «         D ]D\  }}Š	}}}ˆ	fd„| j                              ¦   «         D ¦   «         }|r ||||| j        g|¢R i |¤Ž ŒE| j                              ¦   «          d S )Nc                ó\   •— g | ](\  }}|j         j                             ‰¦  «        ¯$||f‘Œ)S r<   )r„  rà   ré   )r>   ró   r  Úlimit_to_mappers      €r@   rA   z#PostLoad.invoke.<locals>.<listcomp>  sK   ø€ ð ð ð á$�E˜9Ø”=Ô'×+Ò+¨OÑ<Ô<ðØ˜	Ð"ðð ð rB   )	rÙ  r   ÚPathRegistryÚcoercer  Úvaluesro   r  rp   )
r  r7   rx   Úeffective_contextÚtokenrz  Úargrb  rÙ  r  s
            @r@   rq   zPostLoad.invoke  sò   ø€ ØŒ{ð 	ØˆFÝÔ)×0Ò0°Ñ6Ô6ˆð Œ\× Ò Ñ"Ô"ð	ð 	ñ 
ØØØØØØðð ð ð à(,¬×(9Ò(9Ñ(;Ô(;ðñ ô ˆFð
 ð Ø�Ø% t¨V°T´^ðØFIðð ð ØMOðð ð øð 	Œ×ÒÑÔÐÐÐrB   c                óZ   — |j                              |j        ¦  «        }|�	|r||_        |S r   )rn   r™   rx   r  )Úclsr7   rx   r÷   Úpls        r@   r¸  zPostLoad.for_context  s/   € àÔ$×(Ò(¨¬Ñ3Ô3ˆØˆ>˜oˆ>Ø*ˆBŒLØˆ	rB   c                óP   — |j         |j        v o||j        |j                  j        v S r   )rx   rn   r  )r  r7   rx   râ   s       r@   rµ  zPostLoad.path_exists$  s1   € ð ŒI˜Ô0Ð0ð BØ�wÔ.¨t¬yÔ9ÔAÐAð	
rB   c                ó¢   — |j         |j        v r|j        |j                  }nt          ¦   «         x}|j        |j         <   ||||||f|j        |<   d S r   )rx   rn   r´  r  )	r  r7   rx   r  r  Úloader_callabler  rb  r  s	            r@   r·  zPostLoad.callable_for_path+  sc   € ð Œ9˜Ô/Ð/Ð/ØÔ(¨¬Ô3ˆBˆBå6>±j´jÐ@ˆB�Ô(¨¬Ñ3àØØØØØð
ˆŒ
�5ÑÐÐrB   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r  rŠ  rq   Úclassmethodr¸  rµ  r·  r<   rB   r@   r´  r´  õ  s�   € € € € € Ø>Ð>à0€Iðð ð ð
'ð 'ð 'ðð ð ð. ðð ñ „[ðð ð
ð 
ñ „[ð
ð ð
ð 
ñ „[ð
ð 
ð 
rB   r´  c                óâ  ‡ — |j         }|s$t          j        dt          |¦  «        z  ¦  «        ‚t	          |t
          j        z  ¦  «        }|r,|                     ‰ j         	                    ¦   «         ¦  «        }‰ j
        rD‰ j        s=‰                      ||¦  «        }|�%t          ‰ |¦  «        }t          ||d|||¬¦  «        S t	          |j        ¦  «        }|r|j        }	nfˆ fd„‰ j        D ¦   «         }
|j                             |
¦  «        r$t%          j        dt          |¦  «        z  ¦  «        ‚‰                      |¦  «        }	t+          j        |	¦  «        r‰ j        rt+          j        |	¦  «        r$t3          j        dt          |¦  «        ¦  «         dS t          |t7          ‰ ¦  «                             t:          ¦  «        |	|||¬¦  «        }|r|€t          j        |¦  «        ‚dS dS )z4initiate a column-based attribute refresh operation.zQInstance %s is not bound to a Session; attribute refresh operation cannot proceedN)r÷   rõ   rø   c                ó4   •— g | ]}‰j         |         j        ‘ŒS r<   )Ú_columntopropertyrâ   )r>   r  rà   s     €r@   rA   z*load_scalar_attributes.<locals>.<listcomp>p  s1   ø€ ð 
ð 
ð 
Ø25ˆFÔ$ SÔ)Ô-ð
ð 
ð 
rB   z_Instance %s cannot be refreshed - it's not  persistent and does not contain a full primary key.zwInstance %s to be refreshed doesn't contain a full primary key - can't be refreshed (and shouldn't be expired, either).)rõ   r÷   rø   )rÈ   rð   ÚDetachedInstanceErrorr   rÖ   r   ÚNO_AUTOFLUSHr¦  r  rÍ   rè   ÚconcreteÚ_optimized_get_statementr   r  râ   r  rì  rE   rF   r¹  r   Úissubsetrº  r»  r   Úwarn_limitedr"   Úset_label_styler$   rñ   )rà   ró   Úattribute_namesrä   rÈ   rø   rÉ   ÚstmtÚhas_keyÚidentity_keyÚpk_attrsr¤   s   `           r@   Úload_scalar_attributesr-  =  s]  ø€ ð Œm€GØð 
ÝÔ+ð9Ý<EÀeÑ<LÔ<LñNñ
ô 
ð 	
õ
 ˜¥*Ô"9Ñ9Ñ:Ô:€Lð ð LØ)×6Ò6°v´|×7HÒ7HÑ7JÔ7JÑKÔKˆà„ð ˜vœð ð ×3Ò3°E¸?ÑKÔKˆ	ØÐ õ ! ¨Ñ3Ô3ˆDå ØØØØ /Ø#Ø)ðñ ô ð õ �5”9‰oŒo€Gàð >Ø”yˆˆð
ð 
ð 
ð 
Ø9?Ô9Kð
ñ 
ô 
ˆð Ô#×0Ò0°Ñ:Ô:ð 	ÝÔ,ð.å09¸%Ñ0@Ô0@ñAñô ð ð
 ×6Ò6°uÑ=Ô=ˆõ 	Ô˜<Ñ(Ô(ð	Ø17Ô1Ið	å	Ô	˜lÑ	+Ô	+ð	õ 	Ôð2õ �eÑÔñ		
ô 	
ð 	
ð 	ˆåØÝˆv‰Œ×&Ò&Õ'EÑFÔFØØØ'Ø!ðñ ô €Fð ð 0�6�>ÝÔ(¨Ñ/Ô/Ð/ð0ð 0�>�>rB   )r5   r6   r7   r   r8   r9   )T)rÒ   rÓ   rÔ   rÕ   r¸   rÖ   r8   r×   )
rÈ   r,   rà   rá   râ   rã   rä   r   r8   rå   )rÈ   r,   rÉ   rü   râ   rý   r^   rþ   rõ   rÿ   rö   r   r÷   r  rø   rÖ   rù   r  r˜   r/   rú   rÖ   rû   rÖ   )rÈ   r,   rÉ   rü   r	  r
  r^   rþ   rõ   rÿ   rö   r   r÷   r  r  r  rø   rÖ   rù   r  r˜   r/   rú   rÖ   rû   rÖ   )NNNNNN)NNN)NNNN)\r  Ú
__future__r   Útypingr   r   r   r   r   r	   r
   r   r   r   r   Ú r   r   rð   r   Úbaser   r   r   r   r7   r   r   r   r   r   r   rE   Úenginer   Úengine.resultr   r    r!   Úsqlr"   r)  Úsql.selectabler#   r$   r%   r&   Ú_typingr'   r(   Ú
interfacesr)   rà   r*   rÒ   r+   rÈ   r,   ró   r-   Úengine.cursorr.   Úengine.interfacesr/   r0   r1   r2   Úobjectr4   Úcounterr‰   ÚstrÚ_PopulatorDictr¥   Úpreload_modulerÐ   Úbecame_legacy_20rß   rô   r  r  r7  rf  rh  rË  r¶  rƒ  rŒ  r~  r½  r´  r-  r<   rB   r@   ú<module>r@     s/  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø (Ð (Ð (Ð (Ð (Ð (Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø )Ð )Ð )Ð )Ð )Ð )Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð àð Ø)Ð)Ð)Ð)Ð)Ð)Ø*Ð*Ð*Ð*Ð*Ð*Ø%Ð%Ð%Ð%Ð%Ð%ØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð Ø$Ð$Ð$Ð$Ð$Ð$Ø,Ð,Ð,Ð,Ð,Ð,Ø3Ð3Ð3Ð3Ð3Ð3Ø&Ð&Ð&Ð&Ð&Ð&ØÐÐÐÐÐà€WˆT˜ÐÑÔ€Ø€WˆT˜Ð Ñ Ô €ØˆTŒ\‰^Œ^€
ð �c˜4  c¨3 h¤Ô0Ð0Ô1€ðZð Zð Zð Zðz €ÔÐ-Ñ.Ô.ð8&ð 8&ð 8&ñ /Ô.ð8&ðv €ÔØðFðñ ô ð
 €ÔÐ-Ñ.Ô.ð ðQ&ð Q&ð Q&ð Q&ñ /Ô.ñô ðQ&ðh#ð #ð #ð #ðV 37Ø26Ø.2Ø/3ØØ(,¬Ø)-¬Ø!Ø!ð$ð $ð $ð $ð $ð $ðX 37Ø26Ø.2Ø/3Ø$(ØØ(,¬Ø)-¬Ø!Ø!ðuð uð uð uð uð uðv ØØØØØð!ð !ð !ð !ðR ØØ"ð4%ð 4%ð 4%ð 4%ðn	ð 	ð 	ð& ØØ"Øðzð zð zð zðzBð Bð BðJ3)ð 3)ð 3)ðr"ð "ð "ðJ
ð 
ð 
ð"V ð V ð V ðrE
ð E
ð E
ð E
ð E
ñ E
ô E
ð E
ðPU0ð U0ð U0ð U0ð U0rB   