Your IP : 216.73.216.213


Current Path : /opt/alt/python311/lib64/python3.11/test/test_pydoc/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/test/test_pydoc/__pycache__/test_pydoc.cpython-311.opt-1.pyc

�

�0�iQ��*�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlmZddlmZddlmZmZddlm Z ddlm!Z!ddlm"Z"ddl#m$Z$m%Z%m&Z&dd	lm'Z'dd
lm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ddl0m1Z1m2Z2m3Z3ddl4m5Z5dd
l4m6Z6Gd�d��Z7ej j8rdZ9ndZ9d�:��Z;e<d�e9D����Z=dZ>e<d�e9D����Z?d�@dejA��ZBdZCd�:��ZDd�:��ZEd�:��ZFd�:��ZGd�:��ZHd�ZId�ZJd �ZKd!�ZLd"�ZMd#�ZNd$�ZOd%�ZPGd&�d'ejQ��ZRGd(�d)ejQ��ZSGd*�d+eR��ZTGd,�d-ejQ��ZUGd.�d/ejQ��ZVejWe,pe-d0��Gd1�d2ejQ����ZXGd3�d4eR��ZYGd5�d6ejQ��ZZGd7�d8ejQ��Z[Gd9�d:ejQ��Z\d;�Z]e^d<krej_��dSdS)=�N)�StringIO)�
namedtuple)�urlopen�
urlcleanup)�support)�
import_helper)�	os_helper)�assert_python_ok�assert_python_failure�spawn_python)�threading_helper)�
reap_children�captured_output�captured_stdout�captured_stderr�
is_emscripten�is_wasi�requires_docstrings�MISSING_C_DOCSTRINGS)�TESTFN�rmtree�unlink)�	pydoc_mod)�pydocfodderc��eZdZdZdS)�nonasciiuЦе не латиницяN��__name__�
__module__�__qualname__�__doc__���A/opt/alt/python311/lib64/python3.11/test/test_pydoc/test_pydoc.pyrr's������ � ��Dr#r)�!dictionary for instance variables�%list of weak references to the objectr%r&)�r'r'r'a�
NAME
    test.test_pydoc.pydoc_mod - This is a test module for test_pydoc
%s
CLASSES
    builtins.object
        A
        B
        C
    
    class A(builtins.object)
     |  Hello and goodbye
     |  
     |  Methods defined here:
     |  
     |  __init__()
     |      Wow, I have no function!
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__%s
     |  
     |  __weakref__%s
    
    class B(builtins.object)
     |  Data descriptors defined here:
     |  
     |  __dict__%s
     |  
     |  __weakref__%s
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  NO_MEANING = 'eggs'
     |  
     |  __annotations__ = {'NO_MEANING': <class 'str'>}
    
    class C(builtins.object)
     |  Methods defined here:
     |  
     |  get_answer(self)
     |      Return say_no()
     |  
     |  is_it_true(self)
     |      Return self.get_answer()
     |  
     |  say_no(self)
     |  
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |  
     |  __class_getitem__(item)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables
     |  
     |  __weakref__
     |      list of weak references to the object

FUNCTIONS
    doc_func()
        This function solves all of the world's problems:
        hunger
        lack of Python
        war
    
    nodoc_func()

DATA
    __xyz__ = 'X, Y and Z'
    c_alias = test.test_pydoc.pydoc_mod.C[int]
    list_alias1 = typing.List[int]
    list_alias2 = list[int]
    type_union1 = typing.Union[int, str]
    type_union2 = int | str

VERSION
    1.2.3.4

AUTHOR
    Benjamin Peterson

CREDITS
    Nobody

FILE
    %s
c#�(K�|]
}|rd|zndV��dS)z
     |      r'Nr"��.0�ss  r$�	<genexpr>r,�sO����&I�&I�*+�?@�&G�&6��&:�&:�R�&I�&I�&I�&I�&I�&Ir#a{
test.test_pydoc.pydoc_mod (version 1.2.3.4)
This is a test module for test_pydoc

Modules
    types
    typing

Classes
    builtins.object
    A
    B
    C

class A(builtins.object)
    Hello and goodbye

    Methods defined here:
        __init__()
            Wow, I have no function!
    ----------------------------------------------------------------------
    Data descriptors defined here:
        __dict__
            dictionary for instance variables
        __weakref__
            list of weak references to the object

class B(builtins.object)
    Data descriptors defined here:
        __dict__
            dictionary for instance variables
        __weakref__
            list of weak references to the object
    ----------------------------------------------------------------------
    Data and other attributes defined here:
        NO_MEANING = 'eggs'
        __annotations__ = {'NO_MEANING': <class 'str'>}


class C(builtins.object)
    Methods defined here:
        get_answer(self)
            Return say_no()
        is_it_true(self)
            Return self.get_answer()
        say_no(self)
    ----------------------------------------------------------------------
    Class methods defined here:
        __class_getitem__(item)
    ----------------------------------------------------------------------
    Data descriptors defined here:
        __dict__
            dictionary for instance variables
        __weakref__
             list of weak references to the object

Functions
    doc_func()
        This function solves all of the world's problems:
        hunger
        lack of Python
        war
    nodoc_func()

Data
    __xyz__ = 'X, Y and Z'
    c_alias = test.test_pydoc.pydoc_mod.C[int]
    list_alias1 = typing.List[int]
    list_alias2 = list[int]
    type_union1 = typing.Union[int, str]
    type_union2 = int | str

Author
    Benjamin Peterson

Credits
    Nobody
c#�BK�|]}|�dd��V��dS)� �&nbsp;N)�replacer)s  r$r,r,�sL����&I�&I�*+�'(�i�i��X�&>�&>�&I�&I�&I�&I�&I�&Ir#z~No Python documentation found for %r.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.�
z7problem in %s - ModuleNotFoundError: No module named %ra/
Help on class DA in module %s:

class DA(builtins.object)
 |  Data descriptors defined here:
 |  
 |  __dict__%s
 |  
 |  __weakref__%s
 |  
 |  ham
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes inherited from Meta:
 |  
 |  ham = 'spam'
z�
Help on class Class in module %s:

class Class(builtins.object)
 |  Data and other attributes inherited from Meta:
 |  
 |  LIFE = 42
z�
Help on class Class1 in module %s:

class Class1(builtins.object)
 |  Data and other attributes inherited from Meta1:
 |  
 |  one = 1
a
Help on class Class2 in module %s:

class Class2(Class1)
 |  Method resolution order:
 |      Class2
 |      Class1
 |      builtins.object
 |  
 |  Data and other attributes inherited from Meta1:
 |  
 |  one = 1
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes inherited from Meta3:
 |  
 |  three = 3
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes inherited from Meta2:
 |  
 |  two = 2
z�
Help on class C in module %s:

class C(builtins.object)
 |  Data and other attributes defined here:
 |  
 |  here = 'present!'
c�t�||fz}tdtjg|�Ri|��\}}}|���S)zW
    Runs pydoc on the specified module. Returns the stripped
    output of pydoc.
    �-B)r
�pydoc�__file__�strip��module_name�args�env�rc�out�errs      r$�	run_pydocr>4sE��
�;�.� �D�#�D�%�.�G�4�G�G�G�3�G�G�L�B��S��9�9�;�;�r#c�t�||fz}tdtjg|�Ri|��\}}}|���S)zA
    Runs pydoc on the specified module expecting a failure.
    r3)rr4r5r6r7s      r$�run_pydoc_failr@>sE���;�.� �D�(��u�~�L��L�L�L��L�L�L�B��S��9�9�;�;�r#c���tj��}|�|��}|�t��pd}|rd|zdz}|���|fS)z&Returns pydoc generated output as htmlr'z
<br><a href="z">Module Docs</a>)r4�HTMLDoc�	docmodule�	getdoclocrr6)�module�doc�output�locs    r$�get_pydoc_htmlrIFs_��
�-�/�/�C�
�]�]�6�
"�
"�F�

�-�-�	�
"�
"�
(�b�C�
�<���$�';�;���<�<�>�>�3��r#c�.�tjdd|��S)Nz.r')�re�sub)rFs r$�
clean_textrMOs��
�6�%��S�!�!�!r#c	���tjj}tjj}||||t��������}tj��}|�||���}|S)z,Returns a documentation web link of a module)�basedir)�os�path�abspath�dirnamer5r4�TextDocrD)rErRrSrOrFrHs      r$�get_pydoc_linkrUSsf���g�o�G��g�o�G��g�g�g�g�g�g�g�h�&7�&7�8�8�9�9�:�:�G�
�-�/�/�C�

�-�-���-�
0�
0�C��Jr#c���tj��}|�t��pd}|rd|zdz}|�|��}t|��}|���|fS)z&Returns pydoc generated output as textr'z
MODULE DOCS
    r1)r4rTrDrrCrMr6)rErFrHrGs    r$�get_pydoc_textrW\sk��
�-�/�/�C�

�-�-�	�
"�
"�
(�b�C�
�1�#�c�)�D�0��
�]�]�6�
"�
"�F�
��
�
�F��<�<�>�>�3��r#c��|�d��\}}}|�d��\}}}|�d��\}}}|S)Nz</head>z<title>z</title>)�	partition)�text�header�_�titles    r$�get_html_titler^gsN���>�>�)�,�,�L�F�A�q��"�"�9�-�-�K�A�q�%��/�/�*�-�-�K�E�1�a��Lr#c	��|�dd��}|�dd��}tjdd|��}tj|ddd	d
dd��}|S)
zWA quick and dirty implementation of html2text.

    Tailored for pydoc tests only.
    z<dd>r1z<hr>�F----------------------------------------------------------------------z<.*?>r'r/r.z&gt;�>z&lt;�<)r0rKrLr4)�htmls r$�	html2textrdos]��
�<�<���%�%�D��<�<���'�'�D�
�6�'�2�t�$�$�D��=��x��f�c�6�3�G�G�D��Kr#c�>�eZdZdd�Zejdd���Zd�ZdS)�
PydocBaseTestNc�f���|p$tj�t��g�d��fd�	}|S)zi
        A version of pkgutil.walk_packages() that will restrict itself to
        a given path.
        Nr'c�"���|p�||��S�Nr")rQ�prefix�onerror�default_path�
walk_packagess   ��r$�wrapperz8PydocBaseTest._restricted_walk_packages.<locals>.wrapper�s��� �=��!5��v�w�G�G�Gr#)Nr'N)rPrQrSr5)�selfrmrQrnrls `  @r$�_restricted_walk_packagesz'PydocBaseTest._restricted_walk_packages}sP����
�:������ 9� 9�:��	H�	H�	H�	H�	H�	H�	H��r#c#�K�tj}|�||��t_	dV�|t_dS#|t_wxYwri)�pkgutilrmrp)rorQrms   r$�restrict_walk_packagesz$PydocBaseTest.restrict_walk_packages�s]�����-�
� $� >� >�}�?C�!E�!E���	2��E�E�E�$1�G�!�!�!��M�G�!�1�1�1�1s�A�Ac�|�tj|d��}t|��}|�|||��|S)Nz	text/html)r4�_url_handlerr^�assertEqual)ro�url�expected_titlerZ�results     r$�call_url_handlerzPydocBaseTest.call_url_handler�s>���!�#�{�3�3����%�%��������6�6�6��r#ri)rrr rp�
contextlib�contextmanagerrsrzr"r#r$rfrf{s[������������2�2�2���2�����r#rfc�X�eZdZdZejeed��oej��d��e	d�����Z
ejeed��oej��d��e	d�����Zd�Zd�Z
d�Zd	�Zd
�Zd�Ze	d���Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zejeed��oej��d��e	d�����Zd�Zd�Zd�Zd�Z d�Z!d�Z"e	d���Z#d�Z$d�Z%d �Z&d!�Z'd"�Z(e	d#���Z)d$�Z*dS)%�PydocDocTestN�gettrace�1trace function introduces __locals__ unexpectedlyc��tt��\}}t|��}d�|���D��}d�|D��}|d=t���}d�|D��}|�||��t
jt��}tj	�
|��}|�||��|�||��|�||��dS)Nc�6�g|]}|�����Sr"�r6�r*�lines  r$�
<listcomp>z.PydocDocTest.test_html_doc.<locals>.<listcomp>�s ��H�H�H�t�d�j�j�l�l�H�H�Hr#c��g|]}|�|��Sr"r"r�s  r$r�z.PydocDocTest.test_html_doc.<locals>.<listcomp>�s��:�:�:�t�T�:�d�:�:�:r#�c�:�g|]}|�|�����Sr"r�r�s  r$r�z.PydocDocTest.test_html_doc.<locals>.<listcomp>�s%��J�J�J�4�T�J�$�*�*�,�,�J�J�Jr#)rIrrd�
splitlines�html2text_of_expectedrv�inspect�
getabsfile�urllib�parse�quote�assertIn)rory�doc_loc�text_result�
text_lines�expected_lines�mod_file�mod_urls        r$�
test_html_doczPydocDocTest.test_html_doc�s���)��3�3������'�'��H�H�{�/E�/E�/G�/G�H�H�H�
�:�:�z�:�:�:�
��q�M�.�9�9�;�;��J�J�>�J�J�J������^�4�4�4��%�i�0�0���,�$�$�X�.�.���
�
�g�v�&�&�&��
�
�h��'�'�'��
�
�g�v�&�&�&�&�&r#c��tt��\}}t|ftzt	jt��fzz}|�||��dSri)rWr�expected_text_pattern�expected_text_data_docstringsr�r�rv)roryr��
expected_texts    r$�
test_text_doczPydocDocTest.test_text_doc�s`��)��3�3����-� �
�5�6� �+�I�6�6�8�9�:�
�	
�����/�/�/�/�/r#c��ddl}Gd�d|j��}tj|��}|�d|��dS)Nrc��eZdZdZdZdS)�IPydocDocTest.test_text_enum_member_with_value_zero.<locals>.BinaryIntegerrr�N)rrr �zero�oner"r#r$�
BinaryIntegerr��s�������D��C�C�Cr#r�zBinaryInteger.zero)�enum�IntEnumr4�
render_docr�)ror�r�rFs    r$�%test_text_enum_member_with_value_zeroz2PydocDocTest.test_text_enum_member_with_value_zero�sf��	����	�	�	�	�	�D�L�	�	�	���}�-�-���
�
�*�C�0�0�0�0�0r#c�n�ttjj��}|�d|��dS)Nzxml.etree.elementtree)rU�xml�etree�ElementTreer�)ro�doc_links  r$�,test_mixed_case_module_names_are_lower_casedz9PydocDocTest.test_mixed_case_module_names_are_lower_cased�s/��!�#�)�"7�8�8���
�
�-�x�8�8�8�8�8r#c�l�ttj��\}}|�|dd��dS)Nr'z'MODULE DOCS incorrectly includes a link)rWr�r�rv)roryr�s   r$�test_issue8225zPydocDocTest.test_issue8225�s4��(���3�3��������"�&O�P�P�P�P�Pr#c��tj}	dt_tj��|t_dS#|t_wxYwri)�sys�stdinr4�getpager)ro�previous_stdins  r$�test_getpager_with_stdin_nonez*PydocDocTest.test_getpager_with_stdin_none�sA�����	'��C�I��N����&�C�I�I�I���C�I�&�&�&�&s	�;�A	c��Gd�d��}Gd�d��}tj|����}tj|����}|�|�dd��|��dS)Nc��eZdZdZdS)�)PydocDocTest.test_non_str_name.<locals>.A�*N�rrr r"r#r$�Ar��s�������H�H�Hr#r�c��eZdZdS)�)PydocDocTest.test_non_str_name.<locals>.BNr�r"r#r$�Br����������Dr#r�)r4r�rvr0)ror�r��adoc�bdocs     r$�test_non_str_namezPydocDocTest.test_non_str_name�s���	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�������$�$��������$�$��������c�3�/�/��6�6�6�6�6r#c��d}tt|��d��}t|z}|�||d��dS)N�test.i_am_not_here�asciiz&documentation for missing module found)�strr@�missing_patternrv�ro�missing_modulery�expecteds    r$�
test_not_herezPydocDocTest.test_not_here�sQ��-���^�N�3�3�W�=�=��"�^�3������6�4�	6�	6�	6�	6�	6r#c��tdd���}tj�dd��}|�||��dS)Nz#test.test_pydoc.test_pydoc.nonasciir�)�PYTHONIOENCODING�backslashreplace)r>rr!�encoder�)rory�encodeds   r$�test_not_asciizPydocDocTest.test_not_ascii�sI���@�SZ�[�[�[���"�)�)�'�3E�F�F���
�
�g�v�&�&�&�&�&r#c��d}tt|��d��}t|���z}|�||��dS)Nz test.i_am_not_here r�)r�r@r�r6rvr�s    r$�test_input_stripzPydocDocTest.test_input_strip�sP��/���^�N�3�3�W�=�=��"�^�%9�%9�%;�%;�;������6�*�*�*�*�*r#c��tj}|�|d��d��|�|d��d��|�|d��d��|�|d��d��dS)Nz<function stripid at 0x88dcee4>z<function stripid>z <function stripid at 0x01F65390>�42z<type 'exceptions.Exception'>)r4�stripidrv)ror�s  r$�test_stripidzPydocDocTest.test_stripid�s����-�������!B�C�C�-�	/�	/�	/������!C�D�D�-�	/�	/�	/�	
���������-�-�-������!@�A�A�8�	:�	:�	:�	:�	:r#c��tj��}|�t��}d}|�||��dS)a�Tests help on builtin object which have more than four child classes.

        When running help() on a builtin class which has child classes, it
        should contain a "Built-in subclasses" section and only 4 classes
        should be displayed with a hint on how many more subclasses are present.
        For example:

        >>> help(object)
        Help on class object in module builtins:

        class object
         |  The most base type
         |
         |  Built-in subclasses:
         |      async_generator
         |      BaseException
         |      builtin_function_or_method
         |      bytearray
         |      ... and 82 other subclasses
        z� |  Built-in subclasses:
 |      async_generator
 |      BaseException
 |      builtin_function_or_method
 |      bytearray
 |      ... and \d+ other subclassesN)r4rT�docclass�object�assertRegex�rorFrZ�snips    r$�)test_builtin_with_more_than_four_childrenz6PydocDocTest.test_builtin_with_more_than_four_childrensE��*�m�o�o���|�|�F�#�#��8��	
����t�$�$�$�$�$r#c��tj��}|�t��}d}|�||��dS)a1Tests help on builtin object which have only child classes.

        When running help() on a builtin class which has child classes, it
        should contain a "Built-in subclasses" section. For example:

        >>> help(ArithmeticError)
        Help on class ArithmeticError in module builtins:

        class ArithmeticError(Exception)
         |  Base class for arithmetic errors.
         |
         ...
         |
         |  Built-in subclasses:
         |      FloatingPointError
         |      OverflowError
         |      ZeroDivisionError
        zc |  Built-in subclasses:
 |      FloatingPointError
 |      OverflowError
 |      ZeroDivisionErrorN)r4rTr��ArithmeticErrorr�r�s    r$�test_builtin_with_childz$PydocDocTest.test_builtin_with_child sC��&�m�o�o���|�|�O�,�,��,��	
�
�
�d�D�!�!�!�!�!r#c��tj��}|�t��}d}|�||��|�d|��dS)a�Tests help on builtin classes which have grandchild classes.

        When running help() on a builtin class which has child classes, it
        should contain a "Built-in subclasses" section. However, if it also has
        grandchildren, these should not show up on the subclasses section.
        For example:

        >>> help(Exception)
        Help on class Exception in module builtins:

        class Exception(BaseException)
         |  Common base class for all non-exit exceptions.
         |
         ...
         |
         |  Built-in subclasses:
         |      ArithmeticError
         |      AssertionError
         |      AttributeError
         ...
        z^ |  Built-in subclasses:
 |      ArithmeticError
 |      AssertionError
 |      AttributeError�ZeroDivisionErrorN)r4rTr��	Exceptionr��assertNotInr�s    r$�test_builtin_with_grandchildz)PydocDocTest.test_builtin_with_grandchild;sZ��,�m�o�o���|�|�I�&�&��)��	
�
�
�d�D�!�!�!����,�d�3�3�3�3�3r#c��tj��}|�t��}|�d|��dS)a�Tests help on builtin object which have no child classes.

        When running help() on a builtin class which has no child classes, it
        should not contain any "Built-in subclasses" section. For example:

        >>> help(ZeroDivisionError)

        Help on class ZeroDivisionError in module builtins:

        class ZeroDivisionError(ArithmeticError)
         |  Second argument to a division or modulo operation was zero.
         |
         |  Method resolution order:
         |      ZeroDivisionError
         |      ArithmeticError
         |      Exception
         |      BaseException
         |      object
         |
         |  Methods defined here:
         ...
        �Built-in subclassesN)r4rTr�r�r��rorFrZs   r$�test_builtin_no_childz"PydocDocTest.test_builtin_no_child[s>��.�m�o�o���|�|�-�.�.�����.��5�5�5�5�5r#c��tj��}|�t��}|�d|��dS)z�Tests help on metaclasses.

        When running help() on a metaclasses such as type, it
        should not contain any "Built-in subclasses" section.
        r�N)r4rTr��typer�r�s   r$�test_builtin_on_metaclassesz(PydocDocTest.test_builtin_on_metaclassesws=���m�o�o���|�|�D�!�!�����.��5�5�5�5�5r#c��tdz���}td��5}|�d��\}}|������dd�}|d�d��|d<|�||��ddd��dS#1swxYwYdS)N�abdz-chelp()sabdi����i����rzhelp> )r�r�r�communicate�decode�removeprefixrv)ro�elines�procr<r\�oliness      r$�test_fail_help_clizPydocDocTest.test_fail_help_cli�s���!�E�)�5�5�7�7��
�-�
(�
(�	-�D��%�%�f�-�-�F�C���Z�Z�\�\�,�,�.�.�r�"�u�5�F��q�	�.�.�x�8�8�F�1�I����V�V�,�,�,�		-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�A;B4�4B8�;B8c�l�t��5}tj|���}|�d��tdz}|�||�������dtj
����ddd��dS#1swxYwYdS)N�rGr�r1)rr4�Helper�helpr�rv�getvaluer6r0rP�linesep)ro�buf�helperr�s    r$�test_fail_help_output_redirectz+PydocDocTest.test_fail_help_output_redirect�s���
�Z�Z�	Y�3��\��-�-�-�F��K�K�����&��.�H����X�s�|�|�~�~�';�';�'=�'=�'E�'E�d�B�J�'W�'W�X�X�X�		Y�	Y�	Y�	Y�	Y�	Y�	Y�	Y�	Y�	Y�	Y�	Y����	Y�	Y�	Y�	Y�	Y�	Ys�B
B)�)B-�0B-c��tj}d�}d|_t��}tj|���}tt��\}}d}d���}tj	|��}|tz}	|t_	td��5}
td��5}|�|��|�
�����}|	|ftzt!jt��fzz}
|�d|
�
����|�d|�
����|�|
|��ddd��n#1swxYwYddd��n#1swxYwY|t_dS#|t_wxYw)Nc��d�S)Nc��|Srir")�xs r$�<lambda>zJPydocDocTest.test_help_output_redirect.<locals>.<lambda>.<locals>.<lambda>�s��!�r#r"r"r#r$rz8PydocDocTest.test_help_output_redirect.<locals>.<lambda>�s����r#r�ztest.test_pydoc.pydoc_modzO
        Help on module test.test_pydoc.pydoc_mod in test.test_pydoc:

        �stdout�stderrr')r4r��maxDiffrr�rWr�lstrip�textwrap�dedentr�rr�r�r6r�r�r�rv)ro�getpager_old�getpager_newr�r��unusedr�rE�help_header�expected_help_patternrGr=ryr�s              r$�test_help_output_redirectz&PydocDocTest.test_help_output_redirect�s���~��,�,������j�j����S�)�)�)��(��3�3����,���
�F�H�H�	��o�k�2�2�� +�.C� C��%���
	*� ��*�*�

8�f� ��*�*�

8�.1����F�#�#�#������-�-�/�/�� 5�!(�
� =�!>�!(�!3�I�!>�!>� @�!A�!B�
�� � ��V�_�_�%6�%6�7�7�7�� � ��S�\�\�^�^�4�4�4�� � ���7�7�7�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8����

8�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8����

8�

8�

8�

8�*�E�N�N�N��\�E�N�)�)�)�)sU�F8�!F�1CF�<F�F	�F�F	�F�F8�F#�#F8�&F#�'F8�8Gc���d�}dti|_td��5}tj|��ddd��n#1swxYwY|���}|�d|��dS)Nc��dS�Nr�r"��a�b�cs   r$rzAPydocDocTest.test_lambda_with_return_annotation.<locals>.<lambda>����q�r#�returnrzlambda (a, b, c) -> int��int�__annotations__rr4r�r�r��ro�func�help_io�helptexts    r$�"test_lambda_with_return_annotationz/PydocDocTest.test_lambda_with_return_annotation�s��� � �� (�#����
�X�
&�
&�	�'��J�t����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��#�#�%�%���
�
�/��:�:�:�:�:��A�A�	Ac�
�d�}tttd�|_td��5}tj|��ddd��n#1swxYwY|���}|�d|��dS)Nc��dSrr"rs   r$rzDPydocDocTest.test_lambda_without_return_annotation.<locals>.<lambda>�rr#rrzlambda (a: int, b: int, c: int)rrs    r$�%test_lambda_without_return_annotationz2PydocDocTest.test_lambda_without_return_annotation�s��� � ��%(�s��=�=���
�X�
&�
&�	�'��J�t����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��#�#�%�%���
�
�7��B�B�B�B�Bs�A�A�Ac��d�}ttttd�|_td��5}tj|��ddd��n#1swxYwY|���}|�d|��dS)Nc��dSrr"rs   r$rzLPydocDocTest.test_lambda_with_return_and_params_annotation.<locals>.<lambda>�rr#)rrrrrz&lambda (a: int, b: int, c: int) -> intrrs    r$�-test_lambda_with_return_and_params_annotationz:PydocDocTest.test_lambda_with_return_and_params_annotation�s��� � ��%(�s���L�L���
�X�
&�
&�	�'��J�t����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��#�#�%�%���
�
�>��I�I�I�I�Is�A�A�Ac�v�tdddg��}t��5}tj|��ddd��n#1swxYwY|���}|�d|��|�d|��|�d|��|�d|��dS)N�Person�nickname�	firstnamezAlias for field number 0zAlias for field number 1�rrr4r�r�r�)ror*rr s    r$�test_namedtuple_fieldsz#PydocDocTest.test_namedtuple_fields�s����H�z�;�&?�@�@��
�
�
�	�'��J�v����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��#�#�%�%���
�
�j�(�+�+�+��
�
�k�8�,�,�,��
�
�0�(�;�;�;��
�
�0�(�;�;�;�;�;r"c�N�tdddgd���}t��5}tj|��ddd��n#1swxYwY|���}|�d|��|�d|��|�d|��dS)	N�NT�abc�defT)�rename�_1�_replace�_asdictr-)ror0rr s    r$�!test_namedtuple_public_underscorez.PydocDocTest.test_namedtuple_public_underscore�s���
��u�e�n�T�
:�
:�
:��
�
�
�	�'��J�r�N�N�N�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��#�#�%�%���
�
�d�H�%�%�%��
�
�j�(�+�+�+��
�
�i��*�*�*�*�*s�A�A�Ac��|�tt��dD]�}ttd|���5}|dkr$t	d�|��|���t	d|���t	d|���ddd��n#1swxYwYt
jti��}|�|d	����dS)
N)z
ISO-8859-1�UTF-8�w��encodingr9z#coding: {})�fileu"""line 1: héz
line 2: hi"""uline 1: hé)	�
addCleanuprr�open�print�formatr4�synopsisrv)ror<�scriptrBs    r$�
test_synopsiszPydocDocTest.test_synopsis�s�������'�'�'�/�	8�	8�H��f�c�H�5�5�5�
4���w�&�&��-�.�.�x�8�8�v�F�F�F�F��(�v�6�6�6�6��o�F�3�3�3�3�	
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4����
4�
4�
4�
4�
�~�f�b�1�1�H����X��7�7�7�7�	8�	8s�A
B�B	�B	c���tjd��}|j���d}|j}tj|��}|�||��dS)NrPr)r�import_fresh_moduler!r��
__cached__r4rBrv)rorPr��filenamerBs     r$�test_synopsis_sourcelessz%PydocDocTest.test_synopsis_sourceless�s\��
�
.�t�
4�
4���:�(�(�*�*�1�-���=���>�(�+�+������8�,�,�,�,�,r#c�&�tj��5}tj�|d��}t
j�|��}t|d��5}|�	d��ddd��n#1swxYwYtj|��tj
|i��}|�|��tj
|i��}|�|��ddd��dS#1swxYwYdS)Nzfoomod42.pyr:�foo = 1)r	�temp_cwdrPrQ�join�	importlib�util�cache_from_sourcer?�write�
py_compile�compiler4rB�assertIsNone)ro�test_dir�	init_path�cached_path�fobjrB�synopsis_cacheds       r$�"test_synopsis_sourceless_empty_docz/PydocDocTest.test_synopsis_sourceless_empty_doc�sk��
�
�
!�
!�		/�X�����X�}�=�=�I�#�.�:�:�9�E�E�K��i��%�%�
&���
�
�9�%�%�%�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&���y�)�)�)��~�i��4�4�H����h�'�'�'�#�n�[�"�=�=�O����o�.�.�.�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/�		/����		/�		/�		/�		/�		/�		/s7�AD�$B�:D�B
	�
D�
B
	�A+D�D
�
D
c�Z�d}|�tj|��d��dS)Nz#I Am A Doc


Here is my description)z
I Am A Docz
Here is my description)rvr4�splitdoc)ro�example_strings  r$�test_splitdoc_with_descriptionz+PydocDocTest.test_splitdoc_with_descriptions=��A��������7�7�C�	E�	E�	E�	E�	Er#c��tj��5}|�tj|����ddd��dS#1swxYwYdSri)r	rL�assertFalser4�	ispackage)rorUs  r$� test_is_package_when_not_packagez-PydocDocTest.test_is_package_when_not_packages���
�
�
!�
!�	8�X����U�_�X�6�6�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s�(A	�	A
�A
c�X�tj��5}tj�|d��}t|d�����|�tj	|����tj
|��ddd��dS#1swxYwYdS)N�__init__.pyr:)r	rLrPrQrMr?�close�
assertTruer4ra�remove)rorUrVs   r$�test_is_package_when_is_packagez,PydocDocTest.test_is_package_when_is_package
s���
�
�
!�
!�	!�X�����X�}�=�=�I���C� � �&�&�(�(�(��O�O�E�O�H�5�5�6�6�6��I�i� � � �		!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	!�	!s�A>B�B#�&B#c�
�Gd�dt��}ttt����}|j|d<|d=|d=|j|d<|j|d<t
j|��}|�||��dS)Nc��eZdZd�ZdS)�/PydocDocTest.test_allmethods.<locals>.TestClassc��dS)NTr"�ros r$�method_returning_truezEPydocDocTest.test_allmethods.<locals>.TestClass.method_returning_trues���tr#N)rrr rnr"r#r$�	TestClassrks#������
�
�
�
�
r#rornr!�	__class__�__subclasshook__�__init_subclass__)	r��dict�varsrnrqrrr4�
allmethods�assertDictEqual)roror��methodss    r$�test_allmethodszPydocDocTest.test_allmethodss���	�	�	�	�	��	�	�	�
��V���%�%��,5�,K��(�)��Y���[�!�(1�'A��#�$�(1�(C��$�%��"�9�-�-�����W�h�/�/�/�/�/r#c���Gd�d���G�fd�d���}tj|��}t|��}|�|dtz��tj|tj�����}dt�d�}t
|��}d	�|�d
��D��}|D]}|�||���dS)Nc� �eZdZdd�ZeZd�ZdS)�+PydocDocTest.test_method_aliases.<locals>.ANc��dS)z(Raise this widget in the stacking order.Nr")ro�	aboveThiss  r$�tkraisez3PydocDocTest.test_method_aliases.<locals>.A.tkraise-����r#c��dS)zReturn sizeNr"rms r$�a_sizez2PydocDocTest.test_method_aliases.<locals>.A.a_size0rr#ri)rrr r~�liftr�r"r#r$r�r{,s<������
?�
?�
?�
?��D�
"�
"�
"�
"�
"r#r�c�*��eZdZdd�ZeZ�jZdS)�+PydocDocTest.test_method_aliases.<locals>.BNc��dS)z'Configure resources of an item TAGORID.Nr")ro�tagOrId�cnf�kws    r$�
itemconfigurez9PydocDocTest.test_method_aliases.<locals>.B.itemconfigure3rr#ri)rrr r��
itemconfigr��b_size)r�s�r$r�r�2s/�������
>�
>�
>�
>�&�J��X�F�F�Fr#r�a�Python Library Documentation: class B in module %s

class B(A)
 |  Method resolution order:
 |      B
 |      A
 |      builtins.object
 |  
 |  Methods defined here:
 |  
 |  b_size = a_size(self)
 |  
 |  itemconfig = itemconfigure(self, tagOrId, cnf=None, **kw)
 |  
 |  itemconfigure(self, tagOrId, cnf=None, **kw)
 |      Configure resources of an item TAGORID.
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from A:
 |  
 |  a_size(self)
 |      Return size
 |  
 |  lift = tkraise(self, aboveThis=None)
 |  
 |  tkraise(self, aboveThis=None)
 |      Raise this widget in the stacking order.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from A:
 |  
 |  __dict__
 |      dictionary for instance variables
 |  
 |  __weakref__
 |      list of weak references to the object
��rendererz1
Python Library Documentation

class B in module a�
class B(A)
    Method resolution order:
        B
        A
        builtins.object

    Methods defined here:
        b_size = a_size(self)
        itemconfig = itemconfigure(self, tagOrId, cnf=None, **kw)
        itemconfigure(self, tagOrId, cnf=None, **kw)
            Configure resources of an item TAGORID.

    Methods inherited from A:
        a_size(self)
            Return size
        lift = tkraise(self, aboveThis=None)
        tkraise(self, aboveThis=None)
            Raise this widget in the stacking order.

    Data descriptors inherited from A:
        __dict__
            dictionary for instance variables
        __weakref__
            list of weak references to the object
c�:�g|]}|�|�����Sr"r�r�s  r$r�z4PydocDocTest.test_method_aliases.<locals>.<listcomp>�s&��U�U�U�4�PT�U�$�*�*�,�,�U�U�Ur#r1)	r4r�rMrvrrBrd�splitr�)ror�rFr��as_textr��
expected_liner�s       @r$�test_method_aliasesz PydocDocTest.test_method_aliases*s>���	"�	"�	"�	"�	"�	"�	"�	"�	�	�	�	�	�	�	��	�	�	���q�!�!����o�o������%�J�K%�%	�%	�%	�N��q�5�=�?�?�;�;�;�������
�:�C�.�.��U�U�=�3F�3F�t�3L�3L�U�U�U��+�	2�	2�M��M�M�-��1�1�1�1�	2�	2r#c��ddl}t|��\}}t|��\}}tt��\}}tt��\}}|jD]e}|�d�}d|�d�}	|�||��|�|	|��|�||��|�|	|���fdS)Nrz = _Featurez<strong>z</strong> = _Feature)�
__future__rWrIr�all_feature_namesr�r�)
ror��future_textr\�future_html�pydoc_mod_text�pydoc_mod_html�feature�txtrcs
          r$�test__future__importsz"PydocDocTest.test__future__imports�s���	����'�
�3�3���Q�'�
�3�3���Q�*�9�5�5����*�9�5�5����!�3�	3�	3�G��)�)�)�C�;�g�;�;�;�D��M�M�#�{�+�+�+��M�M�$��,�,�,����S�.�1�1�1����T�>�2�2�2�2�
	3�	3r#)+rrr r�unittest�skipIf�hasattrr�rrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr!r%r(r.r7rDrIrZr^rbrhrxr�r�r"r#r$r~r~�s �������G��X�_�W�W�S�*�-�-�@�,�#�,�.�.�H�J�J��
'�
'���J�J�
'��X�_�W�W�S�*�-�-�@�,�#�,�.�.�H�J�J��0�0���J�J�0�1�1�1�9�9�9�
Q�Q�Q�
'�'�'�
7�
7�
7�6�6�6��'�'���'�
+�+�+�:�:�:�%�%�%�>"�"�"�64�4�4�@6�6�6�8	6�	6�	6�-�-�-�Y�Y�Y��X�_�W�W�S�*�-�-�@�,�#�,�.�.�H�J�J�� *� *���J�J� *�D;�;�;�C�C�C�J�J�J�<�<�<�+�+�+�	8�	8�	8��-�-���-�
/�
/�
/�E�E�E�
8�8�8�!�!�!�0�0�0�2�W2�W2���W2�r3�3�3�3�3r#r~c��eZdZd�Zd�Zd�Zd�Zeje	j
ed��d�����Zd�Z
e	jd��d	���Ze	jd��d
���Ze	jd��d���Zd
�ZdS)�PydocImportTestc��tjt��|_|�t
t��t
j��dSri)rP�mkdirrrUr>rrN�invalidate_cachesrms r$�setUpzPydocImportTest.setUp�s<�����(�(��
������'�'�'��#�%�%�%�%�%r#c�B�d}dddd�|��dfd�|��d�|��ff}tj�t|��tjzdz}|D]�\}}t
|d	��5}|�d
�|����ddd��n#1swxYwYt|t����	d��}t||fz}|�||����dS)
N�
testmod_xyzzy)�
i_am_not_herer�)�test.i_am_not_here_eitherr�)ztest.i_am_not_here.neither_am_ir�zi_am_not_here.{}r�ztest.{}�pyr:z
import {}
)�
PYTHONPATHr�)rArPrQrMr�extsepr?rQr@r��badimport_patternrv)	ro�modname�	testpairs�sourcefn�importstring�
expectedinmsg�fryr�s	         r$�test_badimportzPydocImportTest.test_badimport�s^��"��.�F�E�
�
&�
&�w�
/�
/��A�
�
�
�g�
&�
&�	�(8�(8��(A�(A�B��	��7�<�<���0�0�2�9�<�t�C��+4�	/�	/�'�L�-��h��$�$�
<�����
�,�,�\�:�:�;�;�;�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<����
<�
<�
<�
<�#�G��?�?�?�F�F�w�O�O�F�(�G�]�+C�C�H����X�v�.�.�.�.�	/�	/s�)C�C	�C	c��tj�td��}tj|��tj�|d��tjzdz}t
|d��5}|�d��ddd��n#1swxYwY|�tg���5t��5}t��5}tjd��ddd��n#1swxYwYddd��n#1swxYwY|�
|���d��|�
|���d��t��5}t��5}tjd��ddd��n#1swxYwYddd��n#1swxYwY|�
|������d��|�
|���d��ddd��dS#1swxYwYdS)	N�	syntaxerr�__init__r�r:zinvalid python syntax = $1
�rQ�xyzzyr')rPrQrMrr�r�r?rQrsrrr4�aproposrvr�r6)ro�pkgdir�	badsyntaxr�r<r=s      r$�test_apropos_with_bad_packagez-PydocImportTest.test_apropos_with_bad_package�sZ������f�k�2�2��
�������G�L�L���4�4�r�y�@�4�G�	�
�)�S�
!�
!�	4�Q�
�G�G�2�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�
�
(�
(�v�h�
(�
7�
7�	1�	1� �"�"�
+�c�$�&�&�+�#��M�'�*�*�*�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+�
���S�\�\�^�^�R�0�0�0����S�\�\�^�^�R�0�0�0� �"�"�
/�c�$�&�&�/�#��M�+�.�.�.�/�/�/�/�/�/�/�/�/�/�/����/�/�/�/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/�
���S�\�\�^�^�1�1�3�3�[�A�A�A����S�\�\�^�^�R�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s��:B�B �#B �I�D�!D�6D�D�D�	D�
D�
I�D	�I� D	�!A!I�G	�F2�&G	�2F6�6G	�9F6�:G	�=I�	G
	�
I�G
	�A%I�I�
Ic��tj�td��|_tj|jd��|�tj|j��|�tg���5t��5}t��5}tjd��ddd��n#1swxYwYddd��n#1swxYwYddd��n#1swxYwY|�
|���d��|�
|���d��dS)N�
unreadablerr��SOMEKEYr')rPrQrMr�unreadable_dirr�r>�rmdirrsrrr4r�rvr�)ror<r=s   r$� test_apropos_with_unreadable_dirz0PydocImportTest.test_apropos_with_unreadable_dir�s��� �g�l�l�6�<�@�@���
���$�a�(�(�(������$�"5�6�6�6��
(�
(�v�h�
(�
7�
7�	-�	-� �"�"�
-�c�$�&�&�-�#��M�)�,�,�,�-�-�-�-�-�-�-�-�-�-�-����-�-�-�-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
	
���������,�,�,����������,�,�,�,�,sZ�C3�C�$C�9C�C	�	C�C	�
C�C3�C 	� C3�#C 	�$C3�3C7�:C7zcannot remove x bitc��tj�td��}tj|��|�t|��tj�|d��}t|d��5}|�d��ddd��n#1swxYwYtj
tj	|��j��}	tj||tj
z��|�tg���5t��5}t!jd��ddd��n#1swxYwYddd��n#1swxYwY|�d|�����tj||��dS#tj||��wxYw)N�walkpkgrdr:rKr�r')rPrQrMrr�r>rr?rQ�stat�S_IMODE�st_mode�chmod�S_IEXECrsrr4r�r�r�)ror�rVrX�current_moders      r$�test_apropos_empty_docz&PydocImportTest.test_apropos_empty_doc�s*������f�i�0�0��
�����������'�'�'��G�L�L���7�7�	�
�)�S�
!�
!�	"�T��J�J�y�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��|�B�G�F�O�O�$;�<�<��	+��H�V�\�T�\�M�9�:�:�:��,�,�6�(�,�;�;�
"�
"�_�=N�=N�
"�RX��
�b�!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"��M�M�)�V�_�_�%6�%6�7�7�7��H�V�\�*�*�*�*�*��B�H�V�\�*�*�*�*���sf�B'�'B+�.B+�?F.�E$�,E
�E$�
E	�E$�E	�E$�F.�$E(�(F.�+E(�,+F.�.Gc�:�tj�td��}tj|��tj�|d��}t|dd���5}|�d��ddd��n#1swxYwY|�tg���5ttj��}tj�
dt��	|�td	��5ddl
}ddd��n#1swxYwY|�d
d��}d}|�||��|tjdd�<n#|tjdd�<wxYw	ddd��dS#1swxYwYdS)
N�test_error_packagerd�wtr�r;zraise ValueError("ouch")
r�r�ouchzsearch?key=test_error_package�Pydoc: Search Resultsz8<a href="test_error_package.html">test_error_package</a>)rPrQrMrr�r?rQrs�tupler��insert�assertRaisesRegex�
ValueErrorr�rzr�)ror��initr��saved_pathsr�rZ�founds        r$�test_url_search_package_errorz-PydocImportTest.test_url_search_package_error�s9������f�&:�;�;��
�������w�|�|�F�M�2�2��
�$��w�
/�
/�
/�	6�1�
�G�G�4�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�
�
(�
(�v�h�
(�
7�
7�	*�	*����/�/�K��H�O�O�A�v�&�&�&�

*��+�+�J��?�?�.�.�-�-�-�-�.�.�.�.�.�.�.�.�.�.�.����.�.�.�.��,�,�-L�+�-�-��-���
�
�e�T�*�*�*�)���������k�������)�)�)�)��	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s`�,B�B�B�5?F�5E,�D!�E,�!D%	�%E,�(D%	�)1E,�F�,E?�?F�F�Fz(causes undesirable side-effects (#20128)c�8�d}d}d}||z|z}t��}tj|���}|d��|������}t|�����}|�||��dS)N���r��modules)rr4r�r�r6�lenr��assertGreaterEqual)	ro�num_header_lines�num_module_lines_min�num_footer_linesr�rGr�ry�	num_liness	         r$�test_moduleszPydocImportTest.test_modules�s����� ����#�&:�:�=M�M��������V�,�,�,����y�������"�"�(�(�*�*����)�)�+�+�,�,�	����	�8�4�4�4�4�4r#c��d}t��}tj|���}t��5}|d��ddd��n#1swxYwY|���}|�||��dS)Nzpydoc - r�z
modules pydoc)rr4r�rr�r��ror�rGr�rrys      r$�test_modules_searchz#PydocImportTest.test_modules_searchs�����������V�,�,�,��
�
�
�	$�'��F�?�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$��!�!�#�#���
�
�h��'�'�'�'�'��A�A�Az+some buildbots are not cooperating (#20128)c�*�d}t��}tj|���}t��5}|d��ddd��n#1swxYwY|���}|�|�|����dS)Nzgc - r�zmodules garbage)rr4r�rr�rf�
startswithr�s      r$�test_modules_search_builtinz+PydocImportTest.test_modules_search_builtins�����������V�,�,�,��
�
�
�	&�'��F�$�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&��!�!�#�#������)�)�(�3�3�4�4�4�4�4r�c�B�tjtj��}|�|t��|�|jd��|�|jtj��|�|jtj��dS)Nr4)r4�
importfiler5�assertIsNotrvr�__spec__)ro�loaded_pydocs  r$�test_importfilezPydocImportTest.test_importfile(s���'���7�7������u�-�-�-�����.��8�8�8�����.���?�?�?�����.���?�?�?�?�?r#N)rrr r�r�r�r�r	�skip_unless_working_chmodr�r�rr�r��skipr�r�r�r�r"r#r$r�r��s(������&�&�&�
/�/�/�*1�1�1�*
-�
-�
-��(��X�_�]�$9�:�:�+�+�;�:�)�(�+� *�*�*�.�X�]�=�>�>�
5�
5�?�>�
5��X�]�=�>�>�
(�
(�?�>�
(��X�]�@�A�A�	5�	5�B�A�	5�@�@�@�@�@r#r�c���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
d���Ze
d	���Zd
�Z
ed���Zd�Zd
�Zed���Zed���Zd�Zd�Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Z d�Z!d�Z"ed���Z#d S)!�TestDescriptionsc�d�tjt��}|�d|��dS)Nr)r4r�rr��rorFs  r$�test_modulezTestDescriptions.test_module3s,����{�+�+���
�
�m�S�)�)�)�)�)r#c�8�Gd�d��}|��}|�tj|��d��|�tj|��d��dtz}|�|tj|����dS)Nc��eZdZdZdS)�&TestDescriptions.test_class.<locals>.CzNew-style classNrr"r#r$�Cr�9s������"�"�"�"r#r�zclass CzC in module %s object)rvr4�describerr�r�)ror�rr�s    r$�
test_classzTestDescriptions.test_class8s���"�"�"�"�"�"�"�"�
�A�C�C��������*�*�I�6�6�6�������*�*�C�0�0�0�*�X�5���
�
�h�� 0�� 3� 3�4�4�4�4�4r#c��|�tjtjt
��d��tjtjt
tj���}|�d|��|�d|��tsJ|�tj����
��d|��|�tjtt
��d��tjtt
tj���}|�d|��|�d|��tsL|�tj����
��d|��dSdS)	N�
_GenericAliasr�z_GenericAlias in module typingzList = class list(object)r�GenericAliaszGenericAlias in module builtinsz
class list(object))rvr4r��typing�Listrr��	plaintextr�r�listr!r6r�r�s  r$�test_generic_aliasz#TestDescriptions.test_generic_aliasAsd���������C�(8�9�9�?�K�K�K���v�{�3�/�%�/�J�J�J���
�
�6��<�<�<��
�
�1�3�7�7�7�#�	E��M�M�$�,�,�,�.�.�9�9�;�;�A�>��D�D�D�������S�	�2�2�N�C�C�C���t�C�y�5�?�C�C�C���
�
�7��=�=�=��
�
�,�c�2�2�2�#�	E��M�M�$�,�,�,�.�.�9�9�;�;�A�>��D�D�D�D�D�	E�	Er#c���|�tjtjt
tf��d��tjtjt
tftj���}|�	d|��|�	d|��tjj
rO|�	tjj
������d|��|�tjt
tz��d��tjt
tztj���}|�	d|��|�	d|��tsQ|�	tjj
������d|��dSdS)	N�_UnionGenericAliasr�z#_UnionGenericAlias in module typingzUnion = typing.Unionr�	UnionTypez UnionType in module types objectz!
class UnionType(builtins.object))rvr4r�r�Unionrr�r�rr�r!r6r�r�typesr
r�s  r$�test_union_typez TestDescriptions.test_union_typePsx���������S�#�X�(>�?�?�AU�V�V�V���v�|�C��H�5���P�P�P���
�
�;�S�A�A�A��
�
�,�c�2�2�2��<��	M��M�M�&�,�.�4�4�6�6�A�A�C�C�A�F��L�L�L�������c�	�2�2�K�@�@�@���s�S�y�5�?�C�C�C���
�
�8�#�>�>�>��
�
�:�C�@�@�@�#�	P��M�M�%�/�1�7�7�9�9�D�D�F�F�q�I�3�O�O�O�O�O�	P�	Pr#c��|�tjtj��d��tjtjtj���}|�d|��tjjrg|�d|��|�tjj�	���
��d|��dS|�d|��dS)N�_SpecialFormr�z_SpecialForm in module typingzNoReturn = typing.NoReturnrz%NoReturn = class _SpecialForm(_Final))rvr4r�r�NoReturnr�rr�r!r6r�r�s  r$�test_special_formz"TestDescriptions.test_special_form_s����������8�8�.�I�I�I���v����I�I�I���
�
�5�s�;�;�;��?�"�	H��M�M�6��<�<�<��M�M�&�/�1�7�7�9�9�D�D�F�F�q�I�3�O�O�O�O�O��M�M�A�3�G�G�G�G�Gr#c	�X�dtjtjdtdtjtjttjffd�}tjd��}Gd�dtj|tjttf��}|�
tj|���
��dd	��|�
tj|���
��d
d��dS)N�datarrc��dSrir")rrs  r$�fooz/TestDescriptions.test_typing_pydoc.<locals>.foojs���Cr#�Tc��eZdZdS)�-TestDescriptions.test_typing_pydoc.<locals>.CNr�r"r#r$r�rns�������r#r����z?ffoooo(data: List[Any], x: int) -> Iterator[Tuple[int, Any]]r�z2class CC(collections.abc.Mapping, typing.Generic))rr�Anyr�Iterator�Tuple�TypeVar�Generic�Mappingr�rvr4r�r�)rorrr�s    r$�test_typing_pydocz"TestDescriptions.test_typing_pydocis��	�f�k�&�*�-�	��	�!�?�6�<��V�Z��+H�I�	�	�	�	�
�N�3����A�A�A�A�A���q�!�6�>�#�s�(�#;�A�A�A�����)�#�.�.�9�9�;�;�B�?�9�	:�	:�	:�	
����)�!�,�,�7�7�9�9�!�<�P�	R�	R�	R�	R�	Rr#c��dD]v}|�tj|����	tj|���?#t$r+|�d�|����Y�swxYwdD]O}|�tj|����|�ttj|���PdS)N)r�z
str.translatezbuiltins.strzbuiltins.str.translatezfinding the doc of {!r} failed)�notbuiltins�strrrzstrr.translatezstr.trrrranslatezbuiltins.strrrzbuiltins.str.trrranslate)	�assertIsNotNoner4�locater��ImportError�failrArT�assertRaises)ro�names  r$�test_builtinzTestDescriptions.test_builtinus���/�	I�	I�D�
� � ���d�!3�!3�4�4�4�
I�� ��&�&�&�&���
I�
I�
I��	�	�:�A�A�$�G�G�H�H�H�H�H�
I����1�	C�	C�D�
���e�l�4�0�0�1�1�1����k�5�+;�T�B�B�B�B�		C�	Cs�A�2A7�6A7c��tjtj|����}|�d��}|dS�Nr1r�)r4�plainr�r���orZ�liness   r$�_get_summary_linez"TestDescriptions._get_summary_line�s6���{�5�+�A�.�.�/�/���
�
�4� � ���Q�x�r#c��tjtj|����}|�d��}d�|dd���Sr,)r4r-r�r�rMr.s   r$�_get_summary_linesz#TestDescriptions._get_summary_lines�sG���{�5�+�A�.�.�/�/���
�
�4� � ���y�y��q�r�r��#�#�#r#c�v�|�|�tjj��d��dS)Nzwrap(self, text))rvr1r	�TextWrapper�wraprms r$�test_unbound_python_methodz+TestDescriptions.test_unbound_python_method�s=������/�/��0D�0I�J�J��	 �	 �	 �	 �	 r#c�v�|�|�tjj��d��dS)Nz1dump(self, obj, /) unbound _pickle.Pickler method)rvr1�_pickle�Pickler�dumprms r$�test_unbound_builtin_methodz,TestDescriptions.test_unbound_builtin_method�sA������/�/���0D�E�E�?�	A�	A�	A�	A�	Ar#c��tj��}|�|�|j��d��dS)Nz2wrap(text) method of textwrap.TextWrapper instance)r	r5rvr1r6)ro�ts  r$�test_bound_python_methodz)TestDescriptions.test_bound_python_method�sL��� �"�"������/�/���7�7�@�	B�	B�	B�	B�	Br#c���tdgd���}tj|��}|�|�d��|�d����|�|�d��|�d����Gd�d��}Gd�d	��}tj|��tj|��dS)
Nr*)r+r,�agegroupr+r,rAc��eZdZdZdS)�MTestDescriptions.test_field_order_for_named_tuples.<locals>.NonIterableFieldsN�rrr �_fieldsr"r#r$�NonIterableFieldsrC�s�������G�G�Gr#rFc��eZdZggZdS)�MTestDescriptions.test_field_order_for_named_tuples.<locals>.NonHashableFieldsNrDr"r#r$�NonHashableFieldsrH�s�������d�G�G�Gr#rI)rr4r��
assertLess�index)ror*r+rFrIs     r$�!test_field_order_for_named_tuplesz2TestDescriptions.test_field_order_for_named_tuples�s����H�&K�&K�&K�L�L����V�$�$��������
�+�+�Q�W�W�[�-A�-A�B�B�B��������,�,�a�g�g�j�.A�.A�B�B�B�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	��*�+�+�+�
��*�+�+�+�+�+r#c��t��}tj|��}|�|�|j��d��dS)Nz/dump(obj, /) method of _pickle.Pickler instance)rr9r:rvr1r;)ror+�ps   r$�test_bound_builtin_methodz*TestDescriptions.test_bound_builtin_method�sQ���J�J���O�A��������/�/���7�7�=�	?�	?�	?�	?�	?r#c�l�|�|�tj��d��dS)Nz0stat(path, *, dir_fd=None, follow_symlinks=True))rvr1rPr�rms r$�test_module_level_callablez+TestDescriptions.test_module_level_callable�s>������/�/���8�8�>�	@�	@�	@�	@�	@r#c�l�|�|�tj��d��dS)Nz*lower(self, /) unbound builtins.str method)rvr1r��lowerrms r$�"test_unbound_builtin_method_noargsz3TestDescriptions.test_unbound_builtin_method_noargs�s9������/�/��	�:�:�8�	:�	:�	:�	:�	:r#c�b�|�|�dj��d��dS)Nr'z'lower() method of builtins.str instance)rvr1rSrms r$� test_bound_builtin_method_noargsz1TestDescriptions.test_bound_builtin_method_noargs�s9������/�/���9�9�5�	7�	7�	7�	7�	7r#c�X�Gd�d��}|�|�|jd��d��|�|�|j��d��|�dtjtj|������dS)Nc�$�eZdZed���ZdS)�-TestDescriptions.test_staticmethod.<locals>.Xc��dS)zA static methodNr"�r�ys  r$�smz0TestDescriptions.test_staticmethod.<locals>.X.sm��	���r#N)rrr �staticmethodr]r"r#r$�XrY�s-������
�
�
��\�
�
�
r#r`r]zsm(x, y)
    A static method
zL
 |  Static methods defined here:
 |  
 |  sm(x, y)
 |      A static method
)rvr3�__dict__r]r�r4r-r��ror`s  r$�test_staticmethodz"TestDescriptions.test_staticmethod�s���	�	�	�	�	�	�	�	�
	
����0�0���D�1A�B�B�1�	2�	2�	2�	
����0�0���6�6�9�	�	�	�	
�
�
��
�[��!�!�$�$�%�%�	'�	'�	'�	'�	'r#c�X�Gd�d��}|�|�|jd��d��|�|�|j��d��|�dtjtj|������dS)Nc�$�eZdZed���ZdS)�,TestDescriptions.test_classmethod.<locals>.Xc��dS)zA class methodNr")�clsrs  r$�cmz/TestDescriptions.test_classmethod.<locals>.X.cm�r^r#N)rrr �classmethodrir"r#r$r`rf�s-������
�
�
��[�
�
�
r#r`rizcm(...)
    A class method
zFcm(x) class method of test.test_pydoc.test_pydoc.X
    A class method
zG
 |  Class methods defined here:
 |  
 |  cm(x)
 |      A class method
)rvr3rarir�r4r-r�rbs  r$�test_classmethodz!TestDescriptions.test_classmethod�s���	�	�	�	�	�	�	�	�
	
����0�0���D�1A�B�B�0�	1�	1�	1�	
����0�0���6�6�9�	�	�	�	
�
�
��
�[��!�!�$�$�%�%�	'�	'�	'�	'�	'r#c��|�|�tj��d��|�|�tj��d��|�|�tj��d��|�|�tj	��d��dS)N�	numerator�realr9�obj)
rvr1rrm�floatrnr�r9�
memoryviewrorms r$�test_getset_descriptorz'TestDescriptions.test_getset_descriptor�s���	
����/�/��
�>�>��L�L�L�����/�/��
�;�;�V�D�D�D�����/�/�	��?�?��H�H�H�����/�/�
��?�?��G�G�G�G�Gr#c��|�|�tj��d��|�|�tj��d��|�|�tj��d��|�|�tj��d��|�|�tj
��d��dS)Nrn�start�fget�value)rvr1�complexrn�rangert�slice�propertyru�
StopIterationrvrms r$�test_member_descriptorz'TestDescriptions.test_member_descriptor�s���	
����/�/���=�=�v�F�F�F�����/�/���<�<�g�F�F�F�����/�/���<�<�g�F�F�F�����/�/��
�>�>��G�G�G�����/�/�
�0C�D�D�g�N�N�N�N�Nr#c�|�Gd�d��}|�|�|j��d��dS)Nc��eZdZdZdS)�4TestDescriptions.test_slot_descriptor.<locals>.Pointr[N)rrr �	__slots__r"r#r$�Pointrs������ �I�I�Ir#r�r)rvr1r)ror�s  r$�test_slot_descriptorz%TestDescriptions.test_slot_descriptorsV��	!�	!�	!�	!�	!�	!�	!�	!�����/�/���8�8�#�>�>�>�>�>r#c��Gd�d��}|�|�|jd��d��dS)Nc��eZdZdS)�6TestDescriptions.test_dict_attr_descriptor.<locals>.NSNr�r"r#r$�NSr�r�r#r�ra)rvr1ra)ror�s  r$�test_dict_attr_descriptorz*TestDescriptions.test_dict_attr_descriptor
sf��	�	�	�	�	�	�	�	�����/�/���J�0G�H�H�#�	%�	%�	%�	%�	%r#c�.�|�|�ttj��j��d��|�|�ttj��j��d��|�|�ttj��j	��d��|�|�ttj
��j��d��dS)N�width�debug�major�max)rvr1r�r��	hash_infor��flagsr��version_infor��
float_infor�rms r$� test_structseq_member_descriptorz1TestDescriptions.test_structseq_member_descriptors�������/�/��S�]�0C�0C�0I�J�J� �	"�	"�	"�����/�/��S�Y���0E�F�F� �	"�	"�	"�����/�/��S�5E�0F�0F�0L�M�M� �	"�	"�	"�����/�/��S�^�0D�0D�0H�I�I��	 �	 �	 �	 �	 r#c��tdd��}|�|�|j��d��dS)N�Box)r��heightz    Alias for field number 0
)rrvr3r�)ror�s  r$� test_namedtuple_field_descriptorz1TestDescriptions.test_namedtuple_field_descriptorsK���� 3�4�4������0�0���;�;�>�	�	�	�	�	r#c���Gd�d��}|�|�|j��d��|�dt	jt	j|������dS)Nc�$�eZdZed���ZdS)�,TestDescriptions.test_property.<locals>.Rectc� �|j|jzS)zArea of the rect)r:�hrms r$�areaz1TestDescriptions.test_property.<locals>.Rect.area&s���v����&r#N)rrr rzr�r"r#r$�Rectr�%s-������
�
'�
'��X�
'�
'�
'r#r�z    Area of the rect
z#
 |  area
 |      Area of the rect
)rvr3r�r�r4r-r�)ror�s  r$�
test_propertyzTestDescriptions.test_property#s���	'�	'�	'�	'�	'�	'�	'�	'�	
����0�0���;�;�>�	�	�	�	
�
�
���[��!�$�'�'�(�(�	*�	*�	*�	*�	*r#c���Gd�d���G�fd�d��}|�|�|j��dt�d���d|j_|�|�|j��dt�d���d	|j_|�|�|j��d
��dS)Nc��eZdZd�ZdS)�?TestDescriptions.test_custom_non_data_descriptor.<locals>.Descrc��|�|SdS�Nr�r"�rororhs   r$�__get__zGTestDescriptions.test_custom_non_data_descriptor.<locals>.Descr.__get__6����;��K��rr#N)rrr r�r"r#r$�Descrr�5s#������
�
�
�
�
r#r�c�$��eZdZ���ZdS)�;TestDescriptions.test_custom_non_data_descriptor.<locals>.XN�rrr �attr�r�s�r$r`r�:���������5�7�7�D�D�Dr#r`rbzH.TestDescriptions.test_custom_non_data_descriptor.<locals>.Descr object>�Custom descriptorz_.TestDescriptions.test_custom_non_data_descriptor.<locals>.Descr object>
    Custom descriptor
rzfoo(...)
    Custom descriptor
)rvr3r�rr!�ror`r�s  @r$�test_custom_non_data_descriptorz0TestDescriptions.test_custom_non_data_descriptor3s7���	�	�	�	�	�	�	�	�
	�	�	�	�	�	�	�	�	�	�	
����0�0���8�8�;W�
�;W�;W�;W�	X�	X�	X�-��������0�0���8�8�;�
�;�;�;�	�	�	�
 ��������0�0���8�8�;�	�	�	�	�	r#c���Gd�d���G�fd�d��}|�|�|j��d��d|j_|�|�|j��d��d|j_|�|�|j��d	��dS)
Nc��eZdZd�Zd�ZdS)�;TestDescriptions.test_custom_data_descriptor.<locals>.Descrc��|�|SdSr�r"r�s   r$r�zCTestDescriptions.test_custom_data_descriptor.<locals>.Descr.__get__Or�r#c��ddzdS)Nr�rr"r�s   r$�__set__zCTestDescriptions.test_custom_data_descriptor.<locals>.Descr.__set__Ss���!����r#N)rrr r�r�r"r#r$r�r�Ns2������
�
�
�
�
�
�
�
r#r�c�$��eZdZ���ZdS)�7TestDescriptions.test_custom_data_descriptor.<locals>.XNr�r�s�r$r`r�Ur�r#r`r'r�z    Custom descriptor
rzfoo
    Custom descriptor
)rvr3r�r!rr�s  @r$�test_custom_data_descriptorz,TestDescriptions.test_custom_data_descriptorLs���	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	
����0�0���8�8�"�=�=�=�,��������0�0���8�8�;�	�	�	� ��������0�0���8�8�;�	�	�	�	�	r#c�"�dtfd�}tjtj�|����}|�d|��tj���|��}|�d|��dS)Nrc��
K�dSrr")�igns r$�
coro_functionz=TestDescriptions.test_async_annotation.<locals>.coro_functionfs�����1r#zasync coro_functionz4async <a name="-coro_function"><strong>coro_function)rr4r-r�documentr�rB)ror�rZrcs    r$�test_async_annotationz&TestDescriptions.test_async_annotationes���	��	�	�	�	��{�5�?�3�3�M�B�B�C�C���
�
�+�T�2�2�2��}���'�'�
�6�6���
�
�B��	�	�	�	�	r#c��d�}tjtj�|����}|�d|��tj���|��}|�d|��dS)Nc�K�dWV�dSrr"r"r#r$�an_async_generatorzLTestDescriptions.test_async_generator_annotation.<locals>.an_async_generatorrs�����G�G�G�G�G�Gr#zasync an_async_generatorz>async <a name="-an_async_generator"><strong>an_async_generator)r4r-rr�r�rB)ror�rZrcs    r$�test_async_generator_annotationz0TestDescriptions.test_async_generator_annotationqs���	�	�	��{�5�?�3�3�4F�G�G�H�H���
�
�0�$�7�7�7��}���'�'�(:�;�;���
�
�L��	�	�	�	�	r#c��d�}tj���|��}|�d|��dS)Nc��dS)za link https://localhost/Nr"r"r#r$�a_fn_with_https_linkzHTestDescriptions.test_html_for_https_links.<locals>.a_fn_with_https_links���Dr#z3<a href="https://localhost/">https://localhost/</a>)r4rBr�r�)ror�rcs   r$�test_html_for_https_linksz*TestDescriptions.test_html_for_https_links}sS��	�	�	��}���'�'�(<�=�=���
�
�A��	
�	
�	
�	
�	
r#N)$rrr r�r�rr
rr r*r_r1r3r7rr<r?rLrOrQrTrVrcrkrrr|r�r�r�r�r�r�r�r�r�r�r"r#r$r�r�1s�������*�*�*�
5�5�5�
E�
E�
E�
P�
P�
P�H�H�H�
R�
R�
R�C�C�C�"����\���$�$��\�$� � � ��A�A���A�
B�B�B�,�,�,� �?�?���?��@�@���@�:�:�:�7�7�7��'�'���'�(�'�'���'�(�H�H���H��O�O���O��?�?���?�
�%�%���%�� � ��� ��������
*�
*���
*�������0������0
�
�
�
�
�
��	
�	
���	
�	
�	
r#r�c�T�eZdZd�Zejfd�Zejfd�Zd�Zd�Z	d�Z
d�ZdS)	�PydocFodderTestc��|���}d\}}|�|�|��}|�|�||��}|||�S)N)rN)r�rK)rorZ�	beginline�endliner0�
beginindex�endindexs       r$�
getsectionzPydocFodderTest.getsection�s[�����!�!��&��
�H�� ����Y�/�/�J����{�{�7�J�7�7�H��Z��(�)�)r#c�$�tj��}|�|��}t|��}|tjurdnd}|�|d|�d�d��}|�d|��|�d|��|�d|��|�d	|��|�d
|��|�d|��|�d|��|�d
|��|�d|��|�|d|�d�d��}|�d|��|tjurdnd}|�d|z|��|�d|��|�d|��|�d|��|�|d|�d�d��}|�d|��|�d|��dS)N�defined here�inherited from Bz |  Methods �:zJ |  ----------------------------------------------------------------------z# |  A_method_alias = A_method(self)z# |  B_method_alias = B_method(self)z; |  A_staticmethod(x, y) from test.test_pydoc.pydocfodder.Az/ |  A_staticmethod_alias = A_staticmethod(x, y)z6 |  global_func(x, y) from test.test_pydoc.pydocfodderz) |  global_func_alias = global_func(x, y)zL |  global_func2_alias = global_func2(x, y) from test.test_pydoc.pydocfodderz* |  __repr__(self, /) from builtins.objectz# |  object_repr = __repr__(self, /)z |  Static methods zV |  A_classmethod_ref = A_classmethod(x) class method of test.test_pydoc.pydocfodder.Ar'�. class method of test.test_pydoc.pydocfodder.Bz( |  B_classmethod_ref = B_classmethod(x)zN |  A_method_ref = A_method() method of test.test_pydoc.pydocfodder.A instancez> |  get(key, default=None, /) method of builtins.dict instancezI |  dict_get = get(key, default=None, /) method of builtins.dict instancez |  Class methods z |  B_classmethod(x)z* |  B_classmethod_alias = B_classmethod(x))r4rTr�rMrr�r�r��rorhrFry�wherer0�notes       r$�test_text_doc_routines_in_classz/PydocFodderTest.test_text_doc_routines_in_class�s���m�o�o�����c�"�"���F�#�#��"%���"6�"6���<N������(?�u�(?�(?�(?��Q�Q���
�
�;�U�C�C�C��
�
�;�U�C�C�C��
�
�S�UZ�[�[�[��
�
�G��O�O�O��
�
�N�PU�V�V�V��
�
�A�5�I�I�I��
�
�d�fk�l�l�l��
�
�B�E�J�J�J��
�
�;�U�C�C�C�����(F�e�(F�(F�(F��X�X���
�
�n�pu�v�v�v��K�M�)�)�r�r�/_���
�
�@�4�G��O�O�O��
�
�f�hm�n�n�n��
�
�V�X]�^�^�^��
�
�a�ch�i�i�i�����(E�U�(E�(E�(E��W�W���
�
�,�e�4�4�4��
�
�B�E�J�J�J�J�Jr#c���tj��}|�|��}t|��}|tjurdnd}|�|d|�d�d��}|�d|��|�d|��|�d|��|�d	|��|�d
|��|�d|��|�d|��|�d
|��|�d|��|�|d|�d�d��}|�d|��|tjurdnd}|�d|z|��|�d|��|�|d|�d�d��}|�d|��|�d|��dS)Nr�r�zMethods r�r`zA_method_alias = A_method(self)zB_method_alias = B_method(self)z7A_staticmethod(x, y) from test.test_pydoc.pydocfodder.Az+A_staticmethod_alias = A_staticmethod(x, y)z2global_func(x, y) from test.test_pydoc.pydocfodderz%global_func_alias = global_func(x, y)zHglobal_func2_alias = global_func2(x, y) from test.test_pydoc.pydocfodderz&__repr__(self, /) from builtins.objectzobject_repr = __repr__(self, /)zStatic methods zRA_classmethod_ref = A_classmethod(x) class method of test.test_pydoc.pydocfodder.Ar'r�z$B_classmethod_ref = B_classmethod(x)zJA_method_ref = A_method() method of test.test_pydoc.pydocfodder.A instancezClass methods zB_classmethod(x)z&B_classmethod_alias = B_classmethod(x))r4rBr�rdrr�r�r�r�s       r$�test_html_doc_routines_in_classz/PydocFodderTest.test_html_doc_routines_in_class�s����m�o�o�����c�"�"���6�"�"��"%���"6�"6���<N������(;�5�(;�(;�(;�V�D�D���
�
�7��?�?�?��
�
�7��?�?�?��
�
�O�QV�W�W�W��
�
�C�U�K�K�K��
�
�J�E�R�R�R��
�
�=�u�E�E�E��
�
�`�bg�h�h�h��
�
�>��F�F�F��
�
�7��?�?�?�����(B�%�(B�(B�(B�F�K�K���
�
�j�lq�r�r�r��K�M�)�)�r�r�/_���
�
�<�t�C�U�K�K�K��
�
�b�di�j�j�j�����(A��(A�(A�(A�6�J�J���
�
�(�%�0�0�0��
�
�>��F�F�F�F�Fr#c�D�|�tj��dSri)r�r�Drms r$�)test_text_doc_inherited_routines_in_classz9PydocFodderTest.test_text_doc_inherited_routines_in_class�����,�,�[�]�;�;�;�;�;r#c�D�|�tj��dSri)r�rr�rms r$�)test_html_doc_inherited_routines_in_classz9PydocFodderTest.test_html_doc_inherited_routines_in_class�r�r#c�@�tj��}|�t��}t	|��}|�|dd��}|�d|��|�d|��|�d|��|�d|��|�d|��|�d|��|�d	|��|�d
|��|�d|��|�d|��|�d
|��|�d|��|�d|��|�d|��|�d|��dS)N�	FUNCTIONS�FILEz)    global_func_alias = global_func(x, y)z    A_staticmethod(x, y)z/    A_staticmethod_alias = A_staticmethod(x, y)z&    A_classmethod(x) class method of Az7    A_classmethod2 = A_classmethod(x) class method of Az7    A_classmethod3 = A_classmethod(x) class method of Bz#    A_method() method of A instancez/    A_method2 = A_method() method of A instancez/    A_method3 = A_method() method of B instancez-    A_staticmethod_ref = A_staticmethod(x, y)z@    A_staticmethod_ref2 = A_staticmethod(y) method of B instancez>    get(key, default=None, /) method of builtins.dict instancezI    dict_get = get(key, default=None, /) method of builtins.dict instancez    B_method(self)z    B_method2 = B_method(self))r4rTrCrrMr�r��rorFryr0s    r$� test_text_doc_routines_in_modulez0PydocFodderTest.test_text_doc_routines_in_module�s����m�o�o�����{�+�+���F�#�#�������V�<�<���
�
�A�5�I�I�I��
�
�0�%�8�8�8��
�
�G��O�O�O��
�
�>��F�F�F��
�
�O�QV�W�W�W��
�
�O�QV�W�W�W��
�
�;�U�C�C�C��
�
�G��O�O�O��
�
�G��O�O�O��
�
�E�u�M�M�M��
�
�X�Z_�`�`�`��
�
�V�X]�^�^�^��
�
�a�ch�i�i�i��
�
�*�E�2�2�2��
�
�6��>�>�>�>�>r#c�@�tj��}|�t��}t	|��}|�|dd��}|�d|��|�d|��|�d|��|�d|��|�d|��|�d|��|�d|��|�d	|��|�d
|��|�d|��|�d|��|�d
|��|�d|��|�d|��|�d|��dS)Nz
 Functionsz& global_func_alias = global_func(x, y)z A_staticmethod(x, y)z, A_staticmethod_alias = A_staticmethod(x, y)z"A_classmethod(x) class method of Az4 A_classmethod2 = A_classmethod(x) class method of Az4 A_classmethod3 = A_classmethod(x) class method of Bz  A_method() method of A instancez, A_method2 = A_method() method of A instancez, A_method3 = A_method() method of B instancez* A_staticmethod_ref = A_staticmethod(x, y)z= A_staticmethod_ref2 = A_staticmethod(y) method of B instancez; get(key, default=None, /) method of builtins.dict instancezF dict_get = get(key, default=None, /) method of builtins.dict instancez B_method(self)z B_method2 = B_method(self))r4rBrCrrdr�r�r�s    r$� test_html_doc_routines_in_modulez0PydocFodderTest.test_html_doc_routines_in_module�s����m�o�o�����{�+�+���6�"�"�������d�;�;���
�
�>��F�F�F��
�
�-�u�5�5�5��
�
�D�e�L�L�L��
�
�:�E�B�B�B��
�
�L�e�T�T�T��
�
�L�e�T�T�T��
�
�8�%�@�@�@��
�
�D�e�L�L�L��
�
�D�e�L�L�L��
�
�B�E�J�J�J��
�
�U�W\�]�]�]��
�
�S�UZ�[�[�[��
�
�^�`e�f�f�f��
�
�'��/�/�/��
�
�3�U�;�;�;�;�;r#N)rrr r�rr�r�r�r�r�r�r�r"r#r$r�r��s�������*�*�*�3>�-�K�K�K�K�83>�-�G�G�G�G�4<�<�<�<�<�<�?�?�?�2<�<�<�<�<r#r�z/Socket server not available on Emscripten/WASI.c��eZdZdZd�ZdS)�PydocServerTestzTests for pydoc._start_serverc	�d��d�}tj|dd����|��jd��|��j��|��fd���|�d�j��|�t��|�dttj�
�jd���������|�dttj�
�jd	�������������|��j��|��j��|��j��dS)
Nc��d|�d|�d�}|S)Nzthe URL sent was: (z, �)r")rw�content_typerZs   r$�my_url_handlerz3PydocServerTest.test_server.<locals>.my_url_handlers���36�3�3����E�D��Kr#�	localhostr)�hostname�portc�>���jr����ndSri)�serving�stop)�serverthreads�r$rz-PydocServerTest.test_server.<locals>.<lambda>s ���<�+?�I�L�%�%�'�'�'�T�r#s$the URL sent was: (/test, text/html)z/tests'the URL sent was: (/test.css, text/css)z	/test.css)r4�
_start_serverrv�errorrfr�r>r�rwrrr�r��urljoin�readr�r`rT�	docserver)ror�r�s  @r$�test_serverzPydocServerTest.test_servers����	�	�	��*�� ������
	
����+�T�2�2�2�����,�-�-�-����I�I�I�I�	�	�	�	
�
�
�k�<�#3�4�4�4����
�#�#�#����3��F�L�(�(��)9�7�C�C�D�D�I�I�K�K�	�	�	�	
���6��F�L�(�(��)9�;�G�G�H�H�M�M�O�O�	�	�	�
	����������-�.�.�.����,�0�1�1�1����,�*�+�+�+�+�+r#N)rrr r!r�r"r#r$r�r�s+������
(�'� ,� ,� ,� ,� ,r#r�c��eZdZdZd�Zd�ZdS)�PydocUrlHandlerTestzTests for pydoc._url_handlerc��tj}|�t|dd��|�t|dd��dS)Nr�r'r��foobar)r4rur(�	TypeError)ror�s  r$�test_content_type_errz)PydocUrlHandlerTest.test_content_type_err1sD��������)�Q��R�0�0�0����)�Q��X�6�6�6�6�6r#c��gd�}|���5|D]\}}|�||���	ddd��dS#1swxYwYdS)N))r'�Pydoc: Index of Modules)zget?key=r)rKr)�topicsz
Pydoc: Topics)�keywordszPydoc: Keywords)r4�Pydoc: module pydoc)z
get?key=pydocr)zsearch?key=pydocr�)z
topic?key=defzPydoc: KEYWORD def)ztopic?key=STRINGSzPydoc: TOPIC STRINGS)r�zPydoc: Error - foobar)rsrz)ro�requestsrwr]s    r$�test_url_requestsz%PydocUrlHandlerTest.test_url_requests6s��������
(�
(�
*�
*�	2�	2�&�
2�
2�
��U��%�%�c�5�1�1�1�1�
2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s�A�A
�
A
N)rrr r!rrr"r#r$r�r�.s8������&�&�7�7�7�
2�2�2�2�2r#r�c��eZdZd�ZdS)�
TestHelperc��|�ttjj��tt
j����dSri)rv�sortedr4r�r�keyword�kwlistrms r$�
test_keywordszTestHelper.test_keywordsNs@�������� 5�6�6����/�/�	1�	1�	1�	1�	1r#N)rrr rr"r#r$r	r	Ms#������1�1�1�1�1r#r	c���eZdZejeed��oej��d��ed�����Z	ejeed��oej��d��ed�����Z
ejeed��oej��d��ed�����Zejeed��oej��d��ed�����Zd�Z
dS)	�PydocWithMetaClassesrr�c��Gd�dt��}Gd�d|���}td�tD����}t��}t	j|���}||��ttf|dd�zz}|����	��}|�
||��dS)	Nc���eZdZ�fd�Z�xZS)�=PydocWithMetaClasses.test_DynamicClassAttribute.<locals>.Metac�V��|dkrdSt���|��S)N�ham�spam��super�__getattr__�ror)rps  �r$rzIPydocWithMetaClasses.test_DynamicClassAttribute.<locals>.Meta.__getattr__Ys)����5�=�=�!�6��w�w�*�*�4�0�0�0r#)rrr r�
__classcell__�rps@r$�MetarXs8�������
1�
1�
1�
1�
1�
1�
1�
1�
1r#rc�.�eZdZejd���ZdS)�;PydocWithMetaClasses.test_DynamicClassAttribute.<locals>.DAc��dS)N�eggsr"rms r$rz?PydocWithMetaClasses.test_DynamicClassAttribute.<locals>.DA.ham^s���vr#N)rrr r�DynamicClassAttributerr"r#r$�DAr]s1������
�
(�
�
�)�
(�
�
�
r#r#��	metaclassc3�(K�|]
}|rd|zndV��dS)z	
 |      r'Nr"r)s  r$r,zBPydocWithMetaClasses.test_DynamicClassAttribute.<locals>.<genexpr>asO����.I�.I�*+�CD�.K�l�Q�.>�.>��.I�.I�.I�.I�.I�.Ir#r�r�)r�r��expected_data_docstringsrr4r��!expected_dynamicattribute_patternrr�r6rv)rorr#r�rGr�r�rys        r$�test_DynamicClassAttributez/PydocWithMetaClasses.test_DynamicClassAttributeTs��	1�	1�	1�	1�	1�4�	1�	1�	1�
	�	�	�	�	�4�	�	�	�	�).�.I�.I�/G�.I�.I�.I�)I�)I�%�������V�,�,�,����r�
�
�
�9���;�B�Q�B�?�?�A�
����"�"�(�(�*�*�������/�/�/�/�/r#c�<�Gd�dt��}Gd�d|���}t��}tj|���}||��tt
z}|������}|�||��dS)Nc�$��eZdZd�Z�fd�Z�xZS)�HPydocWithMetaClasses.test_virtualClassAttributeWithOneMeta.<locals>.Metac�
�gd�S)N)rprr�LIFEr"�rhs r$�__dir__zPPydocWithMetaClasses.test_virtualClassAttributeWithOneMeta.<locals>.Meta.__dir__ps��F�F�F�Fr#c�V��|dkrdSt���|��S)Nr.r�)r�_Meta__getattrrs  �r$rzTPydocWithMetaClasses.test_virtualClassAttributeWithOneMeta.<locals>.Meta.__getattr__rs)����&�=�=��2��w�w�(�(��.�.�.r#�rrr r0rrrs@r$rr,osJ�������
G�
G�
G�
/�
/�
/�
/�
/�
/�
/�
/�
/r#rc��eZdZdS)�IPydocWithMetaClasses.test_virtualClassAttributeWithOneMeta.<locals>.ClassNr�r"r#r$�Classr5vr�r#r6r$r�)	r�rr4r��"expected_virtualattribute_pattern1rr�r6rv)rorr6rGr�r�rys       r$�%test_virtualClassAttributeWithOneMetaz:PydocWithMetaClasses.test_virtualClassAttributeWithOneMetaks���	/�	/�	/�	/�	/�4�	/�	/�	/�	�	�	�	�	�d�	�	�	�	�������V�,�,�,����u�
�
�
�:�X�E�
����"�"�(�(�*�*�������/�/�/�/�/r#c��
��Gd�dt���
Gd�dt���G�
�fd�d�
���}Gd�d�
�	��}Gd
�d||�	��}t��}tj|���}||��tt
z}|������}|�||��t��}tj|���}||��tt
z}|������}	|�||	��dS)
Nc�$��eZdZd�Z�fd�Z�xZS)�IPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta1c�
�gd�S)N)rprrr�r"r/s r$r0zQPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta1.__dir__����E�E�E�Er#c�V��|dkrdSt���|��S)Nr�r�rrs  �r$rzUPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta1.__getattr__��)����%�<�<��1��w�w�*�*�4�0�0�0r#r3rs@r$�Meta1r;��J�������
F�
F�
F�
1�
1�
1�
1�
1�
1�
1�
1�
1r#r@c�$��eZdZd�Z�fd�Z�xZS)�IPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta2c�
�gd�S)N)rprr�twor"r/s r$r0zQPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta2.__dir__�r=r#c�V��|dkrdSt���|��S)NrEr�rrs  �r$rzUPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta2.__getattr__�r?r#r3rs@r$�Meta2rC�rAr#rGc�,���eZdZ��fd�Z�fd�Z�xZS)�IPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta3c
���tttgd���|��z��|��z������S)N)rprr�three)rr�setr0)rhr@rGs ��r$r0zQPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta3.__dir__�s^����F�3�D�D�D��M�M�#�&�&�'�).���s�);�);�<�$=�$=�>�>�?�?�?r#c�V��|dkrdSt���|��S)NrKr�rrs  �r$rzUPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Meta3.__getattr__�s)����'�>�>��1��w�w�*�*�4�0�0�0r#r3)rpr@rGs@��r$�Meta3rI�sW��������
?�
?�
?�
?�
?�
?�
1�
1�
1�
1�
1�
1�
1�
1�
1r#rNc��eZdZdS)�JPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Class1Nr�r"r#r$�Class1rP�r�r#rQr$c��eZdZdS)�JPydocWithMetaClasses.test_virtualClassAttributeWithTwoMeta.<locals>.Class2Nr�r"r#r$�Class2rS�r�r#rTr�)
r�rr4r��"expected_virtualattribute_pattern2rr�r6rv�"expected_virtualattribute_pattern3)rorNrQrTrGr��expected_text1�result1�expected_text2�result2r@rGs          @@r$�%test_virtualClassAttributeWithTwoMetaz:PydocWithMetaClasses.test_virtualClassAttributeWithTwoMetas�����	1�	1�	1�	1�	1�D�	1�	1�	1�	1�	1�	1�	1�	1�D�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�E�5�	1�	1�	1�	�	�	�	�	�u�	�	�	�	�	�	�	�	�	�V�u�	�	�	�	�������V�,�,�,����v����;�h�F���/�/�#�#�)�)�+�+�������1�1�1�������V�,�,�,����v����;�h�F���/�/�#�#�)�)�+�+�������1�1�1�1�1r#c�<�Gd�dt��}Gd�d|���}t��}tj|���}||��tt
z}|������}|�||��dS)Nc��eZdZd�ZdS)�.PydocWithMetaClasses.test_buggy_dir.<locals>.Mc�
�gd�S)N)rpr�missing�herer"r/s r$r0z6PydocWithMetaClasses.test_buggy_dir.<locals>.M.__dir__�s��C�C�C�Cr#N)rrr r0r"r#r$�Mr^�s(������
D�
D�
D�
D�
Dr#rbc��eZdZdZdS)�.PydocWithMetaClasses.test_buggy_dir.<locals>.Czpresent!N)rrr rar"r#r$r�rd�s�������D�D�Dr#r�r$r�)	r�rr4r��!expected_missingattribute_patternrr�r6rv)rorbr�rGr�r�rys       r$�test_buggy_dirz#PydocWithMetaClasses.test_buggy_dir�s���	D�	D�	D�	D�	D��	D�	D�	D�	�	�	�	�	�!�	�	�	�	�������V�,�,�,����q�	�	�	�9�H�D�
����"�"�(�(�*�*�������/�/�/�/�/r#c���t��5}tjd��ddd��n#1swxYwY|���}|�d|��dS)Nz	enum.Enumz
class Enum)rr4r�r�r�)rorr s   r$�test_resolve_falsez'PydocWithMetaClasses.test_resolve_false�s����
�
�	$�'��J�{�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$��#�#�%�%���
�
�l�H�-�-�-�-�-s�0�4�4N)rrr r�r�r�r�rrr)r8r[rfrhr"r#r$rrSs��������X�_�W�W�S�*�-�-�@�,�#�,�.�.�H�J�J��0�0���J�J�0�(�X�_�W�W�S�*�-�-�@�,�#�,�.�.�H�J�J��0�0���J�J�0�"�X�_�W�W�S�*�-�-�@�,�#�,�.�.�H�J�J��'2�'2���J�J�'2�R�X�_�W�W�S�*�-�-�@�,�#�,�.�.�H�J�J��0�0���J�J�0�.�.�.�.�.r#rc�:�eZdZd�Zd	d�Zd�Zd�Zd�Zd�Zd�Z	dS)
�TestInternalUtilitiesc�(�tj��}|j|_tj�|jd��|_|�|j	��t	j
��x|_}dtj|g|_
dS)N�nonexistentr')�tempfile�TemporaryDirectoryr)�argv0dirrPrQrM�argv0r>�cleanup�getcwd�
abs_curdir�curdir�curdir_spellings)ro�tmpdirrss   r$r�zTestInternalUtilities.setUp�so���,�.�.�����
��W�\�\�&�+�}�=�=��
������'�'�'�')�y�{�{�2���*�!#�R�Y�
� ;����r#Nc�>�|�|j}tj||��Sri)rpr4�_get_revised_path)ro�
given_pathrps   r$rxz'TestInternalUtilities._get_revised_path�s#���=��J�E��&�z�5�9�9�9r#c���tj���}|jD]<}t	|�|����D]}|�|����=|Sri)r�rQ�copyrurx�countrg)ro�
clean_path�spelling�__s    r$�_get_starting_pathz(TestInternalUtilities._get_starting_path�sj���X�]�]�_�_�
��-�	,�	,�H��J�,�,�X�6�6�7�7�
,�
,���!�!�(�+�+�+�+�
,��r#c��|���}|jg|z}|�|�|��|��dSri)r�rsrvrx)ror}�
expected_paths   r$�,test_sys_path_adjustment_adds_missing_curdirzBTestInternalUtilities.test_sys_path_adjustment_adds_missing_curdir�sL���,�,�.�.�
���)�J�6�
�����/�/�
�;�;�]�K�K�K�K�Kr#c��|���}|jg|z}|jg|z}|�|�|��|��||jgz}|�|�|��|��dSri)r�rsrorvrx)ror}r��leading_argv0dir�trailing_argv0dirs     r$�*test_sys_path_adjustment_removes_argv0_dirz@TestInternalUtilities.test_sys_path_adjustment_removes_argv0_dir�s����,�,�.�.�
���)�J�6�
� �M�?�Z�7������/�/�0@�A�A�=�Q�Q�Q�&�$�-��8������/�/�0A�B�B�M�R�R�R�R�Rr#c����fd�}����}�jg|z}�jg|z}��||��|��|�jgz}�jg|z}��||��|��dS)Nc�F����|tj���S)N)rp)rxr4r5)ryros �r$rxz\TestInternalUtilities.test_sys_path_adjustment_protects_pydoc_dir.<locals>._get_revised_path�s����)�)�*�E�N�)�K�K�Kr#)r�rorsrv)rorxr}r�r�r�s`     r$�+test_sys_path_adjustment_protects_pydoc_dirzATestInternalUtilities.test_sys_path_adjustment_protects_pydoc_dir�s����	L�	L�	L�	L�	L��,�,�.�.�
� �M�?�Z�7����)�,<�<�
����*�*�+;�<�<�m�L�L�L�&�$�-��8����)�,=�=�
����*�*�+<�=�=�}�M�M�M�M�Mr#c�"�|���}|jD]�}|�|���5|g|z}|�|�|����||gz}|�|�|����|jg|z}|�|�|����||jgz}|�|�|����ddd��n#1swxYwY��dS)N)�curdir_spelling)r�ru�subTestrTrxro)ror}r~�leading_curdir�trailing_curdirr�r�s       r$�5test_sys_path_adjustment_when_curdir_already_includedzKTestInternalUtilities.test_sys_path_adjustment_when_curdir_already_included�sn���,�,�.�.�
��-�
	M�
	M�H����h��7�7�	
M�	
M�"*��j�!8���!�!�$�"8�"8��"H�"H�I�I�I�",��z�"9���!�!�$�"8�"8��"I�"I�J�J�J�$(�M�?�^�#C� ��!�!�$�"8�"8�9I�"J�"J�K�K�K�$3�t�}�o�$E�!��!�!�$�"8�"8�9J�"K�"K�L�L�L�	
M�	
M�	
M�	
M�	
M�	
M�	
M�	
M�	
M�	
M�	
M����	
M�	
M�	
M�	
M��
	M�
	Ms�CD�D	�
D	ri)
rrr r�rxr�r�r�r�r�r"r#r$rjrj�s�������<�<�<�:�:�:�:����L�L�L�
S�S�S�	N�	N�	N�M�M�M�M�Mr#rjc��tj��}tjtjg|�R�tjt
��dSri)r
�threading_setupr��addModuleCleanup�threading_cleanupr)�thread_infos r$�setUpModuler�sD��"�2�4�4�K���.�@�O�;�O�O�O�O���m�,�,�,�,�,r#�__main__)`rPr�r{�importlib.utilrNr�r4rRrr9rrrKr�rm�test.support�testrrr��urllib.parser��	xml.etreer��xml.etree.ElementTreer	�ior�collectionsr�urllib.requestrrrrr	�test.support.script_helperr
rrr
rrrrrrrr�test.support.os_helperrrr�test.test_pydocrrr�HAVE_DOCSTRINGSr'r6r�r�r�r��expected_html_data_docstringsr0r�r�r�r(r7rUrVrer>r@rIrMrUrWr^rd�TestCaserfr~r�r�r�r�r�r�r	rrjr�r�mainr"r#r$�<module>r�s���	�	�	�	�
�
�
�
���������������������������������	�	�	�	�����������������
�
�
�
���������������������������"�"�"�"�"�"�.�.�.�.�.�.�.�.�������&�&�&�&�&�&�"�"�"�"�"�"�M�M�M�M�M�M�M�M�M�M�)�)�)�)�)�)�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�<�;�;�;�;�;�;�;�;�;�%�%�%�%�%�%�'�'�'�'�'�'�	�	�	�	�	�	�	�	��<��0� ���
 0��\�x
�E�G�G�y�|!&��&I�&I�/G�&I�&I�&I�!I�!I��M��^!&��&I�&I�/G�&I�&I�&I�!I�!I��,�-4�G�D�"�*�,E�,E��N��%� 
�E�G�G�!"�$&�
�E�G�G�#�&�
�E�G�G�#�&�,
�E�G�G�-#�0%�
�E�G�G�"����������"�"�"����	�	�	����	�	�	������H�%����<z3�z3�z3�z3�z3�8�$�z3�z3�z3�zX@�X@�X@�X@�X@�m�X@�X@�X@�vV
�V
�V
�V
�V
�x�(�V
�V
�V
�r
w<�w<�w<�w<�w<�h�'�w<�w<�w<�t�����W�5���#,�#,�#,�#,�#,�h�'�#,�#,�	��#,�L2�2�2�2�2�-�2�2�2�>1�1�1�1�1��"�1�1�1�n.�n.�n.�n.�n.�8�,�n.�n.�n.�b=M�=M�=M�=M�=M�H�-�=M�=M�=M�@-�-�-��z����H�M�O�O�O�O�O��r#