Bug: incorrect parameter to timer_settime dumps OS

During our porting exercise, we discovered this bug. When we sepcified an
incorrect value for the flags (it was set to TIMER_ABSTIME + 1), the OS
hung.

Hi Richard,

I am unable to reproduce this on a 6.3.0 system. Do you have an
example? Which version of QNX are you running?

By OS hang, do you see a kernel shutdown or does the system become
unresponsive?

Cheers,

Colin

Richard Doucet wrote:

During our porting exercise, we discovered this bug. When we sepcified an
incorrect value for the flags (it was set to TIMER_ABSTIME + 1), the OS
hung.


cburgess@qnx.com

Having a test example is a bit complicated, as this is intergrated deep in
our software with a lot of dependencies.

We are running 6.3.0. I was debugging the application at the time, via
Momentics on Windows. After executing the timer_settime() call, the
computer hung. We didn’t see any kernel shutdown (it normally runs Photon,
if that matters).

“Colin Burgess” <cburgess@qnx.com> wrote in message
news:cfd381$em2$1@inn.qnx.com

Hi Richard,

I am unable to reproduce this on a 6.3.0 system. Do you have an
example? Which version of QNX are you running?

By OS hang, do you see a kernel shutdown or does the system become
unresponsive?

Cheers,

Colin

Richard Doucet wrote:
During our porting exercise, we discovered this bug. When we sepcified
an
incorrect value for the flags (it was set to TIMER_ABSTIME + 1), the OS
hung.


\

cburgess@qnx.com

Examining the code to the kernel call timer_settime, the only reference
to the flags is

if ( flags & TIMER_ABSTIME )

so I’m not sure that the TIMER_ABSTIME + 1 would cause anything to go awry.

Is this reproduceable?

One things to check might be that you are not leaking timers. After a
while this can cause the timer servicing code to take longer than a
system tick, which results in the system staying in the kernel forever.

What is the output of pidin timers before the crash?

Colin

Richard Doucet wrote:

Having a test example is a bit complicated, as this is intergrated deep in
our software with a lot of dependencies.

We are running 6.3.0. I was debugging the application at the time, via
Momentics on Windows. After executing the timer_settime() call, the
computer hung. We didn’t see any kernel shutdown (it normally runs Photon,
if that matters).

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:cfd381$em2$> 1@inn.qnx.com> …

Hi Richard,

I am unable to reproduce this on a 6.3.0 system. Do you have an
example? Which version of QNX are you running?

By OS hang, do you see a kernel shutdown or does the system become
unresponsive?

Cheers,

Colin

Richard Doucet wrote:

During our porting exercise, we discovered this bug. When we sepcified

an

incorrect value for the flags (it was set to TIMER_ABSTIME + 1), the OS
hung.


\

cburgess@qnx.com
\


cburgess@qnx.com

Richard Doucet wrote:

Having a test example is a bit complicated, as this is intergrated deep in
our software with a lot of dependencies.

We are running 6.3.0. I was debugging the application at the time, via
Momentics on Windows. After executing the timer_settime() call, the
computer hung. We didn’t see any kernel shutdown (it normally runs Photon,
if that matters).

What is the event associated with the timer?

\

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>

A pulse, setup as follows:

event.sigev_notify = SIGEV_PULSE;
event.sigev_coid = itsChannel;
event.sigev_priority = getprio( 0 );
event.sigev_code = itsCode;
event.sigev_value.sival_ptr = (void *) itsValue;

itsCode = 7, itsValue is 1. itsChannel is a valid channel returned
after a ConnectAttach()

What is the rate of the timer? Are there any other timers with pulse
events firing at the same time?

\

Cheers,
Adam

QNX Software Systems Ltd.
[ amallory@qnx.com ]

With a PC, I always felt limited by the software available.
On Unix, I am limited only by my knowledge.
–Peter J. Schoenster <pschon@baste.magibox.net>

“Colin Burgess” <cburgess@qnx.com> wrote in message
news:cfd4h2$em2$2@inn.qnx.com

Examining the code to the kernel call timer_settime, the only reference
to the flags is

if ( flags & TIMER_ABSTIME )

so I’m not sure that the TIMER_ABSTIME + 1 would cause anything to go
awry.

Is this reproduceable?

Yes

One things to check might be that you are not leaking timers. After a
while this can cause the timer servicing code to take longer than a
system tick, which results in the system staying in the kernel forever.

No, this wouldn’t have happen, as I only have a single timer in my

application. pidin timers after the fix confirmed this (see attachment
junk)

What is the output of pidin timers before the crash?

I suspect similar to the attached file (junk). Perhaps it’s the value of
the timer which is causing a problem, as it would never expire ( expire at
1,0, repeat 1,0). At any rate, the other attachment, TimerBug.zip, will
cause the computer to “hang” as well. Again, I’m running this application
from Momentics on Windows, not from RTP.

Colin

Richard Doucet wrote:
Having a test example is a bit complicated, as this is intergrated deep
in
our software with a lot of dependencies.

We are running 6.3.0. I was debugging the application at the time, via
Momentics on Windows. After executing the timer_settime() call, the
computer hung. We didn’t see any kernel shutdown (it normally runs
Photon,
if that matters).

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:cfd381$em2$> 1@inn.qnx.com> …

Hi Richard,

I am unable to reproduce this on a 6.3.0 system. Do you have an
example? Which version of QNX are you running?

By OS hang, do you see a kernel shutdown or does the system become
unresponsive?

Cheers,

Colin

Richard Doucet wrote:

During our porting exercise, we discovered this bug. When we sepcified


an

incorrect value for the flags (it was set to TIMER_ABSTIME + 1), the OS
hung.


\

cburgess@qnx.com



\

cburgess@qnx.com

begin 666 junk.dat
M(" @("!P:60@=&ED(&YA;64@(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @#0H@(" @(" @,2 @(#$@+W-Y
M<R]P<F]C;G1O+6EN<W1R( T*“2 @(” @," @(" P(" @(# @4D5!3"!802T@
M(# O,"!054Q312 P>#0P,# P,# P.C(U-2 P.C -“B @(” @(" Q(" @,B O
M<WES+W!R;V-N=&\M:6YS=’(@#0H@(" @(" @,2 @(#,@+W-Y<R]P<F]C;G1O
M+6EN<W1R( T*(" @(" @(#$@(" T("]S>7,O<’)O8VYT;RUI;G-T<B -“B @
M(” @(" Q(" @-2 O<WES+W!R;V-N=&\M:6YS=’(@#0H@(" @(" @,2 @(#8@
M+W-Y<R]P<F]C;G1O+6EN<W1R( T*(" @(" @(#$@(" W("]S>7,O<’)O8VYT
M;RUI;G-T<B -“B @(” @(" Q(" @." O<WES+W!R;V-N=&\M:6YS=’(@#0H@
M(" @(" @,2 @(#D@+W-Y<R]P<F]C;G1O+6EN<W1R( T*(" @(" @(#$@(#$P
M("]S>7,O<’)O8VYT;RUI;G-T<B -“B @(” @(" R(" @,2!S8FEN+W1I;FET
M(" @(" @(" @#0H@(" @(" @,R @(#$@<’)O8R]B;V]T+W-L;V=G97(@( T*
M(" @(" @(#4@(" Q(’!R;V,O8F]O="]P8VDM8FEO<R -“B @(” @(" V(" @
M,2!R;V,O8F]O="]D979B+65I9&4@#0H)(" @(" P(" @(# @(" @,"!214%,
M(“TM+2 @,”\P(%!53%-%(#!X-# P,# P,#(Z,C$@,’@S.C -"@D@(" @(#$@
M(" @," @(" P(%)%04P@+2UA(" R,#(P,#<O,C4P,# P(%!53%-%(#!X-# P
M,# P,#4Z+3$@,’@Q.C -"@D@(" @(#(@(" @," @(" P(%)%04P@6"TM(" P
M+S @4%5,4T4@,’@T,# P,# P-3HM,2 P>#(Z, T*(" @(" @(#8@(" R(’)O
M8R]B;V]T+V1E=F(M96ED92 -“B @(” @(" V(" @,R!R;V,O8F]O="]D979B
M+65I9&4@#0H@(" @(" @-B @(#0@<F]C+V)O;W0O9&5V8BUE:61E( T*(" @
M(" @(#8@(" U(’)O8R]B;V]T+V1E=F(M96ED92 -“B @(” @(" V(" @-B!R
M;V,O8F]O="]D979B+65I9&4@#0H@(" @(" @-B @(#@@<F]C+V)O;W0O9&5V
M8BUE:61E( T*(" @(" @(#<@(" Q(’!R;V,O8F]O="]D979C+6-O;B -"@D@
M(" @(# @(" @," @(" P(%)%04P@6"TM(" P+S @4%5,4T4@,’@T,# P,# P
M,CHR," P>#$Z, T*(" @(#0Q,#0@(" Q(’-B:6XO<&EP92 @(" @(" @(" -
M"B @(" T,3 T(" @,B!S8FEN+W!I<&4@(" @(" @(" @#0H@(" @-#$P-" @
M(#,@<V)I;B]P:7!E(" @(" @(" @( T*(" @,3(R.3(@(" Q(’-B:6XO;7%U
M975E(" @(" @(" -“B @(#<S-S,X(” @,2!S8FEN+V1E=F,M<V5R.#(U," @
M#0H)(" @(" P(" @(# @(" @,"!214%,(%@M+2 @,"\P(%!53%-%(#!X-# P
M,# P,#(Z,C0@,’@Q.C -“B @(#<S-S0Q(” @,2!S8FEN+V1E=F,M<&%R(" @
M(" @#0H)(" @(" P(" @(# @(" @,"!214%,(“TM+2 @,”\P(%!53%-%(#!X
M-# P,# P,#(Z,C @,’@Q.C -“B @(#<S-S0Q(” @,B!S8FEN+V1E=F,M<&%R
M(" @(" @#0H@(" W,S<T,R @(#$@<V)I;B]I;RUN970@(" @(" @( T*“2 @
M(” @," @(" P(" @(# @4D5!3" M+2T@(# O,"!324=.04Q?0T]$12 Q-B P
M>&9F83 Z,’@U860Y#0H)(" @(" Q(" @(# @(" @,"!214%,(%@M82 @,S@V
M-3(O-3 P,# @4%5,4T4@,’@T,# P,# P.3HR," P>#$Z,‘AE#0H)(" @(" R
M(" @(# @(" @,"!214%,(%@M82 @-#4W-C0Y+S,P,# P,# @4%5,4T4@,’@T
M,# P,# Q-3HQ," P>#(Z,‘AA#0H)(" @(" S(" @(# @(" @,"!214%,(%@M
M82 @-CDW-C$S+S,P,# P,# @4%5,4T4@,’@T,# P,# Q.3HQ," P>#(Z,‘AA
M#0H)(" @(" T(" @(# @(" @,"!214%,(“TM82 @,C(W,#@Q,34O,”!054Q3
M12 P>#8Z.2 P>#$Z, T*“2 @(” @-2 @(" P(" @(# @4D5!3"!8+6$@(#$W
M-S,U-B\R,# P,# @4%5,4T4@,’@T,# P,# R,3HR," P.C -“B @(#<S-S0S
M(” @,B!S8FEN+VEO+6YE=" @(" @(" @#0H@(" W,S<T,R @(#,@<V)I;B]I
M;RUN970@(" @(" @( T*(" @-S,W-#,@(" T(’-B:6XO:6\M;F5T(" @(" @
M(" -“B @(#<S-S0S(” @-2!S8FEN+VEO+6YE=" @(" @(" @#0H@(" W,S<T
M,R @(#8@<V)I;B]I;RUN970@(" @(" @( T*(" @-S,W-#,@(" W(’-B:6XO
M:6\M;F5T(" @(" @(" -“B @(#<S-S0S(” @."!S8FEN+VEO+6YE=" @(" @
M(" @#0H@(" W,S<T,R @(#D@<V)I;B]I;RUN970@(" @(" @( T*(" Q,#8U
M,30@(" Q(‘5S<B]S8FEN+W-P;V]L97(@(" -“B @,3(V.3@W(” @,2!S8FEN
M+V1E=F(M9F1C(" @(" @#0H)(" @(" P(" @(# @(" @,"!214%,(“TM+2 @
M,”\P(%!53%-%(#!X-# P,# P,#(Z,C$@,’@S.C!X8C S-3@S,30-"@D@(" @
M(#$@(" @," @(" P(%-/1E0@6"TM(" P+S @4%5,4T4@,’@T,# P,# P,CHR
M,2 P>#0Z, T*“2 @(” @,B @(" P(" @(# @4D5!3" M+2T@(# O,"!054Q3
M12 P>#0P,# P,# U.BTQ(#!X,3HP#0H)(" @(" S(" @(# @(" @,"!214%,
M(%@M+2 @,"\P(%!53%-%(#!X-# P,# P,#4Z+3$@,’@R.C -“B @,3(V.3@W
M(” @,B!S8FEN+V1E=F(M9F1C(" @(" @#0H@(#$R-CDX-R @(#,@<V)I;B]D
M979B+69D8R @(" @( T*(" Q,C8Y.#<@(" T(’-B:6XO9&5V8BUF9&,@(" @
M(" -“B @,3(V.3@W(” @-2!S8FEN+V1E=F(M9F1C(" @(" @#0H@(#$R-CDX
M-R @(#8@<V)I;B]D979B+69D8R @(" @( T*(" Q-#<T-C@@(" Q(’-B:6XO
M9&5V8RUP=‘D@(" @(" -"@D@(" @(# @(" @," @(" P(%)%04P@+2TM(" P
M+S @4%5,4T4@,’@T,# P,# P,CHR," P>#$Z, T*(" Q-34V-C4@(" Q('5S
M<B]S8FEN+VEN971D(" @(" -“B @,34Y-S8P(” @,2!U<W(O<V)I;B]Q8V]N
M;B @(" @#0H@(#$U.3<V," @(#(@=7-R+W-B:6XO<6-O;FX@(" @( T*(" Q
M-3DW-C @(" S('5S<B]S8FEN+W%C;VYN(" @(" -“B @,34Y-S8P(” @-"!U
M<W(O<V)I;B]Q8V]N;B @(" @#0H@(#$V,S@U.2 @(#$@=7-R+W-B:6XO<F%N
M9&]M(" @( T*(" Q-C,X-3D@(" R(‘5S<B]S8FEN+W)A;F1O;2 @(" -“B @
M,38S.#4Y(” @,R!U<W(O<V)I;B]R86YD;VT@(" @#0H@(#$W-C$T." @(#$@
M=7-R+W-B:6XO9’5M<&5R(" @( T*(" Q.3(U,S,@(" Q(&)I;B]L;V=I;B @
M(" @(" @(" -“B @,3DR-3,T(” @,2!B:6XO;&]G:6X@(" @(" @(" @#0H@
M(#$Y,C4S-2 @(#$@8FEN+VQO9VEN(" @(" @(" @( T*(" R,S<U.30@(" Q
M("]P:&]T;VXO8FEN+U!H;W1O;B -"@D@(" @(# @(" @," @(" P(%)%04P@
M+2UA(" R-# Q,R\P(%!53%-%(#!X-# P,# P,#,Z,C0@,#HP#0H@(#(V-C(V
M-R @(#$@+W!H;W1O;B]B:6XO<&AF;VYT( T*(" R-C8R-C<@(" R("]P:&]T
M;VXO8FEN+W!H9F]N=" -“B @,C@V-S(Y(” @,2!T;VXO8FEN+V9O;G1S;&5U
M=&@@#0H)(" @(" P(" @(# @(" @,"!214%,(“TM82 @,S8U-S(P-2\P(%!5
M3%-%(#!X-# P,# P,#(Z-B P.C!X. T*(” R.#8W,CD@(" R(‘1O;B]B:6XO
M9F]N=’-L975T:" -“B @,C@V-S(Y(” @,R!T;VXO8FEN+V9O;G1S;&5U=&@@
M#0H@(#(X-C<R.2 @(#0@=&]N+V)I;B]F;VYT<VQE=71H( T*(" S,34T,C$@
M(" Q(&]N+V)I;B]I;RUG<F%P:&EC<R -“B @,S$U-#(Q(” @,B!O;B]B:6XO
M:6\M9W)A<&AI8W,@#0H@(#,Q-30R,2 @(#,@;VXO8FEN+VEO+6=R87!H:6-S
M( T*(" S,S4Y,#(@(" Q(‘1O;B]B:6XO9&5V:2UH:7)U;B -"@D@(" @(# @
M(" @," @(" P(%)%04P@+2TM(" P+S @4TE’3D%,(#0Q#0H@(#,S-3DP,B @
M(#(@=&]N+V)I;B]D979I+6AI<G5N( T*(" S,S4Y,#(@(" S(‘1O;B]B:6XO
M9&5V:2UH:7)U;B -“B @,S0X,3<T(” @,2!B:6XO;&]G:6X@(" @(" @(" @
M#0H@(#<Y.#<T-2 @(#$@=7-R+W!H;W1O;B]B:6XO<’=M( T*(" X-#,X,#<@
M(" Q(’(O<&AO=&]N+V)I;B]S:&5L9B -"@D@(" @(# @(" @," @(" P(%)%
M04P@6"UA(" S-#8X,3(O-3 P,# P(%!53%-%(#!X-# P,# P,#(Z,3 @,‘AF
M83HP>&9F9F9F9F,-“B @.#0S.# W(” @,B!R+W!H;W1O;B]B:6XO<VAE;&8@
M#0H@(#@X,#8W,B @(#$@<&AO=&]N+V)I;B]B:V=D;6=R( T*(" X.# V-S,@
M(" Q(&AO=&]N+V)I;B]W;7-W:71C:" -“B @.#@P-C<T(” @,2!R+W!H;W1O
M;B]B:6XO<V%V97(@#0H@(#DQ-S4R." @(#$@<B]P:&]T;VXO8FEN+W!T97)M
M( T*(" Y,3<U,S(@(" Q(&)I;B]S:" @(" @(" @(" @(" -“B @.30R,3$U
M(” @,2!U<W(O<&AO=&]N+V)I;B]P9FT@#0H@(#DT,C$Q-B @(#$@=7-R+V)I
M;B]P:’)E;&%Y(" @( T*(" Y-#(Q,38@(" R(‘5S<B]B:6XO<&AR96QA>2 @
M(" -“B @.30R,3$V(” @,R!U<W(O8FEN+W!H<F5L87D@(" @#0H@(#DW-#@X
M-2 @(#$@+W!H;W1O;B]B:6XO4&AO=&]N( T*“2 @(” @," @(" P(" @(# @
M4D5!3" M+6$@(#$S-S Q-R\P(%!53%-%(#!X-# P,# P,#,Z,C0@,#HP#0H@
M,3 V-3 P," @(#$@=7-R+W!H;W1O;B]B:6XO<’=M( T*(#$Q,3 P-3<@(" Q
M(’(O<&AO=&]N+V)I;B]S:&5L9B -"@D@(" @(# @(" @," @(" P(%)%04P@
M6"UA(" Q,38R-#@O-3 P,# P(%!53%-%(#!X-# P,# P,#(Z,3 @,'AF83HP
M>&9F9F9F9F,-“B Q,3$P,#4W(” @,B!R+W!H;W1O;B]B:6XO<VAE;&8@#0H@
M,3$T-CDR,B @(#$@<&AO=&]N+V)I;B]B:V=D;6=R( T*(#$Q-#8Y,C,@(" Q
M(&AO=&]N+V)I;B]W;7-W:71C:" -“B Q,30V.3(T(” @,2!R+W!H;W1O;B]B
M:6XO<V%V97(@#0H@,3$X,S<X,B @(#$@<B]P:&]T;VXO8FEN+W!T97)M( T*
M(#$Q.#,W.#,@(" Q(&)I;B]S:" @(" @(" @(" @(" -“B Q,C X,S8V(” @
M,2!U<W(O<V)I;B]S;&]G9V5R(" @#0H@,3(Q,C0V,R @(#$@=7-R+W-B:6XO
M<VQO9V=E<B @( T*(#$R,38U-C @(" Q('5S<B]S8FEN+W-L;V=G97(@(" -
M"B Q,C(X.#0Y(" @,2!U<W(O<V)I;B]S;&]G9V5R(" @#0H@,3(R.#@T.2 @
M(#(@=7-R+W-B:6XO<VQO9V=E<B @( T*(#$S,3@Y-C,@(" Q(‘5S<B]P:&]T
M;VXO8FEN+W!E9" -“B Q,SDR-CDR(” @,2!U<W(O8FEN+W!H<F5L87D@(" @
M#0H@,3,Y,C8Y,B @(#(@=7-R+V)I;B]P:’)E;&%Y(" @( T*(#$S.3(V.3(@
M(" S(‘5S<B]B:6XO<&AR96QA>2 @(" -“B Q-#(U-#8R(” @,2 O<&AO=&]N
M+V)I;B]0:&]T;VX@#0H)(" @(" P(" @(# @(" @,"!214%,(“TM82 @,C@P
M,#@O,”!054Q312 P>#0P,# P,# S.C(T(# Z, T*(#$U,34U-S<@(" Q(‘5S
M<B]P:&]T;VXO8FEN+W!W;2 -“B Q-38P-C,T(” @,2!R+W!H;W1O;B]B:6XO
M<VAE;&8@#0H)(" @(" P(" @(# @(" @,"!214%,(%@M82 @,30V,C@R+S4P
M,# P,"!054Q312 P>#0P,# P,# R.C$P(#!X9F$Z,‘AF9F9F9F9C#0H@,34V
M,#8S-" @(#(@<B]P:&]T;VXO8FEN+W-H96QF( T*(#$U.3<T.3D@(" Q(’!H
M;W1O;B]B:6XO8FMG9&UG<B -“B Q-3DW-3 P(” @,2!H;W1O;B]B:6XO=VUS
M=VET8V@@#0H@,34Y-S4P,2 @(#$@<B]P:&]T;VXO8FEN+W-A=F5R( T*(#$V
M,S0S-3D@(" Q(’(O<&AO=&]N+V)I;B]P=&5R;2 -“B Q-C,T,S8P(” @,2!B
M:6XO<V@@(" @(" @(" @(" @#0H@,3DP-#8Y,R @(#$@<B]P:&]T;VXO8FEN
M+W!T97)M( T*(#$Y,#0W,#,@(" Q(&)I;B]S:" @(" @(" @(" @(" -“B Q
M.3 T-S T(” @,2!T;VXO8FEN+VAE;’!V:65W97(@#0H@,3DP.#@P,2 @(#$@
M;B]B:6XO=G-E<G9E<BYF:6QE( T*“2 @(” @," @(" P(" @(# @4D5!3"!8
M+2T@(# O,"!054Q312 P>#0P,# P,# R.CD@,‘AF83HP>&9F9F9F9F4-"@D@
M(" @(#$@(" @," @(" P(%)%04P@+2TM(" P+S @4%5,4T4@,’@T,# P,# P
M,CHQ," P>&9A.C!X9F9F9F9F9 T*(#$Y,3(X.#(@(" Q(‘5S<B]S8FEN+W-L
M;V=G97(@(" -“B Q.3$R.#@R(” @,B!U<W(O<V)I;B]S;&]G9V5R(" @#0H@
M,3DS,S,W." @(#$@=7-R+W-B:6XO<VQO9V=E<B @( T*(#$Y,S,S-S@@(" R
M(‘5S<B]S8FEN+W-L;V=G97(@(" -“B R,#4V,C,W(” @,2!U8V5T<C$P.3(R
M,S(X-#(P,3,@#0H)(" @(" P(" @(# @(" @,"!214%,(%@M82 @-# Y,S@U
M+S$P,# P,# @4%5,4T4@,’@T,# P,# P,CHQ," P>#<Z,’@Q#0H@,C U-C(U
M-" @(#$@<B]P:&]T;VXO8FEN+W!T97)M( T*(#(P-38R-3D@(" Q(&)I;B]S
M:" @(" @(" @(" @(" -“B R,#4V,C8P(” @,2!B:6XO<&ED:6X@(" @(" @
%(" @#0H
end

begin 666 TimerBug.zip
M4$L#!!0" (.Q0"S$````````````````5````5&5S=%1I;65R+RYC9'1P M<F]J96-TU5;!;MLP#+T/V#\(NL_>+D,/=@JDZ8 >LF58!^P6J!+M:I4E5Z*# M].]'RXZ;U,Z,[=0&,!)1[Y%/Y+/C[')?&;8#'[2S.?^4?.0,K'1*VS+G/V^_ M?+C@EXOW[S*IL/;N-TAD6N5<NBIYM/L$G3,AT0J21[JD\]"&.3$8?3+8(]@V M]1SI^^IZ+1[@AQ36@M]XMZ-MSUGMM,6<.U\F((VN^$5=IP>?&,±Q#2?ZY,
MX66CS6RUJXA:.P7F/ZK0^99/5OBGC?!AKM12’R&‘6DJ@Z’'M4:H9LM^;7I
MID9?-7C4$/A1DIBHHL87V@#;"=- SM?]>B@](E2):PZ%OB%$C!5CKRE"B' MG(4P80)+EJ)*Y+49G()Z*^]!/LS@A$2]:ZO;0I>-%TBC"2] O<@CQ"&I1;?= M7WS>EJ/$\QP_%I/.J<G2=H:3,WWIB[;5W4CO6ANB\"7@>)1Q\[;;G#I"QV-6 M5"0]@LF)N]SSEFW=[/ZJZ’D77^O3&1_5G#5^631JL[2D]!YFC=(4P)I*&
MP!E.0%=L]?>.[^(?LC2X] 95A-@!85H#!XDH6^(.HY/]"%<XI.6RL-"/L*
M6QMUO?7F>GBMSHWM96_.O_U!Q^-DP=4EO;0%GZ#) RS]02P<(&AM!
M!#" 4$L#!!0" (.Q0"S$````````````````2````5&5S=%1I;65R M+RYP<F]J96-TO57?3\(P$'[&Q/^![-U-WTPL(SC$F&@P<?I>NH-4NG;T!X'_ MWK;;#(.%F9CQL&5W_;[[KG?=%8UW.1MN02HJ^"BX"V^#(7 B,LI7H^ SG=W< M!^/X^@H54GP#T5-01-)"6[3U#A#'.<0I*)W2'"2*O.T6B,ASX#I&4?WEO%44 MY8VH82T,9=E'<19E9E8N:9]U1:-EJXX;M0"%42#,(-_8A0MJ7YQQF84E8
MKHR35Z4]0!DE+GLL]Y5G@-:PCX5<A4 8+90-E.DR(D@IY-SHPNAW+)4+[; U
M;XN9@7;F<Y(.7))>VC’3#ZZ,:_33LP;7D,GZ
N1S[DJMB[!1E%Y<:K@D8G M%?UKC7.;>"FZ-(P]NNZEME^@V\I,&& ^Q(SU($\YD>!.">[*HA]]X'C!8&*T M\/)MPDO,%/0@;11,88D-TUXZR5O5M31]B)?[GM7-O[AR]G+4^ MFH+0HYMS_ ME)?L-ZX/V;_..(J:<Q5%Q_.Z\M0#W0YO;214Z-)HGYRD7'1#W(,."6?&EG6? M$NMO)_M[W32OL!]02P<(T\EVC)<!```!!P``4$L#!!0" (.Q0"S$ M```````````2````5&5S=%1I;65R+TUA:V5F:6QE\_$,#K%U#@CEY<I,RTM) M35,(#')U#@T*=N7E@K%LBU*32XN*4_5RLT&JP(J<_?W</-U!:EP\@VQ5-%(R MBQ14-*#"FIJ\7*EY*9EI<"HS+SFG-"45I 2D01-$0PP'*@4`4$L'"&=69:!@ M````@P```%!+`P04``@`" #L4 LQ````````````````%0```%1E<W14:6UE M<B]497-T5&EM97(N8Z5576O;,!1]#^0_7#H8=F:<]*%/60=>&K8P-QU-6Q@, MC'&N'8$M!4E.EI7^]UU)=FJG+1OLOMB6SCFZ7[H>CX8#&,$55H(K+5.-L!%[ MT (4:JBWD()F%4K0FU0'(#C@KRV3AP`L3R%?*Z@5P;9UJ3 $N-LP1:"TVI9H M1!11$7(FE78<)V".. \O")$)HY'RM05*W*)FFM%)C&N4N[1TM#X^-&OCX6 X M>,=X5M9KA(]*KYD(-Y^Z:\;YDR5U4&..NBKDJQNUEHP[&=I<8\XXPO6/Y/M] MO)HGLYNK.0!TOI+KQ3)ZB!:QP>O#%HD"-3<!/)*3C5%NZTQ#8K-$W_8Y?=X? MC^ @:@F"<B"A0J72`AM6+5'!7M3E&@H!SQPR`B-E1MA</$%U2!IJHJ?&GRIE MW/.'`^=)XX1B!>Z0ZZ.*_9IV(<P676TQ:R!VP4'L5J+AU-PZ6SL4XR\1QK+- MWQ RV[60;CQ=2*4*&UZC!Y<PVZ2<8SF32"WL3?QVVX86VH@3+C3+#P1>+;[, M'UP)IR]0F7""@O0R'6F=9AMO>97$-[,H3I94\0`F0;\,;YKQ[E^QR?+N)EDM MJ*-F7Z/E<A[3.?Y+_[:2"<FTB:- ;;Z\UV"9H):^[#=NMWZ9R]2,POJ6W,ZC M^&YQ39&]MQKT;*MYS*3M@)#IA&YDC:'>)705Z81SITH-?#&90,7*TK0^ITU% MN^[&*MN?KXIPIT)<9U/H`]LA\+\'=G7>.-.%3"/+O'AM`@(PF;E-HL\K\P(? MX)S28W4#6-['\3%#XY$K] @B!2*WXZROZ0>P1]B3RS3G,F0[!'/IW5!HR8SW M!J-G9/IY\^VTI$K1&#70EME2S S!-*> 3]AM$OR&,6X\SP4AIU._,['L+30- MI(I;YZKGFOD]7;Z 9LAO%+E'[_YS%AHJR\%KZ)?4PO!H:D5Q%T*W_XFV/$<S M'!(+W5_$->])]W:].QKU/]>Y=W8BGTM1V=3:_/_D9QWWK#T9G]! W<2U- 5A M&'9=.T4UPZB'>Z+!^P=02P<(L%NDPOX"``!&!P``4$L#!!0`" `(`.Q0"S$` M```````````````3````5&5S=%1I;65R+V-O;6UO;BYM:Y55:X^:0!3][/R* MFZR;2(HV_;H)R:*BI?6U#&YLTY2@#"Q9!!?&;/??]\[P$%#;74,0[CWGW'N8 MUPW83V$&>+DQN$>>[%T>[MPH>H. Q2QU.?,@9;LD]0;D!L$,W)2YL&7\E;$8 M'A8;,&/.TMB-@'(WY2CD-<,&!K# +HEYFD01"F[?4(NCEL2-#3BDR8&E/&39 M@! 2^K''?'@8+1<3<TJ*?^T%%?PP&.R?"8N]T"=AO(N.'H-NKX HA*RI,3%G MAD:$3I6??Q=!ZEC+I:U\?MF[NS3)A-"-Z" L.\V$`2S/7J#7[?EAA'$(5!1X MU"U37]C.S*2VHJB!0L;&<#UUZ'HR,3>:$Y"9.:R]L2AC34BIUT^.O"8X7)NS ML6/_6!D*1 R_J]HN5O53EU/4=@?I><T[S6FQB@^7WXFQ65D&I>9R`1J(_M*, MO^)(B^<$1WGW!*XP_T5!G=%J/38MI24(,MT._B*=3J?)DS@A%OIXZ_9<_(KB MKBKH<&Y84\,YM:-]I(./-B!KXTR9CD;.HV&)>G=:MW?5?PU74ZM%U;)<S1I( M;Z#(2L;&MG0<S>'C2K>_PIVP)]88M'VKT(0J!=5<C-Y++:$EE5KOII;0DKH< M?J,YK2#6*">$,#@:36;ZE#IC.8^*M]:8**?,U;&L!JX$WG=[6S=CL;O'57Q_ M#N^('[19E?S_^&0VKC=>O%UHO,1=;;SZ!O!)NV14+I0KKG(;N0N 2^QS1@TU MKFSDM<]ZK1M L-BIJ)CQY1SGR3.+U8O#+*!RH<JI[8>QE_$TC /X+?"2F$_V M[+C-.$;5*HHUJQU1J:$5$H5;82234RLG8J@_]-XP'.X&N.;41@*W95[$D5'2 M"ZGDP#.H2?6C_E#%*T>*K!@=N<TN]+F1+_6VSRHM^I9>LZ/OAW_PH982[LRY MCHM'V'**7+YY8Y$*Z5#=DAT=7)XW=?L/HGI+T5JC$"&K)2W.ALL-G_*(;AYB MN+E?/_GP@ L8ET<?(<N5;<[-GX9LQ FT.(E9,XBUFZ"+IR(5[O\"4$L'"%6* MRD@"`P``2@@``%!+`P04``@`" #L4 LQ````````````````%@```%1E<W14 M:6UE<B]X.#8O36%K969I;&7S\0P.L0US#/)T] OAY<I,RTM)35,(#')U#@T* M=N7E@K%LBU*32XN*4_5RLT&JP(J<_?W</-U!:EP\@VQ5-%(RBQ14-*#"FIJ\ M7*EY*9EI<"HS+SFG-"45I 2D01-$0PP'*@4`4$L'",QS\6]D````AP```%!+ M`P04``@`" #L4 LQ````````````````& ```%1E<W14:6UE<B]X.#8O;R]- M86ME9FEL9<O,2\XI34E5T-/3!Z+D_-S<_#R]W&Q>+@!02P<(SF0AC!D````9 M````4$L#!!0`" `(`.Q0"S$````````````````9````5&5S=%1I;65R+W@X M-B]O+U1E<W14:6UE<I58?6P4UQ&?]2WF,$DPV"%IHTJ'`A*TS6([4)&(2AC[ MH$3&7+#3)$VES7VLO8?NP[W;2\]16BXY0S'T$J1\$$5IXS^L*JIH1254M16J M++!D(A$)I?V_M +I$/R15%:B2 Z7W[SW]FYW<[3)D^9F?^_-FWD?L[,S=S0Z MLD_3-');!X6(T849/;P#_)XULG\'1:B3MM*W:",X8U %,J %/#.M`NF@$&B9 M"6-,O7CN56.:(M$PQK0`A4P\G[KEN.A["V.@%9*3.M5X!]AE@,L88SH'S-2I M;#"%(1]^60\SN>9<^]M+Q<+V3#JQ/9/Z6:YL%//&`*WWK'&=-$,]:smiley:]NNT_M MC=M:4!>(CV>#ZKN7SXO:MP[/\VK/LQ:0"ZM]<%M_%UULNQ?W<TC99N)SD',^ M:3P$OAGCCZFQK: +9_2P+L9[Z#WP$\=;\@;X#LCO5?(_``T#_U#AMT'G9USY M+AH&'Y^1]\+C?U#Z77V\+ON8'OZ;&.^B<?"41U\"Y "/*)P&S0`/*OR[@#Z' MU^O!?P5?\. 4^!N8OT7-/PF:!_Y$8<)=)^4U3Q72.6>"S.%G1P</'A@B)YVU M"F:R8,4=BZQ"(9>G2<N!5)Z&\KF<E70&'2>>M,E,Y]*.R8HH&T_G:,B.8S@S M)&>"RFF'#A8G#UM)*_V"1>;^D4-[!T?,0_OVC47'S?'!O2-14YDK6@X_D)G M-(=,2[%4W(F3:2:*1;/HQ O<E4NILUB%RWL#?#4<YFWF<,1WF<-9YIC#J>:9 MPR'?9PY'/,L<3GF..9SW/',<R%^8P[GK#\,K+Q(U=OX:/8TMI]69-K:P)9L? M;UYKH&UABS:/W;PJ,%NV^16YN2 PK\!^D/$Y@7DE=H3QG,"\(IO=\.9I@7EE M=A_CBL"\0GL7XRF!>:7V'L;/"\PKMG_$. 8X>F#P(/O7[#]..9NI-K)9K^E_ MJI7U6BQ<+>ODW%-[@4YU5"_JQQ9*GXT=?OK)']?3F&97X//UHWBJ+NKUQIU& M8VF5ZV;UG^(G5G\%@U?HJ=D;U=N]8W4>>.[E2S:.[-9&UEG=A?%:3)]]G1]. M4>.J[*KNHM)_GOO@$F0"<[^/N1@@V3\\5EU</D+U6[ ]>VDI^C&_D:*+#WO/ MV!'"X!]Y,+I<7>R3PJ\"3\Q&[TPL15=8>J46O1*K13^.82S!FXA>XR"R%+U. MUH??68K6);K-J+H8.4*UZ+68C<Y*HW2E?NX.;[_[-$QUUZ)78V/U7\H>G-6M MRB_^2:4;,&O/\5$M?]%HW/IH]M/ GIY!7#I5W2WVW7 <VS7XJ@3R.W>>*$5F9? M%^/EE4;IW]C_5W3TKE?G4G\-YB_>)="A_=R*3.:=2#PR5<H4K<A$(9^-Y$N% MB'B3$(!G<(%ED/M=X?B[4M7#'(OYOL6W`-\`CN/77]'#'%OG@3EV_UW%4G;D M^Y6]D(HU'*]C)+\)'(<?`)V%7GZ>!^>XPI[3H_@W;>S67N[&;V[?1NSZ+NAQ MT!.@GX".@%X$G02]`_H]Q^/]0T./1[;N'WUJ6V3 >&RG\2@^9X_DG'QDH*^O MO^_1_IV1K04K8\6+UC;ZJG";KO\QWUT='W)?O]'7[]GX_^LCHSB==>()<*<@ MN>T^(1Y;A2DR<GG',OK)L.-%FXS4= Y3)'<*9& 9!N*B?)C*.#P/`=<0D=.8 M`,!07@100_U.Y^+9=)*,I),O8&)*,C@3K M5R7PV:^4<:?J;W-U#:GOL(R+' M(>DG;G._Z0^3_-:SG,A%`A][%WZ/9)[AE7N79"Y"U,II^"C7*CGVX7G([='D M7$W)L"_S=S^DY-CGKW=(7P_:Y>_M&E<??'H^)*^/]?0HSO@)CQR_`V=#\MW0 M5;\K-Z9T\SO&[^!*R/]NN'9'/7(Z_%C79?[F-G>_SWKD./\XC\XKFE^.F^F1 MXW>^TMG>KD6M>^,`-P>YB$?.?<XJ.3Y#D8,&]+EVB\HFRXE<M%/N8Y5'CN>] MY-''L:J\NKV^JD>N`KG*7>1.>N0X5IU8+?/QX/F]1JU\FS]T%[R)I^=<HFJ= M(8^<[I%SG]\D?[[*<MDV^GY+_AQW&Y3O;B.WGEKY-#<+<O-MY-P[<]LR@GP, MB^*$8SNU_'Y-0-\P#-0\"P[FVM[&[S&)^5+*K1M"RG(+2POS32Q/A]\SB>7M M\_LDL<SFSS:Q/)F5)I8WK,^X6!9<YYNX2^#*<1>O%7BNB67%L?"6B^\5^'(3 MWR=P^8R+UTE]3=PM\(DFEE7'A2;>$, ]OG,+^2(?X_L#>&,`/Q# #_IK0N3S M0;S&(Z^W&><5;C[N?C^[:!-^%]7^-9P'UP4OG7'Q.AKPR'= GA-+VX,YCEWV MS(^3S#,D[J;<UUA/[S'_>A8\^J:I=?ZL[U<>>;;_&_#8,?]ZO/MYGUKWR?OY M<V ];-_VV.?TRELO?D#^>O$C\M>+_R)_O7B#_/7B;6KY[P;X[W])_E_P-,EZ M[W/RUY/\]X*WGERG^>O)C9J_GMRD^>N_1S1_/3F@^>M)_@:Z[\<&O!_[-']] M>5#SUY?/!/2;FK^^+&G^^O)%S5]?'M4"]:5IQ@X,F28E"PXJ-B-)D\GD@(G\ M8BJ=L5(&32'9,LVA\4.'S>CH, 1-,Y4W)S/Y1#QCBOS$C)?*)$K,5"F;G::) M?"%IF4[>5#7A<&LNC"2LR70.9E3_R(&Q\8#25%,IYT9*J5J"$A^WBLXX9]%0 M]#7*8K=*%7F7JD_O4BHG6I*R8O;6M&VJ9U/D;VUJ:%41MRVE16TL9OB+ZB\! M4$L'"'Z-P#T)" ``T1(``%!+`P04``@`" #L4 LQ````````````````&P`` M`%1E<W14:6UE<B]X.#8O;R]497-T5&EM97(N;X532VL3410^:6(?UD=\[%0< M%T*U,$WK`RPHD7C-1B4TJ=LZG=R\S,R$F1L?"[$0!+,(N!;_@QM7XD(PD$T% M$1<NN[!0:!<1BJM@/"=SQUR'V!ZX<\YWON^><Q]SG[,[MR.1" 06@2@,$< ; M"2X/OC,P#9.PW-QL[-S*-MJ[%=CJ]?O]YJ<.Z\:0'Z1*&"2S%0A(MMMH)X;B M0I/]+G18C]2]%EO/M%@W([D.VZ!^'?8#^.<S';;EHQU"C;96@1;;R)0PN=:O MKP]F--KQ5]@JWF)?,MD@\^)C?7OMV3>H;V);6HY???MK\]?DWWT").;UQ#SL M;8^Y5G2$9FBU>M7C6L%U+,VINYHH6]P]B()T*K6HS:3O+5_0%O1K5_1+`+KW MU!+&*GKA^KX41"ZOZH(_$:#G#6& ONIYH-N.X$@Y?LIT+(O;8I]UJ796[F<< MAG?U0>%CTI_",:7DOR.1E+F(U-'YG)<X*G7=4+^@WJS4[Z=+X)A0\J0[J>#@ M?[LJXS&)-02:H@OB&\H<LB2"$R/J'5/61I9%(CU"I_8DR^&D.";I>J?D/N(R M5NOED7!'U N;FH_!S[[*14.SHO]T(!R#P_^M1OQX"!\(X0DX+>/W.([C_',* M3_N:"^'K(<Q">"F$'X3PPQ"&'/=$CAZ,;D+1-!=6\!^OE:L\KX-EE&U(E0S; MYM64RPU\"2D'@2EN"F&8)2AR47/+#@P>W(KI2WS@<4$!W/6*2]SDY4<<4&J+ M`K:D,QO#"[Q(?AI@D?PA@/ODD7Q)_@C :_)'`=[2R>)1OB.,B_X#4$L'"/16 MC5Y4`@``& 4``%!+`P04``@`" #L4 LQ````````````````) ```%1E<W14 M:6UE<B]X.#8O;R]497-T5&EM97)X>#,V,S$V+G1M<)56[6]351A_NMYMY44% MF6 T)B6R9!B]=, ,$#2,[H*8P2H;OJ&I77O'[=*7>7N+A40I=!C*+)) E!@2 M]V$QQJ"9"1_4$+/ DF$R$Z+^`6@@Z3(^0++@ETK]/?><F]V5HN$DO_N<YSR_ M<Y[S\ISGGB-:]PZ/QT-.:2 OL79I6/%MA*SX1/M&\E,3M=$J6@G).I '!YA MG=$(*( 7F&/ QFA!O47:/!)V@8TQ@0$9W)^6";O=]AEL0(5$IR9I;X"X"N4J M;(QQZ(PFZ8/A`]]W5/$Q''>._W79C+DN$>]?EXB]G\JIF;2ZGI:[YOB8<$,K MY)J<\JA<&Y<EP&)@$?"X;'L$6$KU2X.KWNRJ>VIX/KD.+LL?,!;[;L'Y]$C? M#-X'T>=.]6G(-;!OEK8VX-+GBD^Q[2OH2\@3'\_S5<B-X&^7_!>!+N@O2?T< M<''8X2^F+LB^87$N;/]6CN^,Q_,RCBN^GVS[8NJ#C+G&ZP<LZ-U2CP/#T#NE M_E7->!;/UZ7_"#GATF.09]&_5?8_"8Q!OR-UPEE'Q3$/F?&4-4#AKK?V=.[> M%20KGM3-<-34(Y9.NFFFTG1 M\!*4S"=2NE1J].R(E&#PO%4W KS0)2,Q%,4 M-"(P)X*B)Y"+6[0[<V"O'M7C!W4*[^SNV=[9'>[9L:-7ZPOW=6[OUL+274:W MN$+A?G2S**Q+$8M8$0J'^S.9<,:*F-R4BLF]:,3AG85L1L"<8XE /,\2P3+* M$D$UQA(!^35+!.(%E@C*<98(WHLLL2$_L$1PEY]%5%XFJG9\@I9JZVFYI]56 M]F1P=>9Z%:65/1ILF[EFZ^S9X"LR,V'K/ /C2=;';9UG8OA9'[5UGI'!83AS MVM9Y9D: ];RM\PR-3:P/V3K/U-C&^GNVSC,V7F$]!'7/KL[='%_%WT>L-53J M7J.4E.]+.:44\A5R"EE+2P=II*%P63D^D?V[=^\;K[U>CJ.;D4?,EX^@5IA4 MRM5[U>I4HQ-FY7?P"96/P3A-^XHW"[=:>LMLV'_TBH$MFUW)8Q8VP5X**<4S M7!FAZC715-A$V;_V_W(%G)J^SZ,O#"3:NWH+DW.#5)Z%[^*5*>TVWTB[B3=[ M6^\@P?@=&[6YPF1 D$]!'RAJ]P:FM JS*R5M.E32;H=@Z^=%:-<YB4QI-TC_ M]9DIK2RT6ZP5)OV#5-*NAPPTYJO9Z?+X/5[^LM-PM:RD70OUEC\2+=BKV?R' M?U#V)MP:H[Q5<_]4J[._%>_6K.E-Y*61PE9[W55K=?&N4,1V;+5WJ%(\8]MS ME6KV3ZS_OC%:ELM]*7\*]Y<?D.A0/M#]!]*6/^(?RB8RNG_ 3"?]Z:SIMV\2 M$O P#C './\5SK^5@N+C7,SG;?\+\ _@/'[CF.+CW#H&G7/WSS*7<B _(?UY M9:[A?!TB\4_@/+P*N(!QN3X&R7F%(V>%E ];.*S=TLG?7)Y"[GH.V *\"KP- M# *'@9/ %\ WG(]W!H-;_&T[]^Q;ZU^O;NY0-^!W]D+*2OO7!P+M@0WM'?XV M4T_HD8R^ENXGUVGZC_[.['B3`^UJH-VU\/]K(S5C9"S3BO23BORKFT.DIM*6 MKK:3:D0R!JFQ0ZG,H:20EDDJW*K(@Z(RE+"X'Q*L:F=*=0`*3&D[8:KR>R@5 M2<:CI$:MM(F.,2$0//!N#Q5-)Y-ZRA*N'^:LELCE<$S8;QH2<>$4YQ_.L= L M>?;;H^;G[JC\?VZLX9TG\?8@FG_#K):^F<<Q.P;>-H_HZY$<CET<KAVWS.,8 MO]$@8KO6+Q_%(F<\Q/"85QR7(N=NWQ5@BXO',7_!*^Z"(ML=7E".S7>*[US% MN_ N.'Y?=O$4Q*VBB/>:4YSU[G+Q^+UQ$8W3GH4\+CTN'M_Q?%-]O_MH_MPX MH8V"YW?QG/J[DL=[:+\Y:\9S_$:E3^;9;\\FL8Y&%X_[)5SC<6[*-=<?+^/B MY<'+/X!WV,7CW'2B6;R_:_?O",V_K_G'=LG]T'3M2X><I]?%4UP\IWZ<%KY/ MF9>L,]XI6OBF78O!M];A.6MPB@[>V3J\?P%02P<(=X1&V/4%``"4# ``4$L# M!!0`" `(`.Q0"S$````````````````:````5&5S=%1I;65R+W@X-B]O+6<O M36%K969I;&7+S$O.*4U)5=#3TP>BY/S<W/P\O=QL7BX`4$L'",YD(8P9```` M&0```%!+`P04``@`" #L4 LQ````````````````'0```%1E<W14:6UE<B]X M.#8O;RUG+U1E<W14:6UE<BYOO9Q[D!Q'><!'EOR0+%L/&TO"MGPV?DD^W>W, M[LZ^C.WS:24+Y--9=T+&B(SW=F?W1MK=6>9QTCE0-M@%-HZK@*024J%2%%"D MBL*I2A4XD#_"PPJ"5!X&*T00DSB!)!0Q?F"32HR#\SWZM7OK$G>IL%7R_N;K MK[N_[OZZ^^N>6]]?W;]GU:I5EORLLE9;^LFRGKJ5OW/TWQNMBZT+K4./_.N# MS]WQX,E7CEH_?NWUUU]_\.3&1[[Z2/7,J>J+:T")$N8!;GNT>F;ZJ*6T1E#K ME8%\S4>JOVR>JKZ&^5Y[K/K,]&/5%Z>UPJGJLVC.J>J/+/^OKSQ5_3$_/8=/ M1ZW'JL].SX/D@4<AH\SR$:ARXV/5D]-8O6G@Z0??=]I*+WO@?=^TTHU@!MJH M*OJ/;WWD6T\^\I\7J'ZPK(P]EK$%6];,JI$QR[H(J"%T]AB\"/]N%OPP_'M M\)\:_&V#SUVE^:T&WV?P-PS>?([FHL%S!C]L\.,&GS+X7PQ>O5KSS09[!C]H M\.,&?PWX`X)?,7ALC>:VP?CYE/C^]!HLIT1\DKA,_&_$%>)?$'./;CH7N4J< M)=Y#/$N\E_@H\1W$]Q._B_B3Q$>(GR1^-_'WB'^#^"7B%O$EYR&39U@N<4"\ MG_@H<9TX)KZ/."'^&/&#Q)\C?FA)VY\\3_?)_Y#.)N++ST>^88F^>_[P/CQ& M^O_$[27^(?'O&/I/D7PUN>]/B-<0GWL!\KG$VXG/(RX27T \0[R6."1>1_P( M\87$GR&^B/C/B2\F_C[Q!N)7B#<2;UB+O)EX)_$EQ'N(+R6^E_A-Q+])O(7X M8\1;U=(D^^%S)/\Y\5?6:O_\+X.O68=\#N4MK=-MW+].VUQ;I_4_OD[;\#CQ M%<1?)[Z2^ SQ=N*?$E]%?,Z%R%<3;R.^AGB<^"W<7N)KB8\07T<<$5]/_&'B M'<2?(MY)_&?$8\3?OG"X;YA\_OKA.C>O)]N(I]=KWVL2CQ$OKM=]\B<&_Z/! MVR[2_':#/V3P-PQ>?['F6PR>)SY(_#[BP\0?);Z'^(\N/GM[?V#H;-B >2\G MOI9XA+A,/,IM)[;9A@W:GL]L&%[7]PR=JS;J=2"[T6B+P9\U^-\-OFR3YORF ML[?KV!OH?-J0_\#@2S=C^9<1[]BL^^&MFW4_S&S6Z^U1XMN(/[!9K[=_0/PV MXB\0'R#^2^)W$C^[6:^E/R>N$Z^_1*^E(\0=;B]Q1/PVXN/$#>+W$M]/_#'B MCU^B^^HG!M]XJ>;W&/PUXM]CVPSY-6_27#?XLP;_+?$GB%\PY#LNTWR8^%O$ M$?'?$'^(^#O$?TC\-/$3Q*>)GR+^.VX+\7>)5VU!_A[QEBVZKAGB9XB/&O(O M$#]'_%?$/R7^$?'SQ*\2OT"\:2ORB]QOQ"\1WTK\,^)9XI>Y+N)7B-^_5:^Q MO[M5VX ?Z8??W:I];]TVS9/;M/X#!C]A\.EMPWU[[9NUSEZ#/VWPTP9ONEQS MR^"3!J^_0O.[#/Z2P:\9?.N5FM]+O(O7Y"O//F?/D/Z5Q"]?J==89[LN,]FN MUZ)'M^NUZ(O;AY?_$R-O\2K-'8-_W^ S5YW=SHM'M,[$R'#]A3>0F_SY-]!Y MUI!ONWJXSM35QMYA\!<-?M[@T6LTGS#X<P;_O<';WZ+Y7H.__):SM^L%0^>& M:W7>=QO\88._9/#/#+[I.LWW&/Q;!IOU_K$A_R'Q3N+_-N2%ZS7[!G^4>)SX M\X;\.\0</S]WO6[7]3<,MZ%UP_#^^82A_[3!%]RH>=+@V. G#'[9X/$=FA\V M^.L&_\+@W$[--8,_9? 3!K]J<.XFS<<-?M+@?S#X^E'-=QO\08._9O"K!E^] MR_"976?WM]\F_4N(OPE\K=C'\;,;^#S%6PS>;O"(M57QU=95BJ^U;E%\G767 MXNM%M(5\H]56O%-$-\@W6?<IWF6]7_$8G7>9"]8G%1>M+RLN65]17+;^0K$K M=D+D6ZPS`WR:^F&+]2*<T/^9>*OU+/#SQ-NL9X!_2?QFZPSPVC'DRZW3P&\B MOL(Z"8QE?A7^R?YY%O[)NF!Z6M\7W) \Z\?);-#QH[&Z-5Y?;#6B8,$?KX_O M]A=FP[ =C]\U=;>;S8P?#Z-C<:]6]\=5CO$317<\W-4:MR;+OY*^65>K7G>\ M>MCI!6V_,68%W:2<W)@9M7>\-:*O2B;C9-0'GNR"^E2L^GPM(GV']1W0K]@. MI+3#;FM$EI;]U4I+NW'0ZOH-E2]GY,OTY<N:^:BN)9GSR\C<9ZVK,]J989]* MIC#L8Y:UQ)K"&UECOT%9\7P8)2I[D;,7=U1V99V"6ZS@?Y76DMI*K%["X7#S M^6P>-%E#C9B=$19EH$S;*?*PJ9*TGG0%-+WBY*&H9CNL"3=Q5+-RD&HUPG2N M[7.2'O0B)E&WF.EZ<&T'%= )V_X)U08;!C N1GZM72:U4? CIQ)T:BWQG'50 MH#,:9LDA=(5=4L6L7XY(01@H=988*OH>OH6E"V'0X"3H9_X:-O626M3RD_'W M=$^XXVD<C0?=>CMM^.-QT@C"L?EE95F,QWOM6M(,H\[R<XKI'7FM;KJ"W V_ M&4,V;^_DI#<Q.WO0F]B_;^^4Y^:PL[.X5-"D6:*02@V'- J@L:^;2"&X!V6V MO$.!EN9(Z@PI+.NP1IX*RRW5D HNCXDH6$H+5'">;9#"(@F'F&Z[K,#C6QQB MCM3 :40SC0I64IM*+@DCE-CA1F>6%E@4&EFV?HA&*E5RK&)SE5*:YZ*SHDHI M=EF<8^5>$@EYH:^7M+RHNG<_S .<"RPOJ5$^U)?@9.3@+L.M<,,RW-GS%FI> M.XC1A#SY4QY]9B=M*)!ZM-.;2YNU-JQ,I)&5-BZC2@_VP&-N#FN;">[SL2I' MN"XV=B960D?VS#+G":=YW03G-G9VVZ_%/ Z%4?8'.R_ZVTP2/N'R"#5U0K8_ MCY&2Z\M"A;&+%4:%&]AF13)-^(*C:Y(IA?Y<9E*Q+Q.5Q].G0+,C2[-#5263 M:%IDY9QOFBEV7ZZ^),?,1.7QNE#@>8&+AE&72N/NR.FZ5$J^+U=?DFMFZM1. M"'&A+X>6%Y7Z8=P:V56RRMX[Y^*DEH 'S8(XAQL7ZY5)B[<N;P95RN35N'D5 M*T<L[Z ?^]&"WT!%L+8F@X2*4V'%'/PW![N<K@)K1NL=,N= L\FB@NI7$'$S M'3%ZV)P]O3!F\V#88MM%K3)I@'5NKN(=CMD\+!P$**O(;#19,E0GKFFXOK#, M\&M:YUCJ:'>B)9BE664@+?@LS"D#>1EBJ?!B[-E45^9JMT^-V@K:0U.CNJ(: MG-2HKZ3&,34J=-A=;31NNM9H1++_'%OIDYQ=%>3:54DNI%GJ(DA<]M+4"WO+ MVYKU@H9+EX<&V+3,.+2JSRS&]7DAY14-C J;32%B0]'\/1 9H%_8[+89[\ZP M04Z:DVY[1ZW;:/M]01<X[NTIN(^-/KN3=R/T&52_W>\V.&6TY KE*1_F$<L@ MU"2U@UK-=KFBPX:H).LY. ?M%%+'X2H.*Z&+U=,4<_*RLL.WB\2".9_LBM K M%LG=#\:U!5^4F\W+V@X;9F6+HC;#KISMLLR<++D<%2G:B1V*VD4T#7MU-&\[ MW#/"KM* 7=Q]^5P.>@)+F9S#OA52Z)MBQ=O3#CDOSL*=''..Y@NRR3.]6D25 MXH3496=EV6ZFR+&R&&[R%70+M,_:LV]_E459$N%4:L*\ETZ58Z_*_!J\.H%C M*>3 +Z[=%ELGN&H=^T!*U?Q#U4A*LW+O)MV@(>4Y*4?MN.?7T>')>>-BLN#% M(."JV.5!U"49'EW5.6-%DS,@^W25+BV^00(A3SOURVP%K\ @A"4)=@,\\;!< M+L,]W105N"4=+A'\+,[EDHXG+%:-Z'B=H#LP;4$X'Z:1D/*,1<5&;5'(>,ZB M+)29Q92EW(M^3>86TQ:$QW5V,7%14PO%O*4"@K@!&XJ0YV5EK4X2-INBPW&* M2O7[PB[W4DD&A)"46=F +-L;,:SK^DFG%:TD7YI$07<%![UDL>?C@:L#"S&/ MNJLG0<-?D#(U!6*]`[AB98<9/-<^5N\F4IR3RB VU?-2WHS[,[@ZH1FTC82" M3.BV@^XQ*56[;8C!AY26R!C85:$C5%,R,@X`H585H01$`M+775ZBR-E30Z@F M><L0JAF>PC0(NXU8I:@6QDN27&E)+YF/_)HN3<52L(GZ#7">J$:SS:6P(LYE MA#P*PBA(%LUIQRGU-!I(5!NG%\=>"E,+"X/^@8-MI&) '-6,N8(7*K)HF"LB M-ZM!=\5.CDIKA\>'FD*)$,)ZD=]K#S,#Y5[/AZR-_A6'4H,NK$AS:0,<5:;B M2H +TBAN0# %41T-JY@=I?R3-AB7HRK1P;4$(B[J2(R5XH+;;-=:<5__)3!3 MT4/+%,<DH@TF.H9>;8!<7BY9\(DF;:K7.GY&C/!8!!;XI=4@8AO; =U!?[ES0> M6&&D6- RE59:BQIL`H5!N6)&V""V6:C 71*KV[S1E[ W>D9S57<4N#N@X=;Q MH$OE<T^@2Q6/PW"$Q\MTEX#=ZU9 4@_;0D+N"B: \$0O..%+>=81JHNF% (2 M&^T0]2@32L($&)%C_J):,M1AK8X=K,3R)&[U^L0.KS!9(<\Z*D6'OST.HE4* MAQ#@M%:CKZR\G&B=N*6$^IP:A N\<8*T@+T$`F^N%OO2"?A.$(1MO]OG,!7, MJTHL<KNS&/!2:%!K'$WI.(32$H4!`007]3#MTN:4EYLH2C$6@-DP& ^D>,!3 MZVM&W<JD="FK$FQY080'#B5UY-5#BE<I2LQK&QRG4D_<P*)4W_BD'A4NY'E5 MM,>WIBAT5<F>N*5!:4$6W Q.]+0912F._;82EM25%D<OW$WY#(4N'!AE^7B M48L(63PC088MR]GX@E:WUE[^9@GY@FX3=]D1-+.(.Z4_LV]O]1W>U(&I:CDS MR@_PWZF)_66[[]&;/+"[6G9&CUA]TMD[#E8G=I>S0G?ZT/Z9:CDGG@Y-W;[_ MP.3;RWF5:]_4[,&R*Y)%WL+H"N-%: _&?]04\)$T%P?8N4$WZ5LD28BG5W,> MT"6_O^!W$\Z?I0$CF=<-DZ YN#M02MJURZB=P]JD$(<C-+5IQZ"D.MY^#RFG M7ZKUN68/%^DDP)@2ZJ)3(WR[>IGF%NCEGO+*(!G[0IXOE=D.)12$V0D]T>ZL M+>63;%$LJ-HF<[<LRL6UTM\>83<NX<%<FO@Q55"2.TQ!F<P;#'4^NB)/HR+' M.?AM<\00+.U4D$D;S9TN\/PH4IJRV8U:4B,3,"I*G:('3M-@0=;<C%P=,CAT M*(76AG56S/'5C]<+>,,OJ#'LZ>)A<%+;\;QC0;O-$I<NM+PTX!#%SAJ#W#=$ M8FD4-TJPA+6%A;AX8YDI+BAE/L 9C@*'Z33NZP84&JK<"5@P[J^H4^(!PS=7 M6$2SEK;9!2A"P[J:[:2_NTD4].2<T:'0TK!"U51RJ1M7>MB (0</"CM!G=VB M(.Z<82F'I-A/I)AB);KSC8MS08+.1O>\`Q<%6;'J5C@>DKGSG)L.EPZ$;G&O M;V% R9"(*O;,Z$LT'+:U$);T$\JR`I<-O7HBA@'4J2M>X&J\$,QBL7P92?$P MWQK#9(YKWCS=.44LM6G.\?UPWW(!8P>ZND12RDKMW)+%189QM;Z&<W^ L%.+ MCY5Y,-06AJ.$/<W6\CM)Z+BPRU)S,IO=OM([@^4?43'N7NG-X?^[=>V@`[Z\ M@ET]":-:RU]IN^1I`R(]V"9%87CW3=,O=G.#IP;I&5!R_PC"0DR[K%.0;Z34 M3#EB0>*">CO-NX#RJYP^8ZB-45R8'+$2+>+KDO!XUX]$-G%9LN2\HRXXY7'1 MEAGXNJ2;=B"FEY6+2Q*0\,+NT-JR4S9.7GC6VWZMFVJWY2O/9B_U.ZG<<2A% M7'SJVATJ<W"%$LI\(5JQ:.OQZ8BZ9"3RM"W"2+;"A,KBNUQ:<)KFZG7$ZM22 M>3"H#2LICT51J);T%.?Q:K3;_":Q;S775E-NN^^(G9=6EUPZU++O'*\E]7G6 MMD5EYO(C^OS7= =%E\WT#I[#2V]F=F*V"MV8S7"\BX_>;@P\(=ZEAX.'IJ;V M3>V%@!?"5)9 \CLAV.6GF=D#T]-5"G+YN3JU&V)<K3Q9W?>.*D2Y\GEZ_SLQ MR!69)R "+BCMPQ/[9D7@6QS5HNF)O=5R2>;9MW?FT,PT5F-G5$Z0HN:^J3T' MRK#3LW!J8NK S/YJ=;IL2W/O/#1;O;ML9U7&R0-3N]\Q<;!LYX3&VP[LFRK; MTEZ*R<%E53W5.\NP?FO;)F>A.&GL5'66.\ NJ1PHXU8[LD_OG+B[#),3W#I> M[-*QE-Y6QT5U;)1[@3F?Y5: >7A/S?-NGZ<7-226UR+T;CO..C!MDE <_F69 M2[>L(Q;&L74_: ?=5M\N+JZ_^Y8F<Q) 1;FE+PIXR<*(2EBKKR_R'&+DZ7ZN MFT1Q+^BRP1ASY$00J%\:5926S%_@_.ZR_U# N$CUO%:][C4A)_H^O1J )23C ML0@ECMFJ4JFB^R^36>D5OH=W$QC9<X/IB%'$-T)9%3_'45T)U-CH&%O<LP>D M4I0#4I]7`G7#'O/IBH6\79@2WBW 'KKN()FZ6P<;^A-XOVC$2;]87J[K,Q"] MJJ4=`TY!PLV$+$LG(^TXW,*\<&FO'OD-HVLPF',ST9)S@F]*5/AI"KF'HI84 MY60G^:9(=U.?E/NIVXK"M!<+&T57D4QL"/F!A;]0D25@'_(UIE=O!W!^-MI$ MQ[>"VS_>QMCJ4]O <*N.+*@!C\3<*W%3<D7T26\!',.LT*$E0'O+H!>8DU\. M8%'6.N@%<NZK0,#T-^6VVML&W46]B+W/C\)^EP/3^>6;83M=ZCJ!.+K1I9$X MI(5],KG0'+',;I+O@U1396@C+B]$\S,R=A&+'+W@DUX9+D!8EG9ED2*BX5L1 MOA2A6(97.3P[B*.&V8H<37%QGB^+PSRO(I6!DXEA#A^,ROTA%M9!5^-&\7F* M0>7P&6_IV+>4O'9B8+G7KP>-:S:E#[ P^,:N;\FW^RZM[4S%"$OS9&HO;<>^ ML)*.["Z^C"KS;2Q?HL3IG"F3]])\CT%_"C)*?]O"_H(%%0>NRNE/.,3?M1RQ MAESQF(N@O%SA:UOQKH(-I&M;^9Y67M@V(S@+_A]?W'*,UH$1@- 5XE6/_ZI4 M_*D;OGE);9>[2O24\/$*1*HPF'OX@&_ZG!6HVPQ7OK,6K@N)O!-0IJB^H!@F M8IGKM<S/<7\$0N:1V@B9,-*,PLY(F$8C5.HZ4-@[.5D>N7'OU*$=(\Y8*3^6 MM:RQ>+&3U.;@.XGX>UY2Y+?'T'&M,5P@K+&Y.+;&8,;YG!2+;+4YR "BD+7J M8:<#S;.6\<'?!*PR_B8>?]__C)&^1GSCKP;7&O*')BWZE>!ZD1_U\#?SUXGG MU4)OH_D_$3#*NTGHGTTO`__.-^2H=ZGQ++.5#<8/_JKVQ0U<ARP/;74'VG$2 MVC$BTLXSVG&;81M^+MT$>F-+Z]TG^!SQ?-NMEOA5)7\DWS5@W[V@=\F0=FP: MJ#<&O7N&Z)EUTN=VJ&L5_W\)UHEV;!1M-<L;@?;6AY0W^#'E:ZR77C?35@_D M6MU7`SZO&7A>._!\[L#S>0//%PP\KZ-VX0=_E[$9ZM]LI&,[1P:>QP:>W8'G MR8'GNP:>CPP\]_T6!!<4:Q(VG:[?GH2#*4S+R1 >ZLE$DM3J\Q8L8[@#B#6E MSBK\$/L)@G5GW#KHPS%AP<>8H9LTV0?Q=^,.?J_'W[_ -S3<Q^^++>OC^ T^ M_3A^@U'XR]-5T)7XJ]-S-O&\6'4.]P5^/P1Y5H$S/+>!G_\74$L'"!4PFA6_ M%@``Y$,``%!+`P04``@`" #L4 LQ````````````````'0```%1E<W14:6UE M<B]X.#8O;RUG+U1E<W14:6UE<E]GG5P-=%S%=1[9LK'-CW^Q`?,C@IT8(Z3] M_R4YR-+:B,JRL&0,P<W+:O>M].S=?9M];V6)A@*Q23'$;9J0P&G24S=U4T+A MG*2E/_1P$@=(#><D#4EH2P@G=1-H12$MM#1I6@?W_LS,F[>23U#VG*?WS9T[ M,_?=N7/GSCR]N;,PM+VCHT.HWR*Q6&#JR<.=RQ)P?[R?Z0G1)9:*+6*CN CN MF(;K+N"!ZP1@O); U0G78KC>Q@OR\%H'>)W,ZY 7_2 /KU-0(5Y87JSB?*)] M%O+@.BVXT%*9OPANLY"8A3R\O@QIO);*-O!:!OS+[NY<AI=J3K7?V_*:O55G MO+=:_DA]NL=S>V)BM2'C2FY&K)7/I'X7R&?#W[EPK8!K.5QK).U\N,X3\_\6 M&?@<`W>T\2V3SX&_U6>I"]M>!_VS2[:-%^J!R[QU9B/<-T%^5N9M@>OE!SN7 M=5+^6O$'<'_XXP%_#]P3P+]-\J?@&H#T^V7Z(;@>/ZSX5X@!N(\=YG[!_,=D M_:H^E&ORGLYE+U'^"C$&][)1WSA</J2'9-J!ZS"D^V3ZBVWU^2BOD7X"[J>, M=!GN#T#YS;+\?7 =A_1;,BV@KTO<S8VF4_<KPAJX=;AOYV"_\)V:W;1*3;OH MV\)N-NNNF+!]X')%OUNOVR6_S_>+I4EA.77'M[ B42LZ==$_683L:C^7A&O: M\<5.;V*W7;*=*5M8.X9V;>L;LG9MWSY:&+/&^K8-%2S9G&?["(0U#L5\8=GR M5B[Z16%9XYYG>7ZQB:1Z6>IB"73>XW _!PSFK_$.AO@DWL%83N =C.H9O(-! M/HMW,,1OXAV,\GF\@_&^@'=0R(MX!^.>[0>K?$J(,\E'@7)F\Y>E3L]LQI8F M$;YVZ@S\-F.+DYCWVO.4QI8G<8B\=H+2*,'D19C^,J51DLDN3!^C-$HTB6;X MVB<IC9)-1C!]%Z51PLD,IAN41DDGK\?TARF-$D_>@.D12 X/]NU$^SKRO?O] M3>+HT*;.HYU?.3K=>71DV:'I3N&?=W1*W+_HT%.=]YQH_6QT]]Z;;IYUH-CD M,;#YV3L!'7JF<_;,.V?.G%RBS&QV'_P9F?T89'Y3[#GRZJ$WUHW.8L9M=S]] M+ZCL]?58YZ$,Y!\=Z3SR:03WBS//,^E01K1^=-MS3P-/6]DA* L9@NDW''KF M[?UB]HUW4(151TX<*;QXLO F#DO*0(U??W_AQ9']`KB^2%Q=R/4VESNLRE6. M%-ZIG"R<QG*GCQ9>'CE:>!,*S8XRP\G"*70K)PNO"/M;EYTLS'+J#4SM%T<+ MIT8F@7+7_5!P]A@7^20TN>IHX9D1;'[V0"#@"X?N>$&TUM]UQ[.BM0K$F#R! M2GSI%\3P^G.??.[I(S]M>^9;P&_=?^@ZTLL9_\HC/^4$J^LZTN#I(Y^F_.G3 M9UK_?-L\=:Q;+?4VZX(L3YW%$<+OH-TUX?I=Q:Y&J^K9796F6^MR6\TN&FG@ MH(]#!S\$EYIWT#^?/M2Y#'TUV@/-%3!'H)]_Y6.=R]#W'H<T^O:O2E^+AGZA M;&^Q]$7HST<$SQGHIS? ]2C4B_@XW-'OH&6ME?>%_M#LS;OR[_B[!'S;5KAR M<-T(UP?AV@_7[7#=!]?OP?7(87YF(0H=\6MX;D)?@N-FNX%GX'Z=K/=>N.Z2 M^*\,_!T#+^D(\/L-?+N!_]; :Q8%.&/@<0/?:^#'#'S2P#\R\.+%`;[.P):! M#QGX,0-_'?#'X+[Y*,0G$GN?$**GDW'^,$P7$JO?%^3]CSJQGBSA9PCG"/\+ MX3SA_R/,&EV]!'&!<)SP=L)CA'<0WD_X!L)W$KZ-\#'"^P@_3?C7"7^?\(<( MOT5X@O#:I8C)9XL488?P$.']A$N$/<*W$_8)?XKP(<*/$#X\Y]F?7LHZ^1.8 M1WY!/!R=;#P'\?OF\*?.F5^'!XC_G_AY"?^8\ .2/_(;,%\1?3&9[[\1[B2\ M9!GB)80O)[R4<(8PF_LHX>6$7<(K"!\A?"[AXX3/)_Q5PA<0?HGP2L)O$UY% M>.5RQ&L(;R6\EO!VPNL(?YCPA81_@_ &PI\B?)$.\Y0>'B'Z?Q/^VO+ /O_' MP.]9@7@1E<VN")YQ:$4@<W%%P/_0BD"&QPA?2O@IPI<1?I'PY81_0O@*PHO. M17PEX8L)OX=P+^&K^'D);R*\C_!FPDW"[R5\'^&K"7^!\%;"?T.XA_!WSIW? M-DR,]J/</L8R( _AC><%]A8EW$-XX+Q #Q\U\)<,_(J!UY\?X-T&_ET#_Z.! MEU\0X#CAW81O(+R7\#["'Q3J&<UI2SU7\P)^]F5W@!T2_T:B/T&XB_"W"7<3 M?I5PE/ O#!E,_617!O0[5P9C_-,&_5D#+UT5X!T&GC+PV>3_S*KY^^Y;DG[T MR0YQSFK)\Y4.\8'56.=ZXAE='3SOQ.K@>>]8'?C/!PA?3_C1U8'__ ;A&PG_ MD/ NPF\3OI7PBC6!;[R"<(EUM2;PC3<2KA&V"#<)^X0/$OYMPA\E_"7"GR+\ MU)I /^O6&O9CX,\9^'7"#[)LZP+ZD(&/&OAY`_^<\.<)7WQA0!\U\-V$GR/\ M><)_1_@KA+]+^%G"WR-\BO +A/^7\-_SLZQ'_ ^$KR'\?<)]ZX.V[B#\,N$' M#/H/";]!^*>$?T+X@@V(_YWP)L+_03A/^$W6&^&W"#N$_Y/P;Q+^+VZ+\-N$ M_W1#X#-/; ADP)_V(1>Q[8W $$A(G%C?(6H7!?R/&/B4@<TQ]8Y!O^YBP\<: M^%D#+[TDP/L,_(2!.S8&>,3 CQGX+0,G+@WP1PA?J_WG?&/S0>*YC/"?71KX MR;>,>N*7!;[EQLL"WV(^NW]9P/^4@7]FX*LN_^6^8OSRP%>8]9_5MUP^OV]Y M3M+_^*%P/8NN"&3(&]@Q\!<,?,K W5T!_I"![S?P=PV\[LI?_KRU*UG.KQ\` M60W^'QAXV7L,>S-PP\!?,O"+!EYQU?PVWVW0BX2W$CYHT/_"P#\V\,I-B'L) M;]UDV"=ACE?W;^+G&H4YY/BF^64P^^55@^?2S0&^R<"?,/"3!CYCX.O>&^!I M`W_'P.>^+\ #!K[#P(\8^'4#GS%P_Q:CK(%/&/B\JP.\R<"N@?_0P-\V\(JM M1EL&WF_@L]G5%XEG+>$?`-X$\RFNW>B9`:O]P@%8A0;X<@-WH5N4^$IQA<:; MQ <TWBQNTOB],J)!O$54-=XJ(PO$UXC;-;Y6W*UQ#ZTC&:?%,8TSX@F-L^)K M&N?$-S1.R1D)\0?$BVWX7TD/&\2;L"9^F_!%`O>G.JY!?+%X&?!JPI>(%P%? M2GBC> 'P%L*7BF?D>OJ$"/993\&EV@+3%2])7(9K&^Z3CMF>/X8;"CTET5N: MF2@WG2F[M]0[8$^-N6[5Z[UI^)94/-)[T&T>\!K%DMVK2_1.9U*][K43O:(_ M]Z[XS;8F2J6857)K#:=JEWN$4_=S_I9(=_3J]S?IEH]$8A']@U0TK7]Y49HL M-HD_QOPQX,]'8Y!3=>L37:JV^+NKK57WG(FZ7=;E$D:Y2*A<W"Q';<TIG%Q MX9"TJ:!@-#+?+Q])S_<SZYHC3?ILTD3/4I<WZ39]73S#Q3-7YZ^-Q]*I3![_ M:JXYK669/8O=D4HFXTG@9 [=8]&(E"@"=49C&>XV75/ ITP!1<_'DE!5I>H6 MI9G$]&,E(%>4W=9XU>:LH-,SF$5J,?.#SHW&D &-L&I/ZV>(0@=ZF:9=K.:frowning: MK1OL*)9W:L4)F8['D! 4-,1279B2<BD6LWW5(VDIH.*9(ZC4/=REI%.N4^8L MT#/?YAMZ?K$Y8?N]'ZE/I^AUD%,O55MEN]?SRX[;,[F@(C->;Z-:]"MNL[;P MDG)X-ZV)>NM7*%VV*QX4LW;T]UM]8V.[K;ZAP1W#5BJ!RHZCJZ!!,X>AI3AB MQ)$&CL&ZKXA@'E186'N<@)H@:FR>RN(QYDA298FY'(HAQ7TB*U;4-%6<9!D4 M,4/$>42/IIB!^S<SCSB*`X<1C32J6%.C5'-6"J'),7[HR-P*,Y(CSM+/P]%2 M+ EFB7*3BIKDJN.R245.,3G!S V_*>GID)8">D:K=PC&`8X%IF=U+^\)9<0B MJG,78%8X81GF;%E31:OJ>"A"DNPIB3:SE284R-U?:XRW*L4J>";BB"L9%]"D M!7/@@50"6QMU;K>QJ9@T77S844\38THS"QPGG&?5?1S;J.RJ7?2X']+=; _1 MI-2WF25M(L4]5 DRXN$R1DXB5(0J8Q-+=TLSB)H-J3QI"[&@)963#I<RLS*A M0E0?#Y\TC8XXC0[=E,JB81%78[YBYD1#I4)9,;,0U<=^(<WC`IV&T9;.8W4D M@K9T3C)4*I25,@O5BM.2G Z5".@9S;X7IT8VE;B6=^>XYQ=]L* Q("=PXF*^ M'''QU&6-(DN.K!HGKTQ^G[!VVY[=G+++R C2%E60D(_EF3$!?Q,PRP5-8,LH M?8S$V56I,"FM]0HD?LR8[#U\G.T-UV/QH-N\: JY<L0!TJ42>6NOQ^)AY4! M6EX5H\$2H3;1IZ%_89IAU^3GF!H+S(E<,%/C6D!R^$Q,: '9#3%56C%JMA4T ME@K,OF6TE@XLM&4TE]&=TS+:R^I^;!D-QMA<HRC<2+%<;BK]Q:*:G^ALJD / M3)7HDAHG%4'F@EU3PVV VT O9&%=4?(8,7+0HS->:5)2V3E!_6ZE(DG<)DJR M'29Y[.(H6V#$VNF6R=X2R@)O*-;+53L4/X$-;FN!)431_+;RQ(+=C^S;['J9 M<[JS*<D\;,.08!I$C<2V.V"+IKBAO08IJ]K9/0X/*JFQ&#>Q5Q-3V#R-EEA2 M-;9WF\Q,FT,CFI=\F0Q9[FZO.&7+>N-)U=I>0ZQX1K9FR)6(IIAFVGTB057* MYT2%(G<&14.M=B>C,=:,E"O;)A>K+YE(@":PEOYQU*VD@FXR>6M[U>6R.*"V M<OC8G4RK1QYM%)O4*(ZMH.ZXJCL5R7#8*[N;; 7-`N43VP>'"DR*$PE'106& ML#*J!%M59$$&BB^ZP3CQQO5$Y7P&1E?"IU%4/2CXGU D-:XF5.)URHJ>4'3D M]AIV"4V7S-#+^%.6!P1NBHT72'6BX7I2!_\.-1643I%S<WP(*:HM.\<5LH<# M(@QY\+:XHF"Z<G.-0"H=&/DUKA$ZWTLD_)HE&]?RU*R:4V\;2T"<=%M-2>5A MA(SEXHRD\4!"FJL*RW%$I6?LHBHMQQ(0#P;%Y6A"SH H!Q-5X'AE<-B2GE2- M3=1\MU*1NL-QH]AO=^NLI:P*N" KPKI=8 !4M_W:1'/A"XRZW?*;3OU76!+Y M,PT;ER8U\'/<?ZG ,LOVE*)IN_0"!YN2CA,&R'CU0*GN*W)",0/99$\J>L4+ M%T@%&16G:F2D54:]ZM0/**J>EUR<IA4U2\+ _ .*T(\243,F$ -6.>G"G*FL M-L4>@,RV91#UR)LPB'K8M<"@W7K9TSGZ";TY62DE2<.?A"5Y4)N..F".LLLP ME36+-&Y2- %[B8BD-QVWZ?@SY@#BG%*KV9:IYR7+\ZP6#!*L#/0#2\"FCI:P M5R.F@TSG5=5@];(TLX&ZO%B":JNZ!^<5A3(AV+.:=J,ZGQA(MQHV%"V'?0?E MTC_NC;?*8*@J%\<TNI9N].\PF) =!<N;BM+V2?X[Q?&'5'#1A]B$%(E1A9=. M5:K%"2^D/Q\F(;30' 4*6F"B8U B)QGIAO#?!RNM>HF5DJ I#0!T>D5.0FJ. M;[A5IS03=D[<L5)(Z9HB^8E6L5EF$2C*2&0B4@8YBT$#J3E1;93GT2QJHV$\ MKE9'FM4!#RX..G6JGS6!)I4Y"-WA'LS1JAO5F\H#I>16)87,%40`XG3#F;85 M/1Z3K#,F%>;[*,HAV]$B9*4(T",'[!GM,O2RIH0*UF2U9A6-$#G&'B8NZ?&8 MS@D"Q0:'FSJ'9V@P6E$.U954`ZWF36ABL*)SW"F>`H&:1BT!P1HO>K8R`MX] M`V+5KH<,)H]E=8T9?NXXQI,T7Q?+^UNT<$!JEN9F!V;\DMNJTS235-,A4G&" MAM'0/DFW<"FD_6M$[U^T:/M29T355@J&YIH:4XOT%FXZ:#+[-EAXM"RY5XG4 M8&^D95'EDI[455N\OXC$E*[9DOL92$VKBBO.=",0(Z/(GEW5Q*S>_.$XA-64 MC% 0PM%*G*-OC#]D\&$9&2H`6<C$YTS4B]6%3Y90SJE7<);M0C$S.%/:HX,[ M"C=;P[N&"[E(-R?@[W#?4"X:2EK]NP8*N5CW/A&BCMVPN] WD(M+WI$]0Z.% M7$*F]@QO&]K5_VNYI"XU.#RV.Y>2V;)LNIOVIC$H(ZF@NUL)ST$].74_Y.^( MB$LVTZ2IM#UEUWTN'R?=$\VJN[Y3:7?TE-.J1W/(G<#6%!$UZYK<Y/PIJX1; MOO/4$Z8&_-RRA?[6=S#0@[9H?07W5.!Q^0D"STUE5>2*NE K,2UVC#+24FR? M4C31!I+RFB\C?6,@DSGQ992?S(>?1\J-WM@9;_FV1PUDU621UB+S7$'*1ZOB M$9'AD 7O49[\G;E*!9J2T9RT'(O^-SX4.5L6_K\ZB8 !3BN6L6#B+#,A;LXK MJ6#VC]'R#9[6+3%C@O<[K(;#<W=:]V$CJ!XZIQ6-6=8!IUIE2HIV<:R6P]%& M-&YT<JB+I)>3VRC@C:I20O3#6&<+?4..%TB&H<"RL^6%U(!$@Y65@!7C5(D\ M6>XP?%V#552*K2J;``5;V%:EZH?5322GH<9,$-7,C1!T2]D4J9%Z%VS!K3DE M[N"TW#(%_PI9GNTK,@4PM&7I9<8='\V&MBG;%L=QZ0KS'*2HTDDN36NW&'Z: MT @-<:3,$^9XEAD2R4> N<:MX\<.JNXTUPWZF?:@*X)<?((BC\XQY.!M,8HW M>?\21IA7M"9IRZ3)U"@-!-ZI#(UA4"CP!C424UQQ)^:,>!4F%4//P(\&Q%K1 M.Y!CO>HI`A6.2F-I^>T8Z,"M,]4<8:8&U1R\D-D"(]2%33!5IP:]_BM,2K[; M+$[@[H**>R'F`"\OZ;A?23;GI1+M\:O2(=0>?E;P(S1)Q-+J+8(VCWWX`<Z4 M?J/(3DSW0"*(=K5?EXMP6"L')%Z"NP?K=E,6DPOP.9&WWLE2"Y>H*L!+\'JK M!M&E:EPNO('"?BE&`VJK>CBULU6JVL5Z*^A@WMNJ-%IVK:4<)N7(':Z@]1C5 MV3XL)3/O?.4%>4Z;%DMS>B))7AUZ<\+UJ2[>M*-15C&'[#Y1*_J3(% 5W ?W M14:R9H/!P/U5KE;Y[4_(&0524^EH:+&75%)G4[2\8MLY6/1+D\P=E8V9`U7J M?,'[&K0_2&] .62Q1L?ZQ@J@D'B$8RA,6@,8S$ ,18G=>X:'!X=W0! %H0]3 M(/M6"* X-3JV:V2D0($3IPO#`Q W!<S]A<&;"Q YJ?3(T*T8.,G"?1!5I37W MWK[!,1E,9;H#TDC?CD(NJ\H,[AC=,SJ"S40CNB10D7-P>/NN'$PY3!SN&]XU M.E0HC.2B2MR=>\8*M^2B<5VP?]?PP,U]NW/1A.2X<=?@<"ZJY*4X#XQ/MU/8 MF0.?%<C6/P;5*6&'"V.L@&A6ET :/W5,Z71GWRTY&&9@H-Y,G98Z]*[0R^BE MB/)_YLA4[@_+\)20Y,DJ27OK1%9+;7JSZ,5C, !\5RXH59USW?0^_-(/1HI3 M=>H3H4E([G.&G(QISM!08N[>+CL?G-JEM,&2.,DS9)+V?.I^TVLX=188I\R$ MC$:"??Z\YE+ETUP^M>#7M,;FG&5-E$I6!4JB[=,>,#B#B,4DI,3,I\IF\X'^ M(A'T++ATQ6B19:>P-8/[\7$=DWG-DB9H-0=QF]Q0=8@EHW1;FM0$O97J<<3. M1/;A)H5=.,A#JV&BZ4U4D"&<P4Z\[/EALMI%#>)J>N=%;APB:VDQDA:G:#NP M`7["I+1._#RT;*@&8Y%4I#DG]K1-B@Z$3")KJ#FA2 FE)-LD!6H*45E/]8FF MVVIX4D:I*J))+YUL\\;IO*H!=<B[7%:IZL":S'@F6A*D4^'^-OHV6 FT=;=6 M9%IW>%,.HRP_2B)#YC4%AF$V&*/1'%A+NQ68XUAU8$:UVFX%:ACKV=FT-VVV M@;6UFXM^#7:[W73#)@>B\PL30W;:\XLY<CE >PHR\'=#-.4S]@E336KC7S^J MBC?D@E@^?D0%%-)?T4L9997N%,1*K;JJ4H89O-+FA38%&.RP,/25D;+Y% D: MXG*-F),+1'8(^;; VA"'0_1<..[!-FCGU*@^28&AZC[C=0S;EJ87I]L\=_ > MR-B%T?P`IMI?S82\=S2TIQF-Y(U8,4FBTJ>B4DI:!J;P746.-^MX8>ZUQDV: MVK;DM3&]4^^F?Q)@>\&*,FT[J?0N7/Z#P#XQS[:!Z035@IUW]>16-@M(NWKJ MW9K:SZLT82G3MH]7`UU"9 CAH,7_:"?_^P>WV%O1%#^T?&9IK7GZECVWG1>- MIO4(1Z]U4^J-H31"R&2?3H6:I2F-84CEN%TA=O3WY[JV[!C><W57K">;[(G# M!'9MW7>[8+:)1N+19->6IHW_*6+/Q[RP\NK#6/PX(A+MB> 7#>^6)GJ\F9I? M'(>[W^3[I$)DB W1`P/3[HF*GLFB-REZRC-U*,)WOREZ0(R><<]CT*CZ6,Z! MO_11?T\%$I#ETK?]/?+O3+T(JW;14X+P&PJ6^09A.[1.57E2HN(X-5%R:S7H M&Y9$O.O?1OFL^*TRG<4A^'ME]5,?)5XE^$P*Y*,S,]H.I5#):P2?AV'RX1=* MG3*_4UZHUW,E'WY+?1SXKN_@LAV2![^IQB]I%TL^_/;ZE47\S75[NW@NQ')5 MWR&H;S'W)=:S5MXQ?:/!A]]B/[J8O]'NE'3%-RKKQO__QF_!3R\.?Z.MVATV M^#H/=R[K[.1S1M1//>^M!A^>D_$X$-_H"//ASS+X\-OS8TOG;]<60;_AY_8G M@*_+X%.X)OE0AW162EM]JEU/MHE\=&;*4GZ.)08?EONH41]^,__0.?/7=\C@ M.P9\Q\["=Y_!A]_,/WP.GQO3KK_?$<&Y,'@@P\OF`2F&7@I2SL4&7Z?!I_!G M1/A<%>2[867P#3_RX3D`GQ/!>2[XP^_4\%OY]G:/M]6W=YN07Q"&^? <%%/T M9[8%W]:;?*O;VA7]0OSY/'S*!M3OC1U"?!B$OP1P1 3C:'E;?4-#0APU!&X_ M8\;\H5\05)ZYU'DYBV7+09I;.*[3K&T<MYQF:\+QR6G^NN)1G6;-G-9IMIC. MPRJ]G-*/Z_0*2A_[N$J?2^D3.LTG[9SZK$J?3^E9G;Z T@\]J-(KN3Z=7D7I MAW6:OV=_6:?7M*77AO2V..1),7UA6WI]6WI#6_JBMO3%;>E+PF<EB;?.M*>7 M&_R=\^3C$PQ\7)T;L4)<"7]?D?KI`'WA>3F??U"E5XJ8P;\(^/%4@GN--/K- M6:-\4?#Y&IQ>)>KO0IYU]X3E.674AV=1'#/J^RV#']O_?;B/W!.6QWR>AT70 MW_@\?]DF#WY;99Z;])P(GYN$7\R:YR;A*07FN4FOBO"Y2?C5J[+G-6#/^/4J MGINU5_"Y1S\7X7.5\)@M\UPE/&G /%=I?4?X7"7\&M\\!PF__C3/58IUA,]5 MPCE6C9<U,%ZV=X3/6=K9$3YGZ9:V^JV.\#E+K8[P.4MXQH=YSM*='6WG+%G6 MR&"_98E2T[?KY;D?,#<4@LK.L>_K%=NZW"\ `P6E;9M2:J[GBQ:E$P9!5;TX+^ M8Z/<JM5F1,5MEB">=2UY-M) 4!8:&8=U<QV:D?2AP=&QMDK+NE(,Q&2E4@3) M;GYP]2Z.AU*G-5&0)\]I.LN14>,!)Y\<99[M-,\I4A8%B_.<)25/AIKW2"DZ M(XI*A ^7^G]02P<(N"8<#9H<``#930``4$L!`A0`% `(``@`[% +,1H7-'K? M`0``0P@``!4``````````````````````%1E<W14:6UE<B\N8V1T<')O:F5C M=%!+`0(4`!0`" `(`.Q0"S'3R7:,EP$```$'```2`````````````````"(" M``!497-T5&EM97(O+G!R;VIE8W102P$"% `4``@`" #L4 LQ9U9EH& ```"# M````$@````````````````#Y`P``5&5S=%1I;65R+TUA:V5F:6QE4$L!`A0` M% `(``@`[% +,;!;I,+^`@``1@<``!4`````````````````F00``%1E<W14 M:6UE<B]497-T5&EM97(N8U!+`0(4`!0`" `(`.Q0"S%5BLI(`@,``$H(```3 M`````````````````-H'``!497-T5&EM97(O8V]M;6]N+FUK4$L!`A0`% `( M``@`[% +,<QS\6]D````AP```!8`````````````````'0L``%1E<W14:6UE M<B]X.#8O36%K969I;&502P$"% `4``@`" #L4 LQSF0AC!D````9````& `` M``````````````#%"P``5&5S=%1I;65R+W@X-B]O+TUA:V5F:6QE4$L!`A0` M% `(``@`[% +,7Z-P#T)" ``T1(``!D`````````````````) P``%1E<W14 M:6UE<B]X.#8O;R]497-T5&EM97)02P$"% `4``@`" #L4 LQ]%:-7E0"```8 M!0``&P````````````````!T% ``5&5S=%1I;65R+W@X-B]O+U1E<W14:6UE M<BYO4$L!`A0`% `(``@`[% +,7>$1MCU!0``E P``"0````````````````` M$1<``%1E<W14:6UE<B]X.#8O;R]497-T5&EM97)X>#,V,S$V+G1M<%!+`0(4 M`!0`" `(`.Q0"S'.9"&,&0```!D````:`````````````````%@=``!497-T M5&EM97(O>#@V+V\M9R]-86ME9FEL95!+`0(4`!0`" `(`.Q0"S$5,)H5OQ8` M`.1#```=`````````````````+D=``!497-T5&EM97(O>#@V+V\M9R]497-T M5&EM97(N;U!+`0(4`!0`" `(`.Q0"S&X)AP-FAP``-E-```=```````````` M,T!497-T5&EM97(O>#@V+V\M9R]497-T5&EM97)?9U!+!08````` ..#0`-`)$#"H40``````
`
end

I suspect similar to the attached file (junk). Perhaps it’s the value of
the timer which is causing a problem, as it would never expire ( expire at
1,0, repeat 1,0). At any rate, the other attachment, TimerBug.zip, will
cause the computer to “hang” as well. Again, I’m running this application
from Momentics on Windows, not from RTP.

An absolute timer of 1seconds is going to expire immediately, since you
are long past 1 second. The example you sent just spins, printing out
“got a pulse from our timer” messages.


Colin

Richard Doucet wrote:

Having a test example is a bit complicated, as this is intergrated deep

in

our software with a lot of dependencies.

We are running 6.3.0. I was debugging the application at the time, via
Momentics on Windows. After executing the timer_settime() call, the
computer hung. We didn’t see any kernel shutdown (it normally runs

Photon,

if that matters).

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:cfd381$em2$> 1@inn.qnx.com> …


Hi Richard,

I am unable to reproduce this on a 6.3.0 system. Do you have an
example? Which version of QNX are you running?

By OS hang, do you see a kernel shutdown or does the system become
unresponsive?

Cheers,

Colin

Richard Doucet wrote:


During our porting exercise, we discovered this bug. When we sepcified


an


incorrect value for the flags (it was set to TIMER_ABSTIME + 1), the OS
hung.


\

cburgess@qnx.com


\

cburgess@qnx.com
\


cburgess@qnx.com

And when debugging, the moment you call the timer_settime(), the kernel
starts continuously sending you pulses, which since you aren’t running,
queue up until the system comes to it’s knees (poor thing!)

Colin Burgess wrote:

I suspect similar to the attached file (junk). Perhaps it’s the value of
the timer which is causing a problem, as it would never expire (
expire at
1,0, repeat 1,0). At any rate, the other attachment, TimerBug.zip, will
cause the computer to “hang” as well. Again, I’m running this
application
from Momentics on Windows, not from RTP.


An absolute timer of 1seconds is going to expire immediately, since you
are long past 1 second. The example you sent just spins, printing out
“got a pulse from our timer” messages.



Colin

Richard Doucet wrote:

Having a test example is a bit complicated, as this is intergrated deep


in

our software with a lot of dependencies.

We are running 6.3.0. I was debugging the application at the time, via
Momentics on Windows. After executing the timer_settime() call, the
computer hung. We didn’t see any kernel shutdown (it normally runs


Photon,

if that matters).

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:cfd381$em2$> 1@inn.qnx.com> …


Hi Richard,

I am unable to reproduce this on a 6.3.0 system. Do you have an
example? Which version of QNX are you running?

By OS hang, do you see a kernel shutdown or does the system become
unresponsive?

Cheers,

Colin

Richard Doucet wrote:


During our porting exercise, we discovered this bug. When we
sepcified



an


incorrect value for the flags (it was set to TIMER_ABSTIME + 1),
the OS
hung.


\

cburgess@qnx.com



\

cburgess@qnx.com


\


cburgess@qnx.com

“Colin Burgess” <cburgess@qnx.com> wrote in message
news:cfd7ha$em2$3@inn.qnx.com

I suspect similar to the attached file (junk). Perhaps it’s the value
of
the timer which is causing a problem, as it would never expire ( expire
at
1,0, repeat 1,0). At any rate, the other attachment, TimerBug.zip, will
cause the computer to “hang” as well. Again, I’m running this
application
from Momentics on Windows, not from RTP.

An absolute timer of 1seconds is going to expire immediately, since you
are long past 1 second. The example you sent just spins, printing out
“got a pulse from our timer” messages.

Yes, I get that just before the computer hangs. Have you tried running this
example from a Windows box via qconn?

Yes, and it hangs the machine.

Note that if you use CLOCK_SOFTTIME instead of CLOCK_REALTIME, then the
it_interval will be added to the current time, rather than the absolute
time, so you won’t get the flood (well, you will still get it at the
interval rate…)

Richard Doucet wrote:

“Colin Burgess” <> cburgess@qnx.com> > wrote in message
news:cfd7ha$em2$> 3@inn.qnx.com> …

I suspect similar to the attached file (junk). Perhaps it’s the value

of

the timer which is causing a problem, as it would never expire ( expire

at

1,0, repeat 1,0). At any rate, the other attachment, TimerBug.zip, will
cause the computer to “hang” as well. Again, I’m running this

application

from Momentics on Windows, not from RTP.

An absolute timer of 1seconds is going to expire immediately, since you
are long past 1 second. The example you sent just spins, printing out
“got a pulse from our timer” messages.



Yes, I get that just before the computer hangs. Have you tried running this
example from a Windows box via qconn?


cburgess@qnx.com