Edit File: recompiler.cpython-311.pyc
� ����r�dV����������������������������d�dl�Z�d�dlZd�dlZddlmZmZ�ddlmZ�ddlT�dZ dZ dZej��������d k����pej ��������d k�����p ej ��������dk����Z�G�d��d ������������Z�G�d��d������������Z�G�d��d������������Z�G�d��d������������Z�G�d��d������������Z�G�d��d������������Zej ��������dk����rej��������Zn�G�d��dej��������������������Zd��Zd(d�Zd(d�Zd��Zd ��Zd!��Zd"��Zd#��Z � � �d)d'�Z dS�)*�����N����)�ffiplatform�model)�VerificationError)�*i&��i'��i(���win32)����r���)r �������c��������������������"�����e�Zd�Zdd�Zd��Zd��ZdS�)� GlobalExprr���c������������������L�����||�_���������||�_��������||�_��������||�_��������||�_��������d�S��N)�name�address�type_op�size�check_value)�selfr���r���r���r���r���s��� �b/builddir/build/BUILD/cloudlinux-venv-1.0.2/venv/lib64/python3.11/site-packages/cffi/recompiler.py�__init__zGlobalExpr.__init__���s,�������� ��������� �&���������c����������� �������l�����d|�j����������d|�j���������d|�j��������������������������������������������d|�j���������d� S�)N� { "z", (void *)�, z , (void *)� },)r���r���r���� as_c_exprr����r���s��� r���r���zGlobalExpr.as_c_expr���s?���������I�I�I�t�|�|�|�T�\�%;�%;�%=�%=�%=�%=�t�y�y�y�J�� Jr���c������������������T�����d|�j��������������������������������������������|�j��������|�j��������fz��S�)Nz b'%s%s',%d)r����as_python_bytesr���r���r���s��� r����as_python_exprzGlobalExpr.as_python_expr���s.�������t�|�;�;�=�=�t�y�#�/�1��1�� 1r���N)r���r�����__name__� __module__�__qualname__r���r���r �����r���r���r���r������sI��������������'��'��'��'�J��J��J�1��1��1��1��1r���r���c��������������������&�����e�Zd�Zd��Zd��Zd��Zd��ZdS�)� FieldExprc������������������L�����||�_���������||�_��������||�_��������||�_��������||�_��������d�S�r���)r����field_offset� field_size�fbitsize� field_type_op)r���r���r)���r*���r+���r,���s��� r���r���zFieldExpr.__init__���s-�������� �(���$��� �� �*����r���c�����������������������dt����������|�j��������������������z��}d|�j���������d|�j���������d�d|�d|�j���������d�z���d|�d|�j��������������������������������������������d�z���S�)N� r����", z, z z r���)�lenr���r)���r*���r,���r���)r����spacess��� r���r���zFieldExpr.as_c_expr&���sy�������s�4�9�~�~�%���%)�Y�Y�Y��0A�0A�0A�B�B�%+�V�V�T�_�_�_�=�>��>�%+�V�V�T�-?�-I�-I�-K�-K�-K�-K�L�M�� Nr���c�����������������������t������������r���)�NotImplementedErrorr���s��� r���r ���zFieldExpr.as_python_expr,���s������!�!r���c������������������������|�j���������j��������t����������k����rd}n1|�j���������j��������t����������k����rt ����������|�j��������������������}nt�����������d|�j���������������������������������������������|�|�j���������d�S�)N���b'�') r,����op�OP_NOOP�OP_BITFIELD�format_four_bytesr+���r3���r���r���)r���� size_exprs��� r����as_field_python_exprzFieldExpr.as_field_python_expr/���sp�������� �G�+�+��I�I� � � "�k� 1� 1�)�$�-�8�8�I�I�%�%��"�0�@�@�B�B�B�'�i�"�i�i�i�)�� )r���N)r"���r#���r$���r���r���r ���r=���r%���r���r���r'���r'������sS��������������+��+��+�N��N��N�"��"��"� )�� )�� )�� )�� )r���r'���c�������������������� �����e�Zd�Zd��Zd��Zd��ZdS�)�StructUnionExprc ������������������v�����||�_���������||�_��������||�_��������||�_��������||�_��������||�_��������||�_��������||�_��������d�S�r���)r���� type_index�flagsr���� alignment�comment�first_field_index�c_fields) r���r���rA���rB���r���rC���rD���rE���rF���s ��� r���r���zStructUnionExpr.__init__;���s?�������� �$����� ��� �"������!2��� �� � � r���c������������������������d|�j���������|�j��������|�j��������fz��d|�j���������d|�j���������d�z���d|�j��������t ����������|�j��������������������fz��z���|�j��������r d|�j��������z��ndz���dz���S�)Nz { "%s", %d, %s,z r���z%d, %d z /* %s */ r5���z},) r���rA���rB���r���rC���rE���r0���rF���rD���r���s��� r���r���zStructUnionExpr.as_c_exprF���s�������#�t�y�$�/�4�:�&N�N�N�&*�i�i�i�����@�A��t�5�s�4�=�7I�7I�J�J�K��26��E�;���-�-�2�G��� �� r���c������������������������t����������|�j��������t����������������������}d��|�j��������D���������������}dt ����������|�j���������������������t ����������|�������������|�j���������dd���������������������|�������������d�S�)Nc������������������6�����g�|�]}|��������������������������������������S�r%���)r=���)�.0�c_fields��� r���� <listcomp>z2StructUnionExpr.as_python_expr.<locals>.<listcomp>O���s4�������5��5��5�"���3�3�5�5��5��5��5r���z(b'�',�,�))�evalrB����G_FLAGSrF���r;���rA���r����join)r���rB����fields_exprs��� r���r ���zStructUnionExpr.as_python_exprM���s}�������T�Z��)�)��5��5�&*�m�5��5��5���� �d�o�.�.�.��e�$�$�$��I�I�I��H�H�[�!�!�!�!� #�� #r���Nr!���r%���r���r���r?���r?���:���sA�������������� !�� !�� !������#��#��#��#��#r���r?���c�������������������� �����e�Zd�Zd��Zd��Zd��ZdS�)�EnumExprc������������������L�����||�_���������||�_��������||�_��������||�_��������||�_��������d�S�r����r���rA���r����signed�allenums)r���r���rA���r���rX���rY���s��� r���r���zEnumExpr.__init__X���s)�������� �$����� ���� �� � � r���c������������������H�����d|�j���������|�j��������|�j��������|�j��������|�j��������fz��S�)Nz1 { "%s", %d, _cffi_prim_int(%s, %s), "%s" },rW���r���s��� r���r���zEnumExpr.as_c_expr_���s/�������!%��D�O�!%��D�K���!H�H�� Ir���c����������� ������������t�����������t����������t����������t����������t����������t ����������t����������t����������d�|�j��������|�j ��������f���������}dt����������|�j���������������������t����������|�������������|�j���������d|�j ���������d�S�)N))r���r���)r���r���)����r���)r\���r���)����r���)r]���r���)����r���)r^���r���r6���z\x00r7���)� PRIM_UINT8� PRIM_INT8�PRIM_UINT16� PRIM_INT16�PRIM_UINT32� PRIM_INT32�PRIM_UINT64� PRIM_INT64r���rX���r;���rA���r���rY���)r���� prim_indexs��� r���r ���zEnumExpr.as_python_exprd���sr�������)��*��*��*� ��� ��i���$�&� � ��&7�t��%G�%G�%G�%6�z�%B�%B�%B�%)�Y�Y�Y�� � � �?�� ?r���Nr!���r%���r���r���rU���rU���W���sD��������������!��!��!�I��I��I� ?�� ?�� ?�� ?�� ?r���rU���c�������������������� �����e�Zd�Zd��Zd��Zd��ZdS�)�TypenameExprc������������������"�����||�_���������||�_��������d�S�r����r���rA���)r���r���rA���s��� r���r���zTypenameExpr.__init__p���s�������� �$����r���c������������������$�����d|�j���������|�j��������fz��S�)Nz { "%s", %d },rk���r���s��� r���r���zTypenameExpr.as_c_exprt���s������ �D�I�t��#?�?�?r���c������������������@�����dt����������|�j���������������������|�j���������d�S�)Nr6���r7���)r;���rA���r���r���s��� r���r ���zTypenameExpr.as_python_exprw���s"��������-�d�o�>�>�>�� � � �J�Jr���Nr!���r%���r���r���ri���ri���o���sI��������������%��%��%�@��@��@�K��K��K��K��Kr���ri���c������������������������e�Zd�ZdZdNd�Zd��Zd��Zd��Zd��Zd��Z g�d �Z d ��ZdOd�Zd ��Z d��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zd ��Z d!��Z!dPd#�Z"d$��Z#d%��Z$d&��Z%e%Z&d'��Z'd(��Z(e(Z)d)��Z*e*Z+d*��Z,d+��Z-d,��Z. � �dQd.�Z/d/��Z0d0��Z1d1��Z2d2��Z3dPd3�Z4d4��Z5d5��Z6d6��Z7d7��Z8d8��Z9d9��Z:d:��Z;d;��Z<d<��Z=d=��Z>e>xZ?Z@d>��ZAd?��ZBd@��ZCdA��ZDdB��ZEeExZFZGdC��ZHdD��ZIdE��ZJdF��ZKdG��ZLdH��ZMdI��ZNeNZOeNZPdJ��ZQdK��ZRdL��ZSeSZTdM��ZUd"S�)R� Recompilerr���Fc������������������H�����||�_���������||�_��������||�_��������t����������|�_��������d�S�r���)�ffi�module_name�target_is_python�VERSION_BASE�_version)r���rq���rr���rs���s��� r���r���zRecompiler.__init__����s$���������&��� 0���$�� � � r���c������������������:�����t����������|�j��������|������������|�_��������d�S�r���)�maxru���)r����vers��� r���� needs_versionzRecompiler.needs_version����s�������D�M�3�/�/�� � � r���c����������� �����������i�|�_���������|����������������������d�������������t����������|�j���������t�����������������������}g�|�_��������|D�]�}|j��������r�|�j���������|����������J��t ����������|�j��������������������|�j���������|<���|�j�����������������������������|�������������|j��������D�]�}t����������|t����������j��������t����������j��������t����������j ��������t����������j��������t����������j��������f������������sJ��|�j���������|����������t ����������|�j��������������������|�j���������|<���|�j�����������������������������|���������������|�j�����������������������������d���������������|D�]t}|j��������sk|�j���������|����������^t ����������|�j��������������������|�j���������|<���|�j�����������������������������|�������������|j��������r!|j���������|�j�����������������������������d��������������ud�|�j��������������������������������������������vsJ��i�|�_��������i�|�_��������|D�]K}t����������|t����������j��������������������rd�|�j��������|<����'t����������|t����������j��������������������r d�|�j��������|<����Lt/����������t����������|�j��������d���������������������������D�]\��}}||�j��������|<����t/����������t����������|�j��������d���������������������������D�]\��}}||�j��������|<����|D�]6}t1����������|�d|j��������j��������z���������������}�|||�j���������|�����������������������7|�j��������D�]}t����������|t6����������������������sJ���t9����������|�j��������������������|�_��������d�S�)N�collecttype��key�END�LENc�����������������������|�j���������S�r����r�����tps��� r����<lambda>z/Recompiler.collect_type_table.<locals>.<lambda>�����������R�W��r���c�����������������������|�j���������S�r���r����r����s��� r���r����z/Recompiler.collect_type_table.<locals>.<lambda>����r����r����_emit_bytecode_)� _typesdict� _generate�sorted�str� cffi_types�is_raw_functionr0����append�args� isinstancer����VoidType�BasePrimitiveType�PointerType�StructOrUnionOrEnum�FunctionPtrType� is_array_type�length�values�_struct_unions�_enums� StructOrUnion�EnumType� enumerate�getattr� __class__r"����CffiOp�tuple)r���� all_declsr�����tp1�i�methodr8���s��� r����collect_type_tablezRecompiler.collect_type_table����sS�����������}�%�%�%��4�?��4�4�4� ������� .�� .�B��!�� .���r�*�2�2�2�&)�$�/�&:�&:����#���&�&�r�*�*�*��7��0��0�C�%�c�E�N�,1�,C�,1�,=�,1�,E�,1�,A� ,C��D��D��D��D��D� ���s�+�3�/2�4�?�/C�/C����,��O�*�*�3�/�/�/�/���&�&�u�-�-�-����� 2�� 2�B��%�� 2�$�/�"�*=�*E�&)�$�/�&:�&:����#���&�&�r�*�*�*��#��2�� �(=��O�*�*�5�1�1�1���4�?�1�1�3�3�3�3�3�3��!�������� '�� '�B��"�e�1�2�2�� '�*.��#�B�'�'��B���/�/�� '�"&���B����v�d�&9�*<�*<� >�� >�� >��?��?�� (�� (�E�A�r�&'�D���#�#��v�d�k�*<�*<� >�� >�� >��?��?�� �� �E�A�r��D�K��O�O���� ,�� ,�B��T�#4�r�|�7L�#L�M�M�F��F�2�t��r�*�+�+�+�+���/�� *�� *�B��b�&�)�)�)�)�)�)����0�0����r���c������������������<�����|�j����������}|���������������������|������������S�r���)rs���� enumfields)r���r�����expand_anonymous_struct_unions��� r����_enum_fieldszRecompiler._enum_fields����s#�������-1�,A�(A�%��}�}�:�;�;�;r���c����������������������t����������|t����������j��������������������s1t����������|t����������������������r|D�]}|����������������������|��������������d�S�||�j��������vr�d�|�j��������|<���t����������|t����������j��������������������r)|����������������������|������������������������������������������������d�S�t����������|t����������j��������������������rg|j ���������Z||�j ��������j��������j��������vrI|�� ��������������������|������������D�]5\��}}}}|����������������������|����������������������|||��������������������������2d�S�d�S�d�S�|�����������������������������������D�]\��}}|����������������������|��������������d�S�d�S�r���)r����r����BaseTypeByIdentityr�����_do_collect_typer����r�����as_raw_functionr�����fldtypesrq����_parser�_included_declarationsr�����_field_type� _get_items)r���r�����x�name1r�����_s��� r���r����zRecompiler._do_collect_type����s�������"�e�6�7�7�� ��"�e�$�$�� -���-��-�A��)�)�!�,�,�,�,��F� �T�_�$�$�"&�D�O�B���"�e�3�4�4�� -��%�%�b�&8�&8�&:�&:�;�;�;�;�;��B�� 3�4�4�� -��;�*��$�(�"2�"I�I�I�,0�,=�,=�b�,A�,A��P��P�(��s�A�q��-�-�d�.>�.>�r�5�#�.N�.N�O�O�O�O��+�*�I�I�P��P���M�M�O�O��-��-�D�A�q��)�)�!�,�,�,�,��%�$�-��-r���c����������������������|�j���������j��������j�������������������������������������������}t ����������|������������D�]�\��}\��}}|���������������������dd������������\��}} �t ����������|�d|�d|��������������}n #�t����������$�r�t����������d|z���������������w�xY�w �||�_ ���������|||��������������n#�t����������$�r} t����������j��������| |���������������d�} ~ ww�xY�wd�S�)Nr.���r����_generate_cpy_r����z"not implemented in recompile(): %r) rq���r����� _declarations�itemsr�����splitr�����AttributeErrorr����_current_quals� Exceptionr����attach_exception_info) r���� step_name�lstr���r�����quals�kind�realnamer�����es ��� r���r����zRecompiler._generate����s������h��,�2�2�4�4��!'����� �� ��D�+�2�u�!�Z�Z��Q�/�/�N�D�(� A� ������@I� �(K��L��L����!�� A�� A�� A�'�8�4�?�A��A��A� A���� �&+��#���r�8�$�$�$�$���� �� �� ��+�A�t�4�4�4������ ���� �� s$����A,�,B � B!�! C�+C�C)�global�field�struct_union�enum�typenamec������������������J����i�|�_���������|�j��������D�]}g�|�j���������|<���� t������������������������|�_��������|����������������������d�������������|�������������������������������������|�j��������D�]C}|�j���������|���������}|dk����r|���������������������d����������������t����������|������������|�j���������|<����D|�j���������d���������}|�j��������� ����������������������������������D�]2\��}}|t����������|������������k�����sJ��||���������j��������|j��������k����sJ���3t����������|������������t����������|�j��������������������k����sJ��|�j���������d���������}|�j��������� ����������������������������������D�]2\��}}|t����������|������������k�����sJ��||���������j��������|j��������k����sJ���3t����������|������������t����������|�j��������������������k����sJ��d�S�)N�ctxr����c�����������������������|�j���������S�r���r����)�entrys��� r���r����z0Recompiler.collect_step_tables.<locals>.<lambda>��s������5�:��r���r|���r����r����) �_lsts� ALL_STEPS�set�_seen_struct_unionsr�����_add_missing_struct_unions�sortr����r����r����r0���r���r����)r���r����r����r����r����s��� r����collect_step_tableszRecompiler.collect_step_tables����s�������� ���� '�� '�I�$&�D�J�y�!�!�#&�5�5�� ����u�����'�'�)�)�)���� /�� /�I��*�Y�'�C��G�#�#����5�5��6�6�6�$)�#�J�J�D�J�y�!�!���j��(���(�.�.�0�0�� *�� *�E�B���s�3�x�x�<�<�<�<��q�6�;�"�'�)�)�)�)�)��3�x�x�3�t�2�3�3�3�3�3�3��j�� ���[�&�&�(�(�� *�� *�E�B���s�3�x�x�<�<�<�<��q�6�;�"�'�)�)�)�)�)��3�x�x�3�t�{�+�+�+�+�+�+�+�+r���r5���c������������������@�����|�j������������������������������|dz����������������d�S�)N� )�_f�write)r����whats��� r����_prntzRecompiler._prnt��s �������� � �d�T�k�"�"�"�"�"r���c������������������~�����|�j���������r|�J��|����������������������|�������������d�S�|�J��|����������������������||�������������d�S�r���)rs����write_py_source_to_f�write_c_source_to_f)r����f�preambles��� r����write_source_to_fzRecompiler.write_source_to_f��s[������� �� 2��#�#�#��%�%�a�(�(�(�(�(��'�'�'��$�$�Q��1�1�1�1�1r���c�����������������������t����������t����������j�����������������������������t����������j�����������������������������t ����������������������|������������d������������}|�����������������������������������}|������������������������������������|S�)N�r)�open�os�pathrR����dirname�__file__� readlines�close)r����filename�g�liness��� r����_rel_readlineszRecompiler._rel_readlines!��sN�����������b�g�o�o�h�7�7��B�B�C�H�H����� � �� ��� � � ��r���c����������� �������x����||�_���������|�j��������}|�j��������j����������|d�������������t����������s�|d�������������|����������������������d������������}|���������������������d������������}|����������������������d������������|||dz����<����|d���������������������|�������������������������|�j��������� ��������������������d������������d ���������}|�j��������j�����������|d |�j���������d���������������|d�������������|�� ��������������������|�j��������j����������������������|d ��������������|d��������������|d|����������������|d��������������|d|����������������|d��������������|d|����������������|d�������������|����������������������d������������}|���������������������d������������}|����������������������d������������|||dz����<����|d���������������������|�������������������������|����������������������t������������������������|d��������������|����������������||��������������|����������������|d��������������|����������������|d�������������t����������d��|�j�������������������������������������������D���������������������������}t!����������|�j��������������������D�]K\��}}d} ||v�rd||��������������������������������������������z���} �|d||�����������������������������������| fz����������������L|�j��������s�|d��������������|d��������������|���������������t)������������������������|�_��������|����������������������d�������������i�} |�j��������D�]v}|�j��������|���������}t3����������|������������| |<���| |���������d k����rI�|d!|�d"|�d#��������������|D�]} �|| ������������������������������������������������� �|d��������������|����������������w|�j��������j��������r��|d$�������������|�j��������j��������D�]_} �|j��������d�d%����������\��}}n)#�t8����������$�r�t;����������d&|�j���������d'|�d(��������������w�xY�w|�t;����������d)��������������|d*|�d+���������������`�|d,��������������|d��������������|����������������|d-��������������|d.�������������|�j��������D�]+}| |���������d k����r�|d/|z�����������������|d0|z����������������,|�j��������D�]}|d1k����r�|d2| |���������|fz����������������|�j��������j��������r�|d3�������������n�|d4��������������|d5t3����������|�j��������������������fz���������������d }|�j��������d k����s|�j��������j���������|dz��}�|d6|z����������������|d��������������|����������������|d7��������������|d8��������������|d��������������|����������������|d��������������|d9��������������|d:|�d;���������������|d<�������������|dz��r!�|d=��������������|d>��������������|d?��������������|d@|�j��������z����������������|dA��������������|dB��������������|dC��������������|d��������������|dD��������������|dE��������������|dF��������������|dG��������������|dH|�dI���������������|dJ��������������|dK|�dL���������������|dM��������������|dM��������������|d��������������|d9��������������|dN|�dO���������������|d<��������������|dP|�j��������|�j��������fz����������������|dD��������������|d��������������|d9��������������|dQ|�dO���������������|d<��������������|dR|�j��������|�j��������fz����������������|dD��������������|d��������������|����������������|d7��������������|dS��������������|d�������������d�|�_��������d�S�)TNz#define _CFFI_USE_EMBEDDINGz#define _CFFI_NO_LIMITED_APIz_cffi_include.hz#include "parse_c_type.h" zparse_c_type.hr���r5����.���z#define _CFFI_MODULE_NAME "�"z1static const char _CFFI_PYTHON_STARTUP_CODE[] = {z0 };z#ifdef PYPY_VERSIONz3# define _CFFI_PYTHON_STARTUP_FUNC _cffi_pypyinit_z#elif PY_MAJOR_VERSION >= 3z+# define _CFFI_PYTHON_STARTUP_FUNC PyInit_�#elsez(# define _CFFI_PYTHON_STARTUP_FUNC init�#endifz_embedding.hz#include "_cffi_errors.h" z_cffi_errors.hz>/************************************************************/zstatic void *_cffi_types[] = {c�����������������������g�|�] \��}}||f�� S�r%���r%����rJ���r����r����s��� r���rL���z2Recompiler.write_c_source_to_f.<locals>.<listcomp>W��� ������N�N�N�7�B���2�w�N�N�Nr���z // z/* %2d */ %s,%sz 0z};�declr���zstatic const struct _cffi_z _s _cffi_zs[] = {z.static const char * const _cffi_includes[] = {r\����ffi object � includes �8, but the latter has not been prepared with set_source()zMnot implemented yet: ffi.include() of a Python-based ffi inside a C-based ffiz "z",z NULLz?static const struct _cffi_type_context_s _cffi_type_context = {z _cffi_types,z _cffi_%ss,z NULL, /* no %ss */r����z %d, /* num_%ss */z _cffi_includes,z NULL, /* no includes */z %d, /* num_types */z %d, /* flags */z#ifdef __GNUC__z?# pragma GCC visibility push(default) /* for -fvisibility= */�PyMODINIT_FUNC�_cffi_pypyinit_z(const void *p[])�{z% if (((intptr_t)p[0]) >= 0x0A03) {zQ _cffi_call_python_org = (void(*)(struct _cffi_externpy_s *, char *))p[1];z }z p[0] = (const void *)0x%x;z p[1] = &_cffi_type_context;z#if PY_MAJOR_VERSION >= 3� return NULL;�}z# ifdef _MSC_VERz PyMODINIT_FUNCz# if PY_MAJOR_VERSION >= 3z PyInit_z(void) { return NULL; }z# elsez initz (void) { }z# endif�PyInit_�(void)z5 return _cffi_init("%s", 0x%x, &_cffi_type_context);�initz. _cffi_init("%s", 0x%x, &_cffi_type_context);z# pragma GCC visibility pop) r����r����rq���� _embedding�USE_LIMITED_APIr�����indexrR���rr���r�����_print_string_literal_in_arrayry����VERSION_EMBEDDED�dictr����r����r����r�����_get_c_namer���r�����_seen_constantsr����r����r����r0����_included_ffis�_assigned_sourcer����r���� _num_externpyru���)r���r����r�����prntr����r�����base_module_name�typeindex2typer8���rD����numsr����r����r�����ffi_to_include�included_module_name�included_sourcerB���s��� r���r����zRecompiler.write_c_source_to_f'��s� ���������z���8��*��D�.�/�/�/��� 1��D�/�0�0�0���#�#�$5�6�6���K�K�5�6�6���*�*�+;�<�<��a��!��e����R�W�W�U�^�^����� �+�1�1�#�6�6�r�:���8��*��D�D�d�6F�6F�6F�H�I�I�I��D�D�E�E�E��/�/���0C�D�D�D��D��L�L�L��D�&�'�'�'��D�D� � �#�� $�� $�� $��D�.�/�/�/��D�D� � �#�� $�� $�� $��D��M�M�M��D�D� � �#�� $�� $�� $��D��N�N�N��'�'��7�7�E����9�:�:�A��.�.�/?�@�@�E�!�A�a�C�%�L��D������� � � ����/�0�0�0�� �� M�N�N�N��������X����������� M�N�N�N������� �� -�.�.�.��N�N�d�o�6K�6K�6M�6M�N�N�N�O�O���t��/�/�� C�� C�E�A�r��G��N�"�"� �>�!�#4�#@�#@�#B�#B�B���D�"�a�������%A�A�B�B�B�B���� ��D��K�K�K���T� � � ������� #�u�u������v���������� �� �I��*�Y�'�C�!�#�h�h�D��O��I���"�"�����I�I�y�y�y�*��+��+��+� ��,��,�E��D����*�*�+�+�+�+���T� � � ���������8�"�� ��D�A�B�B�B�"&�(�"9�� :�� :��8�&�7����;��:�(�/�/��%��8��8��8�+�+��!�H�H�H�n�n�n�7�8��8��8�8���� �#�*�+�3�4��4��4�����"6�"6�"6�8�9�9�9�9��D��N�N�N��D��J�J�J��D�F�F�F�� �� N�O�O�O��� ������� :�� :�I��I���"�"���^�i�/�0�0�0�0���,�y�8�9�9�9�9���� L�� L�I��G�#�#���+�t�I�� �.J�J�K�K�K���8�"�� /��D�$�%�%�%�%��D�-�.�.�.��� %��T�_�)=�)=�(?� ?�@�@�@������!�!�T�X�%8�%D��Q�J�E��� !�E� )�*�*�*���T� � � ������� �� ������ N�O�O�O���X����������� "�#�#�#��� �������5E�5E�5E� G�H�H�H���S� � � ��1�9�� ��D�8�9�9�9��D��E�� F�� F�� F��D��M�M�M��� -�� � =�>�>�>��� .�/�/�/��� (�)�)�)��� � � � ���X������S� � � �� �� �!�!�!��� "�#�#�#��� *�+�+�+����8H�8H�8H� J�K�K�K���Y�������(8�(8�(8� :�;�;�;���Z������Z������ *�+�+�+��� �������"2�"2�"2� 4�5�5�5���S� � � ��� D���d�m�H-��-�� .�� .�� .���S� � � ���W� � � ��� �������/�/�/� 1�2�2�2���S� � � ��� =���d�m�A-��-�� .�� .�� .���S� � � ���X����������� ������ +�,�,�,���X������ � � s����7O � &O0c������������������8������t����������|t����������������������rd|�d�S�t����������|t����������t����������f������������rO��fd�|D���������������}t ����������|������������dk����r|���������������������d�������������dd���������������������|�������������d�S�|�����������������������������������S�) Nr6���r7���c������������������:������g�|�]}�����������������������|��������������S�r%���)�_to_py)rJ����itemr���s��� �r���rL���z%Recompiler._to_py.<locals>.<listcomp>���s%�������3�3�3��4�;�;�t�$�$�3�3�3r���r���r5����(rN���rO���)r����r�����listr����r0���r����rR���r ���)r���r�����reps���` r���r��zRecompiler._to_py���s���������a����� "�� "��a�a�>�!��a�$���'�'�� -�3�3�3�3��3�3�3�C��3�x�x�1�}�}�� � �2����� �X�X�c�]�]�]�]�,�,����!�!�!r���c����������� �������V����||�_���������|�j��������}�|d��������������|d�������������t����������|�j��������j��������pd������������}t����������|������������D�]r}|�j��������j��������|���������} �|j��������d�d����������\��}}n)#�t����������$�r�t����������d|�j���������d|�d��������������w�xY�w|�t����������d��������������|d ||fz����������������s�|����������������|d |�j ���������d���������������|d|�j ��������fz���������������d�|�_ ��������t����������|�j��������������������|�_��������d ��|�j��������D���������������}�|d|�� ��������������������d���������������������|�������������������������d��������������t����������d��|�j�������������������������������������������D���������������������������} |�j��������D�]M} |�j��������| ���������}t����������|������������dk����r+| dk����r%�|d| �d|�� ��������������������|�������������d���������������N|dk����r9�|dd���������������������d��t����������|������������D����������������������������d���������������|d�������������d�S�)Nz# auto-generated filezimport _cffi_backendr%���r\���r����r����r����zMnot implemented yet: ffi.include() of a C-based ffi inside a Python-based ffizfrom %s import ffi as _ffi%dzffi = _cffi_backend.FFI('rM���z _version = 0x%x,c������������������6�����g�|�]}|��������������������������������������S�r%���)r���)rJ���r8���s��� r���rL���z3Recompiler.write_py_source_to_f.<locals>.<listcomp>���s$������D�D�D�b�R�'�'�)�)�D�D�Dr���z _types = r5���rN���c�����������������������g�|�] \��}}||f�� S�r%���r%���r����s��� r���rL���z3Recompiler.write_py_source_to_f.<locals>.<listcomp>���r����r���r���r����z _zs = z _includes = (r���c�����������������������g�|�]}d�|z����S�)z_ffi%dr%����rJ���r����s��� r���rL���z3Recompiler.write_py_source_to_f.<locals>.<listcomp>��s������E�E�E�A�8�a�<�E�E�Er���z,),rO���)r����r����r0���rq���r���ranger ��r����r���rr���ru���r����r����r��rR���r ��r����r����r����r����)r���r����r���num_includesr����r��r��r��� types_lstr��r����r����s��� r���r����zRecompiler.write_py_source_to_f���s����������z��� �� $�%�%�%��� #�$�$�$���4�8�2�8�b�9�9���|�$�$�� M�� M�A�!�X�4�Q�7�N� 4�"�3�B�Q�B�7��6�$�o�o��!�� 4�� 4�� 4�'�'������.�.�.�3�4��4��4� 4���� ��*�'�4�5��5��5�� �D�/�3G��2K�K�L�L�L�L����������0@�0@�0@� B�C�C�C��� #�t�}�&6� 6�7�7�7��� �� ���0�0���D�D�D�O�D�D�D� ����4�;�;�r�w�w�y�/A�/A�#B�#B�#B�#B� D�E�E�E��N�N�d�o�6K�6K�6M�6M�N�N�N�O�O������ G�� G�I��*�Y�'�C��3�x�x�!�|�|� �W� 4� 4�������D�K�K��4D�4D�4D�4D�E�F�F�F����!����D�D�� � �E�E��|�1D�1D�E�E�E�F�F�F�F�I�� J�� J�� J�� ��S� � � � � s����$A7�7&Bc�����������������������|�j���������|���������S�r���)r����)r����types��� r����_gettypenumzRecompiler._gettypenum��s��������t�$�$r���c����������� ������������d}t����������|t����������j��������������������r�|�����������������������������������s�|�����������������������������������r|j��������dk����r d}d|j��������z��}n�t����������|t����������j��������������������rd|���������������������d�������������d�}nT|���������������������d������������}d|�d|j�����������������������������dd ��������������}|d v�r|�� ��������������������t�����������������������d}�nt����������|t����������j��������������������r|����������������������||||�������������d�S�t����������|t����������j ��������������������st����������|t����������j��������������������rH|����������������������d||����������������������|������������|fz���������������|����������������������d |z���������������d�S�t����������|t����������j��������������������r3d|���������������������d������������z��}d|����������������������|������������z��}d}nt#����������|�������������|����������������������d|�d|�d|�|�d��������������|����������������������d|�d|���������������������d�������������d|�d��������������|����������������������d |z���������������d�S�)Nr5����_Bool�_cffi_to_c_intz, %sr��z)_cffi_to_c_doublez)_cffi_to_c_r.���r������char16_t�char32_tz-1z6 if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)z %s;z(%s)_cffi_to_c_pointerz, _cffi_type(%d)�NULL� z = �);z if (z == (rO���z && PyErr_Occurred()))r����r���r�����is_complex_type�is_integer_typer����UnknownFloatType� get_c_name�replacery����VERSION_CHAR16CHAR32r�����"_convert_funcarg_to_c_ptr_or_arrayr����r����r'��r����r3���) r���r�����fromvar�tovar�errcode�extraarg� converter�cname�errvalues ��� r����_convert_funcarg_to_cz Recompiler._convert_funcarg_to_c��s���������b�%�1�2�2��$ *�2�;M�;M�;O�;O��$ *��!�!�#�#�� =���7�(:�(:�,� �!�B�G�+����B�� 6�7�7�� =�� =��8:�}�}�R�7H�7H�7H�7H�J� � �� � �b�)�)���38�5�5�35�7�?�?�3��3L�3L�3L�N� ��4�4�4��&�&�';�<�<�<��H�H� ��E�-� .� .�� *��3�3�B��49�7� D�� D�� D��F���U�6�7�7�� *���U�4�5�5� *�� �J�J�O��� 0� 0�� 4� 4�g�>�?�� @�� @�� @��J�J�y�7�*�+�+�+��F� ��E�1� 2� 2�� *�0�2�=�=��3D�3D�D�I�)�D�,<�,<�R�,@�,@�@�H��H�H��&�b�)�)�)�� � � ���� � � �7�7�H�H�H�M�N�N�N�� � � ��E�E�2�=�=��$�$�$�$�h�h�h�0�� 1�� 1�� 1�� � �9�w�&�'�'�'�'�'r���c�����������������������t����������|t����������j��������������������rA|���������������������d�������������|���������������������d�������������|���������������������d�������������d�S�d�S�)NzPy_ssize_t datasizez-struct _cffi_freeme_s *large_args_free = NULLzIif (large_args_free != NULL) _cffi_free_array_arguments(large_args_free);)r����r���r�����add)r���r����� localvars� freeliness��� r����_extra_local_variablesz!Recompiler._extra_local_variablesC��su�������b�%�+�,�,�� K��M�M�/�0�0�0��M�M�I�J�J�J��M�M��J�� K�� K�� K�� K�� K� K�� Kr���c�����������������������|�����������������������d�������������|�����������������������d|����������������������|������������||fz���������������|�����������������������d�������������|�����������������������d|�d|���������������������d�������������d��������������|�����������������������d|����������������������|������������||fz���������������|�����������������������d �������������|�����������������������d |z���������������|�����������������������d�������������d�S�)Nz1 datasize = _cffi_prepare_pointer_call_argument(z( _cffi_type(%d), %s, (char **)&%s);z if (datasize != 0) {z z = ((size_t)datasize) <= 640 ? (r5���z!)alloca((size_t)datasize) : NULL;zF if (_cffi_convert_array_argument(_cffi_type(%d), %s, (char **)&%s,z, datasize, &large_args_free) < 0)z %s;z })r����r'��r4��)r���r����r8��r9��r:��s��� r���r7��z-Recompiler._convert_funcarg_to_c_ptr_or_arrayJ��s������ � �F�G�G�G�� � �=����R� � �'�5�A2��2�� 3�� 3�� 3�� � �+�,�,�,�� � � ��E�E�2�=�=��$�$�$�$�&�� '�� '�� '�� � � ��#�&*�&6�&6�r�&:�&:�G�U�%K�L�� M�� M�� M�� � �A�B�B�B�� � �;��(�)�)�)�� � �5�����r���c������������������(����t����������|t����������j��������������������r�|�����������������������������������r|j��������dk����rd|�d|j���������d�S�t����������|t����������j��������������������rd|�d�S�|j��������dk����rV|�����������������������������������sB|j�����������������������������dd������������}|d v�r|����������������������t�����������������������d |�d|�d�S�d||�� ��������������������|������������fz��S�t����������|t����������j��������t����������j��������f������������rd ||�� ��������������������|������������fz��S�t����������|t����������j ��������������������r1d ||�� ��������������������t����������j��������|j��������������������������������fz��S�t����������|t����������j��������������������rI|j���������(t#����������d|������������������������������������d|�d��������������d||�� ��������������������|������������fz��S�t����������|t����������j��������������������rd||�� ��������������������|������������fz��S�t)����������|�������������)Nr)��z_cffi_from_c_int(r���rO���z_cffi_from_c_double(�long doubler.���r����r+��� _cffi_from_c_r��z/_cffi_from_c_deref((char *)&%s, _cffi_type(%d))z0_cffi_from_c_pointer((char *)%s, _cffi_type(%d))r7���z ' is used as z, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))r����r���r����r2��r���r3��r1��r5��ry���r6��r'��r����r����� ArrayTyper��r�����fldnames� TypeErrorr ��r����r3���)r���r�����var�contextr=��s��� r����_convert_expr_from_czRecompiler._convert_expr_from_cX��sP������b�%�1�2�2�� *��!�!�#�#�� /���7�(:�(:�(:�58�S�S�"�'�'�'�B�B��B�� 6�7�7�� /�� /�47�C�C�9�9���M�)�)�"�2D�2D�2F�2F�)������S�1�1���4�4�4��&�&�';�<�<�<��05���s�s�s�;�;�H���)�)�"�-�-�L/��/��/� ��U�.��0E�F� G� G�� *�E��T�%�%�b�)�)�I+��+�� +� ��E�O� ,� ,�� *�E��T�%�%�e�&7���&@�&@�A�A�IC��C�� C� ��E�/� 0� 0�� *��{�"��i��N�N�$�$�$�$�g�g�g�!/��0��0��0�E��T�%�%�b�)�)�I+��+�� +� ��E�N� +� +�� *�D��T�%�%�b�)�)�H+��+�� +��&�b�)�)�)r���c������������������6�����|�����������������������|d|�d�������������S�)Nz(*(z *)0))�_global_type�r���r����r���s��� r���� _typedef_typezRecompiler._typedef_type{��s!������� � ���T�T�T�%;�<�<�<r���c������������������X�����|�����������������������|����������������������||�������������������������d�S�r���)r����rR��rQ��s��� r����!_generate_cpy_typedef_collecttypez,Recompiler._generate_cpy_typedef_collecttype~��s,���������d�0�0��T�:�:�;�;�;�;�;r���c�����������������������d�S�r���r%���rQ��s��� r����_generate_cpy_typedef_declz%Recompiler._generate_cpy_typedef_decl�����������r���c������������������|�����|�j���������|���������}|�j��������d������������������������������t����������||�������������������������d�S�)Nr����)r����r����r����ri���)r���r����r���rA���s��� r����_typedef_ctxzRecompiler._typedef_ctx���s9�������_�R�(� �� �:��%�%�l�4��&D�&D�E�E�E�E�Er���c������������������X����|�����������������������||������������}|����������������������||�������������t����������|dd�������������dk����r|����������������������||j��������d���������������d�S�t����������|t����������j��������������������r/|����������������������|j��������|j��������j��������|j��������|��������������d�S�d�S�)N�origin�unknown_type)� approxname)r]��� named_ptr) rR��rY��r�����_struct_ctxr���r����r����NamedPointerType�totyperQ��s��� r����_generate_cpy_typedef_ctxz$Recompiler._generate_cpy_typedef_ctx���s������� � � ��D� )� )�����"�d�#�#�#��2�x��&�&�.�8�8����R���T��:�:�:�:�:� ��E�2� 3� 3�� +����R�Y�� ��2�7�')�� �� +�� +�� +�� +�� +� +�� +r���c�����������������������|�����������������������|������������������������������������������������|j��������r|�j��������s|�����������������������|�������������d�S�d�S�d�S�r���)r����r�����ellipsisrs���rQ��s��� r����"_generate_cpy_function_collecttypez-Recompiler._generate_cpy_function_collecttype���sd���������b�0�0�2�2�3�3�3� �;�� &�t�4�� &��!�!�"�%�%�%�%�%� &�� &�� &�� &r���c����������� �������, ����|�j���������rJ��t����������|t����������j��������������������sJ��|j��������r|����������������������||�������������d�S�|�j��������}t����������|j��������������������}|dk����rd}n|dk����rd}nd}g�}g�}d|z��}t����������|j��������������������D�]I\��} } |� ��������������������| ���������������������d| z��|�������������������������|� ��������������������d| z����������������Jd ���������������������|������������}|pd }|j ��������r|j ��������dz���}nd}|�d |�d|�d�} �|d|j�����������������������������| ����������������������������|d�������������d ���������������������|������������}d}t����������|j��������t����������j��������������������rd}�|d|�|�d|�d���������������|d��������������|d��������������|d��������������|d|�d|�d���������������|d�������������d|z��}t����������|j��������������������D�],\��} } | ���������������������d| z��|������������}�|d|z����������������-t!������������������������}t!������������������������}|j��������D�]} |����������������������| ||��������������t%����������|������������D�]}�|d|�d���������������t����������|j��������t����������j��������������������s<d}d|z��}d|j�����������������������������d|������������z��}�||��������������|d�������������nd�}d}t����������|j��������������������dk����r�t'����������t����������|j��������������������������������}|D�]} �|d | z�����������������|����������������|d!|t����������|������������t����������|������������d ���������������������d"��|D���������������������������fz����������������|d#��������������|���������������t����������|j��������������������D�]-\��} } |����������������������| d$| z��d| z��d%��������������|����������������.�|d&��������������|d'�������������d(��t'����������t����������|j��������������������������������D���������������}d ���������������������|������������}�|d)|�|�d|�d*���������������|d+��������������|d,��������������|����������������|d-�������������|dk����r�|d.�������������|rG�|d/|����������������������|j��������d0d1������������z���������������|D�]}�|d|z������������������|d2�������������n)|D�]}�|d|z������������������|d3��������������|d4��������������|d��������������|d5�������������d6��}d7}g�}g�}d|z��}t����������|j��������������������D�]`\��} } d}�|| ������������rd8}d9}| ���������������������d:|| fz��|������������}|� ��������������������|�������������|� ��������������������d;|| fz����������������a|j��������}�||������������rCd|z��}|���������������������d<|������������}|���������������������d|�������������t����������j��������}d�}d=}d9}|r�d ���������������������|������������}|pd }|�d|�d|�d�} �|d|���������������������| ����������������������������|d�������������|r�||�������������d ���������������������|������������}�|d)|�|�d|�d*��������������|r�|d>��������������|d�������������n�|d?|�d@|����������������|dA��������������|���������������d�S�)BNr����noargr����arg0r�����argument of %sz x%d�x%dr����voidr.���r5����_cffi_d_r��rO����static r����zreturn r/��r0��r���z#ifndef PYPY_VERSIONzstatic PyObject *�_cffi_f_z(PyObject *self, PyObject *z %s;�;z result = �result of %sz resultz PyObject *pyresult;z PyObject *arg%d;z1 if (!PyArg_UnpackTuple(args, "%s", %d, %d, %s))c�����������������������g�|�]}d�|z����S�)z&arg%dr%���r!��s��� r���rL���z:Recompiler._generate_cpy_function_decl.<locals>.<listcomp>���s������5�5�5�A�8�a�<�5�5�5r���r����zarg%dzreturn NULLz Py_BEGIN_ALLOW_THREADSz _cffi_restore_errno();c�����������������������g�|�]}d�|z����S�)rj��r%���r!��s��� r���rL���z:Recompiler._generate_cpy_function_decl.<locals>.<listcomp>���s������A�A�A��%�!�)�A�A�Ar���� { z); }z _cffi_save_errno();z Py_END_ALLOW_THREADSz (void)self; /* unused */z (void)noarg; /* unused */z pyresult = %s;�resultzresult typez return pyresult;z Py_INCREF(Py_None);z return Py_None;r����c�����������������������t����������|�t����������j��������������������p-t����������|�t����������j��������������������o|������������������������������������S�r���)r����r���r����� PrimitiveTyper1��)r&��s��� r����need_indirectionz@Recompiler._generate_cpy_function_decl.<locals>.need_indirection��s@�������t�U�%8�9�9��-���e�&9�:�:��,��)�)�+�+� .r���Fr���Tz %sx%dz%sx%dz *resultz *result = z return result;z# define _cffi_f_z _cffi_d_r����)rs���r����r���r����rd���_generate_cpy_constant_declr����r0���r����r����r����r4��rR����abirt��r����r����rD��r����r"��r?��rN���insert� void_type)r���r����r���r���numargs�argname� arguments�call_argumentsrM��r����r&���repr_argumentsry���name_and_arguments�result_code�argrB��rC��r�����result_decl�rng�freelinerw��� difference�indirection� tp_results��� r����_generate_cpy_function_declz&Recompiler._generate_cpy_function_decl���sw������(�(�(�(��"�e�3�4�4�4�4�4� �;�� �� �,�,�R��6�6�6��F��z���b�g�,�,���a�<�<��G�G� ��\�\��G�G��G��� ���"�T�)�� ���)�)�� -�� -�G�A�t����T�_�_�V�a�Z��A�A�B�B�B��!�!�%�!�)�,�,�,�,����9�-�-��'�1�6�� �6�� ��&�3�,�C�C��C�36�3�3����n�n�n�M�����B�I�0�0�1C�D�D�D� F�G�G�G���S� � � ����>�2�2�����b�i���0�0�� ��K����k�k�4�4�4���� @�A�A�A���S� � � ��� #�$�$�$��� �!�!�!����4�4�4���� I�J�J�J���S� � � �"�T�)�� ���)�)�� �� �G�A�t��/�/�&�1�*�g�6�6�C��D��3�������E�E� ��E�E� ��G�� D�� D�D��'�'��i��C�C�C�C��9�%�%�� $�� $�D��D�D�D�D�D�"�#�#�#�#��"�)�U�^�4�4�� �%�K�$�t�+�G�!�B�I�$8�$8��G�$L�$L�L�K��D������D�(�)�)�)�)��K��K��r�w�<�<�!�����B�G���%�%�C��� /�� /����)�A�-�.�.�.�.��D�F�F�F��D�D��c�#�h�h��C���� � �5�5��5�5�5�6�6�H8��8�� 9�� 9�� 9�� �D�#�$�$�$������ ���)�)�� �� �G�A�t��&�&�t�W�q�[�%�!�)�'4� 6�� 6�� 6��D�F�F�F�F��� '�(�(�(��� '�(�(�(�A�A�U�3�r�w�<�<�-@�-@�A�A�A�����>�2�2�����+�+�t�t�t�^�^�^� D�E�E�E��� $�%�%�%��� %�&�&�&�������� )�*�*�*��a�<�<��D�.�/�/�/��� &��D�#��*�*�2�9�h� �N�N�O�� P�� P�� P�%�� &�� &����T�H�_�%�%�%�%��D�%�&�&�&�&�%�� &�� &����T�H�_�%�%�%�%��D�(�)�)�)��D�$�%�%�%���S� � � ���W� � � � .�� .�� .��� �� ���"�T�)�� ���)�)�� >�� >�G�A�t��K����%�%�� "�!��!� ��/�/�(�k�1�-=�"=�w�G�G�C����S�!�!�!��!�!�'�[�!�,<�"<�=�=�=�=��I� ���I�&�&�� �$�t�+�G��&�&�z�7�;�;�C����Q��$�$�$���I��K�&�K��J��� C�!�Y�Y�y�1�1�N�+�5�v�N�7:�s�s�D�D�D�7E�~�~�"G���D�D� � 4� 4�5G� H� H� H�J�K�K�K��D��I�I�I��� "���[�!�!�!�!�Y�Y�~�6�6�N��D�D�k�k�4�4�4����H�I�I�I��� )���'�(�(�(��D��I�I�I�I��D�D�d�d�d�D�D�A�B�B�B���X����������r���c����������� �����������|j���������r|�j��������s|����������������������||�������������d�S�|�j��������|��������������������������������������������}t����������|j��������������������}|�j��������rt����������}n#|dk����rt����������}n|dk����rt����������}nt����������}|�j��������d������������������������������t����������|d|z��t����������||������������d|z����������������������������d�S�)Nr���r���r����z _cffi_f_%sz _cffi_d_%s)r���)rd��rs����_generate_cpy_constant_ctxr����r����r0���r�����OP_DLOPEN_FUNC�OP_CPYTHON_BLTN_N�OP_CPYTHON_BLTN_O�OP_CPYTHON_BLTN_Vr����r����r���r����)r���r����r���rA���r|��� meth_kinds��� r����_generate_cpy_function_ctxz%Recompiler._generate_cpy_function_ctx;��s������� �;�� �t�4�� ��+�+�B��5�5�5��F��_�R�%7�%7�%9�%9�:� ��b�g�,�,��� �� *�&�I�I� ��\�\�)�I�I� ��\�\�)�I�I�)�I�� �8��#�#��t�\�D�0��i��4�4�(�4�/� 1�� 1�� 1� 2�� 2�� 2�� 2�� 2r���c�����������������������t����������|t����������j��������������������r_|j��������}|dk����r|���������������������d������������}d|�d|�d�}|����������������������|d|z��|j��������������������}t����������j��������||������������}|S�)N�...r���z_cffi_array_len(((�)0)->rO����%s[0])r����r���rI��r����r4��r����r��)r���� tp_struct� field_name�tp_field� actual_length�ptr_struct_name�tp_items��� r���r����zRecompiler._field_typeQ��s��������h���0�0�� ?�$�O�M���%�%�"+�"6�"6�s�";�";���#�O�O�Z�Z�Z�!1� ��&�&�y�'�J�2F�'/�}�6��6�G���w� �>�>�H��r���c�����������������������|�����������������������|�������������|�j��������r,|�����������������������������������D�]}|����������������������|��������������d�S�d�S�r���)r����rs����anonymous_struct_fields�_struct_collecttype)r���r�����fldtypes��� r���r���zRecompiler._struct_collecttype]��sg���������b�!�!�!�� �� 2��5�5�7�7�� 2�� 2���(�(��1�1�1�1� 2�� 2� 2�� 2r���c����������� �������$����|j����������d�S�|�j��������}d|��}�|d��������������|d|�d|�d���������������|d��������������|d��������������|d�������������|����������������������|������������D�]�\��}}}} �|�����������������������������������s|d k����r|d k����r�|d|�d|�d |�d���������������>t ����������|t ����������j��������������������rJ|j���������|j��������dk����r8|j��������}|dz���}t ����������|t ����������j��������������������r|j���������-|j��������dk�����8�|d|� ��������������������dd|z��| ��������������d|�d����������������#�t����������$�r%} �|dt����������| ������������z���������������Y�d�} ~ ��d�} ~ ww�xY�w�|d��������������|d|�d|�d���������������|���������������d�S�)N�_cffi_checkfld_�_CFFI_UNUSED_FNzstatic void r��z *p)r����z8 /* only to generate compile-time warnings or errors */z (void)p;r���r5���z (void)((p->z) | 0); /* check that 'r����z' is an integer */r���z[0]rs��z*tmpzfield %r�r����z = &p->z; (void)tmp; }z /* %s */r���zstruct _cffi_align_z { char x; z y; };)r����r����r����r2��r����r���rI��r����r��r4��r���r����)r���r����r=��r]��r��� checkfuncname�fname�ftyper+����fqualr����s��� r����_struct_declzRecompiler._struct_decld��s;����� �;���F��z���/9�z�;� ��� ������� � � �u�u�u� =�>�>�>���S� � � ��� G�H�H�H���\����-1�->�->�r�-B�-B�� ,�� ,�)�E�5�(�E� ,��(�(�*�*���h�!�m�m���{�{����05���u�u�u�e�e�e�E��F��F��F���"�%���9�9��*�!�L�0�E�L�E�4I�4I�!�J�E�!�E�M�E��"�%���9�9��*�!�L�0�E�L�E�4I�4I������$�$�V�Z��-=�U�$�K�K�K�K��E�E������������%�� ,�� ,�� ,���\�C��F�F�*�+�+�+�+�+�+�+�+����� ,������S� � � ����:�:�:�u�u�u� M�N�N�N�������s����15D7�'BD7�7 E&�E!�!E&Nc����������������������|�j���������|���������}d�}g�}t����������|t����������j��������������������r|���������������������d�������������|j���������|���������������������d�������������d}||�j��������j��������j��������vr�|�||�j��������j��������j��������vr�|j���������n>|j ��������s!t����������|�����������������������������������������������rn|���������������������d�������������|j��������r:|j��������dk����rt����������|�d|j���������d��������������|���������������������d�������������n|���������������������d �������������d }d���������������������|������������pd}g�}|���t����������|����������������������|������������������������} | D��]\��} }}} |����������������������|| |������������}|����������������������|d |j���������d| �d��������������t(����������}|dk����r t*����������}d|z��}nK|�!t����������|t����������j��������������������r |j���������d}n%d|�|���������������������d������������n|j���������d| �d�}|�|dk����rd}n-|�d|j���������d| �d�}nd|���������������������d�������������d| �d�}|���������������������t3����������| |||t5����������||�j���������|������������������������������������������������t7����������|�j��������d���������������������}|�j��������d������������������������������|�������������|�d}d}d}n'|�d |j���������d!�}d"}nd#|�d�}d$|�d%�}d�}nd}d&}d&}|}|�j��������d'������������������������������t=����������|j��������|||||||�������������������������|�j��������� ��������������������|�������������d�S�)(N� _CFFI_F_UNION�_CFFI_F_OPAQUE�opaque�_CFFI_F_CHECK_FIELDSr���z is declared with 'pack=zi'; only 0 or 1 are supported in API mode (try to use "...;", which does not require a 'pack' declaration)�_CFFI_F_PACKED�_CFFI_F_EXTERNAL�external�|�0zfield 'r����r7���r���z %d /* bits */z (size_t)-1z sizeof(((r���r���rO���z((char *)&((z ) - (char *)0z offsetof(r5���r���r����z (size_t)-2����unnamedz sizeof(*(z)0)z-1 /* unknown alignment */zsizeof(zoffsetof(struct _cffi_align_z, y)r����r����)!r����r����r���� UnionTyper����r����rq���r����r�����partial�anyr����packedr3���rR���r��r����r�����_check_not_opaquer���r9���r:���rI��r����r4��r'���r����r0���r�����extendr?���r����rA��)r���r����r=��r]��r^��rA����reason_for_not_expandingrB���rF���r�����fldnamer���r+���r���r8���r����offsetrE����alignrD���s��� r���r_��zRecompiler._struct_ctx���s������_�R�(� �#'� ����b�%�/�*�*�� *��L�L��)�)�)� �;���L�L�)�*�*�*�'/�$��d�h�&�=�=�=��"��$�(�"2�"I�I�I��{�"����� 5�s�2�#=�#=�#?�#?�@�@�� 5�����3�4�4�4��y�� /��9�q�=�=�-�����R�Y�Y�Y�(�)��)��)� ����-�.�.�.���L�L�+�,�,�,�'1�$�������&�3����#�+��d�/�/��3�3�4�4�J�5?�� E�� E�1���(�E��*�*�2�w��@�@���&�&�w�w�:<�'�'�'�7�7�7�'K�M��M��M�����q�=�=�$�B�*�X�5�D�D��]�"�7�E�O�<�<��#���.�'�D�D���/8�.?�� � �c�*�*�*�09��?��?����!�D���=�H��M�M�)�F�F��*�*�!�������1�F�F��+��46�=�=��3D�3D�3D�3D�g�g�g�N�F�����g�v�t�X�$�R����)A�B�B�D��D�E��E��E��E��!$�D�J�w�$7� 8� 8���J�w��&�&�x�0�0�0��}�#����#����(�(�/8�~�~�~�?�D�8�E�E��)��,1�5�5�2�D�D�DN�J�J�P�E�����D��E� "��.�G�� �>�"�)�)��B�G�Z���e�W�-�x� 9�� 9� :�� :�� :�� � �$�$�R�(�(�(�(�(r���c������������������������t����������|t����������j��������������������r!|j��������}t����������|t����������j���������������������!t����������|t����������j��������������������r|j���������t ����������d|z���������������d�S�d�S�)Nz0%s is of an opaque type (not declared in cdef()))r����r���rI��r��r����r����rK��)r���r�����locations��� r���r���zRecompiler._check_not_opaque���s��������U�_�-�-�� ���B����U�_�-�-�� ��b�%�-�.�.�� O�2�;�3F��B�X�M�O��O�� O� O�� O�3F�3Fr���c����������������������t����������|�j�������������������������������������������������������}|���������������������d����������������|D�]�\��}}||�j��������vr�|j��������rt ����������d|�d��������������|j�����������������������������d������������r1|j��������dd������������ ����������������������������������r|j��������dd�����������}nA|j��������dk����r$|j ��������dk����rd}|����������������������|d�������������nt ����������d|���������������|����������������������|d�|���������������d�S�) Nc�����������������������|�d���������S�)Nr���r%���)�tp_orders��� r���r����z7Recompiler._add_missing_struct_unions.<locals>.<lambda>���s ������h�q�k��r���r|���zinternal inconsistency: z* is partial but was not seen at this point�$r����_IO_FILE�FILE) r��r����r����r����r����r���r3���r���� startswith�isdigit� forcenamerY��r_��)r���r����r�����orderr]��s��� r���r����z%Recompiler._add_missing_struct_unions���sJ����� ��4�&�,�,�.�.�/�/�����1�1��2�2�2��� 7�� 7�I�B����1�1�1��:��D�-�-�>@�b�b�/C��D��D��D���7�%�%�c�*�*��5�r�w�q�r�r�{�/B�/B�/D�/D��5�!#������J�J��W� �*�*�r�|�v�/E�/E�!'�J��%�%�b�&�1�1�1�1�-�-�/1�r�/4��5��5��5�� � ��T�:�6�6�6�� 7�� 7r���c������������������0�����|�����������������������|�������������d�S�r���)r���rQ��s��� r���� _generate_cpy_struct_collecttypez+Recompiler._generate_cpy_struct_collecttype���s������� � ��$�$�$�$�$r���c������������������r�����|����������������������d������������}d|v�r||���������������������dd������������fS�|d|z���fS�)Nr5���r.���r����)r4��r5��)r���r����r=��s��� r���� _struct_nameszRecompiler._struct_names���sD������� � �b�!�!���%�<�<��%�-�-��S�1�1�1�1��#��+�%�%r���c������������������H������|�j���������|g|����������������������|�������������R����d�S�r���)r���r���rQ��s��� r����_generate_cpy_struct_declz$Recompiler._generate_cpy_struct_decl��s1���������"�6�t�1�1�"�5�5�6�6�6�6�6�6r���c������������������H������|�j���������|g|����������������������|�������������R����d�S�r���)r_��r���rQ��s��� r����_generate_cpy_struct_ctxz#Recompiler._generate_cpy_struct_ctx ��s1����������5�d�0�0��4�4�5�5�5�5�5�5r���c�����������������������t����������|t����������j��������������������r|����������������������||�������������d�S�|����������������������|�������������d�S�r���)r����r���r�����_generate_cpy_enum_collecttyper���rQ��s��� r����#_generate_cpy_anonymous_collecttypez.Recompiler._generate_cpy_anonymous_collecttype��sL�������b�%�.�)�)�� )��/�/��D�9�9�9�9�9��$�$�R�(�(�(�(�(r���c�����������������������t����������|t����������j��������������������r|����������������������|�������������d�S�|����������������������||d|z����������������d�S��N�typedef_)r����r���r�����_generate_cpy_enum_declr���rQ��s��� r����_generate_cpy_anonymous_declz'Recompiler._generate_cpy_anonymous_decl��sS�������b�%�.�)�)�� ;��(�(��,�,�,�,�,����b�$� �T�(9�:�:�:�:�:r���c�����������������������t����������|t����������j��������������������r|����������������������||�������������d�S�|����������������������||d|z����������������d�S�r���)r����r���r����� _enum_ctxr_��rQ��s��� r����_generate_cpy_anonymous_ctxz&Recompiler._generate_cpy_anonymous_ctx��sS�������b�%�.�)�)�� :��N�N�2�t�$�$�$�$�$����R��z�D�'8�9�9�9�9�9r����constc������������������B����||f|�j���������v�rt����������d|�d|�d��������������|�j������������������������������||f�������������|�j��������}d|�d|��}|ry�|d|z����������������|d��������������|d|�d ���������������|d |�d|�d��������������|�&|d k����rd|fz��}�|d|�d���������������|d��������������|d��������������|d�������������nM|�J���|d|z����������������|d��������������|d|���������������������d�������������d|�d���������������|d��������������|���������������d�S�)Nzduplicate declaration of z 'r7����_cffi_r����z$static int %s(unsigned long long *o)r����z int n = (z) <= 0;z *o = (unsigned long long)((z) | 0); /* check that z is an integer */r���z%dUz if (!_cffi_check_int(*o, n, z))z n |= 2;z return n;r���zstatic void %s(char *o)z *(r���z)o = ro��)r��r���rA��r����r4��)r����is_intr���r�����categoryr���r���funcnames��� r����_generate_cpy_constzRecompiler._generate_cpy_const&��s�������d��t�3�3�3�#�#�6>�h�h����E�G��G�� G��� � �(�D�!1�2�2�2��z���$,�H�H�d�d�3���� ��D�7�(�B�C�C�C��D��I�I�I��D�D�4�4�4�1�2�2�2��D�D�:>�$�$����F�� G�� G�� G��&���?�?�"'�;�.�"8�K����[�[�[�J�K�K�K���]�#�#�#��D������D��I�I�I�I��&�&�&��D�*�X�5�6�6�6��D��I�I�I��D�D�R�]�]�3�%7�%7�%7�%7����>�?�?�?��D��I�I�I�������r���c������������������n�����|������������������������������������}|r|�j��������r|����������������������|�������������d�S�d�S�r���)r2��rs���r�����r���r����r���r���s��� r����"_generate_cpy_constant_collecttypez-Recompiler._generate_cpy_constant_collecttypeD��sI�������#�#�%�%���� &��.�� &��!�!�"�%�%�%�%�%� &�� &r���c������������������\�����|������������������������������������}|����������������������|||�������������d�S�r���)r2��r���r���s��� r���rx��z&Recompiler._generate_cpy_constant_declI��s1�������#�#�%�%��� � ���r�2�2�2�2�2r���c������������������2����|�j���������s*|�����������������������������������rt����������t����������d������������}n3|�j���������rt����������}nt ����������}|�j��������|���������}t����������||������������}|�j��������d������������������������������t����������|d|z��|�������������������������d�S�)Nr����r�����_cffi_const_%s) rs���r2��r�����OP_CONSTANT_INT�OP_DLOPEN_CONST�OP_CONSTANTr����r����r����r���)r���r����r���r���� const_kindrA���s��� r���r���z%Recompiler._generate_cpy_constant_ctxM��s��������$�� 5��);�);�)=�)=�� 5��_�b�1�1�G�G��$�� )�,� � �(� ����,�J��Z��4�4�G�� �8��#�#��t�-��4�g�>�>� @�� @�� @�� @�� @r���c������������������0�����|�����������������������|�������������d�S�r���)r����rQ��s��� r���r���z)Recompiler._generate_cpy_enum_collecttype]��s���������b�!�!�!�!�!r���c������������������F�����|j���������D�]}|����������������������d|��������������d�S�)NT)�enumeratorsr���)r���r����r���� enumerators��� r���r���z"Recompiler._generate_cpy_enum_decl`��s6�������.�� 7�� 7�J��$�$�T�:�6�6�6�6� 7�� 7r���c����������� ������������|�j���������|���������}t����������t����������d������������}|�j��������r|������������������������������������t����������|j��������|j��������������������D�]9\��}}|�j��������d���������� ��������������������t����������|d|z��||���������������������������:|�d|vr|�j��������sd|z��}d|z��}nn|���������������������|�j��������g�������������} |�j��������� ��������������������| ������������}t����������t����������|�j�����������������������������| d������������������������dk�����������������}d ���������������������|j��������������������} |�j��������d ���������� ��������������������t#����������|j��������|||| �������������������������d�S�)Nr����r����r����r���r���z sizeof(%s)z ((%s)-1) <= 0r���rN���r����)r����r�����OP_ENUMrs����check_not_partial�zipr���� enumvaluesr����r����r����build_baseinttyperq����sizeof�int�castrR���rU���r���)r���r����r=��rA���r���r���� enumvaluer���rX����basetprY���s��� r���r���zRecompiler._enum_ctxd��s{������_�R�(� ���"�%�%��� �� #�� � �"�"�"�%(�����%G�%G�� 3�� 3�!�J� ��J�x� �'�'��:�'7�*�'D�g�'0�2��2��2� 3�� 3�� 3�� 3�����E�!1�!1�$�:O�!1��%�'�D�$�u�,�F�F��)�)�$�(�B�7�7�F��8�?�?�6�*�*�D���T�X�]�]�6�2�6�6�7�7�!�;�<�<�F��8�8�B�N�+�+��� �6��!�!��R�W�j�$���A�A� C�� C�� C�� C�� Cr���c������������������V�����|�����������������������||������������������������������������������������d�S�r���)r���r ��rQ��s��� r����_generate_cpy_enum_ctxz!Recompiler._generate_cpy_enum_ctxy��s&���������r�2�>�>�+�+�,�,�,�,�,r���c�����������������������d�S�r���r%���rQ��s��� r����_generate_cpy_macro_collecttypez*Recompiler._generate_cpy_macro_collecttype��rW��r���c������������������L�����|dk����rd�}n|}|�����������������������d||��������������d�S�)Nr���Tr���)r���)r���r����r���r���s��� r����_generate_cpy_macro_declz#Recompiler._generate_cpy_macro_decl���s8������ ��;�;��K�K��K�� � ��t�� �E�E�E�E�Er���c������������������������|dk����r|�j���������rt����������d|�d��������������d�}n|}t����������t����������d������������}|�j��������d������������������������������t ����������|d|z��||��������������������������d�S�)Nr���z(cannot use the syntax '...' in '#define z ...' when using the ABI moder����r����r���r���)rs���r���r����r���r����r����r���)r���r����r���r���r���s��� r����_generate_cpy_macro_ctxz"Recompiler._generate_cpy_macro_ctx���s������� ��;�;��$�� 4�'�'�,0�D�D�3�4��4��4���K�K��K���"�-�-��� �8��#�#��t�-��4�g�#.� 0�� 0�� 0� 1�� 1�� 1�� 1�� 1r���c������������������������t����������|t����������j��������������������rF|j��������}|dk����rd|�d�}|����������������������|j��������d|z��������������}t����������j��������||������������}|S�)Nr���z_cffi_array_len(rO���r���)r����r���rI��r����rP��r��)r���r�����global_namer���r���s��� r���rP��zRecompiler._global_type���si�������b�%�/�*�*�� 9��I�M���%�%�%�9D��� F� ��'�'����;�1F�G�G�G����-�8�8�B�� r���c������������������X�����|�����������������������|����������������������||�������������������������d�S�r���)r����rP��rQ��s��� r����"_generate_cpy_variable_collecttypez-Recompiler._generate_cpy_variable_collecttype���s,���������d�/�/��D�9�9�:�:�:�:�:r���c������������������Z����|�j���������}|����������������������||������������}t����������|t����������j��������������������r|j��������� |j��������}d}nd}d|�d�}�|d|���������������������||�j���������������������z�����������������|d��������������|d|�d |�d ���������������|d��������������|���������������d�S�)Nr5����&z*_cffi_var_r��rm��r���r����z return r��r0��r���) r����rP��r����r���rI��r����r��r4��r����)r���r����r���r��� ampersandr����s��� r����_generate_cpy_variable_declz&Recompiler._generate_cpy_variable_decl���s��������z�� � � �r�4� (� (���b�%�/�*�*�� �r�y�/@���B��I�I��I���)-���.����Y����t�4�3F��G�G� G�H�H�H���S� � � ����9�9�9�d�d�d� 3�4�4�4���S� � � �������r���c����������� ������������|�����������������������||������������}|�j��������|���������}|�j��������rt����������}nt����������}|�j��������d������������������������������t����������|d|z��t����������||�������������������������������������d�S�)Nr����z_cffi_var_%s) rP��r����rs���� OP_GLOBAL_VAR�OP_GLOBAL_VAR_Fr����r����r���r����)r���r����r���rA���r8���s��� r����_generate_cpy_variable_ctxz%Recompiler._generate_cpy_variable_ctx���s������� � � �r�4� (� (���_�R�(� �� �� !��B�B� �B�� �8��#�#��t�^�d�2�F�2�z�4J�4J�K�K� M�� M�� M�� M�� Mr���c������������������h�����t����������|t����������j��������������������sJ��|����������������������|�������������d�S�r���)r����r���r����r����rQ��s��� r����'_generate_cpy_extern_python_collecttypez2Recompiler._generate_cpy_extern_python_collecttype���s5�������"�e�3�4�4�4�4�4����b�!�!�!�!�!r���c����������� ������������|�j���������}t����������|j��������t����������j��������������������rd}n$d|z��}d|j�����������������������������d|�������������d�}�|d|z����������������|d|�j���������d|�d |�d ���������������|���������������g�}d|z��}t����������|j��������������������D�]3\��}} | ���������������������d|z��|������������} |� ��������������������| ��������������4d � ��������������������|������������}|pd}|�d|�d�}|j��������dk����rd|z���}d��} t����������t����������|j��������������������dz��d������������}�| |j��������������������rt����������|d������������}t����������|j��������t����������j��������������������r9d|j�����������������������������d������������||j�����������������������������d������������|fz��}�||�|j�����������������������������|����������������������������|d��������������|d|z����������������|d�������������t����������|j��������������������D�]o\��}} d|z��} t����������| t����������j��������������������s�| | ������������rd| z���} t����������j��������| ������������} �|d| ���������������������d������������|dz��| fz����������������p�|d|z���������������t����������|j��������t����������j��������������������s'�|d|j�����������������������������d�������������d���������������|d ��������������|���������������|�xj��������d!z ��c_��������d�S�)"Nr���rp��z(int)sizeof(r5���rO���z3static struct _cffi_externpy_s _cffi_externpy__%s =r���r����r/���z , 0, 0 };ri��z a%dr���rk��r��� __stdcallz_cffi_stdcall c������������������L�����t����������|�t����������j��������������������o |�j��������dk����S�)NrG��)r����r���rv��r���r����s��� r����may_need_128_bitsz9Recompiler._extern_python_decl.<locals>.may_need_128_bits���s&�������r�5�#6�7�7��-��G�}�,� .r���r^�������z!sizeof(%s) > %d ? sizeof(%s) : %dr����z char a[%s];z char *p = a;za%dr ��z *(%s)(p + %d) = %s;r���z, _cffi_call_python(&_cffi_externpy__%s, p);z return *(z)p;r���r���)r����r����rt��r���r����r4��rr���r����r����r����rR���ry��rw���r0���r����r����r��)r���r����r���� tag_and_spacer���size_of_resultrM��r~��r����r&��r���r���r���r��� size_of_as��� r����_extern_python_declzRecompiler._extern_python_decl���sl������z���b�i���0�0�� 4� �N�N�$�t�+�G�G�� �$�$�R��1�1�1�1�4�N��� B�T� I�J�J�J��������d�d�d�N�N�N�4�� 5�� 5�� 5������� �"�T�)�� ���)�)�� "�� "�G�A�t��/�/�&�1�*�g�6�6�C����S�!�!�!�!����9�-�-��'�1�6��)-���~�~�~�>�� �6�[� � �!1�4F�!F�� .�� .�� .����B�G���Q���*�*� ���R�Y�'�'�� +��I�r�*�*�I��b�i��!4�5�5�� 5�;�� �$�$�R�(�(�)�� �$�$�R�(�(�)�?5��5�I�� ��}�}�b�i�&:�&:�;M�&N�&N�&N� O�P�P�P���S� � � ���_�y� (�)�)�)��� ���� ���)�)�� M�� M�G�A�t��!�)�C��4��!4�5�5�� /�%�%�d�+�+� /��C�i���(��.�.���D�(�D�O�O�C�,@�,@�!�A�#�s�+K�K�L�L�L�L��� ;�d� B�C�C�C��"�)�U�^�4�4�� D��D�D�r�y�';�';�C�'@�'@�'@�'@�B�C�C�C���S� � � ���������a�����r���c������������������4�����|�����������������������||d�������������d�S�)Nrm���r��rQ��s��� r���� _generate_cpy_extern_python_declz+Recompiler._generate_cpy_extern_python_decl��s ������� � ��T�9�5�5�5�5�5r���c������������������4�����|�����������������������||d�������������d�S�)NzCFFI_DLLEXPORT r ��rQ��s��� r����#_generate_cpy_dllexport_python_declz.Recompiler._generate_cpy_dllexport_python_decl ��s!������� � ��T�+<�=�=�=�=�=r���c������������������4�����|�����������������������||d�������������d�S�)Nr5���r ��rQ��s��� r����'_generate_cpy_extern_python_plus_c_declz2Recompiler._generate_cpy_extern_python_plus_c_decl ��s ������� � ��T�2�.�.�.�.�.r���c����������������������|�j���������rt����������d�������������|j��������rt����������d�������������|�j��������|���������}t����������t����������|������������}|�j��������d������������������������������t����������|d|z��||�������������������������d�S�)Nz,cannot use 'extern "Python"' in the ABI modez$a vararg function is extern "Python"r����z&_cffi_externpy__%s) rs���r���rd��r3���r����r�����OP_EXTERN_PYTHONr����r����r���)r���r����r���rA���r���s��� r����_generate_cpy_extern_python_ctxz*Recompiler._generate_cpy_extern_python_ctx��s�������� �� B�#�@�B��B�� B� �;�� P�%�&N�O�O�O��_�R�(� ��)�:�6�6��� �8��#�#��t�2�T�9�7�D�I�I� K�� K�� K�� K�� Kr���c������������������r����|�j���������}�|d�������������t����������|t����������������������s|���������������������d������������}n|���������������������d������������� �|���������������������d�������������n#�t ����������$�r�d|z���}Y�nw�xY�w|���������������������d������������D�]�}|}t����������d������������t����������u�rt����������t����������|������������}nt����������|������������dd����������}�|d |z���������������������������������������������������d }|D�]+}t����������|������������dk����r �||�������������d }|d|fz��z ��}�,�||���������������d�S�) Nz=// # NB. this is not a string because of a size limit in MSVCzutf-8�asciis���# -*- encoding: utf8 -*- Tz//r���r����z// r5����L���z%d,) r����r�����bytes�encode�decode�UnicodeDecodeError� splitlinesr&���map�ordr*���rstripr0���)r����sr���linerD����printed_line�cs��� r���r��z)Recompiler._print_string_literal_in_array��su������z���� L�M�M�M��!�U�#�#�� �����!�!�A�A� �H�H�W���� 2� �H�H�W������!�� 2�� 2�� 2�-��1�A�A�A� 2�����L�L��&�&�� �� �D��G��D�z�z�U�"�"��3��~�~���� ��.�.��2��.���D�%�'�/�)�)�+�+�,�,�,��L��� -�� -���|�$�$��*�*��D��&�&�&�#%�L������,����D������ �� s����A*��*A<�;A<c������������������J�����t����������t����������t����������������������|�j��������|<���d�S�r���)r�����OP_PRIMITIVE� PRIM_VOIDr�����r���r����r��s��� r����_emit_bytecode_VoidTypez"Recompiler._emit_bytecode_VoidType=��s������!'��i�!@�!@������r���c������������������d�����t�����������|j�����������������}t����������t����������|������������|�j��������|<���d�S�r���)�PRIMITIVE_TO_INDEXr���r����r9��r����)r���r����r��rg���s��� r����_emit_bytecode_PrimitiveTypez'Recompiler._emit_bytecode_PrimitiveType@��s*������'���0� �!'��j�!A�!A������r���c������������������v�����d|j����������d|j����������d|j����������d�}t����������t����������|������������|�j��������|<���d�S�)Nz_cffi_prim_int(sizeof(z), ( ((z)-1) | 0 /* check that z' is an integer type */ ) <= 0)�r���r����r9��r�����r���r����r��r4��s��� r����!_emit_bytecode_UnknownIntegerTypez,Recompiler._emit_bytecode_UnknownIntegerTypeD��sD���������$&�7�7�7�B�G�G�G�R�W�W�W�>���"(��a�!8�!8������r���c������������������f�����d|j����������d|j����������d�}t����������t����������|������������|�j��������|<���d�S�)Nz_cffi_prim_float(sizeof(z) * (((z6)1) / 2) * 2 /* integer => 0, float => 1 */ )rA��rB��s��� r����_emit_bytecode_UnknownFloatTypez*Recompiler._emit_bytecode_UnknownFloatTypeJ��s<��������� �W�W�W�b�g�g�g�/���"(��a�!8�!8������r���c������������������ ����t����������t����������|�j��������|j�����������������������������|�j��������|<���|dz ��}|j��������D�]h}|�j��������|���������}||k����rNt ����������|t����������j��������������������r|�� ��������������������||�������������nt����������t����������|������������|�j��������|<���|dz ��}�it����������|j��������������������}|j ���������(|j ��������dk����r|dz��}nt����������d|j �����������������������t����������t����������|������������|�j��������|<���d�S�)Nr���r��r\���zabi=)r�����OP_FUNCTIONr����rt��r����r����r����r���rv��r?��r9���r���rd��ry��r3����OP_FUNCTION_END)r���r����r��r����� realindexrB���s��� r����_emit_bytecode_RawFunctionTypez)Recompiler._emit_bytecode_RawFunctionTypeP��s�����!'��T�_�R�Y�5O�!P�!P����� �� ���7�� �� �C����,�I�� �!�!��c�5�#6�7�7��H��5�5�c�5�A�A�A�A�-3�G�Y�-G�-G�D�O�E�*��Q�J�E�E��B�K� � �� �6���v��$�$��� ���)�)�b�f�f�*>�?�?�?�!'���!?�!?������r���c������������������`�����t����������t����������|�j��������|j�����������������������������|�j��������|<���d�S�r���)r����� OP_POINTERr����ra��r����r;��s��� r����_emit_bytecode_PointerTypez%Recompiler._emit_bytecode_PointerTypec��s'������!'� �D�O�B�I�4N�!O�!O������r���c������������������~�����|������������������������������������}t����������t����������|�j��������|���������������������|�j��������|<���d�S�r���)r����r����rL��r����r����)r���r����r���raws��� r����_emit_bytecode_FunctionPtrTypez)Recompiler._emit_bytecode_FunctionPtrTypei��s6������� � �"�"��!'� �D�O�C�4H�!I�!I������r���c����������������������|�j���������|j�����������������}|j���������t����������t����������|������������|�j��������|<���d�S�|j��������dk����r4t ����������dt����������|���������������������������������dd�������������d��������������|�j��������|dz������������dk����sJ��t����������t����������|������������|�j��������|<���t����������d�t����������|j��������������������������������|�j��������|dz���<���d�S�)Nr���ztype z/*...*/zb badly placed: the '...' array length can only be used on global arrays or on fields of structuresr���r���) r����r��r����r����� OP_OPEN_ARRAYr����r���r����r5���OP_ARRAY)r���r����r��� item_indexs��� r����_emit_bytecode_ArrayTypez#Recompiler._emit_bytecode_ArrayTypem��s��������_�R�W�-� � �9��%+�M�:�%F�%F�D�O�E�"�"�"� �Y�%� � �#�#����G�G�O�O�I�u�5�5�5�5�8�9��9�� 9� ��?�5�1�9�-��6�6�6�6�%+�H�j�%A�%A�D�O�E�"�)/��c�"�)�n�n�)E�)E�D�O�E�A�I�&�&�&r���c������������������Z�����|�j���������|���������}t����������t����������|������������|�j��������|<���d�S�r���)r����r�����OP_STRUCT_UNIONr����)r���r����r���struct_indexs��� r����_emit_bytecode_StructTypez$Recompiler._emit_bytecode_StructType{��s+�������*�2�.��!'���!F�!F������r���c������������������Z�����|�j���������|���������}t����������t����������|������������|�j��������|<���d�S�r���)r����r����r���r����)r���r����r��� enum_indexs��� r����_emit_bytecode_EnumTypez"Recompiler._emit_bytecode_EnumType���s)�������[��_� �!'���!<�!<������r����F)r5���r���)Nr���N)Vr"���r#���r$���r��r���ry���r����r����r����r����r����r����r����r����r����r����r��r����r'��r?��rD��r7��rN��rR��rT��rV��rY��rb��re��r���r���r����r���r���r_��r���r����r����_generate_cpy_union_collecttyper���r����_generate_cpy_union_declr����_generate_cpy_union_ctxr���r���r���r���r���rx��r���r���r���r���r��r��r��r��rP��r��r��r��r���*_generate_cpy_dllexport_python_collecttype�._generate_cpy_extern_python_plus_c_collecttyper��r!��r#��r%��r(���"_generate_cpy_dllexport_python_ctx�&_generate_cpy_extern_python_plus_c_ctxr��r<��r?��rC��rE��rJ��rM���_emit_bytecode_ConstPointerType�_emit_bytecode_NamedPointerTyperP��rU��rY���_emit_bytecode_UnionTyper\��r%���r���r���ro���ro���~���s���������������M�%��%��%��%�0��0��0�81��81��81�t <�� <�� <�-��-��-�&�����&�H�G�G�I�,��,��,�>#��#��#��#�2��2��2������k��k��k�Z"��"��"�0��0��0�h%��%��%�+(��+(��+(�ZK��K��K������*��*��*�F=��=��=�<��<��<� �� �� �F��F��F�+��+��+�&��&��&� `��`��`�D2��2��2�, �� �� �2��2��2� �� �� �DT)��T)��T)��T)�lO��O��O�7��7��7�.%��%��%�&F�#�&��&��&�7��7��7�8��6��6��6�6��)��)��)�;��;��;�:��:��:��CJ�(,��������<&��&��&� 3��3��3�@��@��@� "��"��"�7��7��7��7�C��C��C�*-��-��-� �� �� �F��F��F�1��1��1�"�����;��;��;������.M��M��M�"��"��"� �.�.�.�4�4 ��4 ��4 �l6��6��6�>��>��>�/��/��/� K�� K�� K��&�&�&�,������<A��A��A�B��B��B�9��9��9�9��9��9�@��@��@�&P��P��P��'A�#�&@�#�J��J��J�F��F��F�G��G��G�� 9��=��=��=��=��=r���ro���)r ���c���������������������������e�Zd�Z��fd�Z��xZS�)�NativeIOc������������������������t����������|t����������������������r|���������������������d������������}t����������t����������|����������������������������������|�������������d�S�)Nr*��)r�����unicoder-���superri��r����)r���r4��r����s��� �r���r����zNativeIO.write���sJ��������!�W�%�%�� &��H�H�W�%�%���(�D�!�!�'�'��*�*�*�*�*r���)r"���r#���r$���r����� __classcell__)r����s���@r���ri��ri�����s8��������������� +�� +�� +�� +�� +�� +�� +�� +�� +r���ri��c������������������X����|rt����������d|���������������t����������|�||d�u��������������}|������������������������������������|������������������������������������t ������������������������}|���������������������||�������������|�����������������������������������} �t����������|d������������5�}|���������������������t����������|������������dz���������������|k����rt����������� �d�d�d��������������n#�1�swxY�w�Y���|rt����������d�������������dS�#�t����������$�r��d|t����������j����������������������fz��} t����������| d������������5�}|� ��������������������|�������������d�d�d��������������n#�1�swxY�w�Y��� �t����������j��������| |�������������n9#�t����������$�r,�t����������j��������|�������������t����������j��������| |�������������Y�nw�xY�wY�d S�w�xY�w) Nzgenerating )rs���r����r���z(already up-to-date)Fz%s.~%d�wT)�printro���r����r����ri��r�����getvaluer�����readr0����IOErrorr�����getpidr�����rename�OSError�unlink) rq���rr���r�����target_file�verbose� recompilerr�����output�f1�tmp_files ��� r����_make_c_or_py_sourcer~�����sL�������0� ����.�/�/�/��C��.6�$�.>�A��A��A�J��!�!�#�#�#��"�"�$�$�$�� � �A�� � ��H�-�-�-� �Z�Z�\�\�F�� �+�s� #� #�� �r��w�w�s�6�{�{�Q��'�'�6�1�1�� ��2� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� ���� *��(�)�)�)��u���� �� �� ��{�B�I�K�K�8�8�� �(�C� � �� �B��H�H�V���� �� �� �� �� �� �� �� �� �� �� ����� �� �� �� � -��I�h��,�,�,�,���� -�� -�� -��I�k�"�"�"��I�h��,�,�,�,�,� -������t�t� ���s~���� C6��1C�C6��C�C6��C� C6��62F)�(E �>F)� E �F)�E �F)�E,�+F)�,3F"�F)�!F"�"F)�(F)Fc������������������0�����|�J��t����������|�||||������������S�r����r~��)rq���rr���r����� target_c_filery��s��� r���� make_c_sourcer������s+������������[�(�M� '�)��)��)r���c������������������(�����t����������|�|d�||������������S�r���r���)rq���rr����target_py_filery��s��� r����make_py_sourcer������s��������[�$�� '�)��)��)r���c����������������������|����������������������d������������} �t����������j��������t����������j��������j��������|�g|d�d�����������R����������������n#�t ����������$�r�Y�nw�xY�w|dxx���������|z ��cc<���t����������j��������j��������|�g|�R���|fS�)Nr����r����)r����r�����makedirsr����rR���rv��)� outputdir�modname� extension�partss��� r����_modname_to_filer������s��������M�M�#���E� � ��B�G�L��8�U�3�B�3�Z�8�8�8�9�9�9�9���� �� �� ��� ���� �"�I�I�I���I�I�I� �7�<� �*�E�*�*�*�E�1�1s����1A �� A�Ac������������������x�����t����������||������������}|����������������������|||f�������������t����������|||�������������|S�r���)r����r�����setattr)� patchlist�clsr����new_meth�olds��� r����_patch_methr������sC������ �#�t� � �C� ���c�4��%�&�&�&��C��x� � � ��Jr���c������������������T�����t����������|�������������D�]\��}}}t����������|||��������������d�S�r���)�reversedr���)r���r���r����old_meths��� r����_unpatch_methsr������s?������'� �2�2��%��%���T�8���T�8�$�$�$�$�%��%r���c������������������������t�����������j��������dk����rddlm}�t ����������|�|dd���������������t�����������j��������dk����rddlm}��fd�}t ����������|�|d |�������������d�S�d�S�) Nr���r���)�MSVCCompiler�_remove_visual_c_refc�����������������������|S�r���r%���)r���� manifest_files��� r���r����z&_patch_for_embedding.<locals>.<lambda>���s������ ��r����darwin)� CCompilerc������������������������d|�j���������v�r=t����������|�j���������������������|�_���������|�j������������������������������d������������}d|�j���������|<�����|�g|�R�i�|��S�)Nz-bundlez-dynamiclib)� linker_sor��r��)r���r�����kwdsr�����old_link_shared_objects��� �r����my_link_shared_objectz3_patch_for_embedding.<locals>.my_link_shared_object���sc��������D�N�*�*�!%�d�n�!5�!5����N�(�(��3�3��$1���q�!�)�)�$�>��>�>�>��>�>�>r����link_shared_object)�sys�platform�distutils.msvc9compilerr���r����distutils.ccompilerr���)r���r���r���r���r���s��� @r����_patch_for_embeddingr������s�������� �|�w���8�8�8�8�8�8��I�|�-C�=�=� ?�� ?�� ?���|�x���1�1�1�1�1�1� ?�� ?�� ?�� ?�� ?��"-�Y� �-A�-B�"D��"D����� �r���c�������������������������ddl�m}�����������������������d������������r;�d�d�����������t����������j��������dk����r�dz ���nt����������j��������dk����r�dz ���n�d z ���t����������|�|d �fd��������������d�S�)Nr���)� build_extz.*r���r���z.dllr���z.dylibz.so�get_ext_filenamec�������������������������S�r���r%���)r����ext_name�targets��� �r���r����z#_patch_for_target.<locals>.<lambda>���s�������v��r���)�distutils.command.build_extr����endswithr���r���r���)r���r���r���s��� ` r����_patch_for_targetr������s��������5�5�5�5�5�5�����t������������<�7�"�"��f��F�F� �\�X� %� %��h��F�F��e�O�F�� �9�&8�-�-�-�-�/��/��/��/��/r���r����T�.cc����������������������t����������|t����������������������s|���������������������d������������}|�j��������r|����������������������|�������������|���|�j��������d�u}|r|����������������������|�������������|�0t����������|||������������\��}} |r|g| z���} t����������j ��������j ��������| ��}n|}| � |rd|z��} nd} t����������j��������||fi�|��}t����������|�||||�������������}|r�g�}t����������j����������������������} �|rt����������|�������������| dk����rt!����������|| �������������|r<|dk����rd}nd}t#����������|�dt����������j �����������������������������|���������������������������t����������j��������|�������������t����������j��������d||| ������������}t����������j��������|�������������t+����������|�������������n(#�t����������j��������|�������������t+����������|�������������w�xY�w|S�||fS�|�t����������||d ������������\��}}t-����������|�|||�������������}|r|S�d�|fS�) Nr*��z%s.*r���)ry��r����zthe current directory isz setting the current directory tor.���z.py)r����r����r-���_windows_unicode�_apply_windows_unicoder���_apply_embedding_fixr���r����r����rR���r���� get_extensionr����getcwdr���r���rp���abspath�chdir�compiler���r���)rq���rr���r�����tmpdir�call_c_compiler�c_file�source_extension�extradir�compiler_verboser����debugr���� embeddingr���� ext_c_file�ext�updatedr����cwd�msg�outputfilenamer����s��� r���� recompiler������sv�������k�3�'�'��2�!�(�(��1�1�� ���)��"�"�4�(�(�(����^�4�/� ��� +��$�$�T�*�*�*��>�,�V�[�-=�?��?�M�F�E��� +�!� �U�*�����u�-�J�J��J��>��� ��+�-������'� �K�H�H�4�H�H����[�(�F�(8�:��:��:���� ��I��)�+�+�C� *���4�(��3�3�3��S�=�=�%�i��8�8�8�#��D���}�}�8���@���S�S�S�"�'�/�/�&�*A�*A�*A�B�C�C�C���� � � �!,�!4�S�#�5E�u�"N��"N������ � � ��y�)�)�)�)������ � � ��y�)�)�)�)����!�!���<���>�(���e�D�D�I�F�A� ��k�6�)9�;��;��;���� !��M���=� s ����)BF��%Gr]��)r����TNr���Nr���NN)!r����r����ior5���r���r����errorr����cffi_opcodert���r��r6��r����version_infor��r���r'���r?���rU���ri���ro����StringIOri���BytesIOr~��r���r���r���r���r���r���r���r���r%���r���r����<module>r������s������������������������������ �� �� �� �� �� �� �� ��$��$��$��$��$��$������������������<�7�*��.�c�.>��.G��.��#�v�-���1��1��1��1��1��1��1��1� )��)��)��)��)��)��)��)�8#��#��#��#��#��#��#��#�:?��?��?��?��?��?��?��?�0 K�� K�� K�� K�� K�� K�� K�� K�D=��D=��D=��D=��D=��D=��D=��D=�N(���t����{�H�H�+��+��+��+��+�2�:��+��+��+������8)��)��)��)� )��)��)��)�2��2��2������%��%��%�D��D��D�(/��/��/�"�GK�;?�59�<!��<!��<!��<!��<!��<!r���