Ë
    R¼Sf‚5 ã                   ó¸  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ g d¢Z ej@                  e!ejD                  ¬«      Z#ejH                  Z$ejJ                  Z% G d„ de&«      Z' G d„ de'«      Z( G d„ de(«      Z) e)«       Z* G d„ de(«      Z+ G d„ de+«      Z, G d„ d e(«      Z- G d!„ d"e(«      Z. G d#„ d$e(«      Z/ G d%„ d&e(«      Z0 G d'„ d(e(«      Z1 G d)„ d*e(«      Z2 G d+„ d,e'«      Z3 G d-„ d.e3«      Z4 G d/„ d0e4«      Z5 G d1„ d2e5«      Z6 G d3„ d4e5«      Z7 G d5„ d6e4«      Z8 G d7„ d8e8«      Z9 G d9„ d:e8«      Z: G d;„ d<e4«      Z; G d=„ d>e(«      Z< G d?„ d@e.«      Z= G dA„ dBe.«      Z> G dC„ dDe.«      Z? G dE„ dFe.«      Z@ G dG„ dHe.«      ZA G dI„ dJe.«      ZB G dK„ dLe.«      ZC G dM„ dNe.«      ZD G dO„ dPe.«      ZE G dQ„ dRe.«      ZF G dS„ dTe.«      ZG G dU„ dVe.«      ZH G dW„ dXe.«      ZI G dY„ dZe.«      ZJi ej–                  j˜                   e+«       “ejš                  j˜                   e,«       “ejœ                  j˜                   e-«       “ejž                  j˜                   e.«       “ej                   j˜                   e/«       “ej¢                  j˜                   e0«       “ej¤                  j˜                   e1«       “ej¦                  j˜                   e+«       “ej¨                  j˜                   e2«       “ejª                  j˜                   e5«       “ej¬                  j˜                   e8«       “ej®                  j˜                   e;«       “ej°                  j˜                   e=«       “ej²                  j˜                   e>«       “ej´                  j˜                   e?«       “ej¶                  j˜                   e@«       “ej¸                  j˜                   eA«       “ejº                  j˜                   eB«       ej¼                  j˜                   eC«       ej¾                  j˜                   eD«       ejÀ                  j˜                   eE«       ejÂ                  j˜                   eF«       ejÄ                  j˜                   eG«       ejÆ                  j˜                   eH«       ejÈ                  j˜                   eI«       ejÊ                  j˜                   eJ«       i	¥Zfej¬                  jÎ                   e9«       ejÐ                  jÎ                   e:«       ejª                  jÎ                   e6«       ejÒ                  jÎ                   e7«       ej®                  jÎ                   e;«       ejÔ                  jÎ                   e<«       iZkefZlekZmefjÝ                  «       D ]<  Zoeojà                  €Œeojà                  jâ                  jÎ                  Zgeg€Œ3egekvsŒ8eoekeg<   Œ>  erd[«      D � cg c]  } | ‘Œ c} \
  ZsZtZuZvZwZxZyZzZ{Z| ed\«      Z} G d]„ d^e&«      Z~ G d_„ d`e&«      Z G da„ dbe&«      Z€ e€«       Z�yc c} w )cé    N)Údebug)Úerror)Úeoo)ÚasSeekableStream)ÚisEndOfStream)ÚpeekIntoStream©ÚreadFromStream)Ú_MISSING)Ú
from_bytes)Úoct2intÚ	octs2intsÚ	ints2octsÚnull)ÚPyAsn1Error)Úbase)Úchar)Útag)Útagmap)Úuniv)Úuseful)ÚStreamingDecoderÚDecoderÚdecode)Úflagsc                   ó8   — e Zd ZdZ	 	 dd„Z	 	 dd„Zed„ «       Zy)ÚAbstractPayloadDecoderNc                 ó2   — t        j                  d|›�«      ‚)ztDecode 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	            úWC:\Users\user\Documents\project_loop\venv\Lib\site-packages\pyasn1/codec/ber/decoder.pyÚvalueDecoderz#AbstractPayloadDecoder.valueDecoder*   s   € ô ×ÒÉfÐ VÓWÐWó    c                 ó2   — t        j                  d|›�«      ‚)zsDecode 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*   ÚindefLenValueDecoderz+AbstractPayloadDecoder.indefLenValueDecoder4   s   € ô ×ÒÑ[aÐ cÓdÐdr,   c                 ó   — d|vr| |d<   |S )NÚ
asn1Object© )r0   r)   s     r*   Ú_passAsn1Objectz&AbstractPayloadDecoder._passAsn1Object>   s   € à˜wÑ&Ø$.ˆG�LÑ!àˆr,   ©NNNNN)Ú__name__Ú
__module__Ú__qualname__ÚprotoComponentr+   r.   Ústaticmethodr2   r1   r,   r*   r   r   '   s8   „ Ø€Nð 6:Ø26óXð >BØ:>óeð ñó ñr,   r   c                   ó"   — e Zd Zed„ «       Zd„ Zy)ÚAbstractSimplePayloadDecoderc              #   ó8   K  — t        |||«      D ]  }|–— Œ y ­w©Nr	   )r0   r"   r%   r)   Úchunks        r*   ÚsubstrateCollectorz/AbstractSimplePayloadDecoder.substrateCollectorG   s#   è ø€ ä# I¨v°wÓ?ò 	ˆEØ‹Kñ	ùs   ‚c                 óœ   — |j                  d«      r|S |€| j                  j                  ||¬«      S |t        u r|S |j                  |«      S )NÚnative©r$   )Úgetr7   ÚcloneÚnoValue©r!   r#   r$   Úvaluer)   s        r*   Ú_createComponentz-AbstractSimplePayloadDecoder._createComponentL   sQ   € Ø�;‰;�xÔ ØˆLØÐØ×&Ñ&×,Ñ,¨U¸6Ð,ÓBÐBØ”gÑØˆOà—>‘> %Ó(Ð(r,   N)r4   r5   r6   r8   r>   rG   r1   r,   r*   r:   r:   F   s   „ Øñó ðó)r,   r:   c                   óH   — e Zd Z ej                  d«      Z	 	 dd„Z	 	 dd„Zy)ÚRawPayloadDecoderÚ Nc              +   óŽ   K  — |r* | j                   ||dfi |¤Ž}	 ||	|||«      D ]  }
|
–— Œ y  |||||fi |¤ŽD ]  }|–— Œ y ­w)NrJ   )rG   ©r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   rF   s               r*   r+   zRawPayloadDecoder.valueDecoderZ   sn   è ø€ ñ Ø.˜×.Ñ.¨x¸ÀÑOÀwÑOˆJá% j°)¸VÀWÓMò �Ø“ðð á˜y¨(°F¸FÑNÀgÑNò 	ˆEØ‹Kñ	ùs   ‚AAc              +   ó¼   K  — |r* | j                   ||dfi |¤Ž}	 ||	|||«      D ]  }
|
–— Œ y 	  |||||fddi|¤ŽD ]  }|t        j                  u r y |–— Œ Œ,­w)NrJ   TÚallowEoo)rG   r   ÚendOfOctetsrL   s               r*   r.   z&RawPayloadDecoder.indefLenValueDecoderi   s•   è ø€ ñ Ø.˜×.Ñ.¨x¸ÀÑOÀwÑOˆJá% j°)¸VÀWÓMò �Ø“ðð àÙ"Ø˜x¨°ñ.à!ð.à%,ñ.ò �ð œCŸO™OÑ+Ùà“ðð ùs   ‚AAr3   ©r4   r5   r6   r   ÚAnyr7   r+   r.   r1   r,   r*   rI   rI   W   s,   „ Ø�T—X‘X˜b“\€Nð 6:Ø26óð  >BØ:>ôr,   rI   c                   ó<   — e Zd Z ej                  d«      Z	 	 dd„Zy)ÚIntegerPayloadDecoderr   Nc              +   ó  K  — |d   j                   t        j                  k7  rt        j                  d«      ‚t        |||«      D ]  }	t        |	t        «      sŒ|	–— Œ 	rt        |	d¬«      }
nd}
 | j                  |||
fi |¤Ž–— y ­w)Nr   úSimple tag format expectedT)Úsigned)
Ú	tagFormatr   ÚtagFormatSimpler   r   r
   Ú
isinstanceÚSubstrateUnderrunErrorr   rG   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r=   rF   s              r*   r+   z"IntegerPayloadDecoder.valueDecoder†   sŽ   è ø€ ð
 �!‰9×Ñ¤#×"5Ñ"5Ò5Ü×#Ñ#Ð$@ÓAÐAä# I¨v°wÓ?ò 	ˆEÜ˜%Ô!7Õ8Ø“ð	ñ Ü˜u¨TÔ2‰Eð ˆEà#ˆd×#Ñ# H¨f°eÑG¸wÑGÓGùs   ‚AB	Á0B	r3   )r4   r5   r6   r   ÚIntegerr7   r+   r1   r,   r*   rS   rS   ƒ   s   „ Ø!�T—\‘\ !“_€Nð 6:Ø26ôHr,   rS   c                   ó6   — e Zd Z ej                  d«      Zd„ Zy)ÚBooleanPayloadDecoderr   c                 óD   — t        j                  | |||xr dxs dfi |¤ŽS )Né   r   )rS   rG   rE   s        r*   rG   z&BooleanPayloadDecoder._createComponentž   s2   € Ü$×5Ñ5Ø�(˜F E¢K¨aÒ$4°1ñAØ8?ñAð 	Ar,   N)r4   r5   r6   r   ÚBooleanr7   rG   r1   r,   r*   r]   r]   ›   s   „ Ø!�T—\‘\ !“_€NóAr,   r]   c                   óL   — e Zd Z ej                  d«      ZdZ	 	 dd„Z	 	 dd„Zy)ÚBitStringPayloadDecoderr1   TNc              +   ó>  K  — |r. | j                   ||t        fi |¤Ž}	 ||	|||«      D ]  }
|
–— Œ y |st        j                  d«      ‚t	        |«      D ]  }
t        |
t        «      sŒ|
–— Œ 
rt        j                  d«      ‚|d   j                  t        j                  k(  r¯t        |d|«      D ]  }t        |t        «      sŒ|–— Œ t        «      }|dkD  rt        j                  d|z  «      ‚t        ||dz
  |«      D ]  }
t        |
t        «      sŒ|
–— Œ | j                  j                  |
d|¬«      } | j                   |||fi |¤Ž–— y | j                  s,t        j                  d| j                  j                   z  «      ‚t"        rt#        d	«       | j$                  }| j                  j                  t&        d¬
«      }|j)                  «       }|j)                  «       |z
  |k  r” ||| j                  fd|i|¤ŽD ]  }t        |t        «      sŒ|–— Œ t+        d   «      }|dkD  rt        j                  d|z  «      ‚| j                  j                  |dd  d||¬«      }|j)                  «       |z
  |k  rŒ” | j                   |||fi |¤Ž–— y ­w)NzEmpty BIT STRING substrater   r_   é   úTrailing bits overflow %sT)ÚinternalFormatÚpaddingú*Constructed encoding form prohibited at %sú$assembling constructed serialization©rf   r(   ©rf   Úprependrg   )rG   rD   r   r   r   rY   rZ   rW   r   rX   r
   Úordr7   ÚfromOctetStringÚsupportConstructedFormÚ	__class__r4   ÚLOGr>   r   Útellr   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   ÚtrailingBitsrF   Ú	bitStringÚcurrent_positionÚ	components                   r*   r+   z$BitStringPayloadDecoder.valueDecoder§   sâ  è ø€ ñ
 Ø.˜×.Ñ.¨x¸ÄÑTÈGÑTˆJá% j°)¸VÀWÓMò �Ø“ðð áÜ×#Ñ#Ð$@ÓAÐAä" 9Ó-ò 	ˆEÜ˜%Ô!7Õ8Ø“ð	ñ Ü×#Ñ#Ð$@ÓAÐAà�!‰9×Ñ¤#×"5Ñ"5Ò5ä .¨y¸!¸WÓ Eò '�Ü˜lÔ,BÕCØ&Ó&ð'ô ˜|Ó,ˆLØ˜aÒÜ×'Ñ'Ø/°,Ñ>óð ô (¨	°6¸A±:¸wÓGò  �Ü˜eÔ%;Õ<Ø“Kð ð ×'Ñ'×7Ñ7Ø d°Lð 8ó BˆEð (�$×'Ñ'¨°&¸%ÑKÀ7ÑKÒKàà×*Ò*Ü×#Ñ#ð %,Ø.2¯n©n×.EÑ.Eñ%Fó Gð Gõ ÜÐ6Ô7ð ×.Ñ.ˆà×'Ñ'×7Ñ7¼ÈTÐ7ÓRˆ	à$Ÿ>™>Ó+Ðà�n‰nÓÐ!1Ñ1°FÒ:Ù&Ø˜t×2Ñ2ñØAMðàñò $�	ô ˜iÔ)?Õ@Ø#“Oð	$ô # 9¨Q¡<Ó0ˆLØ˜aÒÜ×'Ñ'Ø/°,Ñ>óð ð ×+Ñ+×;Ñ;Ø˜!˜"�¨dØ!¨<ð <ó ˆIð �n‰nÓÐ!1Ñ1°FÓ:ð$ $ˆd×#Ñ# H¨f°iÑKÀ7ÑKÓKùs(   ‚A&JÁ)AJÃAJÄDJÈA)JÊJc              +   óB  K  — |r. | j                   ||t        fi |¤Ž}	 ||	|||«      D ]  }
|
–— Œ y | j                  }| j                  j	                  t
        d¬«      }	  ||| j                  f|ddœ|¤ŽD ]+  }|t        j                  u r nt        |t        «      sŒ(|–— Œ- t        j                  u rnNt        |d   «      }|dkD  rt        j                  d|z  «      ‚| j                  j	                  |dd  d||¬«      }Œ¦ | j                   |||fi |¤Ž–— y ­w)	NTrj   ©r(   rN   r   rd   re   r_   rk   )rG   rD   r>   r7   rn   r   r   rO   rY   rZ   r   r   r   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   rt   rv   rs   s                 r*   r.   z,BitStringPayloadDecoder.indefLenValueDecoder÷   sZ  è ø€ ñ
 Ø.˜×.Ñ.¨x¸ÄÑTÈGÑTˆJá% j°)¸VÀWÓMò �Ø“ðð ð ×.Ñ.ˆà×'Ñ'×7Ñ7¼ÈTÐ7ÓRˆ	àá&Ø˜t×2Ñ2ð.ØAMØ!ñ.à%,ñ.ò $�	ð ¤§¡Ñ/Ùä˜iÔ)?Õ@Ø#“Oð$ð œCŸO™OÑ+Øä" 9¨Q¡<Ó0ˆLØ˜aÒÜ×'Ñ'Ø/°,Ñ>óð ð ×+Ñ+×;Ñ;Ø˜!˜"�¨dØ!¨<ð <ó ˆIð+ ð4 $ˆd×#Ñ# H¨f°iÑKÀ7ÑKÓKùs   ‚BDÂ A?Dr3   )	r4   r5   r6   r   Ú	BitStringr7   ro   r+   r.   r1   r,   r*   rb   rb   £   s7   „ Ø#�T—^‘^ BÓ'€NØ!Ðð 6:Ø26óNLðb >BØ:>ô,Lr,   rb   c                   óL   — e Zd Z ej                  d«      ZdZ	 	 dd„Z	 	 dd„Zy)ÚOctetStringPayloadDecoderrJ   TNc              +   óò  K  — |r. | j                   ||t        fi |¤Ž}	 ||	|||«      D ]  }
|
–— Œ y |d   j                  t        j                  k(  r?t        |||«      D ]  }
t        |
t        «      sŒ|
–— Œ  | j                   ||
fi |¤Ž–— y | j                  s,t        j                  d| j                  j                  z  «      ‚t        rt        d«       | j                  }t        }|j!                  «       }|j!                  «       |z
  |k  rL ||| j"                  fd|i|¤ŽD ]  }t        |t        «      sŒ|–— Œ |z  }|j!                  «       |z
  |k  rŒL | j                   |||fi |¤Ž–— y ­w)Nr   rh   ri   r(   )rG   rD   rW   r   rX   r
   rY   rZ   ro   r   r   rp   r4   rq   r>   r   rr   r7   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   ÚheaderÚoriginal_positionrv   s                 r*   r+   z&OctetStringPayloadDecoder.valueDecoder*  sš  è ø€ ñ Ø.˜×.Ñ.¨x¸ÄÑTÈGÑTˆJá% j°)¸VÀWÓMò �Ø“ðð à�!‰9×Ñ¤#×"5Ñ"5Ò5Ü'¨	°6¸7ÓCò  �Ü˜eÔ%;Õ<Ø“Kð ð (�$×'Ñ'¨°&¸%ÑKÀ7ÑKÒKàà×*Ò*Ü×#Ñ#Ð$PÐSW×SaÑSa×SjÑSjÑ$jÓkÐkåÜÐ6Ô7ð ×.Ñ.ˆäˆà%ŸN™NÓ,Ðà�n‰nÓÐ!2Ñ2°VÒ;Ù&Ø˜t×2Ñ2ñØAMðàñò $�	ô ˜iÔ)?Õ@Ø#“Oð	$ð �iÑˆFð �n‰nÓÐ!2Ñ2°VÓ;ð $ˆd×#Ñ# H¨f°fÑHÀÑHÓHùs   ‚A1E7Á4CE7Ä=!E7ÅE7c              +   ó–  K  — |r<|| j                   ur. | j                  ||t        fi |¤Ž}	 ||	|||«      D ]  }
|
–— Œ y | j                   }t        }	  ||| j                  f|ddœ|¤ŽD ]*  }t        |t        «      r|–— |t        j                  u sŒ* n t        j                  u rn||z  }Œ] | j                  |||fi |¤Ž–— y ­w)NTrx   )	r>   rG   rD   r   r7   rY   rZ   r   rO   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   r}   rv   s                r*   r.   z.OctetStringPayloadDecoder.indefLenValueDecoderW  sý   è ø€ ñ ˜L°×0GÑ0GÑGØ.˜×.Ñ.¨x¸ÄÑTÈGÑTˆJá% j°)¸VÀWÓMò �Ø“ðð ð ×.Ñ.ˆäˆàá&Ø˜t×2Ñ2ð.ØAMØ!ñ.à%,ñ.ò �	ô ˜iÔ)?Ô@Ø#’Oà¤§¡Ò/Ùðð œCŸO™OÑ+Øà�iÑˆFð ð" $ˆd×#Ñ# H¨f°fÑHÀÑHÓHùs   ‚BC	Â4C	r3   )	r4   r5   r6   r   ÚOctetStringr7   ro   r+   r.   r1   r,   r*   r{   r{   &  s8   „ Ø%�T×%Ñ% bÓ)€NØ!Ðð 6:Ø26ó+Ið\ >BØ:>ô"Ir,   r{   c                   ó<   — e Zd Z ej                  d«      Z	 	 dd„Zy)ÚNullPayloadDecoderrJ   Nc              +   ó*  K  — |d   j                   t        j                  k7  rt        j                  d«      ‚t        |||«      D ]  }	t        |	t        «      sŒ|	–— Œ  | j                  ||dfi |¤Ž}
	rt        j                  d|z  «      ‚|
–— y ­w)Nr   rU   rJ   z&Unexpected %d-octet substrate for Null)	rW   r   rX   r   r   r
   rY   rZ   rG   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r=   rv   s              r*   r+   zNullPayloadDecoder.valueDecoder  s–   è ø€ ð
 �!‰9×Ñ¤#×"5Ñ"5Ò5Ü×#Ñ#Ð$@ÓAÐAä# I¨v°wÓ?ò 	ˆEÜ˜%Ô!7Õ8Ø“ð	ð *�D×)Ñ)¨(°F¸BÑJÀ'ÑJˆ	áÜ×#Ñ#Ð$LÈvÑ$UÓVÐVà‹ùs   ‚ABÁ:Br3   )r4   r5   r6   r   ÚNullr7   r+   r1   r,   r*   r‚   r‚   |  s   „ Ø�T—Y‘Y˜r“]€Nð 6:Ø26ôr,   r‚   c                   ó<   — e Zd Z ej                  d«      Z	 	 dd„Zy)ÚObjectIdentifierPayloadDecoderr1   Nc              +   óJ  K  — |d   j                   t        j                  k7  rt        j                  d«      ‚t        |||«      D ]  }	t        |	t        «      sŒ|	–— Œ 	st        j                  d«      ‚t        |	«      }	d}
d}t        |	«      }||k  r‰|	|   }|dz  }|dk  r|
|fz  }
nm|dkD  rN|}d}|dk\  r8|dz  |dz  z   }||k\  rt        j                  d	|
›�«      ‚|	|   }|dz  }|dk\  rŒ8|
|dz  |z   fz  }
n|dk(  rt        j                  d
«      ‚||k  rŒ‰d|
d   cxk  rdk  r	n nd|
z   }
nVd|
d   cxk  rdk  rn nd|
d   dz
  f|
dd  z   }
n4|
d   dk\  rd|
d   dz
  f|
dd  z   }
nt        j                  d|	d   z  «      ‚ | j                  |||
fi |¤Ž–— y ­w)Nr   rU   úEmpty substrater1   r_   é€   rd   é   ú!Short substrate for sub-OID past z"Invalid octet 0x80 in OID encodingé'   )r   é(   éO   éP   é   zMalformed first OID octet: %s©rW   r   rX   r   r   r
   rY   rZ   r   ÚlenrG   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r=   ÚoidÚindexÚsubstrateLenÚsubIdÚ	nextSubIds                  r*   r+   z+ObjectIdentifierPayloadDecoder.valueDecoder–  s  è ø€ ð �!‰9×Ñ¤#×"5Ñ"5Ò5Ü×#Ñ#Ð$@ÓAÐAä# I¨v°wÓ?ò 	ˆEÜ˜%Ô!7Õ8Ø“ð	ñ Ü×#Ñ#Ð$5Ó6Ð6ä˜%Ó ˆàˆØˆÜ˜5“zˆØ�lÒ"Ø˜%‘LˆEØ�Q‰JˆEØ�sŠ{Ø˜�x‘‘Ø˜’à!�	Ø�Ø 3Ò&Ø" a™Z¨I¸Ñ,<Ñ=�EØ Ò,Ü#×:Ò:ÙEHÐJóð ð !& e¡�IØ˜Q‘J�Eð   3Ó&ð ˜ !™ yÑ0Ð2Ñ2‘Ø˜#’ô
 ×'Ñ'Ð(LÓMÐMð/ �lÓ"ð4 ��A‘Ô˜"ÕØ˜‘*‰CØ�3�q‘6Ô˜RÕØ�c˜!‘f˜r‘kÐ" S¨¨ WÑ,‰CØ�‰V�rŠ\Ø�c˜!‘f˜r‘kÐ" S¨¨ WÑ,‰Cä×#Ñ#Ð$CÀeÈAÁhÑ$NÓOÐOà#ˆd×#Ñ# H¨f°cÑE¸WÑEÓEùs   ‚AF#ÁBF#Ã1,F#ÄBF#r3   )r4   r5   r6   r   ÚObjectIdentifierr7   r+   r1   r,   r*   r†   r†   “  s"   „ Ø*�T×*Ñ*¨2Ó.€Nð 6:Ø26ô6Fr,   r†   c                   ó<   — e Zd Z ej                  d«      Z	 	 dd„Zy)ÚRelativeOIDPayloadDecoderr1   Nc              +   óp  K  — |d   j                   t        j                  k7  rt        j                  d«      ‚t        |||«      D ]  }	t        |	t        «      sŒ|	–— Œ 	st        j                  d«      ‚t        |	«      }	d}
d}t        |	«      }||k  r‰|	|   }|dz  }|dk  r|
|fz  }
nm|dkD  rN|}d}|dk\  r8|dz  |dz  z   }||k\  rt        j                  d	|
›�«      ‚|	|   }|dz  }|dk\  rŒ8|
|dz  |z   fz  }
n|dk(  rt        j                  d
«      ‚||k  rŒ‰ | j                  |||
fi |¤Ž–— y ­w)Nr   rU   rˆ   r1   r_   r‰   rd   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+   z&RelativeOIDPayloadDecoder.valueDecoderÒ  s�  è ø€ ð �!‰9×Ñ¤#×"5Ñ"5Ò5Ü×#Ñ#Ð$@ÓAÐAä# I¨v°wÓ?ò 	ˆEÜ˜%Ô!7Õ8Ø“ð	ñ Ü×#Ñ#Ð$5Ó6Ð6ä˜%Ó ˆàˆØˆÜ˜5“zˆØ�lÒ"Ø˜%‘LˆEØ�Q‰JˆEØ�sŠ{Ø˜5˜(Ñ"‘Ø˜’à!�	Ø�Ø 3Ò&Ø" a™Z¨I¸Ñ,<Ñ=�EØ Ò,Ü#×:Ò:ÙEKÐMóð ð !& e¡�IØ˜Q‘J�Eð   3Ó&ð ˜E Q™J¨)Ñ3Ð5Ñ5‘Ø˜#’ô
 ×'Ñ'Ð(UÓVÐVð/ �lÓ"ð2 $ˆd×#Ñ# H¨f°fÑHÀÑHÓHùs   ‚AD6ÁBD6Ã1,D6ÄD6r3   )r4   r5   r6   r   ÚRelativeOIDr7   r+   r1   r,   r*   rš   rš   Ï  s"   „ Ø%�T×%Ñ% bÓ)€Nð 6:Ø26ô,Ir,   rš   c                   ó:   — e Zd Z ej                  «       Z	 	 dd„Zy)ÚRealPayloadDecoderNc              +   ó\  K  — |d   j                   t        j                  k7  rt        j                  d«      ‚t        |||«      D ]  }	t        |	t        «      sŒ|	–— Œ 	s | j                  ||dfi |¤Ž–— y t        |	d   «      }
|	dd  }	|
dz  �r|	st        j                  d«      ‚t        rt        d«       |
dz  dz   }|d	k(  rt        |	d   «      }|	dd  }	|	d | |	|d  }	}|r|	st        j                  d
«      ‚t        |d   «      dz  xr dxs d}|r|dz  }|t        |d   «      z  }|dd  }|rŒ|
d	z	  dz  }|dkD  rt        j                  d«      ‚|dk(  r|dz  }n
|dk(  r|d	z  }d}|	r|dz  }|t        |	d   «      z  }|	dd  }	|	rŒ|
dz  r| }|
dz	  dz  }|d|z  z  }|d|f}nÅ|
dz  rt        rt        d«       |
dz  xr dxs d}n¡|
dz  dk(  r�|	st        j                  d«      ‚t        rt        d«       	 |
dz  dk(  rt        |	«      ddf}n@|
dz  dk(  rt        |	«      }n,|
dz  dk(  rt        |	«      }nt        j                  d|
z  «      ‚nt        j                  d|
z  «      ‚ | j                  |||fi |¤Ž–— y # t        $ r t        j                  d«      ‚w xY w­w)Nr   rU   g        r_   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))rW   r   rX   r   r   r
   rY   rZ   rG   r   rq   ÚintÚfloatÚ
ValueError)r!   r"   r#   r$   r%   r&   r'   r(   r)   r=   ÚfoÚnÚeoÚeÚbÚpÚsfrF   s                     r*   r+   zRealPayloadDecoder.valueDecoder  s,  è ø€ ð �!‰9×Ñ¤#×"5Ñ"5Ò5Ü×#Ñ#Ð$@ÓAÐAä# I¨v°wÓ?ò 	ˆEÜ˜%Ô!7Õ8Ø“ð	ñ Ø'�$×'Ñ'¨°&¸#ÑIÀÑIÒIØä�U˜1‘XÓˆØ�a�b�	ˆØ�‹9ÙÜ×'Ñ'Ð(IÓJÐJåÜÐ2Ô3à�d‘˜a‘ˆAà�AŠvÜ˜E !™HÓ%�Ø˜a˜b˜	�à˜b˜q˜	 5¨¨ 9�ˆBá™UÜ×'Ñ'Ð(?Ó@Ð@ä˜˜1™“ Ñ%Ò,¨"Ò1°ˆAáØ�a‘�Ø”W˜R ™U“^Ñ#�Ø˜˜�V�ò ð
 �a‘˜$‘ˆAà�1ŠuÜ×'Ñ'Ð(;Ó<Ð<à�AŠvØ�Q‘‘à�a’Ø�Q‘�ØˆAáØ�a‘�Ø”W˜U 1™XÓ&Ñ&�Ø˜a˜b˜	�ò ð
 �DŠyØ�B�à�q‘˜4‘ˆBØ��b‘‰LˆAØ˜˜1�I‰Eà�$ŠYÝÜÐ,Ô-à˜‘IÒ( &Ò1¨E‰Eà�$‰Y˜!Š^ÙÜ×'Ñ'Ð(IÓJÐJåÜÐ5Ô6ðØ˜‘8˜s’?Ü  ›Z¨¨QÐ/‘Eà˜#‘X ’_Ü! %›L‘Eà˜#‘X ’_Ü! %›L‘Eô  ×6Ñ6Ø-°Ñ2óð øô ×.Ñ.Ø+¨bÑ0óð ð $ˆd×#Ñ# H¨f°eÑG¸wÑGÓGøô ò Ü×2Ñ2Ø/óð ðüs4   ‚AJ,ÁCJ,Ä6AJ,ÆA2J,ÈAJ
 É1J,Ê
J)Ê)J,r3   )r4   r5   r6   r   ÚRealr7   r+   r1   r,   r*   rŸ   rŸ     s   „ Ø�T—Y‘Y“[€Nð 6:Ø26ôhHr,   rŸ   c                   ó   — e Zd ZdZy)Ú!AbstractConstructedPayloadDecoderN)r4   r5   r6   r7   r1   r,   r*   rµ   rµ   o  s   „ Ø�Nr,   rµ   c                   óD   — e Zd ZdZdZd„ Zd„ Z	 	 dd„Z	 	 dd„Z	 	 dd„Z	y)	ÚConstructedPayloadDecoderBaseNc                 ó   — t        «       ‚r<   ©ÚNotImplementedError)r!   r0   Úidxs      r*   Ú_getComponentTagMapz1ConstructedPayloadDecoderBase._getComponentTagMapw  ó   € Ü!Ó#Ð#r,   c                 ó   — t        «       ‚r<   r¹   )r!   r0   r$   r»   s       r*   Ú_getComponentPositionByTypez9ConstructedPayloadDecoderBase._getComponentPositionByTypez  r½   r,   c              +   óÞ  K  — d }g }t        «       }|j                  «       }	|dk(  s|j                  «       |	|z   k  rï ||fi |¤ŽD ]  }
t        |
t        «      sŒ|
–— Œ |dk(  r
t        j
                  u rn´|j                  
«       |j                  |
j                  «       t        |«      dkD  r| j                  }n| j                  }|j                  t        j                  |j                  j                  g|j                   ¢­Ž ¬«      }|dk(  rŒØ|j                  «       |	|z   k  rŒït"        rt#        d|z  «       t%        |«      D ]  \  }}
|j'                  ||
ddd¬«       Œ |–— y ­w)Nr£   r_   rA   z@guessed %r container type (pass `asn1Spec` to guide the decoder)F©ÚverifyConstraintsÚ	matchTagsÚmatchConstraints)Úsetrr   rY   rZ   r   rO   ÚappendÚaddr$   r’   ÚprotoRecordComponentÚprotoSequenceComponentrC   r   ÚTagSetÚbaseTagÚ	superTagsrq   Ú	enumerateÚsetComponentByPosition)r!   r"   r$   r'   r%   r)   r0   Ú
componentsÚcomponentTypesr~   rv   r7   r»   s                r*   Ú_decodeComponentsSchemalessz9ConstructedPayloadDecoderBase._decodeComponentsSchemaless}  s}  è ø€ ð ˆ
àˆ
Ü›ˆà%ŸN™NÓ,Ðà˜Šl˜iŸn™nÓ.Ð1BÀVÑ1KÒKÙ& yÑ<°GÑ<ò $�	Ü˜iÔ)?Õ@Ø#“Oð$ð ˜Š| 	¬S¯_©_Ñ <Øà×Ñ˜iÔ(Ø×Ñ˜y×/Ñ/Ô0ô �>Ó" QÒ&Ø!%×!:Ñ!:‘ð "&×!<Ñ!<�à'×-Ñ-ô —z‘z .×"7Ñ"7×"?Ñ"?ÐSÀ&×BRÑBRÒSð .ó ˆJð+ ˜‹l˜iŸn™nÓ.Ð1BÀVÑ1KÓKõ6 Üð Ø'ñ(ô )ô (¨
Ó3ò 	‰NˆC�Ø×-Ñ-Ø�YØ"'Ø°%ð .õ ð	ð Óùs   ‚AE-ÁB:E-ÄE-Ä+AE-c              +   ó<  K  — |d   j                   t        j                  k7  rt        j                  d«      ‚|j                  «       }	|ri|�|j                  «       }
nA| j                  �| j                  j                  |¬«      }
n| j                  | j                  f}
 ||
|||«      D ]  }|–— Œ y |€¥ | j                  |f|||dœ|¤ŽD ]  }
t        |
t        «      sŒ|
–— Œ |j                  «       |	|z   k  rYt        rSt        ||¬«      D ]  }t        |t        «      sŒ|–— Œ t        dt        «      t!        j"                  |«      fz  «       
–— y |j                  «       }
|
j%                  «        | j'                  |
|«      }|j(                  t*        j,                  j(                  t*        j.                  j(                  fv �r;|j0                  }|j(                  t*        j.                  j(                  k(  }| xr |j2                   }t        r&t        d| xr dxs d	›d
|xr dxs d	›d|›d�«       t5        «       }d}|j                  «       |	z
  |k  �r*|sd }na|r|j6                  }nR	 |r||   j8                  }n?||   j:                  s||   j<                  r|j?                  |«      }n||   j8                  } |||fi |¤ŽD ]  }t        |t        «      sŒ|–— Œ |sZ|rX|r|jC                  jD                  «      }n:||   j:                  s||   j<                  r|jG                  jD                  |«      }|
jI                  |ddd¬«       |jK                  |«       |dz  }|j                  «       |	z
  |k  r�Œ*t        rt        d|z  «       |�rV|jL                  jO                  |«      s,t        j                  d|
jP                  jR                  z  «      ‚|jT                  �r |jW                  di «      }t        r3t        d«       |jY                  «       D ]  \  }}t        |›d|›�«       Œ |s|jW                  dd«      �r@t[        |j\                  «      D �]ˆ  \  }}|j^                  sŒ|j:                  r|
ja                  |«      jb                  sŒ<|
je                  |j^                  jf                  «      }	 ||   }t        rt        d|›d|›�«       |
ja                  |«      }|j(                  t*        jj                  j(                  t*        jl                  j(                  fv r[t[        |«      D ]K  \  }}to        ||   jq                  «       «      } ||fd|i|¤ŽD ]  }t        |t        «      sŒ|–— Œ ||<   ŒM �Œ*to        |
ja                  |«      jq                  «       «      } ||fd|i|¤ŽD ]  }t        |t        «      sŒ|–— Œ |
jI                  |«       �Œ‹ nž|
jr                  }|r�|‚|j0                  }t        rt        d |z  «       d}|j                  «       |	z
  |k  rV |||fi |¤ŽD ]  }t        |t        «      sŒ|–— Œ |
jI                  |ddd¬«       |dz  }|j                  «       |	z
  |k  rŒV|
–— y # t@        $ r t        j                  d|›�«      ‚w xY w# th        $ rÐ t        r�t        d|
jP                  jR                  ›d|jf                  ›d|
jP                  jR                  ›d|j^                  jf                  ›d�	«       |j^                  jY                  «       D ]  \  }}t        |›d|›�«       Œ 	 |j^                  |   }n%# th        $ r t        rt        d|›�«       Y Y �Œ&w xY wY �ŒÆw xY w­w)!Nr   úConstructed tag format expectedrA   ©r$   r'   r%   )Úcontextz)Unused trailing %d octets encountered: %sú	decoding únon-rJ   údeterministic ÚSETú type ú chosen by type IDú Excessive components decoded at FrÁ   r_   ú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#   ú+decoding type %r chosen by given `asn1Spec`):rW   r   ÚtagFormatConstructedr   r   rr   rC   r7   rÈ   rÉ   rÑ   rY   rZ   rq   r
   r’   r   ÚhexdumpÚclearr2   ÚtypeIdr   ÚSequenceÚSetÚcomponentTypeÚhasOptionalOrDefaultrÅ   ÚtagMapUniquer0   Ú
isOptionalÚisDefaultedÚgetTagMapNearPositionÚ
IndexErrorÚgetPositionByTypeÚeffectiveTagSetÚgetPositionNearTyperÎ   rÇ   ÚrequiredComponentsÚissubsetrp   r4   ÚhasOpenTypesrB   ÚitemsrÍ   Ú
namedTypesÚopenTypeÚgetComponentByPositionÚisValueÚgetComponentByNameÚnameÚKeyErrorÚSetOfÚ
SequenceOfr   ÚasOctetsÚisInconsistent)r!   r"   r#   r$   r%   r&   r'   r(   r)   r~   r0   r=   Útrailingrÿ   Ú	isSetTypeÚisDeterministicÚseenIndicesr»   rñ   rv   rß   ÚkÚvÚ	namedTypeÚgoverningValuer   ÚcontainerValueÚposÚcontainerElementÚstreamÚinconsistencys                                  r*   r+   z*ConstructedPayloadDecoderBase.valueDecoder°  s°  è ø€ ð �!‰9×Ñ¤#×":Ñ":Ò:Ü×#Ñ#Ð$EÓFÐFà%ŸN™NÓ,ÐáØÐ#Ø%Ÿ^™^Ó-‘
à×$Ñ$Ð0Ø!×0Ñ0×6Ñ6¸fÐ6ÓE‘
ð "×6Ñ6¸×8SÑ8SÐS�
á% j°)¸VÀWÓMò �Ø“ðð àÐØ>˜d×>Ñ>Øð.Ø&,¸	Ø!ñ.à%,ñ.ò %�
ô ˜jÔ*@ÕAØ$Ó$ð	%ð �~‰~ÓÐ"3°fÑ"<Ò<ÝÜ$2°9ÀgÔ$Nò +˜Ü% hÔ0FÕGØ"*›Nð+ô ÐCÜ˜H›¤u§}¡}°XÓ'>ðG@ñ @ô Að Òàà—^‘^Ó%ˆ
Ø×ÑÔà×&Ñ& z°7Ó;ˆà�?‰?œtŸ}™}×3Ñ3´T·X±X·_±_ÐEÒEà!×/Ñ/ˆJà Ÿ™¬4¯8©8¯?©?Ñ:ˆIØ"+˜mÒS°J×4SÑ4SÐ0SˆOåÝØ'Ð'Ò2¨FÒ8°bÑ8¸)Ò:MÈÒ:SÐQSÑ:SÚðô ô ›%ˆKØˆCØ—.‘.Ó"Ð%6Ñ6¸Ó?Ù!Ø$(‘MáØ$.×$;Ñ$;‘MðÙ*Ø,6°s©O×,FÑ,F™Mà'¨™_×7Ò7¸:Àc¹?×;VÒ;VØ,6×,LÑ,LÈSÓ,Q™Mð -7°s©O×,FÑ,F˜Mñ "+¨9°mÑ!OÀwÑ!Oò (�IÜ! )Ô-CÕDØ'›ð(ñ '©:Ù Ø(×:Ñ:¸9×;TÑ;TÓU™à# C™×3Ò3°zÀ#±×7RÒ7RØ(×<Ñ<¸Y×=VÑ=VÐX[Ó\˜à×1Ñ1Ø˜Ø&+Ø#°eð 2ô ð —‘ Ô$Ø�q‘�ðS —.‘.Ó"Ð%6Ñ6¸Ô?õV ÜÐ/°+Ñ=Ô>âØ!×4Ñ4×=Ñ=¸kÔJÜ×+Ñ+ð%Ø'1×';Ñ';×'DÑ'DñEóFð Fð ×+Ó+à '§¡¨K¸Ó <�IåÜÐ<Ô=à$-§O¡OÓ$5ò 5™D˜A˜qÜªa±Ð 3Õ4ð5ñ ! G§K¡KÐ0AÀ5Õ$Iä.7¸
×8MÑ8MÓ.Nó ?R™N˜C Ø#,×#5Ò#5Ø (à(×3Ò3¸J×<]Ñ<]Ð^aÓ<b×<jÒ<jØ (à-7×-JÑ-JØ )× 2Ñ 2× 7Ñ 7ó.˜Nð-Ø+4°^Ñ+D õ0  #Ý #Ú2:¹Nð%Lô !Mð .8×-NÑ-NÈsÓ-S˜Nà-×4Ñ4Ü$(§J¡J×$5Ñ$5´t·±×7MÑ7Mð9Oñ  Oô >GØ(6ó>8ò 	!DÑ$9 CÐ)9ô .>¸nÈSÑ>Q×>ZÑ>ZÓ>\Ó-] Fá5>¸vÑ5dÐPXÐ5dÐ\cÑ5dò %<¨	Ü+5°iÔAWÕ+XØ2;«Oð%<ð ;D N°3Ò$7ò	!Dô *:¸*×:[Ñ:[Ð\_Ó:`×:iÑ:iÓ:kÓ)l á1:¸6Ñ1`ÈHÐ1`ÐX_Ñ1`ò !8 IÜ'1°)Ô=SÕ'TØ.7«ð!8ð !+× AÑ AÀ#ÀyÖ Qñ?RðD !+× 9Ñ 9�Ù Ø'Ð'ð %×2Ñ2ˆMåÜÐAÀMÑQÔRàˆCà—.‘.Ó"Ð%6Ñ6¸Ò?Ù!*¨9°mÑ!OÀwÑ!Oò (�IÜ! )Ô-CÕDØ'›ð(ð ×1Ñ1Ø˜Ø&+Ø#°eð 2ô ð �q‘�ð —.‘.Ó"Ð%6Ñ6¸Ó?ð ÓøôS &ò Ü#×/Ò/ÙDLÐNóð ðûôx $,ò -å#&Ý$'à/9×/CÑ/C×/LÓ/LØ/8¯~«~Ø/9×/CÑ/C×/LÓ/LØ/8×/AÑ/A×/FÓ/Fð)Hô %Ið 1:×0BÑ0B×0HÑ0HÓ0Jò %A©¨¨1Ü(+º!¹QÐ,?Õ(@ð%Að!-Ø/8×/AÑ/AÀ.Ñ/Q¡Høä'/ò !-Ý'*Ý(+Ù:Hð-Kô )Lã$,ð	!-úò %-ð-üs¥   ‚C^Ã A^Ä#E^É6AZ Ë^Ë%B$^ÎE^Ó[ ÓB3^ÖA^×B^Ù7^Ú^Ú"Z=Ú=^Û B^Ý ]0Ý/^Ý0^Þ^Þ^Þ^Þ^Þ^Þ^Þ^c              +   óØ  K  — |d   j                   t        j                  k7  rt        j                  d«      ‚|�i|�|j                  «       }	nA| j                  �| j                  j                  |¬«      }	n| j                  | j                  f}	 ||	|||«      D ]  }
|
–— Œ y |€A | j                  |f|||dœt        |d¬«      ¤ŽD ]  }	t        |	t        «      sŒ|	–— Œ 	–— y |j                  «       }	|	j                  «        | j                  |	|«      }|j                  t         j"                  j                  t         j$                  j                  fv �r€|	j&                  }|	j                  t         j$                  j                  k(  }| xr |j(                   }t*        r&t+        d| xr dxs d	›d
|xr dxs d	›d|›d�«       t-        «       }d}	 t/        |«      |k  rd }na|r|j0                  }nR	 |r||   j2                  }n?||   j4                  s||   j6                  r|j9                  |«      }n||   j2                  } |||fddi|¤ŽD ]*  }t        |t        «      r|–— |t<        j>                  u sŒ* n t<        j>                  u rnŠ|sZ|rX|r|jA                  |jB                  «      }n:||   j4                  s||   j6                  r|jE                  |jB                  |«      }|	jG                  ||ddd¬«       |jI                  |«       |dz  }�ŒHt*        rt+        d|z  «       |�r.|jJ                  jM                  |«      s,t        j                  d|	jN                  jP                  z  «      ‚|jR                  �r?|jU                  di «      }t*        r3t+        d«       |jW                  «       D ]  \  }}t+        |›d|›�«       Œ |s|jU                  dd«      �rztY        |jZ                  «      D �]Å  \  }}|j\                  sŒ|j4                  r|	j_                  |«      j`                  sŒ<|	jc                  |j\                  jd                  «      }	 ||   }t*        rt+        d|›d|›�«       |	j_                  |«      }|j                  t         jh                  j                  t         jj                  j                  fv rytY        |«      D ]i  \  }}tm        ||   jo                  «       «      } ||fd |it        |d¬«      ¤ŽD ]*  }t        |t        «      r|–— |t<        j>                  u sŒ* n |||<   Œk �ŒHtm        |	j_                  |«      jo                  «       «      } ||fd |it        |d¬«      ¤ŽD ]=  }t        |t        «      r|–— |t<        j>                  u r �Œ²|	jG                  ||«       Œ? �ŒÈ n›|	jp                  }|r�|‚|j&                  }t*        rt+        d!|z  «       d}	  |||fddi|¤ŽD ]*  }t        |t        «      r|–— |t<        j>                  u sŒ* n t<        j>                  u rn|	jG                  ||ddd¬«       |dz  }Œh|	–— y # t:        $ r t        j                  d|	›�«      ‚w xY w# tf        $ rÐ t*        r�t+        d|	jN                  jP                  ›d|jd                  ›d|	jN                  jP                  ›d|j\                  jd                  ›d�	«       |j\                  jW                  «       D ]  \  }}t+        |›d|›�«       Œ 	 |j\                  |   }n%# tf        $ r t*        rt+        d|›�«       Y Y �Œ`w xY wY �Œ w xY w­w)"Nr   rÓ   rA   rÔ   T©rN   rÖ   r×   rJ   rØ   rÙ   rÚ   rÛ   rÜ   rN   FrÁ   r_   rÝ   rÞ   rß   rà   rá   râ   rã   rä   rå   ræ   rç   rè   ré   r#   rê   )9rW   r   rë   r   r   rC   r7   rÈ   rÉ   rÑ   ÚdictrY   rZ   rí   r2   rî   r   rï   rð   rñ   rò   rq   rÅ   r’   ró   r0   rô   rõ   rö   r÷   r   rO   rø   rù   rú   rÎ   rÇ   rû   rü   rp   r4   rý   rB   rþ   rÍ   rÿ   r   r  r  r  r  r  r  r  r   r  r	  )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   rÿ   r  r  r  r»   rv   rß   r  r  r  r  r   r  r  r  r  r  rñ   s                                r*   r.   z2ConstructedPayloadDecoderBase.indefLenValueDecoderŒ  s�  è ø€ ð �!‰9×Ñ¤#×":Ñ":Ò:Ü×#Ñ#Ð$EÓFÐFàÐ#ØÐ#Ø%Ÿ^™^Ó-‘
à×$Ñ$Ð0Ø!×0Ñ0×6Ñ6¸fÐ6ÓE‘
ð "×6Ñ6¸×8SÑ8SÐS�
á% j°)¸VÀWÓMò �Ø“ðð àÐØ>˜d×>Ñ>ØðCØ&,¸	Ø!ñCä%)¨'¸DÔ%AñCò %�
ô ˜jÔ*@ÕAØ$Ó$ð	%ð Òàà—^‘^Ó%ˆ
Ø×ÑÔà×&Ñ& z°7Ó;ˆà�?‰?œtŸ}™}×3Ñ3´T·X±X·_±_ÐEÒEà#×1Ñ1ˆJà"×)Ñ)¬T¯X©X¯_©_Ñ<ˆIØ"+˜mÒS°J×4SÑ4SÐ0SˆOåÝØ'Ð'Ò2¨FÒ8°bÑ8¸)Ò:MÈÒ:SÐQSÑ:SÚðô ô ›%ˆKàˆCàÜ�z“? cÒ)Ø#‘HáØ)×6Ñ6‘HðÙ*Ø'1°#¡×'AÑ'A™Hà'¨™_×7Ò7¸:Àc¹?×;VÒ;VØ'1×'GÑ'GÈÓ'L™Hð (2°#¡×'AÑ'A˜Hñ "+¨9°hÑ!YÈÐ!YÐQXÑ!Yò �Iä! )Ô-CÔDØ'šà ¤C§O¡OÒ3Ùðð ¤§¡Ñ/Øá&©:Ù Ø(×:Ñ:¸9×;TÑ;TÓU™à# C™×3Ò3°zÀ#±×7RÒ7RØ(×<Ñ<¸Y×=VÑ=VÐX[Ó\˜à×1Ñ1Ø˜Ø&+Ø#°eð 2ô ð —‘ Ô$Ø�q‘�ña õd ÜÐ/°+Ñ=Ô>âØ!×4Ñ4×=Ñ=¸kÔJÜ×+Ñ+ð%Ø'1×';Ñ';×'DÑ'DñEóFð Fð ×*Ó*à '§¡¨K¸Ó <�IåÜÐ<Ô=à$-§O¡OÓ$5ò 5™D˜A˜qÜªa±Ð 3Õ4ð5ñ ! G§K¡KÐ0AÀ5Õ$Iä.7¸
×8MÑ8MÓ.Nó FV™N˜C Ø#,×#5Ò#5Ø (à(×3Ò3¸J×<]Ñ<]Ð^aÓ<b×<jÒ<jØ (à-7×-JÑ-JØ )× 2Ñ 2× 7Ñ 7ó.˜Nð-Ø+4°^Ñ+D õ0  #Ý #Ú2:¹Nð%Lô !Mð .8×-NÑ-NÈsÓ-S˜Nà-×4Ñ4Ü$(§J¡J×$5Ñ$5´t·±×7MÑ7Mð9Oñ  Oô >GØ(6ó>8ò !DÑ$9 CÐ)9ô .>¸nÈSÑ>Q×>ZÑ>ZÓ>\Ó-] Fá5>¸vñ 6_ÐPXð 6_ÜAEÀgÐX\ÔA]ñ6_ò %2¨	ä+5°iÔAWÔ+XØ2;ªOà+4¼¿¹Ò+GÙ,1ð%2ð ;D N°3Ò$7ò!Dô  *:¸*×:[Ñ:[Ð\_Ó:`×:iÑ:iÓ:kÓ)l Ù1:¸6ñ 2[ÈHð 2[Ü=AÀ'ÐTXÔ=Yñ2[ò !V Iä'1°)Ô=SÔ'TØ.7ªà'0´C·O±OÑ'CÚ(-à$.×$EÑ$EÀcÈ9Õ$Uò!Vñ}FVðR %/×$=Ñ$=�MÙ$Ø+Ð+ð %×2Ñ2ˆMåÜÐAÀMÑQÔRàˆCàá!*Ø! =ñ"LØ;?ð"LØCJñ"Lò �Iô " )Ô-CÔDØ'šà ¤C§O¡OÒ3Ùðð ¤§¡Ñ/Øà×1Ñ1Ø˜Ø&+Ø#°eð 2ô ð �q‘�ð) ð, ÓøôA &ò Ü#×/Ò/ÙDNÐPóð ðûôF $,ò -å#&Ý$'à/9×/CÑ/C×/LÓ/LØ/8¯~«~Ø/9×/CÑ/C×/LÓ/LØ/8×/AÑ/A×/FÓ/Fð)Hô %Ið 1:×0BÑ0B×0HÑ0HÓ0Jò %A©¨¨1Ü(+º!¹QÐ,?Õ(@ð%Að!-Ø/8×/AÑ/AÀ.Ñ/Q¡Høä'/ò !-Ý'*Ý(+Ù:Hð-Kô )Lã$,ð	!-úò %-ð-üsŠ   ‚C]*ÃD]*Ç8AY) É	5]*É?G!]*Ñ!ZÑ&C]*Ô;C6]*Ø27]*Ù)"ZÚ]*ÚB]'Ü.\>Ü=]'Ü>] Ý]'Ý]*Ý] Ý ]'Ý#]*Ý&]'Ý']*)NNNr3   )
r4   r5   r6   rÈ   rÉ   r¼   r¿   rÑ   r+   r.   r1   r,   r*   r·   r·   s  sD   „ ØÐØ!Ðò$ò$ð 59Øó1ðh 6:Ø26óZðz >BØ:>ôhr,   r·   c                   óP   — e Zd Z ej                  «       Z ej                  «       Zy)Ú"SequenceOrSequenceOfPayloadDecoderN)r4   r5   r6   r   rï   rÈ   r  rÉ   r1   r,   r*   r  r  w  s   „ Ø(˜4Ÿ=™=›?ÐØ,˜TŸ_™_Ó.Ñr,   r  c                   ó.   — e Zd Z ej                  «       Zy)ÚSequencePayloadDecoderN)r4   r5   r6   r   rï   r7   r1   r,   r*   r  r  |  s   „ Ø"�T—]‘]“_�Nr,   r  c                   ó.   — e Zd Z ej                  «       Zy)ÚSequenceOfPayloadDecoderN)r4   r5   r6   r   r  r7   r1   r,   r*   r  r  €  ó   „ Ø$�T—_‘_Ó&�Nr,   r  c                   óP   — e Zd Z ej                  «       Z ej                  «       Zy)ÚSetOrSetOfPayloadDecoderN)r4   r5   r6   r   rð   rÈ   r  rÉ   r1   r,   r*   r"  r"  „  s   „ Ø#˜4Ÿ8™8›:ÐØ'˜TŸZ™Z›\Ñr,   r"  c                   ó.   — e Zd Z ej                  «       Zy)ÚSetPayloadDecoderN)r4   r5   r6   r   rð   r7   r1   r,   r*   r$  r$  ‰  s   „ Ø�T—X‘X“Z�Nr,   r$  c                   ó.   — e Zd Z ej                  «       Zy)ÚSetOfPayloadDecoderN)r4   r5   r6   r   r  r7   r1   r,   r*   r&  r&  �  s   „ Ø�T—Z‘Z“\�Nr,   r&  c                   óF   — e Zd Z ej                  «       Z	 	 dd„Z	 	 dd„Zy)ÚChoicePayloadDecoderNc              +   ój  K  — |€| j                   j                  |¬«      }	n|j                  «       }	|r ||	|||«      D ]  }
|
–— Œ y | j                  |	|«      }|	j                  |k(  rDt        rt	        d|›d�«        |||	j
                  fi |¤ŽD ]  }t        |t        «      sŒ|–— Œ nFt        rt	        d|›d�«        |||	j
                  |||fi |¤ŽD ]  }t        |t        «      sŒ|–— Œ j                  }t        rt	        d|›d|›�«       |	j                  ||dddd¬«       |	–— y ­w)	NrA   rÖ   z as explicitly tagged CHOICEz as untagged CHOICEúdecoded component ú, effective tag set F©rÂ   rÃ   rÄ   Ú	innerFlag)
r7   rC   r2   r$   rq   ÚcomponentTagMaprY   rZ   rù   ÚsetComponentByType)r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   rv   rù   s                r*   r+   z!ChoicePayloadDecoder.valueDecoder”  s[  è ø€ ð ÐØ×,Ñ,×2Ñ2¸&Ð2ÓA‰Jð "Ÿ™Ó)ˆJáÙ% j°)¸VÀWÓMò �Ø“ðð à×&Ñ& z°7Ó;ˆà×Ñ Ò&ÝÝÂÐIÔJá&Ø˜z×9Ñ9ñFØ=DñFò $�	ä˜iÔ)?Õ@Ø#“Oñ$õ ÝºÐ@ÔAá&Ø˜z×9Ñ9¸6À6Øñ&à$ñ&ò $�	ô ˜iÔ)?Õ@Ø#“Oð	$ð $×3Ñ3ˆåÝÂ	É?Ð[Ô\à×%Ñ%Ø˜YØ#Ø¨eØð	 	&ô 	
ð Óùs   ‚B$D3Â'AD3Ã.AD3c           	   +   óÚ  K  — |€| j                   j                  |¬«      }	n|j                  «       }	|r ||	|||«      D ]  }
|
–— Œ y | j                  |	|«      }|	j                  |k(  }t        rt	        d|›d|xr dxs d›d�«       	 |r* |||	j
                  j                  fi t        |d¬«      ¤Ž}n, |||	j
                  j                  |||fi t        |d¬«      ¤Ž}|D ]h  }t        |t        «      r|–— |t        j                  u r n@|j                  }t        rt	        d	|›d
|›�«       |	j                  ||dddd¬«       |rŒh n |rt        j                  u rnŒÛ|	–— y ­w)NrA   rÖ   z as zexplicitly Úunztagged CHOICETr  r*  r+  Fr,  )r7   rC   r2   r$   rq   rñ   ró   r  rY   rZ   r   rO   rù   r/  )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   ÚisTaggedÚiteratorrv   rù   s                  r*   r.   z)ChoicePayloadDecoder.indefLenValueDecoderÇ  s¦  è ø€ ð ÐØ×,Ñ,×2Ñ2¸&Ð2ÓA‰Jð "Ÿ™Ó)ˆJáÙ% j°)¸VÀWÓMò �Ø“ðð à×&Ñ& z°7Ó;ˆà×$Ñ$¨Ñ.ˆåÝÚ˜Ò2 ]Ò:°dÑ:ð<ô =ð áÙ$Ø˜z×7Ñ7×DÑDñ4ä˜7¨TÔ2ñ4‘ñ
 %Ø˜z×7Ñ7×DÑDØ˜F EñKä-1°'ÀDÔ-IñK�ð &ò �	ä˜iÔ)?Ô@Ø#’Oà¤§¡Ñ/Ùà"+×";Ñ";�åÝÚ )©?ð<ô =ð ×-Ñ-Ø# YØ&+Ø#°eØ#ð	 .ô ò  Ùð-ñ0 ˜y¬C¯O©OÑ;ØðK ðN Óùs   ‚E
E+ÅE+r3   )r4   r5   r6   r   ÚChoicer7   r+   r.   r1   r,   r*   r(  r(  ‘  s+   „ Ø �T—[‘[“]€Nð 6:Ø26ó1ðh >BØ:>ô?r,   r(  c                   óF   — e Zd Z ej                  «       Z	 	 dd„Z	 	 dd„Zy)ÚAnyPayloadDecoderNc              +   óˆ  K  — |€d}	n:|j                   t        j                  u r||j                  v}	n||j                  k7  }	|	r‘|j
                  }
|j                  «       }|j                  |
t        j                  «       |||
z
  z  }t        rGt        ||«      D ]  }t        |t        «      sŒ|–— Œ t        dt        j                  «      z  «       |r, | | j                   ||t"        fi |¤Ž|||«      D ]  }|–— Œ y t%        |||«      D ]  }t        |t        «      sŒ|–— Œ  | j                   ||fi |¤Ž–— y ­w)NTz&decoding as untagged ANY, substrate %s)rp   r   ÚTagMapÚtagMapr$   ÚmarkedPositionrr   ÚseekÚosÚSEEK_SETrq   r   rY   rZ   r   rì   rG   rD   r
   )r!   r"   r#   r$   r%   r&   r'   r(   r)   Ú
isUntaggedÚfullPositionÚcurrentPositionr=   s                r*   r+   zAnyPayloadDecoder.valueDecoder  sR  è ø€ ð ÐØ‰Jà×Ñ¤6§=¡=Ñ0Ø x§¡Ð6‰Jð   8§?¡?Ñ2ˆJáØ$×3Ñ3ˆLØ'Ÿn™nÓ.ˆOà�N‰N˜<¬¯©Ô5Ø�o¨Ñ4Ñ4ˆFåÜ+¨I°vÓ>ò $�EÜ! %Ô)?Õ@Ø#›ð$ô ð Ü Ÿ=™=¨Ó/ñ0ô 1ñ Ù%Ø)�D×)Ñ)¨(°F¼GÑOÀwÑOØ˜v wó0ò �ð “ðð
 ä# I¨v°wÓ?ò 	ˆEÜ˜%Ô!7Õ8Ø“ð	ð $ˆd×#Ñ# H¨f°eÑG¸wÑGÓGùs   ‚B+EÂ.A5EÄ$Ec              +   ó¨  K  — |€d}	n:|j                   t        j                  u r||j                  v }	n||j                  k(  }	|	rt
        }
t        r™t        d«       n�|j                  }|j                  «       }|j                  |t        j                  «       t        |||z
  |«      D ]  }
t        |
t        «      sŒ|
–— Œ t        r!t        dt        j                   
«      z  «       | j"                  }|rK|| j$                  ur= | j&                  ||t(        fi |¤Ž} ||
|z   |t+        |
«      z   |«      D ]  }
|
–— Œ y t        rt        d«       | j$                  }	  |||f|ddœ|¤ŽD ]*  }t        |t        «      r|–— |t,        j.                  u sŒ* n t,        j.                  u rn
|z  }
ŒS|r
–— y  | j&                  ||
fi |¤Ž–— y ­w)NFzdecoding as tagged ANYz-decoding as untagged ANY, header substrate %sri   Trx   )rp   r   r8  r9  r$   r   rq   r:  rr   r;  r<  r=  r
   rY   rZ   r   rì   r7   r>   rG   rD   r’   r   rO   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r2  r=   r?  r@  r0   rv   s                  r*   r.   z&AnyPayloadDecoder.indefLenValueDecoder5  sô  è ø€ ð ÐØ‰Hà×Ñ¤6§=¡=Ñ0Ø §¡Ð0‰Hð  §¡Ñ0ˆHáäˆEåÜÐ,Õ-ð %×3Ñ3ˆLØ'Ÿn™nÓ.ˆOà�N‰N˜<¬¯©Ô5Ü'¨	°?À\Ñ3QÐSZÓ[ò  �Ü˜eÔ%;Õ<Ø“Kð õ ÜÐCÄeÇmÁmÐTYÓFZÑZÔ[ð ×&Ñ&ˆá˜L°×0GÑ0GÑGØ.˜×.Ñ.Ø˜&¤'ñ6Ø-4ñ6ˆJñ &Ø ¨	Ñ 1°6¼CÀ»JÑ3FÈóQò �à“ðð åÜÐ6Ô7ð ×.Ñ.ˆàá&Ø˜xð.Ø6BØ!ñ.à%,ñ.ò �	ô ˜iÔ)?Ô@Ø#’Oà¤§¡Ò/Ùðð œCŸO™OÑ+Øà�YÑˆEð ñ" Ø‹Kð (�$×'Ñ'¨°&¸%ÑKÀ7ÑKÓKùs   ‚B9GÂ<CGÆ;Gr3   rP   r1   r,   r*   r6  r6  	  s.   „ Ø�T—X‘X“Z€Nð 6:Ø26ó'HðT >BØ:>ôILr,   r6  c                   ó.   — e Zd Z ej                  «       Zy)ÚUTF8StringPayloadDecoderN)r4   r5   r6   r   Ú
UTF8Stringr7   r1   r,   r*   rC  rC  ‚  r   r,   rC  c                   ó.   — e Zd Z ej                  «       Zy)ÚNumericStringPayloadDecoderN)r4   r5   r6   r   ÚNumericStringr7   r1   r,   r*   rF  rF  †  ó   „ Ø'�T×'Ñ'Ó)�Nr,   rF  c                   ó.   — e Zd Z ej                  «       Zy)ÚPrintableStringPayloadDecoderN)r4   r5   r6   r   ÚPrintableStringr7   r1   r,   r*   rJ  rJ  Š  ó   „ Ø)�T×)Ñ)Ó+�Nr,   rJ  c                   ó.   — e Zd Z ej                  «       Zy)ÚTeletexStringPayloadDecoderN)r4   r5   r6   r   ÚTeletexStringr7   r1   r,   r*   rN  rN  Ž  rH  r,   rN  c                   ó.   — e Zd Z ej                  «       Zy)ÚVideotexStringPayloadDecoderN)r4   r5   r6   r   ÚVideotexStringr7   r1   r,   r*   rQ  rQ  ’  s   „ Ø(�T×(Ñ(Ó*�Nr,   rQ  c                   ó.   — e Zd Z ej                  «       Zy)ÚIA5StringPayloadDecoderN)r4   r5   r6   r   Ú	IA5Stringr7   r1   r,   r*   rT  rT  –  ó   „ Ø#�T—^‘^Ó%�Nr,   rT  c                   ó.   — e Zd Z ej                  «       Zy)ÚGraphicStringPayloadDecoderN)r4   r5   r6   r   ÚGraphicStringr7   r1   r,   r*   rX  rX  š  rH  r,   rX  c                   ó.   — e Zd Z ej                  «       Zy)ÚVisibleStringPayloadDecoderN)r4   r5   r6   r   ÚVisibleStringr7   r1   r,   r*   r[  r[  ž  rH  r,   r[  c                   ó.   — e Zd Z ej                  «       Zy)ÚGeneralStringPayloadDecoderN)r4   r5   r6   r   ÚGeneralStringr7   r1   r,   r*   r^  r^  ¢  rH  r,   r^  c                   ó.   — e Zd Z ej                  «       Zy)ÚUniversalStringPayloadDecoderN)r4   r5   r6   r   ÚUniversalStringr7   r1   r,   r*   ra  ra  ¦  rL  r,   ra  c                   ó.   — e Zd Z ej                  «       Zy)ÚBMPStringPayloadDecoderN)r4   r5   r6   r   Ú	BMPStringr7   r1   r,   r*   rd  rd  ª  rV  r,   rd  c                   ó.   — e Zd Z ej                  «       Zy)ÚObjectDescriptorPayloadDecoderN)r4   r5   r6   r   ÚObjectDescriptorr7   r1   r,   r*   rg  rg  ¯  s   „ Ø,�V×,Ñ,Ó.�Nr,   rg  c                   ó.   — e Zd Z ej                  «       Zy)ÚGeneralizedTimePayloadDecoderN)r4   r5   r6   r   ÚGeneralizedTimer7   r1   r,   r*   rj  rj  ³  s   „ Ø+�V×+Ñ+Ó-�Nr,   rj  c                   ó.   — e Zd Z ej                  «       Zy)ÚUTCTimePayloadDecoderN)r4   r5   r6   r   ÚUTCTimer7   r1   r,   r*   rm  rm  ·  s   „ Ø#�V—^‘^Ó%�Nr,   rm  r¨   )r   r   c                   óJ   — e Zd ZeZ e«       ZdZeZe	Z	e
e
fd„Zdddeddfd„Zy)ÚSingleItemDecoderTc                 óŒ   — |t         ur|n| j                  | _        |t         ur|n| j                  | _        i | _        i | _        y r<   )r   ÚTAG_MAPÚ_tagMapÚTYPE_MAPÚ_typeMapÚ	_tagCacheÚ_tagSetCache)r!   r9  ÚtypeMapÚignoreds       r*   Ú__init__zSingleItemDecoder.__init__	  s;   € Ø!'¬xÑ!7‘v¸T¿\¹\ˆŒØ#*´(Ñ#:™ÀÇÁˆŒð ˆŒØˆÕr,   Nc              +   óÆ  K  — |j                  dd«      }	t        r t        dt        j                  |||fz  «       |	r€| j                  rtt        |d|«      D ]  }
t        |
t        «      sŒ|
–— Œ 
t        k(  r$t        rt        d«       t        j                  –— y |j                  dt        j                  «       | j                  }| j                  }| j                   }| j"                  }t$        }|j'                  «       |_        |t*        u�r|t,        u r{d}t        |d|«      D ]  }t        |t        «      sŒ|–— Œ t/        «      }	 ||   }|€ |r	 ||   }nt5        j8                  d|«      }n||z   }t:        }t        rt        d|z  «       |t:        u �rt        |d|«      D ]  }t        |t        «      sŒ|–— Œ t/        «      }|dk  r|}n”|dkD  r�|dz  }t        |||«      D ]  }t        |t        «      sŒ|–— Œ t=        «      }t?        |«      |k7  r&t3        j                  |›dt?        |«      ›d|›�«      ‚d}|D ]  }|dz  }|tA        |«      z  }Œ |dz  }nd}|dk(  r!| j                  st3        jB                  d«      ‚tD        }t        rt        d|z  «       |tD        u r|€tF        }ntH        }|tF        u r¯	 ||   }|rtJ        }n	 ||d d    }|rtJ        }ntL        }t        r‚t        d|xr |jN                  jP                  xs d›d|tJ        u xr dxs d›�«       t        j                  jS                  |d u xr dxs  |jT                  jN                  jP                  «       |tH        u �r|jN                  tV        jX                  u rç	 ||   }t        �r$t        d «       |jZ                  j]                  «       D ]*  \  }}t        d!|›d"|jN                  jP                  ›�«       Œ, |j^                  rRt        d#«       |j^                  j]                  «       D ]*  \  }}t        d!|›d"|jN                  jP                  ›�«       Œ, t        d$|d u xr dxs |ja                  «       ›d%|›�«       nJ||jb                  k(  s||jd                  v r+|}t        r%t        d&|jN                  jP                  z  «       nd }|�@	 ||jf                     }t        rt        d'|jf                  ›�«       |r	|}tJ        }ntL        }nd }tL        }t        r~t        d|tJ        u xr |jN                  jP                  xs d›d)|tJ        u xr dxs d›�«       t        j                  jS                  |d u xr dxs |jN                  jP                  «       |tJ        u �rY|jk                  d*d«      s|sd+„ }|j'                  «       }!|dk(  r8 jl                  ||||tD        | |fi |¤ŽD ]  }t        |t        «      sŒ|–— Œ n| jn                  ||||tD        | |fi |¤ŽD ]  }t        |t        «      sŒ|–— Œ |j'                  «       |!z
  }"|s|"|k7  rtC        d,|"›d-|›d.�«      ‚|r|"|kD  rtC        d,|"›d/|›d.�«      ‚t        rkt        d|jN                  jP                  ›d0|jN                  jP                  ›d1t        |tp        jr                  «      xr |ju                  «       xs |›d2�«       t*        }�n|tL        u rž|rM|d   jv                  t4        jx                  k(  r-|d   jz                  t4        j|                  k7  rt~        }tJ        }nd }| j€                  }t        r;t        d|xr |jN                  jP                  xs d›d3|tJ        u xr dxs d4›�«       |t‚        u r:| j„                  }t        r"t        d5|jN                  jP                  z  «       tJ        }|t†        u rt3        jB                  |›d6|›�«      ‚|t*        ur�Œt        r:t        j                  j                  «        t        d7t        j                  z  «       |–— y # t0        $ r¢ |}|d	z  }|d
z  }|dz  }|dk(  rid}d}d}	 t        |d|«      D ]  }t        |t        «      sŒ|–— Œ st3        j                  d«      ‚t/        |«      }|dz  }|dz  }||dz  z  }|dz  snŒbt5        j6                  |||¬«      }|r|||<   Y �Œ¯w xY w# t0        $ r t5        j8                  d|«      }|||<   Y �Œ³w xY w# t0        $ r d }Y �Œow xY w# t0        $ r d }Y �Œow xY w# t0        $ r d }Y �Œ¿w xY w# t0        $ rn t5        j8                  |jb                  jh                  |jb                  jh                  «      } 	 ||    }t        rt        d(| ›�«       n# t0        $ r d }Y nw xY wY �ŒÞw xY w­w)8NrN   FzWdecoder called at scope %s with state %d, working with up to %s octets of substrate: %sr�   zend-of-octets sentinel foundéþÿÿÿTr_   r§   é    é   r   z'Short octet stream on long tag decodingrd   rŠ   r‰   )ÚtagClassrW   ÚtagIdr1   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 rF   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   ó   K  — | –— y­w)ae  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.
                        Nr1   )r0   Ú
_substrateÚ_lengthÚ_optionss       r*   r(   z0SingleItemDecoder.__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)DÚpoprq   r   ÚscopeÚsupportIndefLengthr
   rY   rZ   ÚEOO_SENTINELr   rO   r;  r<  ÚSEEK_CURrs  ru  rv  rw  rD   rr   r:  ÚstStopÚstDecodeTagrm   r  r   r   ÚTagrÊ   ÚstDecodeLengthÚlistr’   r   r   ÚstGetValueDecoderÚstGetValueDecoderByTagÚstGetValueDecoderByAsn1SpecÚstDecodeValueÚstTryAsExplicitTagrp   r4   Úpushr7   r   r8  ÚpresentTypesrþ   Ú	skipTypesÚprettyPrintTyper$   r9  rî   rË   rB   r.   r+   r   ÚAsn1ItemÚprettyPrintrW   rë   r  ÚtagClassUniversalÚrawPayloadDecoderÚdefaultErrorStateÚstDumpRawValueÚdefaultRawDecoderÚstErrorCondition)#r!   r"   r#   r$   r%   r&   r'   r(   r)   rN   Úeoo_candidater9  rx  ÚtagCacheÚtagSetCacherF   Ú
isShortTagÚ	firstByteÚ
firstOctetÚlastTagÚ
integerTagr  rW   r€  ÚlengthOctetIdxÚintegerByteÚsizeÚencodedLengthÚlengthOctetÚconcreteDecoderÚ
chosenSpecr  Ú
baseTagSetr~   Ú	bytesReads#                                      r*   Ú__call__zSingleItemDecoder.__call__  s½
  è ø€ ð
 —;‘;˜z¨5Ó1ˆåÜð äŸ™ U¨F°IÐ>ñ?ô @ñ
 ˜×/Ò/ä!/°	¸1¸gÓ!Fò (�Ü˜mÔ-CÕDØ'Ó'ð(ð ¤Ò,ÝÜÐ6Ô7Ü—o‘oÒ%Øð —‘˜r¤2§;¡;Ô/à—‘ˆØ—-‘-ˆØ—>‘>ˆØ×'Ñ'ˆäˆà#,§>¡>Ó#3ˆ	Ô àœ6Ò!àœÑ#à!�
ä!/°	¸1¸gÓ!Fò (�IÜ! )Ô-CÕDØ'›ð(ô ! ›^�
ð&7Ø& zÑ2�GðN �>Ù!ð=Ø%0°Ñ%<™Fô "%§¡¨B°Ó!8™ð % vÑ-�Fä&�åÜÐ>ÀÑGÔHàœÒ&ä"0°¸A¸wÓ"Gò )�JÜ! *Ô.DÕEØ(Ó(ð)ô ! ›_�
à Ò#Ø'‘Fà #Ò%Ø%¨Ñ,�Dä)7¸	À4ÈÓ)Qò 0˜Ü% mÔ5KÕLØ"/Ó/ð0ô %)¨Ó$7�Mô ˜=Ó)¨TÒ1Ü#×:Ñ:Ú-1´3°}Õ3EÁvÐNóð ð �FØ'4ò 7˜Ø 1™˜Ø¤'¨+Ó"6Ñ6™ð7ð ˜A‘I‘Dð  �Fà˜R’<¨×(?Ò(?Ü×+Ñ+Ð,dÓeÐeä)�åÜÐ6¸Ñ?Ô@àÔ)Ñ)ØÐ#Ü2‘Eô 8�Eð" Ô.Ñ.ð+Ø&,¨V¡n�Oñ
 #Ü)‘Eð/Ø*0°¸¸°Ñ*<˜ñ
 'Ü -™ä 2˜åÝÈ_ò  NDÐap×azÑaz÷  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Ü—K‘K×$Ñ$ _¸Ð%<Ò%DÀÒ%yÈ×HfÑHf×HpÑHp×HyÑHyÔzàÔ3Ò3à×%Ñ%¬¯©Ñ6ð*Ø%-¨fÑ%5˜
ö
 ÜÐ?Ô@à-5×-BÑ-B×-HÑ-HÓ-Jò S™M˜J¨Ý²
¸A¿K¹K×<PÒ<PÐ QÕRðSð $×-Ò-ÜÐ 2Ô3Ø19×1CÑ1C×1IÑ1IÓ1Kò W¡ 
¨AÝ #²JÀÇÁ×@TÒ@TÐ$UÕ VðWåÈjÐ\`ÐN`ÒNmÐemò  ONÐq{÷  rLñ  rLó  rNñ  ONñ  PVð  Wõ  Xà˜xŸ™Ò.°&¸H¿O¹OÑ2KØ!)�JÝÜÐ8¸8×;MÑ;M×;VÑ;VÑVÕWð "&�JàÐ)ð3à*1°*×2CÑ2CÑ*D˜åÝÐ^h×^oÒ^oÐ qÔrñ 'Ø#-˜Ü -™ô !3™ð '+�OÜ.�EåÝÈÔQ^ÐH^ò  IFÐcr×c|Ñ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Ü—K‘K×$Ñ$ Z°4Ð%7Ò%?¸CÒ%`À:×CWÑCW×C`ÑC`ÔaàœÒ%Ø—{‘{ ?°DÔ9Á,ò)ð %.§N¡NÓ$4Ð!à˜R’<Ø!E ×!EÑ!EØ% xØ" FÔ,=Ø  ,ñ";ð 3:ñ";ò (˜ô & eÔ-CÕDØ"'›Kñ(ð "> ×!=Ñ!=Ø% xØ" FÔ,=Ø  ,ñ";ð 3:ñ";ò (˜ô & eÔ-CÕDØ"'›Kð(ð !*§¡Ó 0Ð3DÑ D�IÙ'¨I¸Ò,?Ý)ÚGPÒRXÐYó[ð [á%¨)°fÒ*<å)ÚJSÒU[Ð\ó^ð ^õ ÝØ&×0Ñ0×9Ó9¸5¿?¹?×;SÓ;SÜ! %¬¯©Ó7ÒO¸E×<MÑ<MÓ<OÒXÐSXÑXðZô [ô �ÙàÔ*Ñ*ÙØ˜q™	×+Ñ+¬s×/GÑ/GÒGØ˜q™	×*Ñ*¬c×.CÑ.CÒCä&7�OÜ)‘Eð '+�OØ ×2Ñ2�EåÝ¸/Ò:pÈo×NgÑNg×NpÑNpÒ:|Ðt|Ñ:|ð  Dô  HUð  Uò  að  Zaò  qð  eqð  qð  rô  sàœÑ&Ø"&×"8Ñ"8�åÜÐ9¸O×<UÑ<U×<^Ñ<^Ñ^Ô_ä%�àÔ(Ñ(Ü×'Ñ'Ú06¹ÐAóð ðS	 œ6Ó!õZ	 Ü�K‰K�O‰OÔÜÐ7¼%¿+¹+ÑEÔFà‹øôE	  ò #7Ø!+�JØ)¨DÑ0�HØ *¨TÑ 1�IØ&¨Ñ-�Eà ’}Ø%*˜
Ø)*˜Ø !˜à"Ü/=¸iÈÈGÓ/Tò 6 Ü#-¨kÔ;QÕ#RØ*5Ó$5ð6ñ $/Ü&+×&BÑ&BØ$Mó'"ð !"ô *-¨[Ó)9˜JØ*¨aÑ/˜NØ! a™K˜EØ! j°4Ñ&7Ñ8˜Eà#-°Ò#4Ø %ð! #ô$ "Ÿg™gØ!)°YÀeô�Gñ "à/6˜ Ñ,úðG#7ûôT  (ò =ä%(§Z¡Z°°GÓ%<˜FØ6<˜K¨
Ô3ð=ûôf  ò +Ø&*“Oð+ûô $ò /Ø*.›ð/ûô$ $ò *Ø%)›
ð*ûô> $ò 3ä%(§Z¡Z°
×0AÑ0A×0IÑ0IÈJ×L]ÑL]×LeÑLeÓ%f˜
ð3à.4°ZÑ.@˜Oå"Ý #ÉÐ$UÔ Vùä'ò 3Ø.2šOð3ýð3üs>  ‚A'g!Á*Cg!Ä<g!Åa Åg!Åd ÅA g!Æ>Ag!ÈCg!Ëd1 Ë	g!Ëe Ë"B<g!Îe Î$D-g!Ó-e' Ó?Dg!Ø7g!Ø;Gg!àAg!áAdâA dã?g!ädäg!ä$d.ä*g!ä-d.ä.g!ä1e ä<g!ä?e å g!åeåg!åeåg!åe$å g!å#e$å$g!å'Agæ/g	çgç	gçgçgçgçg!çgçg!)r4   r5   r6   r¢  rŸ  r6  r¡  rŠ  rr  rt  r   rz  rŽ  r´  r1   r,   r*   rp  rp  ÿ  sB   „ Ø(Ðá)Ó+ÐàÐà€GØ€Hà&°ó ð ,0Ø T°Ø¨dôVr,   rp  c                   ó"   — e Zd ZdZeZdd„Zd„ Zy)r   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                 ón   —  | j                   di |¤Ž| _        t        |«      | _        || _        || _        y )Nr1   )ÚSINGLE_ITEM_DECODERÚ_singleItemDecoderr   r…  Ú	_asn1Specr‡  )r!   r"   r#   r)   s       r*   rz  zStreamingDecoder.__init__·  s4   € Ø": $×":Ñ":Ñ"E¸WÑ"EˆÔÜ*¨9Ó5ˆŒØ!ˆŒØˆ�r,   c              #   óè   K  — 	  | j                   | j                  | j                  fi | j                  ¤ŽD ]  }|–— Œ t	        | j                  «      D ]  }t        |t        «      rd –—  n ry Œn­wr<   )r¸  r…  r¹  r‡  r   rY   rZ   )r!   r0   r=   s      r*   Ú__iter__zStreamingDecoder.__iter__½  s~   è ø€ ØØ5˜d×5Ñ5Ø—O‘O T§^¡^ñFØ7;·}±}ñFò !�
à Ó ð!ô ' t§¡Ó7ò �Ü˜eÔ%;Ô<Ûáð	ñ Øð ùs   ‚A0A2r<   )r4   r5   r6   Ú__doc__rp  r·  rz  r»  r1   r,   r*   r   r   j  s   „ ñHðT ,Ðó ór,   r   c                   ó6   — e Zd ZdZeZedd„«       Zed„ «       Z	y)r   znCreate a BER decoder object.

    Parse BER/CER/DER octet-stream into one, possibly nested, ASN.1 object.
    Nc                 ó6  ‡— t        |«      }d|v r|d   Šdˆfd„	}||d<    | j                  ||fi |¤Ž}|D ]A  }t        |t        «      rt	        j                  d«      ‚	 t        t        |«      «      }||fc S  y# t        j                  $ r	 t        }Y Œ#w xY w)a€  Turns BER/CER/DER octet stream into an ASN.1 object.

        Takes BER/CER/DER octet-stream in form of :py:class:`bytes` (Python 3)
        or :py:class:`str` (Python 2) 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` (Python 3) or :py:class:`str` (Python 2)
            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   ó  •K  — 	  ‰	| |||«      }|D ]  }|–— Œ y# t         $ r\ t        j                  «       \  }}}|j                  r‚ t	        |t
        j                  «      sJ ‚t        j                  ‰	| ||«      }Y Œpw xY w­w)ar  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ÚsysÚexc_infoÚtb_nextrY   ÚioÚBytesIOr   Ú_callSubstrateFunV4asV5)
r0   r"   r%   r)   Úsubstrate_genÚ_typeÚ_valueÚ	tracebackrF   ÚorigSubstrateFuns
            €r*   ÚsubstrateFunWrapperz-Decoder.__call__.<locals>.substrateFunWrapper)  s�   øè ø€ ð	uÙ$4°ZÀÈFÐT[Ó$\�Mð +ò  �EØ“Kñ øô !ò uÜ/2¯|©|«~Ñ,�E˜6 9Ø ×(Ò(àä% i´·±Ô<Ñ<Ü$+×$CÑ$CÐDTÐV`ÐbkÐmsÓ$t’Mðuüs&   ƒB… �BœA"BÁ>BÂ BÂBzShort substrate on inputr<   )	r   ÚSTREAMING_DECODERrY   rZ   r   Únextr
   ÚEndOfStreamErrorr   )	Úclsr"   r#   r)   rÌ  ÚstreamingDecoderr0   ÚtailrË  s	           @r*   r´  zDecoder.__call__Ô  s¿   ø€ ô` % YÓ/ˆ	à˜WÑ$Ø& ~Ñ6Ðõ ð( ':ˆG�NÑ#à0˜3×0Ñ0Ø�xñ,Ø#*ñ,Ðð +ò 
	$ˆJÜ˜*Ô&<Ô=Ü×2Ñ2Ð3MÓNÐNðÜœN¨9Ó5Ó6�ð
 ˜tÐ#Ò#ñ
	$øô ×)Ñ)ò Ü’ðús   Á A<Á<BÂBc              #   óò   K  — |j                  «       }|dk(  rt        |«      } | |||«      \  }}|j                  |«      }|j                  «        |j	                  | t
        j                  «       |–— y ­w)Nr£   )Úreadr’   ÚwriteÚtruncater;  r<  rŒ  )ÚsubstrateFunV4r0   r"   r%   Úsubstrate_bytesrF   ÚnextSubstrateÚnbytess           r*   rÆ  zDecoder._callSubstrateFunV4asV5N  si   è ø€ à#Ÿ.™.Ó*ˆØ�RŠ<Ü˜Ó)ˆFÙ-¨j¸/È6ÓRÑˆˆ}Ø—‘ Ó/ˆØ×ÑÔØ�‰˜�w¤§¡Ô,Ø‹ùs   ‚A5A7r<   )
r4   r5   r6   r¼  r   rÍ  Úclassmethodr´  r8   rÆ  r1   r,   r*   r   r   Í  s8   „ ñð )Ðàòw$ó ðw$ðr ñó ñr,   r   )‚rÄ  r<  rÁ  Úpyasn1r   r   Úpyasn1.codec.berr   Úpyasn1.codec.streamingr   r   r   r
   Úpyasn1.compatr   Úpyasn1.compat.integerr   Úpyasn1.compat.octetsr   r   r   r   Úpyasn1.errorr   Úpyasn1.typer   r   r   r   r   r   Ú__all__ÚregisterLoggeer4   ÚDEBUG_DECODERrq   rD   rZ   Úobjectr   r:   rI   rž  rS   r]   rb   r{   r‚   r†   rš   rŸ   rµ   r·   r  r  r  r"  r$  r&  r(  r6  rC  rF  rJ  rN  rQ  rT  rX  r[  r^  ra  rd  rg  rj  rm  r[   r$   r`   ry   r€   r„   r˜   r�   Ú
Enumeratedr³   rï   rð   r4  rD  rG  rK  rO  rR  rU  rY  r\  r_  rb  re  rh  rk  rn  rr  rî   r  r  rQ   rt  r9  rx  ÚvaluesÚtypeDecoderr7   rp   ÚrangerŽ  r�  r’  r”  r“  r–  r•  r   r¢  r�  r‹  rp  r   r   r   )Úxs   0r*   ú<module>rí     sM  ðó 
Û 	Û 
õ Ý Ý  Ý 3Ý 0Ý 1Ý 1Ý "Ý ,ß DÓ DÝ $Ý Ý Ý Ý Ý Ý â
3€à€e×Ñ˜8¨5×+>Ñ+>Ô?€à
�,‰,€à×5Ñ5Ð ô˜Vô ô>)Ð#9ô )ô"&Ð4ô &ñR &Ó'Ð ôHÐ8ô Hô0AÐ1ô Aô@LÐ:ô @LôFSIÐ <ô SIôlÐ5ô ô.9FÐ%Aô 9Fôx/IÐ <ô /IôdkHÐ5ô kHô\Ð(>ô ôAÐ$Eô AôH/Ð)Fô /ô
%Ð?ô %ô'ÐAô 'ô*Ð<ô *ô
 Ð0ô  ô"Ð2ô "ôuÐ8ô uôpuLÐ4ô uLôr'Ð8ô 'ô*Ð";ô *ô,Ð$=ô ,ô*Ð";ô *ô+Ð#<ô +ô&Ð7ô &ô*Ð";ô *ô*Ð";ô *ô*Ð";ô *ô,Ð$=ô ,ô&Ð7ô &ô
/Ð%>ô /ô.Ð$=ô .ô&Ð5ô &ðØ‡L�L×ÑÑ.Ó0ðà‡L�L×ÑÑ.Ó0ðð 	‡N�N×ÑÑ2Ó4ðð 	×Ñ×ÑÑ6Ó8ð	ð
 	‡I�I×ÑÑ(Ó*ðð 	×Ñ× Ñ Ñ"@Ó"Bðð 	×Ñ×ÑÑ6Ó8ðð 	‡O�O×ÑÑ1Ó3ðð 	‡I�I×ÑÑ(Ó*ðð 	‡M�M×ÑÑ<Ó>ðð 	‡H�H‡O�OÑ-Ó/ðð 	‡K�K×ÑÑ,Ó.ðð 	‡O�O×ÑÑ4Ó6ðð 	×Ñ×ÑÑ:Ó<ðð  	×Ñ×ÑÑ!>Ó!@ð!ð" 	×Ñ×ÑÑ:Ó<ð#ð$ 	×Ñ×ÑÑ <Ó >ð%ð& 	‡N�N×ÑÑ2Ó4Ø×Ñ×ÑÑ:Ó<Ø×Ñ×ÑÑ:Ó<Ø×Ñ×ÑÑ:Ó<Ø×Ñ×ÑÑ!>Ó!@Ø‡N�N×ÑÑ2Ó4à
×Ñ×"Ñ"Ñ$BÓ$DØ
×Ñ×!Ñ!Ñ#@Ó#BØ
‡N�N×ÑÑ0Ó2ñ9€ðB 	‡H�H‡O�OÑ&Ó(Ø‡J�J×ÑÑ*Ó,Ø‡M�M×ÑÑ0Ó2Ø‡O�O×ÑÑ4Ó6Ø‡K�K×ÑÑ,Ó.Ø‡H�H‡O�OÑ&Ó(ð€ð 
€Ø
€ð —>‘>Ó#ò +€KØ×!Ñ!Ñ-Ø×+Ñ+×5Ñ5×<Ñ<ˆØÑ &°Ò"8Ø*ˆH�VÒð	+ñ  ˜R“yÖ!�!ŠAÒ!ñ		€ØØØØØØØØØñ ˜Ó €ôh˜ô hôV`�vô `ôFJˆfô JñF 
‹�ùòo "s   Ø	Y