§
    
 @g‘X  ã                   óÄ  — d dl 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   G d„ d ej!        ¦  «        Z" G d!„ d"ej!        ¦  «        Z# G d#„ d$ej$        ¦  «        Z% G d%„ d&ej!        ¦  «        Z& G d'„ d(ej$        ¦  «        Z' G d)„ d*ej!        ¦  «        Z( G d+„ d,ej!        ¦  «        Z) G d-„ d.ej*        e)¦  «        Z+ G d/„ d0ej!        ¦  «        Z, G d1„ d2ej$        ¦  «        Z-dS )3é    Né   )Útestingé   )Úassert_raises)Úconfig)Úengines)Úeq_)Úfixtures)Úis_not_none)Úis_true)Úne_)Úprovide_metadata)Úexpect_raises)Úexpect_raises_message)Úrequirements)Ú set_default_schema_on_connection)ÚColumn)ÚTableé   )Ú	bindparam)Údialects)Úevent)Úexc)ÚInteger)Úliteral_column)Úselect)ÚString)ÚCompiled)Úinspect_getfullargspecc                   ó   — e Zd ZdZd„ ZdS )ÚPingTestTc                 óê   — t           j                             ¦   «         5 }t          t           j        j                             |j        j        ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©N)r   ÚdbÚconnectr   ÚdialectÚdo_pingÚ
connectionÚdbapi_connection)ÚselfÚconns     úY/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/testing/suite/test_dialect.pyÚtest_do_pingzPingTest.test_do_ping%   s¤   € ÝŒZ×ÒÑ!Ô!ð 	 TÝÝ”
Ô"×*Ò*¨4¬?Ô+KÑLÔLñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Ÿ<A(Á(A,Á/A,N)Ú__name__Ú
__module__Ú__qualname__Ú__backend__r-   © ó    r,   r!   r!   "   s(   € € € € € Ø€Kðð ð ð ð r3   r!   c                   ót   — e Zd ZdZd„ Z ej         e e¦   «         ¦  «        ¬¦  «        d„ ¦   «         Zd„ Z	dS )ÚArgSignatureTestaË  test that all visit_XYZ() in :class:`_sql.Compiler` subclasses have
    ``**kw``, for #8988.

    This test uses runtime code inspection.   Does not need to be a
    ``__backend__`` test as it only needs to run once provided all target
    dialects have been imported.

    For third party dialects, the suite would be run with that third
    party as a "--dburi", which means its compiler classes will have been
    imported by the time this test runs.

    c               #   ó  K  — t           j        D ].} |                      d¦  «        st          j        d| z  ¦  «         Œ/t
          g}|rD|                     d¦  «        }|                     |                     ¦   «         ¦  «         |V — |°Bd S d S )NÚ_zsqlalchemy.dialects.%sr   )	r   Ú__all__Ú
startswithÚ	importlibÚimport_moduler   ÚpopÚextendÚ__subclasses__)ÚdÚstackÚclss      r,   Ú_all_subclassesz ArgSignatureTest._all_subclasses:   sª   è è € ÝÔ!ð 	Fð 	FˆAØ—<’< Ñ$Ô$ð FÝÔ'Ð(@À1Ñ(DÑEÔEÐEøå�
ˆàð 	Ø—)’)˜A‘,”,ˆCØ�LŠL˜×+Ò+Ñ-Ô-Ñ.Ô.Ð.ØˆIˆIˆIð ð 	ð 	ð 	ð 	ð 	r3   )Úparamsc              #   ó   K  — |j         V — d S r#   )Úparam)r*   Úrequests     r,   Úall_subclasseszArgSignatureTest.all_subclassesF   s   è è € àŒmÐÐÐÐÐr3   c           	      óÈ   — |}|j         D ]W}|                     d¦  «        r@t          ||¦  «        }t          |¦  «        }t	          |j        d|j        › d|› d�¦  «         ŒXd S )NÚvisit_zCompiler visit method ú.z:() does not accommodate for **kw in its argument signature)Ú__dict__r9   Úgetattrr   r   Úvarkwr.   )r*   rG   rA   ÚkÚmethÚinsps         r,   Ú test_all_visit_methods_accept_kwz1ArgSignatureTest.test_all_visit_methods_accept_kwJ   s’   € Øˆà”ð 		ð 		ˆAØ�|Š|˜HÑ%Ô%ð Ý˜s A‘”�å-¨dÑ3Ô3�ÝØ”JðI¨S¬\ð Ið I¸Að Ið Ið Iñô ð øð		ð 		r3   N)
r.   r/   r0   Ú__doc__rB   r   ÚfixtureÚlistrG   rQ   r2   r3   r,   r5   r5   ,   sy   € € € € € ðð ð
ð 
ð 
ð €W„_˜D˜D  Ñ!2Ô!2Ñ3Ô3Ð4Ñ4Ô4ðð ñ 5Ô4ððð ð ð ð r3   r5   c                   óV   — e Zd ZdZdZdZed„ ¦   «         Zej	        d„ ¦   «         Z
d„ ZdS )ÚExceptionTestz¶Test basic exception wrapping.

    DBAPIs vary a lot in exception behavior so to actually anticipate
    specific exceptions from real round trips, we need to be conservative.

    ÚeachTc                 óŒ   — t          d|t          dt          dd¬¦  «        t          dt          d¦  «        ¦  «        ¦  «         d S )NÚ	manual_pkÚidTF©Úprimary_keyÚautoincrementÚdataé2   ©r   r   r   r   ©rA   Úmetadatas     r,   Údefine_tableszExceptionTest.define_tablese   sK   € åØØÝ�4�¨dÀ%ÐHÑHÔHÝ�6�6 "™:œ:Ñ&Ô&ñ		
ô 	
ð 	
ð 	
ð 	
r3   c           	      ó®  — t           j                             ¦   «         5 }|                     ¦   «         }|                     | j        j                             ¦   «         dddœ¦  «         t          t          j
        |j        | j        j                             ¦   «         dddœ¦  «         |                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr   Úd1©rZ   r^   )r   r$   r%   ÚbeginÚexecuteÚtablesrY   Úinsertr   r   ÚIntegrityErrorÚrollback)r*   r+   Útranss      r,   Útest_integrity_errorz"ExceptionTest.test_integrity_errorn   s  € åŒY×ÒÑ Ô ð 	 DØ—J’J‘L”LˆEØ�LŠLØ”Ô%×,Ò,Ñ.Ô.°qÀ$Ð0GÐ0Gñô ð õ ÝÔ"Ø”Ø”Ô%×,Ò,Ñ.Ô.Ø $Ð'Ð'ñ	ô ð ð �NŠNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ŸBC
Ã
CÃCc                 ó¨  — t           j                             ¦   «         5 }	 |                     t	          t          d¦  «        ¦  «        ¦  «         J ‚# t          j        $ r>}t          |¦  «        }t          |j	        ¦  «        t          |¦  «        v sJ ‚Y d }~nd }~ww xY wt          |t          ¦  «        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nu   mÃ©il)r   r$   r%   rh   r   r   r   Ú
DBAPIErrorÚstrÚorigÚ
isinstance)r*   r+   ÚerrÚerr_strs       r,   Útest_exception_with_non_asciiz+ExceptionTest.test_exception_with_non_ascii   s  € ÝŒY×ÒÑ Ô ð 	, Dð1ð —’�V¥N°7Ñ$;Ô$;Ñ<Ô<Ñ=Ô=Ð=Ø�øÝ”>ð 1ð 1ð 1Ý˜c™(œ(�å˜3œ8‘}”}­¨C©¬Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0øøøøð1øøøõ
 ˜g¥sÑ+Ô+Ð+Ð+Ð+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s4   ŸC¡1AÁBÁ!4BÂCÂBÂCÃCÃCN)r.   r/   r0   rR   Úrun_deletesr1   Úclassmethodrc   r   Ú$duplicate_key_raises_integrity_errorrn   rv   r2   r3   r,   rV   rV   Y   sq   € € € € € ðð ð €Kà€Kàð
ð 
ñ „[ð
ð Ô6ðð ñ 7Ô6ðð ,ð ,ð ,ð ,ð ,r3   rV   c                   óÐ   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Ze	j
        j        d„ ¦   «         Ze	j
        j        e	j
        j        d„ ¦   «         ¦   «         Ze	j
        j        d	„ ¦   «         Zd
S )ÚIsolationLevelTestT©Úisolation_levelc                 óô   — t          j        t          ¦  «        }|d         }|d         }t          |¦  «                             d|g¦  «        }|r|                     ¦   «         S t          j        d¦  «         d S )NÚdefaultÚ	supportedÚ
AUTOCOMMITz(no non-default isolation level available)r   Úget_isolation_levelsr   ÚsetÚ
differencer<   Ú	skip_test)r*   Úlevelsr   r€   Úss        r,   Ú _get_non_default_isolation_levelz3IsolationLevelTest._get_non_default_isolation_level–   sr   € ÝÔ2µ6Ñ:Ô:ˆà˜Ô#ˆØ˜;Ô'ˆ	å�	‰NŒN×%Ò% |°WÐ&=Ñ>Ô>ˆØð 	IØ—5’5‘7”7ˆNåÔÐGÑHÔHÐHÐHÐHr3   c                 óˆ   — t          t          j        j        j        t          j        t          ¦  «        d         ¦  «         d S )Nr   )r	   r   r$   r&   Údefault_isolation_levelr   r‚   )r*   s    r,   Útest_default_isolation_levelz/IsolationLevelTest.test_default_isolation_level¢   s<   € ÝÝŒIÔÔ5ÝÔ-­fÑ5Ô5°iÔ@ñ	
ô 	
ð 	
ð 	
ð 	
r3   c                 óà  — |                       ¦   «         }t          j                             ¦   «         5 }|                     ¦   «         }t          ||¦  «         |                     |¬¦  «         t          |                     ¦   «         |¦  «         |j         	                    |j
        j        ¦  «         t          |                     ¦   «         |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr|   )rˆ   r   r$   r%   Úget_isolation_levelr   Úexecution_optionsr	   r&   Úreset_isolation_levelr(   r)   )r*   Únon_defaultr+   Úexistings       r,   Ú test_non_default_isolation_levelz3IsolationLevelTest.test_non_default_isolation_level¨   s  € Ø×;Ò;Ñ=Ô=ˆåŒY×ÒÑ Ô ð 	6 DØ×/Ò/Ñ1Ô1ˆHå�˜+Ñ&Ô&Ð&à×"Ò"°;Ð"Ñ?Ô?Ð?å�×(Ò(Ñ*Ô*¨KÑ8Ô8Ð8àŒL×.Ò.Ø”Ô0ñô ð õ �×(Ò(Ñ*Ô*¨HÑ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s   ³B#C#Ã#C'Ã*C'c                 óÄ  — t          j        t          ¦  «        }|d         }t          |¦  «                             dg¦  «        D �]}t          j                             ¦   «         5 }|                     |¬¦  «         t          | 	                    ¦   «         |¦  «         | 
                    ¦   «         }|                     ¦   «          t          | 	                    ¦   «         |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j                             ¦   «         5 }t          | 	                    ¦   «         |d         ¦  «         d d d ¦  «         n# 1 swxY w Y   �Œd S )Nr€   r�   r|   r   )r   r‚   r   rƒ   r„   r$   r%   rŽ   r	   r�   rg   rl   )r*   r†   Ú
all_levelsÚlevelr+   rm   s         r,   Útest_all_levelsz"IsolationLevelTest.test_all_levelsº   s¯  € ÝÔ2µ6Ñ:Ô:ˆà˜KÔ(ˆ
å˜‘_”_×/Ò/°°Ñ?Ô?ð 	ñ 	ˆEÝ”×"Ò"Ñ$Ô$ð 7¨Ø×&Ò&°uÐ&Ñ=Ô=Ð=å�D×,Ò,Ñ.Ô.°Ñ6Ô6Ð6àŸ
š
™œ�Ø—’Ñ Ô Ð å�D×,Ò,Ñ.Ô.°Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7õ ”×"Ò"Ñ$Ô$ð ¨ÝØ×,Ò,Ñ.Ô.Ø˜9Ô%ñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ùð	ð 	s%   Á&BC5Ã5C9	Ã<C9	Ä)EÅE	ÅE	c                 ó"  — |}t          t          j        dd›d|j        j        ›dd                     t          j        t          ¦  «        d         ¦  «        ›�¦  «        5  | 	                    d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z4test for the new get_isolation_level_values() methodúInvalid value 'ÚFOOú3' for isolation_level. Valid isolation levels for 'ú' are ú, r€   r|   N)
r   r   ÚArgumentErrorr&   ÚnameÚjoinr   r‚   r   rŽ   )r*   Úconnection_no_transr(   s      r,   Ú#test_invalid_level_execution_optionz6IsolationLevelTest.test_invalid_level_execution_optionÐ   sù   € ð )ˆ
Ý"ÝÔÐð ��ØÔ"Ô'Ð'Ð'Ø—	’	Ý Ô5µfÑ=Ô=¸kÔJñô ð ðñ
ô 
ð 	@ð 	@ð ×(Ò(¸Ð(Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@s   Á BÂBÂBc                 óN  —  |t          d¬¦  «        ¬¦  «        }t          t          j        dd›d|j        j        ›dd                     t          j        t          ¦  «        d         ¦  «        ›�¦  «        5  | 
                    ¦   «          d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
z…test for the new get_isolation_level_values() method
        and support for the dialect-level 'isolation_level' parameter.

        r™   r|   ©Úoptionsr˜   rš   r›   rœ   r€   N)Údictr   r   r�   r&   rž   rŸ   r   r‚   r   r%   )r*   Útesting_engineÚengs      r,   Útest_invalid_level_engine_paramz2IsolationLevelTest.test_invalid_level_engine_paramã   sò   € ð ˆn¥T¸%Ð%@Ñ%@Ô%@ÐAÑAÔAˆÝ"ÝÔÐð ��Ø”Ô Ð Ð Ø—	’	Ý Ô5µfÑ=Ô=¸kÔJñô ð ðñ
ô 
ð 	ð 	ð �KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á8BÂBÂ!Bc                 óà  — t          j        t          ¦  «        }|d         }t          t	          |d         ¦  «                             |dg¦  «        ¦  «        d         } |d|i¬¦  «        }|                     ¦   «         5 }t          |                     ¦   «         |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         5 }| 	                    |¬¦  «         t          |                     ¦   «         |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         5 }t          |                     ¦   «         |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r€   r�   r   r}   r£   r|   )
r   r‚   r   Úsortedrƒ   r„   r%   r	   r�   rŽ   )r*   r¦   r†   r   r€   Úer+   s          r,   Ú%test_dialect_user_setting_is_restoredz8IsolationLevelTest.test_dialect_user_setting_is_restoredú   s  € åÔ2µ6Ñ:Ô:ˆØ˜Ô#ˆåÝ�F˜;Ô'Ñ(Ô(×3Ò3°W¸lÐ4KÑLÔLñô ð ô	ˆ	ð ˆNÐ$5°yÐ#AÐBÑBÔBˆà�YŠY‰[Œ[ð 	7˜DÝ�×(Ò(Ñ*Ô*¨IÑ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð �YŠY‰[Œ[ð 	5˜DØ×"Ò"°7Ð"Ñ;Ô;Ð;Ý�×(Ò(Ñ*Ô*¨GÑ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð �YŠY‰[Œ[ð 	7˜DÝ�×(Ò(Ñ*Ô*¨IÑ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s6   Â#B0Â0B4Â7B4Ã9DÄDÄDÄ3#E#Å#E'Å*E'N)r.   r/   r0   r1   Ú__requires__rˆ   r‹   r’   r–   r   ÚrequiresÚget_isolation_level_valuesr¡   Ú#dialect_level_isolation_level_paramr¨   Ú independent_readonly_connectionsr¬   r2   r3   r,   r{   r{   ‘   s×   € € € € € Ø€Kà'€Lð
Ið 
Ið 
Ið
ð 
ð 
ð6ð 6ð 6ð$ð ð ð, ÔÔ0ð@ð @ñ 1Ô0ð@ð$ ÔÔ0ØÔÔ9ðð ñ :Ô9ñ 1Ô0ðð* ÔÔ6ð7ð 7ñ 7Ô6ð7ð 7ð 7r3   r{   c                   ó¤   — e Zd ZdZdZdZed„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zej        j         ej        d	dd
g¦  «        d„ ¦   «         ¦   «         ZdS )ÚAutocommitIsolationTestrW   )Ú
autocommitTc                 ó�   — t          d|t          dt          dd¬¦  «        t          dt          d¦  «        ¦  «        d¬¦  «         d S )	NÚ
some_tablerZ   TFr[   r^   r_   )Útest_needs_acidr`   ra   s     r,   rc   z%AutocommitIsolationTest.define_tables  sS   € åØØÝ�4�¨dÀ%ÐHÑHÔHÝ�6�6 "™:œ:Ñ&Ô&Ø ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r3   c                 ó4  — |                      ¦   «         }|                     | j        j                             ¦   «         dddœ¦  «         |                     ¦   «          t          |                     t          | j        j        j	        j
        ¦  «        ¦  «        |rdnd ¦  «         |                     ¦   «          |                      ¦   «         5  |                     | j        j                             ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   z	some datarf   )rg   rh   ri   r¶   rj   rl   r	   Úscalarr   ÚcrZ   Údelete)r*   r+   r´   rm   s       r,   Ú_test_conn_autocommitsz.AutocommitIsolationTest._test_conn_autocommits"  s9  € Ø—
’
‘”ˆØ�ŠØŒKÔ"×)Ò)Ñ+Ô+°A¸{Ð-KÐ-Kñ	
ô 	
ð 	
ð 	�ŠÑÔÐåØ�KŠK�˜tœ{Ô5Ô7Ô:Ñ;Ô;Ñ<Ô<ØÐ%ˆAˆA ñ	
ô 	
ð 	
ð 	�Š‰Œˆà�ZŠZ‰\Œ\ð 	:ð 	:Ø�LŠL˜œÔ/×6Ò6Ñ8Ô8Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   Ã2DÄDÄDc                 óÖ   — |}|                      d¬¦  «        }|                      |d¦  «         |j                             |j        j        ¦  «         |                      |d¦  «         d S )Nr�   r|   TF)rŽ   r¼   r&   r�   r(   r)   )r*   r    r+   Úc2s       r,   Útest_autocommit_onz*AutocommitIsolationTest.test_autocommit_on2  sj   € Ø"ˆØ×#Ò#°LÐ#ÑAÔAˆØ×#Ò# B¨Ñ-Ô-Ð-à
Œ
×(Ò(¨¬Ô)GÑHÔHÐHà×#Ò# D¨%Ñ0Ô0Ð0Ð0Ð0r3   c                 ó6   — |}|                       |d¦  «         d S )NF)r¼   ©r*   r    r+   s      r,   Útest_autocommit_offz+AutocommitIsolationTest.test_autocommit_off;  s#   € Ø"ˆØ×#Ò# D¨%Ñ0Ô0Ð0Ð0Ð0r3   c                 óô   — |}|                      d¬¦  «        }|                      |d¦  «         |                      t          j        t          ¦  «        d         ¬¦  «         |                      |d¦  «         d S )Nr�   r|   Tr   F)rŽ   r¼   r   r‚   r   rÁ   s      r,   Ú.test_turn_autocommit_off_via_default_iso_levelzFAutocommitIsolationTest.test_turn_autocommit_off_via_default_iso_level?  s†   € ð #ˆØ×%Ò%°lÐ%ÑCÔCˆØ×#Ò# D¨$Ñ/Ô/Ð/à×ÒÝ(Ô=½fÑEÔEØôð 	ñ 	
ô 	
ð 	
ð
 	×#Ò# D¨%Ñ0Ô0Ð0Ð0Ð0r3   Úuse_dialect_settingFc                 ó`  — |r |ddi¬¦  «        }n |¦   «                               d¬¦  «        }t          j        t          ¦  «        }|d         }|                     ¦   «         5 }|                      |d¦  «         ddd¦  «         n# 1 swxY w Y   |                     ¦   «         5 }|                      |¬¦  «         |                      |d¦  «         ddd¦  «         n# 1 swxY w Y   |                     ¦   «         5 }|                      |d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	ztest #10147r}   r�   r£   r|   r   TNF)rŽ   r   r‚   r   r%   r¼   )r*   r¦   rÅ   r«   r†   r   r+   s          r,   Ú#test_dialect_autocommit_is_restoredz;AutocommitIsolationTest.test_dialect_autocommit_is_restoredM  só  € ð ð 	Ø�Ð(9¸<Ð'HÐIÑIÔIˆAˆAà�Ñ Ô ×2Ò2Ø ,ð 3ñ ô ˆAõ Ô2µ6Ñ:Ô:ˆà˜Ô#ˆà�YŠY‰[Œ[ð 	4˜DØ×'Ò'¨¨dÑ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð �YŠY‰[Œ[ð 	5˜DØ×"Ò"°7Ð"Ñ;Ô;Ð;Ø×'Ò'¨¨eÑ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð �YŠY‰[Œ[ð 	4˜DØ×'Ò'¨¨dÑ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s6   Á%BÂBÂBÂ'-C Ã C$Ã'C$Ã?D#Ä#D'Ä*D'N)r.   r/   r0   rw   r­   r1   rx   rc   r¼   r¿   rÂ   rÄ   r   r®   r±   Ú	variationrÇ   r2   r3   r,   r³   r³     s¹   € € € € € Ø€Kà"€Là€Kàð
ð 
ñ „[ð
ð:ð :ð :ð 1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð ÔÔ6Ø€WÔÐ,¨t°U¨mÑ<Ô<ð4ð 4ñ =Ô<ñ 7Ô6ð4ð 4ð 4r3   r³   c                   ó$   — e Zd Zed„ ¦   «         ZdS )ÚEscapingTestc                 ó�  — | j         }t          d|t          dt          d¦  «        ¦  «        ¦  «        }|                     t
          j        ¦  «         t
          j                             ¦   «         5 }|                     | 	                    ¦   «         t          d¬¦  «        ¦  «         |                     | 	                    ¦   «         t          d¬¦  «        ¦  «         t          |                     t          |j        j        ¦  «                             |j        j        t#          d¦  «        k    ¦  «        ¦  «        d¦  «         t          |                     t          |j        j        ¦  «                             |j        j        t#          d¦  «        k    ¦  «        ¦  «        d¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
z|test that the DBAPI accommodates for escaped / nonescaped
        percent signs in a way that matches the compiler

        Útr^   r_   zsome % value)r^   zsome %% other valuez'some % value'z'some %% other value'N)rb   r   r   r   Úcreater   r$   rg   rh   rj   r¥   r	   r¹   r   rº   r^   Úwherer   )r*   ÚmrÌ   r+   s       r,   Útest_percent_sign_round_tripz)EscapingTest.test_percent_sign_round_tripk  s¼  € ð ŒMˆÝ�#�q�& ­°©¬Ñ4Ô4Ñ5Ô5ˆØ	�Š•”ÑÔÐÝŒY�_Š_ÑÔð 	 $Ø�LŠL˜Ÿš™œ¥T¨~Ð%>Ñ%>Ô%>Ñ?Ô?Ð?Ø�LŠL˜Ÿš™œ¥TÐ/DÐ%EÑ%EÔ%EÑFÔFÐFåØ—’Ý˜1œ3œ8Ñ$Ô$×*Ò*Øœœ¥NÐ3CÑ$DÔ$DÒDñô ñô ð
 ñô ð õ Ø—’Ý˜1œ3œ8Ñ$Ô$×*Ò*Øœœ¥NÐ3JÑ$KÔ$KÒKñô ñô ð
 &ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á1D=F;Æ;F?ÇF?N)r.   r/   r0   r   rÐ   r2   r3   r,   rÊ   rÊ   j  s.   € € € € € Øðð ñ Ôðð ð r3   rÊ   c                   ó.   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ ZdS )Ú WeCanSetDefaultSchemaWEventsTestT)Údefault_schema_name_switchc                 óæ   — t           j        j        j        }t	          j        ¦   «         }|                     ¦   «         5  	 d d d ¦  «         n# 1 swxY w Y   t          |j        j        |¦  «         d S r#   )r   r$   r&   Údefault_schema_namer   r¦   r%   r	   )r*   rÕ   r§   s      r,   Útest_control_casez2WeCanSetDefaultSchemaWEventsTest.test_control_case�  s¢   € Ý$œiÔ/ÔCÐåÔ$Ñ&Ô&ˆØ�[Š[‰]Œ]ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	ˆCŒKÔ+Ð-@ÑAÔAÐAÐAÐAs   ¾AÁAÁAc                 óˆ  — t           j        j        j        }t	          j        ¦   «         }t          j        |d¦  «        d„ ¦   «         }|                     ¦   «         5 }|j         	                    |¦  «        }t          |t           j        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j        |¦  «         d S )Nr%   c                 óF   — t          t          | t          j        ¦  «         d S r#   ©r   r   Útest_schema©r)   Úconnection_records     r,   Ú
on_connectzMWeCanSetDefaultSchemaWEventsTest.test_wont_work_wo_insert.<locals>.on_connectž  ó)   € å,ÝÐ(­&Ô*<ñô ð ð ð r3   )r   r$   r&   rÕ   r   r¦   r   Úlistens_forr%   Ú_get_default_schema_namer	   rÚ   )r*   rÕ   r§   rÝ   r+   Úwhat_it_should_bes         r,   Útest_wont_work_wo_insertz9WeCanSetDefaultSchemaWEventsTest.test_wont_work_wo_insert™  sï   € Ý$œiÔ/ÔCÐåÔ$Ñ&Ô&ˆå	Ô	˜3 	Ñ	*Ô	*ð	ð 	ñ 
+Ô	*ð	ð
 �[Š[‰]Œ]ð 	7˜dØ #¤× DÒ DÀTÑ JÔ JÐÝÐ!¥6Ô#5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7õ 	ˆCŒKÔ+Ð-@ÑAÔAÐAÐAÐAs   Á5BÂB!Â$B!c                 ót  — t          j        ¦   «         }t          j        |dd¬¦  «        d„ ¦   «         }|                     ¦   «         5 }|j                             |¦  «        }t          |t          j	        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j
        t          j	        ¦  «         d S )Nr%   T©rj   c                 óF   — t          t          | t          j        ¦  «         d S r#   rÙ   rÛ   s     r,   rÝ   zRWeCanSetDefaultSchemaWEventsTest.test_schema_change_on_connect.<locals>.on_connect­  rÞ   r3   )r   r¦   r   rß   r%   r&   rà   r	   r   rÚ   rÕ   )r*   r§   rÝ   r+   rá   s        r,   Útest_schema_change_on_connectz>WeCanSetDefaultSchemaWEventsTest.test_schema_change_on_connectª  sè   € ÝÔ$Ñ&Ô&ˆå	Ô	˜3 	°$Ð	7Ñ	7Ô	7ð	ð 	ñ 
8Ô	7ð	ð
 �[Š[‰]Œ]ð 	7˜dØ #¤× DÒ DÀTÑ JÔ JÐÝÐ!¥6Ô#5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7õ 	ˆCŒKÔ+­VÔ-?Ñ@Ô@Ð@Ð@Ð@s   Á5B	Â	BÂBc                 ó,  — t          j        ¦   «         }t          j        |dd¬¦  «        d„ ¦   «         }|                     ¦   «         5 }|                     ¦   «         }|j                             |¦  «        }t          |t          j
        ¦  «         |                     ¦   «          |j                             |¦  «        }t          |t          j
        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j        t          j
        ¦  «         d S )Nr%   Trä   c                 óF   — t          t          | t          j        ¦  «         d S r#   rÙ   )r)   Úargs     r,   rÝ   z\WeCanSetDefaultSchemaWEventsTest.test_schema_change_works_w_transactions.<locals>.on_connect¼  rÞ   r3   )r   r¦   r   rß   r%   rg   r&   rà   r	   r   rÚ   rl   rÕ   )r*   r§   rÝ   r+   rm   rá   s         r,   Ú'test_schema_change_works_w_transactionszHWeCanSetDefaultSchemaWEventsTest.test_schema_change_works_w_transactions¹  s/  € ÝÔ$Ñ&Ô&ˆå	Ô	˜3 	°$Ð	7Ñ	7Ô	7ð	ð 	ñ 
8Ô	7ð	ð
 �[Š[‰]Œ]ð 	7˜dØ—J’J‘L”LˆEØ #¤× DÒ DÀTÑ JÔ JÐÝÐ!¥6Ô#5Ñ6Ô6Ð6Ø�NŠNÑÔÐà #¤× DÒ DÀTÑ JÔ JÐÝÐ!¥6Ô#5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7õ 	ˆCŒKÔ+­VÔ-?Ñ@Ô@Ð@Ð@Ð@s   ÁBC%Ã%C)Ã,C)N)	r.   r/   r0   r1   r­   rÖ   râ   ræ   rê   r2   r3   r,   rÒ   rÒ   ‹  sh   € € € € € Ø€Kà2€LðBð Bð BðBð Bð Bð"Að Að AðAð Að Að Að Ar3   rÒ   c                   ó   — e Zd ZdS )Ú&FutureWeCanSetDefaultSchemaWEventsTestN)r.   r/   r0   r2   r3   r,   rì   rì   Î  s   € € € € € ð 	€Dr3   rì   c                   óä   — e Zd ZdZ ej        dddddddd	d
ddddddddddddd¬¦  «        Zeej        j	        d„ ¦   «         ¦   «         Z
ej        d„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚDifficultParametersTestT)Úboring)zper cent)z
per % cent)z%percent)zpar(ens))zpercent%(ens)yah)zcol:ons)Ú_starts_with_underscore)zdot.s)zmore :: %colons%)Ú_name)Ú___name)z[BracketsAndCase])Ú	42numbers)zpercent%signs)z
has spaces)z	/slashes/)zmore/slashes)zq?marks)Ú1param)z1col:onÚ	paramname)Úargnamesc                 óú  — |}t          d|t          dt          d¬¦  «        t          |t          d¦  «        d¬¦  «        ¦  «        }|                     |¦  «         |                     |                     ¦   «                              dd|d	i¦  «        ¦  «         t          |j	        |         ¦  «         
                    |j	        |         d	k    ¦  «        }t          |                     |¦  «        d	¦  «         t          |j	        |         ¦  «         
                    |j	        |         t          |¦  «        k    ¦  «        }|                     ||d	i¦  «                             ¦   «         }t          |j        |         d	¦  «         t          |j	        |         ¦  «         
                    |j	        |                              d	d
g¦  «        ¦  «        }|                     |¦  «                             ¦   «         }d S )NrÌ   rZ   T)r\   r_   F)Únullabler   z	some namezsome other_name)r   r   r   r   rÍ   rh   rj   Úvaluesr   rº   rÎ   r	   r¹   r   ÚfirstÚ_mappingÚin_)r*   rõ   r(   rb   rž   rÌ   ÚstmtÚrows           r,   Ú!test_round_trip_same_named_columnz9DifficultParametersTest.test_round_trip_same_named_columnð  sµ  € ð
 ˆåØØÝ�4�¨dÐ3Ñ3Ô3Ý�4� ™œ¨eÐ4Ñ4Ô4ñ	
ô 
ˆð 	
�Š�ÑÔÐð 	×Ò˜1Ÿ8š8™:œ:×,Ò,¨d°A°t¸[Ð-IÑJÔJÑKÔKÐKõ �a”c˜$”iÑ Ô ×&Ò& q¤s¨4¤y°KÒ'?Ñ@Ô@ˆåˆJ×Ò˜dÑ#Ô# [Ñ1Ô1Ð1õ �a”c˜$”iÑ Ô ×&Ò& q¤s¨4¤yµI¸d±O´OÒ'CÑDÔDˆà× Ò  ¨¨kÐ':Ñ;Ô;×AÒAÑCÔCˆõ 	ˆCŒL˜Ô Ñ,Ô,Ð,õ �a”c˜$”iÑ Ô ×&Ò&ØŒC�ŒI�MŠM˜;Ð(9Ð:Ñ;Ô;ñ
ô 
ˆð × Ò  Ñ&Ô&×,Ò,Ñ.Ô.ˆˆˆr3   c              #   ól  K  — t          d|t          dt          ¦  «        t          dt          d¦  «        ¦  «        t          dt          d¦  «        ¦  «        ¦  «        }|                     |¦  «         |                     |                     ¦   «         dddd	œd
ddd	œdddd	œdddd	œg¦  «         |V — d S )NÚmytableÚmyidrž   r_   Údescr   ÚaÚa_desc)r  rž   r  r   ÚbÚb_descr   rº   Úc_descé   r?   Úd_desc)r   r   r   r   rÍ   rh   rj   )r*   rb   r(   r  s       r,   Úmultirow_fixturez(DifficultParametersTest.multirow_fixture  sÏ   è è € åØØÝ�6�7Ñ#Ô#Ý�6�6 "™:œ:Ñ&Ô&Ý�6�6 "™:œ:Ñ&Ô&ñ
ô 
ˆð 	�Š�zÑ"Ô"Ð"à×ÒØ�NŠNÑÔà C°Ð:Ð:Ø C°Ð:Ð:Ø C°Ð:Ð:Ø C°Ð:Ð:ð	ñ	
ô 	
ð 	
ð ˆˆˆˆˆr3   c                 óì   — |}t          |j        j        ¦  «                             |j        j        t          |d¬¦  «        k    ¦  «        }|                     ||di¦  «        }t          |d¦  «         d S )NÚx©Úvaluerº   r   )r   rº   r  rÎ   rž   r   r¹   r	   ©r*   rõ   r(   r  Útbl1rý   Úress          r,   Ú test_standalone_bindparam_escapez8DifficultParametersTest.test_standalone_bindparam_escape/  sp   € ð  ˆÝ�d”f”kÑ"Ô"×(Ò(ØŒFŒK�9 Y°cÐ:Ñ:Ô:Ò:ñ
ô 
ˆð ×Ò  y°#Ð&6Ñ7Ô7ˆÝˆC�‰Œˆˆˆr3   c           	      ót  — |}t          |j        j        ¦  «                             |j        j                             t          |ddg¬¦  «        ¦  «        ¦  «                             |j        j        ¦  «        }|                     ||ddgi¦  «         	                    ¦   «         }t          |ddg¦  «         d S )Nr  r  r  r?   r   r	  )r   rº   r  rÎ   rž   rü   r   Úorder_byÚscalarsÚallr	   r  s          r,   Ú*test_standalone_bindparam_escape_expandingzBDifficultParametersTest.test_standalone_bindparam_escape_expanding:  s¢   € ð  ˆå�4”6”;ÑÔßŠU�4”6”;—?’?¥9¨Y¸sÀC¸jÐ#IÑ#IÔ#IÑJÔJÑKÔKßŠX�d”f”kÑ"Ô"ð 	ð × Ò  ¨	°C¸°:Ð'>Ñ?Ô?×CÒCÑEÔEˆÝˆC�!�Q�ÑÔÐÐÐr3   N)r.   r/   r0   r1   r   ÚcombinationsÚtough_parametersr   r   Úunusual_column_name_charactersrÿ   rS   r  r  r  r2   r3   r,   rî   rî   Ô  sø   € € € € € Ø€Kà+�wÔ+ØØØØØØØØ$ØØØØØØØØØØØØØØð-ñ ô Ðð2 ØÔÔ7ð$/ð $/ñ 8Ô7ñ Ôð$/ðL „_ðð ñ „_ðð, ðð ñ Ôðð ðð ñ Ôðð ð r3   rî   c                   óp   — e Zd ZdZdZed„ ¦   «         Zej        d„ ¦   «         Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ ZdS )ÚReturningGuardsTestz=test that the various 'returning' flags are set appropriatelyTc                 óŒ   — t          d|t          dt          dd¬¦  «        t          dt          d¦  «        ¦  «        ¦  «         d S )NrÌ   rZ   TFr[   r^   r_   r`   ra   s     r,   rc   z!ReturningGuardsTest.define_tablesN  sK   € åØØÝ�4�¨dÀ%ÐHÑHÔHÝ�6�6 "™:œ:Ñ&Ô&ñ		
ô 	
ð 	
ð 	
ð 	
r3   c                 ó.   ‡‡— | j         j        Šˆˆfd„}|S )Nc           
      óè  •— |                       ‰j        j        ¦  «        } |rÂ|sut          t          j        d‰j        j        › d‰j        j        › d�¦  «        5  ‰ 	                    | |dddi|dddi|d	dd
ig¦  «        }d d d ¦  «         d S # 1 swxY w Y   d S ‰ 	                    | |dddi|dddi|d	dd
ig¦  «        }t          |                     ¦   «         g d¢¦  «         d S |sNt          t          j        ¦  «        5  ‰ 	                    | |dddi¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ‰ 	                    | |dddi¦  «        }t          |                     ¦   «         dg¦  «         d S )NzDialect z\+zW with current server capabilities does not support .*RETURNING when executemany is usedr   r^   re   r   Úd2r   Úd3)©r   )r   )r   r#  )Ú	returningrº   rZ   r   r   ÚStatementErrorr&   rž   Údriverrh   r	   r  r   rp   )rý   ÚexecutemanyÚid_param_nameÚexpect_successÚresultr(   rÌ   s        €€r,   Úgoz(ReturningGuardsTest.run_stmt.<locals>.go[  sq  ø€ Ø—>’> !¤#¤&Ñ)Ô)ˆDàð *.Ø%ð :õ /ÝÔ*ð@ JÔ$6Ô$;ð @ð @Ø%Ô-Ô4ð@ð @ð @ñô ð ð ð ",×!3Ò!3Ø à!.°°6¸4Ð @Ø!.°°6¸4Ð @Ø!.°°6¸4Ð @ðñ"ô "˜ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ð  (×/Ò/Øà*¨A¨v°tÐ<Ø*¨A¨v°tÐ<Ø*¨A¨v°tÐ<ðñô �Fõ ˜Ÿ
š
™œÐ&8Ð&8Ð&8Ñ9Ô9Ð9Ð9Ð9à%ð .õ '¥s¤~Ñ6Ô6ð ð Ø"×*Ò*Ø  =°!°V¸TÐ"Bñô ð ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ð
 (×/Ò/Ø˜}¨a°¸Ð>ñô �Fõ ˜Ÿ
š
™œ t fÑ-Ô-Ð-Ð-Ð-s$   Á&BÂBÂBÄ D(Ä(D,Ä/D,)ri   rÌ   )r*   r(   r+  rÌ   s    ` @r,   Úrun_stmtzReturningGuardsTest.run_stmtW  s3   øø€ àŒKŒMˆð-	.ð -	.ð -	.ð -	.ð -	.ð -	.ð^ ˆ	r3   c                 óv   — | j         j        }|                     ¦   «         } ||dd|j        j        ¦  «         d S )NFrZ   )ri   rÌ   rj   r&   Úinsert_returning©r*   r(   r,  rÌ   rý   s        r,   Útest_insert_singlez&ReturningGuardsTest.test_insert_singleŒ  s:   € ØŒKŒMˆà�xŠx‰zŒzˆàˆ��u˜d JÔ$6Ô$GÑHÔHÐHÐHÐHr3   c                 óv   — | j         j        }|                     ¦   «         } ||dd|j        j        ¦  «         d S )NTrZ   )ri   rÌ   rj   r&   Úinsert_executemany_returningr/  s        r,   Útest_insert_manyz$ReturningGuardsTest.test_insert_many“  sE   € ØŒKŒMˆà�xŠx‰zŒzˆàˆØ�$˜˜jÔ0ÔMñ	
ô 	
ð 	
ð 	
ð 	
r3   c                 ó:  — | j         j        }|                     |                     ¦   «         dddœdddœdddœg¦  «         |                     ¦   «                              |j        j        t          d¦  «        k    ¦  «        } ||d	d|j	        j
        ¦  «         d S ©
Nr   re   rf   r   r!  r   r"  Úb_idF)ri   rÌ   rh   rj   ÚupdaterÎ   rº   rZ   r   r&   Úupdate_returningr/  s        r,   Útest_update_singlez&ReturningGuardsTest.test_update_singleœ  ó¤   € ØŒKŒMˆà×ÒØ�HŠH‰JŒJà $Ð'Ð'Ø $Ð'Ð'Ø $Ð'Ð'ðñ	
ô 	
ð 	
ð �xŠx‰zŒz×Ò ¤¤­)°FÑ*;Ô*;Ò ;Ñ<Ô<ˆàˆ��u˜f jÔ&8Ô&IÑJÔJÐJÐJÐJr3   c                 ó:  — | j         j        }|                     |                     ¦   «         dddœdddœdddœg¦  «         |                     ¦   «                              |j        j        t          d¦  «        k    ¦  «        } ||d	d|j	        j
        ¦  «         d S ©
Nr   re   rf   r   r!  r   r"  r6  T)ri   rÌ   rh   rj   r7  rÎ   rº   rZ   r   r&   Úupdate_executemany_returningr/  s        r,   Útest_update_manyz$ReturningGuardsTest.test_update_many¬  ó¯   € ØŒKŒMˆà×ÒØ�HŠH‰JŒJà $Ð'Ð'Ø $Ð'Ð'Ø $Ð'Ð'ðñ	
ô 	
ð 	
ð �xŠx‰zŒz×Ò ¤¤­)°FÑ*;Ô*;Ò ;Ñ<Ô<ˆàˆØ�$˜ 
Ô 2Ô Oñ	
ô 	
ð 	
ð 	
ð 	
r3   c                 ó:  — | j         j        }|                     |                     ¦   «         dddœdddœdddœg¦  «         |                     ¦   «                              |j        j        t          d¦  «        k    ¦  «        } ||d	d|j	        j
        ¦  «         d S r5  )ri   rÌ   rh   rj   r»   rÎ   rº   rZ   r   r&   Údelete_returningr/  s        r,   Útest_delete_singlez&ReturningGuardsTest.test_delete_single¾  r:  r3   c                 ó:  — | j         j        }|                     |                     ¦   «         dddœdddœdddœg¦  «         |                     ¦   «                              |j        j        t          d¦  «        k    ¦  «        } ||d	d|j	        j
        ¦  «         d S r<  )ri   rÌ   rh   rj   r»   rÎ   rº   rZ   r   r&   Údelete_executemany_returningr/  s        r,   Útest_delete_manyz$ReturningGuardsTest.test_delete_manyÎ  r?  r3   N)r.   r/   r0   rR   r1   rx   rc   r   rS   r,  r0  r3  r9  r>  rB  rE  r2   r3   r,   r  r  I  s¹   € € € € € ØGÐGà€Kàð
ð 
ñ „[ð
ð „_ð2ð 2ñ „_ð2ðhIð Ið Ið
ð 
ð 
ðKð Kð Kð 
ð 
ð 
ð$Kð Kð Kð 
ð 
ð 
ð 
ð 
r3   r  ).r:   Ú r   r   r   r   r	   r
   r   r   r   r   Ú
assertionsr   r   r   Ú	provisionr   Úschemar   r   r   r   r   r   r   r   r   r   Úsql.compilerr   Úutilr   ÚTestBaser!   r5   Ú
TablesTestrV   r{   r³   rÊ   rÒ   ÚFutureEngineMixinrì   rî   r  r2   r3   r,   ú<module>rO     sð  ðð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø .Ð .Ð .Ð .Ð .Ð .Ø !Ð !Ð !Ð !Ð !Ð !Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ˆxÔ ñ ô ð ð*ð *ð *ð *ð *�xÔ(ñ *ô *ð *ðZ5,ð 5,ð 5,ð 5,ð 5,�HÔ'ñ 5,ô 5,ð 5,ðp}7ð }7ð }7ð }7ð }7˜Ô*ñ }7ô }7ð }7ð@V4ð V4ð V4ð V4ð V4˜hÔ1ñ V4ô V4ð V4ðrð ð ð ð �8Ô$ñ ô ð ðB@Að @Að @Að @Að @A xÔ'8ñ @Aô @Að @AðF	ð 	ð 	ð 	ð 	ØÔÐ @ñ	ô 	ð 	ðrð rð rð rð r˜hÔ/ñ rô rð rðjU
ð U
ð U
ð U
ð U
˜(Ô-ñ U
ô U
ð U
ð U
ð U
r3   