
    tfs                        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mZ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gZ ej        eej                  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          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          Z' G d' d(e          Z( G d) d*e!          Z)i ej*        j+         e            ej,        j+         e            ej-        j+         e            ej.        j+         e             ej/        j+         e!            ej0        j+         e"            ej1        j+         e#            ej2        j+         e$            ej3        j+         e            ej4        j+         e%            ej5        j+         e'            ej6        j+         e'            ej7        j+         e(            ej8        j+         e!            ej9        j+         e!            ej:        j+         e!            ej;        j+         e!            ej<        j+         e!            ej=        j+         e!            ej>        j+         e!            ej?        j+         e!            ej@        j+         e!            ejA        j+         e!            ejB        j+         e!            ejC        j+         e!            ejD        j+         e!            ejE        j+         e!            i
ZFi ej,        jG         e            ej-        jG         e            ej.        jG         e             ej/        jG         e!            ej0        jG         e"            ej1        jG         e#            ej2        jG         e$            ej3        jG         e            ej4        jG         e%            ejH        jG         e&            ej6        jG         e'            ejI        jG         e&            ej5        jG         e'            ej7        jG         e(            ejJ        jG         e)            ej8        jG         e!            ej9        jG         e!            ej:        jG         e!            ej;        jG         e!            ej<        jG         e!            ej=        jG         e!            ej>        jG         e!            ej?        jG         e!            ej@        jG         e!            ejA        jG         e!            ejB        jG         e!            ejC        jG         e!            ejD        jG         e!            ejE        jG         e!            iZKeFZLeKZM G d+ d,e          ZN G d- de          ZO eO            ZPdS ).    N)debug)error)eoo)_MISSING)to_bytes)int2octoct2int	ints2octsnullstr2octsisOctetsType)char)tag)univ)usefulEncoderencode)flagsc                   F    e Zd ZdZdZ ee          Zd Zd Zd Z	ddZ
dS )	AbstractItemEncoderT)r   r   c                     |\  }}}||z  }|r|t           j        z  }|dk     r||z  fS |dz  f}|dz  }|rd|dz  z  f|z   }|dz  }||dz  f|z   S )N            )r   tagFormatConstructed)self	singleTagisConstructedtagClass	tagFormattagId
encodedTag	substrates           W/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pyasn1/codec/ber/encoder.py	encodeTagzAbstractItemEncoder.encodeTag"   s    %.")U	)
 	3#22J2::%&& IaKE !UT\24y@	!   %')33    c                     |s	| j         rdS |dk     r|fS d}|r|dz  f|z   }|dz  }|t          |          }|dk    rt          j        d|z            d|z  f|z   S )N)r   r          ~   zLength octets overflow (%d))supportIndefLenModelenr   PyAsn1Error)r   lengthdefModer$   substrateLens        r%   encodeLengthz AbstractItemEncoder.encodeLength6   s     	43 	7D==7N I #d],y8	1   y>>Lc!!'(E(TUUU<')I55r'   c                 *    t          j        d          )NzNot implemented)r   r/   r   valueasn1Spec	encodeFunoptionss        r%   encodeValuezAbstractItemEncoder.encodeValueJ   s     1222r'   Nc                 T   ||j         }n|j         }|s | j        |||fi |\  }}}|S |                    dd          }	t          }t	          |j                  D ]\  }
}|	}|
s	  | j        |||fi |\  }}}nF# t          j        $ r4 t          j	                    }t          j        d|d|d                   w xY wt          rt          d|rdpdd	|d
|           |s|r|                    dd          r|c S |sd}t          rt          d           |                     ||          }t          r;t          d|rdpdd|d
t          j        t          |                               ||                     t!          |          |          z  }t          rAt          dt!          |          dt          j        t          |                               |r t          |          |z   }|s
|| j        z  }||z   }|s
|| j        z  }|st          |          }|S )Nr1   TzError encoding z:    zencoded zconstructed  zvalue z into 
ifNotEmptyFz;overridden encoding mode into definitive for primitive typeztag z octets (tag + payload) into )tagSetr:   getr   	enumerate	superTagsr   r/   sysexc_infoLOGr&   r   hexdumpr
   r3   r.   eooOctetsSubstrateeooIntegerSubstrate)r   r6   r7   r8   r9   r?   r$   r   isOctetsr1   idxr   defModeOverrideexcheaders                  r%   r   zAbstractItemEncoder.encodeM   s   \FF_F  	1A1Ax2 2.52 2.I}h ++i..	'(899 5	: 5	:NC%O  [C9I9Ix: :6=: :6I}hh ( C C C,..C++3855#a&&AC C CC
  C%8.>B>>yy    ! %] %w{{<QV7W7W %$$$$$ [&*O [YZZZ^^I}==F B!4n:::IIu}Yv->->???A B B B d''IHHHF G	NNNNEM)F2C2C$D$D$DF G G G  
:%f--	9	& 9!88I #Y.	& :!99I 	-!),,Is   &A;;AB>)NN)__name__
__module____qualname__r-   rH   r
   rG   r&   r3   r:   r   r)   r'   r%   r   r      sz         !"#6774 4 4(6 6 6(3 3 3L L L L L Lr'   r   c                       e Zd Zd ZdS )EndOfOctetsEncoderc                     t           ddfS NFTr   r5   s        r%   r:   zEndOfOctetsEncoder.encodeValue       UD  r'   NrN   rO   rP   r:   r)   r'   r%   rR   rR      s#        ! ! ! ! !r'   rR   c                       e Zd ZdZd ZdS )BooleanEncoderFc                     |rdpdddfS )N)r<   r   Fr)   r5   s        r%   r:   zBooleanEncoder.encodeValue   s    ~%ue33r'   NrN   rO   rP   r-   r:   r)   r'   r%   rY   rY      s)        4 4 4 4 4r'   rY   c                       e Zd ZdZdZd ZdS )IntegerEncoderFc                     |dk    r-t           rt          d| j        rdpdz             | j        rdS dS t          t          |          d          d	dfS )
Nr   z#encoding %spayload for zero INTEGERzno r=   )r)   FF)r[   FFT)signedF)rE   supportCompactZeror   intr5   s        r%   r:   zIntegerEncoder.encodeValue   sv    A:: 9+5;   
 & *''))E

4000%==r'   N)rN   rO   rP   r-   ra   r:   r)   r'   r%   r^   r^      s/        > > > > >r'   r^   c                       e Zd Zd ZdS )BitStringEncoderc                    ||                     |          }t          |          }|dz  r|d|dz  z
  z  }n|}|                    dd          }|rt          |          |dz  k    r<|                                }t	          t          |          dz  |z
            |z   ddfS t
          rt          d|z             |j        j        }	|	rt          j	        |	|	          }
nt          j	                    }
|                     |
          }d}t          }||k     r3|}t          ||dz  z   |          }| ||||         |fi |z  }||k     3|ddfS )Nr+   maxChunkSizer   FT#encoding into up to %s-octet chunksr?   )cloner.   r@   asOctetsr   rE   r?   baseTagr   TagSetr   min)r   r6   r7   r8   r9   valueLengthalignedValuerf   r$   rk   r?   stopstarts                r%   r:   zBitStringEncoder.encodeValue   s   NN5))E%jj? 	! Qq%89LL L{{>155 	Vs<00L14DDD$--//I3y>>A-;<<yH%QUUU 	F5DEEE,&  	"Z11FF Z\\F#)))88	[  Eu|a//==D<d
#;XQQQQQI [  
 $$$r'   NrW   r)   r'   r%   rd   rd      s#        %% %% %% %% %%r'   rd   c                       e Zd Zd ZdS )OctetStringEncoderc                    ||                                 }n9t          |          s(|                    |                                           }n|}|                    dd          }|rt	          |          |k    r|ddfS t
          rt          d|z             |N|j        j        }|rt          j	        ||          }nt          j	                    }|                    |          }n\t          |          sM|j        j        }|rt          j	        ||          }nt          j	                    }|                    |          }d}	t          }	 ||	|	|z            }
|
sn| ||
|fi |z  }|	|z  }	#|ddfS )Nrf   r   FTrg   rh   )rj   r   ri   r@   r.   rE   r?   rk   r   rl   r   )r   r6   r7   r8   r9   r$   rf   rk   r?   poschunks              r%   r:   zOctetStringEncoder.encodeValue   s   ((IIe$$ 	 u--6688II I{{>155 	*s9~~==eT)) 	F5DEEE l*G  &GW55 {{&{11HHe$$ 
	5o-G  &GW55 ~~V~44H		 #cL001E 5(>>g>>>I<C	  $$$r'   NrW   r)   r'   r%   rs   rs      s#        8% 8% 8% 8% 8%r'   rs   c                       e Zd ZdZd ZdS )NullEncoderFc                     t           ddfS rT   rU   r5   s        r%   r:   zNullEncoder.encodeValue%  rV   r'   Nr\   r)   r'   r%   rx   rx   "  s)        ! ! ! ! !r'   rx   c                       e Zd ZdZd ZdS )ObjectIdentifierEncoderFc                    ||                     |          }|                                }	 |d         }|d         }n%# t          $ r t          j        d|          w xY wd|cxk    rdk    r_n n\|dk    r|dz   f|dd          z   }ns|dk    r|f|dd          z   }n^|dk    r|dz   f|dd          z   }nFt          j        d|          |dk    r|dz   f|dd          z   }nt          j        d|          d	}|D ]^}	d|	cxk    rd
k    r
n n||	fz  }|	d
k    r&|	d
z  f}
|	dz  }	|	rd|	d
z  z  f|
z   }
|	dz  }	|	||
z  }Et          j        d|	d|          |ddfS )Nr   r<   z
Short OID '   (      P   z Impossible first/second arcs at r)   r   r   r   zNegative OID arc  at F)ri   asTuple
IndexErrorr   r/   )r   r6   r7   r8   r9   oidfirstsecondoctetssubOidress              r%   r:   z#ObjectIdentifierEncoder.encodeValue,  s'   NN5))Emmoo	?FEVFF 	? 	? 	?##ee$=>>>	? "zz{ns122w.!i#abb')!{ns122w.''PUPU(WXXXaZZB;.3qrr7*CC ##EE$STTT  	W 	WFF!!!!c!!!!!6)##}&1 !6D=13c9CqLF  !
 # ''vvvuu(UVVVue##s	   > "A Nr\   r)   r'   r%   r{   r{   )  s)        5$ 5$ 5$ 5$ 5$r'   r{   c                       e Zd ZdZd ZdS )RelativeOIDEncoderFc                 $   ||                     |          }d}|                                D ]^}d|cxk    rdk    r
n n||fz  }|dk    r&|dz  f}|dz  }|rd|dz  z  f|z   }|dz  }|||z  }Et          j        d|d|          |ddfS )	Nr)   r   r   r   r   zNegative RELATIVE-OID arc r   F)ri   r   r   r/   )r   r6   r7   r8   r9   r   r   r   s           r%   r:   zRelativeOIDEncoder.encodeValueg  s    NN5))E mmoo 	` 	`FF!!!!c!!!!!6)##}&1 !6D=13c9CqLF  !
 # ''PVPVPVX]X](^___ue##r'   Nr\   r)   r'   r%   r   r   d  s)        $ $ $ $ $r'   r   c                   8    e Zd ZdZdZed             Zd Zd ZdS )RealEncoderFr   c                 v   d\  }}| dk     rd}|dk     rd}| |z  } |dk    r1| dt          |          dz  |z  z  z  } t          |          dz  |z  }n6|dk    r0| dt          |          dz  |z  z  z  } t          |          dz  |z  }	 t          |           | k    r| |z  } |d
z  }	 |t          |           ||fS )N)r<   r<   r   r+   r            Tr<   )absrb   )mencbaseemsess        r%   _dropFloatingPointzRealEncoder._dropFloatingPoint  s    Bq55Bq55B	Ra<<s1vvzB''AA!b AA]]s1vvzB''AA!b A	1vv{{WQ3q667A%%r'   c           
         |\  }}}g d}|j         |v r|                     ||j         |          S | j         |v r|                     || j         |          S |||g}|||g}d}d}	t          d          }t          d          D ]}
|                     ||
         ||
         ||
                   \  }||
<   ||
<   ||
<   t	          ||
                   t	          |          k     s2t	          ||
                   t	          |          k    r1||
         |k     r%||
         }t          ||
                   }||
         }	t          rt          d|	d|d|d	|           |||	|fS )
N)r   r+   r   r<   r   infr   z(automatically chosen REAL encoding base z, sign z, mantissa z, exponent )
binEncBaser   floatranger   rb   rE   )r   r6   r   br   encBasemantissaexponentsignr   is              r%   _chooseEncBasezRealEncoder._chooseEncBase  s   1a**w&&**1e.>BBB_''**1doqAAA q!9q!9%LLq 		% 		%A !33HQKXVW[YYTa[QZa[8A;#a&&((S!-=-=Q-G-GHUVKZ[OOQK$$!!* 	7C!($$$116 7 7 7 Q""r'   c                 l   ||                     |          }|j        rdS |j        rdS |\  }}}|s
t          ddfS |dk    r6t          rt	          d           t          d||dk    rd	pd
|fz            ddfS |dk    r d}|                     |          \  }	}}
}|	dk     r|dz  }|
dk    r|dz  dk    r|dz  }|dz  }|dz  dk    nI|
dk    r"|dz  dk    r|dz  }|dz  }|dz  dk    |dz  }n!|dz  dk    r|dz  }|dz  }|dz  dk    |dz  }d}|dz  dk    r|dz  }|dz  }|dz  dk    |dk    rt          j        d          ||dz  z  }t          }|dk    s|dk    rt          |dz            }n|dvrt          |dz            |z   }|dz  }|dv|dk    r,|r*t          |d                   dz  rt          d          |z   }|dk    r,|r*t          |d                   dz  st          d          |z   }t          |          }|dk    rt          j        d          |dk    rn2|dk    r|dz  }n&|dk    r|dz  }n|dz  }t          |dz            |z   }t          }|rt          |dz            |z   }|dz  }|t          |          |z   |z   }|ddfS t          j        d|z            )N))@   FF))A   FFFT
   z!encoding REAL into character formz%dE%s%dr   +r=   r   r   r   r<   r+   r   r   r      r       zScale factor overflowr   r*   )r   r   zReal exponent overflowzProhibited Real base %s)ri   	isPlusInf
isMinusInfr   rE   r   r   r   r/   r   r	   r.   )r   r6   r7   r8   r9   r   r   r   for   r   sfeonpor$   s                   r%   r:   zRealEncoder.encodeValue  s   NN5))E? 	)(( 	)((1a 	%$$77 97888MQQ30D"a,HHII5RVVV!VVB $ 3 3E : :B7AAvvd
 !||#gll!GAFA #gll A#gll!GAFA #gll d
 #gll!GAFA #gll d
Bc'Q,,aa c'Q,, Avv'(?@@@"'MBBAvvbQX&& w&& T**R/B!GA w&& 66b6WRU^^d%:6 bB77r772a5>>D+@7 +BBA4xx'(@AAAAvvaaaa aQX&&+B QX&&+a    b(2-IeT)) #$=$ABBBr'   N)	rN   rO   rP   r-   r   staticmethodr   r   r:   r)   r'   r%   r   r     sa        J& & \&6# # #BcC cC cC cC cCr'   r   c                       e Zd ZdZd ZdS )SequenceEncoderFc           
      v   t           }|                    d| j                  }t          rt          d|rdpdz             |n|j        }|r||j        }t          |                                          D ]7\  }	}
|ry||	         }|j        r!|
j	        st          rt          d|           8|j
        r%|
|j        k    rt          rt          d|           d|r|                    |j                   |r|j        r|j        }|j        t          j        j        t          j        j        fv r"| ||
|fi t%          ||j                  z  } ||
|fi |}|                    |
          r||z  }| |||fi |z  }t          rt          d	|           *| ||
|fi |z  }9nt          |j        j                  D ]j\  }	}	 ||j                 }
n-# t,          $ r  t/          j        d
|j        d|          w xY w|j        r#|j        |vrt          rt          d|           l|j
        r%|
|j        k    rt          rt          d|           |r|                    |j                   |j        }|j        r|j        t          j        j        t          j        j        fv r#| ||
|fi t%          ||j                  z  } ||
|fi |}|                    |
          r||z  }5| |||fi |z  }t          rt          d	|           ]| ||
|fi |z  }l|ddfS )NomitEmptyOptionalsz$%sencoding empty OPTIONAL componentsznot r=   z not encoding OPTIONAL component znot encoding DEFAULT component )r>   )wrapTypewrapped with wrap type zComponent name "z" not found in T)r   r@   r   rE   isInconsistentcomponentTyperA   values
isOptionalisValueisDefaulted
asn1ObjectupdateopenTypetypeIdr   SetOf
SequenceOfdictisSameTypeWith
namedTypesnameKeyErrorr   r/   )r   r6   r7   r8   r9   r$   r   inconsistencyr   rJ   	component	namedTyper   rv   componentSpecs                  r%   r:   zSequenceEncoder.encodeValue1  s   	$[[ $"9; ;  	:6&167R9 : : : !0M $##,J"+ELLNN";"; *K *KY H *3I + !I4E ! UC		 STTT  , !i>R1R1R TCyy RSSS ) H)2FGGG  K)"4 K(3H J-t/E+G G G "YY )8&R &R"&w9O"P"P"P&R &R R		
 !*	)X I I I I#229== O%.II &5()N)Ng)N)NNI" O #88$M N N N 9h!J!J'!J!JJIIU*K\ #,H,B,M"N"N /P /PY0 %in 5II 0 0 0++!-/ 0 0 00 ' IN%,G,G QIIOPPP( Y):N-N-N P99NOOO% DNNi.BNCCC ) 4 % P$+ J-t/E0G G G "YY )=&W &W"&w9T"U"U"U&W &W W		
 !*	)] N Ng N N(77	BB T%.II &5-)S)S7)S)SSI" T #==$R S S S 9m!O!Ow!O!OOII$$$s   G*H	N)rN   rO   rP   r   r:   r)   r'   r%   r   r   ,  s.        r% r% r% r% r%r'   r   c                       e Zd Zd Zd ZdS )SequenceOfEncoderc                 <   ||j         }|r|n|j        }g }|                    dd           }t          |          D ]^\  }}	 ||	|fi |}
|8|                    |	          s# ||
|fi |}
t
          rt          d|           |                    |
           _|S )Nr   r   )r   r   poprA   r   rE   append)r   r6   r7   r8   r9   r   chunksr   rJ   r   rv   s              r%   _encodeComponentsz#SequenceOfEncoder._encodeComponents  s    !0M $##$  -H;;z400'.. 	! 	!NCIi==W==E$ //	:: % "	%==W== CCxxABBBMM%    r'   c                 P     | j         |||fi |}t          j        |          ddfS )NT)r   r   join)r   r6   r7   r8   r9   r   s         r%   r:   zSequenceOfEncoder.encodeValue  sC    ''8Y3 3*13 3 y  $,,r'   N)rN   rO   rP   r   r:   r)   r'   r%   r   r     s2          :- - - - -r'   r   c                       e Zd Zd ZdS )ChoiceEncoderc                 &   |                                 }nmfd|j        j        D             }t          |          dk    r*t	          j        t          |          rdpdd          |d         }|         }||         } |||fi |ddfS )Nc                 0    g | ]}|j         v |j         S r)   )r   ).0r   r6   s     r%   
<listcomp>z-ChoiceEncoder.encodeValue.<locals>.<listcomp>  s1     1 1 1	!%// ^///r'   r<   z	Multiple zNone z components for Choice at r   T)getComponentr   r   r.   r   r/   )r   r6   r7   r8   r9   r   namesr   s    `      r%   r:   zChoiceEncoder.encodeValue  s    **,,II1 1 1 1X5K5V 1 1 1E5zzQ'CPUJJLf[fLqjqLqLqsxsx(yzzz8DdI~HyH8888$DDr'   NrW   r)   r'   r%   r   r     s(        E E E E Er'   r   c                       e Zd Zd ZdS )
AnyEncoderc                     ||                                 }n6t          |          s'|                    |                                           }||                    dd           dfS )Nr1   T)rj   r   ri   r@   r5   s        r%   r:   zAnyEncoder.encodeValue  sd    NN$$EEe$$ 	5NN5))2244E'++i666<<r'   NrW   r)   r'   r%   r   r     s#        = = = = =r'   r   c                   2    e Zd ZdZdZeZeZeefdZddZ	dS )SingleItemEncoderNc                 b    |t           ur|n| j        | _        |t           ur|n| j        | _        d S N)r   TAG_MAP_tagMapTYPE_MAP_typeMap)r   tagMaptypeMapignoreds       r%   __init__zSingleItemEncoder.__init__8  s4    !'x!7!7vvT\#*(#:#:r'   c           
      6   	 ||j         }n|j         }n&# t          $ r t          j        d|d          w xY wt          rrt	          d|                    dd           rdpdd|                    d	d
          d|d u r|                                p|                                d|           | j        |                    | j                   | j	        |                    | j	                   	 | j
        |         }t          rt	          d|j        j        d|           n# t          $ r ||j        }n|j        }t          j        |j        |j                  }	 | j        |         }n)# t          $ r t          j        d|d|d          w xY wt          rt	          d|j        j        d|           Y nw xY w |j        ||| fi |}t          r8t	          d|dt)          |          dt+          j        |          d           |S )NzValue z4 is not ASN.1 type instance and "asn1Spec" not givenzencoder called in r1   Tinr=   zdef mode, chunk size rf   r   z
 for type z	, value:
)r1   )rf   zusing value codec z chosen by type ID zNo encoder for z ()z chosen by tagSet zcodec z built z octets of substrate: z
encoder completed)r   AttributeErrorr   r/   rE   r@   prettyPrintTypefixedDefLengthModer   fixedChunkSizer   	__class__rN   r   r?   r   rl   rk   r   r   r.   r   rF   )	r   r6   r7   r9   r   concreteEncoderr?   
baseTagSetr$   s	            r%   __call__zSingleItemEncoder.__call__<  s   	K! 	K 	K 	K##BG%%%J K K K	K  	DC$+KK	4$@$@ @ IT OR O O 'NA > > > > (D 0 LU5J5J5L5L !; ( 8 8 : :!; !;<AE	C D D D ".NN4#:N;;;*NN(;N<<<	I"mF3O I+5>>>H I I I  	I 	I 	I! FNFNCCJT"&,z": T T T''EEE666(RSSST  I+5>>>H I I I!	I& +O*5(DLLGLL	 	:C.I$}Y77779 : : : s2    #783D, ,:G'E54G5&F)GGr   )
rN   rO   rP   r   r   r   r   r   r   r   r)   r'   r%   r   r   1  sZ        NGH& N N N N9 9 9 9 9 9r'   r   c                   &    e Zd ZeZeefdZddZdS )r   c                 0     | j         d||d|| _        d S )N)r   r   r)   )SINGLE_ITEM_ENCODER_singleItemEncoder)r   r   r   r9   s       r%   r   zEncoder.__init__{  s6    ":$": #
7#
 #
.5#
 #
r'   Nc                 "     | j         |fd|i|S )Nr7   )r   )r   pyObjectr7   r9   s       r%   r   zEncoder.__call__  s1    &t&4 4'4+24 4 	4r'   r   )rN   rO   rP   r   r   r   r   r   r)   r'   r%   r   r   x  sG        +& 
 
 
 

4 4 4 4 4 4r'   )QrC   pyasn1r   r   pyasn1.codec.berr   pyasn1.compatr   pyasn1.compat.integerr   pyasn1.compat.octetsr   r	   r
   r   r   r   pyasn1.typer   r   r   r   __all__registerLoggeerN   DEBUG_ENCODERrE   objectr   rR   rY   r^   rd   rs   rx   r{   r   r   r   r   r   r   endOfOctetsr?   BooleanInteger	BitStringOctetStringNullObjectIdentifierRelativeOID
EnumeratedRealr   r   Choice
UTF8StringNumericStringPrintableStringTeletexStringVideotexString	IA5StringGraphicStringVisibleStringGeneralStringUniversalString	BMPStringObjectDescriptorGeneralizedTimeUTCTimer   r   SetSequenceAnyr   r   r   r   r   r   r)   r'   r%   <module>r(     s	   


                         " " " " " " * * * * * *: : : : : : : : : : : : : : : :                        h
e85+>???    &   D! ! ! ! !, ! ! !
4 4 4 4 4( 4 4 4> > > > >( > > >(&% &% &% &% &%* &% &% &%R:% :% :% :% :%, :% :% :%z! ! ! ! !% ! ! !8$ 8$ 8$ 8$ 8$1 8$ 8$ 8$v$ $ $ $ $, $ $ $BdC dC dC dC dC% dC dC dCNw% w% w% w% w%) w% w% w%t"- "- "- "- "-+ "- "- "-JE E E E E' E E E$= = = = =# = = =O..00L)) 	L)) 	N++--	
 	//11 	Ikkmm 	 "9"9";"; 	//11 	ONN,, 	Ikkmm 	O--// 	J((** 	K  	O..00!" 	1133#$ 	!3!3!5!5%& 	1133'( 	 2 2 4 4N--//113311331133!3!3!5!5N--//
"$6$6$8$8
!#5#5#7#7
N--//= D!L))!L))! 	N++--! 	//11	!
 	Ikkmm! 	 "9"9";";! 	//11! 	ONN,,! 	Ikkmm! 	HO__&&! 	J((**! 	M//++! 	O--//! 	K!  	HOZZ\\!!$ 	O..00%!& 	1133'!( 	!3!3!5!51133 2 2 4 4N--//113311331133!3!3!5!5N--//
"$6$6$8$8
!#5#5#7#7
N--//A! !H 

D D D D D D D DN
4 
4 
4 
4 
4f 
4 
4 
4@ 
r'   