+
    üÐjØ  ã                   óä   a € R t0 t R t^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHt ]P                  ! 4       s ! R R4      t/ t] ^ k R tR	 t ! R
 R]4      tR tR tRR ltR# )z&
*Real* reloading support for Python.
N)Úreload)Ú
ModuleType)ÚDict)ÚlogÚreflectc                   ó:   a € ] tR t^t o Rt]tR tR tR tRt	V t
R# )Ú	SensitivezÀ
A utility mixin that's sensitive to rebuilds.

This is a mixin for classes (usually those which represent collections of
callbacks) to make sure that their code is up-to-date before running.
c                ó,   € V P                   \         8  pV# ©N©ÚlastRebuild)ÚselfÚyns   & Ú8/usr/lib/python3/dist-packages/twisted/python/rebuild.pyÚneedRebuildUpdateÚSensitive.needRebuildUpdate$   s   € Ø×Ñ¤Ñ+ˆØˆ	ó    c                ó:   € \         P                   ! 4       V n        R # r
   )Útimer   ©r   s   &r   ÚrebuildUpToDateÚSensitive.rebuildUpToDate(   s   € ÜŸ9š9›;ˆÖr   c                óN  € \        V4      pV\        P                  8X  d   \        V4      # V\        P                  8X  dO   VP
                  f!   \        VP                  VP                  4      # \        VP
                  VP                  4      # \        P                  ! R4       V# )z�
Get the latest version of an object.

This can handle just about anything callable; instances, functions,
methods, and classes.
zwarning returning anObject!)ÚtypeÚtypesÚFunctionTypeÚlatestFunctionÚ
MethodTypeÚ__self__ÚgetattrÚim_classÚ__name__r   Úmsg)r   ÚanObjectÚts   && r   ÚlatestVersionOfÚSensitive.latestVersionOf+   s„   € ô �‹NˆØ”×"Ñ"Ô"Ü! (Ó+Ð+Ø”%×"Ñ"Ô"Ø× Ñ Ò(Ü˜x×0Ñ0°(×2CÑ2CÓDÐDä˜x×0Ñ0°(×2CÑ2CÓDÐDä�GŠGÐ1Ô2ØˆOr   r   N)r!   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r%   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s%   ø‡ € ñð €Kòò'÷ð r   r   c                óŒ   € \        V P                  4      p\        P                  V4      pVf   V # \	        W P
                  4      # )z'
Get the latest version of a function.
)ÚidÚ__globals__Ú_modDictIDMapÚgetr   r!   )ÚoldFuncÚdictIDÚmodules   &  r   r   r   B   s?   € ô �×#Ñ#Ó$€FÜ×Ñ˜vÓ&€FØ‚~ØˆÜ�6×+Ñ+Ó,Ð,r   c                ó¢  € \         P                  ! V P                  4      p\        WP                  4      pVP
                   Uu. uF  p\        V4      NK  	  ppVP                  R8X  d   V#  \        V4      Vn        V# u upi   \         d?    \        T4      pT! TP                  \        T4      \        TP                  4      4      u # i ; i)z$
Get the latest version of a class.
Úbuiltins)r   ÚnamedModuler'   r   r!   Ú	__bases__ÚlatestClassÚtupleÚ	TypeErrorr   ÚdictÚ__dict__)ÚoldClassr5   ÚnewClassÚbaseÚnewBasesÚctors   &     r   r:   r:   O   s»   € ô × Ò  ×!4Ñ!4Ó5€FÜ�v×0Ñ0Ó1€HØ.6×.@Ò.@ÓAÑ.@ d”˜DÖ!Ñ.@€HÐAà×Ñ˜jÔ(àˆðQä" 8›_ˆÔØˆùò Bøô ô QÜ�H‹~ˆÙ�H×%Ñ%¤u¨X£¼¸X×=NÑ=NÓ8OÓPÒPðQús   ÁB Á.B ÂACÃCc                   ó   € ] tR t^dtRtRtR# )ÚRebuildErrorzL
Exception raised when trying to rebuild a class whereas it's not possible.
© N)r!   r'   r(   r)   r*   r+   rF   r   r   rE   rE   d   s   † õr   rE   c                ó:   € \        V P                  4      V n        R# )z$
Updates an instance to be current.
N)r:   Ú	__class__r   s   &r   ÚupdateInstancerI   j   s   € ô ! §¡Ó0€D†Nr   c                óÌ   € VR8X  d   \        R4      h\        V 4       \        P                  ! R\        P
                  ! V P                  4       RV R24       \        W4      pV# )z4
A getattr method to cause a class to be refreshed.
Ú__del__zWithout this, Python segfaults.z(rebuilding stale z instance (z)))ÚAttributeErrorrI   r   r"   r   ÚqualrH   r   )r   ÚnameÚresults   && r   Ú__injectedgetattr__rP   q   sY   € ð ˆyÔÜÐ>Ó?Ð?Ü�4ÔÜ‡G‚GÐ ¤§¢¨d¯n©nÓ!=Ð >¸kÈ$ÈÈrÐRÔSÜ�TÓ €FØ€Mr   c                ó4  € \         P                   ! 4       s\        V R4      '       d   V P                  '       g   \	        R4      hV'       d.   \
        P                  ! R\        V P                  4       R24       ^ RI	H
p RVn        V P                  pV \        \        V4      &   / p/ p/ p/ pV'       d.   \
        P                  ! R\        V P                  4       R24       VP                  4        EF  w  r‰\!        \#        V	4      \$        P&                  4      '       dj   V	P(                  V P                  J dN   ^Wi&   V'       d@   \
        P*                  P-                  R	4       \
        P*                  P/                  4        K”  K–  K˜  \1        V	\"        4      '       g   K°  V	P2                  V P                  8X  g   KÍ  ^WI&   V'       g   KÛ  \
        P*                  P-                  R
4       \
        P*                  P/                  4        EK  	  VP5                  V4       VP5                  V4       VP6                  p
VP9                  4       pVP9                  4       pVP9                  4       pV'       dD   \
        P                  ! R4       \
        P                  ! R\        V P                  4       R24       \;        V 4       \<        P>                  ! 4        V'       d.   \
        P                  ! R\        V P                  4       R24       V FÎ  p\A        WP                  4      VJ d1   \
        P                  ! R\B        PD                  ! V4       R24       KL  V'       d>   \
        P*                  P-                  R4       \
        P*                  P/                  4        RVn#        VP                  PI                  4        \J        Vn&        V P                  Vn        KÐ  	  V'       d   ^ RI'pV F‰  p\A        WP                  4      pWíJ d<   \
        P                  ! RPQ                  \B        PD                  ! V4      4      4       KX  XPS                  V4       F  p\A        VRR4      VJ g   K  Wïn*        K  	  K‹  	  V'       dD   \
        P                  ! R4       \
        P                  ! R\        V P                  4       R24       ^ p\V        PX                  P                  4        EFG  w  ppV^,           pVV 8X  g   Vf   K  \        VR4      '       g   K1  \        VR4      '       d   KE  ^ pVP                  P                  4        F€  w  r‰ \[        V	4       T
! T	4      '       g   K!  T'       d>   \
        P*                  P-                  R	4       \
        P*                  P/                  4        \_        T	4      p^p\a        TTT4       K‚  	  V'       g   Kï  V'       d   Kù  V^
,          ^ 8X  g   EK
  \
        P*                  P-                  R4       \
        P*                  P/                  4        EKJ  	  RVn        V'       dD   \
        P                  ! R4       \
        P                  ! R\        V P                  4       R24       V #   \\         d     EKN  i ; i)zG
Reload a module and do as much as possible to replace its references.
ÚALLOW_TWISTED_REBUILDzI am not allowed to be rebuilt.zRebuilding z...)Ú
componentsTz  (scanning z): ÚfÚoÚ z  (reload   Ú)z  (cleaning zWARNING: class z not replaced by reload!ÚxNz-WARNING: new-class {} not replaced by reload!rH   z  (fixing   Ú__file__Ú
__bundle__Ú.Fz   Rebuilt rF   )1r   r   ÚhasattrrR   ÚRuntimeErrorr   r"   Ústrr!   Útwisted.pythonrS   ÚALLOW_DUPLICATESr>   r1   r/   ÚitemsÚ
issubclassr   r   r   r0   ÚlogfileÚwriteÚflushÚ
isinstancer'   ÚupdateÚ__contains__Úkeysr   Ú	linecacheÚ
clearcacher   r   rM   r9   ÚclearrP   Ú__getattr__ÚgcÚformatÚget_referrersrH   ÚsysÚmodulesÚhashÚ	Exceptionr   Úsetattr)r5   ÚdoLogrS   ÚdÚ
newclassesÚclassesÚ	functionsÚvaluesÚkÚvÚfromOldModuleÚclazzrn   ÚnclassÚgaÚrÚmodcountÚmkÚmodÚchangedÚnvs   &&                   r   Úrebuildrˆ   }   s¤  € ô
 —)’)“+€KÜˆvÐ.×/Ò/à×+×+Ð+ÜÐ@ÓAÐAßÜ�Š�+œc &§/¡/Ó2Ð3°3Ð7Ô8õ *à"&€JÔà�‰€AØ!„M”"�Q“%ÑØ€JØ€GØ€IØ€FßÜ�Š�,œs 6§?¡?Ó3Ð4°CÐ8Ô9Ø—‘—	‰ˆÜ”d˜1“gœu×1Ñ1×2Ò2Ø�}‰} §¡Ó/Ø �	‘ßÜ—K‘K×%Ñ% cÔ*Ü—K‘K×%Ñ%Ö'ñ ñ 0ô
 ˜œ4× Ô Ø�|‰|˜vŸ™Ö.Ø !�
‘ß‘5Ü—K‘K×%Ñ% cÔ*Ü—K‘K×%Ñ%×'ñ ð ‡M�M�'ÔØ
‡M�M�)ÔØ×'Ñ'€MØ—‘Ó"€JØ�l‰l‹n€GØ—‘Ó €IçÜ�Š�ŒÜ�Š�,œs 6§?¡?Ó3Ð4°AÐ6Ô7ô ˆ6„Nä×ÒÔçÜ�Š�,œs 6§?¡?Ó3Ð4°CÐ8Ô9ãˆÜ�6Ÿ>™>Ó*¨eÓ3Ü�GŠG�o¤g§l¢l°5Ó&9Ð%:Ð:RÐSÖTçÜ—‘×!Ñ! #Ô&Ü—‘×!Ñ!Ô#Ø ˆEŒOØ�N‰N× Ñ Ô"Ü 3ˆEÔØ%Ÿ™ˆEÖñ ÷ ÛÛˆÜ�VŸ_™_Ó-ˆØ‹<Ü�GŠGØ?×FÑFÜ—L’L Ó(óöð ×%Ñ% fÖ-�Ü˜1˜k¨4Ó0°FÕ:Ø"$–Kó .ñ ÷ Ü�Š�ŒÜ�Š�,œs 6§?¡?Ó3Ð4°CÐ8Ô9Ø€HÜ—;‘;×$Ñ$×&‰ˆˆCØ˜a•<ˆØ�&Œ=˜CšKÙä�s˜J×'Ò'áä�3˜×%Ò%ñ àˆà—L‘L×&Ñ&Ö(‰DˆAðÜ�Q”ñ ˜Q×ÔßÜ—K‘K×%Ñ% cÔ*Ü—K‘K×%Ñ%Ô'Ü# AÓ&�Ø�Ü˜˜Q Ö#ñ )÷ ‰5Ÿ™ x°"¥}¸×&:Ü�K‰K×Ñ˜cÔ"Ü�K‰K×Ñ×ñ? 'ðB #(€JÔßÜ�Š�ŒÜ�Š�+œc &§/¡/Ó2Ð3°1Ð5Ô6Ø€Møô# ô Ûðús   ÕZÚZÚZc                ób   € V ^8„  d   Qh/ ^ \         9   d   \        \        \        3,          ;R&   # )é   r1   )Ú__conditional_annotations__r   Úintr   )ro   s   "r   Ú__annotate__r�      s)   € ÷ ñ ÷r *Ò )Œt”Cœ�OÕ$Ñ )òsr   )é   )r‹   r*   rj   rq   r   r   Ú	importlibr   r   Útypingr   r_   r   r   r   r   r1   r   r:   rt   rE   rI   rP   rˆ   r�   )r‹   s   @r   Ú<module>r‘      sp   øðöó ó Û Û Ý Ý Ý ÷ (à�iŠi‹k€÷"ñ "ðJ (*€Ó )ò
-òQô*�9ô ò1ò	ö}r   