Ë
    7^(hå  ã                   óF   — d dl mZ d dlmZ d dlmZ ej                  Zd„ Zy)é    )ÚPermutationGroup)ÚPermutation)Úuniqc                  ó¾  — g }g }d}d}| D ]O  }|j                   }t        |j                  «      }|j                  |«       ||z  }|j                  |«       ||z  }ŒQ g }t	        |«      D ]%  }	|j                  t        t	        |«      «      «       Œ' d}
d}t	        t        |«      «      D ]g  }	t	        |
|
||	   z   «      D ]@  }| |	   j                  ||
z
     j                  }|D �cg c]  }||z   ‘Œ	 c}||   ||||	   z    ŒB |
||	   z  }
|||	   z  }Œi t        t        |D �cg c]  }t        t        |«      «      ‘Œ c}«      «      }t        |d¬«      S c c}w c c}w )a8  
    Returns the direct product of several groups as a permutation group.

    Explanation
    ===========

    This is implemented much like the __mul__ procedure for taking the direct
    product of two permutation groups, but the idea of shifting the
    generators is realized in the case of an arbitrary number of groups.
    A call to DirectProduct(G1, G2, ..., Gn) is generally expected to be faster
    than a call to G1*G2*...*Gn (and thus the need for this algorithm).

    Examples
    ========

    >>> from sympy.combinatorics.group_constructs import DirectProduct
    >>> from sympy.combinatorics.named_groups import CyclicGroup
    >>> C = CyclicGroup(4)
    >>> G = DirectProduct(C, C, C)
    >>> G.order()
    64

    See Also
    ========

    sympy.combinatorics.perm_groups.PermutationGroup.__mul__

    r   F)Údups)
ÚdegreeÚlenÚ
generatorsÚappendÚrangeÚlistÚ
array_formr   Ú_af_newr   )ÚgroupsÚdegreesÚ
gens_countÚtotal_degreeÚ
total_gensÚgroupÚcurrent_degÚcurrent_num_gensÚ
array_gensÚiÚcurrent_genÚjÚgenÚxÚaÚ	perm_genss                   úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/combinatorics/group_constructs.pyÚDirectProductr!      s‰  € ð: €GØ€JØ€LØ€JØò 'ˆØ—l‘lˆÜ˜u×/Ñ/Ó0ÐØ�‰�{Ô#Ø˜Ñ#ˆØ×ÑÐ*Ô+ØÐ&Ñ&‰
ð'ð €JÜ�:Óò 5ˆØ×Ñœ$œu \Ó2Ó3Õ4ð5à€KØ€KÜ”3�z“?Ó#ò "ˆÜ�{ K°*¸Q±-Ñ$?Ó@ò 	/ˆAØ˜1‘I×(Ñ(¨!¨k©/Ñ:×FÑFˆCà*-Ö. Q��[“Ò.ð �q‰M˜+ k°G¸A±JÑ&>Ñ?ð	/ð 	�z !‘}Ñ$ˆØ�w˜q‘zÑ!‰ð"ô ”T°ZÖ@°œ7¤4¨£7Õ+Ò@ÓAÓB€IÜ˜I¨EÔ2Ð2ùò	 /ùò As   Ã%EÄ"EN)Úsympy.combinatorics.perm_groupsr   Ú sympy.combinatorics.permutationsr   Úsympy.utilities.iterablesr   r   r!   © ó    r    ú<module>r'      s   ðÝ <Ý 8Ý *à
×
Ñ
€ó53r&   