Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
view.cpython-313.pyc247 linesDownload Raw Back to __pycache__
1�

2��j$^���SrSSKrSSKrSSKrSSKJr SSKJr SSKJr SSKJ	r	 SSKJ3r4 SSKrSSKr
SSK
Jr SS	K
Jr SS5K
Jr SSK
Jr SSK
Jr SS
K
Jr SSK
Jr SSK
Jr SSK
Jr SSK
Jr SSK
Jr SSKJr SSKJr SSKJr "SS5r"SS\5r"SS\5r "SS\5r!"SS\5r"/S Qr#S!\
RHRJS"S4S#jr&S!\
RHRJS$\'S"S4S%jr("S&S'\RRR5r*"S(S)5r+"S*S+\RRRX5r-g),a.6The View:7 8- Keeps track of a store of flows9- Maintains a filtered, ordered view onto that list of flows10- Exposes a number of signals so the view can be monitored11- Tracks focus within the view12- Exposes a settings store for flows that automatically expires if the flow is13  removed from the store.14�N)�Iterator)�MutableMapping)�Sequence)�Any)�Optional)�command)�15connection)�ctx)�dns)�16exceptions)�17flowfilter)�hooks)�http)�io)�tcp)�udp)�ALERT)�human)�signalsc�f�\rSrSrSrS\RRS\4Sjr	Sr18SrSrS	r
g19)�	_OrderKey�2c��Xlg�N��view��selfrs  �[D:\code\apps\devtools\python\user_packages\Python313\site-packages\mitmproxy/addons/view.py�__init__�_OrderKey.__init__3s���	��f�returnc��gr��rr#s  r�generate�_OrderKey.generate6s��r"c��UR5nURRUUnURU5nX4:wa�URRRU5 X@RRUU'URRR
U5 URRR5 ggr)	�_keyr�settingsr(�_view�remove�add�sig_view_refresh�send)rr#�k�old�news     r�refresh�_OrderKey.refresh9s����I�I�K���i�i� � ��#�A�&���m�m�A����:��I�I�O�O�"�"�1�%�'*�I�I���q�!�!�$��I�I�O�O����"��I�I�&�&�+�+�-�	r"c��S[U5-$�Nz	_order_%s)�id�rs rr+�_OrderKey._keyCs���R��X�%�%r"c���URURR;aIUR5nURRUnX#;aX2$URU5nXCU'U$URU5$r)r9r�_storer+r,r()rr#r2�s�vals     r�__call__�_OrderKey.__call__Fsl���4�4�4�9�9�#�#�#��	�	��A��	�	�"�"�1�%�A��v��t���-�-��"�C��a�D��J��=�=��#�#r"rN)�__name__�20__module__�__qualname__�__firstlineno__r �	mitmproxy�flow�Flowrr(r5r+r@�__static_attributes__r&r"rrr2s3���
�)�.�.�-�-�
�#�
�.�&�21$r"rc�N�\rSrSrS\R22RS\4SjrSr	g)�OrderRequestStart�Sr#r$c��UR$r)�timestamp_createdr's  rr(�OrderRequestStart.generateTs���"�"�"r"r&N)23rBrCrDrErFrGrH�floatr(rIr&r"rrKrKSs��#�)�.�.�-�-�#�%�#r"rKc�N�\rSrSrS\R24RS\4SjrSr	g)�OrderRequestMethod�Xr#r$c��[U[R5(aURR$[U[25R[R45(aURR5$[U[R5(a3[RRURR5$[!5er)�26isinstancer�HTTPFlow�request�methodr�TCPFlowr�UDPFlow�type�upperr�DNSFlow�op_codes�to_str�op_code�NotImplementedErrorr's  rr(�OrderRequestMethod.generateYs����a����'�'��9�9�#�#�#�
��C�K�K����5�
6�
6��6�6�<�<�>�!�
��3�;�;�
'�
'��<�<�&�&�q�y�y�'8�'8�9�9�%�'�'r"r&N�27rBrCrDrErFrGrH�strr(rIr&r"rrRrRX���(�)�.�.�-�-�(�#�(r"rRc�N�\rSrSrS\R28RS\4SjrSr	g)�OrderRequestURL�dr#r$c���[U[R5(aURR$[U[29R[R45(a*[R"URR5$[U[R5(a@URR(a#URRSR $S$[#5e)Nr�)rUrrVrW�urlrrYrrZr�format_address�server_conn�addressrr]�	questions�namerar's  rr(�OrderRequestURL.generatees����a����'�'��9�9�=�=� �
��C�K�K����5�
6�
6��'�'��
�
�(=�(=�>�>�
��3�;�;�
'�
'�23�)�)�2E�2E�1�9�9�&�&�q�)�.�.�M�2�M�%�'�'r"r&Nrcr&r"rrgrgdrer"rgc�N�\rSrSrS\R30RS\4SjrSr	g)�OrderKeySize�pr#r$c��[U[R5(a�SnURR(a"U[URR5-
nUR(a=URR(a"U[URR5-
nU$[U[R[R45(a/SnURHnU[UR5-
nM U$[U[R5(a)UR(aURR$S$[!5e�Nr)rUrrVrW�raw_content�len�responserrYrrZ�messages�contentrr]�sizera)rr#r|�messages    rr(�OrderKeySize.generateqs����a����'�'��D��y�y�$�$���A�I�I�1�1�2�2���z�z�a�j�j�4�4���A�J�J�2�2�3�3���K�
��C�K�K����5�
6�
6��D��:�:����G�O�O�,�,��&��K�
��3�;�;�
'�
'�&'�j�j�1�:�:�?�?�7�a�7�%�'�'r"r&N)31rBrCrDrErFrGrH�intr(rIr&r"rrsrsps��(�)�.�.�-�-�(�#�(r"rs))�t�time)�mrX)�urk)�zr|rGr$c��grr&�rGs r�_signal_with_flowr��s��#r"�indexc��grr&�rGr�s  r�_sig_view_remover��s��Sr"c	�^�\rSrSrSgU4SjjrSrSrS\S\4SjrS	r	S\324S33jrS\RRS\4SjrShS\RRS
\S\S-S\4SjjrS\34S\4SjrSrSrSr\R,"S5S\SS4Sj5r\R,"S5SgSj5r\R,"S5SgSj5r\R,"S5S\\4Sj5r\R,"S5S\SS4Sj5r\R,"S 5S!\SS4S"j5r\R,"S#5S\4S$j5r\R,"S%5S&\SS4S'j5r S(\!RDS-4S)jr#\R,"S*5SgS+j5r$\R,"S,5SgS-j5r%\R,"S.5S/\RRS0\S1\S\4S2j5r&\R,"S35S4\\RRS0\SS4S5j5r'\R,"S65S4\\RRS0\S7\SS4S8j5r(\R,"S95S4\\RRSS4S:j5r)\R,"S;5S4\\RRSS4S<j5r*\R,"S=5S>\S\\RR4S?j5r+\R,"S@5SA\SB\SS4SCj5r,\R,"SD5SE\RZR\SS4SFj5r/S4\\RRSS4SGjr0SH\S\RRS-4SIjr1\R,"SJ5S\4SKj5r2\R,"SL5S\4SMj5r3\R,"SN5SgSOj5r4\R,"SP5SQ\S\4SRj5r5SSr6STr7SUr8SVr9SWr:SXr;SYr<SZr=S[r>S\r?S]r@S^rAS_rBS`rCSarDSbrEScrFSdrGS4\\RRSS4SejrHSfrIU=rJ$)i�View�r$Nc�D>�[TU]5 [R"5Ul[35RUlSUl[U5Ul36[[U5[U5[U5[U5S9UlURUlSUlSUl[&R("UR S9Ul[,R."[05Ul[,R."[05Ul[,R."[65Ul[,R."S5Ul[,R."[05Ul[,R."S5Ul[AU5Ul![EU5Ul#g)NF)r�rXrkr|��keyc��grr&r&r"r�<lambda>�View.__init__.<locals>.<lambda>�s��4r"c��grr&r&r"rr�r��s��Dr")$�superr �collections�OrderedDictr=r
�	match_all�filter�show_markedrK�
default_order�dictrRrgrs�orders�	order_key�order_reversed�focus_follow�sortedcontainers�SortedListWithKeyr-r�37SyncSignalr��sig_view_update�sig_view_addr��sig_view_remover0�sig_store_remove�sig_store_refresh�Focus�focus�Settingsr,)r�	__class__s �rr �
View.__init__�s6���
�����#�#�%�	
��!�*�*��� ���.�t�4����"�4�(�%�d�+���%��d�#�	38���%)�$6�$6���#���!���%�7�7�D�N�N�K��39�40 '�1�1�2C�D���#�.�.�/@�A���&�1�1�2B�C��� '� 2� 2�<� @���!(� 2� 2�3D� E���!(�!3�!3�L�!A����4�[��41� ����
r"c��URS[[SS5 URS[SS[[	S[4255S9 URS[S	S435 URS[S	S5 g)
N�view_filterz!Limit the view to matching flows.�44view_orderr�zFlow sort order.c��US$�N�r&)�cs rr��View.load.<locals>.<lambda>�s��q��tr")�choices�view_order_reversedFzReverse the sorting order.�console_focus_followzFocus follows new flows.)�45add_optionrrd�list�mapr��bool)r�loaders  r�load�	View.load�s�������8�C�=�$�0S�	46�	���������^�V�4�5�	�	47�	���!�4��0L�	48�	���"�D�%�1K�	49r"c�,�[UR5$r)rxr=r:s r�store_count�View.store_count�s���4�;�;��r"�idxc��UR(a5US:aU*S-50nU$[UR5U-51S-52nUS:a[eU$)z53Reverses an index, if needed54rr�)r�rxr-�55IndexError�rr�s  r�_rev�	View._rev�sQ������Q�w��d�Q�h��56�57��$�*�*�o��+�a�/����7�$�$��58r"c�,�[UR5$r)rxr-r:s r�__len__�View.__len__�s���4�:�:��r"c�>�URURU5$r)r-r��r�offsets  r�__getitem__�View.__getitem__�s���z�z�$�)�)�F�+�,�,r"r#c�f�URRU5nURUS-595S-$r�)r-�bisect_rightr��rr#�vs   r�_bisect�View._bisect�s.���J�J�#�#�A�&���y�y��Q���!�#�#r"�start�stopc�X�URURRXU55$r)r�r-r�)rr#r�r�s    rr��60View.index�s$���y�y����)�)�!�D�9�:�:r"c�8�URRU5$r)r-�__contains__r's  rr��View.__contains__�s���z�z�&�&�q�)�)r"c�2�S[UR5-$r8)r9r�r:s r�_order_key_name�View._order_key_name�s���R����/�/�/r"c��URU5URUUR5'URR	U5 gr)r�r,r�r-r/r's  r�	_base_add�View._base_add�s7��37�>�>�!�3D��
�
�a���-�-�/�0��61�62���q�r"c�H�URR5 URR5HPnUR(aUR63(dM'UR
U5(dM?URU5 MR URR5 gr)64r-�clearr=�valuesr��markedr�r�r0r1)r�is  r�	_refilter�View._refilter�sh���65�66�������#�#�%�A���������{�{�1�~�~����q�!�	&�67	
���"�"�$r"z
view.focus.gor�c���[U5S:XagUS:a[U5U-nUS:aSnU[U5S-68:�a[U5S-69nXURlg)z�70Go to a specified offset. Positive offests are from the beginning of71the view, negative from the end of the view, so that 0 is the first72flow, -1 is the last flow.73rNr�)rxr�rGr�s  r�go�View.gos]���t�9��>���A�:���Y��'�F��A�:��F��C��I��M�!���Y��]�F��,��74�75�r"zview.focus.nextc��URRbDURRS-nURU5(aXURlggg)z76Set focus to the next flow.77Nr��r�r��inboundsrGr�s  r�78focus_next�View.focus_next�N��79�:�:���'��*�*�"�"�Q�&�C��}�}�S�!�!�"&�)��80�81��"�
r"zview.focus.prevc��URRbDURRS-82nURU5(aXURlggg)z!83Set focus to the previous flow.84Nr�r�r�s  r�85focus_prev�View.focus_prev#r�r"zview.order.optionsc�Z�[[URR555$)z-86Choices supported by the view_order option.87)r��sortedr��keysr:s r�
order_options�View.order_options0s!��88�F�4�;�;�+�+�-�.�/�/r"zview.order.reverse�booleanc�D�XlURR5 gr)r�r0r1)rr�s  r�set_reversed�View.set_reversed7s��%�����"�"�$r"zview.order.setr�c���XR;a[R"SU-5eURUnX l[R89"US9nUR
UR5 X0lg)z90Sets the current view order.91�Unknown flow order: %sr�N)r�r�CommandErrorr�r�r��updater-)rr�r��newviews    r�	set_order�View.set_order<s]��92�K�K�'��)�)�*B�Y�*N�O�O��k�k�)�$����"�4�4��=�����t�z�z�"��93r"z94view.orderc��SnURR5H$nURURU:XdM"UnM& U$)z!95Returns the current view order.96rj)r�r�r�)r�orderr2s   r�	get_order�View.get_orderIs@��97�����!�!�#�A��~�~����Q��/���$��r"zview.filter.set�filter_exprc���SnU(a[R"U5nUR
U5 g![a%n[R"[U55UeSnAff=f)z98Sets the current view filter.99N)r
�parse�100ValueErrorrrrd�101set_filter)rr�filt�es    r�set_filter_cmd�View.set_filter_cmdUsX��102���
=�!�'�'��4��	
�������
=� �-�-�c�!�f�5�1�<��
=�s�3�103A"� A�A"�fltc�`�U=(d [RUlUR5 gr)r
r�r�r�)rrs  rr�View.set_filterbs���1�Z�1�1������r"z104view.clearc���URR5 URR5 URR	5 UR105R	5 g)z!106Clears both the store and view.107N)r=r�r-r0r1r�r:s rr��108View.cleargsH��109	
�������110�111�������"�"�$����#�#�%r"zview.clear_unmarkedc�&�URR5R5H;nUR(aMURR	UR1125 M= UR
5 URR5 g)z!113Clears only the unmarked flows.114N)	r=�copyr�r��popr9r�r�r1�rrGs  r�clear_not_marked�View.clear_not_markedqs_��115�K�K�$�$�&�-�-�/�D��;�;�;���������(�0�	
�������#�#�%r"zview.settings.getvalrGr��defaultc�>�URURX#5$)z=116Get a value from the settings store for the specified flow.117)r,�get)rrGr�r s    r�getvalue�
View.getvalue~s��118�}�}�T�"�&�&�s�4�4r"zview.settings.setval.toggle�flowsc�(�/nUHMnURURUS5nUS:XaSOSURUU'URU5 MO [RR119R
[R"U55 g)zb120Toggle a boolean value in the settings store, setting the value to121the string "true" or "false".122�false�trueN)	r,r"�appendr123�master�addons�triggerr�124UpdateHook)rr%r��updatedr#�currents      r�setvalue_toggle�View.setvalue_toggle�s{�����A��m�m�A�&�*�*�3��8�G�/6�&�/@�G�f�D�M�M�!��S�!��N�N�1���	�125�126���!�!�%�"2�"2�7�";�<r"zview.settings.setval�valuec���/nUH%nX0RUU'URU5 M' [RRR[R"U55 g)z<127Set a value in the settings store for the specified flows.128N)r,r)r129r*r+r,rr-)rr%r�r2r.r#s      r�setvalue�
View.setvalue�sU�����A�$)�M�M�!��S�!��N�N�1���	�130�131���!�!�%�"2�"2�7�";�<r"zview.flows.duplicatec���UVs/sHo"R5PM nnU(aMURU5 USURl[R132"[S[U5-5 ggs snf)zL133Duplicates the specified flows, and sets the focus to the first134duplicate.135rzDuplicated %s flowsN)rr/r�rG�logging�logrrx)rr%r#�dupss    r�	duplicate�View.duplicate�s[��#(�(�%�Q����%��(���H�H�T�N�"�1�g�D�J�J�O��K�K��4�s�4�y�@�A���)s�A5zview.flows.removec��UH�nURUR;dMUR(aUR5 X R;aOURRU5nURR
U5 URRX#S9 URUR	URRUS9 M� [U5S:�a([R"[S[U5-5 gg)z:136Removes the flow from the underlying store and the view.137r�r�r�zRemoved %s flowsN)r9r=�killable�killr-r�r.r�r1r�rxr7r8r�rr%r#r�s    rr.�View.remove�s���138�A��t�t�t�{�{�"��:�:��F�F�H��139�140�?��*�*�*�*�1�-�C��J�J�%�%�a�(��(�(�-�-�1�-�@��K�K����%��%�%�*�*��*�2���u�:��>��K�K��1�C��J�>�?�r"zview.flows.resolve�	flow_specc��US:Xa*URR5Vs/sHo"PM sn$US:Xa4URR(aURR/$/$US:XaUVs/sHo"PM sn$US:Xa<URR5Vs/sHo"UR;dMUPM sn$US:Xa=URR5Vs/sHo"R141(dMUPM sn$US:Xa=URR5Vs/sHo"R142(aMUPM sn$[R"SU5(aPUSS	RS1435nURR5Vs/sHo"RU;dMUPM sn$[R"U5nURR5Vs/sHo$"U5(dMUPM sn$s snfs snfs snfs snfs snfs snf![a%n[R"[U55UeS	nAff=fs snf)z?144Resolve a flow list specification to an actual list of flows.145z@allz@focusz@shownz@hiddenz@markedz	@unmarkedz@[0-9a-f\-,]{36,}r�N�,)r=r�r�rGr-r��re�match�splitr9r
rrrrrd)rrAr��idsrrs      r�resolve�View.resolve�s���146���#�{�{�1�1�3�4�3�!�A�3�4�4��� �(,�147�148���D�J�J�O�O�$�?�R�?�
�(�
"�#�$�t�!�A�t�$�$�
�)�
#�#�{�{�1�1�3�K�3�!��149�150�7J�A�3�K�K�
�)�
#�#�{�{�1�1�3�@�3�!�x�x�A�3�@�@�
�+�
%�#�{�{�1�1�3�D�3�!�8�8�A�3�D�D�
�X�X�*�I�
6�
6��A�B�-�%�%�c�*�C�#�{�{�1�1�3�C�3�!�t�t�s�{�A�3�C�C�
=�!�'�'�	�2�� $�{�{�1�1�3�?�3�!�t�A�w�A�3�?�?��'5��%��K��@��D��D���
=� �-�-�c�!�f�5�1�<��
=��?s_�H�5H�%H�<H�'H�?H�*H�H�H �.H �8H%�*I�>I�%151I�/ I�Izview.flows.createrXrkc���[RRUR5U5n[R"SSURS-152S9n[R"URUR4S9n[R"XV5nX7lURURRS'UR!U/5 g![an[153R"SU-5eSnAff=f)NzInvalid URL: %s)rjrg-C��6?)�peername�sockname�timestamp_start)rn�Host)r�Request�maker\rrrr	�ClientrM�Server�host�portrVrW�headersr/)rrXrk�reqrr�r>r#s        r�create�View.create�s���	A��,�,�#�#�F�L�L�N�C�8�C�
������/�/�&�8�
154��155
���s�x�x����&:�;���M�M�!����	�$'�H�H��	�	���&�!����!��
���	A��)�)�*;�a�*?�@�@��	A�s�.C�156C7�C2�2C7zview.flows.load�pathc���[US5n[R"U5R5H#nUR	UR5/5 M% SSS5 g!,(df   g=f![a*n[R"UR5 SnAgSnAf[Ra)n[R"[U55 SnAgSnAff=f)z@157Load flows into the view, without processing them with addons.158�rbN)
�openr�159FlowReader�streamr/r�OSErrorr7�error�strerrorr�FlowReadExceptionrd)rrYr#r�rs     r�	load_file�View.load_file�s���160 161	"��d�D�!�Q����q�)�0�0�2�A��H�H�a�f�f�h�Z�(�	3�"�!�!���	&��M�M�!�*�*�%�%���+�+�	"��M�M�#�a�&�!�!��	"�sA�A4�AA#�A4�#162A1�-A4�1A4�4163C#�> B#�#C#�:C�C#c�D�UH�nURUR;dMX RUR'URU5(dMOURU5 UR(aX R164lURRUS9 M� g)zF165Adds a flow to the state. If the flow already exists, it is166ignored.167r�N)	r9r=r�r�r�r�rGr�r1)rr%r#s   rr/�View.add�sp��168�A��t�t�4�;�;�&�$%���A�D�D�!��;�;�q�>�>��N�N�1�%��(�(�*+�169�170���%�%�*�*��*�2�r"�flow_idc�8�URRU5$)zS171Get flow with the given id from the store.172Returns None if the flow is not found.173)r=r")rrgs  r�	get_by_id�View.get_by_id
s��174�{�{���w�'�'r"zview.properties.lengthc��[U5$)z175Returns view length.176�rxr:s r�177get_length�View.get_lengths��178�4�y�r"zview.properties.markedc��UR$)z)179Returns true if view is in marked mode.180)r�r:s r�181get_marked�View.get_markeds��182���r"zview.properties.marked.togglec�P�UR(+UlUR5 g)z+183Toggle whether to show marked views only.184N)r�r�r:s r�
toggle_marked�View.toggle_marked#s��185 $�/�/�/������r"zview.properties.inboundsr�c�>�SUs=:*=(a [U5:$s $)z!186Is this 0 <= index < len(self)?187rrl)rr�s  rr��
View.inbounds+s!��188�E�%�%�C��I�%�%�%�%r"c���SU;aaSn[RR(a/[R"[RR5nURU5 SU;a�[RRUR;a1[R"S[RR-5eUR[RR5 SU;a)URR5 SU;a [RRUlgg![189a%n[R"[U55UeSnAff=f)Nr�r�rr�r�)r190�optionsr�r
rrr�OptionsErrorrdrr�r�rr�r�r�r�)rr.rrs    r�	configure�View.configure3s���G�#��D��{�{�&�&�A�%�+�+�C�K�K�,C�,C�D�D�
�O�O�D�!��7�"��{�{�%�%�T�[�[�8� �-�-�,�s�{�{�/E�/E�E���
�N�N�3�;�;�1�1�2� �G�+����c�k�k�=�=�>�!�W�,� #��� @� @�D��-��"�A�$�1�1�#�a�&�9�q�@��A�s�.E�191E5� E0�0E5c�(�URU/5 gr�r/r's  r�requestheaders�View.requestheadersG������!��
r"c�(�URU/5 gr�rr's  rr`�192View.errorJ������Q�C�r"c�(�URU/5 grr�r's  rry�
View.responseMr�r"c�(�URU/5 grr�r's  r�	intercept�View.interceptPr�r"c�(�URU/5 grr�r's  r�resume�View.resumeSr�r"c�(�URU/5 grr�r's  rr>�	View.killVr�r"c�(�URU/5 grr}r's  r�	tcp_start�View.tcp_startYr�r"c�(�URU/5 grr�r's  r�tcp_message�View.tcp_message\r�r"c�(�URU/5 grr�r's  r�	tcp_error�View.tcp_error_r�r"c�(�URU/5 grr�r's  r�tcp_end�View.tcp_endbr�r"c�(�URU/5 grr}r's  r�	udp_start�View.udp_starter�r"c�(�URU/5 grr�r's  r�udp_message�View.udp_messagehr�r"c�(�URU/5 grr�r's  r�	udp_error�View.udp_errorkr�r"c�(�URU/5 grr�r's  r�udp_end�View.udp_endnr�r"c�(�URU/5 grr}r's  r�dns_request�View.dns_requestqr�r"c�(�URU/5 grr�r's  r�dns_response�View.dns_responsetr�r"c�(�URU/5 grr�r's  r�	dns_error�View.dns_errorwr�r"c�f�UGHnURUR;dM URU5(a�X R;aMUR	U5 UR193(aX RlURRUS9 M�URRU5 URRUS9 M�URRU5nURRU5 URRX#S9 GM g![ a GM,f=f)zE194Updates a list of flows. If flow is not in the state, it's ignored.195r�r�N)r9r=r�r-r�r�r�rGr�r1r�r5r�r�r.r�rr?s    rr�View.updatezs����A��t�t�t�{�{�"��;�;�q�>�>��196�197�*����q�)��,�,�./�J�J�O��)�)�.�.�A�.�6����.�.�q�1��,�,�1�1�q�1�9�E�"�j�j�.�.�q�1���198�199�)�)�!�,��,�,�1�1�q�1�D�-��$&����s�D!�!200D0�/D0)r=r-r�r�r�r�r�r�r�r,r�r�r�r�r0r�r�)r$N)rN)KrBrCrDrEr r�r�rr�r�rr�rFrGrHr�r�r�r�r�r�r�rr�r�r�rrdr�r�rr201rr
�TFilterrr�rr#r0r4r:r.rHrW�types�Pathrcr/rirmrprsr�rzr~r`ryr�r�r>r�r�r�r�r�r�r�r�r�r�r�rrI�
__classcell__)r�s@rr�r��s����('�T202�$ �������-�S�-�203$����,�,�$��$�204JN�;����$�$�;�-0�;�<?�$�J�;�	�;�205*�c�*�d�*�0��%��
�_�_�_�%�'��'��'�&�'� 
�_�_�&�'�	�(�	�
�_�_�&�'�	�(�	�
�_�_�)�*�0�x��}�0�+�0�
�_�_�)�*�%�D�%�T�%�+�%�
�_�_�%�&�206�3�207�4�208�'�209�
�_�_�\�"��3��#��
�_�_�&�'�210�#�211�$�212�(�213��j�0�0�4�7��214
�_�_�\�"�&�#�&�
�_�_�*�+�	&�,�	&�
�_�_�+�,�5�Y�^�^�0�0�5�s�5�S�5�S�5�-�5�
�_�_�2�3�215=�X�i�n�n�.A�.A�%B�216=��217=�QU�218=�4�219=�
�_�_�+�,�220=��i�n�n�1�1�2�221=�9<�222=�EH�223=�	
�224=�-�225=�
�_�_�+�,�	B�x�	���(;�(;�<�	B��	B�-�	B�
�_�_�(�)�@�H�Y�^�^�%8�%8�9�@�d�@�*�@�&
�_�_�)�*�@��@��)�.�.�2E�2E�)F�@�+�@�4
�_�_�(�)��S��s��t��*��$
�_�_�&�'�"�i�o�o�2�2�"�t�"�(�"� 3��)�.�.�"5�"5�6�3�4�3�(��(����)<�)<�t�)C�(�
�_�_�-�.��C��/��
�_�_�-�.� �D� �/� �
�_�_�4�5��6��
�_�_�/�0�&�c�&�d�&�1�&�A�(�����������������E�H�Y�^�^�%8�%8�9�E�d�E�Er"r�c�$�\rSrSrSrS\SS4Sjr\S\RRS-4Sj5r	\	RS\RRS-4S	j5r	\S\S-4S226j5r
\
RS5r
SrS
rSrSrSrg)r�i�z'227Tracks a focus element within a View.228r�r$Nc��XlSUl[R"S5Ul[UR5(aURSUlURRUR5 URRUR5 URRUR5 g)Nc��grr&r&r"rr�� Focus.__init__.<locals>.<lambda>�s��Tr"r)r�_flowrr��229sig_changerxrGr��connect�
_sig_view_addr�r�r0�_sig_view_refresh)rr�s  rr �Focus.__init__�s����	�15��230�!�,�,�\�:����t�y�y�>�>��	�	�!��D�I�	�����t�1�1�2�	���!�!�$�"7�"7�8�	���"�"�4�#9�#9�:r"c��UR$r)r�r:s rrG�231Focus.flow�s���z�z�r"r#c�~�UbXR;a[S5eXlURR	5 g)Nz(Attempt to set focus to flow not in view)rrr�r�r1r's  rrGr��s1���=�Q�i�i�/��G�H�H��232������r"c�p�UR(a%URRUR5$gr)rGrr�r:s rr��Focus.index�s#���9�9��9�9�?�?�4�9�9�-�-�r"c��US:dU[UR5S-233:�a[S5eURUUlg)Nrr�zIndex out of view bounds)rxrrrGr�s  rr�r��s8����7�c�C��	�	�N�Q�.�.��7�8�8��I�I�c�N��	r"c�P�[URU5[U5S-2345$r�)�minr�rxr�s   r�_nearest�Focus._nearest�s���1�9�9�Q�<��Q��!��,�,r"c��[UR5S:XaSUlgXRLa([U[UR5S-2355Ulgg)Nrr�)rxrrGr�r�)rrGr�s   rr��Focus._sig_view_remove�sC���t�y�y�>�Q���D�I�
�Y�Y�
��U�C��	�	�N�Q�$6�7�D�J�r"c�0�[UR5S:XaSUlgURcURSUlgURUR;a9URURURUR5Ulggrv)rxrrGr�r:s rr��Focus._sig_view_refresh�sj���t�y�y�>�Q���D�I�
�Y�Y�
��	�	�!��D�I�
�Y�Y�d�i�i�
'��	�	�$�-�-��	�	�4�9�9�"E�F�D�I�(r"c�4�UR(dXlggrr�rs  rr��Focus._sig_view_add�s���y�y��I�r")r�rGr�r�r)rBrCrDrE�__doc__r�r �propertyrFrGrH�setterrr�r�r�r�r�rIr&r"rr�r��s����;�$�;�4�;���i�n�n�)�)�D�0����236�[�[��i�n�n�)�)�D�0������s�T�z����237�\�\�#��#�238-�8�G�r"r�c��\rSrSrS\SS4SjrS\4SjrS\4Sjr	S\239RRS\
4S	jrS240rSrSrg)
r�i�rr$Nc��Xl0UlURRUR5 UR241RUR5 gr)r�_valuesr�r��_sig_store_remover��_sig_store_refreshrs  rr �Settings.__init__�sB���	�24������%�%�d�&<�&<�=����&�&�t�'>�'>�?r"c�,�[UR5$r)�iterr�r:s r�__iter__�Settings.__iter__�s���D�L�L�!�!r"c�,�[UR5$r)rxr�r:s rr��Settings.__len__�s���4�<�<� � r"r#c��URURR;a[eURRUR05$r)r9rr=�KeyErrorr��242setdefaultr's  rr��Settings.__getitem__�s8���4�4�t�y�y�'�'�'��N��|�|�&�&�q�t�t�R�0�0r"c�h�URUR;aURUR	ggr)r9r�rs  rr��Settings._sig_store_remove�s'���7�7�d�l�l�"����T�W�W�%�#r"c��[URR55H+nXRR;dMURU	M- gr)r�r�r�rr=)r�fids  rr��Settings._sig_store_refresh�s:������)�)�+�,�C��)�)�*�*�*��L�L��%�-r")r�r)rBrCrDrEr�r rr�rr�rFrGrHr�r�r�r�rIr&r"rr�r��sW��@�T�@�d�@�"�(�"�!��!�1�Y�^�^�0�0�1�T�1�243&�&r"r�).r�r�r7rD�collections.abcrrr�typingrrr��mitmproxy.flowrFrr	r244rrr
rrrrr�
mitmproxy.logr�mitmproxy.utilsrrrrKrRrgrsr�rGrHr�rr��abcr�r��Mappingr�r&r"r�<module>r�s245��	���	�$�*�$������ ��� � �������!�#�$�$�B#�	�#�246	(��	(�	(�i�	(�(�9�(�(247��>�I�N�N�/�/�=�D�=�I�9�>�>�.�.�H�s�H�t�H�BE�;�?�?�#�#�BE�J:�:�z&�{���&�&�&r"
codekingpro/portable-devtools · Team Ai