+
        
                         ^ 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# )    )	dataclass)ContextPortcon)ContextWrapper)DiffResultDescriptor)
DifferenceDifferenceResultWrapperT)frozenorderc                   0   a  ] tR t^t o RtV 3R ltRtV tR# )ModifiedPortconz*Difference details for a modified portcon.c                >   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   # )   ruleadded_contextremoved_context)r   r   )format__classdict__s   ";/usr/lib64/python3.14/site-packages/setools/diff/portcon.py__annotate__ModifiedPortcon.__annotate__   s+     
 M          N)__name__
__module____qualname____firstlineno____doc____annotate_func____static_attributes____classdictcell__r   s   @r   r   r      s      5  r   r   c                      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# )PortconsDifferencez:Determine the difference in portcons between two policies.c                   < V ^8  d   QhRR/# r   returnNr   )r   r   s   "r   r   PortconsDifference.__annotate__   s     U Ut Ur   c                J   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 Fn  w  r#\        VP                  4      \        VP                  4      8w  g   K4  V P                  P                  \        VVP                  VP                  4      4       Kp  	  R# )z9Generate the difference in portcons between the policies.z$Generating portcon differences from z to c              3   8   "   T F  p\        V4      x  K  	  R # 5iNPortconWrapper.0ns   & r   	<genexpr>3PortconsDifference.diff_portcons.<locals>.<genexpr>#   s     D(C1^A(C   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir,   r-   r/   s   & r   r2   r3   $   s     E(D1^A(Dr4   N)loginfoleft_policyright_policy	_set_diffportconsadded_portconsremoved_portconslistr   modified_portconsr   contextappend)selfmatched_portconsleft_portconright_portcons   &   r   diff_portcons PortconsDifference.diff_portcons   s     	243C3C2DDIZIZH[\	^ HL~~D(8(8(A(A(CDE(9(9(B(B(DEHGDT24D "&o!6!8+;'L l223~mF[F[7\\&&--ol>K>S>S>J>R>R/T U	 ,<r   c                   < V ^8  d   QhRR/# r'   r   )r   r   s   "r   r   r)   7   s     # #T #r   c                H    V P                   P                  R4       V =V =V =R# )z%Reset diff results on policy changes.zResetting portcon differencesN)r6   debugr<   r=   r?   rB   s   &r   _reset_diffPortconsDifference._reset_diff7   s%    67!"r   )r<   r?   r=   N)r   r   r   r   r   rF   r   r   r<   r=   r   r?   rL   r!   r"   r#   s   @r   r%   r%      sO     DU U( *'2=AN+G4]C,_=mL
# #r   r%   c                   L   a  ] tR t^?t 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 portcon statements for diff purposes.c                $   < V ^8  d   QhRS[ RR/# )r   oconr(   N)r   )r   r   s   "r   r   PortconWrapper.__annotate__E   s      W  r   c                    Wn         VP                  V n        VP                  P                  VP                  P                  uV n        V n        \        V4      V n        R # r,   )originprotocolportslowhighhashkey)rB   rP   s   &&r   __init__PortconWrapper.__init__E   s=    "jjnndjjoo$):r   c                    V P                   # r,   )rY   rK   s   &r   __hash__PortconWrapper.__hash__K   s    xxr   c                4    V P                   VP                   8  # r,   )rS   rB   others   &&r   __lt__PortconWrapper.__lt__N   s    {{U\\))r   c                    V P                   VP                   8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r,   rT   rV   rW   r`   s   &&r   __eq__PortconWrapper.__eq__Q   sK    }}. $ $HH		!$ $II#	$r   )rW   rY   rV   rS   rT   Nre   )r   r   r   r   r   	__slots__rZ   r]   rb   rf   r!   r"   r#   s   @r   r.   r.   ?   s+     4+I *$ $r   r.   N)dataclassesr   	policyrepr   r   r@   r   descriptorsr   
differencer   r	   r
   r   r%   r.   r   r   r   <module>rm      sZ   
 " ( # - = = $d#&  $$# $#N$WW% $r   