ó Ú_e[c@sjddlmZddlmZddlmZddlmZddlmZm Z m Z m Z m Z m Z ddlmZddlmZddlmZdd lmZd gZd efd „ƒYZd efd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd „ƒYZd!efd"„ƒYZ d#efd$„ƒYZ!ieƒej"j#6eƒej$j#6eƒej%j#6eƒej&j#6eƒej'j#6eƒej(j#6eƒej)j#6eƒej*j#6eƒej+j#6eƒej,j#6eƒej-j#6e ƒej.j#6eƒej/j#6eƒej0j#6eƒej1j#6eƒej2j#6eƒej3j#6eƒej4j#6eƒej5j#6eƒej6j#6eƒej7j#6eƒej8j#6eƒej9j#6eƒej:j#6eƒej;j#6eƒej<j#6Z=ieƒej$j>6eƒej%j>6eƒej&j>6eƒej'j>6eƒej(j>6eƒej)j>6eƒej*j>6eƒej+j>6eƒej?j>6eƒej-j>6eƒej@j>6eƒej,j>6e ƒej.j>6e!ƒejAj>6eƒej/j>6eƒej0j>6eƒej1j>6eƒej2j>6eƒej3j>6eƒej4j>6eƒej5j>6eƒej6j>6eƒej7j>6eƒej8j>6eƒej9j>6eƒej:j>6eƒej;j>6eƒej<j>6ZBd%efd&„ƒYZCeCe=eBƒZDd'S((iÿÿÿÿ(tdebug(terror(teoo(tto_bytes(tint2octtoct2intt ints2octstnulltstr2octst isOctetsType(tchar(ttag(tuniv(tusefultencodetAbstractItemEncodercBsJeZeZdZeeƒZd„Zd„Zd„Z ddd„Z RS(icCsœ|\}}}||B}|r/|tjO}n|dkrF||BfS|d@f}|dL}x)|rˆd|d@Bf|}|dL}q`W|dBf|SdS(Niiii€(R ttagFormatConstructed(tselft singleTagt isConstructedttagClasst tagFormatttagIdt encodedTagt substrate((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyt encodeTags      cCs–| r|jrdS|dkr'|fSd}x%|rT|d@f|}|dL}q0Wt|ƒ}|dkrƒtjd|ƒ‚nd|Bf|SdS(Ni€iÿii~sLength octets overflow (%d)(i€((tsupportIndefLenModetlenRt PyAsn1Error(RtlengthtdefModeRt substrateLen((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyt encodeLength,s    cKstjdƒ‚dS(NsNot implemented(RR(Rtvaluetasn1Spect encodeFuntoptions((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyt encodeValue;scKsv|dkr|j}n |j}|sL|j||||\}}}|S|jdtƒ} xüt|jƒD]ë\} } | } | sÜ|j||||\}}}| rÊ|rÊ|jdtƒrÊ|S|sÜt} qÜn|j| |ƒ} | |j t |ƒ| ƒ7} |r9t | ƒ|}| sY||j 7}qYqn| |}| sn||j 7}qnqnW|srt |ƒ}n|S(NRt ifNotEmpty(tNonettagSetR%tgettTruet enumeratet superTagstFalseRR RRteooOctetsSubstrateteooIntegerSubstrate(RR!R"R#R$R(RRtisOctetsRtidxRtdefModeOverridetheader((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR>s:     (iiN( t__name__t __module__R*RR/RR.RR R%R'R(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyRs    tEndOfOctetsEncodercBseZd„ZRS(cKs tttfS(N(RR-R*(RR!R"R#R$((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%us(R4R5R%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR6tstBooleanEncodercBseZeZd„ZRS(cKs|r dpdttfS(Nii(i(i(R-(RR!R"R#R$((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%|s(R4R5R-RR%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR7ystIntegerEncodercBseZeZeZd„ZRS(cKsQ|dkr2|jr"dttfSdttfSntt|ƒdtƒttfS(Nitsigned((i(tsupportCompactZeroR-RtintR*(RR!R"R#R$((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%„s    (R4R5R-RR:R%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR8€stBitStringEncodercBseZd„ZRS(c KsZ|dk r|j|ƒ}nt|ƒ}|drI|d|d>}n|}|jddƒ}| s~t|ƒ|dkr¯|jƒ}tt|ƒd|ƒ|ttfS|jj } | rÖt j | | ƒ} n t j ƒ} |jd| ƒ}d} t }xJ| |krL| } t | |d|ƒ} |||| | !||7}qW|ttfS(Nit maxChunkSizeiR((R'tcloneRR)tasOctetsRR-R*R(tbaseTagR tTagSetRtmin( RR!R"R#R$t valueLengtht alignedValueR=RR@R(tstoptstart((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%s,    %  !(R4R5R%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR<stOctetStringEncodercBseZd„ZRS(c KsŠ|dkr|jƒ}n*t|ƒs?|j|ƒjƒ}n|}|jddƒ}| spt|ƒ|kr}|ttfS|dkrÑ|jj }|r°t j ||ƒ}n t j ƒ}|jd|ƒ}nTt|ƒs%|jj }|rt j ||ƒ}n t j ƒ}|jd|ƒ}nd} t }xEtrx|| | |!} | sUPn||| ||7}| |7} q4W|ttfSdS(NR=iR(( R'R?R R>R)RR-R*R(R@R RAR( RR!R"R#R$RR=R@R(tpostchunk((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%¶s:          (R4R5R%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyRG´st NullEncodercBseZeZd„ZRS(cKs tttfS(N(RR-R*(RR!R"R#R$((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%ñs(R4R5R-RR%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyRJîstObjectIdentifierEncodercBseZeZd„ZRS(c Ks|dk r|j|ƒ}n|jƒ}y|d}|d}Wn'tk rktjd|fƒ‚nXd|koƒdknr |dkr¬|df|d}qC|dkrÌ|f|d}qC|dkrð|df|d}qCtjd|fƒ‚n:|dkr-|df|d}ntjd|fƒ‚d }x¯|D]§} d| komd knr‚|| f7}qP| d krÞ| d @f} | d L} x)| rÐd | d @Bf| } | d L} q¨W|| 7}qPtjd | |fƒ‚qPW|ttfS(Niis Short OID %si'i(iiPs"Impossible first/second arcs at %siii€sNegative OID arc %s at %s((R'R>tasTuplet IndexErrorRRR-( RR!R"R#R$toidtfirsttsecondtoctetstsubOidtres((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%øs@              (R4R5R-RR%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyRKõst RealEncodercBs5eZdZdZed„ƒZd„Zd„ZRS(iicCsd \}}|dkr!d}n|dkr6d}n||9}|dkr|dt|ƒd|9}t|ƒd|}n?|dkr¾|dt|ƒd|9}t|ƒd|}nx7tr÷t|ƒ|kró||9}|d8}qÁnPqÁW|t|ƒ||fS( Niiiÿÿÿÿiiiii(ii(tabsR*R;(tmtencbasetetmstes((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyt_dropFloatingPoint.s&           c Csm|\}}}dddg}|j|krC|j||j|ƒS|j|krh|j||j|ƒS|||g}|||g}d}d} tdƒ}x¼tdƒD]®} |j|| || || ƒ\}|| <|| <|| O}t} |dks|dkr1t |d@ƒ} n¤x.|dkrat |d@ƒ| } |d L}q4W|dkr›| r›t | dƒd @r›t dƒ| } n|dkrÕ| rÕt | dƒd @ rÕt dƒ| } nt | ƒ} | dkrÿt j dƒ‚n| d krnP| dkr'|d O}n7| d kr@|dO}n|d O}t | d@ƒ| } t}x(|rŽt |d@ƒ|}|d L}qgWt |ƒ| |}|ttfSt j d|ƒ‚dS(Ni@iAi s%dE%s%dit+tii€iiiiiiii sScale factor overflowiÿÿÿÿiÿsReal exponent overflowsProhibited Real base %s(i@(iA(iiÿÿÿÿ(R'R>t isPlusInfR-t isMinusInfRR*RRfRRRRR(RR!R"R#R$RVR`RXtfoRYRWtsfteotntpoR((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%]s€       2            &'          (R4R5RR]t staticmethodR[RfR%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyRT*s  tSequenceEncodercBseZeZd„ZRS(c KsHt}|dkr|jƒ|j}xt|jƒƒD]Ú\}}|r­||} | jrm|j rmq8n| jr‹|| j kr‹q8n|j r­|j d| jƒq­n||||} |r| j r| j } | j r| j|ƒ r|| | |} qn|| 7}q8Wn"xt|jjƒD] \}} y|| j}Wn-tk rxtjd| j|fƒ‚nX| jr—| j|kr—q,n| jrµ|| j krµq,n|j rÔ|j d| jƒn|||||} | j r-| j } | j r-| j|ƒ r-|| | |} q-n|| 7}q,W|ttfS(NR&s#Component name "%s" not found in %r(RR'tverifySizeSpect componentTypeR+tvaluest isOptionaltisValuet isDefaultedt asn1ObjecttomitEmptyOptionalstupdatetopenTypeR(tisSameTypeWitht namedTypestnametKeyErrorRRR*( RR!R"R#R$RR}R1t componentt namedTypeRItwrapType((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%«sJ           (R4R5R-RyR%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyRq¦stSequenceOfEncodercBseZd„ZRS(cKsl|dkr|jƒn |j}t}x4t|ƒD]&\}}||||||7}q5W|ttfS(N(R'RrRsRR+R*(RR!R"R#R$RR1R€((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%ís   (R4R5R%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyRƒìst ChoiceEncodercBseZd„ZRS(c KsÃ|dkr|jƒ}ng|jjD]}|j|kr(|j^q(}t|ƒdkrŒtjdt|ƒrydp|d|fƒ‚n|d}||}||}||||ttfS(Nis%s components for Choice at %rs Multiple sNone i( R't getComponentRsR}R~RRRR*( RR!R"R#R$R€RtnamesR~((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%üs .   (R4R5R%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR„ûst AnyEncodercBseZd„ZRS(cKsY|dkr|jƒ}n$t|ƒs?|j|ƒjƒ}n||jdtƒ tfS(NR(R'R?R R>R)R*(RR!R"R#R$((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR%s   (R4R5R%(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyR‡ stEncodercBs,eZdZdZid„Zdd„ZRS(cCs||_||_dS(N(t_Encoder__tagMapt_Encoder__typeMap(RttagMapttypeMap((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyt__init__`s c KsNy%|dkr|j}n |j}Wn'tk rNtjd|fƒ‚nXtjtj@rktj}nd}|r×|d|jdt ƒ r–dp™d|jddƒ|dkrÀ|j ƒpÉ|j ƒ|fƒn|j dk rü|j d|j ƒn|j dk r!|j d|j ƒny4|j|}|rT|d|jj|fƒnWn«tk r|dkr}|j}n |j}tj|j|jƒ}y|j|}Wn*tk rÛtjd ||fƒ‚nX|r|d |jj|fƒqnX|j||||} |rJ|d |t| ƒtj| ƒfƒn| S( Ns<Value %r is not ASN.1 type instance and "asn1Spec" not givensBencoder called in %sdef mode, chunk size %s for type %s, value: %sRtinRhR=is)using value codec %s chosen by type ID %ssNo encoder for %r (%s)s(using value codec %s chosen by tagSet %ss;codec %s built %s octets of substrate: %s encoder completed(R'ttypeIdtAttributeErrorRRRtloggert flagEncoderR)R*tprettyPrintTypetfixedDefLengthModeRztfixedChunkSizeRŠt __class__R4RR(R RAR@R‰RRthexdump( RR!R"R$RR‘tconcreteEncoderR(t baseTagSetR((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyt__call__dsH      Z !     !)N(R4R5R'R”R•RRš(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyRˆ[s N(Etpyasn1RRtpyasn1.codec.berRtpyasn1.compat.integerRtpyasn1.compat.octetsRRRRRR t pyasn1.typeR R R R t__all__tobjectRR6R7R8R<RGRJRKRTRqRƒR„R‡t endOfOctetsR(tBooleantIntegert BitStringt OctetStringtNulltObjectIdentifiert EnumeratedtRealt SequenceOftSetOftChoicet UTF8Stringt NumericStringtPrintableStringt TeletexStringtVideotexStringt IA5Stringt GraphicStringt VisibleStringt GeneralStringtUniversalStringt BMPStringtObjectDescriptortGeneralizedTimetUTCTimeR‹RtSettSequencetAnyRŒRˆR(((s:/tmp/pip-install-KP2Jbq/pyasn1/pyasn1/codec/ber/encoder.pyts . _%:5|F v