+
    ,i~  c                   s    ^ RI Ht ^RIHtHt ^RIHt ^RIHt ^RI	H
t
HtHt ]! RRR7       ! R R	]4      4       t ! R
 R]
4      t ! R R]],          4      tR# )i    )	dataclass)ContextNetifcon)ContextWrapper)DiffResultDescriptor)
DifferenceDifferenceResultWrapperT)ZfrozenZorderc                   s0   a  ] tR t^t o RtV 3R ltRtV tR# )ModifiedNetifconz+Difference details for a modified netifcon.c                s   < V ^8  d   Qh/ S[ ;R&   S[R,          ;R&   S[R,          ;R&   S[R,          ;R&   S[R,          ;R&   # )   ZruleNadded_contextremoved_contextadded_packetremoved_packet)r   r   Zformat__classdict__   "</usr/lib64/python3.14/site-packages/setools/diff/netifcon.py__annotate__ZModifiedNetifcon.__annotate__   sU     
 N  T>!  t^#  D.   dN"      N)__name__
__module____qualname____firstlineno____doc__Z__annotate_func____static_attributes____classdictcell__r      @r   r   r      s      6  r   r   c                   s   a  ] tR t^t o RtV 3R lR lt]],          ! ]4      t]],          ! ]4      t	]]
,          ! ]4      tV 3R lR ltRtV tR# )NetifconsDifferencez;Determine the difference in netifcons between two policies.c                   < V ^8  d   QhRR/# r	   returnNr   r   r   r   r    NetifconsDifference.__annotate__   s      b  b  br   c           
     s   V P                   P                  RV P                   RV P                   24       V P	                  R V P                  P                  4        4       R V P                  P                  4        4       4      w  V n        V n        p\        \        ,          ! 4       V n
        V F  w  r#\        VP                  4      \        VP                  4      8w  d   VP                  pVP                  pMRpRp\        VP                  4      \        VP                  4      8w  d   VP                  pVP                  pMRpRpV'       g   V'       g   K  V P                  P                  \        W%WGV4      4       K  	  R# )z:Generate the difference in netifcons between the policies.z%Generating netifcon differences from z to c              3   8   "   T F  p\        V4      x  K  	  R # 5iNNetifconWrapperZ.0Zn   & r   	<genexpr>5NetifconsDifference.diff_netifcons.<locals>.<genexpr>%   s     F)EA_Q)E   c              3   r#   r$   r%   r'   r(   r   r)   r*   &   s     G)FA_Q)Fr+   N)logZinfoZleft_policyZright_policyZ	_set_diffZ	netifconsadded_netifconsremoved_netifconsZlistr   modified_netifconsr   contextZpacketZappend)selfZmatched_netifconsZleft_netifconZright_netifconr   r
   r   r   s   &       r   diff_netifconsZ"NetifconsDifference.diff_netifcons   sN    	3D4D4D3ET$J[J[I\]	_ KO..F)9)9)C)C)EFG):):)D)D)FGKIGd46G #''7"8":->)M m334~G]G]8^^"/"7"7 . 6 6"& $m223~nF[F[7\\!.!5!5-44!%#..''../?!/Q_0a b' .?r   c                r   r    r   r   r   r   r   r"   G   s     $ $T $r   c                sH    V P                   P                  R4       V =V =V =R# )z%Reset diff results on policy changes.zResetting netifcon differencesN)r,   Zdebugr-   r.   r/   r1      &r   _reset_diffZNetifconsDifference._reset_diffG   s%    78 "#r   )r-   r/   r.   N)r   r   r   r   r   r2   r   r   r-   r.   r   r/   r5   r   r   r   r   r   r   r      sQ     E b  bD +84^DO,X6~F-.>?O
$ $r   r   c                   sL   a  ] tR t^Ot o RtRtV 3R lR ltR tR tR t	Rt
V tR	# )
r&   z+Wrap netifcon statements for diff purposes.netifc                s$   < V ^8  d   QhRS[ RR/# )r	   oconr!   N)r   r   r   r   r   ZNetifconWrapper.__annotate__U   s      X $ r   c                sT    Wn         VP                  V n        \        V4      V n        R # r$   )originr6   Zhashkey)r1   r7      &&r   __init__ZNetifconWrapper.__init__U   s    ZZ
:r   c                s    V P                   # r$   )r9   r3   r4   r   __hash__ZNetifconWrapper.__hash__Z   s    xxr   c                s4    V P                   VP                   8  # r$   r6   r1   Zotherr:   r   __lt__ZNetifconWrapper.__lt__]   s    zzEKK''r   c                s4    V P                   VP                   8H  # r$   r=   r>   r:   r   __eq__ZNetifconWrapper.__eq__`   s    zzU[[((r   )r9   r6   r8   N)r   r   r   r   r   Z	__slots__r;   r<   r?   r@   r   r   r   r   r   r&   r&   O   s+     5I 
() )r   r&   N)Zdataclassesr    Z	policyrepr   r   r0   r   Zdescriptorsr   Z
differencer   r   r   r   r   r&   r   r   r   <module>rA      sZ   
 " ) # - = = $d##' # $#2$* 2$j)gh' )r   