✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ beluga.o2switch.net ​🇻​♯➤ 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 185.154.139.77 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.84
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /opt/alt/python311/lib64/python3.11/idlelib/__pycache__//editor.cpython-311.opt-1.pyc
�

��|j���X�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlTddlm
Z
ddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddl m!Z!ddl"m#Z#ddlm$Z$dZ%dej&��zZ'ejdkZ(d�Z)Gd�d��Z*d�Z+ej,d��Z-d�Z.Gd�d��Z/d �Z0d!d"d#d$�Z1d%�Z2d&�Z3d'�Z4e5d(kr'dd)l6m7Z7e7d*d+d,�-��dd.l8m9Z9e9e4��dSdS)/�N)�*)�Font)�	Scrollbar)�simpledialog)�
messagebox)�idleConf)�configdialog)�grep)�help)�
help_about)�macosx)�MultiCallCreator)�pyparse)�query)�replace)�search)�wheel_event)�
py_extensions)�window�z (%s)�darwinc��tj\}}}}}|�|��}||�z
}|dkr	|d|��z
}n|dkr||d�|��z
}|S)zYFormat sys.version_info to produce the Sphinx version string used to install the chm docs�	candidate�rc�finalr)�sys�version_info)�major�minor�micro�level�serial�releases      �5/opt/alt/python311/lib64/python3.11/idlelib/editor.py�_sphinx_versionr%&sw��),�)9�&�E�5�%��������G��%�z��G������=��=�=� ���	�'�	�	��e�A�h�(��(�(�(���N�c��eZdZddlmZddlmZmZddlm	Z	ddl
mZmZddl
mZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZmZmZmZddl m!Z!ddl"m#Z#e$j%��Z&dZ'dZ(dZ)dZ*dxd�Z+dyd�Z,d�Z-d�Z.d�Z/d�Z0dyd�Z1	gd�Z2d�Z3d�Z4d�Z5d�Z6d�Z7dZ8d�Z9d gZ:d!�Z;d"�Z<d#�Z=d$�Z>dyd%�Z?dyd&�Z@dyd'�ZAdyd(�ZBd)�ZCd*�ZDd+�ZEdyd,�ZFdyd-�ZGd.�ZHd/�ZId0�ZJd1�ZKd2�ZLd3�ZMd4�ZNd5�ZOd6�ZPd7�ZQd8�ZRdyd9�ZSdyd:�ZTdyd;�ZUd<�ZVd=�ZWd>�ZXd?�ZYd@�ZZdA�Z[dB�Z\dC�Z]e^j_e^j`zdDzZadE�ZbdF�ZcdG�ZddH�ZedI�ZfdJ�ZgdK�ZhdL�ZidydM�ZjdN�ZkdO�ZldP�ZmdQ�ZndR�ZodS�ZpdT�ZqdU�ZrdzdW�ZsdX�ZtdzdY�ZudZ�Zvd[�Zwd\�Zxd]�Zyd^�Zzd_�Z{d`�Z|da�Z}db�Z~dcddiZde�Z�dydf�Z�d{dg�Z�dh�Z�dydi�Z�dydj�Z�dk�Z�dl�Z�dm�Z�dn�Z�d|do�Z�dp�Z�dq�Z�dr�Z�ds�Z�dt�Z�du�Z�dv�Z�dydw�Z�dS)}�EditorWindowr)�
Percolator)�ColorDelegator�color_config)�
UndoDelegator)�	IOBinding�encoding)�mainmenu)�MultiStatusBar)�AutoComplete)�
AutoExpand)�Calltip)�CodeContext)�LineNumbers)�FormatParagraph�FormatRegion�Indents�Rstrip)�
ParenMatch)�
ZoomHeightNTc�"�ddlm}tj��%tj�tjdd��}tj	�
d��rbddtjdd�zz}tj�d	��rd
}�n	d}tj�||dd��}n�tj	dd�dkr�ddl
}	d
}
dtj�d�}	|	�|	j|��}
n=#t"$r0	|	�|	j|��}
n#t"$rYnwxYwYnwxYwtj�|
��r|
}n:tj	dkr*tj�tjd��}tj�|��}tj�|��r6|t_tj	dkrdtjzt_n!dtjdd�zt_||_|p|j}||_t/|��|_t3j||j���x|_}|r|j|_|j|j_ni|_i|j_t@j!o)tj�t@j!d��|_"d
|_#tI|��x|_%}
tM|
d���x|_'}tAj(dddd���}ddd d|d!tAj(ddd"d���d#�}tStT��|
fi|��x|_+}|j+|j_,|�-��|�.��|j�/d$|j0��|j�1d%|j2��tgj4��rR|�1d%|j2��|�1d&|j5��|�1d'|j5��n|�1d(|j5��|�1d)tl��|j7d*kr6|�1d+tl��|�1d,tl��|�1d-|j8��|�1d.|j9��|�1d/|j:��|�1d0|j;��|�1d1|j<��|�1d2|j=��|�1d3|j>��|�1d4|j?��|�1d5|j@��|�1d6|jA��|�1d7d8���|�1d9|jB��|�1d:|jC��|�1d;|jD��|�1d<|jE��|�1d=|jF��|�1d>|jG��|�1d?|jH��|�1d@|jI��|�1dA|jJ��|�1dB|jK��|�1dC|jL��|�M|��x|_N}|�1dD|jO��|�1dE|jP��|�1dF|jQ��|�1dG|jR��|�1dH|jS��|�1dI|jT��|�U|��}|�1dJ|jV��|�1dK|jW��|�1dL|�Xd����|�1dM|�XdN����|�1dO|jY��|�1dP|jZ��|�1dQ|j[��|r�||j|<|r
||j\|<|�1dR|j]��|�1dS|jj^��|�1dT|j_��|�1dU|j`��|�1dV|ja��|�b��|
�ct�t�dN�W��|
�fdNdN�X��|
�gdNdN�X��|jh|dY<|�idNdt��Z��|jk|d[<tAjl|jdd��|d\<|�idNdNt��Z��|�m��|�n��tAj(dd]d^d_���}||_od`|_p|jp|_q|�r��t�t@da��s|j+dbt@_t|�u��dc|_v|�w|��x|_x}|�y��x|_z}|�{|��|j||_||j}|_}|�~|j��|��|��x|_�}|��|j���dd|_�|��dd��d|_�d|_�d|_�|r�tj��|��rftj�|��sG|��|��r1de|_�|��|��}|��|��n|��|��de|_�|����|���|����|����|j���df��}|rX|��dg��}|�dh}|dkr|����|dNz}||_�t3j�|j����t.j�|_��t2j�|_��t2j�|_�|��didj��|��dkdldmdn��|��dodp��|��dqdr��|��dsdrdtdu��|��||j���}|�1di|j���|�1dk|j���|�1dv|j���|�1dw|��|��j���|�1dx|��|��j���|��|��}|�1dy|j���|�1ds|j���||��}|�1dz|j���|�1d{|j���|�1d||j���|�1d}|��|��j���|��|��x|_�}|�1do|j���|�1dq|j���|�1d~|j���|�1d|��|��j���|j�r;|��|��|_�|�1d�|j�j���n|��d�d�d���|j�rc|��|��|_�tAj(ddd�d_���r|����|�1d�|j���dS|��d�d�d���dS)�Nr)�
ScriptBinding�Docz
index.html�linuxzpython-docs-z%s.%s.%s�z/var/www/html/python/z/var/www/html/python/index.htmlz/usr/share/doc/�win�zSoftware\Python\PythonCore\z\Help\Main Python Documentationrz0Resources/English.lproj/Documentation/index.htmlzfile://zhttps://docs.python.org/%d.%d/�)�menuzrecent-files.lst�vbar)�name�mainr(�width�int��type�text��none�
wordprocessor�height)rF�padx�wrap�highlightthicknessrH�tabstylerP�WM_DELETE_WINDOW�<<close-window>>z<Control-Button-1>z<2>z<3>z<MouseWheel>�x11z
<Button-4>z
<Button-5>z<Configure>z<<cut>>z<<copy>>z	<<paste>>z<<center-insert>>z<<help>>z<<python-docs>>z<<about-idle>>z<<open-config-dialog>>�<<open-module>>z<<do-nothing>>c��dS�N�break�)�events r$�<lambda>z'EditorWindow.__init__.<locals>.<lambda>�s��'�r&z<<select-all>>z<<remove-selection>>z<<find>>z<<find-again>>z<<find-in-files>>z<<find-selection>>z<<replace>>�
<<goto-line>>z<<smart-backspace>>z<<newline-and-indent>>z<<smart-indent>>z<<indent-region>>z<<dedent-region>>z<<comment-region>>z<<uncomment-region>>z<<tabify-region>>z<<untabify-region>>z<<toggle-tabs>>�<<change-indentwidth>>z<Left>z<Right>�z<<del-word-left>>z<<del-word-right>>z<<beginning-of-line>>z<<open-new-window>>z<<close-all-windows>>z<<open-class-browser>>z<<open-path-browser>>z<<open-turtle-demo>>)�side�fill�expand)�weight�command)�row�column�sticky�yscrollcommand�font�Indentz
use-spaces�boolr�blink_off_time�
insertofftime)�2i�i@KLFTr�end���z<<autocomplete>>z	<Key-Tab>z<<try-open-completions>>z<KeyRelease-period>z<KeyRelease-slash>z<KeyRelease-backslash>z<<try-open-calltip>>z<KeyRelease-parenleft>z<<refresh-calltip>>z<KeyRelease-parenright>z<<paren-closed>>z<KeyRelease-bracketright>z<KeyRelease-braceright>z<<force-open-completions>>z<<expand-word>>z<<format-paragraph>>z<<flash-paren>>z<<check-module>>z<<run-module>>z<<run-custom>>z
<<do-rstrip>>z<<force-open-calltip>>z<<zoom-height>>z<<toggle-code-context>>�optionsz*ode*ontext�disabledzline-numbers-defaultz<<toggle-line-numbers>>�*ine*umbers)��idlelib.runscriptr=r(�help_url�os�path�joinr�base_prefix�platform�countr�isdir�winreg�winver�
QueryValue�HKEY_CURRENT_USER�FileNotFoundError�HKEY_LOCAL_MACHINE�isfile�normpath�flist�root�Menu�menubarr�ListedToplevel�top�vars�tkinter_vars�inversedict�
instance_dictr�userdir�recent_files_path�prompt_last_line�Frame�
text_framerrE�	GetOptionr�TextrL�focused_widget�
createmenubar�apply_bindings�protocol�close�bind�close_eventr
�isAquaTk�right_menu_eventr�_windowingsystem�handle_winconfig�cut�copy�paste�center_insert_event�help_dialog�python_docs�about_dialog�
config_dialog�open_module_event�
select_all�remove_selection�
find_event�find_again_event�find_in_files_event�find_selection_event�
replace_event�goto_line_event�smart_backspace_event�newline_and_indent_event�smart_indent_eventr7�fregion�indent_region_event�dedent_region_event�comment_region_event�uncomment_region_event�tabify_region_event�untabify_region_eventr8�toggle_tabs_event�change_indentwidth_event�move_at_edge_if_selection�
del_word_left�del_word_right�
home_callback�dict�new_callback�close_all_callback�open_module_browser�open_path_browser�open_turtle_demo�set_status_bar�pack�LEFT�BOTH�rowconfigure�columnconfigure�handle_yview�grid�NSEW�set�GetFont�	focus_set�	set_width�usetabs�tabwidth�indentwidth�set_notabs_indentwidth�hasattrrn�update_cursor_blink�num_context_linesr)�perr,�undo�insertfilter�undo_block_start�undo_block_stop�set_saved_change_hook�saved_change_hookr-�io�set_filename_change_hook�filename_change_hook�	good_load�set_indentation_params�color�code_context�line_numbers�exists�loadfile�ispythonsource�set_filename�ResetColorizer�update_recent_files_list�load_extensions�menudict�get�index�
add_separator�	wmenu_end�register_callback�postwindowsmenur�
askintegerr�askyesno�	showerror�	event_addr1�user_input_insert_tags�autocomplete_event�try_open_completions_event�force_open_completions_eventr2�expand_word_eventr6�format_paragraph_eventr:�flash_paren_event�paren_closed_event�check_module_event�run_module_event�run_custom_eventr9�	do_rstripr3�ctip�try_open_calltip_event�refresh_calltip_event�force_open_calltip_eventr;�zoom_height_event�allow_code_contextr4�toggle_code_context_event�update_menu_state�allow_line_numbersr5�toggle_line_numbers_event)�selfr��filename�keyr�r=�dochome�pyver�basepathr�docfile�KEYr�r�rErH�text_optionsrLr��indents�	usespacesr�r�r��	is_py_srcrDrq�autocomplete�
parenmatch�
scriptbindingrs                               r$�__init__zEditorWindow.__init__Js��3�3�3�3�3�3�� �(��w�|�|�C�O�U�L�I�I�G��|�!�!�'�*�*�
L�&��c�6F�r��r�6J�)J�J���7�=�=�!8�9�9�@�?�G�G�0�H� �g�l�l�8�U�+0�,�@�@�G�G���b�q�b�!�U�*�*��
�
�
���;�c�j�;�;�;���$�/�/��0H�#�N�N�G�G��(�����"(�"3�"3�F�4M�47�#9�#9����,������������	�����7�>�>�'�*�*�&�%�G�����)�)��'�,�,�s��J�L�L���g�&�&�w�/�/�G��w�~�~�g�&�&�
A�(/��%��<�8�+�+�,5��8M�,M�L�)��)I�+.�+;�B�Q�B�+?�*@��%���
��!�u�z����	��D�z�z����.�t�$�,�G�G�G�G���3��	(� %�
�D��&+�%6�D�H�"�"� "�D��%'�D�H�"�!)�!1�"6�b�g�l�l�� �"4�76�76���!#���',�S�z�z�1���*�$�Z�f�=�=�=�=��	�D��"�6�>�7��O�O�O�����&'��+�"�,����u�F�F�F�	�	��2�+�D�1�1�*�M�M��M�M�M��	�D�"&�)��������������������,�d�j�9�9�9���
�
�(�$�*:�;�;�;��?���
	3��I�I�(�$�*:�;�;�;�
�I�I�*�4�+@�A�A�A��I�I�e�T�2�3�3�3�3�
�I�I�e�D�1�2�2�2��	�	�.�+�.�.�.�� �E�)�)��I�I�l�K�0�0�0��I�I�l�K�0�0�0��	�	�-��!6�7�7�7��	�	�)�T�X�&�&�&��	�	�*�d�i�(�(�(��	�	�+�t�z�*�*�*��	�	�%�t�'?�@�@�@��	�	�*�d�.�/�/�/��	�	�#�T�%5�6�6�6��	�	�"�D�$5�6�6�6��	�	�*�D�,>�?�?�?��	�	�#�T�%;�<�<�<��	�	�"�$9�$9�:�:�:��	�	�"�D�O�4�4�4��	�	�(�$�*?�@�@�@��	�	�*�d�o�.�.�.��	�	�"�D�$9�:�:�:��	�	�%�t�'?�@�@�@��	�	�&��(A�B�B�B��	�	�-��!3�4�4�4��	�	�/�4�#7�8�8�8��	�	�'��(B�C�C�C��	�	�*�4�+H�I�I�I��	�	�$�T�%<�=�=�=�!%�!2�!2�4�!8�!8�8���w��	�	�%�w�'B�C�C�C��	�	�%�w�'B�C�C�C��	�	�&��(D�E�E�E��	�	�(�'�*H�I�I�I��	�	�%�w�'B�C�C�C��	�	�'��)F�G�G�G��,�,�t�$�$���	�	�#�W�%>�?�?�?��	�	�*�G�,L�M�M�M��	�	�(�D�:�:�1�=�=�>�>�>��	�	�)�T�;�;�A�>�>�?�?�?��	�	�%�t�'9�:�:�:��	�	�&��(;�<�<�<��	�	�)�4�+=�>�>�>��	E�&)�E��d�#��
'�"&��
�3���I�I�+�T�->�?�?�?��I�I�-�t�z�/L�M�M�M��I�I�.��0H�I�I�I��I�I�-�t�/E�F�F�F��I�I�,�d�.C�D�D�D����������T��Q��7�7�7�����!��,�,�,��"�"�1�Q�"�/�/�/��+��Y���	�	�a��$�	�/�/�/�!%���
���'��	�6�>�J�J��V���	�	�a��$�	�/�/�/��������������&�v�x�'3�&�B�B�B�	�$�}�����
� �=����#�#�%�%�%��x�!1�2�2�	A�&*�i��&@�H�#�� � �"�"�"�"2�������.�.�.���3��-�-�/�/�/��	�D�������� $� 5���#�3����"�"�4�#9�:�:�:��~�~�d�+�+�+���"�
�#�#�D�$=�>�>�>�����#�#�E�*�*�*���
� ��� ����	&��w�~�~�h�'�'�
&���
�
�h�0G�0G�
&��;�;�x�(�(�;�%)�D�N� $� 3� 3�H� =� =�I��/�/�	�:�:�:������)�)�)�!%������������ � � ��%�%�'�'�'��������}� � ��*�*���	;��*�*�U�#�#�C��{����a�x�x��"�"�$�$�$��A�g�� �D�N��$�T�%9�:�:�:�'�1���"�+��
�#�-���	
���)�;�7�7�7����1�3H�+�-E�	G�	G�	G����-�/G�H�H�H����,�.G�H�H�H����)�+D�2�4M�	O�	O�	O�
�(�(��t�/J�K�K���	�	�$�l�&E�F�F�F��	�	�,��9�	;�	;�	;��	�	�.��;�	=�	=�	=��	�	�#�T�_�_�T�%:�%:�%L�M�M�M��	�	�(��&�&�t�,�,�C�	E�	E�	E��_�_�T�*�*�
��	�	�#�Z�%A�B�B�B��	�	�$�j�&C�D�D�D�%�
�d�+�+�
��	�	�$�m�&F�G�G�G��	�	�"�M�$B�C�C�C��	�	�"�M�$B�C�C�C��	�	�/�4�;�;�t�#4�#4�#>�?�?�?��<�<��-�-�-��	�D��	�	�(�$�*E�F�F�F��	�	�'��)C�D�D�D��	�	�*�D�,I�J�J�J��	�	�#�T�_�_�T�%:�%:�%L�M�M�M��"�	I� $� 0� 0�� 6� 6�D���I�I�/��'�A�
C�
C�
C�
C�
�"�"�9�m�Z�H�H�H��"�	I� $� 0� 0�� 6� 6�D���!�&�.�"8�v�G�G�G�
1��.�.�0�0�0��I�I�/��1O�P�P�P�P�P��"�"�9�m�Z�H�H�H�H�Hs6�/D�
E�D2�1E�2
D?�<E�>D?�?E�Ec�.�|���dS�N)r��rr]s  r$r�zEditorWindow.handle_winconfigms���������r&c	�h�|j}tt|jj|�d��|�d��g����}|���d|zz
}t||�d������d��}||z|_	dS)N�borderrQrCrk)rk�0)
rL�sum�map�tk�getint�cget�winfo_widthr�measurerH)rrL�
inner_padding�pixel_width�zero_char_widths     r$r�zEditorWindow.set_widthps����y���C�������8�1D�1D�15���6�1B�1B�1D�E�E�F�F�
��&�&�(�(�1�}�+<�<��
��D�I�I�f�-�-�.�.�.�6�6�s�;�;�	� �O�3��
�
�
r&c�r�|j���\}}|j�|��dSrZ)r��defaultfilenamer��new)rr]�dirname�basenames    r$r�zEditorWindow.new_callback}s3�� �G�3�3�5�5�����
���w�����wr&c��|jdzdkr
|jdkrdS|j�d��ry|j�ddd��r]|j�ddd��rAt|j�d���d��d	��}nU|j�dd��}tt|����D]}||d
vrn�t|��}t|j�d���d��d	��}||krd}dt|��zd
z}|jd	zdkr|j�ddd���nE|j�d��s|j�dd��n�|j�|j�d��d|j�d����r|j�dd��n|j�dd��|j�|��}|j�d��}|j�|d|��r||}}|j�ddd��|j�
d||��|j�d|��|j�d��dS)N�r�Home�iomark�<=zinsert lineend�insert linestart�.ra)� �	�insertzinsert linestart+�c�sel�1.0rq�	sel.first�	my_anchor�<�sel.last�>r[)�state�keysymrLr��comparerI�splitr��range�len�str�
tag_remove�mark_set�tag_add�see)rr]�insertpt�line�lineat�dest�first�lasts        r$r�zEditorWindow.home_callback�s����K�!�O��!�!�e�l�f�&<�&<��4��9�?�?�8�$�$�	#��9���X�t�-=�>�>�	#��9���/��x�@�@�	#��4�9�?�?�8�4�4�:�:�3�?�?��B�C�C�H�H��9�=�=�!3�5E�F�F�D�!�#�d�)�)�,�,�
#�
#����>��3�3��E�4��T�����T�Y�_�_�X�.�.�4�4�S�9�9�!�<�=�=���v����H�"�3�x�=�=�0��4���K��M�a����I� � ���u�5�5�5�5��9�?�?�;�/�/�
@��	�"�"�;��9�9�9�9��9�$�$�T�Y�_�_�[�%A�%A�3�%)�Y�_�_�X�%>�%>�@�@�@��I�&�&�{�K�@�@�@�@��I�&�&�{�J�?�?�?��I�O�O�D�)�)�E��9�?�?�;�/�/�D��y� � ��s�4�0�0�
(�!�%�d���I� � ���u�5�5�5��I���e�U�D�1�1�1��	���8�T�*�*�*��	�
�
�h�����wr&c��|�|j��|_t|jddd���}tjdkr"|j�ddt���|j�dd	t���|j�d
dt���|j�tt���|�tt���|j�d
|j
��|j�d
dd��|j�|j
��dS)Nra�grey75)rP�borderwidth�
backgroundr�	_padding1z    )rbrhzCol: ?rXzLn: ?)rbrcz<<set-line-and-column>>z<KeyRelease>z<ButtonRelease>)r0r��
status_barr�rr|�	set_label�RIGHTr��BOTTOM�XrLr��set_line_and_columnr��
after_idle)r�seps  r$r�zEditorWindow.set_status_bar�s$���-�-�d�h�7�7����D�H�Q�A�(�K�K�K���<�8�#�#�
�O�%�%�k�6��%�F�F�F���!�!�(�H�5�!�A�A�A���!�!�&�'��!�>�>�>�����&�q��1�1�1����f�1��%�%�%��	���0�$�2J�K�K�K��	���5�*�,=�	?�	?�	?��	���T�5�6�6�6�6�6r&c���|j�t���d��\}}|j�dd|z��|j�dd|z��dS)Nr@rhzCol: %srXzLn: %s)rLr��INSERTrOrbrc)rr]rXrhs    r$rgz EditorWindow.set_line_and_column�sf���y���v�.�.�4�4�S�9�9���f���!�!�(�I��,>�?�?�?���!�!�&�(�T�/�:�:�:�:�:r&))�file�_File)�edit�_Edit)�format�F_ormat)�run�_Run)rs�_Options)r�_Window)r�_Helpc��|j}ix|_}|jD][\}}t|��\}}t	||�d�d��}t||d|���x||<}|�|||����\tj��r.t|dd���x|d<}|�d	|�
��|�	��t|jd���|_
|jd�d
dd|j
���|jd�t��|_|���dS)aPopulate the menu bar widget for the editor window.

        Each option on the menubar is itself a cascade-type Menu widget
        with the menubar as the parent.  The names, labels, and menu
        shortcuts for the menubar items are stored in menu_specs.  Each
        submenu is subsequently populated in fill_menus(), except for
        'Recent Files' which is added to the File menu here.

        Instance variables:
        menubar: Menu widget containing first level menu items.
        menudict: Dictionary of {menuname: Menu instance} items.  The keys
            represent the valid menu items for this window and may be a
            subset of all the menudefs available.
        recent_files_menu: Menu widget contained within the 'file' menudict.
        �_menu_postcommandNr)rF�tearoff�postcommand)�labelrD�	underline�apple)rFry�application�IDLE)r{rD�ryrlr@zRecent Files)r{r|rDr)r�r��
menu_specs�prepstr�getattrr��add_cascader
�
isCarbonTk�
fill_menus�recent_files_menu�insert_cascader��END�base_helpmenu_length�reset_help_menu_entries)r�mbarr�rFr{r|rzrDs        r$r�zEditorWindow.createmenubar�s��� �|��#%�%��
���?�	J�	J�K�D�%�&�u�~�~��I�u�!�$�4�(B�(B�(B�D�I�I�K�$(��D�!�5@�%B�%B�%B�
B�H�T�N�T����5�t�y��I�I�I�I�����	6�-1�$�W�:;�.=�.=�.=�
=�H�]�#�d����6���5�5�5�������!%�d�l�A�!>�!>�!>����
�f��,�,�Q�n�78�26�2H�	-�	J�	J�	J�%)�M�&�$9�$?�$?��$D�$D��!��$�$�&�&�&�&�&r&c���|jd}|�d��}|�d}||jkr|�|jdz|��t	j|��dS)zSCallback to register window.

        Only called when Window menu exists.
        rrqNrrra)r�r�r��deleter�add_windows_to_menu)rrDrqs   r$r�zEditorWindow.postwindowsmenusj��
�}�X�&���j�j������;��C�������K�K���q�(�#�.�.�.��"�4�(�(�(�(�(r&c�N�|j|}|�||���dS)z$Update label for menu item at index.)r{N�r��entryconfig)rrDr�r{�menuitems     r$�update_menu_labelzEditorWindow.update_menu_label�-���=��&�����U�%��0�0�0�0�0r&c�N�|j|}|�||���dS)z$Update state for menu item at index.�rLNr�)rrDr�rLr�s     r$rzEditorWindow.update_menu_stater�r&c���|dkrVt|d��}t|�d��|z��|�d��z
}d}|df}|jj|g|�R�dS)zHandle scrollbar.�movetorrq�@0,0�scroll�unitsr[)�float�round�	getlinenorL�yview)rr]�args�fraction�liness     r$r�zEditorWindow.handle_yviews~���H����T�!�W�~�~�H��4�>�>�%�0�0�8�;�<�<��^�^�F�+�+�,�E��E��7�#�D���	���%��%�%�%�%��wr&c��|j}|�d|j�d|j����}	|�dd|��o|�|dd��}n#t
$rd}YnwxYw|s-|�ddd	��|�d
|��|js|�	��|j}||_
tjdd�dk}|r|�
d
���|jD]L}	|\}}	}
n#t$rY�wxYw|
��t!||
����}|�||����M|�|j|j��|r|j�
d���dS)N�@�,rGr>rJFrErFrqrCr@rA�arrow)�cursorr��ibeamr[)rLr��x�yrN�TclErrorrSrT�rmenu�
make_rmenur]rr|�config�rmenu_specs�
ValueErrorr��entryconfigure�tk_popup�x_root�y_root)rr]rL�newdex�in_selectionr��iswin�itemr{�	eventname�verify_staterLs            r$r�zEditorWindow.right_menu_event)s����y�����3���3�3�%�'�3�3�4�4��	!� �L�L��d�F�C�C�C��<�<���z�B�B�
�L���	!�	!�	!� �L�L�L�	!�����	,��O�O�E�5�%�0�0�0��M�M�(�F�+�+�+��z�	��O�O�����
����
���R�a�R� �E�)���	(��K�K�w�K�'�'�'��$�		5�		5�D�
�15�.��y�,�,���
�
�
���
�����#��/�G�D�,�/�/�1�1�E�� � ��e� �4�4�4�4�
���u�|�U�\�2�2�2��	-��I���G��,�,�,��ws#�.A�A,�+A,�D�
D�D)�CloserVNc���t|jd���}|jD]K}|d|d}}|�#|j|fd�}|�||����7|����L||_dS)Nrr�rac�0�|�|��dSr&��event_generate�rLr�s  r$rfz(EditorWindow.make_rmenu.<locals>.commandVs���'�'�	�2�2�2�2�2r&�r{rf)r�rLr��add_commandr�r�)rr�r�r{r�rfs      r$r�zEditorWindow.make_rmenuQs����T�Y��*�*�*���$�	&�	&�D�#�A�w��Q��9�E�� �!%��i�3�3�3�3��!�!��w�!�?�?�?�?��#�#�%�%�%�%���
�
�
r&c�*�|���Sr&)�rmenu_check_copy�rs r$�rmenu_check_cutzEditorWindow.rmenu_check_cut]s���$�$�&�&�&r&c�f�	|j�d��}|rdndS#t$rYdSwxYw)NrG�normalrt�rLr�r�)r�indxs  r$r�zEditorWindow.rmenu_check_copy`sO��	4��9�?�?�;�/�/�D� $�3�8�8��3���	�	�	��:�:�	���s�"�
0�0c�v�	|jj�d|jd��dS#t$rYdSwxYw)Nztk::GetSelection�	CLIPBOARDr�rt)rLr-�callr�r�s r$�rmenu_check_pastezEditorWindow.rmenu_check_pastehsQ��	��I�L���0�$�)�[�I�I�I��8���	�	�	��:�:�	���s�&*�
8�8c�8�tj|j��dS)zHandle Help 'About IDLE' event.r[)r�AboutDialogr�r's  r$r�zEditorWindow.about_dialogps��	��t�x�(�(�(��wr&c�:�tj|jd��dS)z&Handle Options 'Configure IDLE' event.�Settingsr[)r	�ConfigDialogr�r's  r$r�zEditorWindow.config_dialogvs��	�!�$�(�:�6�6�6��wr&c�Z�|jr|j}n|j}tj|��dS)zHandle Help 'IDLE Help' event.r[)r�r�r�
show_idlehelp)rr]�parents   r$r�zEditorWindow.help_dialog|s4���9�	��Y�F�F��X�F���6�"�"�"��wr&c��tjdd�dkr[	tj|j��nY#t
$r3}t
jdt|��|j	���Yd}~n!d}~wwxYwtj|j��dS)Nr@rA�Document Start Failure��title�messager�r[)rr|rx�	startfilerw�OSErrorrr�rRrL�
webbrowser�open)rr]�whys   r$r�zEditorWindow.python_docs�s����<�����u�$�$�
8���T�]�+�+�+�+���
8�
8�
8��$�+C���H�H�T�Y�8�8�8�8�8�8�8�8�8�����
8����
�O�D�M�*�*�*��ws�4�
A1�)A,�,A1c�:�|j�d��dS)Nz<<Cut>>r[�rLr�r's  r$r�zEditorWindow.cut�s���	� � ��+�+�+��wr&c�r�|j�d��sdS|j�d��dS)NrEz<<Copy>>r[)rL�
tag_rangesr�r's  r$r�zEditorWindow.copy�s:���y�#�#�E�*�*�	��4��	� � ��,�,�,��wr&c�n�|j�d��|j�d��dS)Nz	<<Paste>>rCr[)rLr�rVr's  r$r�zEditorWindow.paste�s1���	� � ��-�-�-��	�
�
�h�����wr&c��|j�ddd��|j�dd��|j�d��dS)NrErFzend-1crCr[)rLrUrTrVr's  r$r�zEditorWindow.select_all�sM���	���%���1�1�1��	���8�U�+�+�+��	�
�
�h�����wr&c�r�|j�ddd��|j�d��dS)NrErFrqrCr[)rLrSrVr's  r$r�zEditorWindow.remove_selection�s5���	���U�E�5�1�1�1��	�
�
�h�����wr&c�R�����|jj�|jj�d�����fd�}|S)z�Cursor move begins at start or end of selection

        When a left/right cursor key is pressed create and return to Tkinter a
        function which causes a cursor move from the associated edge of the
        selection.

        )zsel.first+1czsel.last-1cc���|jdzdkr1	�d���d����dS#t$rYdSwxYwdS)NrMrrGrC)rLr�)r]�
edge_index�edges_table�self_text_index�self_text_mark_sets ����r$�move_at_edgez<EditorWindow.move_at_edge_if_selection.<locals>.move_at_edge�sq�����a��A�%�%��#�O�K�0�0�0�&�&�x��Z�1H�I�I�I�I�I�������D�D�����	&�%s�0�
>�>)rLr�rT)rr�r�r�r�r�s ` @@@r$r�z&EditorWindow.move_at_edge_if_selection�sQ�������)�/��!�Y�/��5��	�	�	�	�	�	�	�	��r&c�:�|j�d��dS)Nz
<Meta-Delete>r[r�r's  r$r�zEditorWindow.del_word_left�s���	� � ��1�1�1��wr&c�:�|j�d��dS)Nz<Meta-d>r[r�r's  r$r�zEditorWindow.del_word_right�s���	� � ��,�,�,��wr&c�8�tj|j��dSrZ)r�findrLr's  r$r�zEditorWindow.find_event�s����D�I�����wr&c�8�tj|j��dSrZ)r�
find_againrLr's  r$r�zEditorWindow.find_again_event�s����$�)�$�$�$��wr&c�8�tj|j��dSrZ)r�find_selectionrLr's  r$r�z!EditorWindow.find_selection_event�s����d�i�(�(�(��wr&c�P�tj|j|j|j��dSrZ)r
rLr�r�r's  r$r�z EditorWindow.find_in_files_event�s!���	�$�)�T�W�d�j�1�1�1��wr&c�8�tj|j��dSrZ)rrLr's  r$r�zEditorWindow.replace_event�s�����	�"�"�"��wr&c��|j}tj|dd��j}|�Y|�ddd��|�d|�d���|�d��|���dS)	Nz
Go To Linez/Enter a positive integer
('big' = end of file):rErFrqrC�.0r[)rLr�Goto�resultrSrTrVrg)rr]rL�linenos    r$r�zEditorWindow.goto_line_event�s����y�����l�)����		�
���O�O�E�5�%�0�0�0��M�M�(�v�M�M�M�2�2�2��H�H�X�����$�$�&�&�&��wr&c�F�	|j�dd�����}n#t$rd}YnwxYwt	j|jdd|��j}|�<|jr|j�|��n|j	�
|��|S)z�Get module name from user and open it.

        Return module path or None for calls by open_module_browser
        when latter is not invoked in named editor window.
        rGrJrBzOpen ModulezAEnter the name of a Python module
to search on sys.path and open:)rLr��stripr�r�
ModuleNamer�r�r�r�r�)rrF�	file_paths   r$�open_modulezEditorWindow.open_module�s���	��9�=�=��j�9�9�?�?�A�A�D�D���	�	�	��D�D�D�	�����$��	�=�2��	���		�
� ��z�
,��
���	�*�*�*�*��� � ��+�+�+��s�-0�?�?c�.�|���dSrZ)rr's  r$r�zEditorWindow.open_module_events���������wr&c��|jj}|jjdkr|s|���}|�dSddlm}|�|j|��dS)N�PyShellEditorWindowr[r)�browser)	r�r�	__class__�__name__r�idlelibr�
ModuleBrowserr�)rr]rrs    r$r�z EditorWindow.open_module_browsersq���7�#����'�+@�@�@��A��'�'�)�)�H����w�#�#�#�#�#�#����d�i��2�2�2��wr&c�F�ddlm}|�|j��dS)Nr)�pathbrowserr[)r
r
�PathBrowserr�)rr]r
s   r$r�zEditorWindow.open_path_browsers/��'�'�'�'�'�'�����	�*�*�*��wr&c�Z�ddl}tjddg}|�|d���dS)Nrz-cz,from turtledemo.__main__ import main; main()F)�shellr[)�
subprocessr�
executable�Popen)rr]r�cmds    r$r�zEditorWindow.open_turtle_demos@�������~��=�?��	����E��*�*�*��wr&c���|�r|dkrn|j�dd|z��|j�ddd��|j�ddd��|���dSdSdS)NrrCz%d.0rErFrqz
insert +1l)rLrTrSrU�center)rr�s  r$�gotolinezEditorWindow.gotolines}����&�1�*�*��I���x��&��9�9�9��I� � ���u�5�5�5��I���e�X�|�<�<�<��K�K�M�M�M�M�M�	��*�*r&c�~�|rtj�|��rdStj�tj�|����\}}tj�|��tvrdS|j�dd��}|�	d��od|vS)NTrFz1.0 lineendz#!�python)
rxryr~�splitextr9�normcaserrLr��
startswith)rr�base�extrXs     r$r�zEditorWindow.ispythonsource&s����	�2�7�=�=��2�2�	��4��G�$�$�R�W�%5�%5�h�%?�%?�@�@�	��c�
�7���C� � �M�1�1��4��y�}�}�U�M�2�2�����t�$�$�9��T�)9�9r&c�Z�|jr#|j�|��d|_dSdSr&)r��unregister_maybe_terminater�s r$�
close_hookzEditorWindow.close_hook/s7���:�	��J�1�1�$�7�7�7��D�J�J�J�	�	r&c��||_dSr&)r!)rr!s  r$�set_close_hookzEditorWindow.set_close_hook4s
��$����r&c���|jr|j�|��|���|j�|��|���dSr&)r��filename_changed_editr�r��update_windowlist_registryr�r�s r$r�z!EditorWindow.filename_change_hook7sb���:�	3��J�,�,�T�2�2�2���� � � ���+�+�D�1�1�1��������r&c���|jrdS|�|jj��r|���|_|jr(|j�|j|j���dSdS)N)�filter�after)r�r�r�rr*r��insertfilterafterr�r�s r$�
_addcolorizerzEditorWindow._addcolorizer>s{���:�	��F����t�w�/�0�0�	/��,�,�.�.�D�J��:�	K��H�&�&�d�j��	�&�J�J�J�J�J�	K�	Kr&c��|jsdS|j���|j�|j��d|_dSr&)r��removecolorsr��removefilterr�s r$�_rmcolorizerzEditorWindow._rmcolorizerGsH���z�	��F��
���!�!�!�����d�j�)�)�)���
�
�
r&c��|���|���t�|j��|j�|j���|j�|j���dSdS)zUpdate the color themeN)	r/r+r(r+rLr��update_highlight_colorsr��
update_colorsr�s r$r�zEditorWindow.ResetColorizerNs���	
�������������!�!�$�)�,�,�,���(���5�5�7�7�7���(���+�+�-�-�-�-�-�)�(r&�_c�b�|�d|��|�|��}|r#||jvr|�d|dz|��d|�|��kr|�d|��n|�d|dz��|�|��dS)N�ERRORz
 wordstart�
rCz+1c)rUr��
IDENTCHARSrTrV)rrL�pos�chars    r$�colorize_syntax_errorz"EditorWindow.colorize_syntax_error]s������W�c�"�"�"��x�x��}�}���	;�D�D�O�+�+��L�L��#��"4�c�:�:�:��4�8�8�C�=�=� � ��M�M�(�C�(�(�(�(��M�M�(�C�%�K�0�0�0�����
�
�
�
�
r&c�z�tjdddd���}|sd|jd<dStj|jd<dS)	z&Update the cursor blink configuration.rGr(zcursor-blinkrmrJrroN)rr�rLrn)r�cursorblinks  r$r�z EditorWindow.update_cursor_blinkhsW���(����V�E�E�E���	A�)*�D�I�o�&�&�&�*2�)@�D�I�o�&�&�&r&c��|j�|j���|j�|j���tj|jdd��}||jd<|���dS)z.Update the text widgets' font if it is changedNrGr(rk)r��update_fontr�rr�r�rLr�)r�new_fonts  r$�	ResetFontzEditorWindow.ResetFontrsz����(���)�)�+�+�+���(���)�)�+�+�+��#�D�I�v�~�F�F��$��	�&���������r&c�R�tj��x|j_}|���D]\}}|jj|g|�R��|���D]E}tj|��}|r-|���D]\}}|jj|g|�R���FdS)zgRemove the virtual, configurable keybindings.

        Leaves the default Tk Text keybindings.
        N)	r�GetCurrentKeySetr/�default_keydefs�itemsrL�event_delete�get_standard_extension_names�GetExtensionBindings)r�keydefsr]�keylist�
extensionName�xkeydefss      r$�RemoveKeybindingszEditorWindow.RemoveKeybindings�s���3;�2K�2M�2M�M��
�%��%�m�m�o�o�	4�	4�N�E�7�"�D�I�"�5�3�7�3�3�3�3�3�!�>�>�@�@�	<�	<�M��4�]�C�C�H��
<�&.�n�n�&6�&6�<�<�N�E�7�*�D�I�*�5�;�7�;�;�;�;�;��		<�	<r&c�V�tj��x|j_}|���|���D]-}tj|��}|r|�|���.i}|jjD]J}i||d<|dD]4}|r0|d||dt|d��d<�5�K|j	D]�}|j	|}|�
t��}|��,|dz
}td|��D]�}	|�
|	��dkru|�|	d��}
|
r]|�|	d��}d}||vr|||vr|||}|r't||��}
|�|	|
�������dS)	zeApply the virtual, configurable keybindings.

        Alse update hotkeys to current keyset.
        rraNrf�acceleratorr{rB)rN)rrBr/rCr�rFrG�menudefsr�r�r�r�rPrK�	entrycget�get_acceleratorr�)
rrHrJrK�
menuEventDictrDr��menubarItemrqr��accel�itemNamer]s
             r$�ApplyKeybindingszEditorWindow.ApplyKeybindings�s��3;�2K�2M�2M�M��
�%��������!�>�>�@�@�	.�	.�M��4�]�C�C�H��
.��#�#�H�-�-�-���
��M�*�	J�	J�D�%'�M�$�q�'�"��Q��
J�
J���J�BF�q�'�M�$�q�'�*�7�4��7�+;�+;�A�+>�?��
J� �=�	G�	G�K��=��-�D��*�*�S�/�/�C��{���1�H�C��q�#���
G�
G���9�9�U�#�#�y�0�0� �N�N�5�-�@�@�E��G�#'�>�>�%��#A�#A�� "��&�-�7�7�'�=��+E�E�E�(5�k�(B�8�(L�� �G�$3�G�U�$C�$C�E� �,�,�U��,�F�F�F��
G�	G�	Gr&c�R�|jstjdddd���|_dSdS)zCUpdate the indentwidth if changed and not using tabs in this windowrGrlz
num-spacesrIrJN)r�rr�r�r�s r$r�z#EditorWindow.set_notabs_indentwidth�sA���|�	>�'�1�&�(�<�7<� >� >� >�D����	>�	>r&c��tj��}|jd}|�t��}||jkr|�|jdz|��|rQ|���|D]:}|�|d��}|�	|d|����;||jd<dS)z4Update the additional help entries on the Help menu.rrarr�N)
r�GetAllExtraHelpSourcesListr�r�r�r�r�r��_extra_help_callbackr�)r�	help_list�helpmenu�helpmenu_length�entryrs      r$r�z$EditorWindow.reset_help_menu_entries�s����7�9�9�	��=��(��"�.�.��-�-���T�6�6�6��O�O�T�6��:�_�M�M�M��	B��"�"�$�$�$�"�
B�
B���/�/��a��9�9���$�$�5��8�S�$�A�A�A�A� (��
�f���r&c���|f�fd�	}|S)z9Return a callback that loads resource (file or web page).c�x��|�d��stj�|��}tjdd�dkrX	tj|��dS#t$r4}tj	dt|���j���Yd}~dSd}~wwxYwtj
|��dS)N)�www�httpr@rAr�r�)rrxryr�rr|r�r�rr�rRrLr�r�)�helpfiler�rs  �r$�display_extra_helpz=EditorWindow._extra_help_callback.<locals>.display_extra_help�s�����&�&��7�7�
6��7�+�+�H�5�5���|�B�Q�B��5�(�(�<��L��*�*�*�*�*���<�<�<��(�/G� #�C�����<�<�<�<�<�<�<�<�<�<�����<�������)�)�)�)�)s�A%�%
B#�/)B�B#r\)r�resourcerds`  r$rZz!EditorWindow._extra_help_callback�s,���(0�
	*�
	*�
	*�
	*�
	*�
	*�"�!r&c���g}|j}|r]tj�|��r>t	|dd���5}|���}ddd��n#1swxYwY|rQtj�|��dz}||vr|�|��|�d|��g�|D]B}d|vs'tj�|dd���s��	|���C�fd	�|D��}d
}|dt|���}|r�	t	|ddd���5}|�|��ddd��n#1swxYwYnY#t$rL}t|jdd
��s,d|j_t!jdd|�d�|j���Yd}~nd}~wwxYw|jjD]�}	|	j}
|
�dt.��t1|��D]R\}}|���}|	�|��}
|
�||dz|z|
d����S��dS)z/Load and update the recent files list and menus�utf_8r)r.�errorsNr6r�rrc���g|]}|�v�|��	Sr\r\)�.0ry�	bad_pathss  �r$�
<listcomp>z9EditorWindow.update_recent_files_list.<locals>.<listcomp>�s#���E�E�E�D�t�9�/D�/D�4�/D�/D�/Dr&�1234567890ABCDEFGHIJK�w�recentfiles_messageFTzIDLE Warningz)Cannot save Recent Files list to disk.
  z
Select OK to continue.r�rA)r{rfr|)r�rxryr�r��	readlines�abspath�removerC�appendrQ�
writelinesr�r�r�rpr�showwarningrLr�r�r�r�r��	enumerate�rstrip�#_EditorWindow__recent_file_callbackr�)r�new_file�rf_listr�rf_list_filery�ulchars�rf_file�err�instancerD�i�	file_name�callbackrls              @r$r�z%EditorWindow.update_recent_files_list�sL������*�	��	3�����	�2�2�	3��i�&�y�:�:�:�
3�=I�&�0�0�2�2��
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��	(��w���x�0�0�4�7�H��7�"�"����x�(�(�(��N�N�1�h�'�'�'��	��	'�	'�D��t�|�|�2�7�>�>�$�q��t�*�#=�#=�|�� � ��&�&�&��E�E�E�E�G�E�E�E��)���!�C��L�L�.�)���	*�
*��)�S�#*�9�>�>�>�0�AH��&�&�w�/�/�/�0�0�0�0�0�0�0�0�0�0�0����0�0�0�0����
*�
*�
*��t�y�*?��G�G�*�48�D�I�1��*��!9�%(�!9�!9�!9� $�y�	*�*�*�*����������
*������.�	.�	.�H��-�D��K�K��3���� )�'� 2� 2�
.�
.���9�%�,�,�.�.�	�#�:�:�9�E�E��� � �w�q�z�C�'7�)�'C�)1�+,�!�.�.�.�.�
.�	.�	.sN�A�A#�&A#�.E/�E#�E/�#E'�'E/�*E'�+E/�/
G�9AG�Gc���|f�fd�	}|S)Nc�>���j�|���dS)N)�editFile)r�r�)�
fn_closurers �r$�open_recent_filez=EditorWindow.__recent_file_callback.<locals>.open_recent_files����G�L�L�*�L�-�-�-�-�-r&r\)rr�r�s`  r$�__recent_file_callbackz#EditorWindow.__recent_file_callbacks*���(1�	.�	.�	.�	.�	.�	.��r&c�*�|���}|���}|r&|r$tj��s|dz|ztz}n|r|}n|r|}nd}|p|p|}|���s
d|z}d|z}|j�|��|j�|��tj��rK|j�	d|��|j�	d|�����dSdS)Nz - �untitledz*%s*z*%sz
-titlepathz	-modified)
�short_title�
long_titler
�	isCocoaTk�_py_version�	get_savedr��wm_title�wm_iconname�
wm_attributes)r�short�longr��icons     r$r�zEditorWindow.saved_change_hooks=��� � �"�"����� � ���		�T�		�&�"2�"4�"4�		��E�M�D�(�;�6�E�E�
�	��E�E�
�	��E�E��E��%��%����~�~���	 ��U�N�E��4�<�D�����%� � � �����T�"�"�"�����	F��H�"�"�<��6�6�6�
�H�"�"�;�D�N�N�4D�4D�0D�E�E�E�E�E�	F�	Fr&c�4�|j���Sr&)r�r�r�s r$r�zEditorWindow.get_saved/s���y�"�"�$�$�$r&c�:�|j�|��dSr&)r��	set_saved)r�flags  r$r�zEditorWindow.set_saved2s���	���D�!�!�!�!�!r&c�8�|j���dSr&)r��
reset_undor�s r$r�zEditorWindow.reset_undo5s���	�������r&c�`�|jj}|rtj�|��ndS)Nr�)r�rrxryr9)rrs  r$r�zEditorWindow.short_title8s,���7�#��-5�E�r�w����)�)�)�:�Er&c��|jjpdS)NrB)r�rr�s r$r�zEditorWindow.long_title<s���w��%�2�%r&c�.�|���dSrZ)rr's  r$r�z EditorWindow.center_insert_event?s�����
�
�
��wr&rCc���|j}|���\}}|�|��}||z
}td||dzz
��}|�t|����dS)NrarC)rL�getwindowlinesr��maxr�r�)r�markrLr��botr�rP�newtops        r$rzEditorWindow.centerCsn���y���&�&�(�(���S�����%�%���s����Q�����*�+�+���
�
�5��=�=�!�!�!�!�!r&c���|j}|�d��}|�d��}||kr5|���dkrt|d��}||zdz
}||fS)Nr�z@0,65535rarP)rLr��winfo_heightrI)rrLr�r�rPs     r$r�zEditorWindow.getwindowlinesKsr���y���n�n�V�$�$���n�n�Z�(�(���#�:�:�$�+�+�-�-��2�2���h��(�(�F���,��"�C��C�x�r&c�n�|j}tt|�|������Sr&)rLrIr�r�)rr�rLs   r$r�zEditorWindow.getlinenoUs+���y���5����D�)�)�*�*�+�+�+r&c���|j���}tjd|��}t	tt|�������S)zReturn (width, height, x, y)z(\d+)x(\d+)\+(-?\d+)\+(-?\d+))r��wm_geometry�re�match�listr,rI�groups)r�geom�ms   r$�get_geometryzEditorWindow.get_geometryYsG���x�#�#�%�%���H�5�t�<�<���C��Q�X�X�Z�Z�(�(�)�)�)r&c�.�|���dSrZ)r�r's  r$r�zEditorWindow.close_event_s���
�
�����wr&c�>�|jr�|���sh|j���dkr|j���|j���|j���|j���SdS)Nr�)r�r�r�rL�	deiconify�lower�lift�	maybesaver�s r$r�zEditorWindow.maybesavecs����7�	'��>�>�#�#�
 ��8�>�>�#�#�X�-�-��H�&�&�(�(�(����� � � ���
�
�����7�$�$�&�&�&�
	'�	'r&c��	|���}t|��dkr|���|S#t$rYdSwxYw)N�cancel)r�rR�_close�AttributeError)r�replys  r$r�zEditorWindow.closels[��	��N�N�$�$�E��5�z�z�X�%�%����
�
�
��L���	�	�	��D�D�	���s�<?�
A
�A
c��|jjr |�|jj���tj|j��|���|j���d|_d|_|j	r |j	���d|_	d|_
d|_|j���d|_|j
���|jr|���dSdS)N)rz)r�rr�r�unregister_callbackr��unload_extensionsr�r�r�rLr�r�r��destroyr!r�s r$r�zEditorWindow._closeus����7��	E��)�)�4�7�3C�)�D�D�D��"�4�#7�8�8�8���� � � ���
�
���������	��:�	��J�������D�J���	� ���������������������?�	��O�O������	�	r&c�<�i|_|���dSr&)�
extensions�load_standard_extensionsr�s r$r�zEditorWindow.load_extensions�s!������%�%�'�'�'�'�'r&c��t|j�����D]&}t|d��r|����'i|_dS)Nr�)r�r��valuesr�r�)r�inss  r$r�zEditorWindow.unload_extensions�sR�����.�.�0�0�1�1�	�	�C��s�G�$�$�
��	�	���������r&c���|���D]O}	|�|���#tdt|����t	j��Y�MxYwdS)NzFailed to load extension)rF�load_extension�print�repr�	traceback�	print_exc)rrFs  r$r�z%EditorWindow.load_standard_extensions�sx���5�5�7�7�	&�	&�D�
&��#�#�D�)�)�)�)��
&��0�$�t�*�*�=�=�=��#�%�%�%�%�%����	&�	&s	�.�2A"c�,�tjd���S)NT)�editor_only)r�
GetExtensionsr�s r$rFz)EditorWindow.get_standard_extension_names�s���%�$�7�7�7�7r&�ZzDummy�zzdummyc�X�|j�||��}		tjd|zt���}n+#t
tf$rtj|��}YnwxYwn#t
$rtd|���wxYwt||��}tj
|��}t|d��r|�|j
|��||��}||j|<|r�|�|��|D]�}|�dd��}|dd�dkr|dd�}|dd�dk�|d	d�d
kr|dd	�}|d	d�d
k�|dz}t||��r)|j�|t||������dSdS)Nr@)�packagez
Failed to import extension: rO�-r3rarIrrrK�_event)�extfilesr��	importlib�
import_module�__package__�ImportError�	TypeErrorr�r�rrGr�r�rOr�r�rrLr�)	rrF�fname�mod�clsrHr��vevent�
methodnames	         r$r�zEditorWindow.load_extension�s���
�!�!�$��-�-��	�
5��-�c�E�k�;�O�O�O������+�
5�
5�
5��-�e�4�4����
5�������	�	�	��2�D�9�9�9��	�����c�4� � ���/��5�5���3�
�#�#�	3��O�O�C�L�'�2�2�2��c�$�i�i�� #������
	E�����(�(�(�!�
E�
E��#�^�^�C��5�5�
� ��!��n��+�+�!+�A�B�B��J�!��!��n��+�+� ����o��,�,�!+�C�R�C��J�!����o��,�,�'�(�2�
��3�
�+�+�E��I�N�N�6�7�3�
�+C�+C�D�D�D��
	E�
	E�
E�
Es&�=�A)�%A%�"A)�$A%�%A)�)Bc��|�|jj}|j}||_|���D]\}}|r|j|g|�R��dS)z"Add events with keys to self.text.N)r/rCrLrHrDr�)rrHrLr]rIs     r$r�zEditorWindow.apply_bindings�sg���?��m�3�G��y�����%�m�m�o�o�	0�	0�N�E�7��
0����u�/�w�/�/�/�/��	0�	0r&c	��|�|jj}|�|jj}|j}|j}|D]�\}}|�|��}|s�|D]�}|�|����|\}	}
|	dd�dk}|r
|	dd�}	t|	��\}}	t||
��}
||
fd�}|r6|�	|
t��}|�|	|||
|�����|�|	|||
�������dS)z�Fill in dropdown menus used by this window.

        Items whose name begins with '!' become checkbuttons.
        Other names indicate commands.  None becomes a separator.
        Nra�!c�0�|�|��dSr&r�r�s  r$rfz(EditorWindow.fill_menus.<locals>.command�s���+�+�I�6�6�6�6�6r&)r{r|rfrN�variable)r{r|rfrN)
r/rOrCr�rLr�r�r�rQ�get_var_obj�
BooleanVar�add_checkbuttonr�)rrOrHr�rL�mname�	entrylistrDr^r{r��checkbuttonr|rNrf�vars                r$r�zEditorWindow.fill_menus�s������}�-�H��?��m�3�G��=���y�� (�	B�	B��E�9��<�<��&�&�D��
��"�
B�
B���=��&�&�(�(�(�(�',�$�E�9�#(��!��9��#3�K�"�*� %�a�b�b�	��'.�u�~�~�$�I�u�"1�'�9�"E�"E�K�%)�Y�7�7�7�7�"�B�"�.�.�y�*�E�E���,�,�5�I�$+��%(�-�*�*�*�*��(�(�u�	�18�5@�)�B�B�B�B�%
B�		B�	Br&c�z�|�|��}|r|���}|St|���r&)r�r��	NameError)rrFr��values    r$�getvarzEditorWindow.getvar�s;�����t�$�$���	"��G�G�I�I�E��L��D�/�/�!r&c�~�|�||��}|r|�|��dSt|���r&)r�r�r�)rrFr��vartyper�s     r$�setvarzEditorWindow.setvar�s>�����t�W�-�-���	"��G�G�E�N�N�N�N�N��D�/�/�!r&c�v�|j�|��}|s|r||j��x|j|<}|S)z:Return a tkinter variable instance for the event.
        )r�r�rL)rr�r�r�s    r$r�zEditorWindow.get_var_obj�sN����#�#�I�.�.���	D�w�	D�18����1C�1C�C�D��i�(�3��
r&c��|jr7|j�d|��pd|j�|��vSdS)N�TODO�STRINGra)r�rL�
tag_prevrange�	tag_names)r�
text_indexs  r$�is_char_in_stringzEditorWindow.is_char_in_stringsL���:�	��9�*�*�6�:�>�>�?��t�y�2�2�:�>�>�>�
?��1r&c��	|j�d��}|j�d��}||fS#t$rYdSwxYw)NrGrJ�NNr�)rr[r\s   r$�get_selection_indicesz"EditorWindow.get_selection_indicessY��	��I�O�O�K�0�0�E��9�?�?�:�.�.�D��$�;����	�	�	��:�:�	���s�7:�
A�Ac�H�|jdpt}t|��S)N�tabs)rL�TK_TABWIDTH_DEFAULTrI)r�currents  r$�get_tk_tabwidthzEditorWindow.get_tk_tabwidth&s ���)�F�#�:�':���7�|�|�r&c	���|j}|���|krE|j�dd|dd|jd|z��}|�|���dSdS)Nrkr1z
-displayof�n)r)rLrr-r��master�	configure)r�newtabwidthrL�pixelss    r$�set_tk_tabwidthzEditorWindow.set_tk_tabwidth,sr���y�����!�!�[�0�0��W�\�\�&�)�T�&�\�".���"%��"3�5�5�F�
�N�N��N�'�'�'�'�'�1�0r&c���|rD|rB|���}d|cxkrdkr
nn||_|j|jkrd|_|�|j��dS)NrCrF)�guess_indentr�r�r�r
)rr �guessr�s    r$r�z#EditorWindow.set_indentation_params7sv���	%��	%��!�!�#�#�A��A�{�{�{�{��{�{�{�{�{�#$�� ���4�=�0�0�$������T�]�+�+�+�+�+r&c��|j}|���\}}|r0|r.|�||��|�d|��dS|�dd��}|dkrC|�ddd��r|�d��n|���dS|dd	vr|�d��dS|j}t|�	|����}|d
z
|j
z|j
z}d}		|dd�}|	d
z}	t|�	|����}||ks
|dd	vrn�C|���|�d
|	zd��||kr"|�dd||z
z|j
��|���dS)NrCr[r?rBrKrFz	insert-1crr� 	rarTz
insert-%dcrA)rLr�r�rTr�rN�bellr�rQ�
expandtabsr�r�rCr�r�)
rr]rLr[r\�charsr��have�want�
ncharsdeleteds
          r$r�z"EditorWindow.smart_backspace_event@s����y���0�0�2�2���t��	�T�	��K�K��t�$�$�$��M�M�(�E�*�*�*��7����+�X�6�6���B�;�;��|�|�H�c�5�1�1�
����K�(�(�(�(��	�	�����7��"�I�U�"�"��K�K��$�$�$��7��=���5�#�#�H�-�-�.�.�����d�.�.�$�2B�B���
�	��#�2�#�J�E�)�A�-�M��u�'�'��1�1�2�2�D��t�|�|�u�R�y��5�5��	�	
���������L�=�0�(�;�;�;��$�;�;��K�K��#����"5��3�
5�
5�
5��������wr&c�j�|j}|���\}}|���	|r||rzt|��t|��kr.|j�|��|���S|�||��|�d|��|�	dd��}t||j��\}}|t|��kr|�
||jz��n_|jrd}n9t|�|j����}|j}	d|	||	zz
z}|�d||j��|�d��	|���dS#|���wxYw)NrCr?rBrAr[)rLr�r��
index2liner�r�r�r�rTr��get_line_indentr�rQ�reindent_tor�r�rrCr�rV)
rr]rLr[r\�prefix�raw�	effective�padrs
          r$r�zEditorWindow.smart_indent_eventks����y���0�0�2�2���t�������	#��
/��
/��e�$�$�
�4�(8�(8�8�8��<�;�;�E�B�B�(
� � �"�"�"�"�'���E�4�(�(�(��
�
�h��.�.�.��X�X�0�(�;�;�F�,�V�T�]�C�C�N�C���c�&�k�k�!�!�� � ��T�-=�!=�>�>�>�>��<�4��C�C� #�F�$5�$5�d�m�$D�$D� E� E�I��(�A���Y��]�!2�3�C����H�c�4�+F�G�G�G��H�H�X������ � �"�"�"�"�"��D� � �"�"�"�"���s�=F�C?F�F2c�
�|j}|���\}}|���	|r.|r,|�||��|�d|��|�dd��}dt
|��}}||kr||dvr|dz
}||kr
||dv�||krH|�dd|j��	|�	d��|�
��dS|d|�}d}|r%|d	dvr|dd	�}|dz
}|r
|d	dv�|r|�d
|zd��|�d��dvr,|�d��|�d��dv�,|�dd|j��t|�d����}	tj|j|j��}
|js�|jD]�}t'|	|z
d��}t)|��dz}
|�|
d��}|
�|��|
�|�|
����}|�|dkrn��|
�|pd��nc|�dd��}|r	|d}
nd
}
|�|
d��}|
�|��|
�d��|
���}|tjk�r|tjkrn�|tjkr|�d||j��n�|tjkr(|�|
� ����nm|tj!kr]|
�"��dkr|�d||j��n(|�|
�#����		|�	d��|�
��dS|
�$��}|�d||j��|
�%��r|�&|��n+|r)|
�'��r|�(|��	|�	d��|�
��dS#|�	d��|�
��wxYw)a�Insert a newline and indentation after Enter keypress event.

        Properly position the cursor on the new line based on information
        from the current line.  This takes into account if the current line
        is a shell prompt, is empty, has selected text, contains a block
        opener, contains a block closer, is a continuation line, or
        is inside a string.
        rCr?rrrar6r[Nrrzinsert - %d charsr��consolerF))rLr�r�r�rTr�rQrCr�rVr�rr�r�Parserr�r�r�r�r�r��set_code�find_good_parse_start�_build_char_in_string_func�set_lor��get_continuation_type�C_NONE�C_STRING_FIRST_LINE�C_STRING_NEXT_LINES�	C_BRACKETr�compute_bracket_indent�C_BACKSLASH�get_num_lines_in_stmt�compute_backslash_indent�get_base_indent_string�is_block_openerr��is_block_closerr�)rr]rLr[r\rXr�r�indent�lnor��context�startat�startatindex�rawtext�bod�rrDs                  r$r�z%EditorWindow.newline_and_indent_event�sj���y���0�0�2�2���t�������e	#��
/��
/����E�4�(�(�(��
�
�h��.�.�.��8�8�.��9�9�D��c�$�i�i�q�A��a�%�%�D��G�u�,�,��Q����a�%�%�D��G�u�,�,��A�v�v����.�� �7�9�9�9��j
�H�H�X����� � �"�"�"�"�"�k�"�1�"�X�F��A��
�4��8�u�,�,��C�R�C�y���Q����
�4��8�u�,�,��
?����/�!�3�X�>�>�>��(�(�8�$�$��-�-����H�%�%�%��(�(�8�$�$��-�-�
�K�K��$��(C�D�D�D��T�Z�Z��1�1�2�2�C���t�/���?�?�A��(�
�#�5���G�!�#��-��3�3�G�#'��=�=�4�#7�L�"�h�h�|�X�>�>�G��J�J�w�'�'�'��1�1� �;�;�L�I�I�K�K�C���'�Q�,�,���+7�������"�"�"�"��&�&�y�(�;�;���)�#$�Q�4�L�L�#(�L��(�(�<��:�:���
�
�7�#�#�#���������'�'�)�)�A��G�N�"�"���3�3�3���'�5�5�5��K�K��&�$�2M�N�N�N�N��'�+�+�+�
�$�$�Q�%=�%=�%?�%?�@�@�@�@��'�-�-�-��.�.�0�0�1�4�4����H�f�$(�$?�A�A�A�A��(�(��)C�)C�)E�)E�F�F�F�F��
�H�H�X����� � �"�"�"�"�"��-�-�/�/�F��K�K��&�$�*E�F�F�F�� � �"�"�
2��'�'��.�.�.�.��
2�A�-�-�/�/�
2��*�*�5�1�1�1���H�H�X����� � �"�"�"�"�"��
�H�H�X����� � �"�"�"�"���s�BS�>LS�.BS�+T
c��||jfd�}|S)Nc�$�||d|zz��S)Nz+%dcr\)�offset�_startindex�_iciss   r$�innerz6EditorWindow._build_char_in_string_func.<locals>.inners���5��v���6�7�7�7r&)r�)r�
startindexr>s   r$r#z'EditorWindow._build_char_in_string_funcs&��&0��.�	8�	8�	8�	8��r&c�`�|jr#t||j��\}}d|zd|zzSd|zS)NrBrA)r��divmodr�)rr�ntabs�nspacess    r$�_make_blankszEditorWindow._make_blankss=���<�	�#�A�t�}�5�5�N�E�7��%�<�#��-�/�/���7�Nr&c� �|j}|���|�ddd��r|�dd��|r/|�d|�|��|j��|���dS)Nr?z!=rC)rLr�rNr�rCrDr�r�)rrhrLs   r$rzEditorWindow.reindent_to s����y���������<�<�*�D�(�;�;�	6��K�K�*�H�5�5�5��	5��K�K��$�"3�"3�F�";�";��3�
5�
5�
5��������r&c���t|j�����\}}|r3|r1t||j��\}}t||j��\}}ndx}}||z
S�Nr)�IndentSearcherrLrrrr�)r�opener�indentedr�indentsmall�indentlarges      r$rzEditorWindow.guess_indent/st��)�$�)�4�4�8�8�:�:�����	*�h�	*�.�v�t�}�E�E��C��.�x���G�G��C���()�)�K�+��[�(�(r&c���|j�dS|jjr|j���d}n|j���d}|�dd|�d����dS)N�Show�Hidersruz
 Line Numbers)rDr�r{)r��is_shown�hide_sidebar�show_sidebarr�)rr]�
menu_labels   r$rz&EditorWindow.toggle_line_numbers_event8s�����$��F���%�	 ���*�*�,�,�,��J�J���*�*�,�,�,��J����I�]�(2�%A�%A�%A�	�	C�	C�	C�	C�	Cr&)NNNNr&)rCr�)T)�r	�
__module__�__qualname__�idlelib.percolatorr)�idlelib.colorizerr*r+�idlelib.undor,�idlelib.iomenur-r.r
r/�idlelib.statusbarr0�idlelib.autocompleter1�idlelib.autoexpandr2�idlelib.calltipr3�idlelib.codecontextr4�idlelib.sidebarr5�idlelib.formatr6r7r8r9�idlelib.parenmatchr:�idlelib.zoomheightr;r�getfilesystemencoding�filesystemencodingrwrrr�r$r�r�r�r�r�rgr�r�r�r�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�rr�r�r�r�rr�r!r#r�r+r/r��string�
ascii_letters�digitsr7r:r�r@rLrVr�r�rZr�ryr�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�rFr�r�r�r�r�r�r�r�r�rr
r�r�r�r�r#rDrrrr\r&r$r(r(3s�������-�-�-�-�-�-�>�>�>�>�>�>�>�>�*�*�*�*�*�*�2�2�2�2�2�2�2�2� � � � � � �0�0�0�0�0�0�1�1�1�1�1�1�-�-�-�-�-�-�'�'�'�'�'�'�/�/�/�/�/�/�+�+�+�+�+�+�M�M�M�M�M�M�M�M�M�M�M�M�-�-�-�-�-�-�-�-�-�-�-�-�2��2�4�4���H�����!��aI�aI�aI�aI�F	����4�4�4����
)�)�)�V7�7�7� ;�;�;�;��&���J�#'�#'�#'�J)�)�)�1�1�1�
1�1�1�
	�	�	�
�E�!�!�!�J	,��K�

�
�
�'�'�'�4�4�4����������������	�	�	�	����������
��������
���(���������������������������0���	�	�	�	�����
�������:�:�:����
%�%�%����K�K�K����.�.�.��%��
�5��;�J�	�	�	�A�A�A����"
<�
<�
<�&G�&G�&G�P>�>�>�)�)�)�"
"�
"�
"�,.�,.�,.�,.�\ � � �
F�F�F�6%�%�%�"�"�"����F�F�F�&�&�&����"�"�"�"����,�,�,�,�*�*�*����'�'�'�������((�(�(����&�&�&�8�8�8�	�9�
�H�E�E�E�80�0�0�0�$B�$B�$B�$B�L"�"�"�"�"�"�"�����$���������(�(�(�,�,�,�,�)�)�)�V!#�!#�!#�Fq#�q#�q#�p��� ������)�)�)�C�C�C�C�C�Cr&r(c�:�tt|����Sr&)rIr�)r�s r$rrFs���u�U�|�|���r&z[ \t]*c���t�|��}|���t|����|����fS)z�Return a line's indentation as (# chars, effective # of spaces).

    The effective # of spaces is the length after properly "expanding"
    the tabs into spaces, as done by str.expandtabs(tabwidth).
    )�_line_indent_rer�rqrQ�groupr)rXr�r�s   r$rrKsH��	���d�#�#�A��5�5�7�7�C����	�	�,�,�X�6�6�7�7�7�7r&c�F�eZdZdZd�Zd�Zejejdfd�Z	d�Z
dS)rHz4Manage initial indent guess, returned by run method.c�L�||_dx|_|_dx|_|_dSrG)rLr��finished�blkopenline�indentedline)rrLs  r$r$zIndentSearcher.__init__Xs-����	�!"�"�����/3�3���4�,�,�,r&c���|jrdS|jdzx}|_t|��dz}|j�|dd��rdS|j�||dz��S)NrBrar�z>=rqz lineend+1c)rnr�r�rLrNr�)rr�r�s   r$�readlinezIndentSearcher.readline]sn���=�	��2��V�a�Z���D�F��A�w�w��~���9���T�4��/�/�	��2��y�}�}�T�4�-�#7�8�8�8r&)�class�def�for�ifr��try�while�withc	�|�|jrdS||kr
||vr	||_dS||kr|jr||_d|_dSdSdS)Nra)rnrorp)	rrK�token�startrqrX�INDENT�NAME�OPENERSs	         r$�
tokeneaterzIndentSearcher.tokeneaterfsb��
�=�	��D�
�T�\�\�e�w�.�.�#�D����
�V�^�^�� 0�^� $�D���D�M�M�M��^�^�^r&c��	tj|j��}|D]}|j|��
n#tjt
f$rYnwxYw|j|jfS)ztReturn 2 lines containing block opener and and indent.

        Either the indent line or both may be None.
        )�tokenize�generate_tokensrrr��
TokenError�SyntaxErrorrorp)r�tokensr{s   r$rrzIndentSearcher.runssz��
	��-�d�m�<�<�F��
(�
(������'�'�'�
(���#�[�1�	�	�	��D�	�������!2�2�2s�(+�A�AN)r	rTrU�__doc__r$rrr�r}r~r�rrr\r&r$rHrHUsl������:�:�4�4�4�
9�9�9�#�/� �
�-�����3�3�3�3�3r&rHc�p�|�d��}|dkr|d|�||dzd�z}||fS)z�Extract the underscore from a string.

    For example, prepstr("Co_py") returns (2, "Copy").

    Args:
        s: String with underscore.

    Returns:
        Tuple of (position of underscore, string without underscore).
    r3rNra)r�)�sr�s  r$r�r��sB��	
���s���A��A�v�v�
�b�q�b�E�A�a��c�d�d�G�O���a�4�Kr&�[�]�/)�bracketleft�bracketright�slashc��|�|��}|rtj��r|dvrdS|d}tjdd�|��}tjdd�|��}tjdd|��}tjd	d
|��}tjdd|��}tjd
d|��}tjdd|��}tjdd|��}tjdd|��}|S)akReturn a formatted string for the keybinding of an event.

    Convert the first keybinding for a given event to a form that
    can be displayed as an accelerator on the menu.

    Args:
        keydefs: Dictionary of valid events to keybindings.
        eventname: Event to retrieve keybinding for.

    Returns:
        Formatted string of the keybinding.
    >r_rXr`rBrz-[a-z]\bc�N�|������Sr&)rk�upper�r�s r$r^z!get_accelerator.<locals>.<lambda>�s��a�g�g�i�i�o�o�&7�&7�r&z\b\w+\bc��t�|���|�����Sr&)�keynamesr�rkr�s r$r^z!get_accelerator.<locals>.<lambda>�s$��X�\�\�!�'�'�)�)�Q�W�W�Y�Y�%G�%G�r&zKey-�Cancelz
Ctrl-BreakzControl-zCtrl-r��+z><rArIrK)r�r
r�r��sub)rHr�rIr�s    r$rQrQ�s���k�k�)�$�$�G�
���)�+�+��	�>6�16�16��r���
�A�
��{�7�7��;�;�A�
��z�G�G��K�K�A�
��v�r�1���A�
��x��q�)�)�A�
��z�7�A�&�&�A�
��s�C����A�
��t�S�!���A�
��s�B����A�
��s�B����A��Hr&c��|j}|�ddd��|�ddd��|�ddd��dS)	N�tcl_wordBreakAfterza brr��
tcl_wordcharsz\w�tcl_nonwordcharsz\W)r-r�)r�r-s  r$�
fixwordbreaksr��sU��
��B��G�G� �%��+�+�+��G�G�E�?�E�*�*�*��G�G�E�%�u�-�-�-�-�-r&c�Z�|}t|��tjdd�rtjd}nd}tj|d��t||���}|j}d|d<td��D].}|�dd|zt|��zdz���/dS)	Nra)r�r�
rP�rCz  r6)
r�r�argvr
�setupAppr(rLrPrCrR)r�r�rrnrLr�s      r$�_editor_windowr��s����D��$����
�x����|���8�A�;�����
�O�D�$�����T�H�5�5�5�D��9�D��D��N�
�2�Y�Y�6�6�����H�d�1�f�s�1�v�v�o��4�5�5�5�5�6�6r&�__main__)rGzidlelib.idle_test.test_editorrCF)�	verbosity�exit)rr):�
importlib.abcr��importlib.utilrxr|r�rerr�r�r��tkinter�tkinter.fontr�tkinter.ttkrrr�idlelib.configrr
r	r
rrr
�idlelib.multicallrrrrr�idlelib.treer�idlelib.utilrrr�python_versionr�rr%r(r�compilerjrrHr�r�rQr�r�r	�unittestrG�idlelib.idle_test.htestrrr\r&r$�<module>r�sB����������	�	�	�	�����	�	�	�	�
�
�
�
�
�
�
�
�����������������������!�!�!�!�!�!� � � � � � �������#�#�#�#�#�#� � � � � � �������������������������.�.�.�.�.�.�������������������������$�$�$�$�$�$�&�&�&�&�&�&����������/��/�1�1�1��	���	!��
�
�
�PC�PC�PC�PC�PC�PC�PC�PC�f0����"�*�Y�'�'��8�8�8�*3�*3�*3�*3�*3�*3�*3�*3�^���$��

����(
�(
�(
�V.�.�.�
6�
6�
6�&�z����������D�	(�A�E�B�B�B�B�+�+�+�+�+�+��C��������r&


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
3 Sep 2026 4.11 AM
root / linksafe
0755
__init__.cpython-311.opt-1.pyc
0.533 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
__init__.cpython-311.opt-2.pyc
0.179 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
__init__.cpython-311.pyc
0.533 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
__main__.cpython-311.opt-1.pyc
0.365 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
__main__.cpython-311.opt-2.pyc
0.295 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
__main__.cpython-311.pyc
0.365 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
autocomplete.cpython-311.opt-1.pyc
12.007 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
autocomplete.cpython-311.opt-2.pyc
10.681 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
autocomplete.cpython-311.pyc
12.007 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
autocomplete_w.cpython-311.opt-1.pyc
24.846 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
autocomplete_w.cpython-311.opt-2.pyc
24.132 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
autocomplete_w.cpython-311.pyc
24.918 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
autoexpand.cpython-311.opt-1.pyc
4.776 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
autoexpand.cpython-311.opt-2.pyc
4.058 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
autoexpand.cpython-311.pyc
4.776 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
browser.cpython-311.opt-1.pyc
14.222 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
browser.cpython-311.opt-2.pyc
11.877 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
browser.cpython-311.pyc
14.222 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
calltip.cpython-311.opt-1.pyc
8.928 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
calltip.cpython-311.opt-2.pyc
7.237 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
calltip.cpython-311.pyc
8.928 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
calltip_w.cpython-311.opt-1.pyc
11.099 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
calltip_w.cpython-311.opt-2.pyc
10.248 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
calltip_w.cpython-311.pyc
11.099 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
codecontext.cpython-311.opt-1.pyc
14.002 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
codecontext.cpython-311.opt-2.pyc
11.044 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
codecontext.cpython-311.pyc
14.035 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
colorizer.cpython-311.opt-1.pyc
19.131 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
colorizer.cpython-311.opt-2.pyc
16.435 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
colorizer.cpython-311.pyc
19.131 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
config.cpython-311.opt-1.pyc
44.13 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
config.cpython-311.opt-2.pyc
34.726 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
config.cpython-311.pyc
44.13 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
config_key.cpython-311.opt-1.pyc
21.368 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
config_key.cpython-311.opt-2.pyc
19.766 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
config_key.cpython-311.pyc
21.368 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
configdialog.cpython-311.opt-1.pyc
132.756 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
configdialog.cpython-311.opt-2.pyc
104.163 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
configdialog.cpython-311.pyc
132.756 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugger.cpython-311.opt-1.pyc
29.471 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugger.cpython-311.opt-2.pyc
27.724 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugger.cpython-311.pyc
29.471 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugger_r.cpython-311.opt-1.pyc
19.834 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugger_r.cpython-311.opt-2.pyc
17.52 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugger_r.cpython-311.pyc
20.049 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugobj.cpython-311.opt-1.pyc
8.388 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugobj.cpython-311.opt-2.pyc
8.311 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugobj.cpython-311.pyc
8.388 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugobj_r.cpython-311.opt-1.pyc
2.899 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugobj_r.cpython-311.opt-2.pyc
2.899 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
debugobj_r.cpython-311.pyc
2.899 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
delegator.cpython-311.opt-1.pyc
1.921 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
delegator.cpython-311.opt-2.pyc
1.837 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
delegator.cpython-311.pyc
1.921 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
dynoption.cpython-311.opt-1.pyc
3.698 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
dynoption.cpython-311.opt-2.pyc
3.294 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
dynoption.cpython-311.pyc
3.698 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
editor.cpython-311.opt-1.pyc
91.184 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
editor.cpython-311.opt-2.pyc
87.636 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
editor.cpython-311.pyc
91.282 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
filelist.cpython-311.opt-1.pyc
6.05 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
filelist.cpython-311.opt-2.pyc
6.019 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
filelist.cpython-311.pyc
6.066 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
format.cpython-311.opt-1.pyc
22.761 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
format.cpython-311.opt-2.pyc
19.221 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
format.cpython-311.pyc
22.761 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
grep.cpython-311.opt-1.pyc
12.258 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
grep.cpython-311.opt-2.pyc
9.69 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
grep.cpython-311.pyc
12.258 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
help.cpython-311.opt-1.pyc
17.651 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
help.cpython-311.opt-2.pyc
14.994 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
help.cpython-311.pyc
17.701 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
help_about.cpython-311.opt-1.pyc
13.589 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
help_about.cpython-311.opt-2.pyc
12.574 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
help_about.cpython-311.pyc
13.589 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
history.cpython-311.opt-1.pyc
5.412 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
history.cpython-311.opt-2.pyc
4.243 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
history.cpython-311.pyc
5.412 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
hyperparser.cpython-311.opt-1.pyc
13.217 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
hyperparser.cpython-311.opt-2.pyc
11.979 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
hyperparser.cpython-311.pyc
13.217 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
idle.cpython-311.opt-1.pyc
0.643 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
idle.cpython-311.opt-2.pyc
0.643 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
idle.cpython-311.pyc
0.643 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
iomenu.cpython-311.opt-1.pyc
22.55 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
iomenu.cpython-311.opt-2.pyc
22.243 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
iomenu.cpython-311.pyc
22.55 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
macosx.cpython-311.opt-1.pyc
10.949 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
macosx.cpython-311.opt-2.pyc
9.198 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
macosx.cpython-311.pyc
10.949 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
mainmenu.cpython-311.opt-1.pyc
3.666 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
mainmenu.cpython-311.opt-2.pyc
3.205 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
mainmenu.cpython-311.pyc
3.666 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
multicall.cpython-311.opt-1.pyc
24.842 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
multicall.cpython-311.opt-2.pyc
22.557 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
multicall.cpython-311.pyc
24.927 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
outwin.cpython-311.opt-1.pyc
8.229 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
outwin.cpython-311.opt-2.pyc
6.638 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
outwin.cpython-311.pyc
8.312 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
parenmatch.cpython-311.opt-1.pyc
9.802 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
parenmatch.cpython-311.opt-2.pyc
8.339 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
parenmatch.cpython-311.pyc
9.802 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
pathbrowser.cpython-311.opt-1.pyc
6.07 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
pathbrowser.cpython-311.opt-2.pyc
5.951 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
pathbrowser.cpython-311.pyc
6.07 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
percolator.cpython-311.opt-1.pyc
6.896 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
percolator.cpython-311.opt-2.pyc
6.896 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
percolator.cpython-311.pyc
7.38 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
pyparse.cpython-311.opt-1.pyc
18.587 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
pyparse.cpython-311.opt-2.pyc
15.162 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
pyparse.cpython-311.pyc
19.25 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
pyshell.cpython-311.opt-1.pyc
85.459 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
pyshell.cpython-311.opt-2.pyc
82.595 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
pyshell.cpython-311.pyc
85.658 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
query.cpython-311.opt-1.pyc
21.586 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
query.cpython-311.opt-2.pyc
19.02 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
query.cpython-311.pyc
21.586 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
redirector.cpython-311.opt-1.pyc
9.066 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
redirector.cpython-311.opt-2.pyc
5.759 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
redirector.cpython-311.pyc
9.066 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
replace.cpython-311.opt-1.pyc
15.545 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
replace.cpython-311.opt-2.pyc
12.849 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
replace.cpython-311.pyc
15.545 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
rpc.cpython-311.opt-1.pyc
31.843 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
rpc.cpython-311.opt-2.pyc
28.479 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
rpc.cpython-311.pyc
32.026 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
run.cpython-311.opt-1.pyc
31.487 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
run.cpython-311.opt-2.pyc
29.161 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
run.cpython-311.pyc
31.584 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
runscript.cpython-311.opt-1.pyc
11.436 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
runscript.cpython-311.opt-2.pyc
10.243 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
runscript.cpython-311.pyc
11.436 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
scrolledlist.cpython-311.opt-1.pyc
9.661 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
scrolledlist.cpython-311.opt-2.pyc
9.661 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
scrolledlist.cpython-311.pyc
9.661 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
search.cpython-311.opt-1.pyc
8.763 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
search.cpython-311.opt-2.pyc
6.384 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
search.cpython-311.pyc
8.763 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
searchbase.cpython-311.opt-1.pyc
12.704 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
searchbase.cpython-311.opt-2.pyc
10.026 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
searchbase.cpython-311.pyc
12.704 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
searchengine.cpython-311.opt-1.pyc
10.821 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
searchengine.cpython-311.opt-2.pyc
9.263 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
searchengine.cpython-311.pyc
10.821 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
sidebar.cpython-311.opt-1.pyc
30.553 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
sidebar.cpython-311.opt-2.pyc
28.907 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
sidebar.cpython-311.pyc
30.553 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
squeezer.cpython-311.opt-1.pyc
14.883 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
squeezer.cpython-311.opt-2.pyc
11.887 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
squeezer.cpython-311.pyc
14.928 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
stackviewer.cpython-311.opt-1.pyc
7.657 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
stackviewer.cpython-311.opt-2.pyc
7.657 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
stackviewer.cpython-311.pyc
7.657 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
statusbar.cpython-311.opt-1.pyc
3.454 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
statusbar.cpython-311.opt-2.pyc
3.454 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
statusbar.cpython-311.pyc
3.454 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
textview.cpython-311.opt-1.pyc
11.13 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
textview.cpython-311.opt-2.pyc
9.1 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
textview.cpython-311.pyc
11.13 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
tooltip.cpython-311.opt-1.pyc
10.318 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
tooltip.cpython-311.opt-2.pyc
8.821 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
tooltip.cpython-311.pyc
10.318 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
tree.cpython-311.opt-1.pyc
28.742 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
tree.cpython-311.opt-2.pyc
27.559 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
tree.cpython-311.pyc
28.742 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
undo.cpython-311.opt-1.pyc
19.541 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
undo.cpython-311.opt-2.pyc
19.541 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
undo.cpython-311.pyc
19.541 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
util.cpython-311.opt-1.pyc
0.869 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
util.cpython-311.opt-2.pyc
0.403 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
util.cpython-311.pyc
0.869 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
window.cpython-311.opt-1.pyc
5.389 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
window.cpython-311.opt-2.pyc
5.389 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
window.cpython-311.pyc
5.389 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
zoomheight.cpython-311.opt-1.pyc
4.938 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
zoomheight.cpython-311.opt-2.pyc
4.892 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
zoomheight.cpython-311.pyc
4.938 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
zzdummy.cpython-311.opt-1.pyc
3.47 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
zzdummy.cpython-311.opt-2.pyc
2.817 KB
20 Aug 2026 8.48 PM
root / linksafe
0644
zzdummy.cpython-311.pyc
3.47 KB
20 Aug 2026 8.48 PM
root / linksafe
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF