
    vKgX5                       S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SKJr  S SK	J
r
  S SK	Jr  S SK	Jr  S SK	Jr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  / SQr\R4                  " \\R8                  S9r\R<                  r\R>                  r " S S\ 5      r! " S S\!5      r" " S S\"5      r#\#" 5       r$ " S S\"5      r% " S S\%5      r& " S S\"5      r' " S S \"5      r( " S! S"\"5      r) " S# S$\"5      r* " S% S&\"5      r+ " S' S(\"5      r, " S) S*\!5      r- " S+ S,\-5      r. " S- S.\.5      r/ " S/ S0\/5      r0 " S1 S2\/5      r1 " S3 S4\.5      r2 " S5 S6\25      r3 " S7 S8\25      r4 " S9 S:\.5      r5 " S; S<\"5      r6 " S= S>\(5      r7 " S? S@\(5      r8 " SA SB\(5      r9 " SC SD\(5      r: " SE SF\(5      r; " SG SH\(5      r< " SI SJ\(5      r= " SK SL\(5      r> " SM SN\(5      r? " SO SP\(5      r@ " SQ SR\(5      rA " SS ST\(5      rB " SU SV\(5      rC " SW SX\(5      rD0 \R                  R                  \%" 5       _\R                  R                  \&" 5       _\R                  R                  \'" 5       _\R                  R                  \(" 5       _\R                  R                  \)" 5       _\R                  R                  \*" 5       _\R                  R                  \+" 5       _\R                  R                  \%" 5       _\R                  R                  \," 5       _\R                  R                  \/" 5       _\R                  R                  \2" 5       _\R                  R                  \5" 5       _\R                  R                  \7" 5       _\R                  R                  \8" 5       _\R                  R                  \9" 5       _\R                  R                  \:" 5       _\R                  R                  \;" 5       _\R                  R                  \<" 5       \R                  R                  \=" 5       \R                  R                  \>" 5       \R                  R                  \?" 5       \R                  R                  \@" 5       \R                  R                  \A" 5       \R                  R                  \B" 5       \R                  R                  \C" 5       \R                  R                  \D" 5       0	Er`\R                  R                  \3" 5       \R                  R                  \4" 5       \R                  R                  \0" 5       \R                  R                  \1" 5       \R                  R                  \5" 5       \R                  R                  \6" 5       0re\`R                  5        HD  rg\gR                  c  M  \gR                  R                  R                  ra\ac  M7  \a\e;  d  M?  \g\e\a'   MF     \j" SY5       V s/ sH  o PM     sn u
  rkrlrmrnrorprqrrrsrt\u" SZ5      rv " S[ S\\ 5      rw " S] S^\ 5      rx " S_ S`\ 5      ry\y" 5       rzSa\{4Sb jr|gs  sn f )c    N)debug)error)eoo)asSeekableStream)isEndOfStream)peekIntoStreamreadFromStream)_MISSING)PyAsn1Error)base)char)tag)tagmap)univ)useful)StreamingDecoderDecoderdecode)flagsc                   D    \ rS rSrSr  SS jr  SS jr\S 5       rSr	g)AbstractPayloadDecoder%   Nc                 6    [         R                  " SU< 35      e)zdDecode value with fixed byte length.

The decoder is allowed to consume as many bytes as necessary.
z&SingleItemDecoder not implemented for r   r   	self	substrateasn1SpectagSetlengthstate	decodeFunsubstrateFunoptionss	            X/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/pyasn1/codec/ber/decoder.pyvalueDecoder#AbstractPayloadDecoder.valueDecoder(   s     f VWW    c                 6    [         R                  " SU< 35      e)zcDecode value with undefined length.

The decoder is allowed to consume as many bytes as necessary.
z3Indefinite length mode decoder not implemented for r   r   s	            r&   indefLenValueDecoder+AbstractPayloadDecoder.indefLenValueDecoder2   s     [a cddr)   c                     SU;  a  XS'   U$ )N
asn1Object )r.   r%   s     r&   _passAsn1Object&AbstractPayloadDecoder._passAsn1Object<   s    w&$.L!r)   r/   NNNNN)
__name__
__module____qualname____firstlineno__protoComponentr'   r+   staticmethodr0   __static_attributes__r/   r)   r&   r   r   %   s8    N 6:26X >B:>e  r)   r   c                   *    \ rS rSr\S 5       rS rSrg)AbstractSimplePayloadDecoderD   c              #   :   #    [        XU5       H  nUv   M	     g 7fNr	   )r.   r   r!   r%   chunks        r&   substrateCollector/AbstractSimplePayloadDecoder.substrateCollectorE   s     #Iw?EK @s   c                     UR                  S5      (       a  U$ Uc  U R                  R                  X2S9$ U[        L a  U$ UR                  U5      $ )Nnativer    )getr7   clonenoValuer   r   r    valuer%   s        r&   _createComponent-AbstractSimplePayloadDecoder._createComponentJ   sR    ;;x  L&&,,U,BBgO>>%((r)   r/   N)r3   r4   r5   r6   r8   r@   rJ   r9   r/   r)   r&   r;   r;   D   s     )r)   r;   c                   T    \ rS rSr\R
                  " S5      r  SS jr  SS jrSr	g)RawPayloadDecoderU    Nc              +      #    U(       a)  U R                   " X#S40 UD6n	U" XXH5       H  n
U
v   M	     g U" XX440 UD6 H  nUv   M	     g 7f)NrO   )rJ   r   r   r   r    r!   r"   r#   r$   r%   r.   r?   rI   s               r&   r'   RawPayloadDecoder.valueDecoderX   sY      ..xOwOJ%jVM N yFNgNEK Os   AA	c              +      #    U(       a)  U R                   " X#S40 UD6n	U" XXH5       H  n
U
v   M	     g  U" XX44SS0UD6 H  nU[        R                  L a    g Uv   M     M.  7f)NrO   TallowEoo)rJ   r   endOfOctetsrQ   s               r&   r+   &RawPayloadDecoder.indefLenValueDecoderg   s      ..xOwOJ%jVM N ".!.%,. COO+. s   A A"r/   r2   
r3   r4   r5   r6   r   Anyr7   r'   r+   r9   r/   r)   r&   rM   rM   U   s*    XXb\N 6:26  >B:>r)   rM   c                   F    \ rS rSr\R
                  " S5      r  SS jrSrg)IntegerPayloadDecoder   r   Nc              +   R  #    US   R                   [        R                  :w  a  [        R                  " S5      e[        XU5       H  n	[        U	[        5      (       d  M  U	v   M      W	(       a  [        R                  [        U	5      SSS9n
OSn
U R                  " X#U
40 UD6v   g 7f)Nr   Simple tag format expectedbigT)signed)	tagFormatr   tagFormatSimpler   r   r
   
isinstanceSubstrateUnderrunErrorint
from_bytesbytesrJ   )r   r   r   r    r!   r"   r#   r$   r%   r?   rI   s              r&   r'   "IntegerPayloadDecoder.valueDecoder   s     
 !9#"5"55##$@AA#Iw?E%!788 @ NN5<tNDE E##HeGwGGs   AB' AB'r/   r2   )	r3   r4   r5   r6   r   Integerr7   r'   r9   r/   r)   r&   rZ   rZ      s    \\!_N 6:26Hr)   rZ   c                   >    \ rS rSr\R
                  " S5      rS rSrg)BooleanPayloadDecoder   r   c                 V    [         R                  " XX#=(       a    S=(       d    S40 UD6$ )N   r   )rZ   rJ   rH   s        r&   rJ   &BooleanPayloadDecoder._createComponent   s.    $55FKa$41A8?A 	Ar)   r/   N)	r3   r4   r5   r6   r   Booleanr7   rJ   r9   r/   r)   r&   rj   rj      s    \\!_NAr)   rj   c                   X    \ rS rSr\R
                  " S5      rSr  SS jr  SS jr	Sr
g)BitStringPayloadDecoder   r/   TNc              +     #    U(       a-  U R                   " X#[        40 UD6n	U" XXH5       H  n
U
v   M	     g U(       d  [        R                  " S5      e[	        U5       H  n
[        U
[        5      (       d  M  U
v   M      W
(       a  [        R                  " S5      eUS   R                  [        R                  :X  a  [        USU5       H  n[        U[        5      (       d  M  Uv   M      [        W5      nUS:  a  [        R                  " SU-  5      e[        XS-
  U5       H  n
[        U
[        5      (       d  M  U
v   M      U R                  R                  U
SUS9nU R                   " X#U40 UD6v   g U R                  (       d-  [        R                  " SU R                  R                   -  5      e["        (       a  [#        S	5        U R$                  nU R                  R                  S
SS9nUR'                  5       nUR'                  5       U-
  U:  a  U" XR                  4SU0UD6 H  n[        U[        5      (       d  M  Uv   M      WS   nUS:  a  [        R                  " SU-  5      eU R                  R                  USS  SXS9nUR'                  5       U-
  U:  a  M  U R                   " X#U40 UD6v   g 7f)NzEmpty BIT STRING substrater   rm      Trailing bits overflow %sT)internalFormatpadding*Constructed encoding form prohibited at %s$assembling constructed serializationr)   rv   r$   rv   prependrw   )rJ   rG   r   r   r   rb   rc   r`   r   ra   r
   ordr7   fromOctetStringsupportConstructedForm	__class__r3   LOGr@   tell)r   r   r   r    r!   r"   r#   r$   r%   r.   r?   trailingBitsrI   	bitStringcurrent_position	components                   r&   r'   $BitStringPayloadDecoder.valueDecoder   s    
 ..xTGTJ%jVM N ##$@AA"9-E%!788 . ##$@AA!9#"5"55 .y!W El,BCC&& !F |,La''/,>  (	A:wGe%;<<K H ''77dL 8 BE ''%K7KK**## %,.2nn.E.E%F G G 367 ..''77D7Q	$>>+nn!11F:&22AM	 i)?@@#O	 %Q<La''/,>  ++;;!"d! < I nn!11F:$ ##HiK7KKs(   A3K9A)K&AKDKA!K.Kc              +   8  #    U(       a-  U R                   " X#[        40 UD6n	U" XXH5       H  n
U
v   M	     g U R                  nU R                  R	                  SSS9n U" XR                  4USS.UD6 H3  nU[
        R                  L a    O[        U[        5      (       d  M/  Uv   M5     W[
        R                  L a  ODUS   nUS:  a  [        R                  " SU-  5      eU R                  R	                  USS  SXS	9nM  U R                   " X#U40 UD6v   g 7f)
Nr)   Trz   r$   rT   r   rt   ru   rm   r{   )rJ   rG   r@   r7   r~   r   rU   rb   rc   r   r   )r   r   r   r    r!   r"   r#   r$   r%   r.   r?   r   r   r   s                 r&   r+   ,BitStringPayloadDecoder.indefLenValueDecoder   s>    
 ..xTGTJ%jVM N  ..''77D7Q	&22.AM!.%,.	 /i)?@@#O. COO+$Q<La''/,>  ++;;!"d! < I+ 4 ##HiK7KKs   BD#A7Dr2   )r3   r4   r5   r6   r   	BitStringr7   r   r'   r+   r9   r/   r)   r&   rq   rq      s5    ^^B'N! 6:26NLb >B:>,Lr)   rq   c                   X    \ rS rSr\R
                  " S5      rSr  SS jr  SS jr	Sr
g)	OctetStringPayloadDecoderi$  rO   TNc              +   (  #    U(       a-  U R                   " X#[        40 UD6n	U" XXH5       H  n
U
v   M	     g US   R                  [        R                  :X  aE  [        XU5       H  n
[        U
[        5      (       d  M  U
v   M      U R                   " X#W
40 UD6v   g U R                  (       d-  [        R                  " SU R                  R                  -  5      e[        (       a  [        S5        U R                  nSnUR                  5       nUR                  5       U-
  U:  aU  U" XR                   4SU0UD6 H  n[        U[        5      (       d  M  Uv   M      UW-  nUR                  5       U-
  U:  a  MU  U R                   " X#U40 UD6v   g 7f)Nr   rx   ry   r)   r$   )rJ   rG   r`   r   ra   r
   rb   rc   r   r   r   r   r3   r   r@   r   r7   )r   r   r   r    r!   r"   r#   r$   r%   r.   r?   headeroriginal_positionr   s                 r&   r'   &OctetStringPayloadDecoder.valueDecoder(  s     ..xTGTJ%jVM N !9#"5"55'	7Ce%;<<K D ''%K7KK**##$PSWSaSaSjSj$jkk367 ..%NN,nn!22V;&22AM	 i)?@@#O	 iF nn!22V; ##HfHHHs   A8F>CF$F;Fc              +     #    U(       a;  XpR                   La-  U R                  " X#[        40 UD6n	U" XXH5       H  n
U
v   M	     g U R                   nSn U" XR                  4USS.UD6 H1  n[	        U[
        5      (       a  Uv   U[        R                  L d  M1    O   W[        R                  L a  OX-  nMe  U R                  " X#U40 UD6v   g 7f)Nr)   Tr   )r@   rJ   rG   r7   rb   rc   r   rU   )r   r   r   r    r!   r"   r#   r$   r%   r.   r?   r   r   s                r&   r+   .OctetStringPayloadDecoder.indefLenValueDecoderU  s      L0G0GG..xTGTJ%jVM N  ..&22.AM!.%,.	 i)?@@#O/. COO+F " ##HfHHHs   BC5Cr/   r2   )r3   r4   r5   r6   r   OctetStringr7   r   r'   r+   r9   r/   r)   r&   r   r   $  s6    %%b)N! 6:26+I\ >B:>"Ir)   r   c                   F    \ rS rSr\R
                  " S5      r  SS jrSrg)NullPayloadDecoderiz  rO   Nc              +   F  #    US   R                   [        R                  :w  a  [        R                  " S5      e[        XU5       H  n	[        U	[        5      (       d  M  U	v   M      U R                  " X#S40 UD6n
W	(       a  [        R                  " SU-  5      eU
v   g 7f)Nr   r]   rO   z&Unexpected %d-octet substrate for Null)	r`   r   ra   r   r   r
   rb   rc   rJ   )r   r   r   r    r!   r"   r#   r$   r%   r?   r   s              r&   r'   NullPayloadDecoder.valueDecoder}  s     
 !9#"5"55##$@AA#Iw?E%!788 @ ))(BJ'J	##$Lv$UVVs   AB! AB!r/   r2   )	r3   r4   r5   r6   r   Nullr7   r'   r9   r/   r)   r&   r   r   z  s    YYr]N 6:26r)   r   c                   F    \ rS rSr\R
                  " S5      r  SS jrSrg)ObjectIdentifierPayloadDecoderi  r/   Nc              +   h  #    US   R                   [        R                  :w  a  [        R                  " S5      e[        XU5       H  n	[        U	[        5      (       d  M  U	v   M      W	(       d  [        R                  " S5      eSn
Sn[        U	5      nX:  a  X   nUS-  nUS:  a  X4-  n
OsUS:  aQ  UnSnUS:  a;  US-  US-  -   nX:  a  [        R                  " S	U
< 35      eX   nUS-  nUS:  a  M;  XS-  U-   4-  n
OUS:X  a  [        R                  " S
5      eX:  a  M  SU
S   s=::  a  S::  a	  O  OSU
-   n
OZSU
S   s=::  a  S::  a  O  OSU
S   S-
  4U
SS  -   n
O6U
S   S:  a  SU
S   S-
  4U
SS  -   n
O[        R                  " SU	S   -  5      eU R                  " X#U
40 UD6v   g 7f)Nr   r]   Empty substrater/   rm      rt      !Short substrate for sub-OID past z"Invalid octet 0x80 in OID encoding'   )r   (   O   P      zMalformed first OID octet: %s
r`   r   ra   r   r   r
   rb   rc   lenrJ   )r   r   r   r    r!   r"   r#   r$   r%   r?   oidindexsubstrateLensubId	nextSubIds                  r&   r'   +ObjectIdentifierPayloadDecoder.valueDecoder  s     !9#"5"55##$@AA#Iw?E%!788 @ ##$5665z"LEQJEs{x!	3&"aZI,<=E,#::EHJ  !&IQJE  3& !y022#
 ''(LMM/ "4 A"*C3q6Rc!frk"SW,CVr\c!frk"SW,C##$CeAh$NOO##HcEWEEs   AF2 BF29-F2(B
F2r2   )	r3   r4   r5   r6   r   ObjectIdentifierr7   r'   r9   r/   r)   r&   r   r     s     **2.N 6:264Fr)   r   c                   F    \ rS rSr\R
                  " S5      r  SS jrSrg)RelativeOIDPayloadDecoderi  r/   Nc              +     #    US   R                   [        R                  :w  a  [        R                  " S5      e[        XU5       H  n	[        U	[        5      (       d  M  U	v   M      W	(       d  [        R                  " S5      eSn
Sn[        U	5      nX:  a  X   nUS-  nUS:  a  X4-  n
OsUS:  aQ  UnSnUS:  a;  US-  US-  -   nX:  a  [        R                  " S	U
< 35      eX   nUS-  nUS:  a  M;  XS-  U-   4-  n
OUS:X  a  [        R                  " S
5      eX:  a  M  U R                  " X#U
40 UD6v   g 7f)Nr   r]   r   r/   rm   r   rt   r   r   z+Invalid octet 0x80 in RELATIVE-OID encodingr   )r   r   r   r    r!   r"   r#   r$   r%   r?   reloidr   r   r   r   s                  r&   r'   &RelativeOIDPayloadDecoder.valueDecoder  sa     !9#"5"55##$@AA#Iw?E%!788 @ ##$5665z"LEQJEs{("!	3&"aZI,<=E,#::EKM  !&IQJE  3& QJ)355#
 ''(UVV/ "2 ##HfHHHs   AD? BD?9-D?(D?r2   )	r3   r4   r5   r6   r   RelativeOIDr7   r'   r9   r/   r)   r&   r   r     s     %%b)N 6:26*Ir)   r   c                   D    \ rS rSr\R
                  " 5       r  SS jrSrg)RealPayloadDecoderi  Nc              +     #    US   R                   [        R                  :w  a  [        R                  " S5      e[        XU5       H  n	[        U	[        5      (       d  M  U	v   M      W	(       d  U R                  " X#S40 UD6v   g U	S   n
U	SS  n	U
S-  (       Ga3  U	(       d  [        R                  " S5      e[        (       a  [        S5        U
S-  S-   nUS	:X  a
  U	S   nU	SS  n	U	S U XS  pU(       a  U	(       d  [        R                  " S
5      eUS   S-  =(       a    S=(       d    SnU(       a  US-  nXS   -  nUSS  nU(       a  M  U
S	-	  S-  nUS:  a  [        R                  " S5      eUS:X  a  US-  nOUS:X  a  US	-  nSnU	(       a  US-  nXS   -  nU	SS  n	U	(       a  M  U
S-  (       a  U* nU
S-	  S-  nUSU-  -  nUSU4nOU
S-  (       a.  [        (       a  [        S5        U
S-  =(       a    S=(       d    SnOU
S-  S:X  a  U	(       d  [        R                  " S5      e[        (       a  [        S5         U
S-  S:X  a  [        U	5      SS4nO\U
S-  S:X  a  [        U	5      nOGU
S-  S:X  a  [        U	5      nO2[        R                  " SU
-  5      e[        R                  " SU
-  5      eU R                  " X#U40 UD6v   g ! [         a    [        R                  " S5      ef = f7f)Nr   r]   g        rm   r   zIncomplete floating-point valuezdecoding binary encoded REAL      zReal exponent screwed   r   zIllegal Real base@   zdecoding infinite REALz-infinf   zdecoding character encoded REAL
   zUnknown NR (tag %s)zBad character Real syntaxzUnknown encoding (tag %s))r`   r   ra   r   r   r
   rb   rc   rJ   r   rd   float
ValueError)r   r   r   r    r!   r"   r#   r$   r%   r?   foneoebpsfrI   s                     r&   r'   RealPayloadDecoder.valueDecoder  s	     !9#"5"55##$@AA#Iw?E%!788 @ ''#III1Xab	99''(IJJs23daAAv!Hab	bq	59U''(?@@1#(qAaU
V "
 a$A1u''(;<<AvQaQAa1Xab	 %
 DyBq4BbLA1IE$Ys,-I(&1EE$Y!^''(IJJs568s? ZQ/E#X_!%LE#X_!%LE  66-2  ..+b0  ##HeGwGG  22/ sW   AK2 C+K2AK2+BK2K K2K /K20K K2K 0K2!K//K2r/   r2   )	r3   r4   r5   r6   r   Realr7   r'   r9   r/   r)   r&   r   r     s    YY[N 6:26hHr)   r   c                       \ rS rSrSrSrg)!AbstractConstructedPayloadDecoderii  Nr/   )r3   r4   r5   r6   r7   r9   r/   r)   r&   r   r   i  s    Nr)   r   c                   R    \ rS rSrSrSrS rS r  S	S jr  S
S jr	  S
S jr
Srg)ConstructedPayloadDecoderBaseim  Nc                     [         er>   NotImplementedError)r   r.   idxs      r&   _getComponentTagMap1ConstructedPayloadDecoderBase._getComponentTagMapq      !!r)   c                     [         er>   r   )r   r.   r    r   s       r&   _getComponentPositionByType9ConstructedPayloadDecoderBase._getComponentPositionByTypet  r   r)   c           	   +     #    S n/ n[        5       nUR                  5       n	US:X  d  UR                  5       X-   :  a  U" U40 UD6 H  n
[        U
[        5      (       d  M  U
v   M      US:X  a  W
[        R
                  L a  OUR                  W
5        UR                  U
R                  5        [        U5      S:  a  U R                  nOU R                  nUR                  [        R                  " UR                  R                  /UR                   Q76 S9nUS:X  a  M  UR                  5       X-   :  a  M  ["        (       a  [#        SU-  5        [%        U5       H  u  pUR'                  XSSSS9  M     Uv   g 7f)Nr   rm   rD   z@guessed %r container type (pass `asn1Spec` to guide the decoder)FverifyConstraints	matchTagsmatchConstraints)setr   rb   rc   r   rU   appendaddr    r   protoRecordComponentprotoSequenceComponentrF   r   TagSetbaseTag	superTagsr   	enumeratesetComponentByPosition)r   r   r    r#   r!   r%   r.   
componentscomponentTypesr   r   r7   r   s                r&   _decodeComponentsSchemaless9ConstructedPayloadDecoderBase._decodeComponentsSchemalessw  so     

%NN,linn.1B1KK&y<G<	i)?@@#O = |	S__ <i(y//0 >"Q&!%!:!: "&!<!<'-- zz."7"7"?"?S&BRBRS . J+ linn.1B1KK6 3 '( ) (
3NC--"'% .  4 s   AE< B>E< E<8AE<c              +     #    US   R                   [        R                  :w  a  [        R                  " S5      eUR                  5       n	U(       ah  Ub  UR                  5       n
O?U R                  b  U R                  R                  US9n
OU R                  U R                  4n
U" XXH5       H  nUv   M	     g Uc  U R                  " U4X6US.UD6 H  n
[        U
[        5      (       d  M  U
v   M      UR                  5       X-   :  ac  [        (       aX  [        XS9 H  n[        U[        5      (       d  M  Uv   M      [        S[        W5      [         R"                  " U5      4-  5        W
v   g UR                  5       n
U
R%                  5         U R'                  X5      nUR(                  [*        R,                  R(                  [*        R.                  R(                  4;   Ga,  UR0                  nUR(                  [*        R.                  R(                  :H  nU(       + =(       a    UR2                  (       + n[        (       aA  [        SU(       + =(       a    S=(       d    S	< S
U=(       a    S=(       d    S	< SU< S35        [5        5       nSnUR                  5       U	-
  U:  Gad  U(       d  S nOvU(       a  UR6                  nOb U(       a  UU   R8                  nOJUU   R:                  (       d  UU   R<                  (       a  UR?                  U5      nOUU   R8                  n U" UU40 UD6 H  n[        U[        5      (       d  M  Uv   M      U(       dn  U(       ag  U(       a  URC                  WRD                  5      nODUU   R:                  (       d  UU   R<                  (       a  URG                  WRD                  U5      nU
RI                  UWSSSS9  URK                  U5        US-  nUR                  5       U	-
  U:  a  GMd  [        (       a  [        SU-  5        U(       Ga  URL                  RO                  U5      (       d-  [        R                  " SU
RP                  RR                  -  5      eURT                  (       GaC  URW                  S0 5      n[        (       a7  [        S5        URY                  5        H  u  nn[        U< SU< 35        M     U(       d  URW                  SS5      (       Ga  [[        UR\                  5       GH  u  nnUR^                  (       d  M  UR:                  (       a"  U
Ra                  U5      Rb                  (       d  MM  U
Re                  UR^                  Rf                  5      n UU   n[        (       a  [        SU< SU< 35        U
Ra                  U5      nUR(                  [*        Rj                  R(                  [*        Rl                  R(                  4;   af  [[        U5       HT  u  nn[o        UU   Rq                  5       5      nU" U4SU0UD6 H  n[        U[        5      (       d  M  Uv   M      WUU'   MV     GMO  [o        U
Ra                  U5      Rq                  5       5      nU" U4SU0UD6 H  n[        U[        5      (       d  M  Uv   M      U
RI                  UW5        GM     OU
Rr                  nU(       a.  [        R                  " S U
RP                  RR                   S!35      eOUR0                  n[        (       a  [        S"U-  5        SnUR                  5       U	-
  U:  a]  U" UU40 UD6 H  n[        U[        5      (       d  M  Uv   M      U
RI                  UWSSSS9  US-  nUR                  5       U	-
  U:  a  M]  U
v   g ! [@         a    [        R                  " SU< 35      ef = f! [h         a    [        (       a  [        SU
RP                  RR                  < SURf                  < SU
RP                  RR                  < SUR^                  Rf                  < S3	5        UR^                  RY                  5        H  u  nn[        U< SU< 35        M      UR^                  U   n GN! [h         a     [        (       a  [        SU< 35          GM  f = ff = f7f)#Nr   Constructed tag format expectedrD   r    r#   r!   )contextz)Unused trailing %d octets encountered: %s	decoding non-rO   deterministic SET type  chosen by type ID Excessive components decoded at Fr   rm   seen component indices %s,ASN.1 object %s has uninitialized components	openTypesuser-specified open types map: -> decodeOpenTypes%default open types map of component "." governed by component "":/failed to resolve open type by governing value resolved open type  by governing value r   ASN.1 object  is inconsistent+decoding type %r chosen by given `asn1Spec`):r`   r   tagFormatConstructedr   r   r   rF   r7   r   r   r   rb   rc   r   r
   r   r   hexdumpclearr0   typeIdr   SequenceSetcomponentTypehasOptionalOrDefaultr   tagMapUniquer.   
isOptionalisDefaultedgetTagMapNearPosition
IndexErrorgetPositionByTypeeffectiveTagSetgetPositionNearTyper   r   requiredComponentsissubsetr   r3   hasOpenTypesrE   itemsr   
namedTypesopenTypegetComponentByPositionisValuegetComponentByNamenameKeyErrorSetOf
SequenceOfr   asOctetsisInconsistent)r   r   r   r    r!   r"   r#   r$   r%   r   r.   r?   trailingr  	isSetTypeisDeterministicseenIndicesr   r  r   r   kv	namedTypegoverningValuer  containerValueposcontainerElementstreaminconsistencys                                  r&   r'   *ConstructedPayloadDecoderBase.valueDecoder  s     !9#":"::##$EFF%NN,#%^^-
$$0!0066f6E
 "668S8SS
%jVM N ">>.&,!.%,.
 j*@AA$$	. ~~"3"<<3$29$N%h0FGG"*N %O CHu}}X'>G@ @ A ^^%
&&z;??t}}33TXX__EE!//J 488??:I"+mSJ4S4S0SOs''2F8b8):M:SQS:S  %KC.."%66?!$(M$.$;$;M*,6sO,F,FM'_77:c?;V;V,6,L,LS,QM -7sO,F,FM "+9m!Ow!OI!)-CDD' "P ': (::9;T;TU#C33z#7R7R(<<Y=V=VX[\11&+#e 2  $qS .."%66?V s/+=>!44==kJJ++%'1';';'D'DEF F +++ 'K <Is<=$-OO$5DAqa 34 %6 !GKK0A5$I$I.7
8M8M.NNC#,#5#5 ((33J<]<]^a<b<j<j (-7-J-J ) 2 2 7 7.N-+4^+D0  #s #2:N%L !M .8-N-Ns-SN-44$(JJ$5$5t7M7M9O  O >G(6>8$9C)9 .>nS>Q>Z>Z>\-]F5>v5dPX5d\c5d	+5iAW+X+X2;O 6e ;DN3$7>8 *:*:[:[\_:`:i:i:k)l1:61`H1`X_1`I'1)=S'T'T.7 2a !+ A A#y Q /OD !+ 9 9 ++'
(<(<(E(E'FFVWY Y !
 %22MsAMQRC.."%66?!*9m!Ow!OI!)-CDD' "P 11&+#e 2  q .."%66? U & #//DLN x $, -#&3$'/9/C/C/L/L/8~~/9/C/C/L/L/8/A/A/F/F)H %I 1:0B0B0H0H0J1(+!Q,?(@ 1K!-/8/A/A./QH'/ !-'*s(+:H-K )L$,	!-!-s   C&c,Ac8Fc^2 c9^2 c^2 '!cB=cE:c_B?cAc0C c47c-c2%_cB-cbc$c>c?ccccc              +     #    US   R                   [        R                  :w  a  [        R                  " S5      eUbh  Ub  UR                  5       n	O?U R                  b  U R                  R                  US9n	OU R                  U R                  4n	U" XXH5       H  n
U
v   M	     g UcE  U R                  " U4X6US.[        USS9D6 H  n	[        U	[        5      (       d  M  U	v   M      W	v   g UR                  5       n	U	R                  5         U R                  X5      nUR                  [         R"                  R                  [         R$                  R                  4;   Ga`  U	R&                  nU	R                  [         R$                  R                  :H  nU(       + =(       a    UR(                  (       + n[*        (       aA  [+        SU(       + =(       a    S=(       d    S	< S
U=(       a    S=(       d    S	< SU< S35        [-        5       nSn [/        U5      U::  a  S nOrU(       a  UR0                  nO^ U(       a  X   R2                  nOGX   R4                  (       d  X   R6                  (       a  UR9                  U5      nOX   R2                  n U" X4SS0UD6 H1  n[        U[        5      (       a  Uv   U[<        R>                  L d  M1    O   W[<        R>                  L a  OU(       dl  U(       ae  U(       a  URA                  URB                  5      nOBX   R4                  (       d  X   R6                  (       a  URE                  URB                  U5      nU	RG                  UUSSSS9  URI                  U5        US-  nGMw  [*        (       a  [+        SU-  5        U(       Ga  URJ                  RM                  U5      (       d-  [        R                  " SU	RN                  RP                  -  5      eURR                  (       Ga|  URU                  S0 5      n[*        (       a7  [+        S5        URW                  5        H  u  nn[+        U< SU< 35        M     U(       d  URU                  SS5      (       Ga  [Y        URZ                  5       GH  u  nnUR\                  (       d  M  UR4                  (       a"  U	R_                  U5      R`                  (       d  MM  U	Rc                  UR\                  Rd                  5      n UU   n[*        (       a  [+        SU< SU< 35        U	R_                  U5      nUR                  [         Rh                  R                  [         Rj                  R                  4;   a  [Y        U5       Ho  u  nn[m        UU   Ro                  5       5      nU" U4S U0[        USS9D6 H1  n[        U[        5      (       a  Uv   U[<        R>                  L d  M1    O   UUU'   Mq     GMj  [m        U	R_                  U5      Ro                  5       5      nU" U4S U0[        USS9D6 HE  n[        U[        5      (       a  Uv   U[<        R>                  L a    GM  U	RG                  UU5        MG     GM     OU	Rp                  nU(       a.  [        R                  " S!U	RN                  RP                   S"35      eOUR&                  n[*        (       a  [+        S#U-  5        Sn U" UU4SS0UD6 H1  n[        U[        5      (       a  Uv   U[<        R>                  L d  M1    O   W[<        R>                  L a  OU	RG                  UUSSSS9  US-  nMo  U	v   g ! [:         a    [        R                  " SU	< 35      ef = f! [f         a    [*        (       a  [+        SU	RN                  RP                  < SURd                  < SU	RN                  RP                  < SUR\                  Rd                  < S3	5        UR\                  RW                  5        H  u  nn[+        U< SU< 35        M      UR\                  U   n GNB! [f         a     [*        (       a  [+        SU< 35          GM  f = ff = f7f)$Nr   r   rD   r   TrT   r   r   rO   r   r   r   r   r   rT   Fr   rm   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r  r  r  )9r`   r   r  r   r   rF   r7   r   r   r   dictrb   rc   r	  r0   r
  r   r  r  r  r  r   r   r   r  r.   r  r  r  r  r   rU   r  r  r  r   r   r  r  r   r3   r  rE   r  r   r  r  r  r  r  r   r!  r"  r#  r   r$  r%  )r   r   r   r    r!   r"   r#   r$   r%   r.   r?   r  r'  r(  r)  r   r   r   r*  r+  r,  r-  r  r.  r/  r0  r1  r2  r  s                                r&   r+   2ConstructedPayloadDecoderBase.indefLenValueDecoder  s     !9#":"::##$EFF##%^^-
$$0!0066f6E
 "668S8SS
%jVM N ">>C&,!C%)'D%AC
 j*@AA$$	C ^^%
&&z;??t}}33TXX__EE#11J"))TXX__<I"+mSJ4S4S0SOs''2F8b8):M:SQS:S  %KCz?c)#H)66H*'1'A'AH'_77:?;V;V'1'G'G'LH (2'A'AH "+9!Y!YQX!YI!)-CDD' COO3 "Z /&: (::9;T;TU#33z7R7R(<<Y=V=VX[\11&+#e 2  $qa d s/+=>!44==kJJ++%'1';';'D'DEF F *** 'K <Is<=$-OO$5DAqa 34 %6 !GKK0A5$I$I.7
8M8M.NNC#,#5#5 ((33J<]<]^a<b<j<j (-7-J-J ) 2 2 7 7.N-+4^+D0  #s #2:N%L !M .8-N-Ns-SN-44$(JJ$5$5t7M7M9O  O >G(6>8$9C)9 .>nS>Q>Z>Z>\-]F5>v 6_PX 6_AEgX\A]6_	+5iAW+X+X2;O+4+G,16_ ;DN3$7>8  *:*:[:[\_:`:i:i:k)l1:6 2[H 2[=A'TX=Y2[I'1)=S'T'T.7'0COO'C(-$.$E$Ec9$U2[} /OR %/$=$=M$#//+J,@,@,I,I+JJZ[] ] %22MsAMQRC!*!="L;?"LCJ"LI ")-CDD' COO3"L /11&+#e 2  q) , C & #//DNP F $, -#&3$'/9/C/C/L/L/8~~/9/C/C/L/L/8/A/A/F/F)H %I 1:0B0B0H0H0J1(+!Q,?(@ 1K!-/8/A/A./QH'/ !-'*s(+:H-K )L$,	!-!-s   Ca6 Ea63] a6	7]  a6] 9a6H1a6>^Ca6%D=a6&7a6%^a6B-a33aa6$a/)a3*a6.a//a33a6r/   )NNNr2   )r3   r4   r5   r6   r   r   r   r   r   r'   r+   r9   r/   r)   r&   r   r   m  sD    !"" 591h 6:26[| >B:>ir)   r   c                   X    \ rS rSr\R
                  " 5       r\R                  " 5       rSr	g)"SequenceOrSequenceOfPayloadDecoderis  r/   N)
r3   r4   r5   r6   r   r  r   r#  r   r9   r/   r)   r&   r9  r9  s  s    ==?!__.r)   r9  c                   6    \ rS rSr\R
                  " 5       rSrg)SequencePayloadDecoderix  r/   N)r3   r4   r5   r6   r   r  r7   r9   r/   r)   r&   r;  r;  x  s    ]]_Nr)   r;  c                   6    \ rS rSr\R
                  " 5       rSrg)SequenceOfPayloadDecoderi|  r/   N)r3   r4   r5   r6   r   r#  r7   r9   r/   r)   r&   r=  r=  |      __&Nr)   r=  c                   X    \ rS rSr\R
                  " 5       r\R                  " 5       rSr	g)SetOrSetOfPayloadDecoderi  r/   N)
r3   r4   r5   r6   r   r  r   r"  r   r9   r/   r)   r&   r@  r@    s    88:!ZZ\r)   r@  c                   6    \ rS rSr\R
                  " 5       rSrg)SetPayloadDecoderi  r/   N)r3   r4   r5   r6   r   r  r7   r9   r/   r)   r&   rB  rB    s    XXZNr)   rB  c                   6    \ rS rSr\R
                  " 5       rSrg)SetOfPayloadDecoderi  r/   N)r3   r4   r5   r6   r   r"  r7   r9   r/   r)   r&   rD  rD    s    ZZ\Nr)   rD  c                   R    \ rS rSr\R
                  " 5       r  SS jr  SS jrSr	g)ChoicePayloadDecoderi  Nc           	   +     #    Uc  U R                   R                  US9n	OUR                  5       n	U(       a  U" XXH5       H  n
U
v   M	     g U R                  X5      nU	R                  U:X  aQ  [        (       a  [	        SU< S35        U" XR
                  40 UD6 H  n[        U[        5      (       d  M  Uv   M      OR[        (       a  [	        SU< S35        U" XR
                  X4U40 UD6 H  n[        U[        5      (       d  M  Uv   M      WR                  n[        (       a  [	        SU< SU< 35        U	R                  XSSSSS9  U	v   g 7f)	NrD   r   z as explicitly tagged CHOICEz as untagged CHOICEdecoded component , effective tag set Fr   r   r   	innerFlag)
r7   rF   r0   r    r   componentTagMaprb   rc   r  setComponentByType)r   r   r   r    r!   r"   r#   r$   r%   r.   r?   r   r  s                r&   r'   !ChoicePayloadDecoder.valueDecoder  sK     ,,22&2AJ ")J%jVM N &&z;&sIJ&99F=DF	i)?@@#OF s@A&996&$&	 i)?@@#O	& $333	?[\%%#e	 	& 	
 s   B/E5AEA
Ec           
   +   &  #    Uc  U R                   R                  US9n	OUR                  5       n	U(       a  U" XXH5       H  n
U
v   M	     g U R                  X5      nU	R                  U:H  n[        (       a&  [	        SU< SU=(       a    S=(       d    S< S35         U(       a&  U" XR
                  R                  40 [        USS9D6nO'U" XR
                  R                  X4U40 [        USS9D6nU Hw  n[        U[        5      (       a  Uv   U[        R                  L a    OJUR                  n[        (       a  [	        S	U< S
U< 35        U	R                  XSSSSS9  U(       a  Mw    O   U(       a  W[        R                  L a  OM  U	v   g 7f)NrD   r   z as zexplicitly unztagged CHOICETr5  rH  rI  FrJ  )r7   rF   r0   r    r   r  r  r6  rb   rc   r   rU   r  rM  )r   r   r   r    r!   r"   r#   r$   r%   r.   r?   isTaggediteratorr   r  s                  r&   r+   )ChoicePayloadDecoder.indefLenValueDecoder  s     ,,22&2AJ ")J%jVM N &&z;$$.32]:d:< = $77DD47T24
 %77DDEK-1'D-IK &	i)?@@#O/"+";";3 )?< = --#&+#e#	 .   x- &0 yCOO;K N s   E%F+&Fr/   r2   )
r3   r4   r5   r6   r   Choicer7   r'   r+   r9   r/   r)   r&   rF  rF    s)    [[]N 6:261h >B:>?r)   rF  c                   R    \ rS rSr\R
                  " 5       r  SS jr  SS jrSr	g)AnyPayloadDecoderi  Nc              +     #    Uc  Sn	O:UR                   [        R                  L a  X2R                  ;  n	OX2R                  :g  n	U	(       a  UR
                  n
UR                  5       nUR                  U
[        R                  5        XKU
-
  -  n[        (       aO  [        X5       H  n[        U[        5      (       d  M  Uv   M      [        S[        R                  " W5      -  5        U(       a,  U" U R                   " X#["        40 UD6XU5       H  nUv   M	     g [%        XU5       H  n[        U[        5      (       d  M  Uv   M      U R                   " X#W40 UD6v   g 7f)NTz&decoding as untagged ANY, substrate %s)r   r   TagMaptagMapr    markedPositionr   seekosSEEK_SETr   r   rb   rc   r   r  rJ   rG   r
   )r   r   r   r    r!   r"   r#   r$   r%   
isUntaggedfullPositioncurrentPositionr?   s                r&   r'   AnyPayloadDecoder.valueDecoder  s7     J6==06J  ??2J$33L'nn.ONN<544Fs+I>E!%)?@@# ?   ==/0 1 %))(GOwOw0 0
 #Iw?E%!788 @ ##HeGwGGs   B7E=A?E Ec              +      #    Uc  Sn	O:UR                   [        R                  L a  X2R                  ;   n	OX2R                  :H  n	U	(       a  Sn
[
        (       a  [        S5        OUR                  nUR                  5       nUR                  U[        R                  5        [        XU-
  U5       H  n
[        U
[        5      (       d  M  U
v   M      [
        (       a"  [        S[        R                  " W
5      -  5        U R                   nU(       aL  XpR"                  La>  U R$                  " X#[&        40 UD6nU" UW
U-   U[)        U
5      -   U5       H  n
U
v   M	     g [
        (       a  [        S5        U R"                  n U" X4USS.UD6 H1  n[        U[        5      (       a  Uv   U[*        R,                  L d  M1    O   W[*        R,                  L a  OW
U-  n
M\  U(       a  W
v   g U R$                  " X#W
40 UD6v   g 7f)NFr)   zdecoding as tagged ANYz-decoding as untagged ANY, header substrate %sry   Tr   )r   r   rX  rY  r    r   rZ  r   r[  r\  r]  r
   rb   rc   r   r  r7   r@   rJ   rG   r   r   rU   )r   r   r   r    r!   r"   r#   r$   r%   rQ  r?   r_  r`  r.   r   s                  r&   r+   &AnyPayloadDecoder.indefLenValueDecoder1  s     H6==00H 0HEs,- %33L'nn.ONN<5'	\3QSZ[e%;<<K \ sCemmTYFZZ[ &&L0G0GG..'6-46J &	 16CJ3FQQ 367 ..&.6B!.%,.	 i)?@@#O/. COO+YE " K ''%K7KKs   CG>C0G><AG>r/   r2   rW   r/   r)   r&   rV  rV    s,    XXZN 6:26'HT >B:>ILr)   rV  c                   6    \ rS rSr\R
                  " 5       rSrg)UTF8StringPayloadDecoderi~  r/   N)r3   r4   r5   r6   r   
UTF8Stringr7   r9   r/   r)   r&   re  re  ~  r>  r)   re  c                   6    \ rS rSr\R
                  " 5       rSrg)NumericStringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   NumericStringr7   r9   r/   r)   r&   rh  rh        '')Nr)   rh  c                   6    \ rS rSr\R
                  " 5       rSrg)PrintableStringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   PrintableStringr7   r9   r/   r)   r&   rl  rl        ))+Nr)   rl  c                   6    \ rS rSr\R
                  " 5       rSrg)TeletexStringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   TeletexStringr7   r9   r/   r)   r&   rp  rp    rj  r)   rp  c                   6    \ rS rSr\R
                  " 5       rSrg)VideotexStringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   VideotexStringr7   r9   r/   r)   r&   rs  rs    s    ((*Nr)   rs  c                   6    \ rS rSr\R
                  " 5       rSrg)IA5StringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   	IA5Stringr7   r9   r/   r)   r&   rv  rv        ^^%Nr)   rv  c                   6    \ rS rSr\R
                  " 5       rSrg)GraphicStringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   GraphicStringr7   r9   r/   r)   r&   rz  rz    rj  r)   rz  c                   6    \ rS rSr\R
                  " 5       rSrg)VisibleStringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   VisibleStringr7   r9   r/   r)   r&   r}  r}    rj  r)   r}  c                   6    \ rS rSr\R
                  " 5       rSrg)GeneralStringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   GeneralStringr7   r9   r/   r)   r&   r  r    rj  r)   r  c                   6    \ rS rSr\R
                  " 5       rSrg)UniversalStringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   UniversalStringr7   r9   r/   r)   r&   r  r    rn  r)   r  c                   6    \ rS rSr\R
                  " 5       rSrg)BMPStringPayloadDecoderi  r/   N)r3   r4   r5   r6   r   	BMPStringr7   r9   r/   r)   r&   r  r    rx  r)   r  c                   6    \ rS rSr\R
                  " 5       rSrg)ObjectDescriptorPayloadDecoderi  r/   N)r3   r4   r5   r6   r   ObjectDescriptorr7   r9   r/   r)   r&   r  r    s    ,,.Nr)   r  c                   6    \ rS rSr\R
                  " 5       rSrg)GeneralizedTimePayloadDecoderi  r/   N)r3   r4   r5   r6   r   GeneralizedTimer7   r9   r/   r)   r&   r  r    s    ++-Nr)   r  c                   6    \ rS rSr\R
                  " 5       rSrg)UTCTimePayloadDecoderi  r/   N)r3   r4   r5   r6   r   UTCTimer7   r9   r/   r)   r&   r  r    s    ^^%Nr)   r  r   )r   r   c                   V    \ rS rSr\r\" 5       rSr\	r	\
r
\\4S jrSSS\SS4S jrSrg)SingleItemDecoderi  Tc                     U[         La  UOU R                  U l        U[         La  UOU R                  U l        0 U l        0 U l        g r>   )r   TAG_MAP_tagMapTYPE_MAP_typeMap	_tagCache_tagSetCache)r   rY  typeMapignoreds       r&   __init__SingleItemDecoder.__init__  s;    !'x!7vT\\#*(#: r)   Nc              +     #    UR                  SS5      n	[        (       a  [        S[        R                  XTU4-  5        U	(       a  U R                  (       a  [        USU5       H  n
[        U
[        5      (       d  M  U
v   M      W
[        :X  a)  [        (       a  [        S5        [        R                  v   g UR                  S[        R                  5        U R                  nU R                  nU R                   nU R"                  n[$        nUR'                  5       Ul        U[*        LGa!  U[,        L a  Sn[        USU5       H  n[        U[        5      (       d  M  Uv   M      [/        W5      n UU   nUc&  U(       a   UU   nO[4        R8                  " SU5      nOUU-   n[:        n[        (       a  [        SU-  5        U[:        L Ga*  [        USU5       H  n[        U[        5      (       d  M  Uv   M      [/        W5      nUS:  a  UnOUS:  a  US-  n[        UUU5       H  n[        U[        5      (       d  M  Uv   M      [=        W5      n[?        U5      U:w  a*  [2        R                  " U< S[?        U5      < SU< 35      eSnU H  nUS-  nUU-  nM     US-  nOSnUS:X  a'  U R                  (       d  [2        R@                  " S5      e[B        n[        (       a  [        SU-  5        U[B        L a  Uc  [D        nO[F        nU[D        L a   X   nU(       a  [H        nO XS S    nU(       a  [H        nO[J        n[        (       a  [        SU=(       a    URL                  RN                  =(       d    S< SU[H        L =(       a    S=(       d    S< 35        [        R                  RQ                  US L =(       a    S=(       d     URR                  RL                  RN                  5        U[F        L Gap  URL                  [T        RV                  L Ga   X#   n[        (       a  [        S 5        URX                  R[                  5        H-  u  nn[        S!U< S"URL                  RN                  < 35        M/     UR\                  (       aV  [        S#5        UR\                  R[                  5        H-  u  nn[        S!U< S"URL                  RN                  < 35        M/     [        S$US L =(       a    S=(       d    UR_                  5       < S%U< 35        OPX2R`                  :X  d  X2Rb                  ;   a0  Un[        (       a"  [        S&URL                  RN                  -  5        OS nUbK   UURd                     n[        (       a  [        S'URd                  < 35        U(       a	  Un[H        nO[J        nOS n[J        n[        (       a  [        SU[H        L =(       a    URL                  RN                  =(       d    S< S)U[H        L =(       a    S=(       d    S< 35        [        R                  RQ                  US L =(       a    S=(       d    URL                  RN                  5        U[H        L Ga  URi                  S*S5      (       d
  U(       d  S+ nUR'                  5       n!US:X  a=  WRj                  " XX4[B        X40 UD6 H  n[        U[        5      (       d  M  Uv   M      OWRl                  " XX4[B        X40 UD6 H  n[        U[        5      (       d  M  Uv   M      UR'                  5       U!-
  n"U(       d  U"U:w  a  [A        S,U"< S-U< S.35      eU(       a  U"U:  a  [A        S,U"< S/U< S.35      e[        (       ax  [        SURL                  RN                  < S0URL                  RN                  < S1[        U[n        Rp                  5      =(       a    URs                  5       =(       d    U< S235        [*        nGOCU[J        L a  U(       aO  US   Rt                  [4        Rv                  :X  a.  US   Rx                  [4        Rz                  :w  a  [|        n[H        nOS nU R~                  n[        (       aQ  [        SU=(       a    URL                  RN                  =(       d    S< S3U[H        L =(       a    S=(       d    S4< 35        U[        L a?  U R                  n[        (       a"  [        S5URL                  RN                  -  5        [H        nU[        L a  [2        R@                  " U< S6U< 35      eU[*        La  GM!  [        (       a:  [        R                  R                  5         [        S7[        R                  -  5        Uv   g ! [0         a    UnUS	-  nUS
-  nUS-  nUS:X  a}  SnSnSn [        USU5       H  n[        U[        5      (       d  M  Uv   M      W(       d  [2        R                  " S5      e[/        U5      nUS-  nUS-  nUUS-  -  nUS-  (       d  OMv  [4        R6                  " UUUS9nU(       a  UUU'    GNf = f! [0         a    [4        R8                  " SU5      nX>U'    GNf = f! [0         a    S n GNzf = f! [0         a    S n GNwf = f! [0         a    S n GNf = f! [0         aw    [4        R8                  " UR`                  Rf                  UR`                  Rf                  5      n  UU    n[        (       a  [        S(U < 35         GN! [0         a    S n  GNf = ff = f7f)8NrT   FzWdecoder called at scope %s with state %d, working with up to %s octets of substrate: %sr   zend-of-octets sentinel foundTrm   r          r   z'Short octet stream on long tag decodingrt   r   r   )tagClassr`   tagIdr/   z$tag decoded into %s, decoding length<z at r   r   z6Indefinite length encoding not supported by this codeczvalue length decoded into %dzcodec z<none>z% chosen by a built-in type, decoding rI   zas explicit tag?z!candidate ASN.1 spec is a map of:z  r   zbut neither of: znew candidate ASN.1 spec is z, chosen by zcandidate ASN.1 spec is %sz6value decoder chosen for an ambiguous type by type ID zvalue decoder chosen by base z  chosen by ASN.1 spec, decoding recursiveFlagc              3      #    U v   g7f)a  Legacy hack to keep the recursiveFlag=False option supported.

The decode(..., substrateFun=userCallback) option was introduced in 0.1.4 as a generalization
of the old recursiveFlag=False option. Users should pass their callback instead of using
recursiveFlag.
Nr/   )r.   
_substrate_length_optionss       r&   r$   0SingleItemDecoder.__call__.<locals>.substrateFun  s      )(s   zRead z bytes instead of expected r   z bytes are more than expected z yields type z	, value:
z
...z chosen, decoding z
as failurezcodec %s chosen, decoding valuez not in asn1Spec: z%decoder left scope %s, call completed)Cpopr   r   scopesupportIndefLengthr
   rb   rc   EOO_SENTINELr   rU   r[  r\  SEEK_CURr  r  r  r  rG   r   rZ  stStopstDecodeTagr}   r!  r   r   Tagr   stDecodeLengthlistr   r   stGetValueDecoderstGetValueDecoderByTagstGetValueDecoderByAsn1SpecstDecodeValuestTryAsExplicitTagr   r3   pushr7   r   rX  presentTypesr  	skipTypesprettyPrintTyper    rY  r
  r   rE   r+   r'   r   Asn1ItemprettyPrintr`   r  r  tagClassUniversalrawPayloadDecoderdefaultErrorStatestDumpRawValuedefaultRawDecoderstErrorCondition)#r   r   r   r    r!   r"   r#   r$   r%   rT   eoo_candidaterY  r  tagCachetagSetCacherI   
isShortTag	firstByte
firstOctetlastTag
integerTagr  r`   r  lengthOctetIdxintegerBytesizeencodedLengthlengthOctetconcreteDecoder
chosenSpecr+  
baseTagSetr   	bytesReads#                                      r&   __call__SingleItemDecoder.__call__	  s
    
 ;;z513 UI>? @
 //!/	1g!Fm-CDD'' "G ,367oo% r2;;/-->>''#,>>#3	 6!#!
!/	1g!FI!)-CDD' "G !^
&7&z2GN >!=%0%<F "%B!8 %v-F&3>GH&"0Aw"GJ!*.DEE(( #H !_
#'F#%%,D)7	4)Q%m5KLL"// *R %)$7M =)T1#::-13}3EvN  F'41+- (5 AID  FR<(?(?++,dee)36?@))#2E 8E" ..+&,nO
 #)E/*0*<
 ' - 23_  NDapazaz  bD  bD  NP  HP  NP  RW  [h  Rh  Rt  mt  RI  xI  RI  J  KKK$$_%<%D%yHfHfHpHpHyHyz33%%6*%-%5

 s?@-5-B-B-H-H-JMJ
AKK<P<P QR .K $-- 23191C1C1I1I1K
A #J@T@T$U V 2Lj\`N`Nmem  ONq{  rL  rL  rN  ON  PV  W  X.&OO2K!)Js88;M;M;V;VVW "&J)3*1*2C2C*D3^h^o^o qr '#- - !3 '+O.E3Q^H^  IFcrc|c|  dF  dF  IR  JR  IR  TY  ]j  Tj  Tv  ov  TK  zK  TK  L  MKK$$Z4%7%?C%`:CWCWC`C`a%{{?D99,) %.NN$4!R<!0!E!E%",= "; 3:"; &e-CDD"'K"; "1!=!=%",= "; 3:"; &e-CDD"'K"; !* 03D DI'I,?)GPRXY[ [%)f*<)JSU[\^ ^ 3&00995??;S;S!%7OE<M<M<OXSXXZ [ **q	++s/G/GGq	**c.C.CC&7O)E '+O 22E3/:poNgNgNpNp:|t|:|  D  HU  U  a  Za  q  eq  q  r  s&"&"8"839O<U<U<^<^^_%((''06A S	 6!Z	 3KKOO7%++EFE	   #7!+J)D0H *T 1I&-E}%*
)* !"/=iG/T#-k;Q#R#R*5$5 0U $/&+&B&B$M'" !" *-[)9J*a/N!aKE!j4&78E#-#4 %! #$ "gg!)YeG "/6,G#7T  ( =%(ZZG%<F6<
3=f   +&*O+ $ /*./$ $ *%)
*> $ 3%(ZZ
0A0A0I0IJL]L]LeLe%f
3.4Z.@O"s #$U V' 3.2O33s8  A8m	>Cm	 m	4f 9
m	i  	A*m	7A
m	Cm	j !m	0j 7C)m	!j2 %Em	73k *D9m	'9m	$H(m	A
m	Ai(A1im	im	 %j	m	j		m	jm	jm	j/+m	.j//m	2k>m	km	A	ml1.m	1m=m>m	mmm	)r  r  r  r  )r3   r4   r5   r6   r  r  rV  r  r  r  r  r   r  r  r  r9   r/   r)   r&   r  r    sB    ()+GH&  ,0TdVr)   r  c                   ,    \ rS rSrSr\rSS jrS rSr	g)r   ib  a  Create an iterator that turns BER/CER/DER byte stream into ASN.1 objects.

On each iteration, consume whatever BER/CER/DER serialization is
available in the `substrate` stream-like object and turns it into
one or more, possibly nested, ASN.1 objects.

Parameters
----------
substrate: :py:class:`file`, :py:class:`io.BytesIO`
    BER/CER/DER serialization in form of a byte stream

Keyword Args
------------
asn1Spec: :py:class:`~pyasn1.type.base.PyAsn1Item`
    A pyasn1 type object to act as a template guiding the decoder.
    Depending on the ASN.1 structure being decoded, `asn1Spec` may
    or may not be required. One of the reasons why `asn1Spec` may
    me required is that ASN.1 structure is encoded in the *IMPLICIT*
    tagging mode.

Yields
------
: :py:class:`~pyasn1.type.base.PyAsn1Item`, :py:class:`~pyasn1.error.SubstrateUnderrunError`
    Decoded ASN.1 object (possibly, nested) or
    :py:class:`~pyasn1.error.SubstrateUnderrunError` object indicating
    insufficient BER/CER/DER serialization on input to fully recover ASN.1
    objects from it.
    
    In the latter case the caller is advised to ensure some more data in
    the input stream, then call the iterator again. The decoder will resume
    the decoding process using the newly arrived data.

    The `context` property of :py:class:`~pyasn1.error.SubstrateUnderrunError`
    object might hold a reference to the partially populated ASN.1 object
    being reconstructed.

Raises
------
~pyasn1.error.PyAsn1Error, ~pyasn1.error.EndOfStreamError
    `PyAsn1Error` on deserialization error, `EndOfStreamError` on
     premature stream closure.

Examples
--------
Decode BER serialisation without ASN.1 schema

.. code-block:: pycon

    >>> stream = io.BytesIO(
    ...    b'0      ')
    >>>
    >>> for asn1Object in StreamingDecoder(stream):
    ...     print(asn1Object)
    >>>
    SequenceOf:
     1 2 3

Decode BER serialisation with ASN.1 schema

.. code-block:: pycon

    >>> stream = io.BytesIO(
    ...    b'0      ')
    >>>
    >>> schema = SequenceOf(componentType=Integer())
    >>>
    >>> decoder = StreamingDecoder(stream, asn1Spec=schema)
    >>> for asn1Object in decoder:
    ...     print(asn1Object)
    >>>
    SequenceOf:
     1 2 3
Nc                 j    U R                   " S0 UD6U l        [        U5      U l        X l        X0l        g )Nr/   )SINGLE_ITEM_DECODER_singleItemDecoderr   r  	_asn1Specr  )r   r   r   r%   s       r&   r  StreamingDecoder.__init__  s.    "&":":"EW"E*95!r)   c              #     #     U R                   " U R                  U R                  40 U R                  D6 H  nUv   M	     [	        U R                  5       H  n[        U[        5      (       a  S v     O   W(       a  g M|  7fr>   )r  r  r  r  r   rb   rc   )r   r.   r?   s      r&   __iter__StreamingDecoder.__iter__  su     "55OOT^^F7;}}F
  F 't7e%;<<	 8  s   A>B )r  r  r  r  r>   )
r3   r4   r5   r6   __doc__r  r  r  r  r9   r/   r)   r&   r   r   b  s    HT , r)   r   c                   @    \ rS rSrSr\r\SS j5       r\	S 5       r
Srg)r   i  zfCreate a BER decoder object.

Parse BER/CER/DER octet-stream into one, possibly nested, ASN.1 object.
Nc                 @  ^ [        U5      nSU;   a  US   mSU4S jjnXCS'   U R                  " X40 UD6nU HF  n[        U[        5      (       a  [        R                  " S5      e [        [        U5      5      nXg4s  $    g! [        R                   a    Sn N f = f)a7  Turns BER/CER/DER octet stream into an ASN.1 object.

Takes BER/CER/DER octet-stream in form of :py:class:`bytes`
and decode it into an ASN.1 object
(e.g. :py:class:`~pyasn1.type.base.PyAsn1Item` derivative) which
may be a scalar or an arbitrary nested structure.

Parameters
----------
substrate: :py:class:`bytes`
    BER/CER/DER octet-stream to parse

Keyword Args
------------
asn1Spec: :py:class:`~pyasn1.type.base.PyAsn1Item`
    A pyasn1 type object (:py:class:`~pyasn1.type.base.PyAsn1Item`
    derivative) to act as a template guiding the decoder.
    Depending on the ASN.1 structure being decoded, `asn1Spec` may or
    may not be required. Most common reason for it to require is that
    ASN.1 structure is encoded in *IMPLICIT* tagging mode.

substrateFun: :py:class:`Union[
        Callable[[pyasn1.type.base.PyAsn1Item, bytes, int],
                 Tuple[pyasn1.type.base.PyAsn1Item, bytes]],
        Callable[[pyasn1.type.base.PyAsn1Item, io.BytesIO, int, dict],
                 Generator[Union[pyasn1.type.base.PyAsn1Item,
                                 pyasn1.error.SubstrateUnderrunError],
                           None, None]]
    ]`
    User callback meant to generalize special use cases like non-recursive or
    partial decoding. A 3-arg non-streaming variant is supported for backwards
    compatiblilty in addition to the newer 4-arg streaming variant.
    The callback will receive the uninitialized object recovered from substrate
    as 1st argument, the uninterpreted payload as 2nd argument, and the length
    of the uninterpreted payload as 3rd argument. The streaming variant will
    additionally receive the decode(..., **options) kwargs as 4th argument.
    The non-streaming variant shall return an object that will be propagated
    as decode() return value as 1st item, and the remainig payload for further
    decode passes as 2nd item.
    The streaming variant shall yield an object that will be propagated as
    decode() return value, and leave the remaining payload in the stream.

Returns
-------
: :py:class:`tuple`
    A tuple of :py:class:`~pyasn1.type.base.PyAsn1Item` object
    recovered from BER/CER/DER substrate and the unprocessed trailing
    portion of the `substrate` (may be empty)

Raises
------
: :py:class:`~pyasn1.error.PyAsn1Error`
    :py:class:`~pyasn1.error.SubstrateUnderrunError` on insufficient
    input or :py:class:`~pyasn1.error.PyAsn1Error` on decoding error.

Examples
--------
Decode BER/CER/DER serialisation without ASN.1 schema

.. code-block:: pycon

   >>> s, unprocessed = decode(b'0      ')
   >>> str(s)
   SequenceOf:
    1 2 3

Decode BER/CER/DER serialisation with ASN.1 schema

.. code-block:: pycon

   >>> seq = SequenceOf(componentType=Integer())
   >>> s, unprocessed = decode(
        b'0     ', asn1Spec=seq)
   >>> str(s)
   SequenceOf:
    1 2 3

r$   Nc              3     >#     T" XX#5      nU H  nUv   M	     g! [          a^  nUR                  R                  (       a  e [        U[        R
                  5      (       d   e[        R                  TXU5      n SnANqSnAff = f7f)a2  Support both 0.4 and 0.5 style APIs.

substrateFun API has changed in 0.5 for use with streaming decoders. To stay backwards compatible,
we first try if we received a streaming user callback. If that fails,we assume we've received a
non-streaming v0.4 user callback and convert it for streaming on the fly
N)	TypeError__traceback__tb_nextrb   ioBytesIOr   _callSubstrateFunV4asV5)r.   r   r!   r%   substrate_gen_valuerI   origSubstrateFuns          r&   substrateFunWrapper-Decoder.__call__.<locals>.substrateFunWrapper!  s|     u$4ZF$\M +EK + ! u++33%i<<<<$+$C$CDTV`ms$tMus+   B	 B
BAA?:B?BBzShort substrate on inputr)   r>   )r   STREAMING_DECODERrb   rc   r   nextr
   EndOfStreamError)	clsr   r   r%   r  streamingDecoderr.   tailr  s	           @r&   r  Decoder.__call__  s    ` %Y/	W$&~6 & ':N#00,#*, +J*&<==223MNNN956
 ## + )) s   (BBBc              #      #    UR                  5       nUS:X  a  [        U5      nU " XU5      u  pVUR                  U5      nUR                  5         UR	                  U* [
        R                  5        Uv   g 7f)Nr   )readr   writetruncater[  r\  r  )substrateFunV4r.   r   r!   substrate_bytesrI   nextSubstratenbytess           r&   r  Decoder._callSubstrateFunV4asV5E  sd     #..*R<)F-j6R/w,s   A4A6r/   r>   )r3   r4   r5   r6   r  r   r  classmethodr  r8   r  r9   r/   r)   r&   r   r     s8     )v$ v$p  r)   r   attrc                     SSS.R                  U 5      =n(       a.  [        R                  " U  SU S3[        5        [	        5       U   $ [        U 5      e)Nr  r  )rY  r  z is deprecated. Please use z	 instead.)rE   warningswarnDeprecationWarningglobalsAttributeError)r  newAttrs     r&   __getattr__r    sR    &:>BB4HHwH9')LN`ay!!

r)   )}r  r\  sysr  pyasn1r   r   pyasn1.codec.berr   pyasn1.codec.streamingr   r   r   r
   pyasn1.compatr   pyasn1.errorr   pyasn1.typer   r   r   r   r   r   __all__registerLoggeer3   DEBUG_DECODERr   rG   rc   objectr   r;   rM   r  rZ   rj   rq   r   r   r   r   r   r   r   r9  r;  r=  r@  rB  rD  rF  rV  re  rh  rl  rp  rs  rv  rz  r}  r  r  r  r  r  r  rh   r    ro   r   r   r   r   r   
Enumeratedr   r  r  rT  rf  ri  rm  rq  rt  rw  r{  r~  r  r  r  r  r  r  r  r
  r"  r#  rX   r  valuestypeDecoderr7   r   ranger  r  r  r  r  r  r  r  r  r  rf   r  r  r   r   r   strr  )xs   0r&   <module>r     sA   
 	 
      3 0 1 1 " $      
385+>+>?
,,55 V >)#9 )"&4 &R &' H8 H0A1 A@L: @LFSI < SIl5 .7F%A 7Ft-I < -I`kH5 kH\(> C$E CL/)F /
%? %'A '*< *
 0  "2 "u8 upuL4 uLr'8 '*"; *,$= ,*"; *+#< +&7 &*"; **"; **"; *,$= ,&7 &
/%> /.$= .&5 &LL.0LL.0 	NN24 	68	
 	II(* 	  "@"B 	68 	OO13 	II(* 	MM<> 	HHOO-/ 	KK,. 	OO46 	:<  	!>!@!" 	:<#$ 	 < >%& 	NN24:<:<:<!>!@NN24
""$B$D
!!#@#B
NN029B 	HHOO&(JJ*,MM02OO46KK,.HHOO&( >>#K!!-++55<<&"8*HV	 $  Ry!y!Ay!		 V}h hV`v `FIf ID 
c q "s   
Y