§
    OŠtj   ã                   ó@   — d dl mZ d dlmZ d dlmZ d dlmZ 	 dd„ZdS )	é    )Úchain)ÚModule)ÚDummy)ÚFCodePrinter© Nc                 ó  — |pdddœ}t          |¦  «        }t          ¦   «         }t          | t          ¦  «        rt	          d¦  «        ‚t          |t          ||g¦  «        | ¦  «        }|                     |¦  «        }dd                     d„ |j         	                    ¦   «         D ¦   «         ¦  «        z  }|dz  }|d	z  }|d
d                     d„ | D ¦   «         ¦  «        z  z  }| 
                    |                     |¦  «        |¦  «        S )a”   Creates a ``Module`` instance and renders it as a string.

    This generates Fortran source code for a module with the correct ``use`` statements.

    Parameters
    ==========

    definitions : iterable
        Passed to :class:`sympy.codegen.fnodes.Module`.
    name : str
        Passed to :class:`sympy.codegen.fnodes.Module`.
    declarations : iterable
        Passed to :class:`sympy.codegen.fnodes.Module`. It will be extended with
        use statements, 'implicit none' and public list generated from ``definitions``.
    printer_settings : dict
        Passed to ``FCodePrinter`` (default: ``{'standard': 2003, 'source_format': 'free'}``).

    iÓ  Úfree)ÚstandardÚsource_formatz7This function expects to construct a module on its own.z   %s
z   
c                 óJ   — g | ] \  }}d |›dd                      |¦  «        ›�‘Œ!S )zuse z, only: ú, )Újoin)Ú.0ÚkÚvs      úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/codegen/futils.pyú
<listcomp>z$render_as_module.<locals>.<listcomp>#   sL   € ð /Uð /Uð /UÙ04°°1°1ð FGÀQÀQÈÏ	Ê	ÐRSÉÌÈÐ/Uð /Uð /Uð /Uó    z   implicit none
z   private
z   public %s
r   c                 óX   — g | ]'}t          |d d¦  «        ¯t          |j        ¦  «        ‘Œ(S )ÚnameN)ÚgetattrÚstrr   )r   Únodes     r   r   z$render_as_module.<locals>.<listcomp>'   s5   € Ð3zÐ3zÐ3zÀtÕ^eÐfjÐlrÐtxÑ^yÔ^yÐ3zµC¸¼	±N´NÐ3zÐ3zÐ3zr   )r   r   Ú
isinstancer   Ú
ValueErrorr   Údoprintr   Úmodule_usesÚitemsÚreplace)	Údefinitionsr   ÚdeclarationsÚprinter_settingsÚprinterÚdummyÚmodÚfstrÚmodule_use_strs	            r   Úrender_as_moduler(   	   s+  € ð& (ÐV¸ÈvÐ+VÐ+VÐÝÐ+Ñ,Ô,€GÝ‰GŒG€EÝ�+�vÑ&Ô&ð TÝÐRÑSÔSÐSÝ
�•u˜\¨E¨7Ñ3Ô3°[Ñ
AÔ
A€CØ�?Š?˜3ÑÔ€DØ §¢ð /Uð /UØ8?Ô8K×8QÒ8QÑ8SÔ8Sð/Uñ /Uô /Uñ "Vô "Vñ V€NàÐ*Ñ*€NØ�nÑ$€NØÐ&¨¯ªÐ3zÐ3zÈ{Ð3zÑ3zÔ3zÑ){Ô){Ñ{Ñ{€NØ�<Š<˜Ÿš¨Ñ.Ô.°Ñ?Ô?Ð?r   )r   N)	Ú	itertoolsr   Úsympy.codegen.fnodesr   Úsympy.core.symbolr   Úsympy.printing.fortranr   r(   r   r   r   ú<module>r-      st   ðØ Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø #Ð #Ð #Ð #Ð #Ð #Ø /Ð /Ð /Ð /Ð /Ð /à Bð@ð @ð @ð @ð @ð @r   