Closed p5pRT closed 18 years ago
Hi\,
I sent this message to the Template Toolkit (from CPAN) mailing list\, but it is really a problem independent of that module in the core perl interpreter.
Stephen _____________________________
Hi\,
Great work on the Template Toolkit. I have been using it for a short time and have been very successful with it. However\, I found that processing a certain file (with no variables or directives!!) was causing perl to core dump !?! Now I know that no perl code should *ever* cause the perl interpreter to core dump\, so I suspected a bug in Perl or in the way that Perl was compiled on my machine.
I was using Perl 5.6.0 on a VALinux box (running RedHat 6.0\, enhanced).
uname -a Linux shark 2.2.14-VA.5.1smp #1 SMP Tue Sep 12 18:02:03 PDT 2000 i686 unknown
The perl was compiled to use the libperl.so shared library.
The first thing I did was upgrade to TT 2.01. ... same core dump.
The second thing I did was upgrade Perl to 5.6.1\, and I built it with all of the default options (hands off configuration)\, which resulted in a statically linked perl binary. ... same core dump.
The third thing I did was trace into the Template Toolkit modules to see exactly where it was core dumping. In Template::Parser.pm\, in the interpolate_text() method\, there is a regular expression used (line 371) which is causing the core dump.
while ($text =~ / ( (?: \\. | [^\$] )+ ) # escaped or non-'$' character [$1] | ( \$ (?: # embedded variable [$2] (?: \{ ([^\}]*) \} ) # ${ ... } [$3] | ([\w\.]+) # $word [$4] ) ) /gx) {
This code is simply parsing through the text of the template that it has been given\, dividing it into chunks of text and "$var" or "${var}" variables which divide the text into chunks.
I was still doubting that this problem was anything other than my own fault\, so I continued to diagnose.
The fourth thing I did was to create a perl script which would recreate this error independently of the Template Toolkit\, using the offending expression. I created a script called "ptest"\, which begins as follows.
:::::::::::::: ptest :::::::::::::: #!/usr/local/bin/perl
$text = join(""\,\);
while ($text =~ / ( (?: \\. | [^\$] )+ ) # escaped or non-'$' character [$1] | ( \$ (?: # embedded variable [$2] (?: \{ ([^\}]*) \} ) # ${ ... } [$3] | ([\w\.]+) # $word [$4] ) ) /gx) {
($pre\, $var\, $dir) = ($1\, $3 || $4\, $2); print "pre=$pre var=$var dir=$dir\n";
}
__DATA__
So I put the offending input data after the __DATA__\, and I was able to recreate the core dump. I also tried other sets of data after the __DATA__ and got normal behavior. Now I had a simple\, isolated test case which I could email to someone for diagnosis! This "ptest" script is attached at the end of this email in uuencoded form.
The fifth thing I did was to transfer this script to a Sun box\, and sure enough\, it core dumped there too! This led me to a strong suspicion that there was in fact a bug in the Perl regular expression library\, which unfortunately\, causes the Template Toolkit to fail on occasion. Details of the Sun box and its perl interpreter are as follows.
www:/home/spadkins> uname -a SunOS www 5.7 Generic_106541-14 sun4u sparc SUNW\,Ultra-60 www:/home/spadkins> perl --version This is perl\, v5.6.0 built for sun4-solaris
The sixth thing I did was to try to find out if I could modify the regular expression so that it did not cause the error (i.e. isolate the problem\, even if the result would not work for the purposes of the Template Toolkit).
So I changed the following Reg Exp phrase from
( (?: \\. | [^\$] )+ ) # escaped or non-'$' character [$1] to ( (?: [^\$] )+ ) # escaped or non-'$' character [$1]
and the core dump went away. I know that this will not solve anything for the Template Toolkit\, because we need that expression to allow us to escape "$" signs ("\$") in the text. But it might help us figure out a work-around.
Anyway\, this is where I ran out of steam\, because I am not such a regular expression guru that I could proceed and find a work-around.
That's when I turned to this mailing list. It seems to me that two things could happen.
* Someone might be able to find a work-around so that the Template Toolkit does not need to use the buggy Perl syntax (That would be people on this list.)
* Someone who works with Perl could investigate why the seemingly legal regular expression is causing a core dump. (Does someone on this list know whom I should forward this email to for that?)
Again\, thanks for all the good work.
Stephen ______________________________________
begin 775 ptest M(R$O=7-R+VQO8V%L+V)I;B]P97)L"@HD=&5X="`](&IO:6XH(B(L/$1!5$$^ M*3L*"B`@("!W:&EL92`H)'1E>'0@/7X*("`@("`@("`@("`O"B`@("`@("`@ M("`@*"`H/SH@7%PN('P@6UY\<)%T@*2L@*2`@("\,@97-C87!E9"!O\<B!N;VXM M)R0G(&-H87)A8W1E\<B!;)#%="B`@("`@("`@("`@?`H@("`@("`@("`@("@@ M7"0@*#\Z("`@("`@("`@("`@("`@("`C(&5M8F5D9&5D('9A\<FEA8FQE("`@ M("`@("`@("`@6R0R70H@("`@("`@("`@("`@*#\Z(%Q[("A;7EQ]72HI(%Q] M("D@("`C("1[("XN+B!]("`@("`@("`@("`@("`@("`@("`@6R0S70H@("`@ M("`@("`@("`@?`H@("`@("`@("`@("`@*%M\<=UPN72LI("`@("`@("`@("`@ M("`C("1W;W)D("`@("`@("`@("`@("`@("`@("`@("`@6R0T70H@("`@("`@ M("`@("`@*0H@("`@("`@("`@("D*("`@("`@("`O9W@I('L*"B`@("`@("`@ M*"1P\<F4L("1V87(L("1D:7(I(#T@*"0Q+"`D\,R!\?"`D-"P@)#(I.PH@("`@ M("`@('!R:6YT(")P\<F4])'!R92!V87(])'9A\<B!D:7(])&1I\<EQN(CL*"B`@ M("!]"@I?7T1!5$%?7PH\:'1M;#X*/&AE860^"CQT:71L93YM:61D;&4N9G)A M;64N:'1M;#PO=&ET;&4^"CQM971A(&AT='`M97%U:78](D-O;G1E;G0M5'EP M92(@8V]N=&5N=#TB=&5X="]H=&UL.R!C:&%R\<V5T/6ES;RTX.#4Y+3$B/@H\ M;&EN:R!R96P](G-T>6QE\<VAE970B('1Y\<&4](G1E>'0O8W-S(B!H\<F5F/2(N M+B]S='EL93(N8W-S(CX*/"]H96%D/@H*/&)O9'D@8F=C;VQO\<CTB(V9F9F9F M9B(@;&5F=&UA\<F=I;CTB\,3`B('1O\<&UA\<F=I;CTB\,"(@;6%R9VEN=VED=&@] M(C$P(B!M87)G:6YH96EG:'0](C`B/@H*/&9O\<FT@;65T:&]D/2)03U-4(B!A M8W1I;VX](FAT='`Z+R]W=W\<N;V9F:6-E=FES:6]N+F-O;2]C9VDM8FEN+S$N M\,"XP+W!U8B]A8V]C+V-A;7!?\<F5Q=65S="(^"CQT86)L92!W:61T:#TB-S4P M(B!B;W)D97(](C`B(&-E;&QS\<&%C:6YG/2(P(B!C96QL\<&%D9&EN9STB\,B(@ M8VQA\<W\,]8F]D>6L^"B`@/'1R/@H@("`@("`\=&0@=F%L:6=N/2)T;W`B('=I M9'1H/2(U-3`B/@H@("`@("`\=&%B;&4@8F]R9&5R/3`@=VED=&@](C4U\,"(@ M8V5L;'!A9&1I;F\<](C(B(&-E;&QS\<&%C:6YG/2(P(CX*("`@("`@("`\='(^ M"B`@("`@("`@("`@(#QT9"!V86QI9VX]=&]P(&)G8V]L;W(](B-E965E964B M('=I9'1H/34U\,"!C;&%S\<STB8F]D>5]S=6(Q(CX\8CY#86UP97(@26YF;W)M M871I;VX\+V(^/"]T9#X*("`@("`@("`@(#PO='(^"B`@("`@("`@("`\='(^ M"B`@("`@("`@("`@(#QT9"!C;&%S\<SUB;V1Y:R!W:61T:#TU-3`^"B`@("`@ M("`@("`@(`H@("`@("`@("`@("`@(#QT86)L92!B;W)D97(](C`B('=I9'1H M/2(U-3`B(&-E;&QP861D:6YG/3(@8V5L;'-P86-I;F\<]\,#X*("`@("`@("`@ M("`@("`@(#QT\<CX*("`@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED M9&QE(B!W:61T:#TB.#`B(&-L87-S/6)O9'EK/@H@("`@("`@("`@("`@("`@ M("`@($9I\<G-T($YA;64Z"B`@("`@("`@("`@("`@("`@(#PO=&0^"B`@("`@ M("`@("`@("`@("`@(#QT9"!W:61T:#TR\,C`^"B`@("`@("`@("`@("`@("`@ M("`@/&EN\<'5T('1Y\<&4](G1E>'0B(&YA;64](F9I\<G-T7VYA;64B("!S:7IE M/2(R\,"(@;6%X;&5N9W1H/2(Y.2(@8VQA\<W\,]:6YP=70R/@H@("`@("`@("`@ M("`@("`@("`\+W1D/@H@("`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M M:61D;&4B('=I9'1H/2(Q\,S`B(&-L87-S/6)O9'EK/@H@("`@("`@("`@("`@ M("`@("`@($%G93H*("`@("`@("`@("`@("`@("`@/"]T9#X*("`@("`@("`@ M("`@("`@("`@/'1D/@H@("`@("`@("`@("`@("`@("`@(#QI;G!U="!T>7!E M/2)T97AT(B!N86UE/2)A9V4B("!S:7IE/2(R(B!M87AL96YG=&@](C(B(&-L M87-S/6EN\<'5T\,CX*("`@("`@("`@("`@("`@("`@/"]T9#X*("`@("`@("`@ M("`@("`@(#PO='(^"B`@("`@("`@("`@("`@("`\='(^"B`@("`@("`@("`@ M("`@("`@(#QT9"!V86QI9VX](FUI9&1L92(@8VQA\<W\,]8F]D>6L^"B`@("`@ M("`@("`@("`@("`@("`@3&%S="!.86UE.@H@("`@("`@("`@("`@("`@("`\ M+W1D/@H@("`@("`@("`@("`@("`@("`\=&0^"B`@("`@("`@("`@("`@("`@ M("`@/&EN\'5T\('1Y\<&4\]\(G1E>'0B\(&YA;64\]\(FQA\<W1?;F%M92\(@​\('\-IF4] M(C(P(B!M87AL96YG=&@](CDY(B`@8VQA\<W\,]:6YP=70R/@H@("`@("`@("`@ M("`@("`@("`\+W1D/@H@("`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M M:61D;&4B(&-L87-S/6)O9'EK/@H@("`@("`@("`@("`@("`@("`@($9I\<G-T M(%1I;64@0V%M\<&5R/PH@("`@("`@("`@("`@("`@("`\+W1D/@H@("`@("`@ M("`@("`@("`@("`\=&0^"B`@("`@("`@("`@("`@("`@("`@/&EN\<'5T('1Y M\<&4](F-H96-K8F]X(B!N86UE/2)N97=?8V%M\<&5R7VEN9"(@=F%L=64](E12 M544B/@H@("`@("`@("`@("`@("`@("`\+W1D/@H@("`@("`@("`@("`@("`@ M/"]T\<CX*("`@("`@("`@("`@("`@(#QT\<CX*("`@("`@("`@("`@("`@("`@ M"B`@("`@("`@("`@("`@("`@(#QT9"!V86QI9VX](FUI9&1L92(@8VQA\<W\,] M8F]D>6L^"B`@("`@("`@("`@("`@("`@("`@0FER=&@@1&%T93H*("`@("`@ M("`@("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`@("`@/'1D/@H@("`@ M("`@("`@("`@("`@("`@(#QS96QE8W0@;F%M93TB8FER=&A?9&%Y(B!C;&%S M\<SUI;G!U=#(^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64] M(C$B/C$\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V M86QU93TB\,B(^\,CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I M;VX@('9A;'5E/2(S(CXS/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@ M/&]P=&EO;B`@=F%L=64](C0B/C0\+V]P=&EO;CX*("`@("`@("`@("`@("`@ M("`@("`\;W!T:6]N("!V86QU93TB-2(^-3PO;W!T:6]N/@H@("`@("`@("`@ M("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(V(CXV/"]O\<'1I;VX^"B`@("`@ M("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C\<B/C\<\+V]P=&EO;CX* M("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB."(^.#PO;W!T M:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Y(CXY M/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64] M(C$P(CXQ\,#PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@ M('9A;'5E/2(Q\,2(^\,3$\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\ M;W!T:6]N("!V86QU93TB\,3(B/C$R/"]O\<'1I;VX^"B`@("`@("`@("`@("`@ M("`@("`@/&]P=&EO;B`@=F%L=64](C$S(CXQ\,SPO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q-"(^\,30\+V]P=&EO;CX* M("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB\,34B/C$U/"]O M\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C$V M(CXQ-CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A M;'5E/2(Q-R(^\,3\<\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T M:6]N("!V86QU93TB\,3@B/C$X/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@ M("`@/&]P=&EO;B`@=F%L=64](C$Y(CXQ.3PO;W!T:6]N/@H@("`@("`@("`@ M("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(R\,"(^\,C`\+V]P=&EO;CX*("`@ M("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB\,C$B/C(Q/"]O\<'1I M;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C(R(CXR M\,CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E M/2(R\,R(^\,C\,\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N M("!V86QU93TB\,C0B/C(T/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@ M/&]P=&EO;B`@=F%L=64](C(U(CXR-3PO;W!T:6]N/@H@("`@("`@("`@("`@ M("`@("`@(#QO\<'1I;VX@('9A;'5E/2(R-B(^\,C8\+V]P=&EO;CX*("`@("`@ M("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB\,C\<B/C(W/"]O\<'1I;VX^ M"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C(X(CXR.#PO M;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(R M.2(^\,CD\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V M86QU93TB\,S`B/C\,P/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P M=&EO;B`@=F%L=64](C\,Q(CXS\,3PO;W!T:6]N/@H@("`@("`@("`@("`@("`@ M("`@(#PO\<V5L96-T/@H*("`@("`@("`@("`@("`@("`@("`\\<V5L96-T(&YA M;64](F)I\<G1H7VUO;B(@8VQA\<W\,]:6YP=70R/@H@("`@("`@("`@("`@("`@ M("`@(#QO\<'1I;VX@('9A;'5E/2)*86XB/DIA;CPO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)&96(B/D9E8CPO;W!T:6]N M/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)-87(B/DUA M\<CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E M/2)!\<'(B/D%P\<CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I M;VX@('9A;'5E/2)-87DB/DUA>3PO;W!T:6]N/@H@("`@("`@("`@("`@("`@ M("`@(#QO\<'1I;VX@('9A;'5E/2)*=6XB/DIU;CPO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)*=6PB/DIU;#PO;W!T:6]N M/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)!=6\<B/D%U M9SPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E M/2)397`B/E-E\<#PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I M;VX@('9A;'5E/2)/8W0B/D]C=#PO;W!T:6]N/@H@("`@("`@("`@("`@("`@ M("`@(#QO\<'1I;VX@('9A;'5E/2).;W8B/DYO=CPO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)$96\,B/D1E8SPO;W!T:6]N M/@H@("`@("`@("`@("`@("`@("`@(#PO\<V5L96-T/@H*("`@("`@("`@("`@ M("`@("`@("`\\<V5L96-T(&YA;64](F)I\<G1H7WER(B!C;&%S\<SUI;G!U=#(^ M"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C$Y-3`B/C$Y M-3`\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU M93TB\,3DU\,2(^\,3DU\,3PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO M\<'1I;VX@('9A;'5E/2(Q.34R(CXQ.34R/"]O\<'1I;VX^"B`@("`@("`@("`@ M("`@("`@("`@/&]P=&EO;B`@=F%L=64](C$Y-3\,B/C$Y-3\,\+V]P=&EO;CX* M("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB\,3DU-"(^\,3DU M-#PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E M/2(Q.34U(CXQ.34U/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P M=&EO;B`@=F%L=64](C$Y-38B/C$Y-38\+V]P=&EO;CX*("`@("`@("`@("`@ M("`@("`@("`\;W!T:6]N("!V86QU93TB\,3DU-R(^\,3DU-SPO;W!T:6]N/@H@ M("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q.34X(CXQ.34X M/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64] M(C$Y-3DB/C$Y-3D\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T M:6]N("!V86QU93TB\,3DV\,"(^\,3DV\,#PO;W!T:6]N/@H@("`@("`@("`@("`@ M("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q.38Q(CXQ.38Q/"]O\<'1I;VX^"B`@ M("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C$Y-C(B/C$Y-C(\ M+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB M\,3DV\,R(^\,3DV\,SPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I M;VX@('9A;'5E/2(Q.38T(CXQ.38T/"]O\<'1I;VX^"B`@("`@("`@("`@("`@ M("`@("`@/&]P=&EO;B`@=F%L=64](C$Y-C4B/C$Y-C4\+V]P=&EO;CX*("`@ M("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB\,3DV-B(^\,3DV-CPO M;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q M.38W(CXQ.38W/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO M;B`@=F%L=64](C$Y-C@B/C$Y-C@\+V]P=&EO;CX*("`@("`@("`@("`@("`@ M("`@("`\;W!T:6]N("!V86QU93TB\,3DV.2(^\,3DV.3PO;W!T:6]N/@H@("`@ M("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q.3\<P(CXQ.3\<P/"]O M\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C$Y M-S$B/C$Y-S$\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N M("!V86QU93TB\,3DW\,B(^\,3DW\,CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@ M("`@(#QO\<'1I;VX@('9A;'5E/2(Q.3\<S(CXQ.3\<S/"]O\<'1I;VX^"B`@("`@ M("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C$Y-S0B/C$Y-S0\+V]P M=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB\,3DW M-2(^\,3DW-3PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@ M('9A;'5E/2(Q.3\<V(CXQ.3\<V/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@ M("`@/&]P=&EO;B`@=F%L=64](C$Y-S\<B/C$Y-S\<\+V]P=&EO;CX*("`@("`@ M("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB\,3DW."(^\,3DW.#PO;W!T M:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q.3\<Y M(CXQ.3\<Y/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@ M=F%L=64](C$Y.#`B/C$Y.#`\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@ M("`\;W!T:6]N("!V86QU93TB\,3DX\,2(^\,3DX\,3PO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q.3@R(CXQ.3@R/"]O\<'1I M;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C$Y.#\,B M/C$Y.#\,\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N('-E M;&5C=&5D('9A;'5E/2(Q.3@T(CXQ.3@T/"]O\<'1I;VX^"B`@("`@("`@("`@ M("`@("`@("`@/&]P=&EO;B`@=F%L=64](C$Y.#4B/C$Y.#4\+V]P=&EO;CX* M("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB\,3DX-B(^\,3DX M-CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E M/2(Q.3@W(CXQ.3@W/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P M=&EO;B`@=F%L=64](C$Y.#@B/C$Y.#@\+V]P=&EO;CX*("`@("`@("`@("`@ M("`@("`@("`\;W!T:6]N("!V86QU93TB\,3DX.2(^\,3DX.3PO;W!T:6]N/@H@ M("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q.3DP(CXQ.3DP M/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64] M(C$Y.3$B/C$Y.3$\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T M:6]N("!V86QU93TB\,3DY\,B(^\,3DY\,CPO;W!T:6]N/@H@("`@("`@("`@("`@ M("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q.3DS(CXQ.3DS/"]O\<'1I;VX^"B`@ M("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](C$Y.30B/C$Y.30\ M+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB M\,3DY-2(^\,3DY-3PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I M;VX@('9A;'5E/2(Q.3DV(CXQ.3DV/"]O\<'1I;VX^"B`@("`@("`@("`@("`@ M("`@("`@/&]P=&EO;B`@=F%L=64](C$Y.3\<B/C$Y.3\<\+V]P=&EO;CX*("`@ M("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB\,3DY."(^\,3DY.#PO M;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2(Q M.3DY(CXQ.3DY/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO M;B`@=F%L=64](C(P\,#`B/C(P\,#`\+V]P=&EO;CX*("`@("`@("`@("`@("`@ M("`@("`\;W!T:6]N("!V86QU93TB\,C`P\,2(^\,C`P\,3PO;W!T:6]N/@H@("`@ M("`@("`@("`@("`@("`@(#PO\<V5L96-T/@H@("`@("`@("`@("`@("`@("`\ M+W1D/@H@("`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L M87-S/6)O9'EK/@H@("`@("`@("`@("`@("`@("`@(%-E>#H*("`@("`@("`@ M("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`@("`@/'1D/@H@("`@("`@ M("`@("`@("`@("`@(#QS96QE8W0@;F%M93TB\<V5X(B!C;&%S\<SUI;G!U=#(^ M"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](DTB/DT\+V]P M=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB1B(^ M1CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#PO\<V5L96-T/@H@("`@ M("`@("`@("`@("`@("`\+W1D/@H@("`@("`@("`@("`@("`@/"]T\<CX*("`@ M("`@("`@("`@("`\+W1A8FQE/@H@("`@("`@("`@("`\+W1D/@H@("`@("`@ M("`@/"]T\<CX*("`@("`@("`\+W1A8FQE/@H*("`@("`@/'1A8FQE(&)O\<F1E M\<CTP('=I9'1H/2(U-3`B(&-E;&QP861D:6YG/2(R(B!C96QL\<W!A8VEN9STB M\,"(^"B`@("`@("`@/'1R/B`*("`@("`@("`@(#QT9"!V86QI9VX]=&]P(&)G M8V]L;W(](B-E965E964B('=I9'1H/34U\,"!C;&%S\<STB8F]D>5]S=6(Q(CX\ M8CY087)E;G0@"B`@("`@("`@("`@($EN9F]R;6%T:6]N/"]B/CPO=&0^"B`@ M("`@("`@/"]T\<CX*("`@("`@("`\='(^(`H@("`@("`@("`@/'1D(&-L87-S M/6)O9'EK('=I9'1H/34U\,#X@"B`@("`@("`@("`@(#QT86)L92!B;W)D97(] M(C`B('=I9'1H/2(U-3`B(&-E;&QP861D:6YG/3(@8V5L;'-P86-I;F\<]\,"!H M96EG:'0](C@W(CX*("`@("`@("`@("`@("`\='(^(`H@("`@("`@("`@("`@ M("`@/'1D('9A;&EG;CTB;6ED9&QE(B!W:61T:#TB\,3$P(B!C;&%S\<SUB;V1Y M:SX@4&%R96YT\<R!.86UE\<SH@/"]T9#X*("`@("`@("`@("`@("`@(#QT9"!W M:61T:#TQ-CD^(`H@("`@("`@("`@("`@("`@("`\:6YP=70@='EP93TB=&5X M="(@;F%M93TB\&%R96YT\<U\]N86UE\<R\(@​\('\-IF4](C(P(B!M87AL96YG=&@] M(CDY(B!C;&%S\<SUI;G!U=#(^"B`@("`@("`@("`@("`@("`\+W1D/@H@("`@ M("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE(B!C;&%S\<SUB;V1Y:R!W M:61T:#TB\,3$P(CY-86EL:6YG($%D9')E\<W\,Z/"]T9#X*("`@("`@("`@("`@ M("`@(#QT9"!W:61T:#TB\,38Y(CX@"B`@("`@("`@("`@("`@("`@(#QI;G!U M="!T>7!E/2)T97AT(B!N86UE/2)A9&1R97-S(B`@\<VEZ93TB\,C`B(&UA>&QE M;F=T:#TB.3DB(&-L87-S/6EN\<'5T\,CX*("`@("`@("`@("`@("`@(#PO=&0^ M"B`@("`@("`@("`@("`@/"]T\<CX*("`@("`@("`@("`@("`\='(^(`H@("`@ M("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE(B!C;&%S\<SUB;V1Y:R!W M:61T:#TB\,3$P(CX@2&]M92!0:&]N93H@/"]T9#X*("`@("`@("`@("`@("`@ M(#QT9"!W:61T:#TB\,38Y(CX@"B`@("`@("`@("`@("`@("`@(#QI;G!U="!T M>7!E/2)T97AT(B!N86UE/2)H;VUE7W!H;VYE(B`@\<VEZ93TB\,C`B(&UA>&QE M;F=T:#TB.3DB("!C;&%S\<SUI;G!U=#(^"B`@("`@("`@("`@("`@("`\+W1D M/@H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE(B!C;&%S\<SUB M;V1Y:R!W:61T:#TB\,3`R(B!H96EG:'0](C`B/B!#:71Y.CPO=&0^"B`@("`@ M("`@("`@("`@("`\=&0@=VED=&@](C$U\,R(^(`H@("`@("`@("`@("`@("`@ M("`\:6YP=70@='EP93TB=&5X="(@;F%M93TB8VET>2(@('-I>F4](C(P(B!M M87AL96YG=&@](CDY(B!C;&%S\<SUI;G!U=#(^"B`@("`@("`@("`@("`@("`\ M+W1D/@H@("`@("`@("`@("`@(#PO='(^"B`@("`@("`@("`@("`@/'1R/B`* M("`@("`@("`@("`@("`@(#QT9"!V86QI9VX](FUI9&1L92(@8VQA\<W\,]8F]D M>6L@=VED=&@](C$Q\,"(^(%=O\<FL@4&AO;F4Z(#PO=&0^"B`@("`@("`@("`@ M("`@("`\=&0@=VED=&@](C$V.2(^(`H@("`@("`@("`@("`@("`@("`\:6YP M=70@='EP93TB=&5X="(@;F%M93TB=V]R:U]P:&]N92(@('-I>F4](C(P(B!M M87AL96YG=&@](CDY(B!C;&%S\<SUI;G!U=#(^"B`@("`@("`@("`@("`@("`\ M+W1D/@H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE(B!C;&%S M\<SUB;V1Y:R!W:61T:#TB\,3`R(B!H96EG:'0](C`B/B!3=&%T93H\+W1D/@H@ M("`@("`@("`@("`@("`@/'1D('=I9'1H/2(Q-3\,B/B`*("`@("`@("`@("`@ M("`@("`@/'-E;&5C="!N86UE/2)S=&%T92(@8VQA\<W\,]:6YP=70R/@H@("`@ M("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)!2R(^04L\+V]P=&EO M;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB04PB/D%\, M/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64] M(D%2(CY!4CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@ M('9A;'5E/2)!6B(^05H\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\ M;W!T:6]N("!V86QU93TB0T$B/D-!/"]O\<'1I;VX^"B`@("`@("`@("`@("`@ M("`@("`@/&]P=&EO;B`@=F%L=64](D-/(CY#3SPO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)#5"(^0U0\+V]P=&EO;CX* M("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB1$\,B/D1#/"]O M\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](D1% M(CY$13PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A M;'5E/2)&3"(^1DP\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T M:6]N('-E;&5C=&5D('9A;'5E/2)'02(^1T$\+V]P=&EO;CX*("`@("`@("`@ M("`@("`@("`@("`\;W!T:6]N("!V86QU93TB2$DB/DA)/"]O\<'1I;VX^"B`@ M("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](DE!(CY)03PO;W!T M:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2))1"(^ M240\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU M93TB24PB/DE\,/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO M;B`@=F%L=64](DE.(CY)3CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@ M(#QO\<'1I;VX@('9A;'5E/2)+4R(^2U\,\+V]P=&EO;CX*("`@("`@("`@("`@ M("`@("`@("`\;W!T:6]N("!V86QU93TB2UDB/DM9/"]O\<'1I;VX^"B`@("`@ M("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](DQ!(CY\,03PO;W!T:6]N M/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)-02(^34$\ M+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB M340B/DU$/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@ M=F%L=64](DU%(CY-13PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO M\<'1I;VX@('9A;'5E/2)-22(^34D\+V]P=&EO;CX*("`@("`@("`@("`@("`@ M("`@("`\;W!T:6]N("!V86QU93TB34XB/DU./"]O\<'1I;VX^"B`@("`@("`@ M("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](DU/(CY-3SPO;W!T:6]N/@H@ M("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)-4R(^35\,\+V]P M=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB350B M/DU4/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L M=64](DY#(CY.0SPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I M;VX@('9A;'5E/2).1"(^3D0\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@ M("`\;W!T:6]N("!V86QU93TB3D4B/DY%/"]O\<'1I;VX^"B`@("`@("`@("`@ M("`@("`@("`@/&]P=&EO;B`@=F%L=64](DY((CY.2#PO;W!T:6]N/@H@("`@ M("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2).2B(^3DH\+V]P=&EO M;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB3DTB/DY- M/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64] M(DY6(CY.5CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@ M('9A;'5E/2).62(^3ED\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\ M;W!T:6]N("!V86QU93TB3T@B/D](/"]O\<'1I;VX^"B`@("`@("`@("`@("`@ M("`@("`@/&]P=&EO;B`@=F%L=64](D]+(CY/2SPO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)/4B(^3U(\+V]P=&EO;CX* M("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB4$$B/E!!/"]O M\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E)) M(CY223PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A M;'5E/2)30R(^4T\,\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T M:6]N("!V86QU93TB4T0B/E-$/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@ M("`@/&]P=&EO;B`@=F%L=64](E1.(CY43CPO;W!T:6]N/@H@("`@("`@("`@ M("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)46"(^5%@\+V]P=&EO;CX*("`@ M("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB550B/E54/"]O\<'1I M;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E9!(CY6 M03PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E M/2)65"(^5E0\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N M("!V86QU93TB5T$B/E=!/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@ M/&]P=&EO;B`@=F%L=64](E=)(CY723PO;W!T:6]N/@H@("`@("`@("`@("`@ M("`@("`@(#QO\<'1I;VX@('9A;'5E/2)75B(^5U8\+V]P=&EO;CX*("`@("`@ M("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB5UDB/E=9/"]O\<'1I;VX^ M"B`@("`@("`@("`@("`@("`@(#PO\<V5L96-T/@H@("`@("`@("`@("`@("`@ M/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@("`@("`@("`@("`@(#QT\<CX@ M"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B('=I9'1H/2(Q M\,#(B(&-L87-S/6)O9'EK/B!087)E;G1S($4M;6%I;#H\+W1D/@H@("`@("`@ M("`@("`@("`@/'1D('=I9'1H/2(Q-3\,B/B`*("`@("`@("`@("`@("`@("`@ M/&EN\'5T\('1Y\<&4\]\(G1E>'0B\(&YA;64\]\(G\!A\<F5N=%\]E;6%I;"\(@​\('\-IF4] M(C(P(B!M87AL96YG=&@](CDY(B!C;&%S\<SUI;G!U=#(^"B`@("`@("`@("`@ M("`@("`\+W1D/@H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE M(B!C;&%S\<SUB;V1Y:R!W:61T:#TB\,3`R(CX@6FEP.B`\+W1D/@H@("`@("`@ M("`@("`@("`@/'1D('=I9'1H/2(Q-3\,B/B`*("`@("`@("`@("`@("`@("`@ M/&EN\'5T\('1Y\<&4\]\(G1E>'0B\(&YA;64\]\(GII\<"\(@​\('\-IF4](C(P(B!M87AL M96YG=&@](CDY(B!C;&%S\<SUI;G!U=#(^"B`@("`@("`@("`@("`@("`\+W1D M/@H@("`@("`@("`@("`@(#PO='(^"B`@("`@("`@("`@(#PO=&%B;&4^"B`@ M("`@("`@("`\+W1D/@H@("`@("`@(#PO='(^"B`@("`@(#PO=&%B;&4^"B`@ M("`@(#QT86)L92!B;W)D97(]\,"!W:61T:#TB-34P(B!C96QL\<&%D9&EN9STB M\,B(@8V5L;'-P86-I;F\<](C`B(&AE:6=H=#TB.38B/@H@("`@("`@(#QT\<CX@ M"B`@("`@("`@("`\=&0@=F%L:6=N/71O\<"!B9V-O;&]R/2(C965E965E(B!W M:61T:#TU-3`@8VQA\<W\,](F)O9'E?\<W5B\,2(@:&5I9VAT/2(Q-2(^/&(^0VAU M\<F-H(`H@("`@("`@("`@("!-96UB97)S:&EP/"]B/CPO=&0^"B`@("`@("`@ M/"]T\<CX*("`@("`@("`\='(^(`H@("`@("`@("`@/'1D(&-L87-S/6)O9'EK M('=I9'1H/34U\,#X@"B`@("`@("`@("`@(#QT86)L92!B;W)D97(](C`B('=I M9'1H/2(U-3`B(&-E;&QP861D:6YG/3(@8V5L;'-P86-I;F\<]\,#X*("`@("`@ M("`@("`@("`\='(^(`H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED M9&QE(B!W:61T:#TB\,S@W(B!C;&%S\<SUB;V1Y:SX@07)E('EO=2!A(&UE;6)E M\<B`*("`@("`@("`@("`@("`@("`@;V8@=&AE($%T;&%N=&$@0VAU\<F-H(&]F M($-H\<FES=#\\+W1D/@H@("`@("`@("`@("`@("`@/'1D('=I9'1H/2(Q-34B M/B`*("`@("`@("`@("`@("`@("`@/&EN\<'5T('1Y\<&4](F-H96-K8F]X(B!N M86UE/2)P87)E;G1S7VUE;6)?:6YD(B!V86QU93TB;VXB/@H@("`@("`@("`@ M("`@("`@/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@("`@("`@("`@("`@ M(#QT\<CX@"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L M87-S/6)O9'EK('=I9'1H/2(S.#\<B/B!7:&EC:"!#;VYG\<F5G871I;VX@"B`@ M("`@("`@("`@("`@("`@(&%R92!Y;W4@\<&%R="!O9C\@/"]T9#X*("`@("`@ M("`@("`@("`@(#QT9"!W:61T:#TB\,34U(CX@"B`@("`@("`@("`@("`@("`@ M(#QI;G!U="!T>7!E/2)T97AT(B!N86UE/2)C;VYG\<F5G871I;VXB("!S:7IE M/2(R\,"(@;6%X;&5N9W1H/2(Y.2(@8VQA\<W\,]:6YP=70R/@H@("`@("`@("`@ M("`@("`@/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@("`@("`@("`@("`@ M(#QT\<CX@"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L M87-S/6)O9'EK('=I9'1H/2(S.#\<B/B!!=&QA;G1A($-H=7)C:"!M96UB97)S M+"`*("`@("`@("`@("`@("`@("`@\<V5L96-T(')E9VEO;B!A;F0@\<V5C=&]R M/"]T9#X*("`@("`@("`@("`@("`@(#QT9"!W:61T:#TB\,34U(CX@"B`@("`@ M("`@("`@("`@("`@(#QS96QE8W0@;F%M93TB\<F5G:6]N7W-E8W1O\<B(@8VQA M\<W\,]:6YP=70R/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@=F%L=64] M(D-H;V]S92!396-T;W(@:68@:6X@071L86YT82(^0VAO;W-E(%-E8W1O\<B!I M9B!I;B!!=&QA;G1A/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P M=&EO;B!V86QU93TB071L86YT82U4965N\<R(^071L86YT82U4965N\<SPO;W!T M:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@=F%L=64](D%T;&%N M=&$M5V5S="U#87-C861E(CY!=&QA;G1A+5=E\<W0M0V%S8V%D93PO;W!T:6]N M/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@=F%L=64](D%T;&%N=&$M M5V5S="U#=6UB97)L86YD(CY!=&QA;G1A+5=E\<W0M0W5M8F5R;&%N9#PO;W!T M:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@=F%L=64](D%T;&%N M=&$M5V5S="U#;VQL96=E(%!A\<FLB/D%T;&%N=&$M5V5S="U#;VQL96=E(%!A M\<FL\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N('9A;'5E M/2)!=&QA;G1A+5=E\<W0M1&]W;G1O=VXB/D%T;&%N=&$M5V5S="U$;W=N=&]W M;CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@=F%L=64] M(D%T;&%N=&$M5V5S="U*;VYE\<V)O\<F\B/D%T;&%N=&$M5V5S="U*;VYE\<V)O M\<F\\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N('9A;'5E M/2)!=&QA;G1A+4YO\<G1H=V5S="U-87)I971T82(^071L86YT82U.;W)T:'=E M\<W0M36%R:65T=&$\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T M:6]N('9A;'5E/2)!=&QA;G1A+4YO\<G1H=V5S="U2;W-W96QL(CY!=&QA;G1A M+4YO\<G1H=V5S="U2;W-W96QL/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@ M("`@/&]P=&EO;B!V86QU93TB071L86YT82U.;W)T:'=E\<W0M16%S="!#;V)B M(CY!=&QA;G1A+4YO\<G1H=V5S="U%87-T($-O8F(\+V]P=&EO;CX*("`@("`@ M("`@("`@("`@("`@("`\;W!T:6]N('9A;'5E/2)!=&QA;G1A+4YO\<G1H=V5S M="U+96YN97-A=R(^071L86YT82U.;W)T:'=E\<W0M2V5N;F5S87\<\+V]P=&EO M;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N('9A;'5E/2)!=&QA;G1A M+4YO\<G1H=V5S="U!)F%M\<#M%(CY!=&QA;G1A+4YO\<G1H=V5S="U!)F%M\<#M% M/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B!V86QU93TB M071L86YT82U%87-T+5-T;VYE($UO=6YT86EN(CY!=&QA;G1A+45A\<W0M4W1O M;F4@36]U;G1A:6X\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T M:6]N('9A;'5E/2)!=&QA;G1A+45A\<W0M3&ET:&]N:6$B/D%T;&%N=&$M16%S M="U\,:71H;VYI83PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I M;VX@=F%L=64](D%T;&%N=&$M16%S="U.;W)T:&QA:V4B/D%T;&%N=&$M16%S M="U.;W)T:&QA:V4\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T M:6]N('9A;'5E/2)!=&QA;G1A+4YO\<G1H96%S="U\,87=R96YC979I;&QE(CY! M=&QA;G1A+4YO\<G1H96%S="U\,87=R96YC979I;&QE/"]O\<'1I;VX^"B`@("`@ M("`@("`@("`@("`@("`@/&]P=&EO;B!V86QU93TB071L86YT82U.;W)T:&5A M\<W0M3&EL8G5R;B(^071L86YT82U.;W)T:&5A\<W0M3&EL8G5R;CPO;W!T:6]N M/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@=F%L=64](D%T;&%N=&$M M3F]R=&AE87-T+41U;'5T:"(^071L86YT82U.;W)T:&5A\<W0M1'5L=71H/"]O M\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B!V86QU93TB071L M86YT82U.;W)T:&5A\<W0M0V]L;&EN\<R!(:6QL(CY!=&QA;G1A+4YO\<G1H96%S M="U#;VQL:6YS($AI;&P\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\ M;W!T:6]N('9A;'5E/2)!=&QA;G1A+4YO\<G1H96%S="U.;W)C\<F]S\<R(^071L M86YT82U.;W)T:&5A\<W0M3F]R8W)O\<W\,\+V]P=&EO;CX*("`@("`@("`@("`@ M("`@("`@("`\;W!T:6]N('9A;'5E/2)!=&QA;G1A+4-A;7!U\<RU#86UP=7\,B M/D%T;&%N=&$M0V%M\<'5S+4-A;7!U\<SPO;W!T:6]N/@H@("`@("`@("`@("`@ M("`@("`@(#QO\<'1I;VX@=F%L=64](D%T;&%N=&$M0V%M\<'5S+4=352(^071L M86YT82U#86UP=7\,M1U-5/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@ M/&]P=&EO;B!V86QU93TB071L86YT82U#86UP=7\,M54=!(CY!=&QA;G1A+4-A M;7!U\<RU51T$\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N M('9A;'5E/2)!=&QA;G1A+4%T:&5N\<RU%87-T($%T:&5N\<R(^071L86YT82U! M=&AE;G\,M16%S="!!=&AE;G\,\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@ M("`\;W!T:6]N('9A;'5E/2)!=&QA;G1A+4%T:&5N\<RU797-T($%T:&5N\<R(^ M071L86YT82U!=&AE;G\,M5V5S="!!=&AE;G\,\+V]P=&EO;CX*("`@("`@("`@ M("`@("`@("`@/"]S96QE8W0^"B`@("`@("`@("`@("`@("`\+W1D/@H@("`@ M("`@("`@("`@(#PO='(^"B`@("`@("`@("`@(#PO=&%B;&4^"B`@("`@("`@ M("`\+W1D/@H@("`@("`@(#PO='(^"B`@("`@(#PO=&%B;&4^"B`@("`@(#QT M86)L92!B;W)D97(]\,"!W:61T:#TB-34P(B!C96QL\<&%D9&EN9STB\,B(@8V5L M;'-P86-I;F\<](C`B(&AE:6=H=#TB\,S`B/@H@("`@("`@(#QT\<CX@"B`@("`@ M("`@("`\=&0@=F%L:6=N/71O\<"!B9V-O;&]R/2(C965E965E(B!W:61T:#TU M-3`@8VQA\<W\,](F)O9'E?\<W5B\,2(^/&(^06QT97)N871I=F4@"B`@("`@("`@ M("`@($-O;G1A8W0@26YF;W)M871I;VX\+V(^/"]T9#X*("`@("`@("`\+W1R M/@H@("`@("`@(#QT\CX@​"B\`@​\("\`@​\("\`@​\("\`\\=&0@​8VQA\<W\,\]8F\]D6L@=VED M=&@]-34P(&AE:6=H=#TB\,S`B('9A;&EG;CTB=&]P(CX@"B`@("`@("`@("`@ M(#QT86)L92!B;W)D97(](C`B('=I9'1H/2(U-3`B(&-E;&QP861D:6YG/3(@ M8V5L;'-P86-I;F\<]\,#X*("`@("`@("`@("`@("`\='(^(`H@("`@("`@("`@ M("`@("`@/'1D('9A;&EG;CTB;6ED9&QE(B!W:61T:#TB\,34X(B!C;&%S\<SUB M;V1Y:SX@06QT+B!#;VYT86-T($YA;64Z(`H@("`@("`@("`@("`@("`@/"]T M9#X*("`@("`@("`@("`@("`@(#QT9"!W:61T:#TQ-S8^(`H@("`@("`@("`@ M("`@("`@("`\:6YP=70@='EP93TB=&5X="(@;F%M93TB86QT7V-O;G1A8W0B M("!S:7IE/2(R\,"(@;6%X;&5N9W1H/2(Y.2(@8VQA\<W\,]:6YP=70R/@H@("`@ M("`@("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`@(#QT9"!V86QI9VX] M(FUI9&1L92(@=VED=&@](CDQ(B!C;&%S\<SUB;V1Y:SX@2&]M92!0:&]N93H@ M/"]T9#X*("`@("`@("`@("`@("`@(#QT9"!W:61T:#TB\,3`Y(CX@"B`@("`@ M("`@("`@("`@("`@(#QI;G!U="!T>7!E/2)T97AT(B!N86UE/2)A;'1?=V]R M:U]P:&]N92(@('-I>F4](C$T(B!M87AL96YG=&@](C$T(B!C;&%S\<SUI;G!U M=#(^"B`@("`@("`@("`@("`@("`\+W1D/@H@("`@("`@("`@("`@(#PO='(^ M"B`@("`@("`@("`@("`@/'1R/B`*("`@("`@("`@("`@("`@(#QT9"!V86QI M9VX](FUI9&1L92(@8VQA\<W\,]8F]D>6L@=VED=&@](C$U."(^(%)E;&%T:6]N M\<VAI\<"!T;R!#86UP97(Z(`H@("`@("`@("`@("`@("`@/"]T9#X*("`@("`@ M("`@("`@("`@(#QT9"!W:61T:#TB\,3\<V(CX@"B`@("`@("`@("`@("`@("`@ M(#QI;G!U="!T>7!E/2)T97AT(B!N86UE/2)A;'1?\<F5L871I;VYS:&EP(B`@ M\<VEZ93TB\,C`B(&UA>&QE;F=T:#TB.3DB("!C;&%S\<SUI;G!U=#(^"B`@("`@ M("`@("`@("`@("`\+W1D/@H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB M;6ED9&QE(B!C;&%S\<SUB;V1Y:R!W:61T:#TB.3$B/B!7;W)K(%!H;VYE.CPO M=&0^"B`@("`@("`@("`@("`@("`\=&0@=VED=&@](C$P.2(^(`H@("`@("`@ M("`@("`@("`@("`\:6YP=70@='EP93TB=&5X="(@;F%M93TB86QT7VAO;65? M\<&AO;F4B("!S:7IE/2(Q-"(@;6%X;&5N9W1H/2(Q-"(@8VQA\<W\,]:6YP=70R M/@H@("`@("`@("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@ M("`@("`@("`@("`\+W1A8FQE/@H@("`@("`@("`@/"]T9#X*("`@("`@("`\ M+W1R/@H@("`@("`\+W1A8FQE/@H@("`@/'1A8FQE(&)O\<F1E\<CTP('=I9'1H M/2(U-3`B(&-E;&QP861D:6YG/2(R(B!C96QL\<W!A8VEN9STB\,"(@:&5I9VAT M/2(Q\,3$B/@H@("`@("`@(#QT\<CX@"B`@("`@("`@("`\=&0@=F%L:6=N/71O M\<"!B9V-O;&]R/2(C965E965E(B!W:61T:#TU-3`@8VQA\<W\,](F)O9'E?\<W5B M\,2(^/&(^0V%M\<&EN9R!297%U97-T\<SPO8CX\+W1D/@H@("`@("`@(#PO='(^ M"B`@("`@("`@/'1R/B`*("`@("`@("`@(#QT9"!C;&%S\<SUB;V1Y:R!W:61T M:#TU-3`@:&5I9VAT/2(S\,"(^(`H@("`@("`@("`@("`\=&%B;&4@8F]R9&5R M/2(P(B!W:61T:#TB-34P(B!C96QL\<&%D9&EN9STR(&-E;&QS\<&%C:6YG/3`@ M:&5I9VAT/2(V-B(^"B`@("`@("`@("`@("`@/'1R/B`*("`@("`@("`@("`@ M("`@(#QT9"!V86QI9VX](FUI9&1L92(@=VED=&@](C@P(B!C;&%S\<SUB;V1Y M:SXQ\<W0@0VAO:6-E.CPO=&0^"B`@("`@("`@("`@("`@("`\=&0@=VED=&@] M(C$X\,B(^(`H@("`@("`@("`@("`@("`@("`\\<V5L96-T(&YA;64](F9I\<G-T M7V-H;VEC92(@8VQA\<W\,]:6YP=70R/@H@("`@("`@("`@("`@("`@("`@(#QO M\<'1I;VX@('9A;'5E/2)#:&]O\<V4@82!7965K(CY#:&]O\<V4@82!7965K/"]O M\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E=E M96L@\,3H@2G5N("`S("T@2G5N("`Y(CY7965K(#$Z($IU;B`S("T@2G5N(`H@ M("`@("`@("`@("`@("`@("`@(#D\+V]P=&EO;CX*("`@("`@("`@("`@("`@ M("`@("`\;W!T:6]N("!V86QU93TB5V5E:R`R.B!*=6X@\,3`@+2!*=6X@\,38B M/E=E96L@\,CH@2G5N(#$P("T@"B`@("`@("`@("`@("`@("`@("`@2G5N(#$V M/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64] M(E=E96L@\,SH@2G5N(#$W("T@2G5N(#(S(CY7965K(#\,Z($IU;B`Q-R`M(`H@ M("`@("`@("`@("`@("`@("`@($IU;B`R\,SPO;W!T:6]N/@H@("`@("`@("`@ M("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)7965K(#0Z($IU;B`R-"`M($IU M;B`S\,"(^5V5E:R`T.B!*=6X@\,C0@+2`*("`@("`@("`@("`@("`@("`@("!* M=6X@\,S`\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V M86QU93TB5V5E:R`U.B!*=6P@(#$@+2!*=6P@(#\<B/E=E96L@-3H@2G5L(#$@ M+2!*=6P@"B`@("`@("`@("`@("`@("`@("`@-SPO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)7965K(#8Z($IU;"`Q-2`M M($IU;"`R\,2(^5V5E:R`V.B!*=6P@\,34@+2`*("`@("`@("`@("`@("`@("`@ M("!*=6P@\,C$\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N M("!V86QU93TB5V5E:R`W.B!*=6P@\,C(@+2!*=6P@\,C@B/E=E96L@-SH@2G5L M(#(R("T@"B`@("`@("`@("`@("`@("`@("`@2G5L(#(X/"]O\<'1I;VX^"B`@ M("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E=E96L@.#H@2G5L M(#(Y("T@075G("`T(CY7965K(#@Z($IU;"`R.2`M(`H@("`@("`@("`@("`@ M("`@("`@($%U9R`T/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@(#PO\<V5L M96-T/@H@("`@("`@("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`@(#QT M9"!C;&%S\<STB8F]D>6LB(')O=W-P86X](C\,B('=I9'1H/2(R-S8B/E)E\<75E M\<W0@4F]O;6%T90H@("`@("`@("`@("`@("`@("`\8G(^*&]N;'D@;V9F97)E M9"!T;R`Y("9A;7`[(#$P('EE87(@;VQD(&-A;7!E\<G\,I/&)R/@H@("`@("`@ M("`@("`@("`@("`\:6YP=70@='EP93TB=&5X="(@;F%M93TB\<F]O;6UA=&4B M("!S:7IE/2(R\,"(@;6%X;&5N9W1H/2(Y.2(@8VQA\<W\,]:6YP=70R/@H@("`@ M("`@("`@("`@("`@("`\8G(^"B`@("`@("`@("`@("`@("`@(%!L96%S92!M M86ME(&]N92!R97%U97-T+"!A;F0@=6YD97)S=&%N9"!T:&%T(')E\<75E\<W1S M(&%R92!N;W0@"B`@("`@("`@("`@("`@("`@(&=U87)A;G1E960N/"]T9#X* M("`@("`@("`@("`@("`\+W1R/@H@("`@("`@("`@("`@(#QT\<CX@"B`@("`@ M("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L87-S/6)O9'EK('=I M9'1H/2(X\,"(^\,FYD($-H;VEC93H\+W1D/@H@("`@("`@("`@("`@("`@/'1D M('=I9'1H/2(Q.#(B/B`*("`@("`@("`@("`@("`@("`@/'-E;&5C="!N86UE M/2)S96-O;F1?8VAO:6-E(B!C;&%S\<SUI;G!U=#(^"B`@("`@("`@("`@("`@ M("`@("`@/&]P=&EO;B`@=F%L=64](D-H;V]S92!A(%=E96LB/D-H;V]S92!A M(%=E96L\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V M86QU93TB5V5E:R`Q.B!*=6X@(#\,@+2!*=6X@(#DB/E=E96L@\,3H@2G5N(#\,@ M+2!*=6X@"B`@("`@("`@("`@("`@("`@("`@.3PO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)7965K(#(Z($IU;B`Q\,"`M M($IU;B`Q-B(^5V5E:R`R.B!*=6X@\,3`@+2`*("`@("`@("`@("`@("`@("`@ M("!*=6X@\,38\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N M("!V86QU93TB5V5E:R`S.B!*=6X@\,3\<@+2!*=6X@\,C\,B/E=E96L@\,SH@2G5N M(#$W("T@"B`@("`@("`@("`@("`@("`@("`@2G5N(#(S/"]O\<'1I;VX^"B`@ M("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E=E96L@-#H@2G5N M(#(T("T@2G5N(#\,P(CY7965K(#0Z($IU;B`R-"`M(`H@("`@("`@("`@("`@ M("`@("`@($IU;B`S\,#PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO M\<'1I;VX@('9A;'5E/2)7965K(#4Z($IU;"`@\,2`M($IU;"`@-R(^5V5E:R`U M.B!*=6P@\,2`M($IU;"`*("`@("`@("`@("`@("`@("`@("`W/"]O\<'1I;VX^ M"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E=E96L@-CH@ M2G5L(#$U("T@2G5L(#(Q(CY7965K(#8Z($IU;"`Q-2`M(`H@("`@("`@("`@ M("`@("`@("`@($IU;"`R\,3PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@ M(#QO\<'1I;VX@('9A;'5E/2)7965K(#\<Z($IU;"`R\,B`M($IU;"`R."(^5V5E M:R`W.B!*=6P@\,C(@+2`*("`@("`@("`@("`@("`@("`@("!*=6P@\,C@\+V]P M=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB5V5E M:R`X.B!*=6P@\,CD@+2!!=6\<@(#0B/E=E96L@.#H@2G5L(#(Y("T@"B`@("`@ M("`@("`@("`@("`@("`@075G(#0\+V]P=&EO;CX*("`@("`@("`@("`@("`@ M("`@/"]S96QE8W0^"B`@("`@("`@("`@("`@("`\+W1D/@H@("`@("`@("`@ M("`@(#PO='(^"B`@("`@("`@("`@("`@/'1R/B`*("`@("`@("`@("`@("`@ M(#QT9"!V86QI9VX](FUI9&1L92(@8VQA\<W\,]8F]D>6L@=VED=&@](C@P(CXS M\<F0@0VAO:6-E.CPO=&0^"B`@("`@("`@("`@("`@("`\=&0@=VED=&@](C$X M\,B(^(`H@("`@("`@("`@("`@("`@("`\\<V5L96-T(&YA;64](G1H:7)D7V-H M;VEC92(@8VQA\<W\,]:6YP=70R/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I M;VX@('9A;'5E/2)#:&]O\<V4@82!7965K(CY#:&]O\<V4@82!7965K/"]O\<'1I M;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E=E96L@ M\,3H@2G5N("`S("T@2G5N("`Y(CY7965K(#$Z($IU;B`S("T@2G5N(`H@("`@ M("`@("`@("`@("`@("`@(#D\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@ M("`\;W!T:6]N("!V86QU93TB5V5E:R`R.B!*=6X@\,3`@+2!*=6X@\,38B/E=E M96L@\,CH@2G5N(#$P("T@"B`@("`@("`@("`@("`@("`@("`@2G5N(#$V/"]O M\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E=E M96L@\,SH@2G5N(#$W("T@2G5N(#(S(CY7965K(#\,Z($IU;B`Q-R`M(`H@("`@ M("`@("`@("`@("`@("`@($IU;B`R\,SPO;W!T:6]N/@H@("`@("`@("`@("`@ M("`@("`@(#QO\<'1I;VX@('9A;'5E/2)7965K(#0Z($IU;B`R-"`M($IU;B`S M\,"(^5V5E:R`T.B!*=6X@\,C0@+2`*("`@("`@("`@("`@("`@("`@("!*=6X@ M\,S`\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU M93TB5V5E:R`U.B!*=6P@(#$@+2!*=6P@(#\<B/E=E96L@-3H@2G5L(#$@+2!* M=6P@"B`@("`@("`@("`@("`@("`@("`@-SPO;W!T:6]N/@H@("`@("`@("`@ M("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)7965K(#8Z($IU;"`Q-2`M($IU M;"`R\,2(^5V5E:R`V.B!*=6P@\,34@+2`*("`@("`@("`@("`@("`@("`@("!* M=6P@\,C$\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V M86QU93TB5V5E:R`W.B!*=6P@\,C(@+2!*=6P@\,C@B/E=E96L@-SH@2G5L(#(R M("T@"B`@("`@("`@("`@("`@("`@("`@2G5L(#(X/"]O\<'1I;VX^"B`@("`@ M("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E=E96L@.#H@2G5L(#(Y M("T@075G("`T(CY7965K(#@Z($IU;"`R.2`M(`H@("`@("`@("`@("`@("`@ M("`@($%U9R`T/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@(#PO\<V5L96-T M/@H@("`@("`@("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@ M("`@("`@("`@("`\+W1A8FQE/@H@("`@("`@("`@/"]T9#X*("`@("`@("`\ M+W1R/@H@("`@("`\+W1A8FQE/@H@("`@/'1A8FQE(&)O\<F1E\<CTP('=I9'1H M/2(U-3`B(&-E;&QP861D:6YG/2(R(B!C96QL\<W!A8VEN9STB\,"(^"B`@("`@ M("`@/'1R/B`*("`@("`@("`@(#QT9"!V86QI9VX]=&]P(&)G8V]L;W(](B-E M965E964B('=I9'1H/34U\,"!C;&%S\<STB8F]D>5]S=6(Q(CX\8CY-961I8V%L M"B`@("`@("`@("`@($-A\<F4@26YF;W)M871I;VX\+V(^/"]T9#X*("`@("`@ M("`\+W1R/@H@("`@("`@(#QT\<CX@"B`@("`@("`@("`\=&0@8VQA\<W\,]8F]D M>6L@=VED=&@]-34P/B`*("`@("`@("`@("`@/'1A8FQE(&)O\<F1E\<CTB\,"(@ M=VED=&@](C4U\,"(@8V5L;'!A9&1I;F\<]\,B!C96QL\<W!A8VEN9STP(&AE:6=H M=#TB.#\<B/@H@("`@("`@("`@("`@(#QT\<CX@"B`@("`@("`@("`@("`@("`\ M=&0@=F%L:6=N/2)M:61D;&4B('=I9'1H/2(Q\,3`B(&-L87-S/6)O9'EK/B!# M86UP97(G\<R!34TXZ(#PO=&0^"B`@("`@("`@("`@("`@("`\=&0@=VED=&@] M\,34P/B`*("`@("`@("`@("`@("`@("`@/&EN\<'5T('1Y\<&4](G1E>'0B(&YA M;64](G-O8U]S96-?;G5M(B`@\<VEZ93TB\,C`B(&UA>&QE;F=T:#TB.3DB(&-L M87-S/6EN\<'5T\,CX*("`@("`@("`@("`@("`@(#PO=&0^"B`@("`@("`@("`@ M("`@("`\=&0@=F%L:6=N/2)M:61D;&4B('=I9'1H/2(Q\,S`B(&-L87-S/6)O M9'EK/B!);G\,N($%D9')E\<W\,Z/"]T9#X*("`@("`@("`@("`@("`@(#QT9"!W M:61T:#TB\,34P(CX@"B`@("`@("`@("`@("`@("`@(#QI;G!U="!T>7!E/2)T M97AT(B!N86UE/2)I;G-?861D\F5S\<R\(@​\('\-IF4](C(P(B!M87AL96YG=&@] M(CDY(B!C;&%S\<SUI;G!U=#(^"B`@("`@("`@("`@("`@("`\+W1D/@H@("`@ M("`@("`@("`@(#PO='(^"B`@("`@("`@("`@("`@/'1R/B`*("`@("`@("`@ M("`@("`@(#QT9"!V86QI9VX](FUI9&1L92(@8VQA\<W\,]8F]D>6L@=VED=&@] M(C$Q\,"(^($1O8W1O\<B=S($YA;64Z(#PO=&0^"B`@("`@("`@("`@("`@("`\ M=&0@=VED=&@](C$U\,"(^(`H@("`@("`@("`@("`@("`@("`\:6YP=70@='EP M93TB=&5X="(@;F%M93TB\<&AY\<VEC:6%N7VYA;64B("!S:7IE/2(R\,"(@;6%X M;&5N9W1H/2(Y.2(@(&-L87-S/6EN\<'5T\,CX*("`@("`@("`@("`@("`@(#PO M=&0^"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L87-S M/6)O9'EK('=I9'1H/2(Q\,S`B(&AE:6=H=#TB\,"(^0VET>2`\+W1D/@H@("`@ M("`@("`@("`@("`@/'1D('=I9'1H/2(Q-3`B/@H@("`@("`@("`@("`@("`@ M("`\:6YP=70@='EP93TB=&5X="(@;F%M93TB:6YS7V-I='DB("!S:7IE/2(R M\,"(@;6%X;&5N9W1H/2(Y.2(@8VQA\<W\,]:6YP=70R/@H@("`@("`@("`@("`@ M("`@/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@("`@("`@("`@("`@(#QT M\<CX@"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L87-S M/6)O9'EK('=I9'1H/2(Q\,3`B/B!$;V-T;W(G\<R!0:&]N93H@/"]T9#X*("`@ M("`@("`@("`@("`@(#QT9"!W:61T:#TB\,34P(CX@"B`@("`@("`@("`@("`@ M("`@(#QI;G!U="!T>7!E/2)T97AT(B!N86UE/2)P:'ES:6-I86Y?\<&AO;F4B M("!S:7IE/2(R\,"(@;6%X;&5N9W1H/2(Y.2(@8VQA\<W\,]:6YP=70R/@H@("`@ M("`@("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`@(#QT9"!V86QI9VX] M(FUI9&1L92(@8VQA\<W\,]8F]D>6L@=VED=&@](C$S\,"(^4W1A=&4Z(#PO=&0^ M"B`@("`@("`@("`@("`@("`\=&0@=VED=&@](C$U\,"(^"B`@("`@("`@("`@ M("`@("`@(#QS96QE8W0@;F%M93TB:6YS7W-T871E(B!C;&%S\<SUI;G!U=#(^ M"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](D%+(CY!2SPO M;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)! M3"(^04P\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V M86QU93TB05(B/D%2/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P M=&EO;B`@=F%L=64](D%:(CY!6CPO;W!T:6]N/@H@("`@("`@("`@("`@("`@ M("`@(#QO\<'1I;VX@('9A;'5E/2)#02(^0T$\+V]P=&EO;CX*("`@("`@("`@ M("`@("`@("`@("`\;W!T:6]N("!V86QU93TB0T\B/D-//"]O\<'1I;VX^"B`@ M("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](D-4(CY#5#PO;W!T M:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)$0R(^ M1$\,\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU M93TB1$4B/D1%/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO M;B`@=F%L=64](D9\,(CY&3#PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@ M(#QO\<'1I;VX@\<V5L96-T960@=F%L=64](D=!(CY'03PO;W!T:6]N/@H@("`@ M("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)(22(^2$D\+V]P=&EO M;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB24$B/DE! M/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64] M(DE$(CY)1#PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@ M('9A;'5E/2))3"(^24P\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\ M;W!T:6]N("!V86QU93TB24XB/DE./"]O\<'1I;VX^"B`@("`@("`@("`@("`@ M("`@("`@/&]P=&EO;B`@=F%L=64](DM3(CY+4SPO;W!T:6]N/@H@("`@("`@ M("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)+62(^2UD\+V]P=&EO;CX* M("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB3$$B/DQ!/"]O M\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](DU! M(CY-03PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A M;'5E/2)-1"(^340\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T M:6]N("!V86QU93TB344B/DU%/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@ M("`@/&]P=&EO;B`@=F%L=64](DU)(CY-23PO;W!T:6]N/@H@("`@("`@("`@ M("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)-3B(^34X\+V]P=&EO;CX*("`@ M("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB34\B/DU//"]O\<'1I M;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](DU3(CY- M4SPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E M/2)-5"(^350\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N M("!V86QU93TB3D\,B/DY#/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@ M/&]P=&EO;B`@=F%L=64](DY$(CY.1#PO;W!T:6]N/@H@("`@("`@("`@("`@ M("`@("`@(#QO\<'1I;VX@('9A;'5E/2).12(^3D4\+V]P=&EO;CX*("`@("`@ M("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB3D@B/DY(/"]O\<'1I;VX^ M"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](DY*(CY.2CPO M;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2). M32(^3DT\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V M86QU93TB3E8B/DY6/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P M=&EO;B`@=F%L=64](DY9(CY.63PO;W!T:6]N/@H@("`@("`@("`@("`@("`@ M("`@(#QO\<'1I;VX@('9A;'5E/2)/2"(^3T@\+V]P=&EO;CX*("`@("`@("`@ M("`@("`@("`@("`\;W!T:6]N("!V86QU93TB3TLB/D]+/"]O\<'1I;VX^"B`@ M("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](D]2(CY/4CPO;W!T M:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)002(^ M4$$\+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU M93TB4DDB/E))/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO M;B`@=F%L=64](E-#(CY30SPO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@ M(#QO\<'1I;VX@('9A;'5E/2)31"(^4T0\+V]P=&EO;CX*("`@("`@("`@("`@ M("`@("`@("`\;W!T:6]N("!V86QU93TB5$XB/E1./"]O\<'1I;VX^"B`@("`@ M("`@("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E18(CY46#PO;W!T:6]N M/@H@("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)55"(^550\ M+V]P=&EO;CX*("`@("`@("`@("`@("`@("`@("`\;W!T:6]N("!V86QU93TB M5D$B/E9!/"]O\<'1I;VX^"B`@("`@("`@("`@("`@("`@("`@/&]P=&EO;B`@ M=F%L=64](E94(CY65#PO;W!T:6]N/@H@("`@("`@("`@("`@("`@("`@(#QO M\<'1I;VX@('9A;'5E/2)702(^5T$\+V]P=&EO;CX*("`@("`@("`@("`@("`@ M("`@("`\;W!T:6]N("!V86QU93TB5TDB/E=)/"]O\<'1I;VX^"B`@("`@("`@ M("`@("`@("`@("`@/&]P=&EO;B`@=F%L=64](E=6(CY75CPO;W!T:6]N/@H@ M("`@("`@("`@("`@("`@("`@(#QO\<'1I;VX@('9A;'5E/2)762(^5UD\+V]P M=&EO;CX*("`@("`@("`@("`@("`@("`@/"]S96QE8W0^"B`@("`@("`@("`@ M("`@("`\+W1D/@H@("`@("`@("`@("`@(#PO='(^"B`@("`@("`@("`@("`@ M/'1R/B`*("`@("`@("`@("`@("`@(#QT9"!V86QI9VX](FUI9&1L92(@8VQA M\<W\,]8F]D>6L@=VED=&@](C$Q\,"(^26YS($-O+TUE9&EC87)E.CPO=&0^"B`@ M("`@("`@("`@("`@("`\=&0@=VED=&@](C$U\,"(^(`H@("`@("`@("`@("`@ M("`@("`\:6YP=70@='EP93TB=&5X="(@;F%M93TB:6YS7V-O;7!A;GDB("!S M:7IE/2(R\,"(@;6%X;&5N9W1H/2(Y.2(@8VQA\<W\,]:6YP=70R/@H@("`@("`@ M("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`@(#QT9"!V86QI9VX](FUI M9&1L92(@8VQA\<W\,]8F]D>6L@=VED=&@](C$S\,"(^6FEP.CPO=&0^"B`@("`@ M("`@("`@("`@("`\=&0@=VED=&@](C$U\,"(^"B`@("`@("`@("`@("`@("`@ M(#QI;G!U="!T>7!E/2)T97AT(B!N86UE/2)I;G-?>FEP(B`@\<VEZ93TB\,C`B M(&UA>&QE;F=T:#TB.3DB(&-L87-S/6EN\<'5T\,CX*("`@("`@("`@("`@("`@ M(#PO=&0^"B`@("`@("`@("`@("`@/"]T\<CX*("`@("`@("`@("`@("`\='(^ M(`H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE(B!C;&%S\<SUB M;V1Y:R!W:61T:#TB\,3$P(CY0;VQI8WD@3G5M8F5R.CPO=&0^"B`@("`@("`@ M("`@("`@("`\=&0@=VED=&@](C$U\,"(^"B`@("`@("`@("`@("`@("`@(#QI M;G!U="!T>7!E/2)T97AT(B!N86UE/2)I;G-?\&\]L​:6\-Y7VYU;2\(@​\('\-IF4] M(C(P(B!M87AL96YG=&@](CDY(B!C;&%S\<SUI;G!U=#(^"B`@("`@("`@("`@ M("`@("`\+W1D/@H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE M(B!C;&%S\<SUB;V1Y:R!W:61T:#TB\,3\,P(CY4971A;G5S(%-H;W0@1&%T93H\ M+W1D/@H@("`@("`@("`@("`@("`@/'1D('=I9'1H/2(Q-3`B/@H@("`@("`@ M("`@("`@("`@("`\:6YP=70@='EP93TB=&5X="(@;F%M93TB=&5T86YU\<U]S M:&]T7V1T(B!S:7IE/2(R\,"(@;6%X;&5N9W1H/2(Y.2(@8VQA\<W\,]:6YP=70R M/@H@("`@("`@("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@ M("`@("`@("`@("`\+W1A8FQE/@H@("`@("`@("`@/"]T9#X*("`@("`@("`\ M+W1R/@H@("`@("`\+W1A8FQE/@H@("`@/'1A8FQE(&)O\<F1E\<CTP('=I9'1H M/2(U-3`B(&-E;&QP861D:6YG/2(R(B!C96QL\<W!A8VEN9STB\,"(^"B`@("`@ M("`@/'1R/B`*("`@("`@("`@(#QT9"!V86QI9VX]=&]P(&)G8V]L;W(](B-E M965E964B('=I9'1H/34U\,"!C;&%S\<STB8F]D>5]S=6(Q(CX\8CY(96%L=&@@ M"B`@("`@("`@("`@($EN9F]R;6%T:6]N/"]B/CPO=&0^"B`@("`@("`@/"]T M\<CX*("`@("`@("`\='(^(`H@("`@("`@("`@/'1D(&-L87-S/6)O9'EK('=I M9'1H/34U\,"!V86QI9VX](G1O\<"(^(`H@("`@("`@("`@("`\=&%B;&4@8F]R M9&5R/2(P(B!W:61T:#TB-34P(B!C96QL\<&%D9&EN9STR(&-E;&QS\<&%C:6YG M/3`@:&5I9VAT/2(X-R(^"B`@("`@("`@("`@("`@/'1R/B`*("`@("`@("`@ M("`@("`@(#QT9"!V86QI9VX](FUI9&1L92(@8V]L\<W!A;CTB-"(@8VQA\<W\,] M8F]D>6L^"B`@("`@("`@("`@("`@("`@(#QP/DAE86QT:"!(:7-T;W)Y.B!$ M;V5S('EO=7(@8VAI;&0@:&%V92!A;GD@;V8@=&AE(&9O;&QO=VEN9S\@"B`@ M("`@("`@("`@("`@("`@("`@/&)R/@H@("`@("`@("`@("`@("`@("`@(#QI M/E!L96%S92!E>'!L86EN(&5A8V@@8F]X('EO=2!C:&5C:V5D(&EN('1H92!T M97AT(&)O>"!T:&%T(`H@("`@("`@("`@("`@("`@("`@(&9O;&QO=W\,N/"]I M/CPO\<#X*("`@("`@("`@("`@("`@("`@/'`^)FYB\<W`[/"]P/@H@("`@("`@ M("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@("`@("`@("`@ M("`@(#QT\<CX@"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B M(&-L87-S/6)O9'EK('=I9'1H/2(T\,B(^(`H@("`@("`@("`@("`@("`@("`\ M:6YP=70@='EP93TB8VAE8VMB;W@B(&YA;64](FAE86QT:%]C;VYD\<R(@=F%L M=64](FAI9V@@8FQO;V0@\<')E\<W-U\<F4B/@H@("`@("`@("`@("`@("`@/"]T M9#X*("`@("`@("`@("`@("`@(#QT9"!W:61T:#TB\,34Y(B!C;&%S\<STB8F]D M>6LB/DAI9V@@0FQO;V0@4')E\<W5R93PO=&0^"B`@("`@("`@("`@("`@("`\ M=&0@=F%L:6=N/2)M:61D;&4B(&-L87-S/6)O9'EK('=I9'1H/2(S\,"(^(`H@ M("`@("`@("`@("`@("`@("`\:6YP=70@='EP93TB8VAE8VMB;W@B(&YA;64] M(FAE86QT:%]C;VYD\<R(@=F%L=64](F%L;&5R9VEC('1O(&EN\<V5C="!B:71E M\<R(^"B`@("`@("`@("`@("`@("`\+W1D/@H@("`@("`@("`@("`@("`@/'1D M('=I9'1H/2(S\,#\,B(&-L87-S/2)B;V1Y:R(^06QL97)G:6\,@=&\@26YS96-T M($)I=&5S/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@("`@("`@("`@("`@ M(#QT\<CX@"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L M87-S/6)O9'EK('=I9'1H/2(T\,B(^(`H@("`@("`@("`@("`@("`@("`\:6YP M=70@='EP93TB8VAE8VMB;W@B(&YA;64](FAE86QT:%]C;VYD\<R(@=F%L=64] M(F%L;&5R9VEC('1O(&%N>2!M961I8VEN92(^"B`@("`@("`@("`@("`@("`\ M+W1D/@H@("`@("`@("`@("`@("`@/'1D('=I9'1H/2(Q-3DB(&-L87-S/2)B M;V1Y:R(^06QL97)G:6\,@=&\@86YY($UE9&EC:6YE/"]T9#X*("`@("`@("`@ M("`@("`@(#QT9"!V86QI9VX](FUI9&1L92(@8VQA\<W\,]8F]D>6L@=VED=&@] M(C\,P(CX@"B`@("`@("`@("`@("`@("`@(#QI;G!U="!T>7!E/2)C:&5C:V)O M>"(@;F%M93TB:&5A;'1H7V-O;F1S(B!V86QU93TB86QL97)G:6\,@=&\@86YY M(&9O;V1S(CX*("`@("`@("`@("`@("`@(#PO=&0^"B`@("`@("`@("`@("`@ M("`\=&0@=VED=&@](C\,P\,R(@8VQA\<W\,](F)O9'EK(CX@06QL97)G:6\,@=&\@ M86YY($9O;V1S(#PO=&0^"B`@("`@("`@("`@("`@/"]T\<CX*("`@("`@("`@ M("`@("`\='(^(`H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE M(B!C;&%S\<SUB;V1Y:R!W:61T:#TB-#(B/B`*("`@("`@("`@("`@("`@("`@ M/&EN\<'5T('1Y\<&4](F-H96-K8F]X(B!N86UE/2)H96%L=&A?8V]N9'\,B('9A M;'5E/2)B\<F]N8VAI=&ES(CX*("`@("`@("`@("`@("`@(#PO=&0^"B`@("`@ M("`@("`@("`@("`\=&0@=VED=&@](C$U.2(@8VQA\<W\,](F)O9'EK(CY"\<F]N M8VAI=&ES(#PO=&0^"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D M;&4B(&-L87-S/6)O9'EK('=I9'1H/2(S\,"(^(`H@("`@("`@("`@("`@("`@ M("`\:6YP=70@='EP93TB8VAE8VMB;W@B(&YA;64](FAE86QT:%]C;VYD\<R(@ M=F%L=64](F%S=&AM82(^"B`@("`@("`@("`@("`@("`\+W1D/@H@("`@("`@ M("`@("`@("`@/'1D('=I9'1H/2(S\,#\,B(&-L87-S/2)B;V1Y:R(^07-T:&UA M/"]T9#X*("`@("`@("`@("`@("`\+W1R/@H@("`@("`@("`@("`@(#QT\<CX@ M"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L87-S/6)O M9'EK('=I9'1H/2(T\,B(^(`H@("`@("`@("`@("`@("`@("`\:6YP=70@='EP M93TB8VAE8VMB;W@B(&YA;64](FAE86QT:%]C;VYD\<R(@=F%L=64](F1I86)E M=&5S(CX*("`@("`@("`@("`@("`@(#PO=&0^"B`@("`@("`@("`@("`@("`\ M=&0@=VED=&@](C$U.2(@8VQA\<W\,](F)O9'EK(CY$:6%B971E\<SPO=&0^"B`@ M("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L87-S/6)O9'EK M('=I9'1H/2(S\,"(^(`H@("`@("`@("`@("`@("`@("`\:6YP=70@='EP93TB M8VAE8VMB;W@B(&YA;64](FAE86QT:%]C;VYD\<R(@=F%L=64](G-E:7IU\<F5S M(CX*("`@("`@("`@("`@("`@(#PO=&0^"B`@("`@("`@("`@("`@("`\=&0@ M=VED=&@](C\,P\,R(@8VQA\<W\,](F)O9'EK(CY396EZ=7)E\<SPO=&0^"B`@("`@ M("`@("`@("`@/"]T\<CX*("`@("`@("`@("`@("`\='(^(`H@("`@("`@("`@ M("`@("`@/'1D('9A;&EG;CTB;6ED9&QE(B!C;&%S\<SUB;V1Y:R!W:61T:#TB M-#(B/B`*("`@("`@("`@("`@("`@("`@/&EN\<'5T('1Y\<&4](F-H96-K8F]X M(B!N86UE/2)H96%L=&A?8V]N9'\,B('9A;'5E/2)F86EN=&EN9R!S\<&5L;'\,B M/@H@("`@("`@("`@("`@("`@/"]T9#X*("`@("`@("`@("`@("`@(#QT9"!W M:61T:#TB\,34Y(B!C;&%S\<STB8F]D>6LB/D9A:6YT:6YG(%-P96QL\<SPO=&0^ M"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B(&-L87-S/6)O M9'EK('=I9'1H/2(S\,"(^(`H@("`@("`@("`@("`@("`@("`\:6YP=70@='EP M93TB8VAE8VMB;W@B(&YA;64](FAE86QT:%]C;VYD\<R(@=F%L=64](G-T;VUA M8V@@=7!S971S(CX*("`@("`@("`@("`@("`@(#PO=&0^"B`@("`@("`@("`@ M("`@("`\=&0@=VED=&@](C\,P\,R(@8VQA\<W\,](F)O9'EK(CY3=&]M86-H(%5P M\<V5T\<SPO=&0^"B`@("`@("`@("`@("`@/"]T\<CX*("`@("`@("`@("`@("`\ M='(^(`H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE(B!C;&%S M\<SUB;V1Y:R!W:61T:#TB-#(B/B`*("`@("`@("`@("`@("`@("`@/&EN\<'5T M('1Y\<&4](F-H96-K8F]X(B!N86UE/2)H96%L=&A?8V]N9'\,B('9A;'5E/2)E M87(@\<')O8FQE;7\,B/@H@("`@("`@("`@("`@("`@/"]T9#X*("`@("`@("`@ M("`@("`@(#QT9"!W:61T:#TB\,34Y(B!C;&%S\<STB8F]D>6LB/D5A\<B!0\<F]B M;&5M\<SPO=&0^"B`@("`@("`@("`@("`@("`\=&0@=F%L:6=N/2)M:61D;&4B M(&-L87-S/6)O9'EK('=I9'1H/2(S\,"(^(`H@("`@("`@("`@("`@("`@("`\ M:6YP=70@='EP93TB8VAE8VMB;W@B(&YA;64](FAE86QT:%]C;VYD\<R(@=F%L M=64](FAA>69E=F5R+W-I;G5S('!R;V)L96US(CX*("`@("`@("`@("`@("`@ M(#PO=&0^"B`@("`@("`@("`@("`@("`\=&0@=VED=&@](C\,P\,R(@8VQA\<W\,] M(F)O9'EK(CY(87EF979E\<B]3:6YU\<R!0\<F]B;&5M\<SPO=&0^"B`@("`@("`@ M("`@("`@/"]T\<CX*("`@("`@("`@("`@("`\='(^(`H@("`@("`@("`@("`@ M("`@/'1D('9A;&EG;CTB;6ED9&QE(B!C;&%S\<SUB;V1Y:R!W:61T:#TB-#(B M/B`*("`@("`@("`@("`@("`@("`@/&EN\<'5T('1Y\<&4](F-H96-K8F]X(B!N M86UE/2)H96%L=&A?8V]N9'\,B('9A;'5E/2)R96-E;G0@\<W!O\<G1S(&EN:G5R M>2(^"B`@("`@("`@("`@("`@("`\+W1D/@H@("`@("`@("`@("`@("`@/'1D M('=I9'1H/2(Q-3DB(&-L87-S/2)B;V1Y:R(^4F5C96YT(%-P;W)T\<R!);FIU M\<GD\+W1D/@H@("`@("`@("`@("`@("`@/'1D('9A;&EG;CTB;6ED9&QE(B!C M;&%S\<SUB;V1Y:R!W:61T:#TB\,S`B/B`*("`@("`@("`@("`@("`@("`@/&EN M\<'5T('1Y\<&4](F-H96-K8F]X(B!N86UE/2)H96%L=&A?8V]N9'\,B('9A;'5E M/2)O=&AE\<B(^"B`@("`@("`@("`@("`@("`\+W1D/@H@("`@("`@("`@("`@ M("`@/'1D('=I9'1H/2(S\,#\,B(&-L87-S/2)B;V1Y:R(^3W1H97(\+W1D/@H@ M("`@("`@("`@("`@(#PO='(^"B`@("`@("`@("`@("`@/'1R/B`*("`@("`@ M("`@("`@("`@(#QT9"!V86QI9VX](FUI9&1L92(@8VQA\<W\,]8F]D>6L@8V]L M\<W!A;CTB-"(^"B`@("`@("`@("`@("`@("`@(#QP/B9N8G-P.SPO\<#X*("`@ M("`@("`@("`@("`@("`@/'`^17AP;&%N871I;VYS.CQB\<CX*("`@("`@("`@ M("`@("`@("`@("`\=&5X=&%R96$@;F%M93TB:&5A;'1H7V5X\<&PB(&-O;'\,] M(C8P(B!R;W=S/2(U(B!C;&%S\<STB:6YP=70R(CX\+W1E>'1A\<F5A/@H@("`@ M("`@("`@("`@("`@("`\+W`^"B`@("`@("`@("`@("`@("`@(#QP/DQI\<W0@ M365D:6-A=&EO;G\,@5&%K96X@1&%I;'D@/&D^*&EN8VQU9&EN9R!D;W-A9V5S M*3QB\<CX*("`@("`@("`@("`@("`@("`@("`\=&5X=&%R96$@;F%M93TB9&%I M;'E?;65D\<R(@8V]L\<STB-C`B(')O=W\,](C(B(&-L87-S/2)I;G!U=#(B/CPO M=&5X=&%R96$^"B`@("`@("`@("`@("`@("`@("`@/"]I/CPO\<#X*("`@("`@ M("`@("`@("`@("`@/'`^3&ES="!-961I8V%T:6]N\<R!486ME;B!$86EL>2!7 M:&5N($YE8V5S\<V%R>2`\:3XH:6YC;'5D:6YG(`H@("`@("`@("`@("`@("`@ M("`@(&1O\<V%G97\,I/&)R/@H@("`@("`@("`@("`@("`@("`@(#QT97AT87)E M82!N86UE/2)O\<'1?9&%I;'E?;65D\<R(@8V]L\<STB-C`B(')O=W\,](C(B(&-L M87-S/2)I;G!U=#(B/CPO=&5X=&%R96$^"B`@("`@("`@("`@("`@("`@("`@ M/"]I/CPO\<#X*("`@("`@("`@("`@("`@("`@/'`^/&D^1&5S8W)I8F4@06YY M($]T:&5R($AE86QT:"!#;VYD:71I;VYS(%)E\<75I\<FEN9R!4\<F5A=&UE;G0@ M"B`@("`@("`@("`@("`@("`@("`@;W(@4F5S=')I8W1I;VYS.CQB\<CX*("`@ M("`@("`@("`@("`@("`@("`\=&5X=&%R96$@;F%M93TB;W1H97)?:&5A;'1H M7V-O;F0B(&-O;'\,](C8P(B!R;W=S/2(R(B!C;&%S\<STB:6YP=70R(CX\+W1E M>'1A\<F5A/@H@("`@("`@("`@("`@("`@("`@(#PO:3X\+W`^"B`@("`@("`@ M("`@("`@("`\+W1D/@H@("`@("`@("`@("`@(#PO='(^"B`@("`@("`@("`@ M(#PO=&%B;&4^"B`@("`@("`@("`@(#QP/@H@("`@("`@("`@("`@/&-E;G1E M\<CX*("`@("`@("`@("`@("`@(#QP/CQB/CQF;VYT(&-O;&]R/2(C0T-#0T-# M(CXM+29G=#L\+V9O;G0^/"]B/B`*("`@("`@("`@("`@("`@("`@/&EN\<'5T M('1Y\<&4](G-U8FUI="(@;F%M93TB979E;G0B('9A;'5E/2)3=6)M:70@37D@ M4F5G:7-T\<F%T:6]N(B!C;&%S\<STB:6YP=71G;R(^"B`@("`@("`@("`@("`@ M("`@(#QF;VYT(&-O;&]R/2(C0T-#0T-#(CX\8CXF;'0[+2T\+V(^/"]F;VYT M/CPO\<#X*("`@("`@("`@("`@("`@(#QP/B9N8G-P.SPO\<#X*("`@("`@("`@ M("`@("`\+V-E;G1E\<CX*("`@("`@("`@("`@/"]P/@H@("`@("`@("`@/"]T M9#X*("`@("`@("`\+W1R/@H@("`@("`\+W1A8FQE/@H@("`@/"]T9#X*("`@ M("`@/'1D('9A;&EG;CTB=&]P(B!W:61T:#TB\,C`P(CX*("`@("`@("`\=&%B M;&4@=VED=&@](C(P\,"(@8F]R9&5R/2(P(B!C96QL\<W!A8VEN9STB\,"(@8V5L M;'!A9&1I;F\<](C(B(&-L87-S/6)O9'EK/@H@("`@("`@(`H@("`@("`@("`@ M/'1R/@H@("`@("`@("`@("`\=&0@86QI9VX](F-E;G1E\<B(@=F%L:6=N/2)T M;W`B(&)G8V]L;W(](B-E965E964B(&-L87-S/2)B;V1Y7W-U8C$B/@H@("`@ M("`@("`@("`@(#QB/E)E9VES=')A=&EO;B!);F9O/"]B/@H@("`@("`@("`@ M("`\+W1D/@H@("`@("`@("`@/"]T\<CX*("`@("`@("`@(#QT\<CX*("`@("`@ M("`@("`@/'1D(&-L87-S/2)B;V1Y7W-U8C(B/CQS\<&%N(&-L87-S/6)O9'EK M/@H@("`@("`@("`@("`@(%1H:7\,@:7\,@=&AE(&9O\<FT@=&\@\<F5G:7-T97(@ M9F]R(%1H92!3=V%M\<"P@82!S=6UM97(@8V%M\<"!F;W(@:VED\<R!F\<F]M(&%G M97\,@.2!T;R`Q."P*("`@("`@("`@("`@("`@("`@;W!E\<F%T960@8GD@=&AE M($%T;&%N=&$@0VAU\<F-H(&]F($-H\<FES="X*("`@("`@("`@("`@("`@("`@ M/&)R/DEF('EO=2!W;W5L9"!L:6ME('1O(')E\<75E\<W0@=&\@\<V5N9"!O;F4@ M;W(@;6]R92!O9B!Y;W5R(&MI9'\,@=&\@8V%M\<"P@\<&QE87-E"B`@("`@("`@ M("`@("`@("`@(&9I;&P@;W5T('1H92!F;VQL;W=I;F\<@:6YF;W)M871I;VX@ M86YD('!R97-S('1H92`B4W5B;6ET($UY(%)E9VES=')A=&EO;B(@8G5T=&]N M(&)E;&]W+@H@("`@("`@("`@("`@("`@("`\8G(^4&QE87-E(')E9VES=&5R M('-E\<&%R871E;'D@9F]R(&5A8V@@;V8@=&AE(&-H:6QD\<F5N('EO=2!W;W5L M9"!L:6ME('1O('-E;F0N"B`@("`@("`@("`@("`@("`@(#QB\<CY0;&5A\<V4@ M\F5G​:7\-T97\(@​\<V5P87\)A=&5L2!F;W(@96%C:"!W965K(&EF('EO=2!W;W5L M9"!L:6ME('1O('-E;F0@82!C:&EL9"!F;W(@;6]R92!T:&%N(&]N92!W965K M+@H@("`@("`@("`@("`@(#QH\<B!A;&EG;CUC96YT97(^"B`@("`@("`@("`@ M("`@/&(^061D:71I;VYA;"!&;W)M\<SPO8CX\8G(^"B`@("`@("`@("`@(#QP M/B`\82!H\<F5F/2)H='1P.B\O=W=W+F]F9FEC979I\<VEO;BYC;VTO\,2XP+C`O M86-O8R]R96=I\<W1R871I;VXN:'1M;"(@=&%R9V5T/5]B;&%N:R!C;&%S\<SUM M;W)E/@H@("`@("`@("`@("`@("`@("!-86EL+6EN(%)E9VES=')A=&EO;@H@ M("`@("`@("`@("`@("`@/"]A/B9N8G-P.R9N8G-P.PH@("`@("`@("`@("`@ M("`@/&$@:')E9CTB:'1T\<#HO+W=W=RYO9F9I8V5V:7-I;VXN8V]M+S$N\,"XP M+V%C;V\,O\<F5G:7-T\<F%T:6]N+FAT;6PB('1A\<F=E=#U?8FQA;FL@8VQA\<W\,] M;6]R93X*("`@("`@("`@("`@("`@("`@/&EM9R!S\<F\,](BXN+VEM86=E\<R]A M8W)O8F%T;&]G;U]S;2YG:68B('=I9'1H/2(Q.2(@:&5I9VAT/2(R\,"(@8F]R M9&5R/2(P(CX@"B`@("`@("`@("`@("`@("`@(#QF;VYT('-I>F4](BTR(CY0 M1$8\+V9O;G0^(`H@("`@("`@("`@("`@("`@/"]A/@H@("`@("`@("`@("`\ M\<#X@/&$@:')E9CTB:'1T\<#HO+W=W=RYO9F9I8V5V:7-I;VXN8V]M+S$N\,"XP M+V%C;V\,O;65D:6-A;"YH=&UL(B!T87)G970]7V)L86YK(&-L87-S/6UO\<F4^ M"B`@("`@("`@("`@("`@("`@($UE9&EC86P@1F]R;0H@("`@("`@("`@("`@ M("`@/"]A/B`F;F)S\<#LF;F)S\<#L*("`@("`@("`@("`@("`@(#QA(&AR968] M(FAT='`Z+R]W=W\<N;V9F:6-E=FES:6]N+F-O;2\Q+C`N\,"]A8V]C+VUE9&EC M86PN:'1M;"(@=&%R9V5T/5]B;&%N:R!C;&%S\<SUM;W)E/@H@("`@("`@("`@ M("`@("`@("`\:6UG('-R8STB+BXO:6UA9V5S+V%C\<F]B871L;V=O7W-M+F=I M9B(@=VED=&@](C$Y(B!H96EG:'0](C(P(B!B;W)D97(]\,#X@"B`@("`@("`@ M("`@("`@("`@(#QF;VYT('-I>F4](BTR(CY01$8\+V9O;G0^(`H@("`@("`@ M("`@("`@("`@/"]A/@H@("`@("`@("`@("`\+W-P86X^/"]T9#X*("`@("`@ M("`@(#PO='(^"B`@("`@("`@/"]T86)L93X*("`@(#PO=&0^"B`@("`\+W1R M/@H@(#PO=&%B;&4^"@H@(#QI;G!U="!T>7!E/2)H:61D96XB(&YA;64](FYO M:&5A9&5R(B!V86QU93TB\,2(^"B`@/&EN\<'5T('1Y\<&4](FAI9&1E;B(@;F%M M93TB\<W1Y;&4B('9A;'5E/2)A8V]C(CX*"CPO9F]R;3X*/"]B;V1Y/@H\+VAT %;6P^"@H` ` end
[spadkins@officevision.com - Sat Apr 21 01:30:54 2001]:
----------------------------------------------------------------- [Please enter your report here]
Hi\,
I sent this message to the Template Toolkit (from CPAN) mailing list\, but it is really a problem independent of that module in the core perl interpreter.
Stephen _____________________________
Hi\,
Great work on the Template Toolkit. I have been using it for a short time and have been very successful with it. However\, I found that processing a certain file (with no variables or directives!!) was causing perl to core dump !?! Now I know that no perl code should *ever* cause the perl interpreter to core dump\, so I suspected a bug in Perl or in the way that Perl was compiled on my machine.
I was using Perl 5.6.0 on a VALinux box (running RedHat 6.0\, enhanced).
uname -a Linux shark 2.2.14-VA.5.1smp #1 SMP Tue Sep 12 18:02:03 PDT 2000 i686 unknown
The perl was compiled to use the libperl.so shared library.
The first thing I did was upgrade to TT 2.01. ... same core dump.
The second thing I did was upgrade Perl to 5.6.1\, and I built it with all of the default options (hands off configuration)\, which resulted in a statically linked perl binary. ... same core dump.
The third thing I did was trace into the Template Toolkit modules to see exactly where it was core dumping. In Template::Parser.pm\, in the interpolate_text() method\, there is a regular expression used (line 371) which is causing the core dump.
while \($text =~ / \( \(?​: \\\\\. | \[^\\$\] \)\+ \) \# escaped or non\-'$' character
[$1] ( \$ (?: # embedded variable [$2] (?: \{ ([^\}]*) \} ) # ${ ... } [$3] \(\[\\w\\\.\]\+\) \# $word
[$4] ) ) /gx) {
This code is simply parsing through the text of the template that it has been given\, dividing it into chunks of text and "$var" or "${var}" variables which divide the text into chunks.
I was still doubting that this problem was anything other than my own fault\, so I continued to diagnose.
The fourth thing I did was to create a perl script which would recreate this error independently of the Template Toolkit\, using the offending expression. I created a script called "ptest"\, which begins as follows.
:::::::::::::: ptest :::::::::::::: #!/usr/local/bin/perl
$text = join(""\,\);
while \($text =~ / \( \(?​: \\\\\. | \[^\\$\] \)\+ \) \# escaped or non\-'$' character
[$1] ( \$ (?: # embedded variable [$2] (?: \{ ([^\}]*) \} ) # ${ ... } [$3] \(\[\\w\\\.\]\+\) \# $word
[$4] ) ) /gx) {
\($pre\, $var\, $dir\) = \($1\, $3 || $4\, $2\); print "pre=$pre var=$var dir=$dir\\n"; \}
__DATA__
So I put the offending input data after the __DATA__\, and I was able to recreate the core dump. I also tried other sets of data after the __DATA__ and got normal behavior. Now I had a simple\, isolated test case which I could email to someone for diagnosis! This "ptest" script is attached at the end of this email in uuencoded form.
The fifth thing I did was to transfer this script to a Sun box\, and sure enough\, it core dumped there too! This led me to a strong suspicion that there was in fact a bug in the Perl regular expression library\, which unfortunately\, causes the Template Toolkit to fail on occasion. Details of the Sun box and its perl interpreter are as follows.
www:/home/spadkins> uname -a SunOS www 5.7 Generic_106541-14 sun4u sparc SUNW\,Ultra-60 www:/home/spadkins> perl --version This is perl\, v5.6.0 built for sun4-solaris
The sixth thing I did was to try to find out if I could modify the regular expression so that it did not cause the error (i.e. isolate the problem\, even if the result would not work for the purposes of the Template Toolkit).
So I changed the following Reg Exp phrase from
\( \(?​: \\\\\. | \[^\\$\] \)\+ \) \# escaped or non\-'$' character
[$1] to ( (?: [^\$] )+ ) # escaped or non-'$' character [$1]
and the core dump went away. I know that this will not solve anything for the Template Toolkit\, because we need that expression to allow us to escape "$" signs ("\$") in the text. But it might help us figure out a work-around.
Anyway\, this is where I ran out of steam\, because I am not such a regular expression guru that I could proceed and find a work-around.
That's when I turned to this mailing list. It seems to me that two things could happen.
* Someone might be able to find a work-around so that the Template Toolkit does not need to use the buggy Perl syntax (That would be people on this list.)
* Someone who works with Perl could investigate why the seemingly legal regular expression is causing a core dump. (Does someone on this list know whom I should forward this email to for that?)
Again\, thanks for all the good work.
Stephen
This problem appears to have been resolved with change #27598.
@smpeters - Status changed from 'open' to 'resolved'
Migrated from rt.perl.org#6844 (status was 'resolved')
Searchable as RT6844$