3 »…fÒ, ã @ s> d dl mZ ddlZddlZddlZddlZd dlmZ dZdZ ej dƒZejd dkr`e ZeZG d d „ d eƒZG dd„ deƒZG d d„ deƒZG dd„ deƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd7dd„Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Z d8d(d)„Z!d*d+„ Z"d,d-„ Z#d.d/„ Z$d9d1d2„Z%d:d3d4„Z&d;d5d6„Z'dS )<é )Úidnadataé N)Úintranges_containé s xn--u [.。.。]é c @ s e Zd ZdZdS )Ú IDNAErrorz7 Base exception for all IDNA-encoding related problems N)Ú__name__Ú __module__Ú__qualname__Ú__doc__© r r ú/usr/lib/python3.6/core.pyr s r c @ s e Zd ZdZdS )Ú IDNABidiErrorz= Exception when bidirectional requirements are not satisfied N)r r r r r r r r r s r c @ s e Zd ZdZdS )ÚInvalidCodepointz> Exception when a disallowed or unallocated codepoint is used N)r r r r r r r r r s r c @ s e Zd ZdZdS )ÚInvalidCodepointContextzE Exception when the codepoint is not valid in the context it is used N)r r r r r r r r r s r c C s t jt| ƒƒS )N)ÚunicodedataZ combiningÚunichr)Úcpr r r Ú_combining_class$ s r c C s t t| ƒtj| ƒS )N)r Úordr Úscripts)r Zscriptr r r Ú _is_script' s r c C s | j dƒS )NÚpunycode)Úencode)Úsr r r Ú _punycode* s r c C s dj | ƒS )Nz U+{0:04X})Úformat)r r r r Ú_unot- s r c C s t | ƒdkrdS dS )Né? FT)Úlen)Úlabelr r r Úvalid_label_length1 s r! c C s t | ƒ|rdndkrdS dS )Néþ éý FT)r )r Útrailing_dotr r r Úvalid_string_length8 s r% Fc C sp d}xJt | dƒD ]<\}}tj|ƒ}|dkr>tdjt| ƒ|ƒƒ‚|dkrd}P qW | r`| r`dS tj| d ƒ}|dkr|d}n |d krŠd}ntdjt| ƒƒƒ‚d}d}x¸t | dƒD ]ª\}}tj|ƒ}|�r&|dkrÞtdj|ƒƒ‚|dk� rîd}n|dk� rüd}|dk�rZ|�s|}n||k�rZtdƒ‚q°|dk�r>tdj|ƒƒ‚|dk�rNd}q°|dkr°d}q°W |�sltdƒ‚dS )NFr Ú z3Unknown directionality in label {0} at position {1}ÚRÚALÚANTr ÚLz>First codepoint in label {0} must be directionality L, R or ALÚENÚESÚCSÚETÚONÚBNÚNSMzHInvalid direction for codepoint at position {0} in a right-to-left labelz2Can not mix numeral types in a right-to-left labelzHInvalid direction for codepoint at position {0} in a left-to-right labelz0Label ends with illegal codepoint directionality)r' r( r) )r' r( ) r' r( r) r+ r, r- r. r/ r0 r1 )r' r( r+ r) )r) r+ )r* r+ r, r- r. r/ r0 r1 )r* r+ )Ú enumerater Z bidirectionalr r Úrepr) r Z check_ltrZ bidi_labelÚidxr Ú directionZrtlZvalid_endingZnumber_typer r r Ú check_bidi? sR r6 c C s" t j| d ƒd dkrtdƒ‚dS )Nr ÚMz0Label begins with an illegal combining characterT)r Úcategoryr )r r r r Úcheck_initial_combiner| s r9 c C s<