Ë
    #´˜jQ  ã                   ó°   — d Z ddlZddl­ ddlmZ ddlmZmZ ddlm	Z	 dZ
dZed	fZd
ZdZdZdZdZdZdZ G d„ d«      Zedk(  rddlmZ  eddd¬«       yy)zH
An auto-completion window for IDLE, used by the autocomplete extension
é    N)Ú*)Ú	Scrollbar)ÚFILESÚATTRS)ÚMC_SHIFTz<<autocompletewindow-hide>>z
<FocusOut>z<ButtonPress>z<<autocompletewindow-keypress>>)z<Key>z<Key-BackSpace>z<Key-Return>z	<Key-Tab>z<Key-Up>z
<Key-Down>z
<Key-Home>z	<Key-End>z<Key-Prior>z
<Key-Next>z<Key-Escape>z!<<autocompletewindow-keyrelease>>z<KeyRelease>z<B1-ButtonRelease>z<Configure>z<B1-Double-ButtonRelease>c                   ól   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚAutoCompleteWindowc                 ó8  — || _         || _        d x| _        x| _        | _        d x| _        | _        d | _        d | _        d | _	        d | _
        d | _        d | _        d | _        d x| _        x| _        x| _        x| _        x| _        | _        d| _        d| _        y )NF)ÚwidgetÚtagsÚautocompletewindowÚlistboxÚ	scrollbarÚorigselforegroundÚorigselbackgroundÚcompletionsÚmorecompletionsÚmodeÚstartÚ
startindexÚlasttypedstartÚuserwantswindowÚhideidÚ
keypressidÚlistupdateidÚwinconfigidÚkeyreleaseidÚdoubleclickidÚlastkey_was_tabÚis_configuring)Úselfr   r   s      ú(lib/python3.12/idlelib/autocomplete_w.pyÚ__init__zAutoCompleteWindow.__init__   sÄ   € àˆŒàˆŒ	àBFÐFˆÔÐF $¤,°´ð ;?Ð>ˆÔ Ô!7àˆÔà#ˆÔàˆŒ	àˆŒ
àˆŒð #ˆÔð  $ˆÔð IMð	MˆŒð 	M�d”oð 	M¨Ô(9ð 	MØÔð	MØ#Ô0°4Ô3Eà$ˆÔà#ˆÕó    c                 ó2  — t        t        | j                  «      t        |«      «      }d}||k  r5| j                  |   ||   k(  r |dz  }||k  r| j                  |   ||   k(  rŒ |t        | j                  «      k  rM| j                  j	                  d| j
                  |fz  d| j
                  t        | j                  «      fz  «       |t        |«      k  r9| j                  j                  d| j
                  |fz  ||d  | j                  «       || _        y )Nr   é   ú%s+%dc)ÚminÚlenr   r   Údeleter   Úinsertr   )r!   ÚnewstartÚmin_lenÚis       r"   Ú_change_startz AutoCompleteWindow._change_start@   sñ   € Ü”c˜$Ÿ*™*“o¤s¨8£}Ó5ˆØˆØ�'Šk˜dŸj™j¨™m¨x¸©{Ò:Ø�‰FˆAð �'Šk˜dŸj™j¨™m¨x¸©{Ó:àŒs�4—:‘:‹ÒØ�K‰K×Ñ˜x¨4¯?©?¸AÐ*>Ñ>Ø'¨4¯?©?¼CÀÇ
Á
»OÐ*LÑLôNàŒs�8‹}ÒØ�K‰K×Ñ˜x¨4¯?©?¸AÐ*>Ñ>Ø'¨¨˜|Ø#Ÿy™yô*ð ˆ�
r$   c                 óÎ   — d}t        | j                  «      }||kD  r(||z   dz  }| j                  |   |k\  r|}n|dz   }||kD  rŒ(t        |t        | j                  «      dz
  «      S )z�Find the first index in self.completions where completions[i] is
        greater or equal to s, or the last index if there is no such.
        r   é   r&   )r)   r   r(   )r!   Úsr.   ÚjÚms        r"   Ú_binary_searchz!AutoCompleteWindow._binary_searchN   su   € ð ˆ”3�t×'Ñ'Ó(ˆqØ�!ŠeØ�Q‘˜1‘ˆAØ×Ñ Ñ" aÒ'Ø‘à˜‘E�ð �!‹eô �1”c˜$×*Ñ*Ó+¨AÑ-Ó.Ð.r$   c                 ó   — | j                  |«      }| j                  |   dt        |«       |k7  r|S |dz   }t        | j                  «      }||kD  r4||z   dz  }| j                  |   dt        |«       |k7  r|}n|dz   }||kD  rŒ4|dz
  }||k(  r| j                  |   S | j                  |   }| j                  |   }t        t        |«      t        |«      «      }	t        |«      }||	k  r!||   ||   k(  r|dz  }||	k  r||   ||   k(  rŒ|d| S )zßAssuming that s is the prefix of a string in self.completions,
        return the longest string which is a prefix of all the strings which
        s is a prefix of them. If s is not a prefix of a string, return s.
        Nr&   r1   )r5   r   r)   r(   )
r!   r2   Úfirstr.   r3   r4   ÚlastÚ
first_compÚ	last_compr-   s
             r"   Ú_complete_stringz#AutoCompleteWindow._complete_string[   s>  € ð
 ×#Ñ# AÓ&ˆØ×Ñ˜EÑ" 7¤C¨£FÐ+¨qÒ0àˆHà�A‰IˆÜ�× Ñ Ó!ˆØ�!ŠeØ�Q‘˜1‘ˆAØ×Ñ Ñ" 7¤C¨£FÐ+¨qÒ0Ø‘à˜‘E�ð �!‹eð �‰sˆà�DŠ=Ø×#Ñ# EÑ*Ð*ð ×%Ñ% eÑ,ˆ
Ø×$Ñ$ TÑ*ˆ	Ü”c˜*“o¤s¨9£~Ó6ˆÜ�‹FˆØ�'Šk˜j¨™m¨y¸©|Ò;Ø�‰FˆAð �'Šk˜j¨™m¨y¸©|Ó;à˜"˜1ˆ~Ðr$   c                 ó|  — t        | j                  j                  «       d   «      }| j                  j                  |«       | j                  }| j
                  |   }| j                  |«      |k(  r|}nKt        t        |«      t        |«      «      }d}||k  r!||   ||   k(  r|dz  }||k  r||   ||   k(  rŒ|d| }| j                  |«       | j
                  |   dt        | j                  «       | j                  k(  r2| j                  j                  | j                  | j                  ¬«       y| j                  j                  | j                  j                  d«      | j                  j                  d«      ¬«       | j                  r®| j                  | _        d| _        | j                  j!                  dt"        «       | j
                  D ]"  }| j                  j%                  t"        |«       Œ$ | j                  j'                  | j                  | j                  «      «       | j)                  «        yy)zzCall when the selection of the Listbox has changed.

        Updates the Listbox display and calls _change_start.
        r   r&   N)ÚselectbackgroundÚselectforegroundÚbgÚfg)Úintr   ÚcurselectionÚseer   r   r5   r(   r)   r/   r   Ú	configurer   r   Úcgetr   r*   ÚENDr+   Ú
select_setÚ_selection_changed)r!   ÚcurselÚltsÚselstartr,   r-   r.   Úitems           r"   rH   z%AutoCompleteWindow._selection_changed{   sæ  € ô
 �T—\‘\×.Ñ.Ó0°Ñ3Ó4ˆà�‰×Ñ˜Ô à×!Ñ!ˆØ×#Ñ# FÑ+ˆØ×Ñ˜sÓ# vÒ-Ø‰Häœ#˜c›(¤C¨£MÓ2ˆGØˆAØ�g’+ # a¡&¨H°Q©KÒ"7Ø�Q‘�ð �g’+ # a¡&¨H°Q©KÓ"7à  �|ˆHØ×Ñ˜8Ô$à×Ñ˜FÑ#Ð$4¤S¨¯©£_Ð5¸¿¹ÒCà�L‰L×"Ñ"°D×4JÑ4JØ48×4JÑ4Jð #õ Lð �L‰L×"Ñ"°D·L±L×4EÑ4EÀdÓ4KØ48·L±L×4EÑ4EÀdÓ4Kð #ô Mð ×#Ò#Ø#'×#7Ñ#7�Ô Ø'+�Ô$Ø—‘×#Ñ# A¤sÔ+Ø ×,Ô,�DØ—L‘L×'Ñ'¬¨TÕ2ð -à—‘×'Ñ'¨×(;Ñ(;¸D¿J¹JÓ(GÔHØ×'Ñ'Õ)ð $r$   c                 óú  — |\  | _         | _        || _        | j                  j	                  |«      | _        | j                  j                  | j
                  d«      | _        |rœ| j                  | j                  «      }| j                  }| j                  |«       | j                  |«      }| j                   |   |k(  rA|t        | j                   «      dz
  k(  s!| j                   |dz      dt        |«       |k7  r||k(  S || _        | j                  | _        t        | j                  «      x| _        }	|	j!                  «        |	j#                  d«       	 |	j$                  j'                  dd|	j(                  dd«       t-        |	t.        ¬«      x| _        }
t3        |	|
j4                  d	¬
«      x| _        }| j                   D ]  }|j9                  t:        |«       Œ |j=                  d«      | _        |j=                  d«      | _         |
jC                  |jD                  ¬«       |
jG                  tH        tJ        ¬«       |jG                  tL        tN        d¬«       |	jQ                  «        | j6                  jS                  | j                  | j                  «      «       | jU                  «        |	jW                  tX        | jZ                  «      | _.        | j                  jW                  tX        | jZ                  «      | _/        |	ja                  tX        tb        «       td        D ]"  }| j                  ja                  tX        |«       Œ$ | j                  jW                  tf        | jh                  «      | _5        tl        D ]"  }| j                  ja                  tf        |«       Œ$ | j                  jW                  tn        | jp                  «      | _9        | j                  ja                  tn        tt        «       |jW                  tv        | jx                  «      | _=        d	| _>        |	jW                  t~        | j€                  «      | _A        |jW                  t„        | j†                  «      | _D        y# t*        $ r Y �Œúw xY w)z®Show the autocomplete list, bind events.

        If complete is True, complete the text, and if there is exactly
        one matching completion, don't open a list.
        r+   r&   Nz!::tk::unsupported::MacWindowStyleÚstyleÚhelpÚnoActivates)ÚorientF)ÚyscrollcommandÚexportselectionr>   r=   )Úcommand)ÚsideÚfillT)rU   rV   Úexpand)Er   r   r   r   Úindexr   Úgetr   r;   r/   r5   r)   r   r   ÚToplevelr   ÚwithdrawÚwm_overrideredirectÚtkÚcallÚ_wÚTclErrorr   ÚVERTICALr   ÚListboxÚsetr   r+   rF   rE   r   r   ÚconfigÚyviewÚpackÚRIGHTÚYÚLEFTÚBOTHÚliftrG   rH   ÚbindÚHIDE_VIRTUAL_EVENT_NAMEÚ
hide_eventÚhideaidÚhidewidÚ	event_addÚHIDE_FOCUS_OUT_SEQUENCEÚHIDE_SEQUENCESÚKEYPRESS_VIRTUAL_EVENT_NAMEÚkeypress_eventr   ÚKEYPRESS_SEQUENCESÚKEYRELEASE_VIRTUAL_EVENT_NAMEÚkeyrelease_eventr   ÚKEYRELEASE_SEQUENCEÚLISTUPDATE_SEQUENCEÚlistselect_eventr   r    ÚWINCONFIG_SEQUENCEÚwinconfig_eventr   ÚDOUBLECLICK_SEQUENCEÚdoubleclick_eventr   )r!   Ú
comp_listsrX   Úcompleter   ÚuserWantsWinÚ	completedr   r.   Úacwr   r   rL   Úseqs                 r"   Úshow_windowzAutoCompleteWindow.show_window¡   s†  € ð 2<Ñ.ˆÔ˜$Ô.ØˆŒ	ØŸ+™+×+Ñ+¨EÓ2ˆŒØ—[‘[—_‘_ T§_¡_°hÓ?ˆŒ
ÙØ×-Ñ-¨d¯j©jÓ9ˆIØ—J‘JˆEØ×Ñ˜yÔ)Ø×#Ñ# IÓ.ˆAØ×Ñ Ñ" iÒ/Ø”S˜×)Ñ)Ó*¨1Ñ,Ò,Ø× Ñ   1¡Ñ% o¤s¨9£~Ð6¸)ÒCà  EÑ)Ð)Ø+ˆÔØ"Ÿj™jˆÔä(0°·±Ó(=Ð=ˆÔ #Ø�‰ŒØ×Ñ Ô"ð	à�F‰F�K‰KÐ;¸WÀcÇfÁfØ ô/ô &/¨s¼8Ô%DÐDˆŒ˜Ü!(¨¸Y¿]¹]Ø9>ô"@ð 	@ˆŒ�wà×$Ô$ˆDØ�N‰Nœ3 Õ%ð %à!(§¡Ð.@Ó!AˆÔØ!(§¡Ð.@Ó!AˆÔØ×Ñ §¡ÐÔ/Ø�‰œE¬ˆÔ*Ø�‰œ$¤T°$ˆÔ7à�‰Œ
ð 	�‰×Ñ × 3Ñ 3°D·J±JÓ ?Ô@Ø×ÑÔ!ð —x‘xÔ 7¸¿¹ÓIˆŒØ—{‘{×'Ñ'Ô(?ÀÇÁÓQˆŒØ�‰Ô-Ô/FÔGß!ˆCØ�K‰K×!Ñ!Ô"9¸3Õ?ð "ð Ÿ+™+×*Ñ*Ô+FØ+/×+>Ñ+>ó@ˆŒç%ˆCØ�K‰K×!Ñ!Ô"=¸sÕCð &à ŸK™K×,Ñ,Ô-JØ-1×-BÑ-BóDˆÔà�‰×ÑÔ;Ô<OÔPØ#ŸL™LÔ)<Ø)-×)>Ñ)>ó@ˆÔà#ˆÔØŸ8™8Ô$6¸×8LÑ8LÓMˆÔØ$Ÿ\™\Ô*>Ø*.×*@Ñ*@óBˆÔàøôO ò 	Úð	ús   Å)Q- Ñ-	Q:Ñ9Q:c           	      óØ  — | j                   ry d| _         | j                  «       sy 	 | j                  }|j                  | j                  «       |j                  | j                  «      \  }}}}| j                  }t        j                  «       j                  d«      r|j                  «        |j                  «       |j                  «       }	}|j                  «       |j                  «       }}
|j                  «       t        |t        d|
|z
  «      «      z   }|j!                  «       |z   }|||z   z
  |	k\  s||	k  r||z  }n||	z  }|j#                  d||fz  «       |j%                  «        |j'                  «        t        j                  «       j                  d«      r(	 j+                  t,        | j.                  «       d | _        d| _         y # t(        $ r Y Œ^w xY w# t(        $ r Y Œ)w xY w)NTÚWindowsr   z+%d+%dF)r    Ú	is_activer   rC   r   Úbboxr   ÚplatformÚsystemÚ
startswithÚupdateÚwinfo_widthÚwinfo_heightÚwinfo_rootxr(   ÚmaxÚwinfo_rootyÚwm_geometryÚ	deiconifyÚupdate_idletasksr`   Úunbindr|   r   )r!   ÚeventÚtextÚxÚyÚcxÚcyr„   Ú	acw_widthÚ
acw_heightÚ
text_widthÚtext_heightÚnew_xÚnew_ys                 r"   r}   z"AutoCompleteWindow.winconfig_eventé   s´  € Ø×Òàà"ˆÔØ�~‰~ÔØð	à—;‘;ˆDØ�H‰H�T—_‘_Ô%ØŸ9™9 T§_¡_Ó5‰LˆAˆq�"�bØ×)Ñ)ˆCÜ�‰Ó ×+Ñ+¨IÔ6ð —
‘
”Ø$'§O¡OÓ$5°s×7GÑ7GÓ7I�zˆIØ&*×&6Ñ&6Ó&8¸$×:KÑ:KÓ:M˜ˆJØ×$Ñ$Ó&¬¨Q´°A°zÀIÑ7MÓ0NÓ)OÑOˆEØ×$Ñ$Ó&¨Ñ*ˆEØ˜q 2™vÑ&¨*Ò4Ø�z’>à˜‘‘ð ˜Ñ#�Ø�O‰O˜H¨¨u ~Ñ5Ô6Ø�M‰MŒOØ× Ñ Ô"ô �?‰?Ó×'Ñ'¨	Ô2ðØ—
‘
Ô-¨t×/?Ñ/?Ô@ð  $ˆDÔà#ˆÕøô ò 	Ùð	ûô ò Ùðús$   §EG Æ G Ç	GÇGÇ	G)Ç(G)c                 ó´   — | j                   sy 	 | j                   j                  «       s| j                  «        y y # t        $ r | j                  «        Y y w xY w©N)r   Ú	focus_getÚhide_windowÚKeyError©r!   s    r"   Ú_hide_event_checkz$AutoCompleteWindow._hide_event_check  sS   € Ø×&Ò&Øð	Ø×*Ñ*×4Ñ4Ô6Ø× Ñ Õ"ð 7øäò 	ð ×ÑÖð	ús   �*; »AÁAc                 ó
  — | j                  «       rs|j                  t        j                  k(  r'| j                  j                  d| j                  «       y |j                  t        j                  k(  r| j                  «        y y y )Nr&   )	r‰   ÚtypeÚ	EventTypeÚFocusOutr   Úafterrª   ÚButtonPressr§   ©r!   r˜   s     r"   rn   zAutoCompleteWindow.hide_event*  sd   € ð �>‰>ÔØ�z‰zœY×/Ñ/Ò/ð —‘×!Ñ! ! T×%;Ñ%;Õ<Ø—‘œy×4Ñ4Ò4à× Ñ Õ"ð 5ð r$   c                 ó¼   — | j                  «       rLd| _        t        | j                  j	                  «       d   «      }| j                  | j                  |   «       y y )NTr   )r‰   r   rA   r   rB   r/   r   ©r!   r˜   rI   s      r"   r{   z#AutoCompleteWindow.listselect_event7  sN   € Ø�>‰>ÔØ#'ˆDÔ Ü˜Ÿ™×2Ñ2Ó4°QÑ7Ó8ˆFØ×Ñ˜t×/Ñ/°Ñ7Õ8ð r$   c                 ó¬   — t        | j                  j                  «       d   «      }| j                  | j                  |   «       | j                  «        y )Nr   )rA   r   rB   r/   r   r§   r³   s      r"   r   z$AutoCompleteWindow.doubleclick_event=  sC   € ä�T—\‘\×.Ñ.Ó0°Ñ3Ó4ˆØ×Ñ˜4×+Ñ+¨FÑ3Ô4Ø×ÑÕr$   c                 ó  ‡— | j                  «       sy |j                  Št        |d«      r|j                  }nd}‰dk7  rd| _        t        ‰«      dk(  s‰dv s| j                  t        k(  �r†‰dv �r�|t         z  �svt        ‰«      dk(  r| j                  | j                  ‰z   «       n³‰dk(  r| j                  | j                  d	z   «       n�‰d
k(  r| j                  | j                  dz   «       nk‰dk(  r| j                  | j                  dz   «       nGt        | j                  «      dk(  r| j                  «        y | j                  | j                  d d «       | j                  | _        | j                  j                  dt        | j                  j!                  «       d   «      «       | j                  j#                  | j%                  | j                  «      «       | j'                  «        y‰dk(  r!| j)                  «        | j                  «        y| j                  t*        k(  r‰dv s!| j                  t        k(  r´‰dv r°|t         z  s¦t        | j                  j!                  «       d   «      }| j,                  |   d t        | j                  «       | j                  k(  r=| j                  t*        k(  s| j                  r| j                  | j,                  |   «       | j                  «        y ‰dv �r‘|�sŽd| _        t        | j                  j!                  «       d   «      }‰dk(  rd}nô‰dk(  rt        | j,                  «      dz
  }nÖ‰dv r‘| j                  j1                  | j                  j3                  «       «      | j                  j1                  d«      z
  }‰dk(  rt5        d||z
  «      }nn‰dk(  sJ ‚t7        t        | j,                  «      dz
  ||z   «      }nA‰dk(  rt5        d|dz
  «      }n,‰dk(  sJ ‚t7        t        | j,                  «      dz
  |dz   «      }| j                  j                  |«       | j                  j#                  |«       | j'                  «        | j                  | j,                  |   «       y‰dk(  rr|sp| j                  rUt        | j                  j!                  «       d   «      }| j                  | j,                  |   «       | j                  «        yd| _        d| _        y t9        ˆfd„dD «       «      ry |j:                  rÍ|j:                  dk\  r¾| j                  | j                  |j:                  z   «       | j                  | _        | j                  j                  dt        | j                  j!                  «       d   «      «       | j                  j#                  | j%                  | j                  «      «       | j'                  «        y| j                  «        y )NÚmc_stater   ÚTabFr&   )Ú
underscoreÚ	BackSpace)ÚperiodÚminusr¸   Ú_rº   Ú.r»   Ú-éÿÿÿÿÚbreakÚReturn)rº   ÚspaceÚ	parenleftÚ
parenrightÚbracketleftÚbracketright)ÚslashÚ	backslashÚquotedblÚ
apostrophe)ÚHomeÚEndÚPriorÚNextÚUpÚDownTrË   rÌ   )rÍ   rÎ   rÍ   rÎ   rÏ   rÐ   c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr¥   © )Ú.0r2   Úkeysyms     €r"   Ú	<genexpr>z4AutoCompleteWindow.keypress_event.<locals>.<genexpr>¤  s!   øè ø€ ð Eñ 'D ��f”ñ 'Dùs   ƒ)ÚShiftÚControlÚAltÚMetaÚCommandÚOptionÚ )r‰   rÔ   Úhasattrr¶   r   r)   r   r   r   r/   r   r§   r   r   Úselect_clearrA   rB   rG   r5   rH   r�   r   r   r   Únearestr�   r’   r(   ÚanyÚchar)r!   r˜   ÚstaterI   ÚnewselÚjumprÔ   s         @r"   ru   z!AutoCompleteWindow.keypress_eventC  s  ø€ Ø�~‰~ÔØØ—‘ˆÜ�5˜*Ô%Ø—N‘N‰EàˆEØ�UŠ?Ø#(ˆDÔ Ü�‹K˜1Ò Ð*EÑ EØ—	‘	œUÓ" vØ#ò($àœX˜IÓ%ä�6‹{˜aÒØ×"Ñ" 4§:¡:°Ñ#6Õ7Ø˜<Ò'Ø×"Ñ" 4§:¡:°Ñ#3Õ4Ø˜8Ò#Ø×"Ñ" 4§:¡:°Ñ#3Õ4Ø˜7Ò"Ø×"Ñ" 4§:¡:°Ñ#3Õ4ô �t—z‘z“? aÒ'Ø×$Ñ$Ô&ØØ×"Ñ" 4§:¡:¨c¨r ?Ô3Ø"&§*¡*ˆDÔØ�L‰L×%Ñ% a¬¨T¯\©\×-FÑ-FÓ-HÈÑ-KÓ)LÔMØ�L‰L×#Ñ# D×$7Ñ$7¸¿
¹
Ó$CÔDØ×#Ñ#Ô%Øà�xÒØ�M‰MŒOØ×ÑÔØà�i‰iœ5Ò  Vðñ&ð �i‰iœ5Ò  VØ>ñ&?àœx˜iÒ'ô ˜Ÿ™×2Ñ2Ó4°QÑ7Ó8ˆFØ×Ñ Ñ'Ð(8¬¨T¯Z©Z«Ð9¸T¿Z¹ZÒGØ—I‘I¤Ò&¨$¯*ª*Ø×"Ñ" 4×#3Ñ#3°FÑ#;Ô<Ø×ÑÔØàÐEÒEÚà#'ˆDÔ Ü˜Ÿ™×2Ñ2Ó4°QÑ7Ó8ˆFØ˜ÒØ‘Ø˜5’Ü˜T×-Ñ-Ó.¨qÑ0‘ØÐ,Ñ,Ø—|‘|×+Ñ+¨D¯L©L×,EÑ,EÓ,GÓHØ—|‘|×+Ñ+¨AÓ.ñ/�à˜WÒ$Ü   F¨4¡KÓ0‘Fà! VÒ+Ð+Ð+Ü ¤ T×%5Ñ%5Ó!6°qÑ!8¸&À¹+ÓF‘FØ˜4’Ü˜Q  q¡Ó)‘à Ò'Ð'Ð'ÜœS ×!1Ñ!1Ó2°1Ñ4°f¸Q±hÓ?�Ø�L‰L×%Ñ% fÔ-Ø�L‰L×#Ñ# FÔ+Ø×#Ñ#Ô%Ø×Ñ˜t×/Ñ/°Ñ7Ô8Øà˜Šo¡eØ×#Ò#ä˜TŸ\™\×6Ñ6Ó8¸Ñ;Ó<�Ø×"Ñ" 4×#3Ñ#3°FÑ#;Ô<Ø× Ñ Ô"Øð (,�Ô$Ø'+�Ô$Øäó Eñ 'Dó Eô Eð à�ZŠZ˜EŸJ™J¨#Ò-à×Ñ˜tŸz™z¨E¯J©JÑ6Ô7Ø"&§*¡*ˆDÔØ�L‰L×%Ñ% a¬¨T¯\©\×-FÑ-FÓ-HÈÑ-KÓ)LÔMØ�L‰L×#Ñ# D×$7Ñ$7¸¿
¹
Ó$CÔDØ×#Ñ#Ô%Øð ×ÑÔØr$   c                 óú   — | j                  «       sy | j                  j                  d«      | j                  j                  d| j                  t	        | j
                  «      fz  «      k7  r| j                  «        y y )Nr+   r'   )r‰   r   rX   r   r)   r   r§   r±   s     r"   rx   z#AutoCompleteWindow.keyrelease_event·  sc   € Ø�~‰~ÔØØ�;‰;×Ñ˜XÓ&Ø�;‰;×Ñ˜X¨¯©¼#¸d¿j¹j»/Ð(JÑJÓKòLð ×ÑÕðLr$   c                 ó   — | j                   d uS r¥   )r   r©   s    r"   r‰   zAutoCompleteWindow.is_active¿  s   € Ø×&Ñ&¨dÐ2Ð2r$   c                 óX   — | j                  | j                  | j                  «      «       y r¥   )r/   r;   r   r©   s    r"   r�   zAutoCompleteWindow.completeÂ  s   € Ø×Ñ˜4×0Ñ0°·±Ó<Õ=r$   c                 óÀ  — | j                  «       sy | j                  j                  t        t        «       t
        D ]"  }| j                  j                  t        |«       Œ$ | j                  j                  t        | j                  «       | j                  j                  t        | j                  «       d | _        d | _	        t        D ]"  }| j                  j                  t        |«       Œ$ | j                  j                  t        | j                  «       d | _        | j                  j                  t        t        «       | j                  j                  t        | j                  «       d | _        | j                   j                  t"        | j$                  «       d | _        | j&                  r1| j                  j                  t(        | j&                  «       d | _        | j                  j+                  «        | j,                  j/                  «        d | _        | j                   j/                  «        d | _        | j                  j/                  «        d | _        y r¥   )r‰   r   Úevent_deleterm   rr   rs   r   r—   ro   rp   rv   rt   r   rw   ry   r   r   rz   r   r   r|   Ú	focus_setr   Údestroy)r!   r…   s     r"   r§   zAutoCompleteWindow.hide_windowÆ  s¶  € Ø�~‰~ÔØð 	×Ñ×,Ñ,Ô-DÜ-Dô	Fç!ˆCØ�K‰K×$Ñ$Ô%<¸cÕBð "ð 	×Ñ×&Ñ&Ô'>ÀÇÁÔMØ�‰×ÑÔ2°D·L±LÔAØˆŒØˆŒß%ˆCØ�K‰K×$Ñ$Ô%@À#ÕFð &à�‰×ÑÔ6¸¿¹ÔHØˆŒØ�‰× Ñ Ô!>Ü!4ô	6à�‰×ÑÔ8¸$×:KÑ:KÔLØ ˆÔØ�‰×ÑÔ/°×1BÑ1BÔCØ ˆÔØ×ÒØ×#Ñ#×*Ñ*Ô+=¸t×?OÑ?OÔPØ#ˆDÔð 	�‰×ÑÔð 	�‰×ÑÔ ØˆŒØ�‰×ÑÔØˆŒØ×Ñ×'Ñ'Ô)Ø"&ˆÕr$   N)Ú__name__Ú
__module__Ú__qualname__r#   r/   r5   r;   rH   r†   r}   rª   rn   r{   r   ru   rx   r‰   r�   r§   rÒ   r$   r"   r	   r	      sZ   „ ò!$òFò/òò@$*òLFòP3$òj
ò#ò9òòròhò3ò>ó%'r$   r	   Ú__main__)Úmainz%idlelib.idle_test.test_autocomplete_wr1   F)Ú	verbosityÚexit)Ú__doc__r‹   ÚtkinterÚtkinter.ttkr   Úidlelib.autocompleter   r   Úidlelib.multicallr   rm   rr   rs   rt   rv   rw   ry   rz   r|   r~   r	   rì   Úunittestrð   rÒ   r$   r"   Ú<module>rù      s�   ðñó ä Ý !ç -Ý &à7Ð Ø&Ð Ø)¨?Ð;€Ø?Ð ðCÐ ð !DÐ Ø$Ð Ø*Ð Ø"Ð Ø2Ð ÷P'ñ P'ðf ˆzÒÝÙÐ	0¸AÀEÖJð r$   