hyb
2026-01-30 44480e71b27aa9d4cb8441f50c873f1b110e9691
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
Ë
Wñúhoãó¾—dZddgZddlZddlZddlZ    ddlZej ejejejdœZ
ddl m Z mZddlmZddlmZmZmZmZmZd    d
lmZmZmZmZmZmZd    d lmZm Z m!Z!m"Z"d d l#m$Z$m%Z%de&de'fd„Z(Gd„de «Z)Gd„de)«Z*Gd„de*«Z+Gd„de «Z,Gd„de,«Z-Gd„de,«Z.y#e $rdZYŒ”wxYw)zFModule implementing low-level socket communication with MySQL servers.ÚMySQLTcpSocketÚMySQLUnixSocketéN)ÚTLSv1úTLSv1.1úTLSv1.2úTLSv1.3)ÚABCÚabstractmethod)Údeque)ÚAnyÚDequeÚListÚOptionalÚTupleé)ÚInterfaceErrorÚNotSupportedErrorÚOperationalErrorÚProgrammingErrorÚReadTimeoutErrorÚWriteTimeoutError)ÚCOMPRESSED_PACKET_HEADER_LENGTHÚMAX_PAYLOAD_LENGTHÚMIN_COMPRESS_LENGTHÚPACKET_HEADER_LENGTHé)Ú StreamWriterÚopen_connectionÚerrÚreturncóf—|js t|«S|j›d|j›S)z`Reformat the IOError error message.
 
    This function reformats the IOError error message.
    ú )ÚerrnoÚstrÚstrerror)rs úNH:\Change_password\venv_build\Lib\site-packages\mysql/connector/aio/network.pyÚ _strioerrorr'Is,€ð
Ÿ9š9Œ3ˆs‹8ÐG¨S¯Y©Y¨K°q¸¿¹¸Ð*GÐGócó˜—eZdZdZe            ddedededee    dee    dee    d    dfd
„«Z
e    dd e jded ee    d    e fd „«Zy)Ú NetworkBrokeraPBroker class interface.
 
    The network object is a broker used as a delegate by a socket object. Whenever the
    socket wants to deliver or get packets to or from the MySQL server it needs to rely
    on its network broker (netbroker).
 
    The netbroker sends `payloads` and receives `packets`.
 
    A packet is a bytes sequence, it has a header and body (referred to as payload).
    The first `PACKET_HEADER_LENGTH` or `COMPRESSED_PACKET_HEADER_LENGTH`
    (as appropriate) bytes correspond to the `header`, the remaining ones represent the
    `payload`.
 
    The maximum payload length allowed to be sent per packet to the server is
    `MAX_PAYLOAD_LENGTH`. When  `send` is called with a payload whose length is greater
    than `MAX_PAYLOAD_LENGTH` the netbroker breaks it down into packets, so the caller
    of `send` can provide payloads of arbitrary length.
 
    Finally, data received by the netbroker comes directly from the server, expect to
    get a packet for each call to `recv`. The received packet contains a header and
    payload, the latter respecting `MAX_PAYLOAD_LENGTH`.
    NÚwriterÚaddressÚpayloadÚ packet_numberÚcompressed_packet_numberÚ write_timeoutr cƒó K—y­w)a™Send `payload` to the MySQL server.
 
        If provided a payload whose length is greater than `MAX_PAYLOAD_LENGTH`, it is
        broken down into packets.
 
        Args:
            sock: Object holding the socket connection.
            address: Socket's location.
            payload: Packet's body to send.
            packet_number: Sequence id (packet ID) to attach to the header when sending
                           plain packets.
            compressed_packet_number: Same as `packet_number` but used when sending
                                      compressed packets.
            write_timeout: Timeout in seconds before which sending a packet to the server
                           should finish else WriteTimeoutError is raised.
 
 
        Raises:
            :class:`OperationalError`: If something goes wrong while sending packets to
                                       the MySQL server.
        N©)Úselfr+r,r-r.r/r0s       r&ÚwritezNetworkBroker.writeióèøùó‚ÚreaderÚ read_timeoutcƒó K—y­w)aMGet the next available packet from the MySQL server.
 
        Args:
            sock: Object holding the socket connection.
            address: Socket's location.
            read_timeout: Timeout in seconds before which reading a packet from the server
                          should finish.
 
        Returns:
            packet: A packet from the MySQL server.
 
        Raises:
            :class:`OperationalError`: If something goes wrong while receiving packets
                                       from the MySQL server.
            :class:`ReadTimeoutError`: If the time to receive a packet from the server takes
                                       longer than `read_timeout`.
            :class:`InterfaceError`: If something goes wrong while receiving packets
                                     from the MySQL server.
        Nr2)r3r7r,r8s    r&ÚreadzNetworkBroker.read‰r5r6©NNN©N)Ú__name__Ú
__module__Ú __qualname__Ú__doc__r
rr$ÚbytesrÚintr4ÚasyncioÚ StreamReaderÚ    bytearrayr:r2r(r&r*r*Qs¿„ñð.ð (,Ø26Ø'+ñ àð ðð ðð     ð
  ‘}ð  ð #+¨3¡-ð  ð  ‘}ð ð
ò óð ð>ð
'+ñ     à×$Ñ$ð ðð ð˜s‘mð     ð
 
ò  óñ r(r*có—eZdZdZdd„Zededeeeffd„«Z    dde
eddfd„Z d    e d
e deddfd „Z        dd ej d ede
edefd„Z            dd    e d
e dede
ede
ede
eddfd„Z    dd ej d
e de
edefd„Zy)ÚNetworkBrokerPlainú,Broker class for MySQL socket communication.r Ncó—d|_y©Néÿÿÿÿ©Ú_pktnr©r3s r&Ú__init__zNetworkBrokerPlain.__init__¨s    €Øˆ r(ÚpktcóŒ—t|«tkr td«‚tjd|dddz«d|d}}||fS)ú-Recover the header information from a packet.ú3Can't recover header info from an incomplete packetú<Iréó)ÚlenrÚ
ValueErrorÚstructÚunpack)rPÚpllÚseqids   r&Ú
get_headerzNetworkBrokerPlain.get_header«sW€ô ˆs‹8Ô*Ò *ÜÐRÓSÐ Sô M‰M˜$  A a ¨7Ñ 2Ó 3°AÑ 6Ø ‰Fðˆð
EˆzÐr(Únext_idcól—|€|xjdz c_n||_|xjdzc_y©z:Set the given packet id, if any, else increment packet id.NrérL©r3r^s  r&Ú_set_next_pktnrz"NetworkBrokerPlain._set_next_pktnr¸s*€à ˆ?Ø KŠK˜1Ñ ŽKà!ˆDŒKØ  Š sÑŽ r(r+r,cƒóêK—    |j|«|j«ƒd{–—†y7Œ#t$r}td|t    |«f¬«|‚d}~wt
$r}td¬«|‚d}~wwxYw­w)z!Write packet to the comm channel.Né©r#ÚvaluesiÖ©r#)r4ÚdrainÚIOErrorrr'ÚAttributeError)r3r+r,rPrs     r&Ú
_write_pktzNetworkBrokerPlain._write_pktÀslèø€ð    8Ø L‰L˜Ô Ø—,‘,“.×  Ò  ùÜò    Ü"Ø G¬[¸Ó-=Ð#>ôàð ûôò    8Ü"¨Ô.°CÐ 7ûð    8üs<‚A3„$0¨.©0­A3®0°    A0¹AÁ A0Á A+Á+A0Á0A3r7Úsizer8cƒó|K—    td«}t|«|kr[tj|j    |t|«z
«|«ƒd{–—†}|s t d¬«‚||z }t|«|krŒ[|S7Œ(#tj $r}td¬«|‚d}~wtj$r}|‚d}~wwxYw­w)z(Read `size` bytes from the comm channel.r(NiÝrhéÐ )    rErWrCÚwait_forr:rÚ TimeoutErrorrÚCancelledError)r3r7rmr8rPÚchunkrs       r&Ú _read_chunkzNetworkBrokerPlain._read_chunkÑs´èø€ð     Ü˜C“.ˆCܐc“(˜T’/Ü%×.Ñ.Ø—K‘K ¤s¨3£x¡Ó0°,ó÷ñÜ(¨tÔ4Ð4ؐu‘ ô c“(˜T“/ðˆJð ùô×#Ñ#ò    8Ü"¨Ô.°CÐ 7ûÜ×%Ñ%ò    ØˆIûð    üsM‚B<„A A<ÁA:Á%A<Á8A<Á9B<Á:A<Á<B9 BÂB9Â2B4Â4B9Â9B<r-r.r/r0c ƒóÚK—|j|«d}    tt|«tz«D]x}t    j
|j ||dtjd|j«z|||tzz«|«ƒd{–—†|j«|tz }Œzt    j
|j ||tjdt|«|z
«ddtjd|j«z||dz«|«ƒd{–—†y7Œ™7Œ#tj$r}    td¬«|    ‚d}    ~    wtj$r}    |    ‚d}    ~    wwxYw­w)    z¤Send payload to the MySQL server.
 
        If provided a payload whose length is greater than `MAX_PAYLOAD_LENGTH`, it is
        broken down into packets.
        róÿÿÿú<BNrTrUrorh) rcÚrangerWrrCrprlrYÚpackrMrqrrr)
r3r+r,r-r.r/r0ÚoffsetÚ_rs
          r&r4zNetworkBrokerPlain.writeçspèø€ð     ×ј]Ô+ðˆð    Üœ3˜w›<Ô+=Ñ=Ó>ò -ä×&Ñ&Ø—O‘OØØØ#Ü Ÿ+™+ d¨D¯K©KÓ8ñ9à! &¨6Ô4FÑ+FÐGñHóð"ó    ÷    ð    ð×$Ñ$Ô&ØÔ,Ñ,‘ð -ô×"Ñ"Ø—‘ØØÜ—K‘K ¤c¨'£l°VÑ&;Ó<¸Q¸qÐAÜ—k‘k $¨¯ © Ó4ñ5à˜f˜gÐ&ñ'óðó    ÷     ñ     ð    øð     ùô×#Ñ#ò    9Ü#¨$Ô/°SÐ 8ûÜ×%Ñ%ò    ØˆIûð    üsZ‚E+—A6D+ D'ÂBD+Ä!D)Ä"D+Ä&E+Ä'D+Ä)D+Ä+E(Ä> E Å E(Å!E#Å#E(Å(E+cƒóK—    |j|t|«ƒd{–—†}|j|«\}|_||j|||«ƒd{–—†zS7Œ;7Œ#t$r}t d|t |«f¬«|‚d}~wwxYw­w)z+Receive `one` packet from the MySQL server.Nrerf)rtrr]rMrjrr')r3r7r,r8ÚheaderÚ payload_lenrs       r&r:zNetworkBrokerPlain.reads”èø€ð     à×+Ñ+¨FÔ4HÈ,ÓW×WˆFð(,§¡°vÓ'>Ñ $ˆK˜œð $×"2Ñ"2°6¸;È Ó"U×UÑUÐ Uð Xøð VùÜò    Ü"Ø G¬[¸Ó-=Ð#>ôàð ûð    üsJ‚B„AžAŸ4AÁAÁAÁBÁAÁAÁ    BÁ'BÂBÂB©r Nr<)rNr;)r=r>r?r@rOÚ staticmethodrArrBr]rrcrr$rlrCrDrErtr4r:r2r(r&rGrG¥sN„Ù6óðð
˜ð
 %¨¨S¨¡/ò
óð
ñ x°¡}ðÀóð8àð8ðð8ðð    8ð
 
ó 8ð(Ø&*ñ    à×$Ñ$ðððð˜s‘mð    ð
 
ó ð6(,Ø26Ø'+ñ/àð/ðð/ðð    /ð
  ‘}ð /ð #+¨3¡-ð /ð  ‘}ð/ð
ó/ðj'+ñ    à×$Ñ$ðððð˜s‘mð    ð
 
ô r(rGcóX‡—eZdZdZdˆfd„ Zedededeefd„«Z    edede
eeeffd    „«Z dd
e eddfd „Z d ed ededdfˆfd„ Z            dd ed edede ede ede eddfˆfd„ Z    ddej&dede eddfˆfd„ Z    ddej&d ede edefˆfd„ ZˆxZS)ÚNetworkBrokerCompressedrHr NcóN•—t‰|«d|_t«|_yrJ)ÚsuperrOÚ_compressed_pktnrr Ú _queue_read)r3Ú    __class__s €r&rOz NetworkBrokerCompressed.__init__1s ø€Ü ‰ÑÔØ!#ˆÔÜ-2«WˆÕr(r-Úpktnrcó|—d}g}tt|«tz«D]H}|jdt    j
d|«z|||tzz«|dzdz}|tz }ŒJ|jt    j
dt|«|z
«ddt    j
d|«z||dz«|S)    z2Prepare a payload for sending to the MySQL server.rrvrwrrarTrUN)rxrWrÚappendrYry)r-rˆrzÚpktsr{s     r&Ú_prepare_packetsz(NetworkBrokerCompressed._prepare_packets6sրðˆØˆô
”s˜7“|Ô'9Ñ9Ó:ò    )ˆAà K‰KØÜ—+‘+˜d EÓ*ñ+à˜& 6Ô,>Ñ#>Ð?ñ@ô ð
˜Q‘Y #Ñ%ˆEØ Ô(Ñ (‰Fð    )ð      ‰ Ü K‰K˜œc '›l¨VÑ3Ó 4°Q°qÐ 9܏k‰k˜$ Ó&ñ 'àfgÐñ ô    
ð
ˆ r(rPcó̗t|«tkr td«‚tjd|dddz«d|dtjd|dddz«d}}}|||fS)rRrSrTrrUrVéé)rWrrXrYrZ)rPÚcompressed_pllr\Úuncompressed_plls    r&r]z"NetworkBrokerCompressed.get_headerOs{€ô ˆs‹8Ô5Ò 5ÜÐRÓSÐ Sô M‰M˜$  A a ¨7Ñ 2Ó 3°AÑ 6Ø ‰FÜ M‰M˜$  A a ¨7Ñ 2Ó 3°AÑ 6ð 0˜ˆð ˜uÐ&6Ð6Ð6r(r^cól—|€|xjdz c_n||_|xjdzc_yr`)r…rbs  r&Ú_set_next_compressed_pktnrz2NetworkBrokerCompressed._set_next_compressed_pktnr]s1€à ˆ?Ø × "Ò " aÑ 'Ö "à%,ˆDÔ "Ø ×Ò #Ñ%Ör(r+r,cƒó>•K—tj|«}tjdt    |««ddtjd|j
«ztjdt    |««ddz|z}t ‰||||«ƒd{–—†S7Œ­w)z1Compress packet and write it to the comm channel.rTrrUrwN)ÚzlibÚcompressrYryrWr…r„rl)r3r+r,rPÚcompressed_pktr‡s     €r&rlz"NetworkBrokerCompressed._write_pktes“øèø€ôŸ™ sÓ+ˆä K‰K˜œc .Ó1Ó 2°1°QÐ 7܏k‰k˜$ × 6Ñ 6Ó7ñ 8äk‰k˜$¤ C£Ó)¨!¨AÐ.ñ /ðñ ð     ô ‘WÑ'¨°¸Ó=×=Ð=Ð=úsƒBBÂBÂBr.r/r0c ƒóX•K—|j|«|j|«    td«j|j    ||j
««}t |«ttz
k\r§d}tt |«tz«D]T}    tj|j|||||tz«|«ƒd{–—†|j«|tz }ŒVtj|j||||d«|«ƒd{–—†yt |«tkDr0tj|j|||«|«ƒd{–—†ytjt‰ |1||tj dt |««ddtj d|j"«ztj dd«ddz|z«|«ƒd{–—†y7Œ!7ŒÖ7Œ–7Œ #tj$tj&f$r}
t)d¬«|
‚d}
~
wwxYw­w)    z¼Send `payload` as compressed packets to the MySQL server.
 
        If provided a payload whose length is greater than `MAX_PAYLOAD_LENGTH`, it is
        broken down into packets.
        r(rNrTrUrwrorh)rcr“rEÚjoinrŒrMrWrrrxrCrprlrr„rYryr…rrrqr) r3r+r,r-r.r/r0Ú payload_preprzr{rr‡s            €r&r4zNetworkBrokerCompressed.writeus%øèø€ð     ×ј]Ô+Ø ×'Ñ'Ð(@ÔAð6    9Ü$ S›>×.Ñ.Ø×%Ñ% g¨t¯{©{Ó;óˆLô7‹|Ô1Ô4HÑHÒHðôœs <Ó0Ô4FÑFÓGò
1AÜ!×*Ñ*ØŸ™Ø"Ø#Ø(¨°&Ô;MÑ2MÐNóð
&ó ÷ðð×3Ñ3Ô5ØÔ0Ñ0‘Fð
1ô×&Ñ&Ø—O‘O F¨G°\À&À'Ð5JÓKØ!ó÷ñôw“<Ô"5Ò5ä!×*Ñ*ØŸ™¨°¸ÓFÈ ó÷ñô
"×*Ñ*Ü™Ñ*Ø"Ø#Ü"ŸK™K¨¬c°,Ó.?Ó@ÀÀ1ÐEÜ$Ÿk™k¨$°×0FÑ0FÓGñHä$Ÿk™k¨$°Ó2°1°QÐ7ñ8ð+ñ+óð&ó
÷
ñ
ð5ùðøðøð
 
ùô×&Ñ&¬×(<Ñ(<Ð=ò    9Ü#¨$Ô/°SÐ 8ûð    9üs‹ƒ#H*§B!G2ÃG)à   A G2ÄG,ÄG2ÄH*Ä<G2ÅG.ÅG2ÅH*ÅBG2Ç#G0Ç$G2Ç(H*Ç)G2Ç,G2Ç.G2Ç0G2Ç2#H'È H"È"H'È'H*r7rr8c    ƒóŽ•K—ttjt‰
||||«ƒd{–—†««}d}|t |«krôt jd|||tzdz
dz«d}t|zt |«|z
kDrot‰
||t|«ƒd{–—†}|j|«\}|_ }t‰
||||«ƒd{–—†}    ||dk(r|    ntj|    «z }|jj|||tz|z«|t|zz }|t |«krŒóyy7Œ7Œž7Œm­w)z&Handle reading of a compressed packet.NrrTrrV)rEr•Ú
decompressr„rtrWrYrZrrr]r…r†rŠ) r3r7rr8rPrzr[r}r‘r—r‡s           €r&Ú_read_compressed_pktz,NetworkBrokerCompressed._read_compressed_pkt¾sføèø€ôÜ O‰OÜ‘gÑ)¨&°.À,ÓO×Oó ó
ˆð
ˆØ”s˜3“xÒä—-‘-ؐc˜& 6Ô,@Ñ#@À1Ñ#DÐEÈÑOóàñˆCô$ cÑ)¬C°«H°vÑ,=Ò=ô %™wÑ2ØÔ;¸\ó ÷ð—O‘O FÓ+ñ    Ø"ØÔ*Ø$ä',¡wÑ':ؘN¨Ló(÷"ð à'¨1Ò,ñ#䟙¨Ó8ñð × Ñ × #Ñ # C¨°Ô:NÑ1NÐQTÑ1TÐ$UÔ VØ Ô*¨SÑ0Ñ 0ˆFð?”s˜3“xÕð    Pùðøð"ús;ƒ)E¬D> ­A5EÂ"EÂ#2EÃEÃA%EÄ<EÅEÅEcƒó•K—|js‹    t‰    |    |t|«ƒd{–—†}|j    |«\}|_}|dk(r3|jj t‰    |    |||«ƒd{–—†«n|j|||«ƒd{–—†|jsy|jj«}|d|_ |S7Œ¤7ŒY7Œ;#t$r}td|t|«f¬«|‚d}~wwxYw­w)z{Receive `one` or `several` packets from the MySQL server, enqueue them, and
        return the packet at the head.
        NrrerfrU) r†r„rtrr]r…rŠrrjrr'ÚpopleftrM)
r3r7r,r8r}rr‘rrPr‡s
         €r&r:zNetworkBrokerCompressed.readísøèø€ð×Òð ä$™wÑ2ØÔ;¸\ó ÷ð—O‘O FÓ+ñ    Ø"ØÔ*Ø$ð$ qÒ(à×$Ñ$×+Ñ+Ü#™gÑ1°&¸.È,ÓW×Wõð
×3Ñ3Ø ° ó÷ðð×ÒØà×Ñ×&Ñ&Ó(ˆØ˜!‘fˆŒ àˆ
ðAøðXøðùôò Ü&ب´¸SÓ1AÐ'Bôàðûð üs]ƒ C>‘C©CªA CÁ6CÁ7CÂCÂCÂ3C>ÃCÃCÃCà   C;ÃC6Ã6C;Ã;C>rr<r;)r=r>r?r@rOr€rArBrrŒrr]rr“rr$rlr4rCrDrrEr:Ú __classcell__©r‡s@r&r‚r‚.sŠø„Ù6õ5ð
ð %ð°ð¸¸U¹ òóðð0ð 7˜ð 7 %¨¨S°#¨ Ñ"6ò 7óð 7ñ&°(¸3±-ð&È4ó&ð>àð>ðð>ðð    >ð
 
õ >ð*(,Ø26Ø'+ñG9àðG9ððG9ðð    G9ð
  ‘}ð G9ð #+¨3¡-ð G9ð  ‘}ðG9ð
õG9ðZ'+ñ    -1à×$Ñ$ð-1ðð-1ð˜s‘mð    -1ð
 
õ -1ðf'+ñ    -à×$Ñ$ð-ðð-ð˜s‘mð    -ð
 
÷ -ñ-r(r‚cóh—eZdZdZdd„Zedefd„«Zede    ddfd„«Z
dd„Z de fd    „Z d
eddfd „Zdd „Zd ej$ddfd„Z            d dedeedeedeeddf
d„Zd!deedefd„Zdddddggfdeedeedeedee dee deeedeeedej$fd„Zy)"Ú MySQLSocketzMySQL socket communication interface.
 
    Examples:
        Subclasses: network.MySQLTCPSocket and network.MySQLUnixSocket.
    r Ncóh—d|_d|_d|_d|_t    «|_d|_y)zsNetwork layer where transactions are made with plain (uncompressed) packets
        is enabled by default.
        NF)Ú_readerÚ_writerÚ_connection_timeoutÚ_addressrGÚ
_netbrokerÚ _is_connectedrNs r&rOzMySQLSocket.__init__$s3€ð8<ˆŒ Ø/3ˆŒ Ø26ˆÔ Ø'+ˆŒ Ü);Ó)=ˆŒØ#(ˆÕr(có—|jS)zSocket location.)r¨rNs r&r,zMySQLSocket.address/s€ð}‰}Ðr(Úkwargsc‹ó K—y­w)zOpen the socket.Nr2©r3r¬s  r&rzMySQLSocket.open_connection4r5r6cƒónK—|jr    |jj«|jj$|jjj«|jj    «ƒd{–—†d|_yd|_y7Œ#t
$r}Yd}~d|_yd}~wwxYw­w)zClose the connection.NF)r¦ÚcloseÚ    transportÚabortÚ wait_closedÚ    Exceptionrª)r3r{s  r&Úclose_connectionzMySQLSocket.close_connection8sèø€à <Š<ð     Ø— ‘ ×"Ñ"Ô$à—<‘<×)Ñ)Ð5Ø—L‘L×*Ñ*×0Ñ0Ô2Ø—l‘l×.Ñ.Ó0×0Ð0ð
#ˆÕ˜UˆÕð 1ùÜò óØ"ˆÕûð     üs;‚ B5A1BÂBÂBÂB5ÂB    B2Â! B5Â-B2Â2B5có—|jS)zˆCheck if the socket is connected.
 
        Return:
            bool: Returns `True` if the socket is connected to MySQL server.
        )rªrNs r&Ú is_connectedzMySQLSocket.is_connectedGs€ð ×!Ñ!Ð!r(Útimeoutcó—||_y)zSet the connection timeout.N)r§)r3r¸s  r&Úset_connection_timeoutz"MySQLSocket.set_connection_timeoutOs
€à#*ˆÕ r(có"—t«|_y)zIEnable network layer where transactions are made with compressed packets.N)r‚r©rNs r&Úswitch_to_compressed_modez%MySQLSocket.switch_to_compressed_modeSs €ä1Ó3ˆr(Ú ssl_contextcƒóðK—|j€J‚|jjjd«}|jdk(r t    d«‚|jj |«ƒd{–—†y7Œ­w)a?Upgrade an existing stream-based connection to TLS.
 
        The `start_tls()` method from `asyncio.streams.StreamWriter` is only available
        in Python 3.11. This method is used as a workaround.
 
        The MySQL TLS negotiation happens in the middle of the TCP connection.
        Therefore, passing a socket to open connection will cause it to negotiate
        TLS on an existing connection.
 
        Args:
            ssl_context: The SSL Context to be used.
 
        Raises:
            RuntimeError: If the transport does not expose the socket instance.
        NÚsocketrz,SSL is not supported when using Unix sockets)r¦r±Úget_extra_infoÚfamilyrÚ    start_tls)r3r½r¿s   r&Ú switch_to_sslzMySQLSocket.switch_to_sslWsbèø€ð"|‰|Ð'Ð'Ð'à—‘×'Ñ'×6Ñ6°xÓ@ˆØ =‰=˜AÒ Ü"Ð#QÓRÐ Ràl‰l×$Ñ$ [Ó1×1Ò1ús‚A,A6Á.A4Á/A6r-r.r/r0cƒóŠK—|jj|j|j||||¬«ƒd{–—†y7Œ­w)z!Send packets to the MySQL server.)r.r/r0N)r©r4r¦r,)r3r-r.r/r0s     r&r4zMySQLSocket.writepsCèø€ðo‰o×#Ñ#Ø L‰LØ L‰LØ Ø'Ø%=Ø'ð $ó
÷    
ò    
ús‚9A»A¼Ar8cƒó€K—|jj|j|j|«ƒd{–—†S7Œ­w)z#Read packets from the MySQL server.N)r©r:r¥r,)r3r8s  r&r:zMySQLSocket.reads-èø€à—_‘_×)Ñ)¨$¯,©,¸¿ ¹ ÀlÓS×SÐSÐSús ‚5>·<¸>FÚssl_caÚssl_certÚssl_keyÚssl_verify_certÚssl_verify_identityÚ tls_versionsÚtls_cipher_suitescóÆ—d}|js td¬«‚t€ td«‚    |r°|j    d¬«|d}t
|}    tj |    «}
|dk(rŠd    |vr#|
xjtjzc_d
|vr#|
xjtjzc_d |vr8|
xjtjzc_ntj«}
||
_ |rtj|
_n-|rtj|
_ntj |
_|
j#«|r    |
j%|«|r    |
j+||«|r%|d    k(r |
j-dj/|««|
S#t&tj(f$r} td | ›«| ‚d} ~ wwxYw#t&tj(f$r} td | ›«| ‚d} ~ wwxYw#t0$r} t3d«| ‚d} ~ wt&t4tj6tj(f$r} tt9| ««| ‚d} ~ wwxYw)zBuild a SSLContext.Nirhz&Python installation has no SSL supportT)ÚreverserrrrrzInvalid CA Certificate: zInvalid Certificate/Key: ú:)r¥rÚsslÚ RuntimeErrorÚsortÚ TLS_VERSIONSÚ
SSLContextÚoptionsÚ OP_NO_TLSv1_2Ú OP_NO_TLSv1_1Ú OP_NO_TLSv1Úcreate_default_contextÚcheck_hostnameÚ CERT_REQUIREDÚ verify_modeÚ CERT_OPTIONALÚ    CERT_NONEÚload_default_certsÚload_verify_locationsrjÚSSLErrorÚload_cert_chainÚ set_ciphersr™Ú    NameErrorrÚNotImplementedErrorÚCertificateErrorr$) r3rÆrÇrÈrÉrÊrËrÌÚ tls_versionÚ ssl_protocolÚcontextrs             r&Úbuild_ssl_contextzMySQLSocket.build_ssl_context…s%€ð&*ˆ à|Š|Ü  tÔ,Ð ,ä ˆ;ÜÐGÓHÐ Hð5    4ÙØ×!Ñ!¨$Ð!Ô/Ø*¨1™o Ü+¨KÑ8 ÜŸ.™.¨Ó6à )Ò+Ø ¨ Ñ4ØŸš¬3×+<Ñ+<Ñ<Ø ¨ Ñ4ØŸš¬3×+<Ñ+<Ñ<Ø lÑ2ØŸš¬3¯?©?Ñ:žä×4Ñ4Ó6à%8ˆGÔ "áÜ&)×&7Ñ&7Õ#Ù$Ü&)×&7Ñ&7Õ#ä&)§m¡mÔ#à × &Ñ &Ô (áðTØ×1Ñ1°&Ô9ñðUØ×+Ñ+¨H°gÔ>ñ ! [°IÒ%=Ø×#Ñ# C§H¡HÐ->Ó$?Ô@àˆNøô ¤§¡Ð.òTÜ(Ð+CÀCÀ5Ð)IÓJÐPSÐSûðTûô
 ¤§¡Ð.òUÜ(Ð+DÀSÀEÐ)JÓKÐQTÐTûðUûôò    WÜ#Ð$LÓMÐSVÐ Vûä Ü Ü ×  Ñ  Ü L‰Lð    
ò    4ô !¤ S£Ó*°Ð 3ûð     4úsl­D$HÅF!Å#HÅ&GÅ8(HÆ!GÆ:G    Ç    GÇHÇG>Ç*G9Ç9G>Ç>HÈ    I È
HÈ0I ÉIÉI rr;r<)r=r>r?r@rOÚpropertyr$r,r
r rrµÚboolr·rBrºr¼rÐrÔrÃrArr4rEr:rrêr2r(r&r£r£sŒ„ñó     )ðð˜òóððð¨cð°dòóðó #ð"˜dó"ð+¨cð+°dó+ó4ð2¨s¯~©~ð2À$ó2ð8(,Ø26Ø'+ñ 
àð
ð  ‘}ð
ð#+¨3¡-ð    
ð
  ‘}ð 
ð
ó 
ñ"T x°¡}ðTÀ    óTð !%Ø"&Ø!%Ø*/Ø.3Ø,.Ø13ñH4à˜‘ ðH4ð˜3‘-ðH4ð˜#‘ð    H4ð
" $™ð H4ð & d™^ð H4ð˜t C™yÑ)ðH4ð$ D¨¡IÑ.ðH4ð
‰ôH4r(r£cóD‡—eZdZdZ    d
dededefˆfd„ Zdeddfd    „Z    ˆxZ
S) rzMySQL socket class using TCP/IP.
 
    Args:
        host: MySQL host name.
        port: MySQL port.
        force_ipv6: Force IPv6 usage.
    ÚhostÚportÚ
force_ipv6cód•—t‰|«||_||_||_|›d|›|_y)NrÏ)r„rOÚ_hostÚ_portÚ _force_ipv6r¨)r3rîrïrðr‡s    €r&rOzMySQLTcpSocket.__init__Ùs8ø€ô    ‰ÑÔØˆŒ
؈Œ
Ø!+ˆÔØ $˜v Q t fÐ-ˆ r(r¬r Nc‹óŒK—td|j|jdœ|¤Žƒd{–—†\|_|_d|_y7Œ­w)zOpen TCP/IP connection.)rîrïNTr2)rròrór¥r¦rªr®s  r&rzMySQLTcpSocket.open_connectionâsGèø€ä+:ð,
Ø—‘ $§*¡*ñ,
Ø06ñ,
÷&
Ñ"ˆŒ d”lð"ˆÕð&
ús‚&A¨A©A)z    127.0.0.1iê F) r=r>r?r@r$rBrìrOr rr r¡s@r&rrÐs?ø„ñðMRñ.Øð.Ø-0ð.ØEIõ.ð"¨cð"°d÷"r(có:‡—eZdZdZddefˆfd„ Zdeddfd„ZˆxZS)    rzbMySQL socket class using UNIX sockets.
 
    Args:
        unix_socket: UNIX socket file path.
    Ú unix_socketcó0•—t‰|«||_yr<)r„rOr¨)r3r÷r‡s  €r&rOzMySQLUnixSocket.__init__ñsø€Ü ‰ÑÔØ(ˆ r(r¬r Nc‹óŠK—tjdd|ji|¤Žƒd{–—†\|_|_d|_y7Œ­w)zOpen UNIX socket connection.ÚpathNTr2)rCÚopen_unix_connectionr¨r¥r¦rªr®s  r&rzMySQLUnixSocket.open_connectionõsMèø€ô
×.Ñ.ñ
Ø—‘ð
Ø"(ñ
÷
ñ    
Ø ŒLØ ŒLð"ˆÕð
ús‚%A§A¨A)z/tmp/mysql.sock)    r=r>r?r@r$rOr rr r¡s@r&rrês'ø„ññ ) Cõ)ð"¨cð"°d÷"r()/r@Ú__all__rCrYr•rÐÚPROTOCOL_TLSv1ÚPROTOCOL_TLSv1_1ÚPROTOCOL_TLSv1_2Ú PROTOCOL_TLSrÓÚ ImportErrorÚabcr    r
Ú collectionsr Útypingr r rrrÚerrorsrrrrrrÚnetworkrrrrÚutilsrrrjr$r'r*rGr‚r£rrr2r(r&ú<module>rsÿðñ>Mð Ð.Ð
/€ãÛ Û ð
Ûð×#Ñ#Ø×'Ñ'Ø×'Ñ'Ø×#Ñ#ñ    €L÷$Ýß4Õ4÷÷÷ó÷ 1ðHWðH óHôQ CôQ ôhF˜ôFôRlÐ0ôlô^p4#ôp4ôf"[ô"ô4"kõ"øðsòØ
‚Cðús”3CÃCÃC