Ë
    #´˜jÓ  ã                   óR   — d Z ddlmZ ddlmZmZmZ  G d„ dej                  «      Zy)z•Fixer for exec.

This converts usages of the exec statement into calls to a built-in
exec() function.

exec code in ns1, ns2 -> exec(code, ns1, ns2)
é   )Ú
fixer_base)ÚCommaÚNameÚCallc                   ó   — e Zd ZdZdZd„ Zy)ÚFixExecTzx
    exec_stmt< 'exec' a=any 'in' b=any [',' c=any] >
    |
    exec_stmt< 'exec' (not atom<'(' [any] ')'>) a=any >
    c                 ó”  — |sJ ‚| j                   }|d   }|j                  d«      }|j                  d«      }|j                  «       g}d|d   _        |�)|j	                  t        «       |j                  «       g«       |�)|j	                  t        «       |j                  «       g«       t        t        d«      ||j                  ¬«      S )NÚaÚbÚcÚ é    Úexec)Úprefix)ÚsymsÚgetÚcloner   Úextendr   r   r   )ÚselfÚnodeÚresultsr   r
   r   r   Úargss           ú(lib/python3.12/lib2to3/fixes/fix_exec.pyÚ	transformzFixExec.transform   s¢   € ÙˆˆwØ�y‰yˆØ�C‰LˆØ�K‰K˜ÓˆØ�K‰K˜ÓˆØ—‘“	ˆ{ˆØˆˆQ‰ŒØˆ=Ø�K‰Kœ› !§'¡'£)Ð,Ô-Øˆ=Ø�K‰Kœ› !§'¡'£)Ð,Ô-ä”D˜“L $¨t¯{©{Ô;Ð;ó    N)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚPATTERNr   © r   r   r   r      s   „ Ø€Mð€Gó<r   r   N)	Ú__doc__r   r   Ú
fixer_utilr   r   r   ÚBaseFixr   r!   r   r   Ú<module>r%      s'   ðñõ ß *Ñ *ô<ˆj× Ñ õ <r   