Ë
    r™ãj�ð  ã                  óF  — d Z ddlmZ ddlZddlZ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% ddl$m&Z& d d!lm'Z' d d"lm(Z( er<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m0Z0 dd*lm1Z1 dd+l!m2Z2 dd,l!m3Z3  e(jh                  d-d.«      Z5dTd1„Z6ed/e7eee7d2f      ee7   f   Z8ed3e7e7ee7   f   Z9ed0e7d2ee7   f   Z:ee8   Z; G d4„ d5e«      Z<	 	 	 	 	 	 	 	 	 	 	 	 dUd6„Z=d7„ Z>e	 	 	 	 dV	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dWd8„«       Z?e	 	 	 	 	 	 	 	 	 	 dXd9„«       Z?	 	 	 	 dY	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dZd:„Z?d;„ Z@	 	 	 	 	 	 	 	 d[d<„ZAd=„ ZBd>„ ZCd?„ ZDd@„ ZEdA„ ZFdB„ ZGdC„ ZH	 	 	 	 	 	 	 	 	 	 	 	 d\dD„ZIdE„ ZJe	 d]	 	 	 	 	 	 	 	 	 d^dF„«       ZKe	 	 	 	 	 	 	 	 	 	 d_dG„«       ZK	 	 d`	 	 	 	 	 	 	 	 	 	 	 dadH„ZKe	 d]	 	 	 	 	 	 	 	 	 d^dI„«       ZLe	 	 	 	 	 	 	 	 	 	 d_dJ„«       ZL	 	 d`	 	 	 	 	 	 	 	 	 	 	 dadK„ZL G dL„ dMej^                  e   «      ZM	 	 	 	 	 	 	 	 	 	 	 	 dbdN„ZNdO„ ZO	 	 	 	 	 	 	 	 	 	 	 	 	 	 dcdP„ZPdQ„ ZQdR„ ZRdS„ ZSy)dziFunctions used by compiler.py to determine the parameters rendered
within INSERT and UPDATE statements.

é    )ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDict)ÚIterable)ÚList)ÚLiteral)ÚMutableMapping)Ú
NamedTuple)ÚOptional)Úoverload)ÚSequence)ÚSet)ÚTuple)ÚTYPE_CHECKING)ÚUnioné   )Ú	coercions)Údml)Úelements)Úroles)Ú_DefaultDescriptionTuple)Úisinsert)ÚColumnClause)Údefault_is_clause_element)Údefault_is_sequence)ÚSelect)ÚTableClauseé   )Úexc)Úutil)Ú_BindNameForColProtocol)ÚSQLCompiler)Ú_DMLColumnElement)ÚDMLState)Ú
ValuesBase)ÚColumnElement)ÚDMLTargetCopy)ÚKeyedColumnElement)Ú_SQLExprDefault)ÚColumnÚREQUIREDa8  
Placeholder for the value within a :class:`.BindParameter`
which is required to be present when the statement is passed
to :meth:`_engine.Connection.execute`.

This symbol is typically used when a :func:`_expression.insert`
or :func:`_expression.update` statement is compiled without parameter
values present.

úColumnElement[Any]úColumnClause[Any]c                óV   — t        | t        «      st        j                  d| ›�«      ‚| S )Nz5Can't create DML statement against column expression )Ú
isinstancer   r!   ÚCompileError)Úcs    ú^/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/sqlalchemy/sql/crud.pyÚ_as_dml_columnr5   M   s0   € Ü�aœÔ&Ü×ÑØCÀAÀ5ÐIó
ð 	
ð €Hó    r+   úKeyedColumnElement[Any]c                  óL   — e Zd ZU ded<   ded<   dZded<   dZded<   d	Zd
ed<   y	)Ú_CrudParamszList[_CrudParamElementStr]Úsingle_paramsú$List[Sequence[_CrudParamElementStr]]Úall_multi_paramsFÚboolÚis_default_metavalue_onlyÚuse_insertmanyvaluesNzOptional[Sequence[Column[Any]]]Úuse_sentinel_columns)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r>   r?   r@   © r6   r4   r9   r9   m   s0   … Ø-Ó-Ø:Ó:Ø&+Ð˜tÓ+Ø!&Ð˜$Ó&Ø<@ÐÐ9Ô@r6   r9   c                óH  ‡— g | _         g | _        g | _        g | _        |j	                  dd«      }|�|j                  dd«       d|vsJ d«       ‚i }||d<   t        | ||«      \  Š}}|| _        |j                  r!|j                  rt        j                  d«      ‚|j                  r!t        | ||d|‰|dd||«       t        g g «      S | j                  €{|j                   rot        |j"                  j$                  D �	cg c]E  }	|	j&                  s7|	| j(                  j+                  |	«      t-        | |	dd¬	«      |	j.                  ff‘ŒG c}	g «      S t1        |«      rP|j2                  rD|j4                  }
|
€J ‚|
d
   }t7        |j9                  «       «      }|D �ch c]
  } ‰|«      ’Œ }}nK|j:                  r;|j:                  }t7        |j9                  «       «      }|D �ch c]
  } ‰|«      ’Œ }}ndx}}| j                  €i }nS|r-|€J ‚| j                  D �ci c]  }||vr ‰|«      t<        “Œ }}n$| j                  D �ci c]  } ‰|«      t<        “Œ }}g }|�t?        | |||‰||«       i }tA        jB                  |«      r|jD                  rtG        | ||||||||«	       t1        |«      r4|jH                  r(|j2                  rJ ‚tK        | ||||‰|||||«       d}d}ntM        | ||||‰|||||«      \  }}|�r\|�rYtO        |«      jQ                  ˆfd„|D «       «      jS                  |«      }|�r$tA        jB                  |«      rátO        d„ |D «       «      jS                  |jT                  g«      }|jS                  |jV                  «      }|rZ|jD                  r| jX                  sB| jX                  sd}nd}t        j                  |› ddj[                  d„ |D «       «      › d�«      ‚|r<| jX                  sJ ‚t        j                  ddj[                  d„ |D «       «      › �«      ‚t        j                  ddj[                  d„ |D «       «      z  «      ‚d}t1        |«      rs|j2                  rg|jH                  rJ ‚t]        | ||t_        d|«      t_        d‰«      |«      }|r'ta        | ‰||||«       |D ]  }ta        | ‰||||«       Œ t        ||«      S |s�| jb                  rƒ| jd                  jf                  rmti        |j"                  j$                  d
   «      | j(                  j+                  |j"                  j$                  d
   «      | jd                  jj                  dfg}d}|rta        | ‰||||«       t        |g |||¬«      S c c}	w c c}w c c}w c c}w c c}w )aQ  create a set of tuples representing column/string pairs for use
    in an INSERT or UPDATE statement.

    Also generates the Compiled object's postfetch, prefetch, and
    returning column collections, used for default handling and ultimately
    populating the CursorResult's prefetch_cols() and postfetch_cols()
    collections.

    Úvisiting_cteNÚaccumulate_bind_namesz;Don't know how to handle insert within insert without a CTEÚbindmarkerszVCan't compile statement that includes returning() and return_defaults() simultaneouslyrE   T)Úrequiredr   Fc              3  ó4   •K  — | ]  \  }} ‰|«      –— Œ y ­w©NrE   )Ú.0ÚkÚvÚ_column_as_keys      €r4   ú	<genexpr>z#_get_crud_params.<locals>.<genexpr>L  s   øè ø€ ÒN±°°1™.¨×+ÑNùs   ƒc              3  ór   K  — | ]/  \  }}t        |t        «      r|j                  �|j                  –— Œ1 y ­wrL   )r1   r   Útable)rM   r3   rO   s      r4   rQ   z#_get_crud_params.<locals>.<genexpr>R  s3   è ø€ ò 'á˜˜1Ü! !¤\Ô2°q·w±wÐ7Jð —G•Gñ'ùs   ‚57z<Backend does not support additional tables in the SET clausez/Statement is not a multi-table UPDATE statementz'; cannot include columns from table(s) ú, c              3  ó<   K  — | ]  }d |j                   › d �–— Œ y­w©ú'N©Údescription©rM   Úts     r4   rQ   z#_get_crud_params.<locals>.<genexpr>m  s'   è ø€ ò &AØ*+ð )*¨!¯-©-¨¸Ô&:ñ &Aùó   ‚z in SET clausez7Multi-table UPDATE statement does not include table(s) c              3  ó<   K  — | ]  }d |j                   › d �–— Œ y­wrV   rX   rZ   s     r4   rQ   z#_get_crud_params.<locals>.<genexpr>x  s%   è ø€ ò &8à !ð #$ A§M¡M ?°!Ô 4ñ&8ùr\   zUnconsumed column names: %sc              3  ó"   K  — | ]  }|›–— Œ	 y ­wrL   rE   )rM   r3   s     r4   rQ   z#_get_crud_params.<locals>.<genexpr>€  s   è ø€ Ò8¨Q¡Q›[Ñ8ùs   ‚úSequence[_CrudParamElementStr]úCallable[..., str])r>   r?   r@   )6Ú	postfetchÚinsert_prefetchÚupdate_prefetchÚimplicit_returningÚgetÚpopÚ_key_getters_for_crud_columnÚ_get_bind_name_for_colÚ
_returningÚ_return_defaultsr!   r2   ÚisdeleteÚ_setup_delete_return_defaultsr9   Úcolumn_keysÚ_no_parametersrS   ÚcolumnsÚ_omit_from_statementsÚpreparerÚformat_columnÚ_create_bind_paramÚkeyÚ_compile_state_isinsertÚ_has_multi_parametersÚ_multi_parametersÚlistÚitemsÚ_dict_parametersr-   Ú!_get_stmt_parameter_tuples_paramsr   ÚisupdateÚis_multitableÚ_get_update_multitable_paramsÚ_select_namesÚ_scan_insert_from_select_colsÚ
_scan_colsÚsetÚintersectionÚ
differenceÚ	dml_tableÚ_extra_fromsÚ'render_table_with_column_in_update_fromÚjoinÚ_extend_values_for_multiparamsr   Ú_replace_bindmarkersÚfor_executemanyÚdialectÚsupports_default_metavaluer5   Údefault_metavalue_token)ÚcompilerÚstmtÚcompile_stateÚtoplevelÚkwrG   rI   Ú_getattr_col_keyÚ_col_bind_namer3   ÚmpÚspdÚstmt_parameter_tuplesrt   Úspd_str_keyÚ
parametersÚvaluesÚcheck_columnsr?   r@   ÚcheckÚtables_mentionedÚmulti_not_in_fromÚpreambler>   Úmulti_extended_valuesÚm_vrP   s                              @r4   Ú_get_crud_paramsr£   u   s»  ø€ ðP €HÔØ!€HÔØ!€HÔØ"$€HÔà—6‘6˜.¨$Ó/€LØÐð
 	�‰Ð&¨Ô-à rÑ)ðEàDóEØ)ð KM€KØ#€B€}Ñô 	% X¨t°]ÓCñ	ØØØð '5€HÔ#à‡‚˜4×0Ò0Ü×Ñð/ó
ð 	
ð
 ×ÒÜ%ØØØØØØØØØØØô	
ô ˜2˜rÓ"Ð"ð ×ÑÐ#¨×(DÒ(DÜð Ÿ™×+Ñ+ö	ð Ø×.Ò.ð Ø×%Ñ%×3Ñ3°AÓ6Ü& x°°DÀ4ÔHØ—U‘U�Hò	ò	ð ó
ð 	
ô( 	  Ô.Ø×/Ò/à×,Ñ,ˆØˆ~Ðˆ~Ø�‰eˆÜ $ S§Y¡Y£[Ó 1ÐØ69Ö:¨s‘~ cÕ*Ð:ˆÑ:Ø	×	'Ò	'Ø×,Ñ,ˆÜ $ S§Y¡Y£[Ó 1ÐØ69Ö:¨s‘~ cÕ*Ð:ˆÑ:à.2Ð2Ð ð ×ÑÐ#Ø‰
Ù	ØÐ&Ð&Ð&ð  ×+Ñ+ö
àØ˜+Ñ%ñ ˜3Ó¤Ñ)ð
ˆ
ñ 
ð 6>×5IÑ5Iö
Ø.1‰N˜3Ó¤Ñ)ð
ˆ
ð 
ð
 *,€FàÐ(Ü)ØØØØ!ØØØô	
ð 35€Mô ‡|�|�MÔ" }×'BÒ'BÜ%ØØØØ!ØØØØØô
	
ô ˜}Ô-°$×2DÒ2Dð !×6Ò6Ð6Ð6ä%ØØØØØØØØØØØô	
ð  %ÐØ#Ñä5?ØØØØØØØØØØØó6
Ñ2ÐÐ2ò Ò+ä�
‹Oß‰\ÓNÐ8MÔNÓNß‰Z˜Ó&ð 	ò
 ä�|‰|˜MÔ*Ü#&ñ 'à 5ô'ó $÷ ‘*˜m×5Ñ5Ð6Ó7ð	 !ð %5×$?Ñ$?Ø!×.Ñ.ó%Ð!ñ $Ø%×3Ò3Ø#×KÒKà#×KÒKð7ñ !ð Nð !ô ×*Ñ*Ø#˜*ð %;à ŸI™Iñ &AØ/?ô&Aó Að;ð (ð	+óð ñ 'Ø#×KÒKÐKÐKÜ×*Ñ*ð$ð !ŸI™Iñ &8à%6ô&8ó 8ððóð ô ×"Ñ"Ø-Ø—9‘9Ñ8°%Ô8Ó8ñ:óð ð
 !&Ðô 	  Ô.Ø×/Ò/ð ×%Ò%Ð%Ð%Ü >ØØØÜØ0Øóô Ð% ~Ó6Øó
!
Ðñ Ü ØØØØØØôð -ò �Ü$ØØ"ØØ!ØØõðô ˜6Ð#8Ó9Ð9áØ×$Ò$Ø×Ñ×7Ò7ô ˜tŸz™z×1Ñ1°!Ñ4Ó5Ø×!Ñ!×/Ñ/°·
±
×0BÑ0BÀ1Ñ0EÓFØ× Ñ ×8Ñ8Øð	ð
ˆð %)Ð!áÜØ�n k°=À&È"ô	
ô ØØ
Ø";Ø1Ø1ôð ùò[	ùò4 ;ùò ;ùò
ùò
s   Ã=A
VÆVÇVÈVÉVc                óì   ‡ ‡‡‡‡— |D ���ci c]  \  }}}} ||«      |“Œ c}}}Šˆˆˆˆ ˆfd„}	|D ��
��cg c]"  \  }}
}}||
t        j                  d|	|«      |f‘Œ$ c}}}
}|d d  y c c}}}w c c}}}
}w )Nc                ó2  •— 	 ‰| j                  d«         S # t        $ rv}t        j                  ‰«      r4 ‰j                  ‰| j                  d«         j
                  fi ‰¤ŽcY d }~S t        j                  d| j                  d«      ›�«      |‚d }~ww xY w)Nr   z:Can't resolve referenced column name in INSERT statement: )ÚgroupÚKeyErrorr   r|   ÚprocessÚcolumnr!   r2   )ÚmÚkeÚ_expr_by_col_keyrI   r‘   r�   r“   s     €€€€€r4   Úreplace_markerz,_replace_bindmarkers.<locals>.replace_markerÒ  s‘   ø€ ð		Ø# A§G¡G¨A£JÑ/Ð/øÜò 	Ü�|‰|˜MÔ*Ø'�x×'Ñ'¨°A·G±G¸A³JÑ(?×(FÑ(FÑMÈ"ÑMÕMä×&Ñ&ð)Ø)*¯©°«¨ð8óð ðûð		ús!   ƒ —	B ABÁ#BÁ)(BÂBz__BINDMARKER_~~(.+?)~~)ÚreÚsub)r�   rP   rI   r‘   r›   r“   ÚcolÚ_Úcompiled_strr­   Ú	col_valueÚaccumulated_bind_namesr¬   s   ` `` `      @r4   rŠ   rŠ   Ë  s›   ü€ ð JP÷ð Ù.E¨c°1°lÀA‰�sÓ˜\Ñ)ôÐ÷
ð 
ð8 ÷!ñ ñ
ØØØØ"ð ØÜ�F‰FØ)ØØóð
 #ò		
õ€F‰1�Iùô!ùõ s
   ŒA'¶'A.
c                 ó   — y rL   rE   )r�   r°   Úvaluer¨   rJ   ÚnameÚforce_anonymousr“   s           r4   rs   rs   ò  s   € ð r6   c                 ó   — y rL   rE   )r�   r°   r¶   r“   s       r4   rs   rs   ÿ  ó   € ð r6   c                óª   — |rd }n|€|j                   }t        j                  |||j                  |¬«      }d|_        |r |j
                  | fi |¤ŽS |S )N)Útype_rJ   T)rt   r   ÚBindParameterÚtypeÚ_is_crudÚ_compiler_dispatch)	r�   r°   r¶   r¨   rJ   r·   r¸   r“   Ú	bindparams	            r4   rs   rs     sb   € ñ Ø‰Ø	ˆØ�w‰wˆä×&Ñ&Øˆe˜3Ÿ8™8¨hô€Ið €IÔÙØ+ˆy×+Ñ+¨HÑ;¸Ñ;Ð;àÐr6   c                ó,  — d|v }|sK|j                   r?t        |j                  t        j                  «      r|| j
                  d|j                  f<   |j                  j                  r|j                  |j                  «      } |j                  | fi |¤ŽS )NrG   rÁ   )
Úuniquer1   rt   r   Ú_truncated_labelÚtruncated_namesr¾   Ú_isnullÚ_with_binary_element_typerÀ   )r�   r°   r¶   r·   r“   Úis_ctes         r4   Ú_handle_values_anonymous_paramrÉ   !  s‚   € ð( ˜rÐ!€Fñ Ø�LŠLÜ�u—y‘y¤(×";Ñ";Ô<à=Aˆ× Ñ  +¨u¯y©yÐ!9Ñ:à‡z�z×Òð ×/Ñ/°·±Ó9ˆà#ˆ5×#Ñ# HÑ3°Ñ3Ð3r6   c                óª  ‡‡— t        j                  |«      ro|j                  rct        |j                  «      Št	        j
                  t        j                  t        j                  «      Š	 	 	 	 dˆˆfd„}	 	 	 	 dˆfd„}dˆfd„}nIt	        j
                  t        j                  t        j                  «      }t        j                  d«      x}}|||fS )Nrt   c                ó|   •—  ‰| «      }t        | d«      r&| j                  ‰v r| j                  j                  |fS |S )NrS   )ÚhasattrrS   r·   )rt   Ústr_keyÚ_etÚ
c_key_roles     €€r4   rP   z4_key_getters_for_crud_column.<locals>._column_as_key[  s;   ø€ ñ ! “oˆGÜ�s˜GÔ$¨¯©°cÑ)9ØŸ	™	Ÿ™¨Ð0Ð0à�r6   c                ó|   •— | j                   ‰v r"| j                   j                  | j                  fS | j                  S rL   )rS   r·   rt   ©r°   rÎ   s    €r4   r”   z6_key_getters_for_crud_column.<locals>._getattr_col_keyd  s1   ø€ ð �y‰y˜CÑØŸ	™	Ÿ™¨¯©Ð0Ð0à—w‘w�r6   c                óÆ   •— | j                   ‰v rGt        rt        | j                   t        «      sJ ‚| j                   j                  ›d| j
                  ›�S | j
                  S )Nr±   )rS   r   r1   r   r·   rt   rÑ   s    €r4   r•   z4_key_getters_for_crud_column.<locals>._col_bind_namel  sF   ø€ Ø�y‰y˜CÑÝ Ü% c§i¡i´Ô=Ð=Ð=Ø"%§)¡)§.£.°#·'²'Ð:Ð:à—w‘w�r6   )rt   zUnion[ColumnClause[Any], str]ÚreturnúUnion[str, Tuple[str, str]])r°   r/   rÓ   rÔ   )r°   r/   rÓ   Ústr)r   r|   r†   r‚   Ú	functoolsÚpartialr   Úexpect_as_keyr   ÚDMLColumnRoleÚoperatorÚ
attrgetter)r�   r�   r‘   rP   r”   r•   rÎ   rÏ   s         @@r4   rg   rg   G  sÄ   ù€ ô ‡|�|�MÔ" }×'AÒ'Aô �-×,Ñ,Ó-ˆä×&Ñ&Ü×#Ñ#¤U×%8Ñ%8ó
ˆ
ð	Ø.ð	à(ö	ð	Ø"ð	à(õ	ö	ô #×*Ñ*Ü×#Ñ#¤U×%8Ñ%8ó
ˆô -5×,?Ñ,?ÀÓ,FÐFÐ˜>àÐ+¨^Ð;Ð;r6   c           	     ó  — |j                   D �cg c]!  }|j                  j                   ||«         ‘Œ# }}| j                  d   d   |u sJ ‚|j                  | j                  d   d<   g }|j
                  r`t        |«      }|j                  j                  D ]<  }||vsŒ|j                  sŒ|j                  j                  rŒ,|j                  |«       Œ> |D ]a  } ||«      }||v rD||vr@|j                  |«       |j                  || j                  j                  |«      d df«       ŒSt        | ||||
«       Œc |r·|j                  |«       | j                  d   d   }t!        |t"        «      s/t%        j&                  ddj)                  d„ |D «       «      › d�«      ‚|j+                  «       }t-        |j.                  «      |D ��cg c]	  \  }}}}|‘Œ c}}z   |_        || j                  d   d<   y y c c}w c c}}w )	NéÿÿÿÿÚ
selectableÚinsert_from_selectrE   z_Can't extend statement for INSERT..FROM SELECT to include additional default-holding column(s) rT   c              3  ó<   K  — | ]  \  }}}}t        |«      –— Œ y ­wrL   )Úrepr)rM   r±   rt   s      r4   rQ   z0_scan_insert_from_select_cols.<locals>.<genexpr>µ  s   è ø€ ÒL©L¨A¨s°A°qœd 3ŸiÑLùr\   z~.  Convert the selectable to a subquery() first, or pass include_defaults=False to Insert.from_select() to skip these columns.)r   rS   r3   ÚstackÚselectÚ#include_insert_from_select_defaultsr‚   ro   ÚdefaultÚis_sentinelÚappendrf   rq   rr   Ú&_append_param_insert_select_hasdefaultÚextendr1   r   r!   r2   rˆ   Ú	_generaterx   Ú_raw_columns)r�   r�   r‘   rš   r”   rP   r•   rœ   r›   r’   r“   r·   ÚcolsÚadd_select_colsÚcol_setr°   r3   Úcol_keyÚins_from_selectr±   Úexprs                        r4   r€   r€   }  s  € ð <@×;MÑ;MÖN°4ˆD�J‰J�L‰L™¨Ó-Ó.ÐN€DÐNà�>‰>˜"Ñ˜lÑ+¨tÑ3Ð3Ð3à/3¯{©{€H‡N�N�2ÑÐ+Ñ,à68€OØ×/Ò/Ü�d“)ˆØ—:‘:×%Ñ%ò 	!ˆCð ˜7Ò"Ø—K“KØŸ™×/Ó/à—‘˜CÕ ð	!ð  ò ˆÙ" 1Ó%ˆØ�jÑ  W°MÑ%AØ�N‰N˜7Ô#Ø�M‰M˜1˜h×/Ñ/×=Ñ=¸aÓ@À$ÈÐKÕLä2Ø˜$  ?°Bõðñ Ø�‰�oÔ&Ø"Ÿ.™.¨Ñ,Ð-AÑBˆÜ˜/¬6Ô2Ü×"Ñ"ð8ð —I‘IÑL¸OÔLÓLððð	óð ð *×3Ñ3Ó5ˆä'+¨O×,HÑ,HÓ'IØ&5÷M
Ù"�Q˜˜4 ŠDóM
ñ (
ˆÔ$ð 4Cˆ�‰�rÑÐ/Ò0ð% ùòG OùódM
s   �&G7Ç
G<c                ó†  ‡— t        | |||	«      \  }}}}}}|j                  s|j                  sJ ‚|j                  r®|j                  D �cg c]
  } ||«      ‘Œ }}t        |«      }|D �cg c]C  }t        |t        «      r1||j                  j                  v r|j                  j                  |   ‘ŒE c}|j                  j                  D �cg c]  }|j                  |vsŒ|‘Œ c}z   }n|j                  j                  }t        |«      }|r9|j                  s-|j                  j                  }| j                  j                   }nd x}}|j"                  rt        |j"                  «      }n
t        «       }| j$                  }|D �]p  } ||«      }||v r||vrt'        | |||||||||||||
«       �n&|�r|j(                  r%|r#|rt+        | ||||
«       �nt-        | ||||
«       nò|j.                  �)|j.                  j0                  r|�Ît3        | |||||
«       n½|j4                  �@|r||v r|j7                  |«       n™|j(                  s�| j8                  j7                  |«       nq|r||v r|j7                  |«       nY|j(                  rM||j                  j                  ur5|j:                  s)t=        |«       n|j                  rt?        | ||||||
«       ||v s�ŒZ||vs�Œ`|j7                  |«       �Œs |r5|jA                  |«      Š|jC                  ˆfd„|j"                  D «       «       ||fS c c}w c c}w c c}w )Nc              3  ó*   •K  — | ]
  }|‰v r|–— Œ y ­wrL   rE   )rM   r3   Úremaining_supplementals     €r4   rQ   z_scan_cols.<locals>.<genexpr>p  s"   øè ø€ ò +
àØÐ*Ñ*ô ñ+
ùs   ƒ)"Ú_get_returning_modifiersr|   r   Ú_maintain_values_orderingrz   r‚   r1   rÕ   rS   r3   rt   ro   ru   rv   Ú_autoincrement_columnrŒ   Ú#insert_null_pk_still_autoincrementsÚ_supplemental_returningrd   Ú_append_param_parameterÚprimary_keyÚ!_append_param_insert_pk_returningÚ$_append_param_insert_pk_no_returningrå   ræ   Ú_append_param_insert_hasdefaultÚserver_defaultrç   ra   ÚnullableÚ"_warn_pk_with_no_anticipated_valueÚ_append_param_updater„   ré   )r�   r�   r‘   rš   r”   rP   r•   rœ   r›   r’   r“   Úneed_pksrd   Úimplicit_return_defaultsÚpostfetch_lastrowidr?   r@   rt   Úparameter_orderingÚordered_keysr3   rì   r   Úautoincrement_colrø   Úsupplemental_returningÚcompiler_implicit_returningrï   rô   s                               @r4   r�   r�   Â  sz  ø€ ô( 	! ¨4°ÀÓIñØØØ ØØØð ×!Ò! ]×%;Ò%;Ð;Ð;à×.Ò.à+8×+IÑ+Iö
Ø$'‰N˜3Õð
Ðð 
ô Ð-Ó.ˆð *ö
àÜ˜#œsÔ#¨¨t¯z©z¯|©|Ñ(;ð �J‰J�L‰L˜Óò
ð Ÿ
™
Ÿ™ÖB�1¨¯©°\Ò(AŠQÒBñ	C‰ð �z‰z×!Ñ!ˆä& }Ó5€HÙ˜×;Ò;ð !ŸJ™J×<Ñ<Ðà×Ñ×@Ñ@ñ 	,ð CGÐFÐÐ?à×#Ò#Ü!$ T×%AÑ%AÓ!BÑä!$£Ðà"*×"=Ñ"=Ðð
 ó i2ˆñ # 1Ó%ˆà�jÑ  W°MÑ%Aô $ØØØØØØØØ"Ø(Ø#ØØ!Ø3Øöò( ð �}Š}¡ñ
 &ô
 6Ø  $¨¨6°2öô 9Ø  $¨¨6°2õð —‘Ð&ð —y‘y×,Ò,Ø(Ð4ä3Ø  $¨Ð+CÀVÈRõð ×!Ñ!Ð-ñ ,°Ð5MÑ0MØ/×6Ñ6°qÕ9ØŸšØ×&Ñ&×-Ñ-¨aÕ0á)¨aÐ3KÑ.KØ+×2Ñ2°1Õ5ð —’Ø˜TŸZ™Z×=Ñ=Ñ=ØŸ
š
ä2°1Õ5à×#Ò#ô !ØØØØØ(ØØôð Ð'Ó'ØÐ4Ó4à'×.Ñ.¨qÖ1ðSi2ñV ð "8×!BÑ!BØ'ó"
Ðð 	$×*Ñ*ó +
à×1Ñ1ô+
ô 	
ð& !Ð"6Ð7Ð7ùòQ
ùò
ùò Cs   ÁL4Á+AL9ÃL>Ã!L>c                ó  ‡— t        | |||	«      ^}}}}|sy |j                  r| j                  j                  |«       |j                  rDt        | j                  «      Š| j                  j                  ˆfd„|j                  D «       «       y y )Nc              3  ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wrL   rE   )rM   r3   Úir_sets     €r4   rQ   z0_setup_delete_return_defaults.<locals>.<genexpr>Ÿ  s   øè ø€ ò +
Ø°qÀ²ŒAñ+
ùs   ƒ	�)rõ   Ú_return_defaults_columnsrd   ré   rù   r‚   )r�   r�   r‘   rš   r”   rP   r•   rœ   r›   r’   r“   r±   r  r  s                @r4   rl   rl   †  sŽ   ø€ ô *BØ�$˜ xó*Ð&€A€qÐ
" Qñ $Øà×$Ò$Ø×#Ñ#×*Ñ*Ð+CÔDà×#Ò#Ü�X×0Ñ0Ó1ˆØ×#Ñ#×*Ñ*ó +
Ø×3Ñ3ô+
õ 	
ð $r6   c                ó  — |j                  |«      }|j                  d«      d u}| j                  j                  ||j                  ¬«      }t        «       }t        j                  |«      r||r7|j                  r+||u r'|	rd| _	        n|r| j                  j                  |«       t        | ||f|t        u t        |«      r|j                  s ||«      n
d ||«      z  ||dœ|¤Ž}�n‘|j                   r“|rW|j"                  €K|j                  r?||u r;|r| j                  j                  |«       n| j$                  j                  rd| _	        t'        | ||ft        |«      r|j                  s ||«      n
d ||«      z  |dœ|¤Ž}nò | j(                  |j+                  «       fd|i|¤Ž}|j,                  r>|r ||v r| j                  j                  |«       n¡| j.                  j                  |«       n…|j                  r<|r| j                  j                  |«       n[| j$                  j                  rEd| _	        n=|r ||v r| j                  j                  |«       n| j.                  j                  |«       |
j                  ||||f«       y )NrG   ©Ú	use_tableTz%s_m0)rJ   r·   rH   r¸   )r·   rH   rH   )rf   re   rq   rr   Úinclude_table_with_column_exprsr‚   r   Ú_is_literalrû   r  rd   rç   rs   r-   ru   rv   Ú_is_bind_parameterr¶   rŒ   rÉ   r¨   Ú
self_groupr|   ra   )r�   r�   r‘   r3   rï   rš   r•   rd   r  r  r›   r  rø   r“   r¶   Úhas_visiting_cter³   r´   s                     r4   rú   rú   ¤  s”  € ð  �N‰N˜7Ó#€Eà—v‘v˜nÓ-°TÐ9ÐØ×!Ñ!×/Ñ/Ø	�]×BÑBð 0ó €Iô (+£uÐä×Ñ˜UÔ#á/Ø—’ØÐ&Ñ&ñ
 #Ø/3�Õ,Ù#Ø×+Ñ+×2Ñ2°1Ô5ä"ØØØð
ð œhÐ&ô /¨}Ô=Ø$×:Ò:ñ ˜qÔ!ð ™~¨aÓ0Ñ0à"8Ø,ñ
ð ñ
Šð 
×	!Ò	!á/Ø—‘Ð#Ø—’ØÐ&Ñ&ñ "Ø×+Ñ+×2Ñ2°1Õ5Ø×!Ñ!×5Ò5Ø/3�Ô,ä.ØØØð
ô /¨}Ô=Ø$×:Ò:ñ ˜qÔ!ð ™~¨aÓ0Ñ0à"8ñ
ð ñ
‰ð !�× Ñ Ø×ÑÓñ
à"8ð
ð ñ
ˆð ×!Ò!Ù'¨AÐ1IÑ,IØ×+Ñ+×2Ñ2°1Õ5ð ×"Ñ"×)Ñ)¨!Õ,à�}Š}Ù%Ø×/Ñ/×6Ñ6°qÕ9Ø×%Ñ%×9Ò9Ø37�HÕ0á)¨qÐ4LÑ/LØ×+Ñ+×2Ñ2°1Õ5ð ×"Ñ"×)Ñ)¨!Ô,à
‡M�M�1�i Ð(>Ð?Õ@r6   c           	     ó(  — |j                   ��­|j                   j                  r³| j                  j                  r�|j                   j                  r| j                  j
                  sUt        «       }|j                  || j                  j                  |«       | j                  |j                   fd|i|¤Ž|f«       | j                  j                  |«       y|j                   j                  r‰t        «       }|j                  || j                  j                  |«       | j                  |j                   j                  j                  «       fd|i|¤Ž|f«       | j                  j                  |«       y|j                  || j                  j                  |«      t        | |fi |¤Ž|j                   ff«       y||j"                  j$                  u s|j&                  �| j                  j                  |«       y|j(                  st+        |«       yy)z—Create a primary key expression in the INSERT statement where
    we want to populate result.inserted_primary_key and RETURNING
    is available.

    NrH   )rå   Úis_sequencerŒ   Úsupports_sequencesÚoptionalÚsequences_optionalr‚   rç   rq   rr   r¨   rd   Úis_clause_elementÚargr  Ú"_create_insert_prefetch_bind_paramrt   rS   r÷   rÿ   r   r  )r�   r�   r3   r›   r“   r´   s         r4   rü   rü     sÓ  € ð 	‡y�yÑØ�9‰9× Ò Ø×Ñ×2Ò2Ø—I‘I×&Ò&Ø×'Ñ'×:Ò:ä36³5Ð&Ø—‘àØ ×)Ñ)×7Ñ7¸Ó:Ø(˜×(Ñ(ØŸI™Iñà2Hðð !ñð
 /ð	ôð ×'Ñ'×.Ñ.¨qÕ1Ø�Y‰Y×(Ò(Ü%(£UÐ"Ø�M‰MàØ×%Ñ%×3Ñ3°AÓ6Ø$�H×$Ñ$ØŸ	™	Ÿ™×0Ñ0Ó2ñà.Dðð ñð
 +ð	ôð ×'Ñ'×.Ñ.¨qÕ1ð
 �M‰MàØ×%Ñ%×3Ñ3°AÓ6Ü6°xÀÑIÀbÑIØ—U‘U�Hð	õð 
ˆd�j‰j×.Ñ.Ñ	.°!×2BÑ2BÐ2NØ×#Ñ#×*Ñ*¨1Õ-Ø�ZŠZô 	+¨1Õ-ð r6   c           	     ó2  — |j                   �X|j                   j                  rÊ| j                  j                  r,|j                   j                  rž| j                  j
                  rˆ||j                  j                  u rµ| j                  j                  sŸ|j                   �,|j                   j                  r| j                  j                  s"|j                   €[| j                  j                  rE|j                  || j                  j                  |«      t        | |fi |¤Ž|j                  ff«       y|j                   €<|j                  €0|j                   s$||j                  j                  urt#        |«       y| j                  j                  rd| _        yy)ao  Create a primary key expression in the INSERT statement where
    we want to populate result.inserted_primary_key and we cannot use
    RETURNING.

    Depending on the kind of default here we may create a bound parameter
    in the INSERT statement and pre-execute a default generation function,
    or we may use cursor.lastrowid if supported by the dialect.


    NT)rå   r  rŒ   r  r  r  rS   r÷   r  Ú"preexecute_autoincrement_sequencesrç   rq   rr   r  rt   rÿ   r   r  ©r�   r�   r3   r›   r“   s        r4   rý   rý   V  sK  € ð 	
�	‰	Ðð —	‘	×%Ò%à× Ñ ×3Ò3àŸ	™	×*Ò*Ø#×+Ñ+×>Ò>ð 	
ˆT�Z‰Z×-Ñ-Ñ-ð × Ñ ×4Ò4ð —I‘IÐ)ØŸ	™	×-Ò-Ø ×(Ñ(×;Ò;ð —I‘IÐ%Ø ×(Ñ(×KÒKð 	�‰àØ×!Ñ!×/Ñ/°Ó2Ü2°8¸QÑEÀ"ÑEØ—‘�ð	õ	
ð 	
�	‰	ÐØ×ÑÐ$Ø—
’
Ø�T—Z‘Z×5Ñ5Ñ5ô 	+¨1Õ-Ø	×	Ñ	×	-Ò	-ð
 (,ˆÕ$ð 
.r6   c           	     ó  — |j                   j                  rä| j                  j                  rÍ|j                   j                  r| j                  j
                  s t        «       }|j                  || j                  j                  |«       | j                  |j                   fd|i|¤Ž|f«       |r ||v r| j                  j                  |«       y |j                  s| j                  j                  |«       y y y y |j                   j                  r¸t        «       }|j                  || j                  j                  |«       | j                  |j                   j                  j!                  «       fd|i|¤Ž|f«       |r ||v r| j                  j                  |«       y |j                  s| j                  j                  |«       y y |j                  || j                  j                  |«      t#        | |fi |¤Ž|j$                  ff«       y )NrH   )rå   r  rŒ   r  r  r  r‚   rç   rq   rr   r¨   rd   rû   ra   r  r  r  r  rt   )r�   r�   r3   r  r›   r“   r´   s          r4   rþ   rþ   £  sâ  € ð 	‡y�y×ÒØ×Ñ×.Ò.Ø—	‘	×"Ò"¨(×*:Ñ*:×*MÒ*Mä/2«uÐ"Ø�M‰MàØ×%Ñ%×3Ñ3°AÓ6Ø$�H×$Ñ$ØŸ	™	ñà.Dðð ñð
 +ð	ôñ (¨AÐ1IÑ,IØ×+Ñ+×2Ñ2°1Õ5Ø—]’]Ø×"Ñ"×)Ñ)¨!Õ,ð #ð# +Nð /ð( 
�‰×	$Ò	$Ü!$£ÐØ�‰àØ×!Ñ!×/Ñ/°Ó2Ø �× Ñ Ø—I‘I—M‘M×,Ñ,Ó.ñà*@ðð ñð
 'ð	ô	
ñ $¨Ð-EÑ(EØ×'Ñ'×.Ñ.¨qÕ1Ø—’à×Ñ×%Ñ% aÕ(ð ð 	�‰àØ×!Ñ!×/Ñ/°Ó2Ü2°8¸QÑEÀ"ÑEØ—‘�ð	õ	
r6   c           	     óœ  — t        |j                  «      r‹| j                  j                  rt|j                  j                  r| j                  j
                  sG|j                  || j                  j                  |«      |j                  j                  «       df«       y y y t        |j                  «      rQ|j                  || j                  j                  |«      |j                  j                  j                  «       df«       y |j                  || j                  j                  |«      t        | |fddi|¤Ž|j                  ff«       y )NrE   r¨   F)r   rå   rŒ   r  r  r  rç   rq   rr   Ú
next_valuer   r  r  r  rt   r!  s        r4   rè   rè   Ú  s  € ô ˜1Ÿ9™9Ô%Ø×Ñ×.Ò.Ø—	‘	×"Ò"¨(×*:Ñ*:×*MÒ*Mà�M‰MàØ×%Ñ%×3Ñ3°AÓ6Ø—I‘I×(Ñ(Ó*Øð	õð +Nð /ô 
# 1§9¡9Ô	-Ø�‰àØ×!Ñ!×/Ñ/°Ó2Ø—	‘	—‘×(Ñ(Ó*Øð	õ	
ð 	�‰àØ×!Ñ!×/Ñ/°Ó2Ü2Ø˜añØ).ðØ24ñð —‘�ðõ		
r6   c           	     ój  — |j                   }|j                  ��|j                  j                  sþ|j                  j                  r¡|j	                  || j
                  j                  ||¬«       | j                  |j                  j                  j                  «       fi |¤Ždf«       |r ||v r| j                  j	                  |«       y | j                  j	                  |«       y |j	                  || j
                  j                  ||¬«      t        | |fi |¤Ž|j                  ff«       y |j                  �>|r ||v r| j                  j	                  |«       y | j                  j	                  |«       y |r:|j                  s|j                   s!||v r| j                  j	                  |«       y y y y )Nr  rE   )r  Úonupdater  r  rç   rq   rr   r¨   r  r  rd   ra   Ú"_create_update_prefetch_bind_paramrt   Úserver_onupdater  rj   )r�   r‘   r�   r3   r  r›   r“   Úinclude_tables           r4   r  r    s”  € ð "×AÑA€MØ‡z�zÑ a§j¡j×&<Ò&<Ø�:‰:×'Ò'Ø�M‰MàØ×%Ñ%×3Ñ3ØØ"/ð 4ó ð %�H×$Ñ$ Q§Z¡Z§^¡^×%>Ñ%>Ó%@ÑGÀBÑGØðô
ñ (¨AÐ1IÑ,IØ×+Ñ+×2Ñ2°1Õ5à×"Ñ"×)Ñ)¨!Õ,à�M‰MàØ×%Ñ%×3Ñ3ØØ"/ð 4ó ô 7°xÀÑIÀbÑIØ—U‘U�Hðõ
ð 
×	Ñ	Ð	&Ù#¨Ð-EÑ(EØ×'Ñ'×.Ñ.¨qÕ1à×Ñ×%Ñ% aÕ(á Ø×*Ò*°$×2GÒ2GØÐ)Ñ)à×#Ñ#×*Ñ*¨1Õ-ð *ð 3Hð 	!r6   c                 ó   — y rL   rE   ©r�   r3   r¨   r“   s       r4   r  r  1  rº   r6   c                 ó   — y rL   rE   r+  s       r4   r  r  :  ó   € ð #&r6   c                ó^   — t        | |d f||dœ|¤Ž}| j                  j                  |«       |S ©N)r¨   r·   )rs   rb   rç   ©r�   r3   r¨   r·   r“   Úparams         r4   r  r  C  óB   € ô Ø�!�TðØ#*°ñØ9;ñ€Eð ×Ñ×#Ñ# AÔ&Ø€Lr6   c                 ó   — y rL   rE   r+  s       r4   r'  r'  Q  rº   r6   c                 ó   — y rL   rE   r+  s       r4   r'  r'  Z  r-  r6   c                ó^   — t        | |d f||dœ|¤Ž}| j                  j                  |«       |S r/  )rs   rc   rç   r0  s         r4   r'  r'  c  r2  r6   c                  ót   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zej                  d	d„«       Z
ej                  d	d„«       Zy)
Ú_multiparam_columnTc                ó–   — || _         d|j                  |dz   fz  | _        || _        |j                  | _        |j                  | _        y )Nú%s_m%dr   )Úindexrt   Úoriginalrå   r¾   )Úselfr;  r:  s      r4   Ú__init__z_multiparam_column.__init__t  sA   € ØˆŒ
Ø˜xŸ|™|¨U°Q©YÐ7Ñ7ˆŒØ ˆŒØ×'Ñ'ˆŒØ—M‘Mˆ�	r6   c                ó   — t        «       ‚rL   ©ÚNotImplementedError)r<  Úotherr“   s      r4   Úcomparez_multiparam_column.compare{  ó   € Ü!Ó#Ð#r6   c                ó   — t        «       ‚rL   r?  )r<  r“   s     r4   Ú_copy_internalsz"_multiparam_column._copy_internals~  rC  r6   c                óŽ   — t        |t        «      xr4 |j                  | j                  k(  xr |j                  | j                  k(  S rL   )r1   r7  rt   r;  )r<  rA  s     r4   Ú__eq__z_multiparam_column.__eq__�  s<   € ä�uÔ0Ó1ò 0Ø—	‘	˜TŸX™XÑ%ò0à—‘ $§-¡-Ñ/ð	
r6   c                ó@   — t        j                  | j                  «      S ©z1used by default.py -> _process_execute_defaults())r   Ú_from_column_defaultrå   ©r<  s    r4   Ú_default_description_tuplez-_multiparam_column._default_description_tupleˆ  s   € ô (×<Ñ<¸T¿\¹\ÓJÐJr6   c                ó@   — t        j                  | j                  «      S rI  )r   rJ  r&  rK  s    r4   Ú_onupdate_description_tuplez._multiparam_column._onupdate_description_tupleŽ  s   € ô (×<Ñ<¸T¿]¹]ÓKÐKr6   N)rÓ   r   )rA   rB   rC   Ú_is_multiparam_columnr=  rB  rE  rG  r"   Úmemoized_propertyrL  rN  rE   r6   r4   r7  r7  q  sT   „ Ø Ðò"ò$ò$ò
ð 
×ÑòKó ðKð
 
×ÑòLó ñLr6   r7  c                ó²  — |j                   st        j                  d|z  «      ‚t        |j                   «      r5 | j                  |j                   j
                  j                  «       fi |¤ŽS |j                   j                  r | j                  |j                   fi |¤ŽS t        ||«      }t        |t        j                  «      sJ ‚t        | |fddi|¤ŽS )Nz�INSERT value for column %s is explicitly rendered as a boundparameter in the VALUES clause; a Python-side value or SQL expression is requiredr¨   T)rå   r!   r2   r   r¨   r  r  r  r7  r1   r   ÚInsertr  )r�   r�   r3   r:  r“   r°   s         r4   Ú _process_multiparam_default_bindrS  •  sÑ   € ð �9Š9Ü×Ñð@àBCñDó
ð 	
ô
 
# 1§9¡9Ô	-Øˆx×Ñ §	¡	§¡× 8Ñ 8Ó :ÑA¸bÑAÐAØ	
�‰×	Ò	ð  ˆx×Ñ §	¡	Ñ0¨RÑ0Ð0ä   EÓ*ˆÜ˜$¤§
¡
Ô+Ð+Ð+Ü1Ø�cñ
Ø#'ð
Ø+-ñ
ð 	
r6   c	                óê  — |xs dD �	�
ci c]*  \  }	}
t        j                  t        j                  |	«      |
“Œ, }}	}
|j                  }t        «       }|j                  D �]P  }| xr |j                  j                  |«       }|j                  D �]  }	|	|v sŒ	|r#t        j                  d|j                  › d�«      ‚|j                  |«       |	| ||	«      <   ||	   }| j                  |	|¬«      }t        j                  |«      r+t!        | |	|f|t"        u  ||	«      dœ|¤Ž}|	j$                  f}nf|j&                  r ||	«      }t)        | |	|fd|i|¤Ž}|f}n>| j*                  j-                  |	«        | j                  |j/                  «       fi |¤Ž}d}|j-                  |	|||f«       �Œ �ŒS |D �]6  }|j                  D �]#  }	|	|v rŒ	|	j0                  �æ|	j0                  j2                  sÐ|	j0                  j4                  ru|j-                  |	| j                  |	|¬«       | j                  |	j0                  j6                  j/                  «       fi |¤Ždf«       | j*                  j-                  |	«       Œ¶|j-                  |	| j                  |	|¬«      t9        | |	fd ||	«      i|¤Ž|	j$                  ff«       Œû|	j:                  €�Œ	| j*                  j-                  |	«       �Œ& �Œ9 y c c}
}	w )NrE   zdBackend does not support additional tables in the SET clause; cannot include columns from table(s) 'z' in SET clause©r)  )rJ   r·   r·   )r   Úexpectr   rÙ   r  r‚   r†   r…   Úis_derived_fromr3   r!   r2   rY   Úaddr¨   r  rs   r-   rt   r  rÉ   ra   rç   r  r&  r  r  r  r'  r(  )r�   r�   r‘   r˜   rœ   r•   r”   r›   r“   r3   r1  Únormalized_paramsr)  Úaffected_tablesr[   Ú$we_shouldnt_be_here_if_columns_foundr¶   r³   r´   Úcbns                       r4   r~   r~   ¶  sC  € ð .Ò3°÷áˆAˆuô 	×Ñœ×,Ñ,¨aÓ0°%Ñ7ðÐñ ð
 "×AÑA€Mä“e€OØ×'Ñ'ó /Mˆð
 Ðò ?Ø!×+Ñ+×;Ñ;¸AÓ>Ð>ð 	-ð
 —‘ó &	MˆAØÐ%Ò%á7Ü×*Ñ*ðð ŸM™M˜?ð +%ð%óð ð  ×#Ñ# AÔ&à56�Ñ.¨qÓ1Ñ2Ø)¨!Ñ,�à$×,Ñ,¨Q¸mÐ,ÓL�	Ü×(Ñ(¨Ô/Ü.Ø ØØðð "'¬(Ð!2Ù+¨AÓ.ñð ñ�Eð >?¿U¹U¸HÑ*Ø×-Ò-Ù(¨Ó+�CÜ:Ø  ! UñØ14ðØ8:ñ�Eð /2¨VÑ*à×&Ñ&×-Ñ-¨aÔ0Ø,˜H×,Ñ,¨U×-=Ñ-=Ó-?ÑFÀ2ÑF�EØ-/Ð*Ø—‘˜q )¨UÐ4JÐKÖLòM&	Mð/Mðf ó -ˆØ—‘ó 	-ˆAØÐ%Ñ%ØØ—‘Ð'°·
±
×0FÒ0FØ—:‘:×/Ò/Ø—M‘MàØ$×,Ñ,¨Q¸mÐ,ÓLØ,˜H×,Ñ,Ø !§
¡
§¡× 9Ñ 9Ó ;ñØ?Añð ðô	ð ×&Ñ&×-Ñ-¨aÕ0à—M‘MàØ$×,Ñ,¨Q¸mÐ,ÓLÜ>Ø (¨!ñÙ2@ÀÓ2CðØGIñð ŸU™U˜Hðõ	ð ×"Ñ"Ò.Ø×"Ñ"×)Ñ)¨!Ö,ò9	-ñ-ùóws   Š/K/c           	     ób  — |}|g}|j                  d«      d u}|j                  }	|	€J ‚t        |	dd  «      D ]ï  \  }
}g }|j                  «       D ��ci c]  \  }} ||«      |“Œ }}}|D ]©  \  }}}}|j                  |v rp|j                  }t        j                  ||   «      r't        | |||   fd|j                  |
dz   fz  |dœ|¤Ž}n4 | j                  ||   j                  «       fi |¤Ž}nt        | |||
|«      }|j                  ||||f«       Œ« |j                  |«       Œñ |S c c}}w )NrG   r   r9  )r·   r¸   )re   rw   Ú	enumeratery   rt   r   r  rs   r¨   r  rS  rç   )r�   r�   r‘   Úinitial_valuesrP   r“   Úvalues_0r›   r  r–   ÚiÚrowÚ	extensionrt   rO   r°   Úcol_exprr1  Úaccumulated_namesÚ	new_params                       r4   r‰   r‰     su  € ð €HØÐ€Fà—v‘v˜nÓ-°TÐ9ÐØ	×	(Ñ	(€BØˆ>Ðˆ>Ü˜B˜q˜r˜FÓ#ò !‰ˆˆ3Ø02ˆ	à47·I±I³K×@©&¨#¨q‰~˜cÓ" AÑ%Ð@ˆÑ@à7?ò 	LÑ3ˆC�˜5Ð"3Ø�w‰w˜#‰~Ø—g‘g�ä×(Ñ(¨¨S©Ô2Ü 2Ø ØØ˜C™ð!ð '¨#¯'©'°1°q±5Ð)9Ñ9Ø(8ñ!ð ñ!‘Ið !1 × 0Ñ 0°°S±×1DÑ1DÓ1FÑ MÈ"Ñ M‘Iä<Ø˜d C¨¨Bó�	ð ×Ñ˜c 8¨YÐ8IÐJÕKð)	Lð, 	�‰�iÕ ð7!ð: €Mùó5 As   ÁD+c                ó  — |D ]û  \  }} ||«      }	|	�|j                  |	|«       Œ#| j                  ||j                  ¬«      }
t        j                  |«      r4 | j                  t        j                  d ||j                  ¬«      fi |¤Ž}n^|j                  r1|j                  j                  r|j                  |j                  «      } | j                  |j                  «       fi |¤Ž}|j                  ||
|df«       Œý y )NrU  )r¼   rE   )Ú
setdefaultr¨   r  r   r  r   r½   r¾   r  rÆ   rÇ   r  rç   )r�   r‘   rš   r˜   rP   r›   r“   rN   rO   Úcolkeyrd  s              r4   r{   r{   J  sø   € ð &ò 0‰ˆˆ1Ù Ó"ˆØÐØ×!Ñ! &¨!Õ,ð  ×'Ñ'Ø ×!NÑ!Nð (ó ˆHô ×$Ñ$ QÔ'Ø$�H×$Ñ$Ü×*Ñ*¨4°¸!¿&¹&ÔAñØEGñ‘ð ×'Ò'¨A¯F©F¯NªNð ×3Ñ3°A·F±FÓ;�Aà$�H×$Ñ$ Q§\¡\£^Ñ:°rÑ:�ð �M‰M˜1˜h¨¨2Ð.Õ/ñ=0r6   c                óP  — | j                   }|xrc t        |«      xrV |j                   xrG | j                   xs |j                  xr |j
                  xr |j                   xr |j                   }|xr& |j                  xr |j                  j                  du}|xra |j                  xrS |j                  j                  xr; |j                  xr- | xs |j                  xs |j                  xs |j
                  }|rd}t        |«      rœ|xr |j
                  }|xs |j                  xs |j                   }	|xr< | j                  xr. |j"                  xr  |	xs |j$                  xr |j&                  du }
d}|
rÒ|	rÐ|j(                  rÄ| j+                  |j                  «      }n¨|j,                  rE|j
                  xr2 |j                  j                  xr |j                  xr |j.                  }d}
d}nW|j0                  rE|j
                  xr2 |j                  j                  xr |j                  xr |j2                  }d}
d}nd}d}
d}|rB|j4                  s t7        |j                  j8                  «      }nt7        |j4                  «      }nd}||xs ||||
|fS )z´determines RETURNING strategy, if any, for the statement.

    This is where it's determined what we need to fetch from the
    INSERT or UPDATE statement after it's invoked.

    NF)rŒ   ru   Ú_inliner‹   Úinsert_executemany_returningrj   ri   rv   r  rS   r÷   Úinsert_returningÚ_primary_tablerd   Ú_supports_implicit_returningÚfavor_returning_over_lastrowidrù   r?   Ú!use_insertmanyvalues_wo_returningÚ_post_values_clauseÚ_sort_by_parameter_orderÚ_get_sentinel_column_for_tabler|   Úupdate_returningrk   Údelete_returningr  r‚   r3   )r�   r�   r‘   r’   rŒ   r  r  rd   Úshould_implicit_return_defaultsÚexplicit_returningr?   r@   r  s                r4   rõ   rõ   t  s  € ð ×Ñ€Gð 	ò 		4Ü# MÓ2ò		4à—‘Ðò		4ð ×(Ñ(Ð(ò PØ×4Ñ4ÒN¸×9NÑ9Nò		4ð —‘Ðò		4ð ×3Ñ3Ð3ð ð  	ò 	9Ø×'Ñ'ò	9à�J‰J×,Ñ,°DÐ8ð ð 	ò 	
ð ×$Ñ$ò	
ð
 ×(Ñ(×;Ñ;ò	
ð ×6Ñ6ò	
ð$ %Ð$ÒN¨×(NÑ(Nò %Ø×2Ñ2ò%à×$Ñ$ð- ñ2 Ø#Ðä˜}Ô-àÒ8 4×#8Ñ#8ð 	(ð ,ò ,Ø�‰ò,à×+Ñ+ð 	ð ò Ø×(Ñ(òà×,Ñ,òð #ò à×=Ñ=ò 9ð
 ×0Ñ0°DÐ8ð 	ð"  $Ðá Ù"Ø×-Ò-à#+×#JÑ#JØ—
‘
ó$Ñ ð 
×	Ò	à×!Ñ!ò )Ø×,Ñ,×?Ñ?ò)à×:Ñ:ò)ð ×(Ñ(ð	 	(ð  %ÐØ#ÑØ	×	Ò	à×!Ñ!ò )Ø×,Ñ,×?Ñ?ò)à×:Ñ:ò)ð ×(Ñ(ð	 	(ð  %ÐØ#Ñà*/Ð'Ø$ÐØ#Ðá&Ø×,Ò,ô (+¨4¯:©:¯<©<Ó'8Ñ$ä'*¨4×+HÑ+HÓ'IÑ$à#'Ð ð 	ØÒ=Ð=Ø ØØØðð r6   c                óø   — d| j                   j                  ›d| j                  ›d| j                   j                  ›d�}t        | j                   j                  «      dkD  r|dz  }t        j                  |«       y )NzColumn 'ú.z6' is marked as a member of the primary key for table 'z×', but has no Python-side or server-side default generator indicated, nor does it indicate 'autoincrement=True' or 'nullable=True', and no explicit value is passed.  Primary key columns typically may not store NULL.r   a0   Note that as of SQLAlchemy 1.1, 'autoincrement=True' must be indicated explicitly for composite (e.g. multicolumn) primary keys if AUTO_INCREMENT/SERIAL/IDENTITY behavior is expected for one of the columns in the primary key. CREATE TABLE statements are impacted by this change as well on most backends.)rS   Úfullnamer·   Úlenrû   r"   Úwarn)r3   Úmsgs     r4   r  r    sb   � ð �7‰7×Ó˜QŸV›V Q§W¡W×%5Ó%5ð	7ð ô ˆ1�7‰7×ÑÓ !Ò#Øðñ	
ˆô 	‡I�Iˆc…Nr6   )r3   r.   rÓ   r/   )r�   r$   r�   r'   r‘   r&   r’   r=   r“   r   rÓ   r9   ).FNF)r�   r$   r°   r.   r¶   r   r¨   úLiteral[True]rJ   r=   r·   úOptional[str]r¸   r=   r“   r   rÓ   rÕ   )
r�   r$   r°   r.   r¶   r   r“   r   rÓ   rÕ   )TFNF)r�   r$   r°   r.   r¶   r   r¨   r=   rJ   r=   r·   r€  r¸   r=   r“   r   rÓ   z'Union[str, elements.BindParameter[Any]])r�   r$   r�   r'   r‘   r&   rÓ   z¢Tuple[Callable[[Union[str, ColumnClause[Any]]], Union[str, Tuple[str, str]]], Callable[[ColumnClause[Any]], Union[str, Tuple[str, str]]], _BindNameForColProtocol])r�   r$   r�   r'   r3   r/   r›   zList[_CrudParamElementSQLExpr]r“   úDict[str, Any]rÓ   ÚNone).)
r�   r$   r3   r.   r¨   r  r“   r   rÓ   rÕ   )
r�   r$   r3   r.   r¨   zLiteral[False]r“   r   rÓ   zelements.BindParameter[Any])TN)r�   r$   r3   r.   r¨   r=   r·   r€  r“   r   rÓ   z'Union[elements.BindParameter[Any], str])r�   r$   r�   r'   r3   r7   r:  Úintr“   r�  rÓ   rÕ   )r�   r$   r�   r'   r‘   r&   r_  r_   rP   r`   r“   r�  rÓ   r;   )TÚ__doc__Ú
__future__r   rÖ   rÚ   r®   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Ú r   r   r   r   Úbaser   r   ru   r   Úschemar   r   rÞ   r   r   r!   r"   r�   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   Úsymbolr-   r5   rÕ   Ú_CrudParamElementÚ_CrudParamElementStrÚ_CrudParamElementSQLExprÚ_CrudParamSequencer9   r£   rŠ   rs   rÉ   rg   r€   r�   rl   rú   rü   rý   rþ   rè   r  r  r'  r7  rS  r~   r‰   r{   rõ   r  rE   r6   r4   ú<module>r�     s¨  ðñõ
 #ã Û Û 	Ý Ý Ý Ý Ý Ý Ý Ý !Ý Ý Ý Ý Ý Ý Ý  Ý å Ý Ý Ý Ý *Ý 4Ý "Ý -Ý 'Ý Ý #Ý Ý áÝ1Ý%Ý&ÝÝÝ'Ý'Ý,Ý'Ýàˆ4�;‰;Øð	ó€óð ØØØØˆcÐ$Ð$Ñ%ñð ˆS�MðñÐ ð ØØØØˆS�MðñÐ ð !ØØØØˆS�MðñÐ ð Ð+Ñ,Ð ôA�*ô AðSØðSà
ðSð ðSð ð	Sð
 ðSð óSòl
$ðN 
ð
 !ØØØ!ð	Øð	à	ð	ð ð	ð ð		ð
 ð	ð ð	ð ð	ð ð	ð 	ò	ó 
ð	ð 
ðØðà	ðð ðð ð	ð
 	òó 
ðð ØØØ!ðØðà	ðð ðð ð	ð
 ðð ðð ðð ðð -óò2#4ðL3<Øð3<Ø!+ð3<Ø<Dð3<ðó3<òlBCòJA8òH
ò<rAòj:.òzJ,òZ4
ðn&
Øð&
à
ð&
ð ð&
ð +ð	&
ð
 	ð&
ð 
ó&
òR+.ð\ 
ð !ðØðàðð ðð ð	ð
 	òó 
ðð 
ð&Øð&àð&ð ð&ð ð	&ð
 !ò&ó 
ð&ð Øð	Øðàðð ðð ð	ð
 ðð -óð 
ð !ðØðàðð ðð ð	ð
 	òó 
ðð 
ð&Øð&àð&ð ð&ð ð	&ð
 !ò&ó 
ð&ð Øð	Øðàðð ðð ð	ð
 ðð -óô!L˜×/Ñ/°Ñ4ô !LðH
Øð
à
ð
ð ð
ð ð	
ð
 	ð
ð 	ó
òBc-ðL+Øð+à
ð+ð ð+ð 3ð	+ð
 'ð+ð 	ð+ð *ó+ò\'0òTNóbr6   