+
    ,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	Ibpkeycon)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# )ModifiedIbpkeyconz,Difference details for a modified ibpkeycon.c                s>   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   # )   ZruleZadded_contextZremoved_context)r   r   Zformat__classdict__   "=/usr/lib64/python3.14/site-packages/setools/diff/ibpkeycon.py__annotate__ZModifiedIbpkeycon.__annotate__   s+     
 O          N)__name__
__module____qualname____firstlineno____doc__Z__annotate_func____static_attributes____classdictcell__r      @r   r   r      s      7  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# )IbpkeyconsDifferencez<Determine the difference in ibpkeycons between two policies.c                   < V ^8  d   QhRR/# r	   returnNr   r
   r   r   r   !IbpkeyconsDifference.__annotate__   s     _ _ _r   c                sH   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 Fm  w  r#\        VP                  4      \        VP                  4      8w  g   K4  V P                  P                  \        W#P                  VP                  4      4       Ko  	  R# )z;Generate the difference in ibpkeycons between the policies.z&Generating ibpkeycon differences from z to c              3   8   "   T F  p\        V4      x  K  	  R # 5iNIbpkeyconWrapperZ.0Zn   & r   	<genexpr>7IbpkeyconsDifference.diff_ibpkeycons.<locals>.<genexpr>$   s     L.K!!$$.K   c              3   r   r    r!   r#   r$   r   r%   r&   %   s     M.L!!$$.Lr'   N)logZinfoZleft_policyZright_policyZ	_set_diffZ
ibpkeyconsadded_ibpkeyconsremoved_ibpkeyconsZlistr   modified_ibpkeyconsr   contextZappend)selfZmatched_ibpkeyconsZleft_ibpkeyZright_ibpkeys   &   r   diff_ibpkeyconsZ$IbpkeyconsDifference.diff_ibpkeycons   s     	4T5E5E4Fd4K\K\J]^	` NNLd.>.>.I.I.KLMd.?.?.J.J.LMO 	Kt68J
 $((9#:#< );%K k112n\EYEY6ZZ((//%k3G3GI\I\]_	 *<r   c                r   r   r   r
   r   r   r   r   7   s     % %T %r   c                sH    V P                   P                  R4       V =V =V =R# )z%Reset diff results on policy changes.zResetting ibpkeycon differencesN)r(   Zdebugr)   r*   r+   r-      &r   _reset_diffZ IbpkeyconsDifference._reset_diff7   s%    89!#$r   )r)   r+   r*   N)r   r   r   r   r   r.   r   r   r)   r*   r   r+   r1   r   r   r   r   r   r   r      sQ     F_ _( ,I6G-i8I./@A/R
% %r   r   c                   sL   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 ibpkeycon statements for diff purposes.c                s$   < V ^8  d   QhRS[ RR/# )r	   oconr   N)r   r
   r   r   r   ZIbpkeyconWrapper.__annotate__E   s      Y 4 r   c                s    Wn         VP                  V n        VP                  P                  VP                  P                  uV n        V n        \        V4      V n        R # r    )originsubnet_prefixZpkeyslowhighZhashkey)r-   r2      &&r   __init__ZIbpkeyconWrapper.__init__E   s@    !//"jjnndjjoo$):r   c                s    V P                   # r    )r7   r/   r0   r   __hash__ZIbpkeyconWrapper.__hash__K   s    xxr   c                s4    V P                   VP                   8  # r    )r3   r-   Zotherr8   r   __lt__ZIbpkeyconWrapper.__lt__N   s    {{U\\))r   c                s    V P                   VP                   8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r    r4   r5   r6   r;   r8   r   __eq__ZIbpkeyconWrapper.__eq__Q   sO    !!U%8%88 $ $HH		!$ $II#	$r   )r6   r7   r5   r3   r4   Nr=   )r   r   r   r   r   Z	__slots__r9   r:   r<   r>   r   r   r   r   r   r"   r"   ?   s+     60I *$ $r   r"   N)Zdataclassesr    Z	policyrepr   r   r,   r   Zdescriptorsr   Z
differencer   r   r   r   r   r"   r   r   r   <module>r?      sZ   
 " * # - = = $d#(  $$%: $%N$wy) $r   