a àMÒeQã@sPddlZddlZddlZddlZddlZdd„ZejjGdd„dejj ƒƒZ dS)éNcCsÆt|ƒdkrtjj‚|ddks,|ddkr8|dd…}| ¡rDdSz| d¡\}}Wntyptjj‚Yn0|dkrŠ|dkrŠtjj‚|dks¦| ¡ ¡s¦tjj‚|dksÂ| ¡ ¡sÂtjj‚dS)Nré-é+éó.ó)ÚlenÚdnsÚ exceptionÚ FormErrorÚisdigitÚsplitÚ ValueErrorÚdecode)ZwhatÚleftÚright©rú8/usr/lib/python3.9/site-packages/dns/rdtypes/ANY/GPOS.pyÚ_validate_float_strings    rcs|eZdZdZgd¢Z‡fdd„Zddd„Zedd d „ƒZdd d „Z eddd„ƒZ e dd„ƒZ e dd„ƒZ e dd„ƒZ‡ZS)ÚGPOSz GPOS record)ÚlatitudeÚ longitudeÚaltitudecsþtƒ ||¡t|tƒs"t|tƒr*t|ƒ}t|tƒs>t|tƒrFt|ƒ}t|tƒsZt|tƒrbt|ƒ}| |dd¡}| |dd¡}| |dd¡}t|ƒt|ƒt|ƒ||_||_ ||_ |j }|dksÌ|dkrØt j  d¡‚|j}|dksî|dkrút j  d¡‚dS) NTéÿg€VÀg€V@z bad latitudeg€fÀg€f@z bad longitude)ÚsuperÚ__init__Ú isinstanceÚfloatÚintÚstrZ _as_bytesrrrrÚfloat_latituderr r Úfloat_longitude)ÚselfÚrdclassÚrdtyperrrZflatZflong©Ú __class__rrr5s, z GPOS.__init__NTcKs d |j ¡|j ¡|j ¡¡S)Nz{} {} {})Úformatrrrr)r!ÚoriginÚ relativizeÚkwrrrÚto_textMsÿz GPOS.to_textc Cs(| ¡}| ¡}| ¡} |||||| ƒS©N)Z get_string) Úclsr"r#Útokr'r(Z relativize_torrrrrrÚ from_textRszGPOS.from_textFcCs t|jƒ}|dksJ‚| t d|¡¡| |j¡t|jƒ}|dksJJ‚| t d|¡¡| |j¡t|jƒ}|dks~J‚| t d|¡¡| |j¡dS)Néz!B)rrÚwriteÚstructÚpackrr)r!ÚfileÚcompressr'Z canonicalizeÚlrrrÚ_to_wire[s        z GPOS._to_wirecCs(| ¡}| ¡}| ¡}||||||ƒSr+)Zget_counted_bytes)r,r"r#Úparserr'rrrrrrÚfrom_wire_parseriszGPOS.from_wire_parsercCs t|jƒS)z"latitude as a floating point value)rr©r!rrrrpszGPOS.float_latitudecCs t|jƒS)z#longitude as a floating point value)rrr9rrrr uszGPOS.float_longitudecCs t|jƒS)z"altitude as a floating point value)rrr9rrrÚfloat_altitudezszGPOS.float_altitude)NT)NTN)NNF)N)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __slots__rr*Ú classmethodr.r6r8Úpropertyrr r:Ú __classcell__rrr$rr-s   ÿ     r) r1Z dns.exceptionrZ dns.immutableZ dns.rdataZ dns.tokenizerrZ immutableZrdataZRdatarrrrrÚs