3
ŠãdeJ©  ã            ƒ   @   s\  U d Z ddlZddlmZmZ ddlmZmZmZm	Z	m
Z
mZmZmZ ddlmZmZ ddlmZ dZed	Zed
ZedZeddddddddddddddddddddddddddddddddddddddddddddddddddddœ3Zeee	eeeef  f dýZeeeef ddgZee ddgZee eeedœdd„Zeeeedœdd„ZG d d!„ d!eƒZ G d"d#„ d#e ƒZ!G d$d%„ d%e ƒZ"G d&d'„ d'e!ƒZ#G d(d)„ d)eƒZ$G d*d+„ d+e e$d,�Z%G d-d.„ d.e!ƒZ&G d/d0„ d0e!ƒZ'G d1d2„ d2eƒZ(G d3d4„ d4e e(d,�Z)G d5d6„ d6e ƒZ*G d7d8„ d8e ƒZ+G d9d:„ d:e ƒZ,d;d<d=d>d?d@dAdBdCdDg
Z-ee -dEdFdGdHdIdJdKdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrœ.Z.eeef .e.Z/eeef /dsdtdudvdwdxdydzd{d|d}d~dd€d�d‚dƒd„d…d†d‡dˆd‰dŠd‹dŒd�dŽd�d�d‘d’d“d”d•d–d—d˜d™dšd›dœd�dždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdÜdÝdÞdßdàdádâdãdädådædçdèdédêdëdìdídîdïdðdñdòdódôdõœ‚Z0eeef 0död÷dødùdúdûœZ1eeef 1e.e/e0e1düœZ2eeeeef f 2e.j3ƒ e/j3ƒ e0j3ƒ e1j3ƒ düœZ4eeee f 4dS )þz+Various MySQL constants and character sets.é    N)ÚABCÚABCMeta)ÚAnyÚDictÚListÚOptionalÚSequenceÚTupleÚUnionÚ
ValuesViewé   )ÚMYSQL_CHARACTER_SETSÚMYSQL_CHARACTER_SETS_57)ÚProgrammingErroriÿÿÿ i    i   é   Ú z	127.0.0.1iê  TÚutf8mb4F)3ZdatabaseÚuserÚpasswordZ	password1Z	password2Z	password3ÚhostÚportZunix_socketZuse_unicodeÚcharsetÚ	collationZconverter_classZconverter_str_fallbackZ
autocommitZ	time_zoneZsql_modeZget_warningsZraise_on_warningsZconnection_timeoutZclient_flagsÚcompressZbufferedÚrawZssl_caZssl_certZssl_keyZssl_verify_certZssl_verify_identityZ
ssl_cipherZtls_ciphersuitesZssl_disabledZtls_versionsÚpasswdÚdbÚconnect_timeoutZdsnZ
force_ipv6Zauth_pluginZallow_local_infileZallow_local_infile_in_pathZconsume_resultsZ
conn_attrsZdns_srvZuse_pureZkrb_service_principalZoci_config_fileZoci_config_profileZfido_callbackZkerberos_auth_modeZinit_commandÚ	pool_nameÚ	pool_sizeÚpool_reset_sessionzTLSv1.2zTLSv1.3ÚTLSv1zTLSv1.1)ÚflagÚflagsÚreturnc             C   s   || @ dkrdS dS )z.Checks if the flag is set

    Returns booleanr   TF© )r"   r#   r%   r%   úP/var/www/agendate/envp3/lib/python3.6/site-packages/mysql/connector/constants.pyÚflag_is_setj   s    r'   )ÚnameÚnew_nameÚvaluer$   c             C   s    t jd| › d|› d�td� |S )a  Raise a deprecation warning and advise a new option name.

    Args:
        name (str): The name of the option.
        new_name (str): The new option name.
        value (int): The value of the option.

    Returns:
        int: The value of the option.
    zThe option 'z' has been deprecated, use 'z
' instead.)Úcategory)ÚwarningsÚwarnÚDeprecationWarning)r(   r)   r*   r%   r%   r&   Ú_obsolete_options   s    r/   c               @   s�   e Zd ZU dZdZei Zeeee	ef f e
eee dœdd„ƒZe
e	eee eeef f dœdd„ƒZe
eeee f d	œd
d„ƒZdS )Ú
_ConstantszBase class for constants.r   )r(   r$   c             C   s,   y| j | d S  ttfk
r&   dS X dS )z!Get description of given constantr   N)ÚdescÚ
IndexErrorÚKeyError)Úclsr(   r%   r%   r&   Úget_desc‹   s    z_Constants.get_desc)Úsetidr$   c             C   s,   x&| j jƒ D ]\}}|d |kr|S qW dS )z$Get information about given constantr   N)r1   Úitems)r4   r6   r(   Úinfor%   r%   r&   Úget_info“   s    z_Constants.get_info)r$   c             C   sR   g }ydd„ | j jƒ D ƒ}W n0 ttfk
rL } zd|› �}W Y dd}~X nX |S )z)get full information about given constantc             S   s"   g | ]\}}|› d |d › �‘qS )z : r   r%   )Ú.0ÚkÚvr%   r%   r&   ú
<listcomp>    s    z,_Constants.get_full_info.<locals>.<listcomp>z(No information found in constant class. N)r1   r7   ÚAttributeErrorr2   )r4   ÚresÚerrr%   r%   r&   Úget_full_info›   s    z_Constants.get_full_infoN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚprefixÚstrr1   r   r	   ÚintÚclassmethodr   r5   r
   r9   r   rA   r%   r%   r%   r&   r0   …   s   
&r0   c               @   s(   e Zd ZdZeeee dœdd„ƒZdS )Ú_Flagsz'Base class for classes describing flags)r*   r$   c             C   s6   g }x,| j jƒ D ]\}}||d @ r|j|ƒ qW |S )z@Get the name of all bits set

        Returns a list of strings.r   )r1   r7   Úappend)r4   r*   r?   r(   r8   r%   r%   r&   Úget_bit_infoª   s
    z_Flags.get_bit_infoN)	rB   rC   rD   rE   rI   rH   r   rG   rL   r%   r%   r%   r&   rJ   §   s   rJ   c               @   s¤  e Zd ZU dZdZedZedZedZ	e	dZ
e
dZedZed	Zed
ZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZ e dZ!e!dZ"e"dFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dad;œZ#e$ee%eef f #e&e'e d<œd=d>„ƒZ(e&e'e d<œd?d@„ƒZ)e&e'e d<œdAdB„ƒZ*e&e'e d<œdCdD„ƒZ+dES )bÚ	FieldTypezMySQL Field TypesZFIELD_TYPE_r   r   é   é   é   é   é   é   r   é	   é
   é   é   é   é   é   é   éõ   éö   é÷   éø   éù   éú   éû   éü   éý   éþ   éÿ   ÚDECIMALÚTINYÚSHORTÚLONGÚFLOATÚDOUBLEÚNULLÚ	TIMESTAMPÚLONGLONGÚINT24ÚDATEÚTIMEÚDATETIMEÚYEARÚNEWDATEÚVARCHARÚBITÚJSONÚ
NEWDECIMALÚENUMÚSETÚ	TINY_BLOBÚMEDIUM_BLOBÚ	LONG_BLOBÚBLOBÚ
VAR_STRINGÚSTRINGÚGEOMETRY)rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   )r$   c             C   s   | j | j| j| jgS )z Get the list of all string types)rv   rz   r€   r�   )r4   r%   r%   r&   Úget_string_typesö   s    zFieldType.get_string_typesc             C   s   | j | j| j| jgS )z Get the list of all binary types)r|   r}   r~   r   )r4   r%   r%   r&   Úget_binary_types   s    zFieldType.get_binary_typesc             C   s0   | j | j| j| j| j| j| j| j| j| j	| j
gS )z Get the list of all number types)rg   ry   rh   ri   rj   rk   rl   ro   rp   rw   rt   )r4   r%   r%   r&   Úget_number_types
  s    zFieldType.get_number_typesc             C   s   | j | jgS )z#Get the list of all timestamp types)rs   rn   )r4   r%   r%   r&   Úget_timestamp_types  s    zFieldType.get_timestamp_typesN)r   rg   )r   rh   )rN   ri   )rO   rj   )rP   rk   )rQ   rl   )rR   rm   )rS   rn   )r   ro   )rT   rp   )rU   rq   )rV   rr   )rW   rs   )rX   rt   )rY   ru   )rZ   rv   )r[   rw   )r\   rx   )r]   ry   )r^   rz   )r_   r{   )r`   r|   )ra   r}   )rb   r~   )rc   r   )rd   r€   )re   r�   )rf   r‚   ),rB   rC   rD   rE   rF   rG   rg   rH   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   r1   r   r	   rI   r   rƒ   r„   r…   r†   r%   r%   r%   r&   rM   ¶   s„   
		rM   c               @   s  e Zd ZU dZdZed1Zed2Zed3Z	e	d4Z
e
d5Zed6Zed7Zed8Zed9Zed:Zed;Zed<Zed=Zed>Zed?Zed@ZedAZedBZedCZedDZedEZedFZedGZedIdKdMdOdQdSdUdWdYd[d]d_dadcdedgdidkdmdodqdsdud/œZeee eef f d0S )vÚ	FieldFlagz_MySQL Field Flags

    Field flags as found in MySQL sources mysql-src/include/mysql_com.h
    r   r   r   rN   rO   rP   rQ   rR   rS   r   rT   rU   rV   rW   rX   rY   rZ   r[   é   é   é   é   é   úField can't be NULLúField is part of a primary keyúField is part of a unique keyúField is part of a keyúField is a blobúField is unsignedúField is zerofillúField is binary  úfield is an enumúfield is a autoincrement fieldúField is a timestampúfield is a setú Field doesn't have default valueúField is set to NOW on UPDATEúField is num (for clients)úIntern; Part of some keyúIntern: Group fieldúIntern: Used by sql_yaccúUsed to get fields in item treeúField part of partition funcúIntern: Field used in ADD INDEXúIntern: Field is being renamed)ÚNOT_NULLÚPRI_KEYÚ
UNIQUE_KEYÚMULTIPLE_KEYr   ÚUNSIGNEDÚZEROFILLÚBINARYrz   ÚAUTO_INCREMENTrn   r{   ÚNO_DEFAULT_VALUEÚON_UPDATE_NOWÚNUMÚPART_KEYÚGROUPÚUNIQUEÚBINCMPÚGET_FIXED_FIELDSÚFIELD_IN_PART_FUNCÚFIELD_IN_ADD_INDEXÚFIELD_IS_RENAMEDNr   rN   rP   r   r[   é    é@   é€   é   i   i   i   i   i    i @  i €  i @  i   i   i   i   i   i    r   )r   r�   rN   )rN   rŽ   rP   )rP   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¢   )!rB   rC   rD   rE   Ú_prefixrG   r£   rH   r¤   r¥   r¦   r   r§   r¨   r©   rz   rª   rn   r{   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   rµ   r1   r   r	   r%   r%   r%   r&   r‡   $  s`   
r‡   c                   s(   e Zd ZdZeedœ‡ fdd„Z‡  ZS )ÚServerCmdMetazClientFlag Metaclass.)r(   r$   c                s.   d	}||kr"t jd|› d�td� tƒ j|ƒS )
NÚ
FIELD_LISTÚREFRESHÚSHUTDOWNÚPROCESS_INFOÚPROCESS_KILLzThe option 'ServerCmd.z8' is deprecated and will be removed in a future release.)r+   )rÊ   rË   rÌ   rÍ   rÎ   )r,   r-   r.   ÚsuperÚ__getattribute__)r4   r(   Zdeprecated_options)Ú	__class__r%   r&   rÐ   d  s        
zServerCmdMeta.__getattribute__)rB   rC   rD   rE   rG   r   rÐ   Ú__classcell__r%   r%   )rÑ   r&   rÉ   a  s   rÉ   c            !   @   st  e Zd ZU dZdZedZedZedZ	e	dZ
e
dZedZed	Zed
ZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZ e dZ!e!dZ"e"dZ#e#d Z$e$d!Z%e%d"Z&e&dEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddCœ Z'e(ee)eef f 'dDS )eÚ	ServerCmdzMySQL Server CommandsZCOM_r   r   rN   rO   rP   rQ   rR   rS   r   rT   rU   rV   rW   rX   rY   rZ   r[   rˆ   r‰   rŠ   r‹   rŒ   é   é   é   é   é   é   é   é   é   é   ÚSLEEPÚQUITÚINIT_DBÚQUERYrÊ   Ú	CREATE_DBÚDROP_DBrË   rÌ   Ú
STATISTICSrÍ   ÚCONNECTrÎ   ÚDEBUGÚPINGrr   ÚDELAYED_INSERTÚCHANGE_USERÚBINLOG_DUMPÚ
TABLE_DUMPÚCONNECT_OUTÚREGISTER_REPLICAÚSTMT_PREPAREÚSTMT_EXECUTEÚSTMT_SEND_LONG_DATAÚ
STMT_CLOSEÚ
STMT_RESETÚ
SET_OPTIONÚ
STMT_FETCHÚDAEMONÚBINLOG_DUMP_GTIDÚRESET_CONNECTION) rÞ   rß   rà   rá   rÊ   râ   rã   rË   rÌ   rä   rÍ   rå   rÎ   ræ   rç   rr   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   N)r   rÞ   )r   rß   )rN   rà   )rO   rá   )rP   rÊ   )rQ   râ   )rR   rã   )rS   rË   )r   rÌ   )rT   rä   )rU   rÍ   )rV   rå   )rW   rÎ   )rX   ræ   )rY   rç   )rZ   rr   )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÷   )*rB   rC   rD   rE   rÈ   rG   rÞ   rH   rß   rà   rá   rÊ   râ   rã   rË   rÌ   rä   rÍ   rå   rÎ   ræ   rç   rr   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   r1   r   r	   r%   r%   r%   r&   rÓ   u  s„   
rÓ   )Ú	metaclassc               @   s†  e Zd ZU dZd?Zed@ZedAZedBZedCZ	e	dDZ
e
dEZedFZedGZedHZedIZedJZedKZedLZedMZedNZedOZedPZedQZedRZedSZedTZedUZedVZedWZedXZedYZedZZ e d[Z!e!d\Z"e"d^d`dbdddfdhdjdldndpdrdtdvdxdzd|d~d€d‚d„d†dˆdŠdŒdŽd�d’d”d–d:œZ#e$e%e&ee%f f #eeeeeeeeeg	Z'e(e 'e)ed;œd<d=„ƒZ*d>S )—Ú
ClientFlagzgMySQL Client Flags

    Client options as found in the MySQL sources mysql-src/include/mysql_com.h
    r   r   rN   rO   rP   rQ   rR   rS   r   rT   rU   rV   rW   rX   rY   rZ   r[   rˆ   r‰   rŠ   r‹   rŒ   rÔ   rÕ   rÖ   rÙ   rÜ   rÝ   rÚ   úNew more secure passwordsúFound instead of affected rowsúGet all column flagsúOne can specify db on connectú!Don't allow database.table.columnúCan use compression protocolúODBC clientúCan use LOAD DATA LOCALúIgnore spaces before ''úNew 4.1 protocolúThis is an interactive clientúSwitch to SSL after handshakeúIGNORE sigpipesúClient knows about transactionsúOld flag for 4.1 protocolúNew 4.1 authenticationú!Enable/disable multi-stmt supportúEnable/disable multi-resultsúMulti-results in PS-protocolú%Client supports plugin authenticationú%Client supports connection attributesúAEnable authentication response packet to be larger than 255 bytesúADon't close the connection for a connection with expired passwordú3Capable of handling server state change informationú!Client no longer needs EOF packetú/Support optional extension for query parametersr   )ÚLONG_PASSWDÚ
FOUND_ROWSÚ	LONG_FLAGÚCONNECT_WITH_DBÚ	NO_SCHEMAÚCOMPRESSÚODBCÚLOCAL_FILESÚIGNORE_SPACEÚPROTOCOL_41ÚINTERACTIVEÚSSLÚIGNORE_SIGPIPEÚTRANSACTIONSÚRESERVEDÚSECURE_CONNECTIONÚMULTI_STATEMENTSÚMULTI_RESULTSÚPS_MULTI_RESULTSÚPLUGIN_AUTHÚCONNECT_ARGSÚPLUGIN_AUTH_LENENC_CLIENT_DATAÚCAN_HANDLE_EXPIRED_PASSWORDSÚSESION_TRACKÚSESSION_TRACKÚDEPRECATE_EOFÚCLIENT_QUERY_ATTRIBUTESÚSSL_VERIFY_SERVER_CERTÚREMEMBER_OPTIONS)r$   c             C   s    d}x| j D ]}||O }qW |S )zbGet the default client options set

        Returns a flag with all the default client options setr   )Údefault)r4   r#   Úoptionr%   r%   r&   Úget_default  s    zClientFlag.get_defaultNr   rN   rP   r   r[   r¶   r·   r¸   r¹   i   i   i   i   i    i @  i €  i   i   i   i   i   i    i  @ i  € i  € i   i   i   @l        i   r   )r   rú   rN   )rN   rû   rP   )rP   rü   r   )r   rý   r[   )r[   rþ   r¶   )r¶   rÿ   r·   )r·   r   r¸   )r¸   r  r¹   )r¹   r  é   )r4  r  é   )r5  r  é   )r6  r  é   )r7  r  é    )r8  r  é @  )r9  r  é €  )r:  r	  é   )r;  r
  é   )r<  r  é   )r=  r  é   )r>  r  é   )r?  r  é    )r@  r  é  @ )rA  r  é  € )rB  r  é  € )rC  r  é   )rD  r  é   )rE  r  é   @)rF  r   ì        )rG  r   )+rB   rC   rD   rE   r  rH   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/  r0  ZMULTI_FACTOR_AUTHENTICATIONr1   r   rG   r	   r1  r   rI   r3  r%   r%   r%   r&   rù   ¾  s˜   
     rù   c               @   sÀ   e Zd ZU dZdZed"Zed#Zed$Z	e	d%Z
e
d&Zed'Zed(Zed)Zed*Zed+Zed,Zed-Zed.Zed/Zed1d3d5d7d9d;d=d?dAdBdCdDdEdGd œZeeeeef f d!S )HÚ
ServerFlagzeMySQL Server Flags

    Server flags as found in the MySQL sources mysql-src/include/mysql_com.h
    ZSERVER_r   r   rO   rP   rQ   rR   rS   r   rT   rU   rV   rW   rX   rY   úTransaction has startedúServer in auto_commit modeúMulti query - next query existsr   úESet when server opened a read-only non-scrollable cursor for a query.ú(Set when a read-only cursor is exhaustedúA database was droppedé   ú‚Set if after a prepared statement reprepare we discovered that the new statement returns a different number of result set columns.é   é   ú5To mark ResultSet containing output parameter values.é    ú>Set if multi-statement transaction is a read-only transaction.úVSession state has changed on the server because of the execution of the last statement)ZSERVER_STATUS_IN_TRANSZSERVER_STATUS_AUTOCOMMITZSERVER_MORE_RESULTS_EXISTSZSERVER_QUERY_NO_GOOD_INDEX_USEDZSERVER_QUERY_NO_INDEX_USEDZSERVER_STATUS_CURSOR_EXISTSZSERVER_STATUS_LAST_ROW_SENTZSERVER_STATUS_DB_DROPPEDZ"SERVER_STATUS_NO_BACKSLASH_ESCAPESÚSERVER_STATUS_METADATA_CHANGEDÚSERVER_QUERY_WAS_SLOWÚSERVER_PS_OUT_PARAMSÚSERVER_STATUS_IN_TRANS_READONLYÚSERVER_SESSION_STATE_CHANGEDNr   rN   r   r[   r¶   r·   r¸   r¹   i   i   i   i   i    i @  r   )r   rI  rN   )rN   rJ  r   )r   rK  r[   )r[   r   r¶   )r¶   r   r·   )r·   rL  r¸   )r¸   rM  r¹   )r¹   rN  é   )r\  r   )rO  rP  )rQ  r   )rR  rS  )rT  rU  é @  )r]  rV  )rB   rC   rD   rE   rÈ   rG   ZSTATUS_IN_TRANSrH   ZSTATUS_AUTOCOMMITZMORE_RESULTS_EXISTSZQUERY_NO_GOOD_INDEX_USEDZQUERY_NO_INDEX_USEDZSTATUS_CURSOR_EXISTSZSTATUS_LAST_ROW_SENTZSTATUS_DB_DROPPEDZSTATUS_NO_BACKSLASH_ESCAPESrW  rX  rY  rZ  r[  r1   r   r	   r%   r%   r%   r&   rH  )  sJ   
       rH  c               @   s"   e Zd ZdZeedœdd„ƒZdS )ÚRefreshOptionMetazRefreshOption Metaclass.)r$   c             C   s   t ddtjƒS )zzReturn the deprecated alias of RefreshOption.REPLICA.

        Raises a warning about this attribute deprecation.
        zRefreshOption.SLAVEzRefreshOption.REPLICA)r/   ÚRefreshOptionÚREPLICA)Úselfr%   r%   r&   ÚSLAVEn  s    zRefreshOptionMeta.SLAVEN)rB   rC   rD   rE   ÚpropertyrH   rb  r%   r%   r%   r&   r^  k  s   r^  c            	   @   s|   e Zd ZU dZdZedZedZedZ	e	dZ
e
dZedZedZeddd d"d$d&d(d*dœZeeeeef f dS )+r_  zbMySQL Refresh command options.

    Options used when sending the COM_REFRESH server command.
    ZREFRESH_r   r   rN   rO   rP   rQ   rR   úRefresh grant tablesúStart on new log fileúclose all tablesúFlush host cacheúFlush status variablesúFlush thread cacheú,Reset source info and restart replica threadú'Deprecated option; use REPLICA instead.)ÚGRANTÚLOGÚTABLESÚHOSTÚSTATUSÚTHREADSr`  rb  Nr   rN   rP   r   r[   r¶   r·   r   )r   rd  rN   )rN   re  rP   )rP   rf  r   )r   rg  r[   )r[   rh  r¶   )r¶   ri  r·   )r·   rj  r·   )r·   rk  )rB   rC   rD   rE   rÈ   rG   rl  rH   rm  rn  ro  rp  rq  r`  r1   r   r	   r%   r%   r%   r&   r_  {  s"   
r_  c            	   @   s¤   e Zd ZU dZdZedZedZedZ	e	dZ
e
dZedZed	Zed
Zeedfedfe	dfe
dfedfedfedfedfdœZeeeeef f dS )ÚShutdownTypezVMySQL Shutdown types

    Shutdown types used by the COM_SHUTDOWN server command.
    r   r   r   rN   r   r[   rˆ   re   rf   z%defaults to SHUTDOWN_WAIT_ALL_BUFFERSz'wait for existing connections to finishz!wait for existing trans to finishz#wait for existing updates to finishz-flush InnoDB and other storage engine buffersz@don't flush InnoDB buffers, flush other storage engines' buffersz(no description))ÚSHUTDOWN_DEFAULTÚSHUTDOWN_WAIT_CONNECTIONSÚSHUTDOWN_WAIT_TRANSACTIONSÚSHUTDOWN_WAIT_UPDATESÚSHUTDOWN_WAIT_ALL_BUFFERSÚSHUTDOWN_WAIT_CRITICAL_BUFFERSÚ
KILL_QUERYÚKILL_CONNECTIONN)rB   rC   rD   rE   rÈ   rG   rs  rH   rt  ru  rv  rw  rx  ry  rz  r1   r   r	   r%   r%   r%   r&   rr  –  s0   
rr  c               @   s
  e Zd ZU dZeZeeee	e	e
f   dZeedf dZeedf eeedf ddœdd„ƒZeeee	e	f dœdd„ƒZeee	dœdd„ƒZeeee	f ee	e	ef dœdd„ƒZed eeee	f  ee	 eee	e	f dœdd„ƒZeee	df dœdd„ƒZdS )!ÚCharacterSetaL  MySQL supported character sets and collations

    List of character sets with their collations supported by MySQL. This
    maps to the character set we get from the server within the handshake
    packet.

    The list is hardcode so we avoid a database query when getting the
    name of the used character set or collation.
    rQ   rS   .r   rX   rÚ   éT   éW   éX   N)Úversionr$   c             C   s"   |dd… | _ | j dkrt| _dS )z�Set the MySQL major version and change the charset mapping if is 5.7.

        Args:
            version (tuple): MySQL version tuple.
        NrN   r   r   )r   r   )Úmysql_versionr   r1   )r4   r  r%   r%   r&   Úset_mysql_versionØ  s    
zCharacterSet.set_mysql_version)r6   r$   c             C   s>   y| j | dd… S  tk
r8   td|› d�ƒd‚Y nX dS )a  Retrieves character set information as tuple using an ID

        Retrieves character set and collation information based on the
        given MySQL ID.

        Raises ProgrammingError when character set is not supported.

        Returns a tuple.
        r   rN   zCharacter set 'z' unsupportedN)r1   r2   r   )r4   r6   r%   r%   r&   r9   ã  s    zCharacterSet.get_info)r(   r$   c             C   s   | j |ƒ\}}|› d|› �S )z¼Retrieves character set information as string using an ID

        Retrieves character set and collation information based on the
        given MySQL ID.

        Returns a tuple.
        ú/)r9   )r4   r(   r   r   r%   r%   r&   r5   ó  s    	zCharacterSet.get_desc)r   r$   c             C   sÀ   t |tƒr`y| j| }|d |d |fS  ttfk
r^ } ztd|› d�ƒ|‚W Y dd}~X nX xJt| jƒD ]<\}}|dkr~ql|d |krl|d dkrl|d |d |fS qlW td|› d�ƒ‚dS )	z¸Retrieves the default collation for given character set

        Raises ProgrammingError when character set is not supported.

        Returns list (collation, charset, index)
        r   r   zCharacter set ID 'z' unsupportedNrN   TzCharacter set ')Ú
isinstancerH   r1   r2   r3   r   Ú	enumerate)r4   r   r8   r@   Úcidr%   r%   r&   Úget_default_collationÿ  s    

z"CharacterSet.get_default_collation)r   r   r$   c             C   s|  d}t |tƒr`y| j| }||d |d fS  tk
r^ } ztd|› d�ƒ|‚W Y dd}~X nX |dkrv| jdkrvd	}|dk	r¦|dkr¦| j|ƒ}|d
 |d |d fS |dko´|dk	�rx>t| jƒD ]0\}}|dkrÖqÄ||d krÄ||d |d fS qÄW td|› d�ƒ‚xTt| jƒD ]F\}}|dk�r*�q|d |k�r|d |k�r||d |d fS �qW | j|ƒ}td|› d�ƒ‚dS )aE  Get character set information using charset name and/or collation

        Retrieves character set and collation information given character
        set name and/or a collation name.
        If charset is an integer, it will look up the character set based
        on the MySQL's ID.
        For example:
            get_charset_info('utf8',None)
            get_charset_info(collation='utf8_general_ci')
            get_charset_info(47)

        Raises ProgrammingError when character set is not supported.

        Returns a tuple with (id, characterset name, collation)
        Nr   r   zCharacter set ID z unknownÚutf8úutf-8r   r   rN   zCollation 'z	' unknown)r‡  rˆ  )r   r   )rƒ  rH   r1   r2   r   r€  r†  r„  )r4   r   r   r8   r@   r…  Ú_r%   r%   r&   Úget_charset_info  s4    

$


zCharacterSet.get_charset_info)r$   c             C   s:   g }x,| j D ]"}|r|d |kr|j|d ƒ qW t|ƒS )z^Retrieves a list with names of all supproted character sets

        Returns a tuple.
        r   )r1   rK   Útuple)r4   r?   r8   r%   r%   r&   Úget_supportedG  s
    zCharacterSet.get_supported)rQ   rS   )r   rX   rÚ   r|  r}  r~  )NN)rB   rC   rD   rE   r   r1   r   r   r	   rG   Úboolr€  rH   Zslash_charsetsrI   r�  r9   r5   r
   r†  rŠ  rŒ  r%   r%   r%   r&   r{  Ä  s"   
	
$,r{  c               @   sd  e Zd ZU dZdZedZedZedZedZ	e	dZ
e
dZed	Zed
ZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZedZ e dZ!e!dZ"e"d Z#e#d!Z$e$d"Z%e%e&ee'e d#œd$d%„ƒZ(e&e)e'e d&œd'd(„ƒZ*e&e+ed)f d*œd+d,„ƒZ,d-S ).ÚSQLModezúMySQL SQL Modes

    The numeric values of SQL Modes are not interesting, only the names
    are used when setting the SQL_MODE system variable using the MySQL
    SET command.

    See http://dev.mysql.com/doc/refman/5.6/en/server-sql-mode.html
    ZMODE_ÚREAL_AS_FLOATÚPIPES_AS_CONCATÚANSI_QUOTESr  ÚNOT_USEDÚONLY_FULL_GROUP_BYÚNO_UNSIGNED_SUBTRACTIONÚNO_DIR_IN_CREATEÚ
POSTGRESQLÚORACLEÚMSSQLÚDB2ÚMAXDBÚNO_KEY_OPTIONSÚNO_TABLE_OPTIONSÚNO_FIELD_OPTIONSÚMYSQL323ÚMYSQL40ÚANSIÚNO_AUTO_VALUE_ON_ZEROÚNO_BACKSLASH_ESCAPESÚSTRICT_TRANS_TABLESÚSTRICT_ALL_TABLESÚNO_ZERO_IN_DATEÚNO_ZERO_DATEÚINVALID_DATESÚERROR_FOR_DIVISION_BY_ZEROÚTRADITIONALÚNO_AUTO_CREATE_USERÚHIGH_NOT_PRECEDENCEÚNO_ENGINE_SUBSTITUTIONÚPAD_CHAR_TO_FULL_LENGTH)r(   r$   c             C   s   t ‚d S )N)ÚNotImplementedError)r4   r(   r%   r%   r&   r5   €  s    zSQLMode.get_desc)r6   r$   c             C   s   t ‚d S )N)r®  )r4   r6   r%   r%   r&   r9   „  s    zSQLMode.get_info.)r$   c             C   sN   g }x<t | ƒjƒ D ],}|jdƒ rtt| |ƒdƒ r|j|ƒ qW tt|ƒƒS )zËReturns a sequence of all available SQL Modes

        This class method returns a tuple containing all SQL Mode names. The
        names will be alphabetically sorted.

        Returns a tuple.
        r‰  Ú__call__)ÚvarsÚkeysÚ
startswithÚhasattrÚgetattrrK   r‹  Úsorted)r4   r?   Úkeyr%   r%   r&   rA   ˆ  s
    	zSQLMode.get_full_infoN)-rB   rC   rD   rE   rÈ   rG   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­  rI   r   r5   rH   r9   r	   rA   r%   r%   r%   r&   rŽ  T  sP   
rŽ  Ú_pidÚ	_platformZ_source_hostZ_client_nameZ_client_licenseZ_client_versionÚ_osZ_connector_nameZ_connector_licenseZ_connector_versionzNULL-MD5zNULL-SHAzRC4-MD5zRC4-SHAzIDEA-CBC-SHAzDES-CBC3-SHAzNot implemented.zDHE-DSS-DES-CBC3-SHAzDHE-RSA-DES-CBC3-SHAzADH-RC4-MD5zADH-DES-CBC3-SHAz
AES128-SHAz
AES256-SHAzDH-DSS-AES128-SHAzDH-DSS-AES256-SHAzDH-RSA-AES128-SHAzDH-RSA-AES256-SHAzDHE-DSS-AES128-SHAzDHE-DSS-AES256-SHAzDHE-RSA-AES128-SHAzDHE-RSA-AES256-SHAzADH-AES128-SHAzADH-AES256-SHAzCAMELLIA128-SHAzCAMELLIA256-SHAzDH-DSS-CAMELLIA128-SHAzDH-DSS-CAMELLIA256-SHAzDH-RSA-CAMELLIA128-SHAzDH-RSA-CAMELLIA256-SHAzDHE-DSS-CAMELLIA128-SHAzDHE-DSS-CAMELLIA256-SHAzDHE-RSA-CAMELLIA128-SHAzDHE-RSA-CAMELLIA256-SHAzADH-CAMELLIA128-SHAzADH-CAMELLIA256-SHAzSEED-SHAzDH-DSS-SEED-SHAzDH-RSA-SEED-SHAzDHE-DSS-SEED-SHAzDHE-RSA-SEED-SHAzADH-SEED-SHAzGOST94-GOST89-GOST89zGOST2001-GOST89-GOST89zGOST94-NULL-GOST94zGOST2001-NULL-GOST94).ZTLS_RSA_WITH_NULL_MD5ZTLS_RSA_WITH_NULL_SHAZTLS_RSA_WITH_RC4_128_MD5ZTLS_RSA_WITH_RC4_128_SHAZTLS_RSA_WITH_IDEA_CBC_SHAZTLS_RSA_WITH_3DES_EDE_CBC_SHAZ TLS_DH_DSS_WITH_3DES_EDE_CBC_SHAZ TLS_DH_RSA_WITH_3DES_EDE_CBC_SHAZ!TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHAZ!TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHAZTLS_DH_anon_WITH_RC4_128_MD5Z!TLS_DH_anon_WITH_3DES_EDE_CBC_SHAZTLS_RSA_WITH_AES_128_CBC_SHAZTLS_RSA_WITH_AES_256_CBC_SHAZTLS_DH_DSS_WITH_AES_128_CBC_SHAZTLS_DH_DSS_WITH_AES_256_CBC_SHAZTLS_DH_RSA_WITH_AES_128_CBC_SHAZTLS_DH_RSA_WITH_AES_256_CBC_SHAZ TLS_DHE_DSS_WITH_AES_128_CBC_SHAZ TLS_DHE_DSS_WITH_AES_256_CBC_SHAZ TLS_DHE_RSA_WITH_AES_128_CBC_SHAZ TLS_DHE_RSA_WITH_AES_256_CBC_SHAZ TLS_DH_anon_WITH_AES_128_CBC_SHAZ TLS_DH_anon_WITH_AES_256_CBC_SHAZ!TLS_RSA_WITH_CAMELLIA_128_CBC_SHAZ!TLS_RSA_WITH_CAMELLIA_256_CBC_SHAZ$TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHAZ$TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHAZ$TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHAZ$TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHAZ%TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHAZ%TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHAZ%TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHAZ%TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHAZ%TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHAZ%TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHAZTLS_RSA_WITH_SEED_CBC_SHAZTLS_DH_DSS_WITH_SEED_CBC_SHAZTLS_DH_RSA_WITH_SEED_CBC_SHAZTLS_DHE_DSS_WITH_SEED_CBC_SHAZTLS_DHE_RSA_WITH_SEED_CBC_SHAZTLS_DH_anon_WITH_SEED_CBC_SHAZ#TLS_GOSTR341094_WITH_28147_CNT_IMITZ#TLS_GOSTR341001_WITH_28147_CNT_IMITZ#TLS_GOSTR341094_WITH_NULL_GOSTR3411Z#TLS_GOSTR341001_WITH_NULL_GOSTR3411zNULL-SHA256zAES128-SHA256zAES256-SHA256zAES128-GCM-SHA256zAES256-GCM-SHA384zDH-RSA-AES128-SHA256zDH-RSA-AES256-SHA256zDH-RSA-AES128-GCM-SHA256zDH-RSA-AES256-GCM-SHA384zDH-DSS-AES128-SHA256zDH-DSS-AES256-SHA256zDH-DSS-AES128-GCM-SHA256zDH-DSS-AES256-GCM-SHA384zDHE-RSA-AES128-SHA256zDHE-RSA-AES256-SHA256zDHE-RSA-AES128-GCM-SHA256zDHE-RSA-AES256-GCM-SHA384zDHE-DSS-AES128-SHA256zDHE-DSS-AES256-SHA256zDHE-DSS-AES128-GCM-SHA256zDHE-DSS-AES256-GCM-SHA384zECDHE-RSA-AES128-SHA256zECDHE-RSA-AES256-SHA384zECDHE-RSA-AES128-GCM-SHA256zECDHE-RSA-AES256-GCM-SHA384zECDHE-ECDSA-AES128-SHA256zECDHE-ECDSA-AES256-SHA384zECDHE-ECDSA-AES128-GCM-SHA256zECDHE-ECDSA-AES256-GCM-SHA384zADH-AES128-SHA256zADH-AES256-SHA256zADH-AES128-GCM-SHA256zADH-AES256-GCM-SHA384z
AES128-CCMz
AES256-CCMzDHE-RSA-AES128-CCMzDHE-RSA-AES256-CCMzAES128-CCM8zAES256-CCM8zDHE-RSA-AES128-CCM8zDHE-RSA-AES256-CCM8zECDHE-ECDSA-AES128-CCMzECDHE-ECDSA-AES256-CCMzECDHE-ECDSA-AES128-CCM8zECDHE-ECDSA-AES256-CCM8zARIA128-GCM-SHA256zARIA256-GCM-SHA384zDHE-RSA-ARIA128-GCM-SHA256zDHE-RSA-ARIA256-GCM-SHA384zDHE-DSS-ARIA128-GCM-SHA256zDHE-DSS-ARIA256-GCM-SHA384zECDHE-ECDSA-ARIA128-GCM-SHA256zECDHE-ECDSA-ARIA256-GCM-SHA384zECDHE-ARIA128-GCM-SHA256zECDHE-ARIA256-GCM-SHA384zPSK-ARIA128-GCM-SHA256zPSK-ARIA256-GCM-SHA384zDHE-PSK-ARIA128-GCM-SHA256zDHE-PSK-ARIA256-GCM-SHA384zRSA-PSK-ARIA128-GCM-SHA256zRSA-PSK-ARIA256-GCM-SHA384zECDHE-ECDSA-CAMELLIA128-SHA256zECDHE-ECDSA-CAMELLIA256-SHA384zECDHE-RSA-CAMELLIA128-SHA256zECDHE-RSA-CAMELLIA256-SHA384zPSK-NULL-SHAzDHE-PSK-NULL-SHAzRSA-PSK-NULL-SHAzPSK-RC4-SHAzPSK-3DES-EDE-CBC-SHAzPSK-AES128-CBC-SHAzPSK-AES256-CBC-SHAzDHE-PSK-RC4-SHAzDHE-PSK-3DES-EDE-CBC-SHAzDHE-PSK-AES128-CBC-SHAzDHE-PSK-AES256-CBC-SHAzRSA-PSK-RC4-SHAzRSA-PSK-3DES-EDE-CBC-SHAzRSA-PSK-AES128-CBC-SHAzRSA-PSK-AES256-CBC-SHAzPSK-AES128-GCM-SHA256zPSK-AES256-GCM-SHA384zDHE-PSK-AES128-GCM-SHA256zDHE-PSK-AES256-GCM-SHA384zRSA-PSK-AES128-GCM-SHA256zRSA-PSK-AES256-GCM-SHA384zPSK-AES128-CBC-SHA256zPSK-AES256-CBC-SHA384zPSK-NULL-SHA256zPSK-NULL-SHA384zDHE-PSK-AES128-CBC-SHA256zDHE-PSK-AES256-CBC-SHA384zDHE-PSK-NULL-SHA256zDHE-PSK-NULL-SHA384zRSA-PSK-AES128-CBC-SHA256zRSA-PSK-AES256-CBC-SHA384zRSA-PSK-NULL-SHA256zRSA-PSK-NULL-SHA384zECDHE-PSK-RC4-SHAzECDHE-PSK-3DES-EDE-CBC-SHAzECDHE-PSK-AES128-CBC-SHAzECDHE-PSK-AES256-CBC-SHAzECDHE-PSK-AES128-CBC-SHA256zECDHE-PSK-AES256-CBC-SHA384zECDHE-PSK-NULL-SHAzECDHE-PSK-NULL-SHA256zECDHE-PSK-NULL-SHA384zPSK-CAMELLIA128-SHA256zPSK-CAMELLIA256-SHA384zDHE-PSK-CAMELLIA128-SHA256zDHE-PSK-CAMELLIA256-SHA384zRSA-PSK-CAMELLIA128-SHA256zRSA-PSK-CAMELLIA256-SHA384zECDHE-PSK-CAMELLIA128-SHA256zECDHE-PSK-CAMELLIA256-SHA384zPSK-AES128-CCMzPSK-AES256-CCMzDHE-PSK-AES128-CCMzDHE-PSK-AES256-CCMzPSK-AES128-CCM8zPSK-AES256-CCM8zDHE-PSK-AES128-CCM8zDHE-PSK-AES256-CCM8zECDHE-RSA-CHACHA20-POLY1305zECDHE-ECDSA-CHACHA20-POLY1305zDHE-RSA-CHACHA20-POLY1305zPSK-CHACHA20-POLY1305zECDHE-PSK-CHACHA20-POLY1305zDHE-PSK-CHACHA20-POLY1305zRSA-PSK-CHACHA20-POLY1305)‚ZTLS_RSA_WITH_NULL_SHA256ZTLS_RSA_WITH_AES_128_CBC_SHA256ZTLS_RSA_WITH_AES_256_CBC_SHA256ZTLS_RSA_WITH_AES_128_GCM_SHA256ZTLS_RSA_WITH_AES_256_GCM_SHA384Z"TLS_DH_RSA_WITH_AES_128_CBC_SHA256Z"TLS_DH_RSA_WITH_AES_256_CBC_SHA256Z"TLS_DH_RSA_WITH_AES_128_GCM_SHA256Z"TLS_DH_RSA_WITH_AES_256_GCM_SHA384Z"TLS_DH_DSS_WITH_AES_128_CBC_SHA256Z"TLS_DH_DSS_WITH_AES_256_CBC_SHA256Z"TLS_DH_DSS_WITH_AES_128_GCM_SHA256Z"TLS_DH_DSS_WITH_AES_256_GCM_SHA384Z#TLS_DHE_RSA_WITH_AES_128_CBC_SHA256Z#TLS_DHE_RSA_WITH_AES_256_CBC_SHA256Z#TLS_DHE_RSA_WITH_AES_128_GCM_SHA256Z#TLS_DHE_RSA_WITH_AES_256_GCM_SHA384Z#TLS_DHE_DSS_WITH_AES_128_CBC_SHA256Z#TLS_DHE_DSS_WITH_AES_256_CBC_SHA256Z#TLS_DHE_DSS_WITH_AES_128_GCM_SHA256Z#TLS_DHE_DSS_WITH_AES_256_GCM_SHA384Z%TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256Z%TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384Z%TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256Z%TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384Z'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256Z'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384Z'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256Z'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384Z#TLS_DH_anon_WITH_AES_128_CBC_SHA256Z#TLS_DH_anon_WITH_AES_256_CBC_SHA256Z#TLS_DH_anon_WITH_AES_128_GCM_SHA256Z#TLS_DH_anon_WITH_AES_256_GCM_SHA384ZRSA_WITH_AES_128_CCMZRSA_WITH_AES_256_CCMZDHE_RSA_WITH_AES_128_CCMZDHE_RSA_WITH_AES_256_CCMZRSA_WITH_AES_128_CCM_8ZRSA_WITH_AES_256_CCM_8ZDHE_RSA_WITH_AES_128_CCM_8ZDHE_RSA_WITH_AES_256_CCM_8ZECDHE_ECDSA_WITH_AES_128_CCMZECDHE_ECDSA_WITH_AES_256_CCMZECDHE_ECDSA_WITH_AES_128_CCM_8ZECDHE_ECDSA_WITH_AES_256_CCM_8Z TLS_RSA_WITH_ARIA_128_GCM_SHA256Z TLS_RSA_WITH_ARIA_256_GCM_SHA384Z$TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256Z$TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384Z$TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256Z$TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384Z(TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256Z(TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384Z&TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256Z&TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384Z TLS_PSK_WITH_ARIA_128_GCM_SHA256Z TLS_PSK_WITH_ARIA_256_GCM_SHA384Z$TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256Z$TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384Z$TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256Z$TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384Z,TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256Z,TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384Z*TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256Z*TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384ZPSK_WITH_NULL_SHAZDHE_PSK_WITH_NULL_SHAZRSA_PSK_WITH_NULL_SHAZPSK_WITH_RC4_128_SHAZPSK_WITH_3DES_EDE_CBC_SHAZPSK_WITH_AES_128_CBC_SHAZPSK_WITH_AES_256_CBC_SHAZDHE_PSK_WITH_RC4_128_SHAZDHE_PSK_WITH_3DES_EDE_CBC_SHAZDHE_PSK_WITH_AES_128_CBC_SHAZDHE_PSK_WITH_AES_256_CBC_SHAZRSA_PSK_WITH_RC4_128_SHAZRSA_PSK_WITH_3DES_EDE_CBC_SHAZRSA_PSK_WITH_AES_128_CBC_SHAZRSA_PSK_WITH_AES_256_CBC_SHAZPSK_WITH_AES_128_GCM_SHA256ZPSK_WITH_AES_256_GCM_SHA384ZDHE_PSK_WITH_AES_128_GCM_SHA256ZDHE_PSK_WITH_AES_256_GCM_SHA384ZRSA_PSK_WITH_AES_128_GCM_SHA256ZRSA_PSK_WITH_AES_256_GCM_SHA384ZPSK_WITH_AES_128_CBC_SHA256ZPSK_WITH_AES_256_CBC_SHA384ZPSK_WITH_NULL_SHA256ZPSK_WITH_NULL_SHA384ZDHE_PSK_WITH_AES_128_CBC_SHA256ZDHE_PSK_WITH_AES_256_CBC_SHA384ZDHE_PSK_WITH_NULL_SHA256ZDHE_PSK_WITH_NULL_SHA384ZRSA_PSK_WITH_AES_128_CBC_SHA256ZRSA_PSK_WITH_AES_256_CBC_SHA384ZRSA_PSK_WITH_NULL_SHA256ZRSA_PSK_WITH_NULL_SHA384ZECDHE_PSK_WITH_RC4_128_SHAZECDHE_PSK_WITH_3DES_EDE_CBC_SHAZECDHE_PSK_WITH_AES_128_CBC_SHAZECDHE_PSK_WITH_AES_256_CBC_SHAZ!ECDHE_PSK_WITH_AES_128_CBC_SHA256Z!ECDHE_PSK_WITH_AES_256_CBC_SHA384ZECDHE_PSK_WITH_NULL_SHAZECDHE_PSK_WITH_NULL_SHA256ZECDHE_PSK_WITH_NULL_SHA384Z PSK_WITH_CAMELLIA_128_CBC_SHA256Z PSK_WITH_CAMELLIA_256_CBC_SHA384Z$DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256Z$DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384Z$RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256Z$RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384Z&ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256Z&ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384ZPSK_WITH_AES_128_CCMZPSK_WITH_AES_256_CCMZDHE_PSK_WITH_AES_128_CCMZDHE_PSK_WITH_AES_256_CCMZPSK_WITH_AES_128_CCM_8ZPSK_WITH_AES_256_CCM_8ZDHE_PSK_WITH_AES_128_CCM_8ZDHE_PSK_WITH_AES_256_CCM_8Z+TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256Z-TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256Z)TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256Z%TLS_PSK_WITH_CHACHA20_POLY1305_SHA256Z+TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256Z)TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256Z)TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256ÚTLS_AES_128_GCM_SHA256ÚTLS_AES_256_GCM_SHA384ÚTLS_CHACHA20_POLY1305_SHA256ÚTLS_AES_128_CCM_SHA256ÚTLS_AES_128_CCM_8_SHA256)rº  r»  r¼  r½  r¾  )r!   zTLSv1.1zTLSv1.2zTLSv1.3)r   r   r    )5rE   r,   Úabcr   r   Útypingr   r   r   r   r   r	   r
   r   Zcharsetsr   r   Úerrorsr   ZMAX_PACKET_LENGTHrH   ZNET_BUFFER_LENGTHZMAX_MYSQL_TABLE_COLUMNSZPARAMETER_COUNT_AVAILABLEZDEFAULT_CONFIGURATIONrG   r�  ZCNX_POOL_ARGSZTLS_VERSIONSZDEPRECATED_TLS_VERSIONSr'   r/   r0   rJ   rM   r‡   rÉ   rÓ   rù   rH  r^  r_  rr  r{  rŽ  ZCONN_ATTRS_DNZTLSV1_CIPHER_SUITESZTLSV1_1_CIPHER_SUITESZTLSV1_2_CIPHER_SUITESZTLSV1_3_CIPHER_SUITESZTLS_CIPHER_SUITESÚvaluesZOPENSSL_CS_NAMESr%   r%   r%   r&   Ú<module>   s.  ("	"n=IkB. E