+
    4i                     h    ^ RI t ^ RIHtHtHtHtHtHtHt R t	R t
R tR tR tR tR	 tR
 tR tR# )    N)iprange_to_cidrs	IPNetwork
cidr_mergecidr_excludelargest_matching_cidrsmallest_matching_cidrall_matching_cidrsc                     \        R R4      p V . \        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R	4      N\        R
4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R4      N\        R 4      N\        R!4      N\        R"4      N\        R#4      N\        R$4      N\        R%4      N\        R&4      N\        R'4      N\        R(4      N\        R)4      N\        R*4      N\        R+4      N\        R,4      N\        R-4      N\        R.4      N\        R/4      N\        R04      N\        R14      N\        R24      N\        R34      N\        R44      N\        R54      N\        R64      N\        R74      N\        R84      N\        R94      N\        R:4      N\        R;4      N\        R<4      N\        R=4      N\        R>4      N\        R?4      N8X  g   Q hR@# )Az0.0.0.1z255.255.255.254z
0.0.0.1/32z
0.0.0.2/31z
0.0.0.4/30z
0.0.0.8/29z0.0.0.16/28z0.0.0.32/27z0.0.0.64/26z0.0.0.128/25z
0.0.1.0/24z
0.0.2.0/23z
0.0.4.0/22z
0.0.8.0/21z0.0.16.0/20z0.0.32.0/19z0.0.64.0/18z0.0.128.0/17z
0.1.0.0/16z
0.2.0.0/15z
0.4.0.0/14z
0.8.0.0/13z0.16.0.0/12z0.32.0.0/11z0.64.0.0/10z0.128.0.0/9z	1.0.0.0/8z	2.0.0.0/7z	4.0.0.0/6z	8.0.0.0/5z
16.0.0.0/4z
32.0.0.0/3z
64.0.0.0/2z128.0.0.0/2z192.0.0.0/3z224.0.0.0/4z240.0.0.0/5z248.0.0.0/6z252.0.0.0/7z254.0.0.0/8z255.0.0.0/9z255.128.0.0/10z255.192.0.0/11z255.224.0.0/12z255.240.0.0/13z255.248.0.0/14z255.252.0.0/15z255.254.0.0/16z255.255.0.0/17z255.255.128.0/18z255.255.192.0/19z255.255.224.0/20z255.255.240.0/21z255.255.248.0/22z255.255.252.0/23z255.255.254.0/24z255.255.255.0/25z255.255.255.128/26z255.255.255.192/27z255.255.255.224/28z255.255.255.240/29z255.255.255.248/30z255.255.255.252/31z255.255.255.254/32N)r   r   )networkss    ?/usr/lib/python3/dist-packages/netaddr/tests/ip/test_cidr_v4.py#test_iprange_to_cidrs_worst_case_v4r      s   	+<=H ?,?,? 	,? 	,	?
 	- ? 	- ? 	- ? 	.!? 	,? 	,? 	,? 	,? 	- ? 	- ? 	- ?  	.!!?" 	,#?$ 	,%?& 	,'?( 	,)?* 	- +?, 	- -?. 	- /?0 	- 1?2 	+3?4 	+5?6 	+7?8 	+9?: 	,;?< 	,=?> 	,??@ 	- A?B 	- C?D 	- E?F 	- G?H 	- I?J 	- K?L 	- M?N 	- O?P 	"#Q?R 	"#S?T 	"#U?V 	"#W?X 	"#Y?Z 	"#[?\ 	"#]?^ 	"#_?` 	$%a?b 	$%c?d 	$%e?f 	$%g?h 	$%i?j 	$%k?l 	$%m?n 	$%o?p 	&'q?r 	&'s?t 	&'u?v 	&'w?x 	&'y?z 	&'{?| 	&'}? ? ? ?    c                     \        R R 4      . 8X  g   Q h\        RR 4      \        R4      .8X  g   Q h\        RR4      \        R4      .8X  g   Q h\        RR4      \        R4      \        R4      \        R4      .8X  g   Q h\        R R4      . 8X  g   Q h\        R	R
4      \        R	4      .8X  g   Q h\        RR	4      \        R4      .8X  g   Q hR# )192.0.2.1/32z192.0.2.0/31192.0.2.0/32192.0.2.0/24192.0.2.128/25z192.0.2.0/25192.0.2.128/27z192.0.2.160/27z192.0.2.192/26192.0.2.0/28z192.0.2.16/32z192.0.1.255/32N)r   r    r   r   test_cidr_exclude_v4r   R   s    72===7In<U;VVVV(89i>W=XXXX(89.!"#"#>    72===8Y~=V<WWWW(.9iHX>Y=ZZZZr   c                     \        R R.4      \        R4      .8X  g   Q h\        RR.4      \        R4      \        R4      .8X  g   Q h\        . RO4      \        R4      .8X  g   Q h\        . RO4      \        R4      \        R4      \        R4      .8X  g   Q h\        . RO4      \        R4      \        R	4      .8X  g   Q h\        . RO4      \        R
4      \        R4      \        R4      .8X  g   Q hR# )z192.0.128.0/24z192.0.129.0/24z192.0.128.0/23z192.0.130.0/24192.0.2.112/30192.0.2.118/31z192.0.2.112/29192.0.2.116/32192.0.2.112/31z192.0.2.116/30192.0.1.254/31192.0.3.0/28r   N)r   192.0.2.116/31r   )r   r   r   )r   r   r   )r   r   z192.0.2.16/28z192.0.2.32/28z192.0.2.48/28z192.0.2.64/28z192.0.2.80/28z192.0.2.96/28z192.0.2.112/28z192.0.2.128/28z192.0.2.144/28z192.0.2.160/28z192.0.2.176/28z192.0.2.192/28z192.0.2.208/28z192.0.2.224/28z192.0.2.240/28r   r   r   r   r   r   test_cidr_merge_v4r!   a   s/   ')9:;	JZ@[?\\\\')9:;"#"#@    LM"#R    LM"#"#"#R   
 LM"#"#R   
 	
, 	"#.!.!
+  r   c                     \        R 4      p \        R4      pV P                  ^4       Uu. uF  p\        V4      NK  	  up\        V P                  ^4      4      ,           VP                  ^|4       Uu. uF  p\        V4      NK  	  up,           \        VP                  ^|4      4      ,           . RO,           p\        P
                  ! V4       \        V4      pV\        R 4      \        R4      .8X  g   Q hW@V.8X  g   Q hR# u upi u upi )192.0.2.0/23z::192.0.2.0/120N)r   r   z::192.0.2.92/128)r   subnetstrlistrandomshuffler   )orig_cidr_ipv4orig_cidr_ipv6ccidr_subnetsmerged_cidrss        r   test_extended_cidr_merger.      s    ~.N01N (..r232AQ23
~$$R(
)	*)005
65a3q65
6	7 ~$$S)
*	+ A		A  NN< l+LIn5yAR7STTTTN;;;; 	4
6s   D2Dc                      \        R R.4      \        R 4      .8X  g   Q h\        R R.4      \        R 4      .8X  g   Q h\        . RO4      \        R 4      .8X  g   Q hR# )	0.0.0.0/0z0.0.0.0z255.255.255.255N)r0   r   
10.0.0.0/8r    r   r   r    test_whole_network_cidr_merge_v4r2      s`    {I./Ik4J3KKKK{$567Ik<R;SSSSAByQ\G]F^^^^r   c                      \        R R .4      \        R4      8X  g   Q h\        R RR .4      \        R4      8X  g   Q h\        R . RO4      \        R4      8X  g   Q h\        R RR.4      e   Q hR# )	192.0.2.0r   10.0.0.1	224.0.0.1Nr5   r4   r6   )r   r   r   r   r   test_largest_matching_cidr_v4r8      s     {m<	.@YYYY z;.GHIM    !.TUYbZ    !z;.GHPPPr   c                      \        R . RO4      \        R4      8X  g   Q h\        R. RO4      \        R4      8X  g   Q h\        R RR.4      e   Q hR# )	r4   r5   r6   r   
192.0.2.32r   Nr7   r0   r1   192.0.0.0/8z192.0.1.0/24r   z192.0.3.0/24)r   r   r   r   r   test_smallest_matching_cidr_v4r=      sk    !+/UVZc[    "b 
>	"# # # "+
K/HIQQQr   c                  l    \        R . RO4      \        R4      \        R4      \        R4      .8X  g   Q hR# )r:   r0   r<   r   Nr;   )r	   r   r   r   r   test_all_matching_cidrs_v4r?      s>    b 	+- .!
  r   c                  \   \        R 4      P                  ^4       U u. uF  p \        V 4      NK  	  pp V. RO8X  g   Q h\        RV4      \        R4      \        R4      \        R4      .8X  g   Q h\	        RV4      \        R4      8X  g   Q h\        RV4      \        R4      8X  g   Q hR# u up i )r   192.0.0.0/22r#   r   r4   N)rA   r#   r   r   z192.0.2.128/26)r   supernetr%   r	   r   r   )r+   r   s     r   test_cidr_matching_v4rC      s     )*: ; D DR HI H1A HHI     k84.!.!.!9    "+x8In<UUUU h79^;TTTT# Js   B))r'   netaddrr   r   r   r   r   r   r	   r   r   r!   r.   r2   r8   r=   r?   rC   r   r   r   <module>rE      sL      AH[,^<(_QRUr   