Ë
    D^(hA  ã                   óz   — d Z ddlZddlZddgZ ej
                  d¬«      d	d„«       Zej
                  d
d„«       Zy)zT
Provides functions for finding and testing for locally `(k, l)`-connected
graphs.

é    NÚkl_connected_subgraphÚis_kl_connectedT)Úreturns_graphc                 ó¢  — t        j                  | «      }d}d}|�rd}t        |j                  «       «      D ]ï  }|\  }	}
|r]|	|
h}t	        |«      D ]+  }|j                  «       D ]  }|j                  | |   «       Œ Œ- | j                  |«      j                  «       }nt        j                  | «      }|	|
g}d}d}|rK|dz  }||k\  rd}n>|	}|D ]  }||k7  sŒ	|j                  ||«       |}Œ 	 t        j                  ||	|
«      }|rŒK|dk(  sŒ×|j                  |	|
«       d}|sŒîd}Œñ |r�Œ|r||fS |S # t        j                  $ r d}Y ŒGw xY w)aM  Returns the maximum locally `(k, l)`-connected subgraph of `G`.

    A graph is locally `(k, l)`-connected if for each edge `(u, v)` in the
    graph there are at least `l` edge-disjoint paths of length at most `k`
    joining `u` to `v`.

    Parameters
    ----------
    G : NetworkX graph
        The graph in which to find a maximum locally `(k, l)`-connected
        subgraph.

    k : integer
        The maximum length of paths to consider. A higher number means a looser
        connectivity requirement.

    l : integer
        The number of edge-disjoint paths. A higher number means a stricter
        connectivity requirement.

    low_memory : bool
        If this is True, this function uses an algorithm that uses slightly
        more time but less memory.

    same_as_graph : bool
        If True then return a tuple of the form `(H, is_same)`,
        where `H` is the maximum locally `(k, l)`-connected subgraph and
        `is_same` is a Boolean representing whether `G` is locally `(k,
        l)`-connected (and hence, whether `H` is simply a copy of the input
        graph `G`).

    Returns
    -------
    NetworkX graph or two-tuple
        If `same_as_graph` is True, then this function returns a
        two-tuple as described above. Otherwise, it returns only the maximum
        locally `(k, l)`-connected subgraph.

    See also
    --------
    is_kl_connected

    References
    ----------
    .. [1] Chung, Fan and Linyuan Lu. "The Small World Phenomenon in Hybrid
           Power Law Graphs." *Complex Networks*. Springer Berlin Heidelberg,
           2004. 89--104.

    TFr   é   )ÚcopyÚdeepcopyÚlistÚedgesÚrangeÚupdateÚsubgraphÚremove_edgeÚnxÚshortest_pathÚNetworkXNoPath)ÚGÚkÚlÚ
low_memoryÚsame_as_graphÚHÚgraphOKÚdeleted_someÚedgeÚuÚvÚvertsÚiÚwÚG2ÚpathÚcntÚacceptÚprevs                      úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/algorithms/hybrid.pyr   r      s‰  € ôf 	�‰�aÓ€Aà€GØ€LÚ
Øˆô
 ˜Ÿ™›“Oò $	$ˆDØ‰FˆQ�áØ˜A˜�Ü˜q›ò +�AØ"ŸZ™Z›\ò +˜ØŸ™ Q q¡TÕ*ñ+ð+ð —Z‘Z Ó&×+Ñ+Ó-‘ä—]‘] 1Ó%�à�q�6ˆDØˆCØˆFÙØ�q‘�Ø˜!’8Ø�FØà�Øò !�AØ˜q“yØŸ™ t¨QÔ/Ø ™ð!ð
!Ü×+Ñ+¨B°°1Ó5�Dò ð" ˜‹{Ø—‘˜a Ô#Ø#�ÚØ#‘GðI$	$ó ñZ Ø�7ˆ|ÐØ€Høô ×(Ñ(ò !Ø ’Dð!ús   Ã/D6Ä6EÅEc           
      ó.  — d}| j                  «       D ]ß  }|\  }}|rb||h}t        |«      D ]>  }	|j                  «       D �
cg c]"  }
|j                  | j	                  |
«      «      ‘Œ$ c}
 Œ@ | j                  |«      }nt        j                  | «      }||g}d}d}|rK|dz  }||k\  rd}n>|}|D ]  }
|
|k7  sŒ	|j                  ||
«       |
}Œ 	 t        j                  |||«      }|rŒK|dk(  sŒÜd} |S  |S c c}
w # t        j                  $ r d}Y Œ-w xY w)aY  Returns True if and only if `G` is locally `(k, l)`-connected.

    A graph is locally `(k, l)`-connected if for each edge `(u, v)` in the
    graph there are at least `l` edge-disjoint paths of length at most `k`
    joining `u` to `v`.

    Parameters
    ----------
    G : NetworkX graph
        The graph to test for local `(k, l)`-connectedness.

    k : integer
        The maximum length of paths to consider. A higher number means a looser
        connectivity requirement.

    l : integer
        The number of edge-disjoint paths. A higher number means a stricter
        connectivity requirement.

    low_memory : bool
        If this is True, this function uses an algorithm that uses slightly
        more time but less memory.

    Returns
    -------
    bool
        Whether the graph is locally `(k, l)`-connected subgraph.

    See also
    --------
    kl_connected_subgraph

    References
    ----------
    .. [1] Chung, Fan and Linyuan Lu. "The Small World Phenomenon in Hybrid
           Power Law Graphs." *Complex Networks*. Springer Berlin Heidelberg,
           2004. 89--104.

    Tr   r   F)r   r   r   r   Ú	neighborsr   r	   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   s                   r&   r   r   w   sE  € ðR €GØ—‘“	ò !ˆØ‰ˆˆAáØ˜�FˆEÜ˜1“Xò E�Ø7<·z±z³|ÖD°!�—‘˜aŸk™k¨!›nÕ-ÔDðEà—‘˜EÓ"‰Bä—‘˜qÓ!ˆBà�1ˆvˆØˆØˆÙØ�1‰HˆCØ�aŠxØ�ØàˆDØò �Ø˜“9Ø—N‘N 4¨Ô+Ø‘Dðð
Ü×'Ñ'¨¨A¨qÓ1�ò ð" �Q‹;ØˆGØà€NðG!ðF €Nùò; Eøô, ×$Ñ$ò Ø’ðús   Á'C7ÃC<Ã<DÄD)FF)F)Ú__doc__r   Únetworkxr   Ú__all__Ú_dispatchabler   r   © ó    r&   ú<module>r/      s]   ðñó ã à"Ð$5Ð
6€ð €×Ñ Ô%òeó &ðeðP ×ÑòLó ñLr.   