Ë J°Eó“ÿôã óÚ—dZddlZddlZddlmZddlmZ m Z m Z mZmZmZmZmZmZdZdZdezdz ZGd„d e«ZGd „d e«ZGd „d e«Z Gd„de«Z!Gd„de«Z"eZ#ddjIdgdz«zdzddjIdgdz«zdzddjIdgdz«zdzddjIdgdz«zdzddjIdgdz«zdzddjIdgdz«zdzfD�cgc]}ejK|ejL«‘Œ c}Z'd „Z(d!„Z)d"„Z*d/d#„Z+d$„Z,d%„Z-d/d&„Zd/d'„Z d/d(„Z d/d)„Zd/d*„Zd/d+„Zd/d,„Zd-„Zd.„Zycc}w)0z5 IEEE 64-bit EUI (Extended Unique Identifier) logic. éN)ÚAddrFormatError) Ú valid_wordsÚ int_to_wordsÚ words_to_intÚ valid_bitsÚ bits_to_intÚ int_to_bitsÚ valid_binÚ int_to_binÚ bin_to_inté@éécó:—eZdZdZdZeezZdezdz ZdZdZ dZ y) Ú eui64_basez%A standard IEEE EUI-64 dialect class.érrÚ-z%.2XéN) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú word_sizeÚwidthÚ num_wordsÚmax_wordÚword_sepÚword_fmtÚ word_base©óú;/usr/lib/python3.12/site-packages/netaddr/strategy/eui64.pyrr(s=„Ù/ð€Ið˜Ñ"€Ið�)‰|˜aÑ€Hð€Hð€Hð�Ir!rcó*—eZdZdZdZeezZdZdZdZ y)Ú eui64_unixz'A UNIX-style MAC address dialect class.rÚ:z%xrN© rrrrrrrrrrr r!r"r$r$>s#„Ù1à€IؘÑ"€IØ€HØ€HØ�Ir!r$có—eZdZdZdZy)Úeui64_unix_expandedz;A UNIX-style MAC address dialect class with leading zeroes.ú%.2xN)rrrrrr r!r"r(r(Hs „ÙEà�Hr!r(có*—eZdZdZdZeezZdZdZdZ y)Ú eui64_ciscoz2A Cisco 'triple hextet' MAC address dialect class.rÚ.ú%.4xNr&r r!r"r+r+Ns#„Ù<à€IؘÑ"€IØ€HØ€HØ�Ir!r+có*—eZdZdZdZeezZdZdZdZ y)Ú eui64_barez1A bare (no delimiters) MAC address dialect class.r Úz%.16XrNr&r r!r"r/r/Xs#„Ù;à€IؘÑ"€IØ€HØ€HØ�Ir!r/Ú^r%z([0-9A-F]{1,2})rÚ$rz([0-9A-F]{1,4})éz\.z^(r0z[0-9A-F]rz)$cóF—|D]}|j|«}|sŒ|dcSy)Nr)Úfindall)ÚaddressÚformatsÚregexpÚmatchs r"Ú_get_match_resultr:zs&€ÛˆØ—‘˜wÓ'ˆÚ ؘ‘8ŠOñr!cóH— t|t«ry y#t$rYywxYw)z‹ :param addr: An IEEE EUI-64 identifier in string form. :return: ``True`` if EUI-64 identifier is valid, ``False`` otherwise. TF)r:ÚRE_EUI64_FORMATSÚ TypeError)Úaddrs r"Ú valid_strr?�s6€ð  Ü ˜TÔ#3Ô 4Øð 5ð øô ò Ø à ð ús ‚• ! !c ó:—g} t|t«}|st‚ t |t «rn|f}t |«dk(r8tdj|D�cgc]}dt|d«z‘Œc}«d«}|St |«dk(r8tdj|D�cgc]}dt|d«z‘Œc}«d«}|St |«d k(rtd t|d d«zd«}|Std |z«‚#t$rtd|›d�«‚wxYwcc}wcc}w) zÎ :param addr: An IEEE EUI-64 identifier in string form. :return: An unsigned integer that is equivalent to value represented by EUI-64 string address formatted according to the dialect z invalid IEEE EUI-64 identifier: Ú!rr0r)rr3r-rz%016xrz)bad word count for EUI-64 identifier: %r!) r:r<r=rÚ isinstanceÚtupleÚlenÚintÚjoin)r>ÚwordsÚwÚint_vals r"Ú str_to_intrJ�s2€ð €EðOÜ! $Ô(8Ó9ˆÙ܈Oðô �%œÔØ à�ˆä ˆ5ƒz�Q‚ä�b—g‘g¹EÓB¹E°q˜v¬¨A¨r« Ó2¸EÑBÓCÀRÓHˆð €Nô ˆU‹�qŠä�b—g‘g¹EÓB¹E°q˜v¬¨A¨r« Ó2¸EÑBÓCÀRÓHˆð €Nô ˆU‹�qŠä�g¤ E¨!¡H¨bÓ 1Ñ1°2Ó6ˆð €NôÐIÈDÑPÓQÐQøô% òOÝÂtÐMÓNÐNðOüòCùòCs„C7ÁD ÂD Ã7Dcó¦—|€t}t||«}|D�cgc]}|j|z‘Œ}}|jj |«}|Scc}w)zÉ :param int_val: An unsigned integer. :param dialect: (optional) a Python class defining formatting options :return: An IEEE EUI-64 identifier that is equivalent to unsigned integer. )rrrrrF)rIÚdialectrGÚiÚtokensr>s r"Ú int_to_strrO´sY€ð€ÜˆÜ ˜ 'Ó *€EÙ,1Ó 2©E qˆg×Ñ Ó"¨E€FÐ 2Ø × Ñ × Ñ  Ó (€DØ €Kùò3s™AcóD—t|«}tjdg|¢­ŽS)z• :param int_val: the integer to be packed. :return: a packed string that is equivalent to value represented by an unsigned integer. ú>8B)rÚ_structÚpack)rIrGs r"Ú int_to_packedrTÄs"€ô ˜Ó !€EÜ �<‰<˜Ð & Ò &Ð&r!cóž—ttjd|««}d}tt |««D]\}}|}|d|zz}||z}Œ|S)a :param packed_int: a packed string containing an unsigned integer. It is assumed that string is packed in network byte order. :return: An unsigned integer equivalent to value of network address represented by packed binary string. rQrr)ÚlistrRÚunpackÚ enumerateÚreversed)Ú packed_intrGrIrMÚnumÚwords r"Ú packed_to_intr]ÏsW€ô ”—‘  zÓ2Ó 3€Eà€GÜœH U›OÖ,‰ˆˆ3؈Ø�q˜1‘u‰}ˆØ˜D‘.‰ð-ð €Nr!cóT—|€t}t||j|j«S©N)ÚDEFAULT_EUI64_DIALECTÚ _valid_wordsrr©rGrLs r"rrâs'€Ø€Ü'ˆÜ ˜˜w×0Ñ0°'×2CÑ2CÓ DÐDr!cóT—|€t}t||j|j«Sr_)r`Ú _int_to_wordsrr©rIrLs r"rrès'€Ø€Ü'ˆÜ ˜ '×"3Ñ"3°W×5FÑ5FÓ GÐGr!cóT—|€t}t||j|j«Sr_)r`Ú _words_to_intrrrbs r"rrîs'€Ø€Ü'ˆÜ ˜ × 1Ñ 1°7×3DÑ3DÓ EÐEr!cóH—|€t}t|t|j«Sr_)r`Ú _valid_bitsrr©ÚbitsrLs r"rrôs!€Ø€Ü'ˆÜ �tœU G×$4Ñ$4Ó 5Ð5r!cóH—|€t}t|t|j«Sr_)r`Ú _bits_to_intrrrjs r"rrús!€Ø€Ü'ˆÜ ˜œe W×%5Ñ%5Ó 6Ð6r!cój—|€t}t||j|j|j«Sr_)r`Ú _int_to_bitsrrrres r"r r s/€Ø€Ü'ˆÜ ˜ ×!2Ñ!2°G×4EÑ4EÀw×GWÑGWÓ XÐXr!có2—|€t}t|t«Sr_)r`Ú _valid_binr)Úbin_valrLs r"r r s€Ø€Ü'ˆÜ �gœuÓ %Ð%r!có"—t|t«Sr_)Ú _int_to_binr)rIs r"r r ó€Ü �w¤Ó &Ð&r!có"—t|t«Sr_)Ú _bin_to_intr)rrs r"r r rur!r_).rÚstructrRÚreÚ_reÚ netaddr.corerÚnetaddr.strategyrrarrdrrgrrirrmr ror rqr rtr rwrÚversionÚmax_intÚobjectrr$r(r+r/r`rFÚcompileÚ IGNORECASEr<r:r?rJrOrTr])Ú_s0r"ÚrƒsÈðñ óÛå(÷ ÷ õ ð €ð €ð ˆU‰(�Q‰,€ô�ôô,�ôô˜*ôô �*ôô�ôð#Ðð ˆc�h‰hÐ)Ð*¨QÑ.Ó/Ñ/°#Ñ5Ø ˆc�h‰hÐ)Ð*¨QÑ.Ó/Ñ/°#Ñ5à ˆc�h‰hÐ)Ð*¨QÑ.Ó/Ñ/°#Ñ5Ø ˆc�h‰hÐ)Ð*¨QÑ.Ó/Ñ/°#Ñ5Ø ˆe�j‰jÐ+Ð,¨qÑ0Ó1Ñ1°CÑ7à ˆr�w‰w˜ �| bÑ(Ó)Ñ)¨DÑ0ñ ó ñ ˆð‡K�K��3—>‘>Õ"ð ñ Ðò ò ò!óH ò 'òó&Eó Hó Fó 6ó 7ó Yó &ò 'ó'ùòM sÄ #E(