????

Your IP : 216.73.217.84


Current Path : /lib/python3.9/site-packages/pyasn1/codec/ber/__pycache__/
Upload File :
Current File : //lib/python3.9/site-packages/pyasn1/codec/ber/__pycache__/decoder.cpython-39.opt-1.pyc

a

�h�i���2@s�ddlmZddlmZddlmZddlmZddlmZm	Z	m
Z
mZddlm
Z
ddlmZddlmZdd	lmZdd
lmZddlmZdgZejeejd
�Ze
jZdZGdd�de�ZGdd�de�ZGdd�de�Ze�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de�Z#Gdd �d e�Z$Gd!d"�d"e�Z%Gd#d$�d$e�Z&Gd%d&�d&e&�Z'Gd'd(�d(e'�Z(Gd)d*�d*e(�Z)Gd+d,�d,e(�Z*Gd-d.�d.e'�Z+Gd/d0�d0e+�Z,Gd1d2�d2e+�Z-Gd3d4�d4e&�Z.Gd5d6�d6e�Z/Gd7d8�d8e"�Z0Gd9d:�d:e"�Z1Gd;d<�d<e"�Z2Gd=d>�d>e"�Z3Gd?d@�d@e"�Z4GdAdB�dBe"�Z5GdCdD�dDe"�Z6GdEdF�dFe"�Z7GdGdH�dHe"�Z8GdIdJ�dJe"�Z9GdKdL�dLe"�Z:GdMdN�dNe"�Z;GdOdP�dPe"�Z<GdQdR�dRe"�Z=ej>j?e�ej@j?e �ejAj?e!�ejBj?e"�ejCj?e#�ejDj?e$�ejEj?e�ejFj?e%�ejGj?e(�ejHj?e+�ejIj?e.�ejJj?e0�ejKj?e1�ejLj?e2�ejMj?e3�ejNj?e4�ejOj?e5�ejPj?e6�ejQj?e7�ejRj?e8�ejSj?e9�ejTj?e:�ejUj?e;�ejVj?e<�ejWj?e=�iZXejHjYe,�ejZjYe-�ejGjYe)�ej[jYe*�ejIjYe.�ej\jYe/�iZ]eX�^�D]8Z_e_j`dSu�re_j`jajYZYeYdSu�reYe]v�re_e]eY<�qdTdU�ebdV�D�\
ZcZdZeZfZgZhZiZjZkZlGdWdX�dXe�ZmemeXe]�ZndSS)Y�)�debug)�error)�eoo)�
from_bytes)�oct2int�	octs2ints�	ints2octs�null)�base)�char)�tag)�tagmap)�univ)�useful�decode)�flags�c@s$eZdZdZddd�Zddd�ZdS)�AbstractDecoderNc	Kst�d|f��dS)NzDecoder not implemented for %s�r�PyAsn1Error�	�self�	substrate�asn1Spec�tagSet�length�state�	decodeFun�substrateFun�options�r �</usr/lib/python3.9/site-packages/pyasn1/codec/ber/decoder.py�valueDecoder!szAbstractDecoder.valueDecoderc	Kst�d|f��dS)Nz5Indefinite length mode decoder not implemented for %srrr r r!�indefLenValueDecoder'sz$AbstractDecoder.indefLenValueDecoder)NNNNN)NNNNN)�__name__�
__module__�__qualname__�protoComponentr"r#r r r r!rs�
�rc@s eZdZedd��Zdd�ZdS)�AbstractSimpleDecodercCs|d|�||d�fS�Nr )�
asn1Objectrrr r r!�substrateCollector/sz(AbstractSimpleDecoder.substrateCollectorcKs@|�d�r|S|dur&|jj||d�S|tur2|S|�|�SdS)NZnative�r)�getr'�clone�noValue�rrr�valuerr r r!�_createComponent3s
z&AbstractSimpleDecoder._createComponentN)r$r%r&�staticmethodr+r2r r r r!r(.s
r(c@s*eZdZe�d�Zddd�Zddd�ZdS)	�ExplicitTagDecoder�Nc
Ks||r"||j||dfi|��||�S|d|�||d�}	}
||	|||fi|��\}}trttdt|�t�|�f�||
fS)Nr5zPexplicit tag container carries %d octets of trailing payload (will be lost!): %s)r2�LOG�lenr�hexdump)
rrrrrrrrr�head�tailr1�_r r r!r"As��zExplicitTagDecoder.valueDecodercKst|r"||j||dfi|��||�S|||||fi|��\}	}||fddi|��\}
}|
tjurf|	|fSt�d��dS)Nr5�allowEooTz Missing end-of-octets terminator)r2r�endOfOctetsrr)rrrrrrrrrr1�	eooMarkerr r r!r#Us�
z'ExplicitTagDecoder.indefLenValueDecoder)NNNNN)NNNNN�r$r%r&r�Anyr'r"r#r r r r!r4>s
�
�r4c@s eZdZe�d�Zddd�ZdS)�IntegerDecoderrNcKsx|djtjkrt�d��|d|�||d�}	}
|	sR|j||dfi|��|
fSt|	dd�}|j|||fi|��|
fS)Nr�Simple tag format expectedT)Zsigned)�	tagFormatr�tagFormatSimplerrr2r)rrrrrrrrrr9r:r1r r r!r"os
zIntegerDecoder.valueDecoder)NNNNN)r$r%r&r�Integerr'r"r r r r!rAls
�rAc@seZdZe�d�Zdd�ZdS)�BooleanDecoderrcKs tj||||rdpdfi|��S)N�r)rAr2r0r r r!r2�s
��zBooleanDecoder._createComponentN)r$r%r&r�Booleanr'r2r r r r!rF�s
rFc@s.eZdZe�d�ZdZddd�Zd	dd�ZdS)
�BitStringDecoderr TNcKsh|d|�||d�}	}
|r<||j||tfi|��||�S|	sJt�d��|djtjkr�t|	d�}|dkr|t�d|��|jj	|	dd�d|d�}|j|||fi|��|
fS|j
s�t�d|jj��t
r�t
d	�|j}|jj	tdd
�}
|	�rN||	|jfd|i|��\}}	t|d�}|dk�r0t�d|��|jj	|dd�d|
|d�}
q�|j|||
fi|��|
fS)
NzEmpty BIT STRING substrater��Trailing bits overflow %srGT)�internalFormat�padding�*Constructed encoding form prohibited at %s�$assembling constructed serialization�rLr�rLZprependrM)r2r/rrrCrrDrr'�fromOctetString�supportConstructedForm�	__class__r$r6r+r	)rrrrrrrrrr9r:�trailingBitsr1�	bitString�	componentr r r!r"�sZ���
�����

��zBitStringDecoder.valueDecodercKs�|r"||j||tfi|��||�S|j}|jjtdd�}	|r�|||jf|dd�|��\}
}|
tjurfq�t|
d�}|dkr�t	�
d|��|jj|
dd�d|	|d�}	q8t	�d	��|j|||	fi|��|fS)
NTrP�rr<rrJrKrGrQ�!No EOO seen before substrate ends)r2r/r+r'rRr	rr=rrr�SubstrateUnderrunError)rrrrrrrrrrVrWrUr r r!r#�s0
��

��
z%BitStringDecoder.indefLenValueDecoder)NNNNN)NNNNN)	r$r%r&r�	BitStringr'rSr"r#r r r r!rI�s
�
8�rIc@s.eZdZe�d�ZdZddd�Zd	dd�ZdS)
�OctetStringDecoderr5TNc
Ks�|d|�||d�}	}
|r<||j||tfi|��||�S|djtjkrf|j|||	fi|��|
fS|js~t�d|jj	��t
r�t
d�|j}t}|	r�||	|j
fd|i|��\}}	||7}q�|j|||fi|��|
fS)NrrNrOr)r2r/rCrrDrSrrrTr$r6r+r	r')
rrrrrrrrrr9r:�headerrWr r r!r"�s*���

zOctetStringDecoder.valueDecodercKs�|r0||jur0|j||tfi|��}	||	||�S|j}t}
|rr|||jf|dd�|��\}}|tjurhq||
|7}
q:t�d��|j|||
fi|��|fS)NTrXrY)	r+r2r/r	r'rr=rrZ)rrrrrrrrrr*r]rWr r r!r#
s*���


�z'OctetStringDecoder.indefLenValueDecoder)NNNNN)NNNNN)	r$r%r&r�OctetStringr'rSr"r#r r r r!r\�s
�
!�r\c@s eZdZe�d�Zddd�ZdS)�NullDecoderr5NcKsd|djtjkrt�d��|d|�||d�}	}
|j||dfi|��}|	r\t�d|��||
fS)NrrBr5z&Unexpected %d-octet substrate for Null)rCrrDrrr2)rrrrrrrrrr9r:rWr r r!r"/s
zNullDecoder.valueDecoder)NNNNN)r$r%r&r�Nullr'r"r r r r!r_,s
�r_c@s eZdZe�d�Zddd�ZdS)�ObjectIdentifierDecoderr NcKs�|djtjkrt�d��|d|�||d�}	}
|	sBt�d��t|	�}	d}d}t|	�}
||
k�r,|	|}|d7}|dkr�||f7}qZ|dk�r|}d}d}|dk�r|d7}|tkr�t�dt|f��|d>|d	@}||
kr�t�d
|f��|	|}|d7}q�||d>|f7}qZ|dkrZt�d��qZd|dk�rHdk�rVnn
d
|}n|d|dk�rrdk�r�nnd|ddf|dd�}n>|ddk�r�d|ddf|dd�}nt�d|	d��|j	|||fi|��|
fS)NrrBzEmpty substrater rG�zEOID arc exceeds maximum continuation octets limit (%d) at position %drJ�z#Short substrate for sub-OID past %sz"Invalid octet 0x80 in OID encoding�')r�(�O�P�zMalformed first OID octet: %s)
rCrrDrrrr7�MAX_OID_ARC_CONTINUATION_OCTETSrZr2)rrrrrrrrrr9r:Zoid�indexZsubstrateLenZsubIdZ	nextSubIdZcontinuationOctetCountr r r!r"DsX




���
 
 z$ObjectIdentifierDecoder.valueDecoder)NNNNN)r$r%r&r�ObjectIdentifierr'r"r r r r!raAs
�rac@seZdZe��Zddd�ZdS)�RealDecoderNcKs�|djtjkrt�d��|d|�||d�}	}
|	sR|j||dfi|��|
fSt|	d�}|	dd�}	|d@�r�|	s�t�d��tr�td�|d@d}|d	kr�t|	d�}|	dd�}	|	d|�|	|d�}
}	|
r�|	s�t�d
��t|
d�d@o�d�p�d}|
�r.|dK}|t|
d�O}|
dd�}
�q|d	?d@}|d
k�rNt�d��|dk�rb|d9}n|d
k�rt|d	9}d}|	�r�|dK}|t|	d�O}|	dd�}	�qx|d@�r�|}|d
?d@}|d
|9}|d
|f}n�|d@�rt�r�td�|d@�rd�pd}n�|d@dk�r�|	�s&t�d��t�r4td�z`|d@dk�rTt|	�ddf}n>|d@d
k�rlt	|	�}n&|d@dk�r�t	|	�}nt�
d|��Wnt�y�t�
d��Yn0nt�
d|��|j|||fi|��|
fS)NrrBgrGrbzIncomplete floating-point valuezdecoding binary encoded REAL��zReal exponent screwed����rhzIllegal Real base�@zdecoding infinite REALz-inf�inf�zdecoding character encoded REAL�
zUnknown NR (tag %s)zBad character Real syntaxzUnknown encoding (tag %s))rCrrDrrr2rr6�int�floatrZ�
ValueError)rrrrrrrrrr9r:�fo�n�eo�e�b�pZsfr1r r r!r"�s�













���zRealDecoder.valueDecoder)NNNNN)r$r%r&r�Realr'r"r r r r!rl�s�rlc@seZdZdZdS)�AbstractConstructedDecoderN)r$r%r&r'r r r r!r�src@sBeZdZdZdZdd�Zdd�Zddd�Zd
dd	�Zdd
d�Z	dS)�UniversalConstructedTypeDecoderNcCs
t��dSr)��NotImplementedError)rr*�idxr r r!�_getComponentTagMap�sz3UniversalConstructedTypeDecoder._getComponentTagMapcCs
t��dSr)r�)rr*rr�r r r!�_getComponentPositionByType�sz;UniversalConstructedTypeDecoder._getComponentPositionByTypecKs�g}t�}|rF||fi|��\}}|tjur.qF|�|�|�|j�q
t|�dkrZ|j}n|j}|j	t
j|jjg|j
�R�d�}	tr�td|	�t|�D]\}
}|	j|
|dddd�q�|	|fS)NrGr,z@guessed %r container type (pass `asn1Spec` to guide the decoder)F��verifyConstraints�	matchTags�matchConstraints)�setrr=�append�addrr7�protoRecordComponent�protoSequenceComponentr.r�TagSet�baseTagZ	superTagsr6�	enumerate�setComponentByPosition)rrrrr�
componentsZcomponentTypesrWr'r*r�r r r!�_decodeComponents�s2

���z1UniversalConstructedTypeDecoder._decodeComponentscKs|djtjkrt�d��|d|�||d�}	}
|dur�|durN|��}n&|jdurh|jj|d�}n|j|jf}||||�S|dur�|j	|	f||d�|��\}}|r�t
r�t
dt|�t�
|�f�||
fS|��}|��|jtjjtjjfv�r�|j}
|jtjjk}|�o|
j}t
�rLt
d|�r2d�p4d|�r@d	�pBd|f�t�}d}|	�rf|
�shd}nx|�rv|
j}njzD|�r�|
|j}n.|
|j�s�|
|j�r�|
�|�}n
|
|j}Wn$t�y�t�d
|f��Yn0||	|fi|��\}}	|�s<|
�r<|�r|
�|j�}n&|
|j�s.|
|j�r<|
�|j|�}|j||dddd�|� |�|d
7}�qVt
�rxt
d|�|
�r�|
j!�"|��s�t�d|j#j$��|
j%�r�|�&di�}t
�r�t
d�|�'�D]\}}t
d||f��q�|�s�|�&dd��r�t(|
j)�D�]�\}}|j*�s�q|j�r2|�+|�j,�s2�q|�-|j*j.�}z||}Wn�t/�y�t
�r�t
d|j#j$|j.|j#j$|j*j.f�|j*�'�D]\}}t
d||f��q�z|j*|}Wn0t/�y�t
�r�t
d|f�YY�qYn0Yn0t
�rt
d||f�|�+|�}|jtj0jtj1jfv�rft(|�D]2\}}|||�2�fd|i|��\}}|||<�q0n.||�+|��2�fd|i|��\}}|�||��qn|j3}|�r|�nh|��}|��|j}t
�r�t
d|�d}|	�r||	|fi|��\}}	|j||dddd�|d
7}�q�||
fS)Nr�Constructed tag format expectedr,�rrz)Unused trailing %d octets encountered: %s�5decoding %sdeterministic %s type %r chosen by type ID�non-r5�SET�"Excessive components decoded at %rFr�rG�seen component indices %s�,ASN.1 object %s has uninitialized components�	openTypes�user-specified open types map:�%s -> %r�decodeOpenTypes�Jdefault open types map of component "%s.%s" governed by component "%s.%s":�1failed to resolve open type by governing value %r�+resolved open type %r by governing value %rr�+decoding type %r chosen by given `asn1Spec`)4rCr�tagFormatConstructedrrr.r'r�r�r�r6r7rr8�clear�typeIdr�Sequence�Set�
componentType�hasOptionalOrDefaultr��tagMapUniquer*�
isOptional�isDefaulted�getTagMapNearPosition�
IndexError�getPositionByType�effectiveTagSet�getPositionNearTyper�r��requiredComponents�issubsetrTr$�hasOpenTypesr-�itemsr��
namedTypes�openType�getComponentByPosition�isValue�getComponentByName�name�KeyError�SetOf�
SequenceOf�asOctets�isInconsistent)rrrrrrrrrr9r:r*Ztrailingr��	isSetType�isDeterministic�seenIndicesr�r�rWr��k�v�	namedType�governingValuer��containerValue�pos�containerElement�rest�
inconsistencyr r r!r"#s6


���
���
�
�������
��
���
���
�z,UniversalConstructedTypeDecoder.valueDecodercKs2|djtjkrt�d��|durf|dur4|��}	n&|jdurN|jj|d�}	n|j|jf}	||	||�S|dur�|j	|f||d�t
|dd���S|��}	|	��|jt
jjt
jjfv�r�|	j}
|	jt
jjk}|o�|
j}t�rtd|r�dp�d	|r�d
p�d	|f�t�}
d}|�r8t|
�|k�r&d}nx|�r4|
j}njzD|�rH|
|j}n.|
|j�s`|
|j�rl|
�|�}n
|
|j}Wn$t�y�t�d|	f��Yn0|||fddi|��\}}|tju�rȐqB|�s|
�r|�r�|
�|j�}n&|
|j�s|
|j�r|
�|j|�}|	j ||d
d
d
d�|
�!|�|d7}�qt�"d��t�rTtd|
�|
�r*|
j#�$|
��szt�d|	j%j&��|
j'�r�|�(di�}t�r�td�|�)�D]\}}td||f��q�|�s�|�(dd
��r�t*|
j+�D�]�\}}|j,�s�q�|j�r|	�-|�j.�s�q�|	�/|j,j0�}z||}Wn�t1�y�t�r�td|	j%j&|j0|	j%j&|j,j0f�|j,�)�D]\}}td||f��qjz|j,|}Wn0t1�y�t�r�td|f�YY�q�Yn0Yn0t�r�td||f�|	�-|�}|jt
j2jt
j3jfv�rJt*|�D]:\}}|||�4�fd|it
|dd���\}}|||<�qnB||	�-|��4�fd|it
|dd���\}}|tju�r�|	� ||��q�n|	j5}|�r*|�n�|��}	|	��|j}t�r�td|�d}|�r |||fddi|��\}}|tju�r�q*|	j ||d
d
d
d�|d7}�q�t�"d��|	|fS)Nrr�r,r�T)r<r�r�r5r�r�r<Fr�rGrYr�r�r�r�r�r�r�r�r�rr�)6rCrr�rrr.r'r�r�r��dictr�r�rr�r�r�r�r6r�r7r�r*r�r�r�r�rr=r�r�r�r�r�rZr�r�rTr$r�r-r�r�r�r�r�r�r�r�r�r�r�r�r�)rrrrrrrrrr*r�r�r�r�r�rWr�r�r�r�r�r�r�r�r�r�r�r�r r r!r#�s6


��
���
�
������
��
��
�
��
�
��z4UniversalConstructedTypeDecoder.indefLenValueDecoder)NN)NNNNN)NNNNN)
r$r%r&r�r�r�r�r�r"r#r r r r!r��s
*�
M�r�c@seZdZe��Ze��ZdS)�SequenceOrSequenceOfDecoderN)r$r%r&rr�r�r�r�r r r r!r��sr�c@seZdZe��ZdS)�SequenceDecoderN)r$r%r&rr�r'r r r r!r��sr�c@seZdZe��ZdS)�SequenceOfDecoderN)r$r%r&rr�r'r r r r!r��sr�c@seZdZe��Ze��ZdS)�SetOrSetOfDecoderN)r$r%r&rr�r�r�r�r r r r!r��sr�c@seZdZe��ZdS)�
SetDecoderN)r$r%r&rr�r'r r r r!r��sr�c@seZdZe��ZdS)�SetOfDecoderN)r$r%r&rr�r'r r r r!r��sr�c@s(eZdZe��Zddd�Zddd�ZdS)�
ChoiceDecoderNcKs�|d|�||d�}	}
|dur2|jj|d�}n|��}|rJ||||�S|j|kr�trftd|f�||	|jfi|��\}}	n0tr�td|f�||	|j|||fi|��\}}	|j}
tr�td||
f�|j|
|ddddd�||
fS)Nr,�'decoding %s as explicitly tagged CHOICE�decoding %s as untagged CHOICE�*decoded component %s, effective tag set %sF�r�r�r�Z	innerFlag)r'r.rr6ZcomponentTagMapr��setComponentByType)rrrrrrrrrr9r:r*rWr�r r r!r"�s@
����
�zChoiceDecoder.valueDecoderc
Ks�|dur|jj|d�}	n|��}	|r0||	||�S|	j|kr�trLtd|f�|||	jjfi|��\}
}||fddi|��\}}|tjur�t�	d��n2tr�td|f�|||	jj|||fi|��\}
}|
j
}tr�td|
|f�|	j||
ddddd	�|	|fS)
Nr,r�r<TrYr�r�Fr�)r'r.rr6r�r�rr=rrr�r�)
rrrrrrrrrr*rWr>r�r r r!r#sP
��
���

��
�z"ChoiceDecoder.indefLenValueDecoder)NNNNN)NNNNN)r$r%r&r�Choicer'r"r#r r r r!r��s�
/�r�c@s(eZdZe��Zddd�Zddd�ZdS)�
AnyDecoderNc
Ks�|durd}	n"|jtjur&||jv}	n
||jk}	|	rj|d}
|t|
�t|�7}|
}trjtdt�|��|r�||j	||t
fi|��||�S|d|�||d�}}|j	|||fi|��|fS)NT�
fullSubstratez&decoding as untagged ANY, substrate %s)rTr
�TagMap�tagMaprr7r6rr8r2r/)
rrrrrrrrrZ
isUntaggedr�r9r:r r r!r"Cs"
�zAnyDecoder.valueDecodercKs:|durd}	n"|jtjur&||jv}	n
||jk}	|	rFt}
trvtd�n0|d}|dt|��}
trvtdt�	|
��|j
}|r�||jur�|j||t
fi|��}|||
||t|
��Str�td�|j}|�r|||f|dd�|��\}
}|
tjur��q|
|
7}
q�t�d��|�r|
|fS|j|||
fi|��|fSdS)	NFzdecoding as tagged ANYr�z-decoding as untagged ANY, header substrate %srOTrXrY)rTr
r�r�rr	r6r7rr8r'r+r2r/rr=rrZ)rrrrrrrrrZisTaggedr]r�r*rWr r r!r#bsH

��


�zAnyDecoder.indefLenValueDecoder)NNNNN)NNNNNr?r r r r!r�@s�
 �r�c@seZdZe��ZdS)�UTF8StringDecoderN)r$r%r&r�
UTF8Stringr'r r r r!r��sr�c@seZdZe��ZdS)�NumericStringDecoderN)r$r%r&r�
NumericStringr'r r r r!r��sr�c@seZdZe��ZdS)�PrintableStringDecoderN)r$r%r&r�PrintableStringr'r r r r!r��sr�c@seZdZe��ZdS)�TeletexStringDecoderN)r$r%r&r�
TeletexStringr'r r r r!r��sr�c@seZdZe��ZdS)�VideotexStringDecoderN)r$r%r&r�VideotexStringr'r r r r!r��sr�c@seZdZe��ZdS)�IA5StringDecoderN)r$r%r&r�	IA5Stringr'r r r r!r��sr�c@seZdZe��ZdS)�GraphicStringDecoderN)r$r%r&r�
GraphicStringr'r r r r!r��sr�c@seZdZe��ZdS)�VisibleStringDecoderN)r$r%r&r�
VisibleStringr'r r r r!r��sr�c@seZdZe��ZdS)�GeneralStringDecoderN)r$r%r&r�
GeneralStringr'r r r r!r��sr�c@seZdZe��ZdS)�UniversalStringDecoderN)r$r%r&r�UniversalStringr'r r r r!r��sr�c@seZdZe��ZdS)�BMPStringDecoderN)r$r%r&r�	BMPStringr'r r r r!r��sr�c@seZdZe��ZdS)�ObjectDescriptorDecoderN)r$r%r&r�ObjectDescriptorr'r r r r!r��sr�c@seZdZe��ZdS)�GeneralizedTimeDecoderN)r$r%r&r�GeneralizedTimer'r r r r!r��sr�c@seZdZe��ZdS)�UTCTimeDecoderN)r$r%r&r�UTCTimer'r r r r!r��sr�NcCsg|]}|�qSr r )�.0�xr r r!�
<listcomp>�r�rtc@s<eZdZeZe�ZdZifdd�Zddde	ddfdd�Z
dS)�DecoderTcCs&||_||_i|_i|_td�|_dS)N)rr)�_Decoder__tagMap�_Decoder__typeMap�_Decoder__tagCache�_Decoder__tagSetCacher�_Decoder__eooSentinel)rr��typeMapr r r!�__init__s
zDecoder.__init__NcKstr$tdtj|t|�t�|�f�|�dd�}	|	rj|jrj|dd�|jkrjtrXtd�tj	|dd�fSt
}
|j}|j}|j
}
|j}|}|tu�r�|tu�r|s�t�d��d}|d}|d	d�}z|
|}Wn�t�y�t|�}|d
@}|d@}|d@}|dk�r�d}d}d}zJt||�}|d	7}|d
K}||d@O}|d@�s�qR�q||d�}Wnt�y~t�d��Yn0tj|||d�}|�r�||
|<Yn0|du�r�|�r�z||}Wn(t�y�t�d|�}|||<Yn0nt�d|�}n||}t}t�rtd|�|tu�rV|�s2t�d��t|d�}|dk�rRd	}|}n~|dk�r�|d@}t|d	|d	��}t|�|k�r�t�d|t|�|f��d}|D]}|dK}||O}�q�|d	7}nd	}d}||d�}|dk�r�|j�st�d��n$t|�|k�rt�d|t|���t}t�rVtd|t�|dk�rB|�pL|d|��f�|tu�rt|du�rpt}nt}|tu�rFz||}Wnt�y�d}Yn0|�r�t}n>z||dd	�}Wnt�y�d}Yn0|�r�t}nt }t�rFtd|�r|j!j"�p
d|tu�rd�pdf�tj�#|du�r:d�pB|j$j!j"�|tu�r^|j!t%j&u�rz||}Wnt�y�d}Yn0t�rTtd �|j'�(�D]\}}td!||j!j"f��q�|j)�r�td"�|j)�(�D]\}}td!||j!j"f��q�td#|du�r
d�p|�*�|f�n8||j+k�s4||j,v�rP|}t�rTtd$|j!j"�nd}|du�r�z$||j-}t�r�td%|j-f�Wnbt�y�t�|j+j.|j+j.�}z ||}t�r�td&|f�Wnt�y�d}Yn0Yn0|�r�|}t}nt }nd}t }t�r^td'|tu�r"|j!j"�p$d|tu�r4d�p6df�tj�#|du�rTd�pZ|j!j"�|tu�r4|�/d(d��s�|�s�d)d*�}|j0|d+�|dk�r�|j1||||t||fi|��\}
}n"|j2||||t||fi|��\}
}t�r,td,|j!j"|
j!j"t3|
t4j5��r|
�6��p|
|�r"t�|��p$df�t}�q�|t u�r�|�rr|dj7tj8k�rr|dj9tj:k�rrt;}t}n
d}|j<}t�r�td-|�r�|j!j"�p�d|tu�r�d�p�d.f�|t=u�r�|j>}t�r�td/|j!j"�t}|t?ur�t�d0||f��q�t�rtj��td1tj�|
|fS)2NzWdecoder called at scope %s with state %d, working with up to %d octets of substrate: %sr<Frhzend-of-octets sentinel foundz"Short octet stream on tag decodingTrrGrs� �rJrcrbz'Short octet stream on long tag decoding)�tagClassrC�tagIdr z$tag decoded into %s, decoding lengthz%Short octet stream on length decodingz%s<%s at %srproz6Indefinite length encoding not supported by this codecz%d-octet shortz6value length decoded into %d, payload substrate is: %sz/codec %s chosen by a built-in type, decoding %sz<none>r1zas explicit tag�?z!candidate ASN.1 spec is a map of:z
  %s -> %szbut neither of: z,new candidate ASN.1 spec is %s, chosen by %szcandidate ASN.1 spec is %sz8value decoder chosen for an ambiguous type by type ID %szvalue decoder chosen by base %sz*codec %s chosen by ASN.1 spec, decoding %sZ
recursiveFlagcSs||d|�fSr)r )�ar|�cr r r!�<lambda>+rz"Decoder.__call__.<locals>.<lambda>)r�z@codec %s yields type %s, value:
%s
...remaining substrate is: %szcodec %s chosen, decoding %sz
as failurezcodec %s chosen, decoding valuez%s not in asn1Spec: %rz%decoder left scope %s, call completed)@r6rZscoper7r8�pop�supportIndefLengthrrr=r/rrrr�stStop�stDecodeTagrrZr�rr�rZTagr��stDecodeLengthrr�stGetValueDecoder�stGetValueDecoderByTag�stGetValueDecoderByAsn1Spec�
stDecodeValue�stTryAsExplicitTagrTr$�pushr'r
r�ZpresentTypesr�Z	skipTypesZprettyPrintTyperr�r�r�r-�updater#r"�
isinstancer
ZAsn1ItemZprettyPrintrCr�rZtagClassUniversal�explicitTagDecoder�defaultErrorState�stDumpRawValue�defaultRawDecoder�stErrorCondition)rrrrrrrrrr<r1r�rZtagCacheZtagSetCacher�Z
isShortTagZ
firstOctetZlastTagZ
integerTagrrCrZlengthOctetIdx�sizeZ
encodedLengthZlengthOctetZconcreteDecoderZ
chosenSpecr�Z
baseTagSetr r r!�__call__&s� 


�

�
�

�

�

.




0"

&

4 

����
F
��0

�
zDecoder.__call__)r$r%r&r"rr�r!rrrr$r r r r!rs�r)oZpyasn1rrZpyasn1.codec.berrZpyasn1.compat.integerrZpyasn1.compat.octetsrrrr	Zpyasn1.typer
rrr
rr�__all__ZregisterLoggeer$Z
DEBUG_DECODERr6r/ri�objectrr(r4rrArFrIr\r_rarlrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rErrHr[r^r`rkZ
Enumeratedr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r@r�valuesZtypeDecoderr'rT�rangerrrrrrrr r"rrrr r r r!�<module>s�+`C@kSeb
























� 





�

�