public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: jsm@cygnus.com To: gcc-gnats@gcc.gnu.org Subject: c++/5: C++ sucks, can't you make it better? Date: Thu, 10 Feb 2000 13:46:00 -0000 [thread overview] Message-ID: <20000210213849.8395.qmail@sourceware.cygnus.com> (raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 635494 bytes --] >Number: 5 >Category: c++ >Synopsis: C++ sucks, can't you make it better? >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Feb 10 13:45:59 PST 2000 >Closed-Date: >Last-Modified: >Originator: jsm@cygnus.com >Release: unknown-1.0 >Organization: >Environment: >Description: C++ has too much stuff. Make it smaller. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From jason@gcc.gnu.org Thu Feb 10 15:26:00 2000 From: jason@gcc.gnu.org To: jason@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: c++/5 Date: Thu, 10 Feb 2000 15:26:00 -0000 Message-id: <20000210232600.28916.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00001.html Content-length: 771 The following reply was made to PR c++/5; it has been noted by GNATS. From: jason@gcc.gnu.org To: gcc-gnats@gcc.gnu.org, jason@cygnus.com, jason@gcc.gnu.org, jsm@cygnus.com, nobody@gcc.gnu.org Cc: Subject: Re: c++/5 Date: 10 Feb 2000 23:17:40 -0000 Synopsis: C++ sucks, can't you make it better? Responsible-Changed-From-To: unassigned->jason Responsible-Changed-By: jason Responsible-Changed-When: Thu Feb 10 15:17:40 2000 Responsible-Changed-Why: Why do I have to say anything here? State-Changed-From-To: open->closed State-Changed-By: jason State-Changed-When: Thu Feb 10 15:17:40 2000 State-Changed-Why: Insolence will not be tolerated. Obey C++! Trust C++! http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=5&database=gcc >From loewis@gcc.gnu.org Mon Feb 28 23:06:00 2000 From: loewis@gcc.gnu.org To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: c++/6 Date: Mon, 28 Feb 2000 23:06:00 -0000 Message-id: <20000229070601.10790.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00002.html Content-length: 484 The following reply was made to PR c++/6; it has been noted by GNATS. From: loewis@gcc.gnu.org To: gcc-gnats@gcc.gnu.org, martin@loewis.home.cs.tu-berlin.de, nobody@gcc.gnu.org Cc: Subject: Re: c++/6 Date: 29 Feb 2000 07:05:40 -0000 Synopsis: Testing GNATS State-Changed-From-To: open->closed State-Changed-By: loewis State-Changed-When: Mon Feb 28 23:05:40 2000 State-Changed-Why: Test completed http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=6&database=gcc >From martin@loewis.home.cs.tu-berlin.de Tue Feb 29 02:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: c++/9: local class and -O1 Date: Tue, 29 Feb 2000 02:06:00 -0000 Message-id: <200002290951.KAA01357@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00003.html Content-length: 3021 >Number: 9 >Category: c++ >Synopsis: local class and -O1 >Confidential: no >Severity: critical >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Feb 29 02:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Ulf Larsson <ulf.larsson@mbox337.swipnet.se> >Release: unknown-1.0 >Organization: mira >Environment: System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown Architecture: i586 >Description: [Original report in <38B5D906.B3544CB9@mbox337.swipnet.se>] I'm not sure if this a bug, but g++ with -O0 accept it but fail to link with -O1. g++ --verbose -O1 prog.cc Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/specs gcc version 2.95.1 19990816 (release) /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ prog.cc /tmp/cc1V6mke.ii GNU CPP version 2.95.1 19990816 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../include/g++-3 /usr/local/include /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../i686-pc-linux-gnu/include /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cc1plus /tmp/cc1V6mke.ii -quiet -dumpbase prog.cc -O1 -version -o /tmp/cc9xhG3f.s GNU C++ version 2.95.1 19990816 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.1 19990816 (release). as -V -Qy -o /tmp/ccMLXzsi.o /tmp/cc9xhG3f.s GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version 2.9.1.0.23 /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/crtbegin.o -L/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1 -L/usr/local/i686-pc-linux-gnu/lib -L/usr/local/lib /tmp/ccMLXzsi.o -lstdc++ -lm -lgcc -lc -lgcc /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/crtend.o /usr/lib/crtn.o /tmp/ccMLXzsi.o(.gnu.linkonce.d.__vt_Q29bar__Fv.0_1D+0x8): undefined reference to `f__CQ29bar__Fv.0_1D.6' collect2: ld returned 1 exit status gcc version 2.96 20000221 (experimental) gives the same result. >How-To-Repeat: class B { public: virtual void f() const = 0; }; void foo(B const &) { } void bar() { class D : public B { void f() const { } }; foo (D()); } int main() { bar(); return 0; } >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Tue Feb 29 11:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: c++/10: [not accepted] handling of non-type template parameters Date: Tue, 29 Feb 2000 11:46:00 -0000 Message-id: <200002291938.UAA00828@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00004.html Content-length: 2215 >Number: 10 >Category: c++ >Synopsis: [not accepted] handling of non-type template parameters >Confidential: no >Severity: non-critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Feb 29 11:46:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Ewgenij Gawrilow <gawrilow@math.TU-Berlin.DE> >Release: gcc 2.95 >Organization: mira >Environment: % uname -a SunOS sokol 5.7 Generic_106541-08 sun4u sparc SUNW,UltraSPARC-IIi-Engine % g++ -v Using builtin specs. gcc version 2.95.2 19991024 (release) % cat tmp/gcc-build/config.status #!/bin/sh # This file was generated automatically by configure. Do not edit. # This directory was configured as follows: .../tmp/gcc-2.95.2/configure --with-gcc-version-trigger=.../tmp/gcc-2.95.2/gcc/version.c --host=sparc-sun-solaris2.6 --enable-shared --enable-version-specific-runtime-libs --enable-languages=c++ --with-gxx-include-dir=/usr/local/include/C++ --norecursion # using "mh-frag" and "mt-frag" >Description: A template-id with boolean expression not enclosed in parentheses is parsed wrong. #line 1 "prob1.cc" template <bool b> class C { }; enum { b1=true, b2=false }; void f() { C<b1 && b2> c; } Compilation fails with: prob1.cc: In function `void f()': prob1.cc:5: `c' undeclared (first use this function) prob1.cc:5: (Each undeclared identifier is reported only once prob1.cc:5: for each function it appears in.) prob1.cc:5: parse error before `;' If you put parentheses around b1 && b2, everything works fine. In a bit more complicated context, even parentheses don't prevent the compiler from crash. #line 1 "prob2.cc" struct a { enum { answer=false }; }; template <bool b> class C { public: void f() const; }; template <bool b> struct D { template <class X> C<(b && X::answer)> operator() (const X&) const { return C<(b && X::answer)>(); } }; void f() { D<true> d; d(a()).f(); } ends up with: prob2.cc: In instantiation of `D<true>': prob2.cc:21: instantiated from here prob2.cc:14: Internal compiler error. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From nathan@codesourcery.com Wed Mar 01 09:16:00 2000 From: nathan@codesourcery.com To: gcc-gnats@gcc.gnu.org Cc: gawrilow@math.TU-Berlin.DE Subject: c++/11: bogus instantiation during template deduction Date: Wed, 01 Mar 2000 09:16:00 -0000 Message-id: <20000301170946.3429.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00005.html Content-length: 2726 >Number: 11 >Category: c++ >Synopsis: bogus instantiation during template deduction >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Mar 01 09:16:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Ewgenij Gawrilow <gawrilow@math.TU-Berlin.DE> >Release: CVS 20000229 >Organization: >Environment: All >Description: The following piece of code can't be compiled by gcc 2.95.2. #line 1 "prob.cc" template <class C> struct A { typedef typename C::obj obj; typedef typename C::cobj cobj; static obj g(C& c) { return c.g(); } static cobj g(const C& c) { return c.g(); } }; #if defined(WORK_AROUND) template <class C> struct A<const C> { typedef typename C::cobj obj; }; #endif template <class C> inline A<C>::obj g(C& c) { return A<C>::g(c); } template <class C> inline A<C>::cobj g(const C& c) { return A<C>::g(c); } class cont { public: class obj { }; class cobj { }; obj g(); cobj g() const; }; void f(const cont& c) { g(c); } prob.cc: In instantiation of `A<const cont>': prob.cc:19: instantiated from here prob.cc:7: `A<const cont>::g(const cont &)' has already been declared in `A<const cont>' It seems as if the template parameter deduction is being made twice, once when analyzing the return value of g(c) within f(), and then during the instantiation of the body of ::g. It wasn't that bad, hadn't the first attempt lead to wrong results. >How-To-Repeat: during deduction of the call to Baz, A<const int> is instantiated. This fails, but should just be rejected, not cause a diagnostic [14.8.2]/2 >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="nathan105.C" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nathan105.C" Ly8gQnVpbGQgZG9uJ3QgbGluazoKCi8vIENvcHlyaWdodCAoQykgMjAwMCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLy8gQ29udHJpYnV0ZWQgYnkgTmF0aGFuIFNpZHdlbGwgMSBNYXJj aCAyMDAwIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCi8vIGRlcml2ZWQgZnJvbSBhIGJ1ZyBy ZXBvcnQgYnkgRXdnZW5paiBHYXdyaWxvdyA8Z2F3cmlsb3dAbWF0aC5UVS1CZXJsaW4uREU+Cgp0 ZW1wbGF0ZSA8Y2xhc3MgVD4Kc3RydWN0IEEgewogIHR5cGVkZWYgVCBUX3Q7CiAgc3RhdGljIHZv aWQgRm9vIChUICYpOwogIHN0YXRpYyB2b2lkIEZvbyAoY29uc3QgVCAmKTsgLy8gZ2V0cyBib2d1 cyBlcnJvciAtIFhGQUlMICotKi0qCn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBCYXogKFQm LCB0eXBlbmFtZSBBPFQ+OjpUX3QpOwp0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBCYXogKGNvbnN0 IFQmLCB0eXBlbmFtZSBBPFQ+OjpUX3QpOwoKdm9pZCBmICgpCnsKICBjb25zdCBpbnQgaSA9IDE7 CiAgQmF6IChpLCAxKTsgICAgICAgICAgIC8vIGdldHMgYm9ndXMgZXJyb3IgLSBYRkFJTCAqLSot Kgp9Cg== >From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 11:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: c++/13: [internal] error in `const_hash' Date: Wed, 01 Mar 2000 11:36:00 -0000 Message-id: <200003011920.UAA01036@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00007.html Content-length: 23788 >Number: 13 >Category: c++ >Synopsis: [internal] error in `const_hash' >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Mar 01 11:36:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Matthias Meixner >Release: unknown-1.0 >Organization: mira >Environment: System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown Architecture: i586 >Description: [Original report in <38BD2A8E.E1D0DCBF@rbg.informatik.tu-darmstadt.de>] g++ reported an internal error: meixner@pc2 $ g++ -v --save-temps -c -g -frepo pageserver.cxx -o lo/pageserver.o Reading specs from /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs gcc version 2.95.2 19991024 (release) /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -g -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ pageserver.cxx pageserver.ii GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3 /usr/local/include /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/include /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /opt/gnu/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus pageserver.ii -quiet -dumpbase pageserver.cc -g -version -frepo -o pageserver.s GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.2 19991024 (release). pageserver.cxx: In method `PageServer::PageServer(int = -1)': pageserver.cxx:4: class `PageServer' does not have any field named `event_manager' pageserver.cxx:5: no matching function for call to `event_manager<PageServer>::event_manager ()' event.h:42: candidates are: event_manager<PageServer>::event_manager(PageServer *) event.h:59: event_manager<PageServer>::event_manager(const event_manager<PageServer> &) pageserver.cxx:26: Internal compiler error in `const_hash', at varasm.c:2372 Please submit a full bug report. See <URL: http://www.gnu.org/software/gcc/faq.html#bugreport > for instructions. The sourcecode has been attached to this EMail. Regards, Matthias Meixner -- Matthias Meixner meixner@rbg.informatik.tu-darmstadt.de Technische Universität Darmstadt Rechnerbetriebsgruppe Telefon (+49) 6151 16 6670 WilhelminenstraÃe 7, D-64283 Darmstadt, Germany Fax (+49) 6151 16 4701 >How-To-Repeat: >Fix: begin 664 pageserver.ii.bz2 M0EIH.3%!62936>DI@;4`*VC_@'____C[?___O____K____]@4A[PD#T`\@JC M0#0!30`](^O7:4`Y<#[/'NP]Z]J=7L#V[NV7VZ^JH>#ME-BVH?9WO:#WWPW> M[8HU]M$I0;S<2@[LXW7KMWM*.=M>]NU3`!+;W!D[L*H*]#N[@K=[V:`=WG+7 M-[I-SVU44Z+=J2V#WNGJ[6DO5[P5YZ=WFZTX=[W6W7I:>[N][TUZ]KFO>['N M[O-W-9VWC>N3LVZW,<[UKUK&X[>]RE;>2][M[=UVNYV^MV``?"E,WV>1N^L= M:Q[V>N\[D?02(A`30":::!,A--&F4VFJGBGJ/T34],H])Y08GD3U,0#30T\0 MF$A$$0@0%-/4U&]3"1ZC(\A,C(`TT`:`T9/4````$IM4E33:AD-J!IH`T``` M#"```T``#0-``!"4D(C0(-1D:FD;4T\:0Q3R)HQ!IHT:``-`-`9``T$214]% M'ZF1I/0T)J;3*>J?B&B:,3$C:F0T]1GJAD--J&C0`-``$21`@"`3":GJ>DVI MIDD_0D\*/*/4T/2>FH,AH`````.%`,0$QB*19!DC`BI2B%$#!"0!(#34R&A, M_7D#*+P:E#`Q.@PVAU`5"0JYEW(F%.04'&&(4-(@:1DE4F4@`@S8+$Z(!@A& M4(0`9%8"0@,@QD$82A5?)9!)T$1*!1^D(.%BZ:U!13U6LA%M#11*044K5XD` M[E0`'[7];^C_A_K_W>?V3T_=\Q?=_TM:RQHJO;R]V`]N#<(2V(HAK!*Q3$TL MH?SIQ-*W$#*`W1_2X?NPWLWMA[>>$/5L,7-;;.JJOD3B("^8K^K%$0H?S9`B M%7@>A_\R@@O?V]&=M3C9RDQJ1B0)DKDMQ81C`A*4:C!$DC5JX<.%8__<.;)V MZ.IY-).,Z::ULIEL60V_2W">8MVC=W;JTXK6D[_5TG*ZB$E4WU;EWGOC'8JK MK;ZKDRERHI(VZ@Y'(Q11L50Q.MDS04,1%:WE&F(YGKFYMUMU=<+9#;`_J["% M/((E:T^(7EZV*-.5$AUMGJRDI6<%4'-Q!Y9+1(F+.TI6T8-`:2(T-,<#E[QA M4#AB@J9<H$7"!48#4;&R2"4)0KE!:.K2-V1XK2JVVLZ21-`5WLO1BSB81F2K M8Q:\7)JYFC0!H)K0FQ,Q3I4I)2@9S:-24TU15MWYB"X8VQEM;8,50$P4$Q5: MU.RZ=M2:9P9M;\5UZZSU[?9XU013H:(AW6X%0TZ"3U0I#8NN**O$(RVIIV>B MYBGHG'6YPW\F-==N<GD6.7CF4R8MZN,CTP^A[<+;%HU"AY1MJ(?%2FY#WX8K MAQGFMKT]O"N3K>[E;<.`5VW0A=;OP$TE$!%(<L#=7)$Y:>0]-BNC!:3-6BUG M:P6J:2$E(J*P8,H&,"-Y094+1-'+:7V7'D1/:SS;:K&[\.-<N9.NMN774J+R M0:&A"!H&AJJH):`9D3J0#DHFV'$T)I_G[QUTO:<0TLD!034-!%5-$405$%4A M54_"!>_?T\N^[&.NK&QSD4>A+O3I]7O[7$ZM4<CESV^/7/4_=CRGD'6SY>1# MV@*NAMM%K)5%$D4W,YN</,ZZNN=/.F.HM.HZQQ?5\-3"PL750<;5PA8,CHNF MU9<)5$!\#8X8QR[X^?L'7;OBNQ:UHSSFXZ><PG.%SJZZ,G.?S)-Q*U-O;WUS M4/\7CKHI2O7&DH]MY/;:*)Q@O&.#35:-6V+;\.X<[_''(YLT#,?@V\1@EHF. M\<'Y`+V^[?9COX[\/`0'`Z<;<JF@*2+SNKKKG-$3SG.5045&+G1GJ>L=</9C MG73KL1$8C7.;C<VN&#A=<.KG)>;%[K4G140Q=;LW*(S'7+IXF.=^!U13P.MR MX&KAS%/:+8NZJJ,7FJ<\H!IHPV\4-&*@6ZI54RUB"8NUFMUHX[D!SAJ>?4W. MI#2TIO&ME*7AL%=L;KUX.HZ\<6N_4TH(VM524MF1L9P9U[V[%S?8YMKNGBOS M?K]KC!EZ/\7;T]_P/>D:WY8Y<VU_!!HX!%(3$E+_*A'3R%*?I@T)R5:MBM(/ MW8<'&L49B();46BB8JJL050:*J/N;3R@T;.Q8PVQMJJB@=L6-4:-$XJHMBV, MS8@-15L&BC6L;!B*O^3<XZQ49Q1@S<=N05%;&AIUJ(*G;/V8I:0RU4031-,% M(?1!US3K.Q;#H+0;8HSISM_-CAW8QUBT2:@T.G1C@8-5L]\XJ7#M!`=.;Z?R M6M@&<0B)$R(.]S1T;9/+G-RYS8.9:$"0E`F8FFJ($1#2=?G]%ON?N;Y.=D_1 M_%M'S?@WWOV,>)]<%7N7/VN"ZT94P_'$YM+^"Q9[2E;4T:MJ_%IJPL2TC7]< M)&3UI$99TH\+])_"TZ4RM=.=T:K2;Z1_(\]?\&491LV97E2(\*4F[*,W3\=2 M)M.YR]M\R];CX\\*91U27Y0`5N4I/R;ODL."D#"5#[\"VRB\)/L[:-D34]SW M42(0F1""-(%RSCKF(O9##+I-[062+\F-+O2':K!!-K$F=350]3*HB#[;I(9> MQ&3OMA6&YHS+%IIL64'%_*T*H-=)P:]//ZKB/IV`X<4[0'PYGX6GM#JCMVQ\ M(\/#39S"#O?%]N8NK]Z$-\1YN-)--)L!2'O][V[;@==5UNB/%PNWY@_)W_!V M8[@:J'D8FHB]>\OO;I]>8*")"@"^3T]GOV^W5+RQ/,UEB/+,QQAL[63S1#&C M.KI&7;1]F.H(]?C/E/6BFC7JN0/(+RR><')#M8[8T!2'K_0P<BN>T?;PB\SV M29B8B(\CF#Q5YWZM\/)\H5%#R\W?*&Q$4?+L\QW6^+T9)/+:J:V,->6<*BA< M\5?BYO(DU,525V4-@.X]24/?@>D`OMD#H/FSZ<,_?N<R+=\+HT`:%\Z9<O5U M?'F`Z]5%W94XQW[<XBFW+@G)$>2<E5UVN'$BYZCK&(`916H*%HB&MR@!2"90 M4M$'A$$R#>MUIL%82A?AHHL10D57!*'F3N1E?79;D=R0ZD3J0'20(P7_HYL^ M3X/W'O8_E69[_W12T?*Q9X?VVM]YX#K2?OEV-,'B'RL[\+OW!8N_MKI@445# M\`PSIC;]L5RFFQS^\<4*M:GG_=:&##5%"G;JM397F.[1Z:R6KZ87U_;B8JP6 M;WIN9-;(-G[K')YTJ5DB=VK44)9U3:3$?*W[*6PT+/G4-8^&4ZH/\`Q*%MEH M+9PVTUH&H,:K.*UVE<"6]<]=NK.[-:9XFP&<JR"_9*0"^F*I[G-K`*9(=I"5 M`#DB#:!Z@/A`[%,\67[KIHCM'%YHWX^L=3VOKA<1\1Z,3?@_3Y]B\7W_-S4! M`^<CWDTW,;W,;@@WE$0D-`SIG.;#&@-V_:XX\)%2G''W/.#ZK-=H@Q7//.\+ M/1B"CED5-#;8>2!(!AB][W),5522WCJXX^:E..3)5"8`!29@11:"020)%(I\ M%5(/JGQ!MS=J%'Z#44I[-E-92;Z$N*=0C06]/Y7)#?[,XWQ2VS#'ES3&^-;I M54>X8>[J47F2M5?$3XUQ?'&M\8K.+E&Y6C-R]YO:SC0WJ4V6^&N(3+XO>-3% M:XS>)O)\*%C7$=S%P>L:WSDW;@3&MV3%WK`?1/$/G^<?QHKW@[:+S18+6(2` MBB/,^IF\)JE4H@;/;19$G45@*)3U.S=Q.<4ZN":*.QR7LRB5JX='#AK\X%W; MWHE(7U($@+%BYC?L7X/YCS@!QB!H$0$^.F2@&T3VP1-I&I0[04#0%"4('(^[ M>J^CWA>8'5PVJ;1%GY._PELKC$ZH@6ZDB!4N&4L87'$_D@F'SN'<P=TC[?-T M2G:"K:"^V6O%120X#"A=@C>6:/+B4)`&B`H&T.J8`3S2DDFC@L,!#)>NGM8T M&\%F;KZ>?:9=UDN\6L:/(]"J6/AE<F2!R6P;7;&GALS4,/C2B&P;SKS6\EW! MP5P5E1LO8#JV[6+[A1S!YEI'EWOHN_V`]A"'HC_H00A%P:J**&AI`K_2?8W) M1['9#DC2`QQKEII8[F$#73_+E/JDB2#62@"*(*H2C*;,U!;&IE(BIJ$I2HB* M"!BJ9<"EUV>P`:'8U4011H<A1+%21*TTC;8QMC;;QT0EQV'KSZM5>JM0.V\) M-XD"J((6@M04+%588JE#05!P_7_+Y?Z/9_QNZQ=T_G2?W7%3_V;_!=?'7/X- M8XDY_PU30]YFW_G6*_@\L_(?=2KY_HY^.UK6M:UK6M:UKGH1U,MV'Q?T5%<T M^9+(/ZQJC^CO"^G47WEC`+SMN0-H,XD&6FI,('[;%V3$;8*]3XL_9=-/L`^Q M]?D]I/FCO`S!P?9.-[,?F"S'.C-RWIUSOT'11Z&>NTT?I&W/%BV-Y9T/HX-Q MEMOS6;U%Q<P7%5*5](",`9**D%145%145%2T@Y544X%E`OY5W.YV/EQ[H.5+ M$?E-HOA=%PY@GP?8@#;?LLD7#OMC06U5D:FC4-XW<^;&4"RPA!P([E1Y;.CC MG&<'4#PD.B<C!+(R;HC20"T5L32%Y@ZX-AZ6)2R4:TA!UWA3.P"5P.<^7K]N M0>?:VU>6P<J!M,*E.D'I<<+(PB2*C((>M/611,N<=>LY;L<3$Z=$5!62:3:4 MH41(0@04UP'.-B!'3//-PPBE#XQH#DC\L;Q#I/2#44')[)W3)^Z2/"ZHCWQ7 M+M!R#\!\O;ZO88^R!=_$;#_4M:UPWMYK@67/N*?;E'G$^8XB!YM%)U!0=Y$Y M/V^55>).TTF!@Z!MA;`N0N#TT!U2,Y:$^7&=[825#)6`!9]RB3USYNYCRWRB MP]7.V<7M[>_5^H'J%DL6<I'@[NZMZY891BPC.(_`A6O=ZT%L,3TA/KVO8T+L M7A!)GLPQZI&T60Z4!30*AY=C[L%4HFA+[`=YH\P6!J&Z`\0VX3<\1]8;X944 M0-G9-FXB&FZ\PUA8,G4^/IY55X'Q!Z0'.$<`[O7C#<[6XW'MI;UC*IV9P9>; M2&BX/)F4681@A9@<1+A@DO%53=DL6D26B#54R6#FU!N3D3J[?0=,3^?T)UQ= MY!S=ZO(NQ4I@Y"*3;L0RU((MJ-9J&'9@HH6[3B5J@>J52",B8RD#*0ZK,MHJ ML)U@B71G>S[)&F;938W@2ES.)Q#;9(U,M\^3O'2L=7;GI:TWR:JH[>Y>@]Y[ M^W4;G+MNKAS',:6-&[<.F2YF9\CKYNN!\YSHY,M-#[??CD/*[G8.'ACL)#[0 M-L8-A)V$U?:4*.H%0("0'Z*<R3FG:A&QTU31YS2WMM6%L?0G>::\FVA.0>0. MD/.HY[0R.J`].='9/ID/?XXFR:X,@TE`*#6&9Q(Q=7XFX6-=1Z<*D9WGQ]7` M[T17B?CSEK17QJJOGFD'MGJ?7N&VT)ZV>6(O@TH\83*<^8Z+X<!.NPX\BH[E M-E9#TA\TZ`\0:\,T^)Z[.+B6G>?./T[=;=[^IS'`@RB@02]@E.Y%;PX(JZ)A M")NUI3#/#A"YLYXCW&L#[+D(L^LD\EZ--EGH"P+MN.@BVU32N-EA19LB&QF, M-F`LC+895`?O.JJA\DP]4%M-(AP_+!!<`=`*'0H".X"'<!![9R&(1BDS1HKA M27C'N("8-X&DYLU5](D4AB:(;"1;78+,D9\GSVFV'@4E[7CKNP`!JR8V7N6E M+7C!IXP'@M?)/<D#M!2M!V=UT7Z.-Z`]^\7?&VER8D)&"J9A+P!Y[[W;ESW0 MKW"1#\H':/S_(^J:*2(*:0)BI(DA@J8IE@&&`D$^)H=O>Z(_;/<>5\-O([!] M0?>_EU7ID4*@"#^Q'9"H&"@KJ&(PB&2".KA6%T?(L)V>UF7=^V[MUYX[,E5V M(%UG10\5Q=:L\HOHZ:IAO[\"V?R0A_#_?%Q<7AS$*W3\&`L/OD.QV(<W5=KW M1AGRL1]MV,-,/:RC[VOZ^,-I*M95'@RN[^B8\,???DSAV\MR?S:BOTYU?7RA MU]-4D9Q-O,EC*Y(9U/F'SV'N_81']0B3<`8E#T45&<12(<1%;P#V[4(6B`E[ M4I((_I=5S:JJJ_*'7Z_[W^?T_+V[PKZ>6//['Y/OW2"0%$!KI`0ONLVRCZO? M!<!M)^S'7,8%VS-N)SZRD'W<KL/Z]G/%\]-?)VE;`>'(,2>G&^[$^^WS[U;O M>N_I\]/&Z>$13W<0#)GGP#[/P^;X_7Q^W$^TQ2@_=R>:U%#@F)-"P,"0W/!H M64*'+O`#-%V^,'VO(U[45OX\YU<<HTSRP0CYF@$9(;!#1JSRP;>E0%>;;@ZS M9<QYUTI#V\;IS=)WPZU55554>[Z><[Q^<1>/3QT?P_Y,>D?)>I_GQA.&SMR. M._IV;9R.4-$VN<TR<#LY%Q'GR-8,)K>D6(#9@A(RJ%4B[N,,"MATB4ML;IOR M"]8P+J:SD1=0IEXV-==8XB,C/6L")@;&F97Y47%HP`T+ISN[,=11!QPX*221 M(G&5FT(F_1Q*%L:W1DZ-QUD$'3&HE/"!"+V`C7%<H`<.NE"\!#[(H#R_3L/\ MLCZL)IQ[##A-MNN)X5QQF(QISNFW[^6^CUKX-\Z+V\/&=YO-;IY\L[[=KW3C MJOI->%JLS(ZLXIJG&^76KF=<Q2D:3_@^W".VO&[[--\3!AW:WGG>'TCW+?AC MBO%OFB4?<]$T=-T:[8Q)>=^OIQVF7,6S=8*='7L6WKJKYRUV\3-YOBE7<\[X M[:*>>R\7F%Q["&W"IKG6SC5;+MN.SK`PV+7=S`J@8C099\4%2M=*!5;ZHY-, M\8")00$-`>N6R7=T_IC@>G-]?'^6\TU^JX*UOOR&',U59FO$ELZLVQ4-L\_L MG39AKL'6EG)3'VS.H>RMEIKXU"F\RVO7$*6@;%D]];I)`SH2LF4?:S)JU@(` MN`9&+C29V_1U8F>54'PLXY@_([,6G77[AC[SBRM1-N0S4E50U[-8!\3")&SL M37#.B&3>NGE,B,^YQ.?AAX%&L[^>'?:7S_+6E+8$0S#.'-B32M.!EK\3?E;! M;Q\(#A-3N&:3V$$,MNJ8&9Q`-A>TC7$;JXY&5F\9BF_A6C/^.J;.ZV_L+2%J M"CMRIJ2_UNFFW.+MPPVY]3.3NWGS=G$H'CNA!,01UP/PN[*`!V8Y7Q'":TRQ M>PT,0SX<Q!V'$J*`=!@!1[&,D2HRD5[HHYX`1@"&",16$09!0"F%=S[?BN?= M@>"*/L0>>(T3+%:B!\\SP$Q!I+VC!:7H7HZ(7?>=#T?/<KSS*\N>)!-`>8?T MX>'L']+[ONW\NOYVZU-[OY=ZUC=1^B5,35\:VN+.GQ>2/?]7E14C:N$23\_J MCS/5HAK.6S7Q^GH]V:^COX..LZ&\:K)[VYP!?TP^IFOFOOY7/!&=,<68?:^N ML%P+N]V-]M<7!>7S>;-9-6=?-'-G4W/1WX^_X9.5E_LTM[\PSS@[<^_71X)< M+CYL?K4_<X[%W<D;^+PRN9-=?(GL/K>%^(L>YBW]9K!YCVX#XC=I[1XF.^_9 MUD1JJ+[6(Q:JKA/.[`:F521'F,J3AY;Y+9ZI^&&9YD%2=5*[-=8BMNPOKH&* M.(SMB&1C$C=JH?AB-MFMIF\5./=N5,`9B]4X`7V^N5;54L&X,<NN*D-=G.]] M2=L<;N<?/2ABWA`>M^L[=*Z'@6*]*G;JW$EM>^,#35;L=M2P00+=IF=:-%]C MM\EQ-F=U@^*U'>[7F#KTPYE+UZHF3)(>>.`F`>TPOW*@Z@W""/>5!N[3Y!=" M]*H.A4'1J#.$'EHL>F8)Q(X&[I%:5X>=?*L=R1%'X4>>4TK,&>)-8R=1O+"O MG$]E%AA=B,*:936BHY84;;:M:"F0\V&.CG$-7C6*SJ73K4)4DSSTQK..VFD3 M!SPVG@HO-WE(O-5:J(,X[&363.=&*2&KB$7=3%@5K6##6IAU`[Q,/((1L:@= MS,LIN72"<<`D4;F[E_ZJ#EI%(!%Q5!U*@U2H-K)J17F"0D)"#%%(`!"#@J#@ MN_%<")QJ@T`=EQF^>&FKL*CH0\2+BDF*I3N"@3MIR0YN]W^Z=.%;.!:=W*;' ME#F"%\]@L0)&U\A&3;XV#)VHZ_!?O<?18\B,[WQ8M5P7AH])[XS==<.16/4G MK@"A'UA/\Y\Y.A.2#C$<U-%.0"R!40O-(MX7Y*$PC&@`N1\^6Q*22#XD&RUV M4R:;.('#+&V#W!1?U?+[>R_"]LOI4]3;4+YMHZ[F.]K]-+7KX;&=M3N2#WF6 M"1@)&40+1F)!?K/K50%H7<N''E2M#5OO0"J'4$7UM?2^EAV@X@(7N20*_V?` MCS?*8D\[>>-8G<R?CYZ<0-('B.&][4;5C(A;LKD@270135JAU@<N*S3,JYHB MKE(:`W\@AG+D(5:)M+!XS"OT!5H%*2SC!CTJ2V^+T<WZ3L645K`-A>\F3N^= MI29P)4PU9C>XQ(OSONY<MZ1YKE:U:2!6A6SI#;H,M?BZO$\<WS<XVC_HLR`R MO#:2!2Q@Y:;?6G,>B)[\;0]GPZ<D-?Q*@["UD.4??9A!_3!1(&H(/KW1T:1? MACNY7<>5<*%+QNZ<*6ZL4&D\P@UZ2D%6@Z4=+Y9Q-Y?T#KJIG7L&(X[8)(%= M"#P/#2R0<A&19(O-F.;N976\[G=6Z[!UBH7M7&J#13T\T%XH2/3=1[YL%+(C MWNP'ZWR_C/F\`_IIKK!8HZ.&HYV?!`UV-*&`8-7AFWVXXY1#FGG;FU-O;;%S M7"OEYW?,[?<V3>\5KKC'FUJ[N]=&(R0Z^$N=O;\&S@Z<<NXV/KSCS-4P1U:% MY^,WYHZB=C-7-AN_PXLL3D4PZ/9=!WW@HW\G[^+TQC1)]*2B.:\<.$/#9I*: M3FPEPC^5Y=)VCJGV,RJ'X1(IAQ>;#EX1;1&(W"F#H0L--BIL,6BFL7JLG=YO MB^(LN]G:WB5R]]LX7>T3JU;J0,<.!MTQDO=&4XR*>C2Y,MIEHI[+Y&[-0T.C MK3$VS0-C6UIZKS#!E;22AM)+G!O=F4-=\G2N&Z,WN5MJQW%=V_?=\(A%VZ.) M;L#?\NZML\H^]3;L-AKRN4C1.$%NMVD7Q9?[8*ZH,]EIGQW29;U$:2_7W5MG M!<TYB=V$!EA4`N@@2I$';?SWT[K/LARV]<R*KJS#/#J*+01="!ID:JX\:[>9 M&KGQDKA!J&&,-Y.,]*Y-Q!0>3E])IA>YFNUDX<^,6+F5'CM*MHK`(O8)C&Y9 MX5<)5HNUHAG2ZJD][38>BA"HF5M"NK/7;.E*4M5Y6YM3NAO=6!0%(7C7=.U2 M*K>%#"*EL-\U.FE_57#QRUUU::FR;L.>6$9=.<::[R[%^&N*=D15E=0$"8#% MYP&>Z]P\,7U=L<<-NW1QX532%8'+Z\@X(]`'EQ3TVFGUZ"IHC]@U:.^!.7#& MN:7TK);E2>^`+P%B7FY2`'R1M&EUA<6..5E(2Z^CK[77F!>'[7K3<+`'6U&J MP7&&FVML"T@VB,Z,??=&,\JRS('OFD?:(1&(Z1%/D#9U]F[EZK,SOM,]Z%1[ M?MO80MZJ;*^VV>!"R:F2JN:WM7NGVYU?HZ'KM1OOIQ&Q.Z#5SKLYI$WE6]=A MRN&O,T#EE_5U8V/YL<]5>,204L*K@WV+;A5KGYV)I=)/E3K)X3N(MUU5YG=6 M(PF6Y'TFVBQCIQSVK#+*Y4G$K5X'*PX$]QU;(I2->0">>'CA.%@N/.H2LWRK MT"0,EL?3QIN42![J`P]YE`554`Y4\6EZ[P!BV#7A<'N1T`S1F83.ZM9GQ8%\ M\\4<,P-%35[,E#+(1NF_:/@'IHD.]@8(1BS4Q%ZF!*:R!EO_6?;]/]!_9N_? MN_;-U?YRI)_S_T^&SV&P^]\B-J256-MBBKG\AV_Q]76B.@M?TB4U?<<G<Y!@ M,3^Y^I]GB&2(01Q160(<QHC/Z.9Z(?\FH=748M&$=F.Z?MRRT\QMN5(:_@HX MN>S(>G_8SHPM6#NLT([9YUT^A#7?@!GOQ_[H$&6'#]]`_OH:?_K?G*;*F[., MO..R\#^N)8BJP&74_\Y-UV4TUAYF]_^.H)7DA#_%^J)&,*P(/]XTCYNTBX?I MP\O#6@*Y9Q^IJ14B&09`D$A"B@(2`=DZ/"N?H-6WTT9]V78J8LCV^<$./.-W M$RN"WT0_'%=1>A8>KV]2)IW#UOYM5:6(SJW%Y_UU5N\R`GIR2I/#D\1X19)\ M6.[4JK"HD<&V@X+K97P0A/YN_MZ%5N)/[_[)B(&WD9OD&N/Z/TD5;&'7W'=S MIW33T>=`+;EYH!']TS@B+N7":LR>7W/Q_]>U7:GACI3T,*STI'1)=EQ*VAC^ M/GV,"C];AC/$`?8U]#./G[LN+,WE=26UA-!L;D5G!**,]B#CV\-WK.Y\N_NK M>J019H!RO_IU<.0DCD\<\NL?#9AV;IYS/?,.WRXT(VSU*N+B,48B,`-$!Q-9 MS_U'GNN^LY;8RAE/9QI3@^;O\^KV8@(I8K*`:^X(V1&Y2C+A<J^;A3DFG;Y8 M26LW$L;^>A['[V?L_G;J2-^5PYP\NWNCRN1"OVGEX^_C*"/J[K+M9#[N^,.W MND@$JP13$D[<Q"L40MWMY0;3;O:C3E/U?1]$A^$U&&N'L^H?#:&KY]_I]=?4 MDM%5_KQ1`J]O/W;,KBC.1?[=\!.R('2D$TCQ^9@$>3Z'WRBHJA"E'MVBDZ_> MYD_!/XB^L@_."+(>@,71/O$N@!A#9,@(@9P2H+[UZ[/%6$0>2:.#F)Q2X&O& M1'N*W0+8M[B$`&!CD=2.;7E#>'?9335=Z$A>/E9PZ86KU^][9?C;R-LH6H:$ M^:.B^Q^#'X4)(I%&-TN$+M;?ER2HFLM.%NQ+V0NX8>A[_?'C6&^\OI2BXF/+ MU=-#N71?'V[D\L#(1?A^'_,NQKU'*RUO+/X6Y;?P8:BL>H_B[?X?@?[4;V/= M_'_'^7V5Y&7YE^EI_')NV%WZ3^*LK1"/GV??C(Q$;4!5B'=]):QX(&)D*W89 M,.%?,*:#YGYIU<]K!8RY)"N/U4J7]7;6V-?Y=^&/7;'71SC6@O3=C:SPZ+2S MB"&8ZMODJ)J?>>W#S6ZB?0?7;[IH6,+$*)44:VOV-^^?('<.)G\PM,A_(D2( M#CXJBV<.:^G54.\-X?1EY><L+CMVTY))F1=4.I4,[.@#ZMTKBCK%B0AT.<-D MC[\*-!0%4IK7^LB96)`TQ$21+,@T5,_O;=,5%<[8MN$$211S]?ADM1G\;<(, M2E4&+!$$V@:Q<-,"PNQ."IZDP)U(T"1S]T[3:U#TH:[0^([D$$*<<F`DBN\^ M-SBTHQ"$](XQ`A-2E$2&#!A#\L`&8I:"N,#H8*I`*1\Y5W?G$!XRI52$-!(2 MR%$L211$@%"LE!$+5#!3,T!$^1:)(:)B)F$=VP\(6G8R'Q/<)]WW4$41P"S) MY26?:IW<:"02U[VLC\44>CKH'+5<QSP=<`<A$77P]38[T<FZ0S67@((H9R)C MX*/#[FTTQ5^!]=98&YH1N_7PW5=1+6PC8V-L4'4,03M=<^JT-BH!8$'4-+<T MGI-V)^//-7HG>`I+M6?DE?4E`1KY2#OYP>=Q^*_/MMJHX?-Z7R;'K[I[2])] ML]`>_><1#:4$$/V?<PZXB@[)6?/$_19:TLLQ%5;1%+!72&:K6!+;VF8-Q0S$ M!WH'7B'4D%/'J*5&22&7,%V=FN26<.J`T&M6Z!XPN&W[`GMEPM<7:1-I6EAZ M&,D+)VG1L.@AW!;3&K)6AQFHM%07?8HZ=.@$TB!=3/$HU<^5(7W._`$=]V*0 M78VN#1XB<-2BB%ON7S%,MN)JMC4+Z0>J!G7!R=#!!F^>#8XKQ2L;9;2`NX65 M:R`6VO(F.!!0K`\,(X:KLKD99885P)+#H1"H9FJ.CO6O1?=USTO/;C2^/G79 M:SO9QFB:G>>%WX=N;YWV',^OIXY##YSW5>Z.^7<[T_$ZWX4QJ;HG&X[-Y'6Q M08M)*&3+A6:!>+38;<M_W8X4US!C'7GQ!*H&(E/815KK9<FJ&;@,&*K?)Y3' M;QL+C%^(WJ+EZ4)`LI$,X'2T0B`;ZB!$()%**80$*("M.!WS:5Q*+[Z)[E#W MTG`X<HA'JA&('>C-G[ES3LB0A*0KY&#\Q6,_:Z3.WS^XOT-NRGDQ`Q5QA:W8 M#3Z$#7D@R:U*E"E4!OB4+6"'0]`',]M*5CK\QHNZA'G`A&080BP4D2"!0?>V M*MER;/C/M=SO^GX/G<N)BB#O+*)TA0IS`]KO$N0@+SJ1#,*<;&CYP\YD@8*( M!N&-*R!3`U$*"V2,0[!R#E^Q\?V+B!@2QZ$3\@"'%K[3!.P-Z`$=@<^Z1C)( M0XF.AZ:`-JOVQ4(E>!K\T)5`N#H6&Q04=_/30;>I46*."7%SM.03C#'8`@.) MUDD0(Q`8:K>,(SM`48(U`W=_5YN!@0&1(9<3-!\1HLO2(&/L0,`,HI`5#*E! M\^'&32J)^66O&^5KPDPI)RZ^7TO("!"]`.%*80#03JO?H@DG*!IB3FI#-KWB MBQCSJ/'G"]]J:+YPY[`9B,#%.LFC8`L87`J0+#WJ@]"H-)D"Q-44#/3X,?=R MV!T@8NS5*>8M10:C(?P20+FN>Y15F80U\7M2-RDSIKR@-"B+D1WHOFF_7F\] MI>H46MK702\4I(BWH<20%510E($2L0":3ILVRYTZX`^D5!DA@4,C=Q#<'YE" MA$-&Z0H4'3)W?0O5[,<_@_:.(]780W^'AY^PBLC6WV^V.M($E7:R-O<ZEXV+ MQ_FF8_6O9D5?D?3$[K,([#`*J!A$N#`_,\#!ICYFV\#:,J/`']_UC3A@DIJ: M`8BFD(I)2HXT@A2+BQ+I6^.4,<G9`B!I0AQ,`V??H+?>!PQ\N/LPSSZOF[SQ M6X#*KCF#DA2K0BA!$::2*-0QYI);8#OZO@^/\7B/<<7[U]-:U?A#9/5![KVS MP+WVX*O8D#$D0`<!<8T+`I`$*R/(3"A(G+'0!S]2Q:J2W74W,8OHE^OGS<[< M\G=\)R6\74U`E,<[/'=NNUU&>MFJ>!,A)6?\X?/A.=,STTB7;*0;5),&,$PS M<Q1XG?]`62DGCR'9O<K2P$<(1E$;OJ^:O>=[^EW=>K3CZQG!$3:H!"T(*Q@Q M!@Z1%[*@K`3CFAS*H&GF1$\L)\_@Y8G,P]7HN&D?-IJWJ=:$(<@F]/.9@8LI M\#:V)DKF1J"9FL@(K3@V.VZY(L(DAT"$%CKE!V(:++C874?)&$`B0&0%,`8( MA;=#,78'>UYYE:FTPN-9XH2FWGX8Y)M?7X);G5GY&IID19*L^/";LY*196,X M'238WR0',Y>I&K"W9"UD*`B&I35RW$UP"ZPBZ]*"0P1I'<`7SCA#&V,;E%E6 MD=`R!*Q2(U`T20;@UYX6O<#NI-,9KW:6*3%$M58..2V:J(G62;Y5DD;'W=7A M6=.[+*58TM".IC1F8V^A%LZ0C:Q#>Z-A\SRBH,K"C$G20)*&R^EY-#0S6R,/ MT7:/`>J,REIJ[G)8@UX:5N,BH!88%</"0*#`5P`:`-,$24W6U850:Y4S(IK- M5P`HEB`>%)&F+8""5@\2(&]B=!PBA1Z?29XE`$?+V>'5UF1F/)4N#J!$A-'G MFLR=0H8^M]>MY+Y0R]0R$BL0WJQB&`C5M<[OV0/UG^N6C$\R,,I!4Y3-KJ6' M@3\CO:X;.1"&S2H&P3/<?!U0P3<!J-I_\D0B,#8X?,Z@T^OMEO:+J!<X`+.O MAUN$;0UPP;WPIW7,!)'D%0(Z!F)H#V2DPAOK,!%Q1S&G=QJ_F[7CL!OM'>NT M3#69Z(7"!:U_*,A<NI<A(1B)F1:(I5*?2!727$"YO>!+5NQ1LL!PC;$^,Y`B M'*$4TW$]QEQ9D)U0WFP0Y%1-D:J1C0!4%?G3D!]0XJBO>>0">]2Q+EJ)XZ`= M:)-Y5$,JH8PUJV&`T")28([%T)@G:W-J0;JV?V%K3LJC8Y?`,XTS+B;8,L+% MIJ-U6`L:56VBTNI=6`H85:82@L4+KUM.:2$I,+=DH`$;MZUV0:..I&9C.7P" M9*;?Q&B;8<$C8&QMA92(6[@7SIBXPA"236=*-BF*(0Y0&`3R<1"2;ZH(3!`$ M\HIU$U)[_:!5[:L5`WS)+]_YNW[D>_/:Q!S(8A7@I7C8@/I0V+R2UMUC'(UJ M8=<!6JS#G=`J95W4?><P>>?+/9AR,-HUB#1^7Q(@=K$N?8/[K9^+@(P:-J2K MK-64BO0QN:O(.?K`EQ#R_J]'<R?3[Q:WOT`%H^&*V@LC_XG^WVR>HAMEH0-" M4"::![QI0-B"'^H#EO0$DBR*/&':3CX]+V.-[E=-7D+$2E\`J![24A`(18$$ MA!L!`Q3ZH"X>5"F<$LB)0%6DA:"F+8HRP$GN'8J9/+$?/\MIH&`!QC>B@J`3 M-Q\-DWU-1#(.,_-32IN5$E34";U1*;6>-G9H:!M'VYCC(8S(GHD^D"@(!N#% M#,H1&\C0:6H#&QT\'!$0,\Y(LA%%\6Z"Q66CZS,U%KZ^^3LM+);M.DV/L^UR MQ9)&>/RGN1%OI\CA!RQPQ8X)'RW1:3!/E$O&*QBC+TU$)'H5!W]>:*9_70KX M9"@I0[?7Z#?A^OKH?P]!$5=F_2Z[\Y#\=X\JYE*N9WNRHO2]82\2C0_*A#U; M=(0@_55!Y0$;`:XNBSJU3OCO04#C?P*J(!@EZ-'6XTX.MX;"Z.X=#"_Q7 M5AEM1^PLA!"O$U1/18"^'RK4<57B&Q%>&6LXG7>]BM#*.-A&$:M)[Y3SX%?! MG<R"@9@R:";3)GF\M58)`X99K@;J]*.PJCM5!\34)\?;6>*-40B2%H6/I'1$ M/L(:GUOG`!?2HQ2T0D)$7A@'NI<`$MH``;Q7HV>0XX3PI2DS--TQ,5H(_(;B M&##6+T!J"?F[E$!4A*@=,6K4=J)1IV#H,VT7$H"HJ@<ZEPVXL8AM@ZP.8W!/ MA@"R*M,"E*89@@@EE_I]('N_+/L/H+TLV-SO&]#N9([-^5LBU`8+DH*^7=P> M'ED'A>I6&M+-(VBP^?N/SLS\Y4R!LCMOK*HS$M&.H$M-;],,C#;8+SQ>/A:4 M[?&4KP$"$!>B*&3Q_4I/=4;;:8I`(@3PU;--\PT[&9+B&@#&L+VD=3(=<P]2 M=X[10T(:H%B&KW2CQJG1B?PPS@Y1%O%9#"BV9W2NZDT'.&/$=$)3S;MUJ.T\ M93J*F9A.T5$G+2'`D2>V\AHQV@(,,R,.6E7ZT$08P9Z1;F""*=W"YR@T&UBM MM1'LU$541?;D1R0B:.8\MX"%AWL;;$VQCPM,0OL.\[@_DA2#'W.W>OI_$&/D MQ&-'WN;APK)^R]_>6<1XL^<5.A5R88`NA/($1.]2NDBWL(:J=2%L"&O@0FVP M[?L"DGIX$!6D;Y/%K#K-EP#80-]0,Y6D<ASJ<`GH`62$8"@M!30MF>+U^-\F MQJY$#&'N,0J=C77UR,;$%T!$@T#!&SEP%H&`:U!Z[+VT1B4:^5\R>B""?T35 ME,>[(E)5J*$AH!@DL8;J$H6FD&8U%EY7S+QC!WP^!G@RS?5F5C!W>Q&Q\KP0 M&0A%EU7$Z!-09EBH&9<OQ1:%8^,9I'$"%``2=ZX@;#_<P&GRW6J=;V,(=F2U MF>BC)\M]/6#O<$([TNA]\]>!JF_`-`NY"?&J#Z%0<J7@H/.NG5^L36&0\QGC M$)$\YKP)S[;7=JH.-D,^X]/P>GX#WC`N5-?*)P\YX1BI$D'E5HUCRQ'HKM;R MY=HS';R[>F]$C)(5<D*6H/M2\_H-O'ONWK`\/!/EA,$9(`HH(8AM![A@,8(E MSUDFUYK$-UQL`LA,:MC!05B(/+XAD5WAP(7@Y)KTS\TS]<+#`D\H&(HP`:=R M""UW%GG>#`0:Q9()#L&SYP.D*\1!@TC8I"98:/S++;-HCVGTP'H1>AI(Q)1; M8`;9S&ODZGF>G31=O@:4H3OU'$Z^'HL00%)*%3*LESS]_,'2^[@'MCXYJ.T@ MNLZ`*4&MW-N!L7Z(@33;,CAJMD`2)/NJZ'5#N6$Q,DZ:``SVYK]+'D8JQ[/; MEQ2UKVWE'+@B"(<-L;X!H[MGU:]^T.\A\D/0'4H9D!)$$`O"I07S_C`X89]> M+Q5S.HB+T)S2T&,'W^PXZV#=$\G$=@^F*:0.NQF8W=Q$T_7Y8]ETS:-&"'E+ M$%A!$&%CN(DE:Q,%WMZYMS;C4HJF?B-=3776^O0SML4%>&#'#T)&J@&#,IJ? M!A.NE/PA9RB8*5$(+?6*P;)&';-(*!RFO(GCFYCD4D3OI7(2X$)W<#GZ`WG" M4;\#HRW.P&`:#-I"$H`6EA`8R$$NPTS2A,\ZN!$0_ER2C3=,#"222*_C+.)^ M#5XS3!3,$J/H]9^"!\=2C&Q>&RH=/'Z5404+@(X!M%`-!#0P`$3<H%B+$&"D M58U+(*@2A][)224XG58T2*9D/U=QX;2I13!.`R0$I@J)<`I`--(3IKI9&[@> MQS%?<5$<U2A?#T$99!W9H(X#;=Z3ERS/RWDZA-X$1]J*&KXZ`HC!J=;"=K[' MGV02;:8Y;6*M8XRX]S]<QM;JZZR)Y^J*]D:X!>W^T%>D]>_B=@O"IR$_;OSJ MC3336AA"4+]8((4)`#F*`AJ7SP20%T]LJ(5(J>T&^80!D#CX%PO3UB$-RFRO MB50?H`A>@&>9NC>7$.]]/I.JBJ7_$_(PG&`IU3O-HT&#K+F*&":8`Y\=O`\0 MPTB"PCE2C"LD)#;=$!.D(,BQC&#CM.7#I[-_N>1."#^@%20DAR-$A$%BI,)^ MN:.&.4518^V?#\BH,![OA[@D2/1`P.(`,(*$"``'MD4-T+@&]Z-K?^M84;A< MH@,8HR/`!%3>Q*5U,>OM?(Y8+`@R$4"P=TR)J4-@+YBXEL-X#RY*$]6@/@]: MP0)`7X$W95S,$8L;4!<MS!P-.#W/+I1>X+_=:EF8=YZZ(%0:*<0W[Z)R?=2( MZ8I"YRZN/K5!TSU_*?0@':P5`U:]0_,0;`!,:$;O"#M.2R#?L/1[8BR7Z-)) M0*X;2[?'P8E].>WP0T`R/58J%_2PHI@0DBZWO/5%CUW%BA1E*%""_U6<%2/* MY^*V+P2H2M=<3P;@:V_U0E'CV',SR`BH-'<4&&&A3"C5-5555$&#S^C/Q>X? M1Z`/HH2&6,H)#M;..T-I7?2W[,I)9JP,R&R-=OR@X(V58GCL>Q]1DAM%2[*M M`+V(I*8-##`$"*7`E00A$:(I&(JT$0H0)D.)`;)DXM3%IXAB(ED"#'BVB-&* M(ZR!<`Z3KJ&J'J0BRXCO'&H@X'D!V>CN.#[G/+M+`7L&'($@&H0;<,:9%7`Q M[62N!BACKHP8Q:2@)H,M"&P<AT9([9;61X;$F-"->C/-Y5VAC"XK*M9<7+9( MG>H85``$#IT=^G][?/O01EU6<YT&FD_P[,51=BH%T+.NU)L(10VWZM-_,%H> MJ][TA'/Z6%JA%P=2G\!"458V:A96IP5K-S4Q<R7N;8B%4J"9G=O<?7#WBE(1 M.HIKA)=^U?`FX.N=.#G62PN!.CS^Y\0Z/LAOX*U2BIRA[Y[72XED3TO\\D64 M=F@8'.>;5M`-@O2*P")(,81%)%C(0%`E*D"`)&D882`9!(&`8A@%.VQCT?/B M+V&U/B7\;Z4%`T.;FVH_6+R!`D120PX#<3ZHA:*0Y`5Q9"Y4.M:J@QHPY&83 M&5*IL@>^*D0$+(NA]T>V^+(2,R"/HLY6-4-PHYMG3E#OP!#98O6"5)'42LE. M,QD5@N>=3>._TA\8.1G'D<Y[W]FZCZS?-Y6D]?J.UF"$I0K.3;*SSX,ZM=_9 MP8,)`YI+(,,YB,&B86^I%N(U*HIOR=>5A@LC:;=KM!SD[VP?D9(FHJ2H@HB) M**IJ/,`]GEPT?:X_-7Y^]?L#OL<WM.Y<*5D8$/+S64[8QD:%<_.WW^42(7OX M-YRO"6[+Z[@_A#*-WK4%R0$AQ!['!2G0VY'O`D.V(*6\VBFHT@GE8HB5"F.5 M=%B4M$,+)1$3%Y/#G(#Z>8]FP7\P#Z\\OP_,4B%VT4&JF>HW)C">P1[O\N"4 M3X$FLD;Y>GO6C+-+.*7RW,T<L3<W[!KGR0&")%<T75A@"V/"'VY`/JJ3Q<^X M<.UUZG(8]:!10C(BD@I(B=9:P<822=2F`AW-C4V_#M5XOS=`\\N\\E:S##6P MAY5],J,/W3'O@/O8Q<[Y[<H>K+$Q]&MRH[[V>(9$4M7HS(QA/Q$3*)U$&T5Z ML\HHX90U;6JR0R4,('OPPQZ.$/M4Q"_+)Y([_HP\"@,_$CT'X2ORU>,XM!HT MFA3#A4V])50-,^H]/ICS<-9\.<%`B:Z%SL12$!A!IA2(*"J:(D*<R@6LMBB! M.*>H3!E(*A0M0<`">$EJ+I(3B%!!;6LD*5Y]QRPU#J8\JBG8!66Y$E$7W>K# M4GAF&SDL*'U-"]L9?#C6VA`W8%(MV`!-[@+AU74ZN&+145(5LLL6,*QD2I`M M]$L2I`TT(3&LB)#RR<8CF(YR[\ZZ`VW>W[-BGZH[1X+#K,Q!+5&QA/,CCQ8A MB$=CV>L6T0;']ZBCF0)W:@,8L(/I>M.BBQ=;W[#O==SP8=O?V9W:O`^:=\>< M1VJJP:M55=![<<BBJ.=84TX[DD6`F*$@B3%WY0F@I'J*376R\6[55555A-=M MM@CFX"7(-EFQ2V%6*YQ,A!!!TK"5A#&`(J,#$.QA91B61Q@(D*HEDDL6`H:` MH#6$B2<+G12Z(8@-LH0,!@=AHQ@R/JR\)X%)!U*<E-`&F[(HYS'3*5I(PF6X M8/+W!GR@>H.[,1$J4D2M`]U8WA1R<2((Y)2:=!35-18(#1,+IUF1-+9,B:8D M"80P!`:"8H>@#6,8">(G)6!U2W7-P+)"V-E($TZBJ\3!+(D@91<75X>\2),5 M412%,C*O55]56Y-=BI:LQG!U;J(Y&;8LGY5E8:(=CDA&-=0V'2DK,X'D@9"U MDK%&'PS#5FV^HYFAN4@;@4^;&HN<W.<.6\E0>)T#V(B!*J&F-C`::=CP"ZQ] MKYH+N^>N$&&AM(;$&VN&V"KMGF\LSBAYS54$NL"TUO$2=6SW[ZJYWUVX!UC$ MIPQCG8XCU'@Q4K#,/=+(BE`M-`[@$"1)"@E74FM=)6%?94E8<&$*@,P0;XP` MNX.F$88Y+5LM!#7`D0#8>ZA(D@-)#&.F>8&BE"_A9$A''7$W,(:2I-;BJ`6V M8!V'ARX`&)B./%'@<*#W/M#V</'8P^&U@\I(D19%*]?3LFH'UHMHO%AN"&E. M(<;A8X8(*A0'O)APW71.HM\J&6ON_424R+\<`J'!!0.H'-_!O+?-QZNG.NGO M0(=>FFA%P&IC;'YW0,8V7+QD/G)I"IR*@-+KJD'M84?1&S-'CV%!CWNR!=70 M:FI567I]!!S?'06UF1D->5N(!>E1?=!;L`!@)9/57!#?V[QUN&]`?DI!>E1@ MB)NB8$01(]ICT&9@"8)TH$@@0J2L+(VN%Y)2K4IFRHW`V!4M9+@*P7.=/!W] M!]H2X9(QB,4?;#/$.@V".4Q[#SP9AVMBXDB8$$93+]^XQZVF8T)N1$F%S$IN M;H`HY'E'\,'(TG\,)YPT+U/E#_]D;D`]O#EY@-DP)RUPJH/L-RT6)%D223Q( MZ14]8>90U*#;*!DXD!#H4%<W6&D0>R-`'*@#ZD5D"*Q@9IE*)N1WV\"QV%6N M1HN7+WDDEH)P=RI/.7Y$?%]U#N.05-&3O<[UX&O1CFV*?0S>#!'(6`T0#Q'@ MQSB:35+]OFXD'7,O(*$T:0D"0&!(-!1*,-LUS$3I3&CE>!%6#P:4D,SQB$@> MN$CKAMB5#ER-^'>"@::T#O7X=KVJ-M6=-(HW]A6T]B8@51J3)U8`9WW@^G<? M3R?C,,Y\,I#,4/1P))*!><"?6P!C0V)'/;<`P'8FA6Q5H3`P`@$`Y8"!E@88 M"!`#0F@Q!,>2)!I6NNVQ?P`@0D20)",9$4V@.&\U<)OYY2KS021,;]+9)$@P M[Y02?>JF+2G"`U-$TBG>":*A:I*0)$"E>'E;2&8E7T9$%`V@6JBL4GLF\O*4 M(*:!:$IQ+[I93ON7G7Q*A++DN+#[`L7X%;^$!']*FHC(EFX2!`R@=?+<;%QQ M@C0EQI51.WI"^TR&!1OA"@C245=^;Y]T#</'$4Y4<,G8KR>CHYLG[0(I")&` M*%(NN!A/%.?`X#"`H!8TL:@J5T<$#VD54TB?*12\0.V3M$$044%%%0@/\=_[ M@$/_@A^,-0/8_BC3?MWFE^**1I_1@TD;#HTZ.R0:UN@?K7MPCHT!0'>38:)A M$/LO5DS",D]_.#EP93F4UQ-,C6@)"`@3JN$;@!`?)W#0P?HP<CB5'E!H"YG_ 69+^U=1VL)>"$TA__%W)%.%"0Z2F!M0`` ` end >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 11:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: c++/12: [internal] more about template bugs in 2.95.2 and an ICE in 20000228 Date: Wed, 01 Mar 2000 11:36:00 -0000 Message-id: <200003011926.UAA01153@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00006.html Content-length: 1619 >Number: 12 >Category: c++ >Synopsis: [internal] more about template bugs in 2.95.2 and an ICE in 20000228 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Mar 01 11:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: dvv@dvv.ru (Dima Volodin) >Release: unknown-1.0 >Organization: mira >Environment: System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown Architecture: i586 >Description: [Original Message-ID: <38c95d5b.330845657@busybee>] # cat 00.cc template <typename T> class C { public: #ifdef ENUM enum {N = 10}; #else static unsigned const N (10); #endif static double x [N]; }; template <typename T> double C <T>::x [C <T>::N] = {1, 2, 3}; # g++ -S -B /usr/local/lib/gcc-lib/i586--solaris2.7/2.95.2/ 00.cc 00.cc:13: conflicting types for `double C<T>::x[C<T>::N]' 00.cc:9: previous declaration as `double C<T>::x[C<T>::N]' # g++ -S -B /usr/local/lib/gcc-lib/i586--solaris2.7/2.95.2/ -DENUM 00.cc ######## this one passed !!! # g++ -S -B /archive/egcs-20000228/gcc/ 00.cc 00.cc:7: Internal compiler error. 00.cc:7: Please submit a full bug report. 00.cc:7: See <URL: http://www.gnu.org/software/gcc/bugs.html > for 00.cc:7: instructions. # g++ -S -B /archive/egcs-20000228/gcc/ -DENUM 00.cc 00.cc:13: conflicting types for `double C<T>::x[C<T>::N]' 00.cc:9: previous declaration as `double C<T>::x[10]' Cheers! Dima >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 14:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: c++/15: [bad code] template template arguments Date: Wed, 01 Mar 2000 14:06:00 -0000 Message-id: <200003012155.WAA12960@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00009.html Content-length: 1340 >Number: 15 >Category: c++ >Synopsis: [bad code] template template arguments >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Mar 01 14:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Ewgenij Gawrilow <gawrilow@math.TU-Berlin.DE> >Release: >Organization: mira >Environment: System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown Architecture: i586 >Description: [Original Message-ID: <14525.10553.563957.776958@sokol.math.TU-Berlin.DE>] Here the wrong specialization is being chosen. #include <iostream> template <template <class X> class B, class A> struct is_instance_of { enum { answer=false }; }; template <template <class X> class B, class T> struct is_instance_of<B, B<T> > { enum { answer=true }; }; template <class X> struct C { }; template <class X> struct D { }; template <class T> bool is_C (const T&) { return is_instance_of<C,T>::answer; }; int main() { cout << "should be true: " << is_C(C<int>()) << endl; cout << "should be false: " << is_C(D<int>()) << endl; return 0; } The program prints: should be true: 1 should be false: 1 >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 14:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: c++/14: [internal] template template parameters Date: Wed, 01 Mar 2000 14:06:00 -0000 Message-id: <200003012149.WAA12879@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00008.html Content-length: 1247 >Number: 14 >Category: c++ >Synopsis: [internal] template template parameters >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Mar 01 14:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Ewgenij Gawrilow <gawrilow@math.TU-Berlin.DE> >Release: unknown-1.0 >Organization: mira >Environment: System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown Architecture: i586 >Description: [Original Message-ID: <14525.10553.563957.776958@sokol.math.TU-Berlin.DE>] The actual value of the template-name argument of a member template gets "spilled" when passed to another template instantiation: #line 1 "prob4.cc" template <class T> struct Op { }; template <template <class X> class Y> void g() { } template <class T> class A { public: template <template <class X> class Y> void f() { g<Y>(); } }; int main() { A<int> a; a.template f<Op>(); return 0; } prob4.cc: In instantiation of `g<Y>()': prob4.cc:12: instantiated from here prob4.cc:5: Internal compiler error. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Wed Mar 01 14:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: c++/16: -Wshadow vs 'struct stat stat' et al Date: Wed, 01 Mar 2000 14:16:00 -0000 Message-id: <200003012203.XAA13118@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00010.html Content-length: 2117 >Number: 16 >Category: c++ >Synopsis: -Wshadow vs 'struct stat stat' et al >Confidential: no >Severity: non-critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Mar 01 14:16:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Jonathan Thornburg <jthorn@galileo.thp.univie.ac.at> >Release: 2.95.2 >Organization: mira >Environment: System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown Architecture: i586 >Description: Under (for example) gcc/g++ 2.95.2, the common idiom % cat shadow.cc struct status { int x, y, z; }; // prototype void foo(); void foo(struct status &status) { } triggers a warning from -Wshadow: % /usr/local/share2/bin/g++ -Wshadow -c shadow.cc shadow.cc: In function `void foo(status &)': shadow.cc:10: warning: declaration of `status' shadows global declaration This isn't what I expected from the description in gcc.info-2, `-Wshadow' Warn whenever a local variable shadows another local variable. It seems to me that we really have two distinct semantic situations here: #1: variable name matches (earlier-declared) variable name = this is what the -Wshadow description says it's looking-out-for #2: "variable name matches (earlier-declared) struct/class/enum name = what the above example program is doing. It seems to me that (a) #2 is much less likely to happen by accident than #1, so if #2 occurs, it's much more likely to be intentional, (b) #2 is not really covered by the (#1) -Wshadow description, and (c) #2 is an at-least-mildly-common C/C++ idiom, as witness the common Unix incantation (even in system header files) 'struct stat stat' I think it might be worthwhile to split off #2 into a (new) separate warning option from (maybe call the #2 option -Wname-shadows-type or suchlike?), so it could be enabled/disabled independently of -Wshadow. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From nathan@codesourcery.com Thu Mar 02 09:56:00 2000 From: nathan@codesourcery.com To: gcc-gnats@gcc.gnu.org Subject: c++/17: __PRETTY_FUNCTION__ et al have wrong type Date: Thu, 02 Mar 2000 09:56:00 -0000 Message-id: <20000302175153.26808.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00011.html Content-length: 1969 >Number: 17 >Category: c++ >Synopsis: __PRETTY_FUNCTION__ et al have wrong type >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Mar 02 09:56:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: nathan >Release: CVS >Organization: >Environment: >Description: __PRETTY_FUNCTION__ et al should have type char const [X], where X is the appropriate value. They appear to have type char [201] >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="testfix7.C" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="testfix7.C" Ly8gQnVpbGQgZG9uJ3QgbGluazoKLy8gCi8vIENvcHlyaWdodCAoQykgMjAwMCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLy8gQ29udHJpYnV0ZWQgYnkgTmF0aGFuIFNpZHdlbGwgMyBN YXIgMjAwMCA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgovLyBfX1BSRVRUWV9GVU5DVElPTl9f LCBfX0ZVTkNUSU9OX18gYW5kIF9fZnVuY3Rpb25fXyBzaG91bGQgaGF2ZSB0aGUKLy8gdHlwZSBj aGFyIGNvbnN0IFtYXSwgd2hlcmUgWCBpcyB0aGUgcmlnaHQgdmFsdWUgZm9yIHRoYXQgcGFydGlj dWxhciBmdW5jdGlvbgoKLy8gZXhlY3V0aW9uIHRlc3QgLSBYRkFJTCAqLSotKgoKc3RhdGljIHZv aWQgY29uc3QgKnN0cmluZ3NbNF07CnN0YXRpYyB2b2lkIGNvbnN0ICp0cGxzWzRdOwpzdGF0aWMg dW5zaWduZWQgcG9zID0gMDsKCnRlbXBsYXRlPHVuc2lnbmVkIEk+IHZvaWQgUFYgKGNoYXIgY29u c3QgKCZvYmpSZWYpW0ldKQp7CiAgc3RyaW5nc1twb3NdID0gb2JqUmVmOwogIHRwbHNbcG9zXSA9 IF9fUFJFVFRZX0ZVTkNUSU9OX187CiAgcG9zKys7Cn0KCnZvaWQgZm4gKCkKewogIFBWIChfX0ZV TkNUSU9OX18pOwogIFBWIChfX2Z1bmNfXyk7CiAgUFYgKF9fUFJFVFRZX0ZVTkNUSU9OX18pOwog IFBWICgid2liYmxlIik7Cn0KCmludCBtYWluICgpCnsKICBmbiAoKTsKICAKICBpZiAoc3RyaW5n c1swXSAhPSBzdHJpbmdzWzFdKQogICAgcmV0dXJuIDE7CiAgaWYgKHN0cmluZ3NbMF0gPT0gc3Ry aW5nc1syXSkKICAgIHJldHVybiAxOwoKICBpZiAodHBsc1swXSAhPSB0cGxzWzFdKQogICAgcmV0 dXJuIDE7CiAgaWYgKHRwbHNbMF0gPT0gdHBsc1syXSkKICAgIHJldHVybiAxOwogIAogIHJldHVy biAwOwp9Cg== >From nathan@gcc.gnu.org Thu Mar 02 10:06:00 2000 From: nathan@gcc.gnu.org To: nathan@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: c++/17 Date: Thu, 02 Mar 2000 10:06:00 -0000 Message-id: <20000302180601.31175.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00012.html Content-length: 562 The following reply was made to PR c++/17; it has been noted by GNATS. From: nathan@gcc.gnu.org To: gcc-gnats@gcc.gnu.org, nathan@codesourcery.com, nathan@gcc.gnu.org, nobody@gcc.gnu.org Cc: Subject: Re: c++/17 Date: 2 Mar 2000 17:57:26 -0000 Synopsis: __PRETTY_FUNCTION__ et al have wrong type Responsible-Changed-From-To: unassigned->nathan Responsible-Changed-By: nathan Responsible-Changed-When: Thu Mar 2 09:57:26 2000 Responsible-Changed-Why: I found it, I'll fix it http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=17&database=gcc >From martin@loewis.home.cs.tu-berlin.de Thu Mar 02 13:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: c++/18: [bad code] bad ctor/dtor call ordering Date: Thu, 02 Mar 2000 13:06:00 -0000 Message-id: <200003022054.VAA24610@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00013.html Content-length: 2549 >Number: 18 >Category: c++ >Synopsis: [bad code] bad ctor/dtor call ordering >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Mar 02 13:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: scott snyder <snyder@fnal.gov> >Release: 2.96 20000229 >Organization: >Environment: System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown Architecture: i586 host: i586-pc-linux-gnu build: i586-pc-linux-gnu target: i586-pc-linux-gnu >Description: hi - The CVS version of g++ (2.96 20000229) on a i686-pc-linux-gnu platform generates invalid code for the following input: -- egcsbug8.cc --------------------------------------------------------- extern "C" int printf (...); class allocator { public: allocator() {} allocator(const allocator&) {} ~allocator() {} }; class basic_string { public: struct _Alloc_hider : allocator {}; _Alloc_hider _M_dataplus; }; class d0_String : public basic_string { public: d0_String (const char* s) { printf ("ctor %x\n", this); } ~d0_String () { printf ("dtor %x\n", this); } }; struct pair { pair(const d0_String& __a) {} }; int main () { pair pp[] = { pair (d0_String ("i")), pair (d0_String ("j")) }; return 0; } ------------------------------------------------------------------------ The code in main() will create two temporaries of type `d0_String' and then destroy them. I put in code to trace the constructor and destructor calls; what i would expect to see is something like ctor A dtor A ctor A dtor A where A is some address, or possibly ctor A ctor B dtor A dtor B where A and B are different addresses. Instead, here's what i see: $ g++ -o egcsbug8 egcsbug8.cc $ ./egcsbug8 ctor bfffe8f0 ctor bfffe8f0 dtor bfffe8f0 dtor bfffe8f0 First, the constructor is called twice, _on the same object_. Then, the destructor is called twice, also on the same object. Here's the section of the generated code which calls the destructors. One can see that the destructor is explicitly being called twice for the same stack slot: .LEHE41: subl $8, %esp pushl $2 leal -8(%ebp), %eax subl $32, %eax pushl %eax call _._9d0_String addl $16, %esp .LEHE40: subl $8, %esp pushl $2 leal -8(%ebp), %eax subl $32, %eax pushl %eax call _._9d0_String addl $16, %esp movl $0, %eax jmp .L39 >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 01:26:00 2000 From: martin@loewis.home.cs.tu-berlin.de To: gcc-gnats@gcc.gnu.org Cc: <tmwg@inxservices.com> Subject: c++/19: [not accepted] pointer to shadowed member with namespaces Date: Fri, 03 Mar 2000 01:26:00 -0000 Message-id: <20000303091609.18279.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00014.html Content-length: 928 >Number: 19 >Category: c++ >Synopsis: [not accepted] pointer to shadowed member with namespaces >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Mar 03 01:26:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Phil Blecker <tmwg@inxservices.com> >Release: unknown-1.0 >Organization: >Environment: >Description: [Original Message-ID: <19980910072419.E22612@inxservices.com>] Given the following setup: struct OID { int i; }; void g(OID *o); namespace n1 { struct N1 { OID o; }; } namespace n2 { struct N2 : n1::N1 { OID o; void f(); }; } using namespace n2; void N2::f() { g(&N1::o); } How does one properly refer to the o in n1::N1 in a member of n2::N2? >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 01:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: c++/20: [not accepted] using declarations in templates Date: Fri, 03 Mar 2000 01:26:00 -0000 Message-id: <200003030919.KAA00966@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00015.html Content-length: 2671 >Number: 20 >Category: c++ >Synopsis: [not accepted] using declarations in templates >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Mar 03 01:26:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Carlo Wood <carlo@runaway.xs4all.nl> >Release: 2.96 >Organization: >Environment: System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown Architecture: i586 host: i586-pc-linux-gnu build: i586-pc-linux-gnu target: i586-pc-linux-gnu >Description: [Original Message-Id: <199812151612.RAA03367@jolan.ppro>] a "using namespace" inside a template declaration doesn't work :/ (egcs-1.1b, didn't try it with a later version). Example program: ----------------------------------------------------------------- namespace N { void func(void) {} }; template<class T> void foobar(T) { using namespace ::N; func(); } int main(void) { foobar(1); return 0; } ----------------------------------------------------------------- ~/c++/tests>g++ -v namespace.cc Reading specs from /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57/specs gcc version egcs-2.91.57 19980901 (egcs-1.1 release) /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ namespace.cc /tmp/ccqfpULa.ii GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/local/egcs/include/g++ /usr/local/include /usr/local/egcs/i686-pc-linux-gnu/include /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57/include /usr/include End of search list. /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.91.57/cc1plus /tmp/ccqfpULa.ii -quiet -dumpbase namespace.cc -version -o /tmp/ccygY4jd.s GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release) (i686-pc-linux-gnu) compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release). namespace.cc: In function `void foobar<int>(int)': namespace.cc:14: instantiated from here namespace.cc:9: `func' undeclared (first use this function) namespace.cc:9: (Each undeclared identifier is reported only once namespace.cc:9: for each function it appears in.) >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 12:56:00 2000 From: martin@loewis.home.cs.tu-berlin.de To: gcc-gnats@gcc.gnu.org Cc: cher@suitware.com Subject: c++/21: [not accepted] Bug in function template specialization? Date: Fri, 03 Mar 2000 12:56:00 -0000 Message-id: <20000303205224.30543.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00016.html Content-length: 29403 >Number: 21 >Category: c++ >Synopsis: [not accepted] Bug in function template specialization? >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Mar 03 12:56:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: cher@suitware.com >Release: 2.95 >Organization: >Environment: System: Linux x86 OS: Redhat 6.0 gcc version: 2.95.2 (I installed the rpms from redhat's rawhide site.) >Description: I found what seems to be a bug in parsing function template specializations. In the test case, I have an example of two function template specializations; one that declares an ordinary function and one that declares an overloaded operator. GCC produces an error for the operator, but does not for the ordinary function. >How-To-Repeat: Command-line: gcc bug1.cpp >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="bug1.ii.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bug1.ii.bz2" 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 >From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 13:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@gcc.gnu.org Subject: optimization/22: can_reach_end incorrectly computed Date: Fri, 03 Mar 2000 13:16:00 -0000 Message-id: <200003032109.WAA02029@loewis.home.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00017.html Content-length: 1587 >Number: 22 >Category: optimization >Synopsis: can_reach_end incorrectly computed >Confidential: no >Severity: non-critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Mar 03 13:16:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Robert M. Fleischman" <rmf@bcandid.com> >Release: 2.95 >Organization: mira >Environment: System: Linux mira 2.3.48 #4 Sun Feb 27 23:26:02 CET 2000 i586 unknown Architecture: i586 >Description: Turning on optimization causes a warning. I'm very worried that this causes INCORRECT code to be generated by the latest gcc. Example Code: class X { public: X() {} ~X() { int y = 0; while (y) { } } }; int *foo() { X x; return new int(3); } int main() { delete foo(); return 0; } Optimization causes BOGUS warning: % g++ -O -c -Wall -Werror foo.C cc1plus: warnings being treated as errors foo.C: In function `int * foo()': foo.C:15: warning: control reaches end of non-void function `foo()' % WITHOUT Optimization it is silent: % g++ -c -Wall -Werror foo.C % Version of gcc: % g++ -v Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs gcc version 2.95.2 19991024 (release) --------- Clearly, contol CAN NOT reach the end of foo() without a valid return! I suspect something in the inline'd destructor under optimization is causing something very bad to happen! >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 15:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/23: Testing attachments Date: Fri, 03 Mar 2000 15:46:00 -0000 Message-id: <200003032334.AAA02932@loewis.home.cs.tu-berlin.de> References: <38BFCD09.178BF61A@cnet.francetelecom.fr> X-SW-Source: 2000-q1/msg00018.html Content-length: 169329 Note: There was a bad value `non-serious' for the field `>Severity:'. It was set to the default value of `serious'. >Number: 23 >Category: c++ >Synopsis: Testing attachments >Confidential: no >Severity: serious >Priority: low >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Mar 03 15:46:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: MvL >Release: 2.95.2 >Organization: >Environment: >Description: I'm trying to find out whether I can attach files to a mail message send using the normal mail interface. It's a plain configure.in in this case. --Multipart_Sat_Mar__4_00:34:57_2000-1 Content-Type: application/octet-stream Content-Disposition: attachment; filename="configure.in" Content-Transfer-Encoding: base64 IyBjb25maWd1cmUuaW4gZm9yIEdOVSBDQwojIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b2Nv bmYgdG8gZ2VuZXJhdGUgYSBjb25maWd1cmF0aW9uIHNjcmlwdC4KCiMgQ29weXJpZ2h0IChDKSAx OTk3LCAxOTk4LCAxOTk5LCAyMDAwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoKI1Ro aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBDQy4KCiNHTlUgQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKI3RoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlv bikKI2FueSBsYXRlciB2ZXJzaW9uLgoKI0dOVSBDQyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgojWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKI2Fsb25nIHdpdGggR05VIEND OyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8KI3RoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKI0Jvc3RvbiwgTUEg MDIxMTEtMTMwNywgVVNBLgoKIyBJbml0aWFsaXphdGlvbiBhbmQgZGVmYXVsdHMKQUNfUFJFUkVR KDIuMTMpCkFDX0lOSVQodHJlZS5jKQpBQ19DT05GSUdfSEVBREVSKGF1dG8taG9zdC5oOmNvbmZp Zy5pbikKCnJlbW92ZT1ybQpoYXJkX2xpbms9bG4Kc3ltYm9saWNfbGluaz0nbG4gLXMnCmNvcHk9 Y3AKCiMgQ2hlY2sgZm9yIGJvZ3VzIGVudmlyb25tZW50IHZhcmlhYmxlcy4KIyBUZXN0IGlmIExJ QlJBUllfUEFUSCBjb250YWlucyB0aGUgbm90YXRpb24gZm9yIHRoZSBjdXJyZW50IGRpcmVjdG9y eQojIHNpbmNlIHRoaXMgd291bGQgbGVhZCB0byBwcm9ibGVtcyBpbnN0YWxsaW5nL2J1aWxkaW5n IGdsaWJjLgojIExJQlJBUllfUEFUSCBjb250YWlucyB0aGUgY3VycmVudCBkaXJlY3RvcnkgaWYg b25lIG9mIHRoZSBmb2xsb3dpbmcKIyBpcyB0cnVlOgojIC0gb25lIG9mIHRoZSB0ZXJtaW5hbHMg KCI6IiBhbmQgIjsiKSBpcyB0aGUgZmlyc3Qgb3IgbGFzdCBzaWduCiMgLSB0d28gdGVybWluYWxz IG9jY3VyIGRpcmVjdGx5IGFmdGVyIGVhY2ggb3RoZXIKIyAtIHRoZSBwYXRoIGNvbnRhaW5zIGFu IGVsZW1lbnQgd2l0aCBhIGRvdCBpbiBpdApBQ19NU0dfQ0hFQ0tJTkcoTElCUkFSWV9QQVRIIHZh cmlhYmxlKQpjaGFuZ2VxdW90ZSgsKWRubApjYXNlICR7TElCUkFSWV9QQVRIfSBpbgogIFs6XDtd KiB8ICpbOlw7XSB8ICpbOlw7XVs6XDtdKiB8ICAqWzpcO10uIHwgLls6XDtdKnwgLiB8ICpbOlw7 XS5bOlw7XSogKQogICAgbGlicmFyeV9wYXRoX3NldHRpbmc9ImNvbnRhaW5zIGN1cnJlbnQgZGly ZWN0b3J5IgogICAgOzsKICAqKQogICAgbGlicmFyeV9wYXRoX3NldHRpbmc9Im9rIgogICAgOzsK ZXNhYwpjaGFuZ2VxdW90ZShbLF0pZG5sCkFDX01TR19SRVNVTFQoJGxpYnJhcnlfcGF0aF9zZXR0 aW5nKQppZiB0ZXN0ICIkbGlicmFyeV9wYXRoX3NldHRpbmciICE9ICJvayI7IHRoZW4KQUNfTVNH X0VSUk9SKFsKKioqIExJQlJBUllfUEFUSCBzaG91bGRuJ3QgY29udGFpbiB0aGUgY3VycmVudCBk aXJlY3Rvcnkgd2hlbgoqKiogYnVpbGRpbmcgZ2NjLiBQbGVhc2UgY2hhbmdlIHRoZSBlbnZpcm9u bWVudCB2YXJpYWJsZQoqKiogYW5kIHJ1biBjb25maWd1cmUgYWdhaW4uXSkKZmkKCiMgVGVzdCBp ZiBHQ0NfRVhFQ19QUkVGSVggY29udGFpbnMgdGhlIG5vdGF0aW9uIGZvciB0aGUgY3VycmVudCBk aXJlY3RvcnkKIyBzaW5jZSB0aGlzIHdvdWxkIGxlYWQgdG8gcHJvYmxlbXMgaW5zdGFsbGluZy9i dWlsZGluZyBnbGliYy4KIyBHQ0NfRVhFQ19QUkVGSVggY29udGFpbnMgdGhlIGN1cnJlbnQgZGly ZWN0b3J5IGlmIG9uZSBvZiB0aGUgZm9sbG93aW5nCiMgaXMgdHJ1ZToKIyAtIG9uZSBvZiB0aGUg dGVybWluYWxzICgiOiIgYW5kICI7IikgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgc2lnbgojIC0gdHdv IHRlcm1pbmFscyBvY2N1ciBkaXJlY3RseSBhZnRlciBlYWNoIG90aGVyCiMgLSB0aGUgcGF0aCBj b250YWlucyBhbiBlbGVtZW50IHdpdGggYSBkb3QgaW4gaXQKQUNfTVNHX0NIRUNLSU5HKEdDQ19F WEVDX1BSRUZJWCB2YXJpYWJsZSkKY2hhbmdlcXVvdGUoLClkbmwKY2FzZSAke0dDQ19FWEVDX1BS RUZJWH0gaW4KICBbOlw7XSogfCAqWzpcO10gfCAqWzpcO11bOlw7XSogfCAgKls6XDtdLiB8IC5b Olw7XSp8IC4gfCAqWzpcO10uWzpcO10qICkKICAgIGdjY19leGVjX3ByZWZpeF9zZXR0aW5nPSJj b250YWlucyBjdXJyZW50IGRpcmVjdG9yeSIKICAgIDs7CiAgKikKICAgIGdjY19leGVjX3ByZWZp eF9zZXR0aW5nPSJvayIKICAgIDs7CmVzYWMKY2hhbmdlcXVvdGUoWyxdKWRubApBQ19NU0dfUkVT VUxUKCRnY2NfZXhlY19wcmVmaXhfc2V0dGluZykKaWYgdGVzdCAiJGdjY19leGVjX3ByZWZpeF9z ZXR0aW5nIiAhPSAib2siOyB0aGVuCkFDX01TR19FUlJPUihbCioqKiBHQ0NfRVhFQ19QUkVGSVgg c2hvdWxkbid0IGNvbnRhaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoZW4KKioqIGJ1aWxkaW5n IGdjYy4gUGxlYXNlIGNoYW5nZSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKioqIGFuZCBydW4g Y29uZmlndXJlIGFnYWluLl0pCmZpCgojIENoZWNrIGZvciBhZGRpdGlvbmFsIHBhcmFtZXRlcnMK CiMgV2l0aCBHTlUgbGQKQUNfQVJHX1dJVEgoZ251LWxkLApbICAtLXdpdGgtZ251LWxkICAgICAg ICAgICBhcnJhbmdlIHRvIHdvcmsgd2l0aCBHTlUgbGQuXSwKZ251X2xkX2ZsYWc9IiR3aXRoX2du dV9sZCIsCmdudV9sZF9mbGFnPW5vKQoKIyBXaXRoIHByZS1kZWZpbmVkIGxkCkFDX0FSR19XSVRI KGxkLApbICAtLXdpdGgtbGQgICAgICAgICAgICAgICBhcnJhbmdlIHRvIHVzZSB0aGUgc3BlY2lm aWVkIGxkIChmdWxsIHBhdGhuYW1lKS5dLApERUZBVUxUX0xJTktFUj0iJHdpdGhfbGQiKQppZiB0 ZXN0IHgiJHtERUZBVUxUX0xJTktFUitzZXR9IiA9IHgic2V0IjsgdGhlbgogIGlmIHRlc3QgISAt eCAiJERFRkFVTFRfTElOS0VSIjsgdGhlbgogICAgQUNfTVNHX1dBUk4oW2Nhbm5vdCBleGVjdXRl OiAkREVGQVVMVF9MSU5LRVI6IGNoZWNrIC0td2l0aC1sZCBvciBlbnYuIHZhci4gREVGQVVMVF9M SU5LRVJdKQogIGVsaWYgJERFRkFVTFRfTElOS0VSIC12IDwgL2Rldi9udWxsIDI+JjEgfCBncmVw IEdOVSA+IC9kZXYvbnVsbDsgdGhlbgogICAgZ251X2xkX2ZsYWc9eWVzCiAgZmkKICBBQ19ERUZJ TkVfVU5RVU9URUQoREVGQVVMVF9MSU5LRVIsIiRERUZBVUxUX0xJTktFUiIpCmZpCgojIFdpdGgg R05VIGFzCkFDX0FSR19XSVRIKGdudS1hcywKWyAgLS13aXRoLWdudS1hcyAgICAgICAgICAgYXJy YW5nZSB0byB3b3JrIHdpdGggR05VIGFzLl0sCmdhc19mbGFnPSIkd2l0aF9nbnVfYXMiLApnYXNf ZmxhZz1ubykKCkFDX0FSR19XSVRIKGFzLApbICAtLXdpdGgtYXMgICAgICAgICAgICAgICBhcnJh bmdlIHRvIHVzZSB0aGUgc3BlY2lmaWVkIGFzIChmdWxsIHBhdGhuYW1lKS5dLApERUZBVUxUX0FT U0VNQkxFUj0iJHdpdGhfYXMiKQppZiB0ZXN0IHgiJHtERUZBVUxUX0FTU0VNQkxFUitzZXR9IiA9 IHgic2V0IjsgdGhlbgogIGlmIHRlc3QgISAteCAiJERFRkFVTFRfQVNTRU1CTEVSIjsgdGhlbgog ICAgQUNfTVNHX1dBUk4oW2Nhbm5vdCBleGVjdXRlOiAkREVGQVVMVF9BU1NFTUJMRVI6IGNoZWNr IC0td2l0aC1hcyBvciBlbnYuIHZhci4gREVGQVVMVF9BU1NFTUJMRVJdKQogIGVsaWYgJERFRkFV TFRfQVNTRU1CTEVSIC12IDwgL2Rldi9udWxsIDI+JjEgfCBncmVwIEdOVSA+IC9kZXYvbnVsbDsg dGhlbgogICAgZ2FzX2ZsYWc9eWVzCiAgZmkKICBBQ19ERUZJTkVfVU5RVU9URUQoREVGQVVMVF9B U1NFTUJMRVIsIiRERUZBVUxUX0FTU0VNQkxFUiIpCmZpCgojIFdpdGggc3RhYnMKQUNfQVJHX1dJ VEgoc3RhYnMsClsgIC0td2l0aC1zdGFicyAgICAgICAgICAgIGFycmFuZ2UgdG8gdXNlIHN0YWJz IGluc3RlYWQgb2YgaG9zdCBkZWJ1ZyBmb3JtYXQuXSwKc3RhYnM9IiR3aXRoX3N0YWJzIiwKc3Rh YnM9bm8pCgojIFdpdGggRUxGCkFDX0FSR19XSVRIKGVsZiwKWyAgLS13aXRoLWVsZiAgICAgICAg ICAgICAgYXJyYW5nZSB0byB1c2UgRUxGIGluc3RlYWQgb2YgaG9zdCBkZWJ1ZyBmb3JtYXQuXSwK ZWxmPSIkd2l0aF9lbGYiLAplbGY9bm8pCgojIFNwZWNpZnkgdGhlIGxvY2FsIHByZWZpeApsb2Nh bF9wcmVmaXg9CkFDX0FSR19XSVRIKGxvY2FsLXByZWZpeCwKWyAgLS13aXRoLWxvY2FsLXByZWZp eD1ESVIgc3BlY2lmaWVzIGRpcmVjdG9yeSB0byBwdXQgbG9jYWwgaW5jbHVkZS5dLApbY2FzZSAi JHt3aXRodmFsfSIgaW4KeWVzKQlBQ19NU0dfRVJST1IoYmFkIHZhbHVlICR7d2l0aHZhbH0gZ2l2 ZW4gZm9yIGxvY2FsIGluY2x1ZGUgZGlyZWN0b3J5IHByZWZpeCkgOzsKbm8pCTs7CiopCWxvY2Fs X3ByZWZpeD0kd2l0aF9sb2NhbF9wcmVmaXggOzsKZXNhY10pCgojIERlZmF1bHQgbG9jYWwgcHJl Zml4IGlmIGl0IGlzIGVtcHR5CmlmIHRlc3QgeCRsb2NhbF9wcmVmaXggPSB4OyB0aGVuCglsb2Nh bF9wcmVmaXg9L3Vzci9sb2NhbApmaQoKIyBEb24ndCBzZXQgZ2NjX2d4eF9pbmNsdWRlX2RpciB0 byBneHhfaW5jbHVkZV9kaXIgc2luY2UgdGhhdCdzIG9ubHkKIyBwYXNzZWQgaW4gYnkgdGhlIHRv cGxldmVsIG1ha2UgYW5kIHRodXMgd2UnZCBnZXQgZGlmZmVyZW50IGJlaGF2aW9yCiMgZGVwZW5k aW5nIG9uIHdoZXJlIHdlIGJ1aWx0IHRoZSBzb3VyY2VzLgpnY2NfZ3h4X2luY2x1ZGVfZGlyPQoj IFNwZWNpZnkgdGhlIGcrKyBoZWFkZXIgZmlsZSBkaXJlY3RvcnkKQUNfQVJHX1dJVEgoZ3h4LWlu Y2x1ZGUtZGlyLApbICAtLXdpdGgtZ3h4LWluY2x1ZGUtZGlyPURJUgogICAgICAgICAgICAgICAg ICAgICAgICAgIHNwZWNpZmllcyBkaXJlY3RvcnkgdG8gcHV0IGcrKyBoZWFkZXIgZmlsZXMuXSwK W2Nhc2UgIiR7d2l0aHZhbH0iIGluCnllcykJQUNfTVNHX0VSUk9SKGJhZCB2YWx1ZSAke3dpdGh2 YWx9IGdpdmVuIGZvciBnKysgaW5jbHVkZSBkaXJlY3RvcnkpIDs7Cm5vKQk7OwoqKQlnY2NfZ3h4 X2luY2x1ZGVfZGlyPSR3aXRoX2d4eF9pbmNsdWRlX2RpciA7Owplc2FjXSkKCmlmIHRlc3QgeCR7 Z2NjX2d4eF9pbmNsdWRlX2Rpcn0gPSB4OyB0aGVuCiAgaWYgdGVzdCB4JHtlbmFibGVfdmVyc2lv bl9zcGVjaWZpY19ydW50aW1lX2xpYnN9ID0geHllczsgdGhlbgogICAgZ2NjX2d4eF9pbmNsdWRl X2Rpcj0nJHtsaWJzdWJkaXJ9L2luY2x1ZGUvZysrJwogIGVsc2UKICAgIHRvcHNyY2Rpcj0ke3Ny Y2Rpcn0vLi4gLiAke3NyY2Rpcn0vLi4vY29uZmlnLmlmCmNoYW5nZXF1b3RlKDw8LCA+PilkbmwK ICAgIGdjY19neHhfaW5jbHVkZV9kaXI9IlwkKGxpYnN1YmRpcikvXCQodW5saWJzdWJkaXIpLy4u XGBlY2hvIFwkKGV4ZWNfcHJlZml4KSB8IHNlZCAtZSAnc3xeXCQocHJlZml4KXx8JyAtZSAnc3wv W14vXSp8Ly4ufGcnXGAvaW5jbHVkZS9nKysiLSR7bGlic3RkY3h4X2ludGVyZmFjZX0KY2hhbmdl cXVvdGUoWywgXSlkbmwKICBmaQpmaQoKIyBFbmFibGUgZXhwZW5zaXZlIGludGVybmFsIGNoZWNr cwpBQ19BUkdfRU5BQkxFKGNoZWNraW5nLApbICAtLWVuYWJsZS1jaGVja2luZ1s9TElTVF0KCQkJ ICBlbmFibGUgZXhwZW5zaXZlIHJ1bi10aW1lIGNoZWNrcy4gIFdpdGggTElTVCwKCQkJICBlbmFi bGUgb25seSBzcGVjaWZpYyBjYXRlZ29yaWVzIG9mIGNoZWNrcy4KCQkJICBDYXRlZ29yaWVzIGFy ZTogbWlzYyx0cmVlLHJ0bCxnYyxnY2FjOyBkZWZhdWx0CgkJCSAgaXMgbWlzYyx0cmVlLHJ0bF0s CltjYXNlICIke2VuYWJsZXZhbH0iIGluCnllcykJQUNfREVGSU5FKEVOQUJMRV9DSEVDS0lORykK CUFDX0RFRklORShFTkFCTEVfVFJFRV9DSEVDS0lORykKCUFDX0RFRklORShFTkFCTEVfUlRMX0NI RUNLSU5HKQk7OwpubykJOzsKKikJYWNfc2F2ZV9JRlM9IiRJRlMiIElGUz0iJElGUywiCglzZXQg Zm5vcmQgJGVuYWJsZXZhbDsgc2hpZnQKCUlGUz0iJGFjX3NhdmVfSUZTIgoJZm9yIGNoZWNrCglk bwoJCWNhc2UgJGNoZWNrIGluCgkJbWlzYykJQUNfREVGSU5FKEVOQUJMRV9DSEVDS0lORykJCTs7 CgkJdHJlZSkJQUNfREVGSU5FKEVOQUJMRV9UUkVFX0NIRUNLSU5HKQkJOzsKCQlydGwpCUFDX0RF RklORShFTkFCTEVfUlRMX0NIRUNLSU5HKQkJOzsKCQlnYykJQUNfREVGSU5FKEVOQUJMRV9HQ19D SEVDS0lORykJCTs7CgkJZ2NhYykJQUNfREVGSU5FKEVOQUJMRV9HQ19BTFdBWVNfQ09MTEVDVCkJ OzsKCQkqKQlBQ19NU0dfRVJST1IodW5rbm93biBjaGVjayBjYXRlZ29yeSAkY2hlY2spIDs7CgkJ ZXNhYwoJZG9uZQoJOzsKZXNhY10pCgpBQ19BUkdfRU5BQkxFKGNwcCwKWyAgLS1kaXNhYmxlLWNw cCAgICAgICAgICAgZG9uJ3QgcHJvdmlkZSBhIHVzZXItdmlzaWJsZSBDIHByZXByb2Nlc3Nvci5d LApbXSwgW2VuYWJsZV9jcHA9eWVzXSkKCkFDX0FSR19XSVRIKGNwcF9pbnN0YWxsX2RpciwKWyAg LS13aXRoLWNwcC1pbnN0YWxsLWRpcj1ESVIKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0 YWxsIHRoZSB1c2VyIHZpc2libGUgQyBwcmVwcm9jZXNzb3IgaW4gRElSCiAgICAgICAgICAgICAg ICAgICAgICAgICAgKHJlbGF0aXZlIHRvIFBSRUZJWCkgYXMgd2VsbCBhcyBQUkVGSVgvYmluLl0s CltpZiB0ZXN0IHgkd2l0aHZhbCA9IHh5ZXM7IHRoZW4KICBBQ19NU0dfRVJST1IoW29wdGlvbiAt LXdpdGgtY3BwLWluc3RhbGwtZGlyIHJlcXVpcmVzIGFuIGFyZ3VtZW50XSkKZWxpZiB0ZXN0IHgk d2l0aHZhbCAhPSB4bm87IHRoZW4KICBjcHBfaW5zdGFsbF9kaXI9JHdpdGh2YWwKZmldKQoKIyBV c2UgY3BwbGliK2NwcG1haW4gZm9yIHRoZSBwcmVwcm9jZXNzb3IsIGJ1dCBkb24ndCBsaW5rIGl0 IHdpdGggdGhlIGNvbXBpbGVyLgpjcHBfbWFpbj1jcHBtYWluCkFDX0FSR19FTkFCTEUoY3BwbGli LApbICAtLWRpc2FibGUtY3BwbGliICAgICAgICB1c2UgdGhlIG9sZCBpc29sYXRlZCBDIHByZXBy b2Nlc3Nvci5dLAppZiB0ZXN0IHgkZW5hYmxlX2NwcGxpYiA9IHhubzsgdGhlbgogIGNwcF9tYWlu PWNjY3AKZmkpCgojIExpbmsgY3BwbGliIGludG8gdGhlIGNvbXBpbGVyIHByb3BlciwgZm9yIEMv QysrL09iakMuCkFDX0FSR19FTkFCTEUoYy1jcHBsaWIsClsgIC0tZW5hYmxlLWMtY3BwbGliICAg ICAgIGxpbmsgY3BwbGliIGRpcmVjdGx5IGludG8gQyBhbmQgQysrIGNvbXBpbGVycwogICAgICAg ICAgICAgICAgICAgICAgICAgIChFWFBFUklNRU5UQUwpIChpbXBsaWVzIC0tZW5hYmxlLWNwcGxp YikuXSwKaWYgdGVzdCB4JGVuYWJsZV9jX2NwcGxpYiAhPSB4bm87IHRoZW4KICBleHRyYV9jX29i anM9IiR7ZXh0cmFfY19vYmpzfSBsaWJjcHAuYSIKICBleHRyYV9jeHhfb2Jqcz0iJHtleHRyYV9j eHhfb2Jqc30gLi4vbGliY3BwLmEiCiAgZXh0cmFfY19mbGFncz0iJHtleHRyYV9jX2ZsYWdzfSAt RFVTRV9DUFBMSUI9MSIKICBjcHBfbWFpbj1jcHBtYWluCmZpKQoKIyBFbmFibGUgTXVsdGlieXRl IENoYXJhY3RlcnMgZm9yIEMvQysrCkFDX0FSR19FTkFCTEUoYy1tYmNoYXIsClsgIC0tZW5hYmxl LWMtbWJjaGFyICAgICAgIEVuYWJsZSBtdWx0aWJ5dGUgY2hhcmFjdGVycyBmb3IgQyBhbmQgQysr Ll0sCmlmIHRlc3QgeCRlbmFibGVfY19tYmNoYXIgIT0geG5vOyB0aGVuCiAgZXh0cmFfY19mbGFn cz0iJHtleHRyYV9jX2ZsYWdzfSAtRE1VTFRJQllURV9DSEFSUz0xIgpmaSkKICAKIyBFbmFibGUg dGhyZWFkcwojIFBhc3Mgd2l0aCBubyB2YWx1ZSB0byB0YWtlIHRoZSBkZWZhdWx0CiMgUGFzcyB3 aXRoIGEgdmFsdWUgdG8gc3BlY2lmeSBhIHRocmVhZCBwYWNrYWdlCkFDX0FSR19FTkFCTEUodGhy ZWFkcywKWyAgLS1lbmFibGUtdGhyZWFkcyAgICAgICAgZW5hYmxlIHRocmVhZCB1c2FnZSBmb3Ig dGFyZ2V0IEdDQy4KICAtLWVuYWJsZS10aHJlYWRzPUxJQiAgICB1c2UgTElCIHRocmVhZCBwYWNr YWdlIGZvciB0YXJnZXQgR0NDLl0sCmlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHhubzsgdGhl bgoJZW5hYmxlX3RocmVhZHM9JycKZmksCmVuYWJsZV90aHJlYWRzPScnKQoKZW5hYmxlX3RocmVh ZHNfZmxhZz0kZW5hYmxlX3RocmVhZHMKIyBDaGVjayBpZiBhIHZhbGlkIHRocmVhZCBwYWNrYWdl CmNhc2UgeCR7ZW5hYmxlX3RocmVhZHNfZmxhZ30gaW4KCXggfCB4bm8pCgkJIyBObyB0aHJlYWRz CgkJdGFyZ2V0X3RocmVhZF9maWxlPSdzaW5nbGUnCgkJOzsKCXh5ZXMpCgkJIyBkZWZhdWx0CgkJ dGFyZ2V0X3RocmVhZF9maWxlPScnCgkJOzsKCXhkZWNvc2YxIHwgeGlyaXggfCB4bWFjaCB8IHhv czIgfCB4cG9zaXggfCB4cHRocmVhZHMgfCB4c2luZ2xlIHwgXAoJeHNvbGFyaXMgfCB4d2luMzIg fCB4ZGNlIHwgeHZ4d29ya3MpCgkJdGFyZ2V0X3RocmVhZF9maWxlPSRlbmFibGVfdGhyZWFkc19m bGFnCgkJOzsKCSopCgkJZWNobyAiJGVuYWJsZV90aHJlYWRzIGlzIGFuIHVua25vd24gdGhyZWFk IHBhY2thZ2UiIDE+JjIKCQlleGl0IDEKCQk7Owplc2FjCgpBQ19BUkdfRU5BQkxFKG9iamMtZ2Ms ClsgIC0tZW5hYmxlLW9iamMtZ2MJICBlbmFibGUgdGhlIHVzZSBvZiBCb2VobSdzIGdhcmJhZ2Ug Y29sbGVjdG9yIHdpdGgKCQkJICB0aGUgR05VIE9iamVjdGl2ZS1DIHJ1bnRpbWUuXSwKaWYgdGVz dCB4JGVuYWJsZV9vYmpjX2djID0geG5vOyB0aGVuCglvYmpjX2JvZWhtX2djPScnCmVsc2UKCW9i amNfYm9laG1fZ2M9MQpmaSwKb2JqY19ib2VobV9nYz0nJykKCkFDX0FSR19XSVRIKGR3YXJmMiwK WyAgLS13aXRoLWR3YXJmMgkgIGZvcmNlIHRoZSBkZWZhdWx0IGRlYnVnIGZvcm1hdCB0byBiZSBE V0FSRjIuXSwKZHdhcmYyPSIkd2l0aF9kd2FyZjIiLApkd2FyZjI9bm8pCgojIERldGVybWluZSB0 aGUgaG9zdCwgYnVpbGQsIGFuZCB0YXJnZXQgc3lzdGVtcwpBQ19DQU5PTklDQUxfU1lTVEVNCgoj IEZpbmQgdGhlIG5hdGl2ZSBjb21waWxlcgpBQ19QUk9HX0NDCkFDX0dDQ19DX0xPTkdfRE9VQkxF CgojIElmIHRoZSBuYXRpdmUgY29tcGlsZXIgaXMgR0NDLCB3ZSBjYW4gZW5hYmxlIHdhcm5pbmdz IGV2ZW4gaW4gc3RhZ2UxLiAgCiMgVGhhdCdzIHVzZWZ1bCBmb3IgcGVvcGxlIGJ1aWxkaW5nIGNy b3NzLWNvbXBpbGVycywgb3IganVzdCBydW5uaW5nIGEKIyBxdWljayBgbWFrZScuCmlmIHRlc3Qg IngkR0NDIiA9ICJ4eWVzIjsgdGhlbiAKICBzdGFnZTFfd2Fybl9jZmxhZ3M9JyQoV0FSTl9DRkxB R1MpJwplbHNlCiAgc3RhZ2UxX3dhcm5fY2ZsYWdzPSIiCmZpCkFDX1NVQlNUKHN0YWdlMV93YXJu X2NmbGFncykKCkFDX1BST0dfTUFLRV9TRVQKCkFDX01TR19DSEVDS0lORyhbd2hldGhlciBhIGRl ZmF1bHQgYXNzZW1ibGVyIHdhcyBzcGVjaWZpZWRdKQppZiB0ZXN0IHgiJHtERUZBVUxUX0FTU0VN QkxFUitzZXR9IiA9IHgic2V0IjsgdGhlbgogICAgaWYgdGVzdCB4IiRnYXNfZmxhZyIgPSB4Im5v IjsgdGhlbgogICAgCUFDX01TR19SRVNVTFQoW3llcyAoJERFRkFVTFRfQVNTRU1CTEVSKV0pCiAg ICBlbHNlCglBQ19NU0dfUkVTVUxUKFt5ZXMgKCRERUZBVUxUX0FTU0VNQkxFUiAtIEdOVSBhcyld KQogICAgZmkKZWxzZQogICAgQUNfTVNHX1JFU1VMVChubykKZmkKCkFDX01TR19DSEVDS0lORyhb d2hldGhlciBhIGRlZmF1bHQgbGlua2VyIHdhcyBzcGVjaWZpZWRdKQppZiB0ZXN0IHgiJHtERUZB VUxUX0xJTktFUitzZXR9IiA9IHgic2V0IjsgdGhlbgogICAgaWYgdGVzdCB4IiRnbnVfbGRfZmxh ZyIgPSB4Im5vIjsgdGhlbgoJQUNfTVNHX1JFU1VMVChbeWVzICgkREVGQVVMVF9MSU5LRVIpXSkK ICAgIGVsc2UKCUFDX01TR19SRVNVTFQoW3llcyAoJERFRkFVTFRfTElOS0VSIC0gR05VIGxkKV0p CiAgICBmaQplbHNlCiAgICBBQ19NU0dfUkVTVUxUKG5vKQpmaQoKIyBGaW5kIHNvbWUgdXNlZnVs IHRvb2xzCkFDX1BST0dfQVdLCkFDX1BST0dfTEVYCkdDQ19QUk9HX0xOCkdDQ19QUk9HX0xOX1MK R0NDX0NfVk9MQVRJTEUKQUNfUFJPR19SQU5MSUIKQUNfUFJPR19ZQUNDCkVHQ1NfUFJPR19JTlNU QUxMCgpBQ19IRUFERVJfU1REQwpBQ19IRUFERVJfVElNRQpHQ0NfSEVBREVSX1NUUklORwpBQ19I RUFERVJfU1lTX1dBSVQKQUNfQ0hFQ0tfSEVBREVSUyhsaW1pdHMuaCBzdGRkZWYuaCBzdHJpbmcu aCBzdHJpbmdzLmggc3RkbGliLmggdGltZS5oIFwKCQkgZmNudGwuaCB1bmlzdGQuaCBzdGFiLmgg c3lzL2ZpbGUuaCBzeXMvdGltZS5oIFwKCQkgc3lzL3Jlc291cmNlLmggc3lzL3BhcmFtLmggc3lz L3RpbWVzLmggc3lzL3N0YXQuaCBcCgkJIGRpcmVjdC5oIG1hbGxvYy5oKQoKIyBDaGVjayBmb3Ig dGhyZWFkIGhlYWRlcnMuCkFDX0NIRUNLX0hFQURFUih0aHJlYWQuaCwgW2hhdmVfdGhyZWFkX2g9 eWVzXSwgW2hhdmVfdGhyZWFkX2g9XSkKQUNfQ0hFQ0tfSEVBREVSKHB0aHJlYWQuaCwgW2hhdmVf cHRocmVhZF9oPXllc10sIFtoYXZlX3B0aHJlYWRfaD1dKQoKIyBTZWUgaWYgR05BVCBoYXMgYmVl biBpbnN0YWxsZWQKQUNfQ0hFQ0tfUFJPRyhnbmF0LCBnbmF0YmluZCwgeWVzLCBubykKCiMgU2Vl IGlmIHRoZSBzdGFnZTEgc3lzdGVtIHByZXByb2Nlc3NvciB1bmRlcnN0YW5kcyB0aGUgQU5TSSBD CiMgcHJlcHJvY2Vzc29yIHN0cmluZ2lmaWNhdGlvbiBvcGVyYXRvci4KQUNfQ19TVFJJTkdJWkUK CiMgVXNlIDxpbnR0eXBlcy5oPiBvbmx5IGlmIGl0IGV4aXN0cywKIyBkb2Vzbid0IGNsYXNoIHdp dGggPHN5cy90eXBlcy5oPiwgYW5kIGRlY2xhcmVzIGludG1heF90LgpBQ19NU0dfQ0hFQ0tJTkco Zm9yIGludHR5cGVzLmgpCkFDX0NBQ0hFX1ZBTChnY2NfY3ZfaGVhZGVyX2ludHR5cGVzX2gsCltB Q19UUllfQ09NUElMRSgKICBbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8aW50dHlw ZXMuaD5dLAogIFtpbnRtYXhfdCBpID0gLTE7XSwKICBbZ2NjX2N2X2hlYWRlcl9pbnR0eXBlc19o PXllc10sCiAgZ2NjX2N2X2hlYWRlcl9pbnR0eXBlc19oPW5vKV0pCkFDX01TR19SRVNVTFQoJGdj Y19jdl9oZWFkZXJfaW50dHlwZXNfaCkKaWYgdGVzdCAkZ2NjX2N2X2hlYWRlcl9pbnR0eXBlc19o ID0geWVzOyB0aGVuCiAgQUNfREVGSU5FKEhBVkVfSU5UVFlQRVNfSCkKZmkKCkFDX0NIRUNLX0ZV TkNTKHN0cnRvdWwgYnNlYXJjaCBwdXRlbnYgcG9wZW4gYmNvcHkgYnplcm8gYmNtcCBcCglpbmRl eCByaW5kZXggc3RyY2hyIHN0cnJjaHIga2lsbCBnZXRybGltaXQgc2V0cmxpbWl0IGF0b2xsIGF0 b3EgXAoJc3lzY29uZiBpc2FzY2lpIGdldHRpbWVvZmRheSBzdHJzaWduYWwgcHV0Y191bmxvY2tl ZCBmcHV0Y191bmxvY2tlZCBcCglmcHV0c191bmxvY2tlZCBnZXRydXNhZ2UgdmFsbG9jKQoKIyBN YWtlIHN1cmUgd2NoYXJfdCBpcyBhdmFpbGFibGUKI0FDX0NIRUNLX1RZUEUod2NoYXJfdCwgdW5z aWduZWQgaW50KQoKR0NDX0ZVTkNfVkZQUklOVEZfRE9QUk5UCkdDQ19GVU5DX1BSSU5URl9QVFIK CmNhc2UgIiR7aG9zdH0iIGluCiotKi11d2luKikKICAjIFVuZGVyIHNvbWUgdmVyc2lvbnMgb2Yg dXdpbiwgdmZvcmsgaXMgbm90b3Jpb3VzbHkgYnVnZ3kgYW5kIHRoZSB0ZXN0IAogICMgY2FuIGhh bmcgY29uZmlndXJlOyBvbiBvdGhlciB2ZXJzaW9ucywgdmZvcmsgZXhpc3RzIGp1c3QgYXMgYSBz dHViLgogICMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgb25jZSB2Zm9yayBpbiB1d2lu J3MgcnVudGltZSBpcyBmaXhlZC4KICBhY19jdl9mdW5jX3Zmb3JrX3dvcmtzPW5vCiAgOzsKZXNh YwpBQ19GVU5DX1ZGT1JLCkFDX0ZVTkNfTU1BUF9BTllXSEVSRQoKR0NDX05FRURfREVDTEFSQVRJ T05TKGJjb3B5IGJ6ZXJvIGJjbXAgXAoJaW5kZXggcmluZGV4IGdldGVudiBhdG9sIHNicmsgYWJv cnQgYXRvZiBnZXRjd2QgZ2V0d2QgXAoJc3Ryc2lnbmFsIHB1dGNfdW5sb2NrZWQgZnB1dHNfdW5s b2NrZWQgc3Ryc3RyIGVudmlyb24pCgpHQ0NfTkVFRF9ERUNMQVJBVElPTlMobWFsbG9jIHJlYWxs b2MgY2FsbG9jIGZyZWUsIFsKI2lmZGVmIEhBVkVfTUFMTE9DX0gKI2luY2x1ZGUgPG1hbGxvYy5o PgojZW5kaWYKXSkKCkdDQ19ORUVEX0RFQ0xBUkFUSU9OUyhnZXRybGltaXQgc2V0cmxpbWl0IGdl dHJ1c2FnZSwgWwojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpZmRlZiBIQVZFX1NZU19SRVNPVVJD RV9ICiNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KI2VuZGlmCl0pCgojIG1rZGlyIHRha2VzIGEg c2luZ2xlIGFyZ3VtZW50IG9uIHNvbWUgc3lzdGVtcy4gCkdDQ19GVU5DX01LRElSX1RBS0VTX09O RV9BUkcKCiMgRmlsZSBleHRlbnNpb25zCm1hbmV4dD0nLjEnCm9iamV4dD0nLm8nCkFDX1NVQlNU KG1hbmV4dCkKQUNfU1VCU1Qob2JqZXh0KQoKYnVpbGRfeG1fZmlsZT0KYnVpbGRfeG1fZGVmaW5l cz0KYnVpbGRfaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtdGFyCmJ1aWxkX2V4 ZWV4dD0KaG9zdF94bV9maWxlPQpob3N0X3htX2RlZmluZXM9Cmhvc3RfeG1ha2VfZmlsZT0KaG9z dF90cnVuY2F0ZV90YXJnZXQ9Cmhvc3RfZXhlZXh0PQoKIyBEZWNvZGUgdGhlIGhvc3QgbWFjaGlu ZSwgdGhlbiB0aGUgdGFyZ2V0IG1hY2hpbmUuCiMgRm9yIHRoZSBob3N0IG1hY2hpbmUsIHdlIHNh dmUgdGhlIHhtX2ZpbGUgdmFyaWFibGUgYXMgaG9zdF94bV9maWxlOwojIHRoZW4gd2UgZGVjb2Rl IHRoZSB0YXJnZXQgbWFjaGluZSBhbmQgZm9yZ2V0IGV2ZXJ5dGhpbmcgZWxzZQojIHRoYXQgY2Ft ZSBmcm9tIHRoZSBob3N0IG1hY2hpbmUuCmZvciBtYWNoaW5lIGluICRidWlsZCAkaG9zdCAkdGFy Z2V0OyBkbwoKCW91dF9maWxlPQoJeG1ha2VfZmlsZT0KCXRtYWtlX2ZpbGU9CglleHRyYV9oZWFk ZXJzPQoJZXh0cmFfcGFzc2VzPQoJZXh0cmFfcGFydHM9CglleHRyYV9wcm9ncmFtcz0KCWV4dHJh X29ianM9CglleHRyYV9ob3N0X29ianM9CglleHRyYV9nY2Nfb2Jqcz0KCXhtX2RlZmluZXM9Cglm bG9hdF9mb3JtYXQ9CgkjIFNldCB0aGlzIHRvIGZvcmNlIGluc3RhbGxhdGlvbiBhbmQgdXNlIG9m IGNvbGxlY3QyLgoJdXNlX2NvbGxlY3QyPQoJIyBTZXQgdGhpcyB0byBvdmVycmlkZSB0aGUgZGVm YXVsdCB0YXJnZXQgbW9kZWwuCgl0YXJnZXRfY3B1X2RlZmF1bHQ9CgkjIFNldCB0aGlzIHRvIGNv bnRyb2wgaG93IHRoZSBoZWFkZXIgZmlsZSBkaXJlY3RvcnkgaXMgaW5zdGFsbGVkLgoJaW5zdGFs bF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtdGFyCgkjIFNldCB0aGlzIHRvIGEgbm9uLWVt cHR5IGxpc3Qgb2YgYXJncyB0byBwYXNzIHRvIGNwcCBpZiB0aGUgdGFyZ2V0CgkjIHdhbnRzIGl0 cyAubWQgZmlsZSBwYXNzZWQgdGhyb3VnaCBjcHAuCgltZF9jcHBmbGFncz0KCSMgU2V0IHRoaXMg aWYgZGlyZWN0b3J5IG5hbWVzIHNob3VsZCBiZSB0cnVuY2F0ZWQgdG8gMTQgY2hhcmFjdGVycy4K CXRydW5jYXRlX3RhcmdldD0KCSMgU2V0IHRoaXMgaWYgZ2RiIG5lZWRzIGEgZGlyIGNvbW1hbmQg d2l0aCBgZGlybmFtZSAkb3V0X2ZpbGVgCglnZGJfbmVlZHNfb3V0X2ZpbGVfcGF0aD0KCSMgU2V0 IHRoaXMgaWYgdGhlIGJ1aWxkIG1hY2hpbmUgcmVxdWlyZXMgZXhlY3V0YWJsZXMgdG8gaGF2ZSBh CgkjIGZpbGUgbmFtZSBzdWZmaXguCglleGVleHQ9CgkjIFNldCB0aGlzIHRvIGNvbnRyb2wgd2hp Y2ggdGhyZWFkIHBhY2thZ2Ugd2lsbCBiZSB1c2VkLgoJdGhyZWFkX2ZpbGU9CgkjIFJlaW5pdGlh bGl6ZSB0aGVzZSBmcm9tIHRoZSBmbGFnIHZhbHVlcyBldmVyeSBsb29wIHBhc3MsIHNpbmNlIHNv bWUKCSMgY29uZmlndXJlIGVudHJpZXMgbW9kaWZ5IHRoZW0uCglnYXM9IiRnYXNfZmxhZyIKCWdu dV9sZD0iJGdudV9sZF9mbGFnIgoJZW5hYmxlX3RocmVhZHM9JGVuYWJsZV90aHJlYWRzX2ZsYWcK CgkjIFNldCBkZWZhdWx0IGNwdV90eXBlLCB0bV9maWxlLCB0bV9wX2ZpbGUgYW5kIHhtX2ZpbGUg c28gaXQgY2FuIGJlCgkjIHVwZGF0ZWQgaW4gZWFjaCBtYWNoaW5lIGVudHJ5LgoJdG1fcF9maWxl PQoJY3B1X3R5cGU9YGVjaG8gJG1hY2hpbmUgfCBzZWQgJ3MvLS4qJC8vJ2AKCWNhc2UgJG1hY2hp bmUgaW4KCWFscGhhKi0qLSopCgkJY3B1X3R5cGU9YWxwaGEKCQk7OwoJYXJtKi0qLSopCgkJY3B1 X3R5cGU9YXJtCgkJOzsKCWMqLWNvbnZleC0qKQoJCWNwdV90eXBlPWNvbnZleAoJCTs7CmNoYW5n ZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LSotKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCWNwdV90 eXBlPWkzODYKCQk7OwoJaHBwYSotKi0qKQoJCWNwdV90eXBlPXBhCgkJOzsKCW02ODAwMC0qLSop CgkJY3B1X3R5cGU9bTY4awoJCTs7CgltaXBzKi0qLSopCgkJY3B1X3R5cGU9bWlwcwoJCTs7CiAJ cGoqLSotKikKIAkJY3B1X3R5cGU9cGoKIAkJOzsKCXBvd2VycGMqLSotKikKCQljcHVfdHlwZT1y czYwMDAKCQk7OwoJcHlyYW1pZC0qLSopCgkJY3B1X3R5cGU9cHlyCgkJOzsKCXNwYXJjKi0qLSop CgkJY3B1X3R5cGU9c3BhcmMKCQk7OwoJZXNhYwoKCXRtX2ZpbGU9JHtjcHVfdHlwZX0vJHtjcHVf dHlwZX0uaAoJeG1fZmlsZT0ke2NwdV90eXBlfS94bS0ke2NwdV90eXBlfS5oCglpZiB0ZXN0IC1m ICR7c3JjZGlyfS9jb25maWcvJHtjcHVfdHlwZX0vJHtjcHVfdHlwZX0tcHJvdG9zLmg7Cgl0aGVu CgkJdG1fcF9maWxlPSR7Y3B1X3R5cGV9LyR7Y3B1X3R5cGV9LXByb3Rvcy5oOwoJZmkKCSMgT24g YS5vdXQgdGFyZ2V0cywgd2UgbmVlZCB0byB1c2UgY29sbGVjdDIuCgljYXNlICRtYWNoaW5lIGlu CgkqLSotKmFvdXQqKQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJZXNhYwkKCgkjIENvbW1vbiBw YXJ0cyBmb3IgbGludXgtZ251IGFuZCBvcGVuYnNkIHN5c3RlbXMKCWNhc2UgJG1hY2hpbmUgaW4K CSotKi1saW51eC1nbnUqKQoJCXhtX2RlZmluZXM9IkhBVkVfQVRFWElUIFBPU0lYIEJTVFJJTkci CgkJOzsKCSotKi1vcGVuYnNkKikKCQl0bV9maWxlPSR7Y3B1X3R5cGV9L29wZW5ic2QuaAoJCXRt YWtlX2ZpbGU9InQtbGliYy1vayB0LW9wZW5ic2QiCgkJIyBhdm9pZCBzdXJwcmlzZXMsIGFsd2F5 cyBwcm92aWRlIGFuIHhtLW9wZW5ic2QgZmlsZSAKCQl4bV9maWxlPSR7Y3B1X3R5cGV9L3htLW9w ZW5ic2QuaAoJCSMgZG9uJ3QgZGVwZW5kIG9uIHByb2Nlc3NvciB4LWZyYWdtZW50cyBhcyB3ZWxs CgkJeG1ha2VfZmlsZT1ub25lCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRo ZW4KIAkJCXRocmVhZF9maWxlPSdwb3NpeCcKCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSB0 LW9wZW5ic2QtdGhyZWFkIgoJCWZpCgkJOzsKCWVzYWMKCgljYXNlICRtYWNoaW5lIGluCgkjIFN1 cHBvcnQgc2l0ZS1zcGVjaWZpYyBtYWNoaW5lIHR5cGVzLgoJKmxvY2FsKikKCQljcHVfdHlwZT1g ZWNobyAkbWFjaGluZSB8IHNlZCAtZSAncy8tLiovLydgCgkJcmVzdD1gZWNobyAkbWFjaGluZSB8 IHNlZCAtZSAicy8kY3B1X3R5cGUtLy8iYAoJCXhtX2ZpbGU9JHtjcHVfdHlwZX0veG0tJHJlc3Qu aAoJCXRtX2ZpbGU9JHtjcHVfdHlwZX0vJHJlc3QuaAoJCWlmIHRlc3QgLWYgJHNyY2Rpci9jb25m aWcvJHtjcHVfdHlwZX0veC0kcmVzdDsgXAoJCXRoZW4geG1ha2VfZmlsZT0ke2NwdV90eXBlfS94 LSRyZXN0OyBcCgkJZWxzZSB0cnVlOyBcCgkJZmkKCQlpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmln LyR7Y3B1X3R5cGV9L3QtJHJlc3Q7IFwKCQl0aGVuIHRtYWtlX2ZpbGU9JHtjcHVfdHlwZX0vdC0k cmVzdDsgXAoJCWVsc2UgdHJ1ZTsgXAoJCWZpCgkJOzsKCTE3NTBhLSotKikKCQk7OwoJYTI5ay0q LWJzZCogfCBhMjlrLSotc3ltMSopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBhMjlrL3VuaXguaCIK CQl4bV9kZWZpbmVzPVVTRwoJCXhtYWtlX2ZpbGU9YTI5ay94LXVuaXgKCQl1c2VfY29sbGVjdDI9 eWVzCgkJOzsKCWEyOWstKi11ZGkgfCBhMjlrLSotY29mZikKCQl0bV9maWxlPSIke3RtX2ZpbGV9 IGRieGNvZmYuaCBhMjlrL3VkaS5oIgoJCXRtYWtlX2ZpbGU9YTI5ay90LWEyOWtiYXJlCgkJOzsK CWEyOWstd3JzLXZ4d29ya3MqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4Y29mZi5oIGEyOWsv dWRpLmggYTI5ay92eDI5ay5oIgoJCXRtYWtlX2ZpbGU9YTI5ay90LXZ4MjlrCgkJZXh0cmFfcGFy dHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJOzsKCWEy OWstKi0qKQkJCSMgRGVmYXVsdCBhMjlrIGVudmlyb25tZW50LgoJCXVzZV9jb2xsZWN0Mj15ZXMK CQk7OwoJYWxwaGEtKi1pbnRlcml4KQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gYWxwaGEvYWxwaGEz Mi5oIGludGVyaXguaCBhbHBoYS9hbHBoYS1pbnRlcml4LmgiCgoJCSMgR0FTICsgSUVFRV9DT05G T1JNQU5UK0lFRUUgKG5vIGluZXhhY3QpOwoJCSN0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FT fE1BU0tfSUVFRV9DT05GT1JNQU5UfE1BU0tfSUVFRSIKCgkJIyBHQVMgKyBJRUVFX0NPTkZPUk1B TlQKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FTfE1BU0tfSUVFRV9DT05GT1JNQU5UIgoK CQl4bV9maWxlPSJhbHBoYS94bS1hbHBoYS1pbnRlcml4LmggeG0taW50ZXJpeC5oIgoJCXhtYWtl X2ZpbGU9IngtaW50ZXJpeCBhbHBoYS90LXBlIgoJCXRtYWtlX2ZpbGU9ImFscGhhL3QtaW50ZXJp eCBhbHBoYS90LWllZWUiCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXMgOyB0aGVu CgkJCXRocmVhZF9maWxlPSdwb3NpeCcKCQlmaQoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXMgOyB0 aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4Y29mZi5oIgoJCWZpCgkJI3ByZWZpeD0nJCRJ TlRFUklYX1JPT1QnL3Vzci9jb250cmliCgkJI2xvY2FsX3ByZWZpeD0nJCRJTlRFUklYX1JPT1Qn L3Vzci9jb250cmliCgkJOzsKCWFscGhhKi0qLWxpbnV4LWdudWVjb2ZmKikKCQl0bV9maWxlPSIk e3RtX2ZpbGV9IGFscGhhL2xpbnV4LWVjb2ZmLmggYWxwaGEvbGludXguaCIKCQl0YXJnZXRfY3B1 X2RlZmF1bHQ9Ik1BU0tfR0FTIgoJCXRtYWtlX2ZpbGU9ImFscGhhL3QtaWVlZSIKCQlnYXM9bm8K CQl4bWFrZV9maWxlPW5vbmUKCQlnYXM9eWVzIGdudV9sZD15ZXMKCQk7OwoJYWxwaGEqLSotbGlu dXgtZ251bGliYzEqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gYWxwaGEvZWxmLmggYWxwaGEvbGlu dXguaCBhbHBoYS9saW51eC1lbGYuaCIKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FTIgoJ CXRtYWtlX2ZpbGU9InQtbGludXggdC1saW51eC1nbnVsaWJjMSBhbHBoYS90LWxpbnV4IGFscGhh L3QtY3J0YmUgYWxwaGEvdC1pZWVlIgoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5v IGNydGJlZ2luUy5vIGNydGVuZFMubyIKCQl4bWFrZV9maWxlPW5vbmUKCQlnYXM9eWVzIGdudV9s ZD15ZXMKIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgogCQkJdGhyZWFk X2ZpbGU9J3Bvc2l4JwogCQlmaQoJCTs7CglhbHBoYSotKi1saW51eC1nbnUqKQoJCXRtX2ZpbGU9 IiR7dG1fZmlsZX0gYWxwaGEvZWxmLmggYWxwaGEvbGludXguaCBhbHBoYS9saW51eC1lbGYuaCIK CQl0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FTIgoJCXRtYWtlX2ZpbGU9InQtbGludXggYWxw aGEvdC1saW51eCBhbHBoYS90LWNydGJlIGFscGhhL3QtaWVlZSIKCQlleHRyYV9wYXJ0cz0iY3J0 YmVnaW4ubyBjcnRlbmQubyBjcnRiZWdpblMubyBjcnRlbmRTLm8iCgkJeG1ha2VfZmlsZT1ub25l CgkJZ2FzPXllcyBnbnVfbGQ9eWVzCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7 IHRoZW4KIAkJCXRocmVhZF9maWxlPSdwb3NpeCcKIAkJZmkKCQk7OwoJYWxwaGEqLSotbmV0YnNk KikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IGFscGhhL2VsZi5oIGFscGhhL25ldGJzZC5oIGFscGhh L25ldGJzZC1lbGYuaCIKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR0FTIgoJCXRtYWtlX2Zp bGU9ImFscGhhL3QtY3J0YmUgYWxwaGEvdC1pZWVlIgoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5v IGNydGVuZC5vIGNydGJlZ2luUy5vIGNydGVuZFMubyIKCQl4bWFrZV9maWxlPW5vbmUKCQlnYXM9 eWVzIGdudV9sZD15ZXMKCQk7OwoKCWFscGhhKi0qLW9wZW5ic2QqKQoJCSMgZGVmYXVsdCB4LWFs cGhhIGlzIG9ubHkgYXBwcm9wcmlhdGUgZm9yIGRlYy1vc2YuCgkJdGFyZ2V0X2NwdV9kZWZhdWx0 PSJNQVNLX0dBUyIKCQl0bWFrZV9maWxlPSJhbHBoYS90LWllZWUiCgkJOzsKCQkKCWFscGhhKi1k ZWMtb3NmKikKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3Rt X2ZpbGV9IGRieC5oIgoJCWZpCgkJaWYgdGVzdCB4JGdhcyAhPSB4eWVzCgkJdGhlbgoJCQlleHRy YV9wYXNzZXM9Im1pcHMtdGZpbGUgbWlwcy10ZHVtcCIKCQlmaQoJCXVzZV9jb2xsZWN0Mj15ZXMK CQl0bWFrZV9maWxlPSJhbHBoYS90LWllZWUiCgkJY2FzZSAkbWFjaGluZSBpbgoJCSAgKi0qLW9z ZjEqKQoJCSAgICB0bV9maWxlPSIke3RtX2ZpbGV9IGFscGhhL29zZi5oIGFscGhhL29zZjEyLmgg YWxwaGEvb3NmMm9yMy5oIgoJCSAgICA7OwpjaGFuZ2VxdW90ZSgsKWRubAoJCSAgKi0qLW9zZlsy M10qKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJICAgIHRtX2ZpbGU9IiR7dG1fZmlsZX0gYWxwaGEv b3NmLmggYWxwaGEvb3NmMm9yMy5oIgoJCSAgICA7OwoJCSAgKi0qLW9zZjQqKQoJCSAgICB0bV9m aWxlPSIke3RtX2ZpbGV9IGFscGhhL29zZi5oIgoJCSAgICAjIFNvbWUgdmVyc2lvbnMgb2YgT1NG NCAoc3BlY2lmaWNhbGx5IFg0LjAtOSAyOTYuNykgaGF2ZQoJCSAgICAjIGEgYnJva2VuIHRhciwg c28gd2UgdXNlIGNwaW8gaW5zdGVhZC4KCQkgICAgaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxs LWhlYWRlcnMtY3BpbwoJCSAgICA7OwoJCSAgKi0qLW9zZjUqKQoJCSAgICB0bV9maWxlPSIke3Rt X2ZpbGV9IGFscGhhL29zZi5oIGFscGhhL29zZjUuaCIKCQkgICAgOzsKCQllc2FjCgkJY2FzZSAk bWFjaGluZSBpbgpjaGFuZ2VxdW90ZSgsKWRubAoJCSAgKi0qLW9zZjQuMFtiLXpdIHwgKi0qLW9z ZjQuWzEtOV0qIHwgKi0qLW9zZjUqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJICAgIHRhcmdldF9j cHVfZGVmYXVsdD1NQVNLX1NVUFBPUlRfQVJDSAoJCSAgICA7OwoJCWVzYWMKCQk7OwogCWFscGhh Ki0qLXZ4d29ya3MqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmggYWxwaGEvdnh3b3Jrcy5o IgoJCXRtYWtlX2ZpbGU9ImFscGhhL3QtaWVlZSIKCQlpZiBbIHgkZ2FzICE9IHh5ZXMgXQoJCXRo ZW4KCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQl1c2VfY29s bGVjdDI9eWVzCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJOzsKCWFscGhhKi0qLXdpbm50KikK CSAJdG1fZmlsZT0iJHt0bV9maWxlfSBhbHBoYS9hbHBoYTMyLmggYWxwaGEvd2luLW50Lmggd2lu bnQvd2luLW50LmgiCgkJeG1fZmlsZT0iJHt4bV9maWxlfSBjb25maWcvd2lubnQveG0td2lubnQu aCBhbHBoYS94bS13aW5udC5oIgoJCXRtYWtlX2ZpbGU9InQtbGliYy1vayBhbHBoYS90LWllZWUi CgkJeG1ha2VfZmlsZT13aW5udC94LXdpbm50CgkJZXh0cmFfaG9zdF9vYmpzPW9sZG5hbWVzLm8K CQlleHRyYV9nY2Nfb2Jqcz0ic3Bhd252Lm8gb2xkbmFtZXMubyIKCQlpZiB0ZXN0IHgkZ251X2xk ICE9IHh5ZXMKCQl0aGVuCgkJCWV4dHJhX3Byb2dyYW1zPWxkLmV4ZQoJCWZpCiAJCWlmIHRlc3Qg eCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J3dpbjMyJwoJCWZp CgkJOzsKCWFscGhhKi1kZWMtdm1zKikKCQl0bV9maWxlPWFscGhhL3Ztcy5oCgkJeG1fZmlsZT0i JHt4bV9maWxlfSBhbHBoYS94bS12bXMuaCIKCQl0bWFrZV9maWxlPSJhbHBoYS90LXZtcyBhbHBo YS90LWllZWUiCgkJOzsKCWFyYy0qLWVsZiopCgkJZXh0cmFfcGFydHM9ImNydGluaXQubyBjcnRm aW5pLm8iCgkJOzsKCWFybS0qLWNvZmYqIHwgYXJtZWwtKi1jb2ZmKikKCQl0bV9maWxlPWFybS9j b2ZmLmgKCQl0bWFrZV9maWxlPWFybS90LWJhcmUKCQk7OwoJYXJtLSotdnh3b3JrcyopCgkJdG1f ZmlsZT1hcm0vdnhhcm0uaAoJCXRtYWtlX2ZpbGU9YXJtL3QtYmFyZQoJCXRocmVhZF9maWxlPSd2 eHdvcmtzJwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglhcm0tKi1yaXNjaXgxLlswMV0qKQkJIyBB Y29ybiBSSVNDIG1hY2hpbmUgKGVhcmx5IHZlcnNpb25zKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJ dG1fZmlsZT1hcm0vcmlzY2l4MS0xLmgKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWFybS0qLXJp c2NpeCopCQkJIyBBY29ybiBSSVNDIG1hY2hpbmUKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRo ZW4KCQkgICAgdG1fZmlsZT1hcm0vcml4LWdhcy5oCgkJZWxzZQoJCSAgICB0bV9maWxlPWFybS9y aXNjaXguaAoJCWZpCgkJeG1ha2VfZmlsZT1hcm0veC1yaXNjaXgKCQl0bWFrZV9maWxlPWFybS90 LXJpc2NpeAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJYXJtLXNlbWktYW91dCB8IGFybWVsLXNl bWktYW91dCkKCQl0bV9maWxlPWFybS9zZW1pLmgKCQl0bWFrZV9maWxlPWFybS90LXNlbWkKCQk7 OwoJYXJtLXNlbWktYW9mIHwgYXJtZWwtc2VtaS1hb2YpCgkJdG1fZmlsZT1hcm0vc2VtaWFvZi5o CgkJdG1ha2VfZmlsZT1hcm0vdC1zZW1pYW9mCgkJOzsKCWFybSotKi1uZXRic2QqKQoJCXRtX2Zp bGU9YXJtL25ldGJzZC5oCgkJdG1ha2VfZmlsZT0idC1uZXRic2QgYXJtL3QtbmV0YnNkIgoJCXVz ZV9jb2xsZWN0Mj15ZXMKCQk7OwoJYXJtKi0qLWxpbnV4LWdudWFvdXQqKQkJIyBBUk0gR05VL0xp bnV4IHdpdGggYS5vdXQKCQljcHVfdHlwZT1hcm0KCQl4bWFrZV9maWxlPXgtbGludXgKCQl0bV9m aWxlPWFybS9saW51eC1hb3V0LmgKCQl0bWFrZV9maWxlPWFybS90LWxpbnV4CgkJZ251X2xkPXll cwoJCTs7Cglhcm0qLSotbGludXgtZ251b2xkbGQqKQkJIyBBUk0gR05VL0xpbnV4IHdpdGggb2xk IEVMRiBsaW5rZXIKCQl4bV9maWxlPWFybS94bS1saW51eC5oCgkJeG1ha2VfZmlsZT14LWxpbnV4 CgkJdG1fZmlsZT0iYXJtL2xpbnV4LW9sZGxkLmggYXJtL2xpbnV4LWVsZi5oIgoJCWNhc2UgJG1h Y2hpbmUgaW4KCQlhcm12MiotKi0qKQoJCQl0bV9maWxlPSJhcm0vbGludXgtZWxmMjYuaCAkdG1f ZmlsZSIKCQkJOzsKCQllc2FjCgkJdG1ha2VfZmlsZT0idC1saW51eCBhcm0vdC1saW51eCIKCQll eHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRiZWdpblMubyBjcnRlbmQubyBjcnRlbmRTLm8iCgkJ Z251X2xkPXllcwoJCWNhc2UgeCR7ZW5hYmxlX3RocmVhZHN9IGluCgkJeCB8IHh5ZXMgfCB4cHRo cmVhZHMgfCB4cG9zaXgpCgkJCXRocmVhZF9maWxlPSdwb3NpeCcKCQkJOzsKCQllc2FjCgkJOzsK CWFybSotKi1saW51eC1nbnUqKQkJIyBBUk0gR05VL0xpbnV4IHdpdGggRUxGCgkJeG1fZmlsZT1h cm0veG0tbGludXguaAoJCXhtYWtlX2ZpbGU9eC1saW51eAoJCXRtX2ZpbGU9ImFybS9saW51eC1l bGYuaCIKCQljYXNlICRtYWNoaW5lIGluCgkJYXJtdjIqLSotKikKCQkJdG1fZmlsZT0iYXJtL2xp bnV4LWVsZjI2LmggJHRtX2ZpbGUiCgkJCTs7CgkJZXNhYwoJCXRtYWtlX2ZpbGU9InQtbGludXgg YXJtL3QtbGludXgiCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5k Lm8gY3J0ZW5kUy5vIgoJCWdudV9sZD15ZXMKCQljYXNlIHgke2VuYWJsZV90aHJlYWRzfSBpbgoJ CXggfCB4eWVzIHwgeHB0aHJlYWRzIHwgeHBvc2l4KQoJCQl0aHJlYWRfZmlsZT0ncG9zaXgnCgkJ CTs7CgkJZXNhYwoJCTs7Cglhcm0qLSotdWNsaW51eCopCQkjIEFSTSB1Y0xpbnV4CgkJdG1fZmls ZT1hcm0vdWNsaW51eC1lbGYuaAoJCXRtYWtlX2ZpbGU9YXJtL3QtYXJtLWVsZgoJCTs7Cglhcm0q LSotYW91dCkKCQl0bV9maWxlPWFybS9hb3V0LmgKCQl0bWFrZV9maWxlPWFybS90LWJhcmUKCQk7 OwogICAgICAgIGFybSotKi1lY29zLWVsZikKCQl0bV9maWxlPWFybS9lY29zLWVsZi5oCgkJdG1h a2VfZmlsZT1hcm0vdC1lbGYKCQk7OyAKCWFybSotKi1lbGYpCgkJdG1fZmlsZT1hcm0vdW5rbm93 bi1lbGYuaAoJCXRtYWtlX2ZpbGU9YXJtL3QtYXJtLWVsZgoJCTs7Cglhcm0qLSotY29uaXgqKQoJ CXRtX2ZpbGU9YXJtL2Nvbml4LWVsZi5oCgkJdG1ha2VfZmlsZT1hcm0vdC1hcm0tZWxmCgkJOzsK ICAgICAgICBhcm0qLSotb2FiaSkKCQl0bV9maWxlPWFybS91bmtub3duLWVsZi1vYWJpLmgKCQl0 bWFrZV9maWxlPWFybS90LWFybS1lbGYKCQk7OwoJYXJtLSotcGUqKQoJCXRtX2ZpbGU9YXJtL3Bl LmgKCQl0bWFrZV9maWxlPWFybS90LXBlCgkJZXh0cmFfb2Jqcz1wZS5vCgkJOzsKCWF2ci0qLSop CgkJOzsKCWMxLWNvbnZleC0qKQkJCSMgQ29udmV4IEMxCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PTEK CQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWMyLWNvbnZleC0qKQkJCSMgQ29udmV4IEMyCgkJdGFy Z2V0X2NwdV9kZWZhdWx0PTIKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWMzMi1jb252ZXgtKikK CQl0YXJnZXRfY3B1X2RlZmF1bHQ9NAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJYzM0LWNvbnZl eC0qKQoJCXRhcmdldF9jcHVfZGVmYXVsdD04CgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CgljMzgt Y29udmV4LSopCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PTE2CQkKCQl1c2VfY29sbGVjdDI9eWVzCgkJ OzsKIAljNHgtKikKIAkJY3B1X3R5cGU9YzR4CiAJCXRtYWtlX2ZpbGU9YzR4L3QtYzR4CiAJCTs7 CgljbGlwcGVyLWludGVyZ3JhcGgtY2xpeCopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBzdnIzLmgg Y2xpcHBlci9jbGl4LmgiCgkJeG1fZmlsZT1jbGlwcGVyL3htLWNsaXguaAoJCXhtYWtlX2ZpbGU9 Y2xpcHBlci94LWNsaXgKCQlleHRyYV9oZWFkZXJzPXZhLWNsaXBwZXIuaAoJCWV4dHJhX3BhcnRz PSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFk ZXJzLWNwaW8KCQk7OwoJZHNwMTZ4eC0qKQoJCTs7CgllbHhzaS1lbHhzaS0qKQoJCXVzZV9jb2xs ZWN0Mj15ZXMKCQk7OwoJZnIzMC0qLWVsZikKCQl0bV9maWxlPSJmcjMwL2ZyMzAuaCIKCQl0bWFr ZV9maWxlPWZyMzAvdC1mcjMwCgkJZXh0cmFfcGFydHM9ImNydGkubyBjcnRuLm8gY3J0YmVnaW4u byBjcnRlbmQubyIKCQk7OwojIFRoaXMgaGFzbid0IGJlZW4gdXBncmFkZWQgdG8gR0NDIDIuCiMJ Zng4MC1hbGxpYW50LSopCQkJIyBBbGxpYW50IEZYLzgwCiMJCTs7CgloODMwMC0qLSopCgkJZmxv YXRfZm9ybWF0PWkzMgoJCTs7CglocHBhKi0qLWxpbnV4KikKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9 IihNQVNLX1BBXzExIHwgTUFTS19HQVMgfCBNQVNLX0pVTVBfSU5fREVMQVkpIgoJCXRtX2ZpbGU9 IiR7dG1fZmlsZX0gcGEvZWxmLmggbGludXguaCBwYS9wYS1saW51eC5oIgoJCXRtYWtlX2ZpbGU9 InQtbGludXggcGEvdC1saW51eCIKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIK CQl4bWFrZV9maWxlPW5vbmUKCQlnYXM9eWVzIGdudV9sZD15ZXMKIAkJaWYgdGVzdCB4JGVuYWJs ZV90aHJlYWRzID0geHllczsgdGhlbgogCQkJdGhyZWFkX2ZpbGU9J3Bvc2l4JwogCQlmaQoJCTs7 CglocHBhKi0qLW9wZW5ic2QqKQoJCXRhcmdldF9jcHVfZGVmYXVsdD0iTUFTS19QQV8xMSIKCQl0 bWFrZV9maWxlPXBhL3Qtb3BlbmJzZAoJCTs7CglocHBhMS4xLSotcHJvKikKCQl0YXJnZXRfY3B1 X2RlZmF1bHQ9IihNQVNLX0pVTVBfSU5fREVMQVkgfCBNQVNLX1BPUlRBQkxFX1JVTlRJTUUgfCBN QVNLX0dBUyB8IE1BU0tfTk9fU1BBQ0VfUkVHUyB8IE1BU0tfU09GVF9GTE9BVCkiCgkJdG1fZmls ZT0iJHt0bV9maWxlfSBlbGZvcy5oIHBhL2VsZi5oIHBhL3BhLXByby1lbmQuaCBsaWJnbG9zcy5o IgoJCXhtX2ZpbGU9cGEveG0tcGFwcm8uaAoJCXRtYWtlX2ZpbGU9cGEvdC1wcm8KCQk7OwoJaHBw YTEuMS0qLW9zZiopCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PSJNQVNLX1BBXzExIgoJCXRtX2ZpbGU9 IiR7dG1fZmlsZX0gcGEvc29tLmggcGEvcGEtb3NmLmgiCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7 CglocHBhMS4xLSotcnRlbXMqKQoJCXRhcmdldF9jcHVfZGVmYXVsdD0iKE1BU0tfSlVNUF9JTl9E RUxBWSB8IE1BU0tfUE9SVEFCTEVfUlVOVElNRSB8IE1BU0tfR0FTIHwgTUFTS19OT19TUEFDRV9S RUdTIHwgTUFTS19TT0ZUX0ZMT0FUKSIKCQl0bV9maWxlPSIke3RtX2ZpbGV9IGVsZm9zLmggcGEv ZWxmLmggcGEvcGEtcHJvLWVuZC5oIGxpYmdsb3NzLmggcGEvcnRlbXMuaCIKCQl4bV9maWxlPXBh L3htLXBhcHJvLmgKCQl0bWFrZV9maWxlPXBhL3QtcHJvCgkJOzsKCWhwcGExLjAtKi1vc2YqKQoJ CXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvc29tLmggcGEvcGEtb3NmLmgiCgkJdXNlX2NvbGxlY3Qy PXllcwoJCTs7CglocHBhMS4xLSotYnNkKikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL3NvbS5o IgoJCXRhcmdldF9jcHVfZGVmYXVsdD0iTUFTS19QQV8xMSIKCQl1c2VfY29sbGVjdDI9eWVzCgkJ OzsKCWhwcGExLjAtKi1ic2QqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvc29tLmgiCgkJdXNl X2NvbGxlY3QyPXllcwoJCTs7CglocHBhMS4wLSotaHB1eDcqKQoJCXRtX2ZpbGU9InBhL3BhLW9s ZGFzLmggJHt0bV9maWxlfSBwYS9zb20uaCBwYS9wYS1ocHV4Ny5oIgoJCXhtX2ZpbGU9cGEveG0t cGFocHV4LmgKCQl4bWFrZV9maWxlPXBhL3gtcGEtaHB1eAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVz CgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL2dhcy5oIgoJCWZpCgkJaW5zdGFsbF9o ZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7Owpj aGFuZ2VxdW90ZSgsKWRubAoJaHBwYTEuMC0qLWhwdXg4LjBbMC0yXSopCmNoYW5nZXF1b3RlKFss XSlkbmwKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL3NvbS5oIHBhL3BhLWhwdXguaCIKCQl4bV9m aWxlPXBhL3htLXBhaHB1eC5oCgkJeG1ha2VfZmlsZT1wYS94LXBhLWhwdXgKCQlpZiB0ZXN0IHgk Z2FzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBwYS9wYS1nYXMuaCIKCQll bHNlCgkJCXRtX2ZpbGU9InBhL3BhLW9sZGFzLmggJHt0bV9maWxlfSIKCQlmaQoJCWluc3RhbGxf aGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsK Y2hhbmdlcXVvdGUoLClkbmwKCWhwcGExLjEtKi1ocHV4OC4wWzAtMl0qKQpjaGFuZ2VxdW90ZShb LF0pZG5sCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PSJNQVNLX1BBXzExIgoJCXRtX2ZpbGU9IiR7dG1f ZmlsZX0gcGEvc29tLmggcGEvcGEtaHB1eC5oIgoJCXhtX2ZpbGU9cGEveG0tcGFocHV4LmgKCQl4 bWFrZV9maWxlPXBhL3gtcGEtaHB1eAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0 bV9maWxlPSIke3RtX2ZpbGV9IHBhL3BhLWdhcy5oIgoJCWVsc2UKCQkJdG1fZmlsZT0icGEvcGEt b2xkYXMuaCAke3RtX2ZpbGV9IgoJCWZpCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhl YWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJaHBwYTEuMS0qLWhwdXg4KikKCQl0 YXJnZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfUEFfMTEiCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBwYS9z b20uaCBwYS9wYS1ocHV4LmgiCgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9 cGEveC1wYS1ocHV4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7 dG1fZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwt aGVhZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglocHBhMS4wLSotaHB1eDgqKQoJ CXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvc29tLmggcGEvcGEtaHB1eC5oIgoJCXhtX2ZpbGU9cGEv eG0tcGFocHV4LmgKCQl4bWFrZV9maWxlPXBhL3gtcGEtaHB1eAoJCWlmIHRlc3QgeCRnYXMgPSB4 eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL3BhLWdhcy5oIgoJCWZpCgkJaW5z dGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMK CQk7OwoJaHBwYTEuMS0qLWhwdXgxMCogfCBocHBhMiotKi1ocHV4MTAqKQoJCXRhcmdldF9jcHVf ZGVmYXVsdD0iTUFTS19QQV8xMSIKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL2xvbmdfZG91Ymxl LmggcGEvc29tLmggcGEvcGEtaHB1eC5oIHBhL3BhLWhwdXgxMC5oIgoJCWZsb2F0X2Zvcm1hdD1p MTI4CgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9cGEveC1wYS1ocHV4CgkJ dG1ha2VfZmlsZT1wYS90LXBhCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2Zp bGU9IiR7dG1fZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpZiB0ZXN0IHgkZW5hYmxlX3RocmVh ZHMgPSB4OyB0aGVuCgkJICAgIGVuYWJsZV90aHJlYWRzPSRoYXZlX3B0aHJlYWRfaAoJCWZpCiAJ CWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J2Rj ZScKCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBwYS90LWRjZS10aHIiCgkJZmkKCQlpbnN0 YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVhZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXllcwoJ CTs7CglocHBhMS4wLSotaHB1eDEwKikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL2xvbmdfZG91 YmxlLmggcGEvc29tLmggcGEvcGEtaHB1eC5oIHBhL3BhLWhwdXgxMC5oIgoJCWZsb2F0X2Zvcm1h dD1pMTI4CgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9cGEveC1wYS1ocHV4 CgkJdG1ha2VfZmlsZT1wYS90LXBhCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRt X2ZpbGU9IiR7dG1fZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpZiB0ZXN0IHgkZW5hYmxlX3Ro cmVhZHMgPSB4OyB0aGVuCgkJICAgIGVuYWJsZV90aHJlYWRzPSRoYXZlX3B0aHJlYWRfaAoJCWZp CiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9 J2RjZScKCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBwYS90LWRjZS10aHIiCgkJZmkKCQlp bnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVhZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXll cwoJCTs7CglocHBhMS4xLSotaHB1eDExKiB8IGhwcGEyKi0qLWhwdXgxMSopCgkJdGFyZ2V0X2Nw dV9kZWZhdWx0PSJNQVNLX1BBXzExIgoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvbG9uZ19kb3Vi bGUuaCBwYS9zb20uaCBwYS9wYS1ocHV4LmggcGEvcGEtaHB1eDExLmgiCgkJZmxvYXRfZm9ybWF0 PWkxMjgKCQl4bV9maWxlPXBhL3htLXBhaHB1eC5oCgkJeG1ha2VfZmlsZT1wYS94LXBhLWhwdXgK CQl0bWFrZV9maWxlPXBhL3QtcGEKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1f ZmlsZT0iJHt0bV9maWxlfSBwYS9wYS1nYXMuaCIKCQlmaQojCQlpZiB0ZXN0IHgkZW5hYmxlX3Ro cmVhZHMgPSB4OyB0aGVuCiMJCSAgICBlbmFibGVfdGhyZWFkcz0kaGF2ZV9wdGhyZWFkX2gKIwkJ ZmkKIyAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KIwkJCXRocmVhZF9m aWxlPSdkY2UnCiMJCQl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHBhL3QtZGNlLXRociIKIwkJ ZmkKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVhZGVycy1jcGlvCgkJdXNlX2NvbGxl Y3QyPXllcwoJCTs7CglocHBhMS4wLSotaHB1eDExKikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBh L2xvbmdfZG91YmxlLmggcGEvc29tLmggcGEvcGEtaHB1eC5oIHBhL3BhLWhwdXgxMS5oIgoJCWZs b2F0X2Zvcm1hdD1pMTI4CgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9cGEv eC1wYS1ocHV4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1f ZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKIwkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geDsg dGhlbgojCQkgICAgZW5hYmxlX3RocmVhZHM9JGhhdmVfcHRocmVhZF9oCiMJCWZpCiMgCQlpZiB0 ZXN0IHgkZW5hYmxlX3RocmVhZHMgPSB4eWVzOyB0aGVuCiMJCQl0aHJlYWRfZmlsZT0nZGNlJwoj CQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBwYS90LWRjZS10aHIiCiMJCWZpCgkJaW5zdGFs bF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7 OwoJaHBwYTEuMS0qLWhwdXgqIHwgaHBwYTIqLSotaHB1eCopCgkJdGFyZ2V0X2NwdV9kZWZhdWx0 PSJNQVNLX1BBXzExIgoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gcGEvc29tLmggcGEvcGEtaHB1eC5o IHBhL3BhLWhwdXg5LmgiCgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXhtYWtlX2ZpbGU9cGEv eC1wYS1ocHV4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1f ZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVh ZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglocHBhMS4wLSotaHB1eCopCgkJdG1f ZmlsZT0iJHt0bV9maWxlfSBwYS9zb20uaCBwYS9wYS1ocHV4LmggcGEvcGEtaHB1eDkuaCIKCQl4 bV9maWxlPXBhL3htLXBhaHB1eC5oCgkJeG1ha2VfZmlsZT1wYS94LXBhLWhwdXgKCQlpZiB0ZXN0 IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBwYS9wYS1nYXMuaCIK CQlmaQoJCWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQl1c2VfY29s bGVjdDI9eWVzCgkJOzsKCWhwcGExLjEtKi1oaXV4KiB8IGhwcGEyKi0qLWhpdXgqKQoJCXRhcmdl dF9jcHVfZGVmYXVsdD0iTUFTS19QQV8xMSIKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBhL3NvbS5o IHBhL3BhLWhwdXguaCBwYS9wYS1oaXV4LmgiCgkJeG1fZmlsZT1wYS94bS1wYWhwdXguaAoJCXht YWtlX2ZpbGU9cGEveC1wYS1ocHV4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRt X2ZpbGU9IiR7dG1fZmlsZX0gcGEvcGEtZ2FzLmgiCgkJZmkKCQlpbnN0YWxsX2hlYWRlcnNfZGly PWluc3RhbGwtaGVhZGVycy1jcGlvCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglocHBhMS4wLSot aGl1eCopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBwYS9zb20uaCBwYS9wYS1ocHV4LmggcGEvcGEt aGl1eC5oIgoJCXhtX2ZpbGU9cGEveG0tcGFocHV4LmgKCQl4bWFrZV9maWxlPXBhL3gtcGEtaHB1 eAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IHBh L3BhLWdhcy5oIgoJCWZpCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3Bp bwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJaHBwYSotKi1saXRlcyopCgkJdG1fZmlsZT0iJHt0 bV9maWxlfSBlbGZvcy5oIHBhL2VsZi5oIgoJCXRhcmdldF9jcHVfZGVmYXVsdD0iTUFTS19QQV8x MSIKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWhwcGEqLSotbXBlaXgqKQoJCXRtX2ZpbGU9IiR7 dG1fZmlsZX0gcGEvcGEtbXBlaXguaCIKCQl4bV9maWxlPXBhL3htLXBhbXBlaXguaCAKCQl4bWFr ZV9maWxlPXBhL3gtcGEtbXBlaXggCgkJZWNobyAiWW91IG11c3QgdXNlIGdhcy4gQXNzdW1pbmcg aXQgaXMgYWxyZWFkeSBpbnN0YWxsZWQuIiAKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwt aGVhZGVycy10YXIKCQl1c2VfY29sbGVjdDI9eWVzIAoJCTs7IAoJaTM3MC0qLW9wZW5lZCopCQkJ ICMgSUJNIDM2MC8zNzAvMzkwIEFyY2hpdGVjdHVyZQoJCXhtX2ZpbGU9aTM3MC94bS1vZS5oCgkJ dG1fZmlsZT1pMzcwL29lLmgKCQl4bWFrZV9maWxlPWkzNzAveC1vZQoJCXRtYWtlX2ZpbGU9aTM3 MC90LW9lCgkJOzsKCWkzNzAtKi1tdnMqKQoJCXhtX2ZpbGU9aTM3MC94bS1tdnMuaAoJCXRtX2Zp bGU9aTM3MC9tdnMuaAoJCXRtYWtlX2ZpbGU9aTM3MC90LW12cwoJCTs7CglpMzcwLSotbGludXgq KQoJCXhtX2ZpbGU9InhtLWxpbnV4LmggaTM3MC94bS1saW51eC5oIgoJCXhtYWtlX2ZpbGU9eC1s aW51eAoJCXRtX2ZpbGU9ImkzNzAvbGludXguaCAke3RtX2ZpbGV9IgoJCXRtYWtlX2ZpbGU9InQt bGludXggaTM3MC90LWxpbnV4IgoJCSMgYnJva2VuX2luc3RhbGw9eWVzCgkJZXh0cmFfcGFydHM9 ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCSMgZXh0cmFfcGFy dHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJZ251X2xkPXllcwoJCWdhcz15ZXMKCQllbGY9eWVz CgkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgoJCQl0aHJlYWRfZmlsZT0n cG9zaXgnCgkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWVsZiopCmNo YW5nZXF1b3RlKFssXSlkbmwKCQl4bV9maWxlPSIke3htX2ZpbGV9IHhtLXN2cjQuaCBpMzg2L3ht LXN5c3Y0LmgiCgkJdG1fZmlsZT1pMzg2L2kzODZlbGYuaAoJCXRtYWtlX2ZpbGU9aTM4Ni90LWkz ODZlbGYKCQl4bWFrZV9maWxlPXgtc3ZyNAoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3 XTg2LWlibS1haXgqKQkJIyBJQk0gUFMvMiBydW5uaW5nIEFJWApjaGFuZ2VxdW90ZShbLF0pZG5s CiAgICAgICAgICAgICAgICBpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT1p Mzg2L2FpeDM4Ni5oCgkJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCQl0bWFr ZV9maWxlPWkzODYvdC1jcnRzdHVmZgoJCWVsc2UKCQkJdG1fZmlsZT1pMzg2L2FpeDM4Nm5nLmgK CQkJdXNlX2NvbGxlY3QyPXllcwoJCWZpCgkJeG1fZmlsZT0ieG0tYWxsb2NhLmggaTM4Ni94bS1h aXguaCAke3htX2ZpbGV9IgoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1pMzg2L3gtYWl4 CgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtbmNyLXN5c3Y0KikJCSMgTkNSIDMw MDAgLSBpeDg2IHJ1bm5pbmcgc3lzdGVtIFYuNApjaGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1fZmls ZT0ieG0tYWxsb2NhLmggJHt4bV9maWxlfSIKCQl4bV9kZWZpbmVzPSJVU0cgUE9TSVggU01BTExf QVJHX01BWCIKCQl4bWFrZV9maWxlPWkzODYveC1uY3IzMDAwCgkJaWYgdGVzdCB4JHN0YWJzID0g eHllcyAtYSB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9aTM4Ni9zeXN2NGdkYi5oCgkJ ZWxzZQoJCQl0bV9maWxlPWkzODYvc3lzdjQuaAoJCWZpCgkJZXh0cmFfcGFydHM9ImNydGJlZ2lu Lm8gY3J0ZW5kLm8iCgkJdG1ha2VfZmlsZT1pMzg2L3QtY3J0cGljCgkJOzsKY2hhbmdlcXVvdGUo LClkbmwKCWlbMzQ1NjddODYtbmV4dC0qKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1p Mzg2L25leHQuaAoJCXhtX2ZpbGU9aTM4Ni94bS1uZXh0LmgKCQl0bWFrZV9maWxlPWkzODYvdC1u ZXh0CgkJeG1ha2VfZmlsZT1pMzg2L3gtbmV4dAoJCWV4dHJhX29ianM9bmV4dHN0ZXAubwoJCWV4 dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgogCQlpZiB0ZXN0IHgkZW5hYmxlX3RocmVh ZHMgPSB4eWVzOyB0aGVuCgkJCXRocmVhZF9maWxlPSdtYWNoJwoJCWZpCgkJOzsKY2hhbmdlcXVv dGUoLClkbmwKCWlbMzQ1NjddODYtc2VxdWVudC1ic2QqKSAJCSMgODAzODYgZnJvbSBTZXF1ZW50 CmNoYW5nZXF1b3RlKFssXSlkbmwKCQl1c2VfY29sbGVjdDI9eWVzCgkJaWYgdGVzdCB4JGdhcyA9 IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9aTM4Ni9zZXEtZ2FzLmgKCQllbHNlCgkJCXRtX2ZpbGU9 aTM4Ni9zZXF1ZW50LmgKCQlmaQoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LXNl cXVlbnQtcHR4MSopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl4bV9kZWZpbmVzPSJVU0cgU1ZSMyIK CQl4bWFrZV9maWxlPWkzODYveC1zeXN2MwoJCXRtX2ZpbGU9aTM4Ni9zZXEtc3lzdjMuaAoJCXRt YWtlX2ZpbGU9aTM4Ni90LWNydHN0dWZmCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0ZW5k Lm8iCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCTs7CmNoYW5n ZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LXNlcXVlbnQtcHR4MiogfCBpWzM0NTY3XTg2LXNlcXVl bnQtc3lzdjMqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1fZGVmaW5lcz0iVVNHIFNWUjMiCgkJ eG1ha2VfZmlsZT1pMzg2L3gtc3lzdjMKCQl0bV9maWxlPWkzODYvc2VxMi1zeXN2My5oCgkJdG1h a2VfZmlsZT1pMzg2L3QtY3J0c3R1ZmYKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQu byIKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWluc3RhbGwtaGVhZGVycy1jcGlvCgkJOzsKY2hhbmdl cXVvdGUoLClkbmwKCWlbMzQ1NjddODYtc2VxdWVudC1wdHg0KiB8IGlbMzQ1NjddODYtc2VxdWVu dC1zeXN2NCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3ht X2ZpbGV9IgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCBTTUFMTF9BUkdfTUFYIgoJCXhtYWtlX2Zp bGU9eC1zdnI0CgkJdG1fZmlsZT1pMzg2L3B0eDQtaS5oCgkJdG1ha2VfZmlsZT10LXN2cjQKCQll eHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQlpbnN0YWxsX2hlYWRlcnNfZGlyPWlu c3RhbGwtaGVhZGVycy1jcGlvCgkJOzsKCWkzODYtc3VuLXN1bm9zKikJCSMgU3VuIGkzODYgcm9h ZHJ1bm5lcgoJCXhtX2RlZmluZXM9VVNHCgkJdG1fZmlsZT1pMzg2L3N1bi5oCgkJdXNlX2NvbGxl Y3QyPXllcwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LXdycy12eHdvcmtzKikK Y2hhbmdlcXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9aTM4Ni92eGkzODYuaAoJCXRtYWtlX2ZpbGU9 aTM4Ni90LWkzODZiYXJlCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJOzsKY2hhbmdlcXVvdGUo LClkbmwKCWlbMzQ1NjddODYtKi1hb3V0KikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9 aTM4Ni9pMzg2LWFvdXQuaAoJCXRtYWtlX2ZpbGU9aTM4Ni90LWkzODZiYXJlCgkJOzsKY2hhbmdl cXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1iZW9zcGUqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJ eG1fZmlsZT1pMzg2L3htLWJlb3MuaAoJCXhtX2RlZmluZXM9IlVTRV9DX0FMTE9DQSIKCQl0bWFr ZV9maWxlPWkzODYvdC1iZW9zCgkJdG1fZmlsZT1pMzg2L2Jlb3MtcGUuaAoJCXhtYWtlX2ZpbGU9 aTM4Ni94LWJlb3MKCQlleHRyYV9vYmpzPXdpbm50Lm8KCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ aVszNDU2N104Ni0qLWJlb3NlbGYqIHwgaVszNDU2N104Ni0qLWJlb3MqKQpjaGFuZ2VxdW90ZShb LF0pZG5sCgkJeG1fZmlsZT1pMzg2L3htLWJlb3MuaAoJCXRtYWtlX2ZpbGU9J2kzODYvdC1iZW9z IGkzODYvdC1jcnRwaWMnCgkJdG1fZmlsZT1pMzg2L2Jlb3MtZWxmLmgKCQl4bWFrZV9maWxlPWkz ODYveC1iZW9zCgkJZXh0cmFfb2Jqcz13aW5udC5vCgkJZXh0cmFfcGFydHM9J2NydGJlZ2luLm8g Y3J0ZW5kLm8nCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1ic2RpKiB8IGlb MzQ1NjddODYtKi1ic2QzODYqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2L2Jz ZDM4Ni5oCiMJCXRtYWtlX2ZpbGU9dC1saWJjLW9rCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlb MzQ1NjddODYtKi1ic2QqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2LzM4NmJz ZC5oCiMJCXRtYWtlX2ZpbGU9dC1saWJjLW9rCiMgTmV4dCBsaW5lIHR1cm5lZCBvZmYgYmVjYXVz ZSBib3RoIDM4NkJTRCBhbmQgQlNELzM4NiB1c2UgR05VIGxkLgojCQl1c2VfY29sbGVjdDI9eWVz CgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1mcmVlYnNkZWxmKikKY2hhbmdl cXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9ImkzODYvaTM4Ni5oIGkzODYvYXR0Lmggc3ZyNC5oIGZy ZWVic2QuaCBpMzg2L2ZyZWVic2QtZWxmLmggaTM4Ni9wZXJmb3JtLmgiCgkJZXh0cmFfcGFydHM9 ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCXRtYWtlX2ZpbGU9 dC1mcmVlYnNkCgkJZ2FzPXllcwoJCWdudV9sZD15ZXMKCQlzdGFicz15ZXMKCQljYXNlIHgke2Vu YWJsZV90aHJlYWRzfSBpbgoJCXh5ZXMgfCB4cHRocmVhZHMgfCB4cG9zaXgpCgkJCXRocmVhZF9m aWxlPSdwb3NpeCcKCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSB0LWZyZWVic2QtdGhyZWFk IgoJCQk7OwoJCWVzYWMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWZyZWVi c2QqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT0iaTM4Ni9mcmVlYnNkLmggaTM4Ni9w ZXJmb3JtLmgiCgkJdG1ha2VfZmlsZT10LWZyZWVic2QKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ aVszNDU2N104Ni0qLW5ldGJzZCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPWkzODYv bmV0YnNkLmgKCQl0bWFrZV9maWxlPXQtbmV0YnNkCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CmNo YW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LSotb3BlbmJzZCopCmNoYW5nZXF1b3RlKFssXSlk bmwKCQkjIHdlIG5lZWQgY29sbGVjdDIgdW50aWwgb3VyIGJ1ZyBpcyBmaXhlZC4uLgoJCXVzZV9j b2xsZWN0Mj15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWNvZmYqKQpj aGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2L2kzODYtY29mZi5oCgkJdG1ha2VfZmls ZT1pMzg2L3QtaTM4NmJhcmUKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWlz YyopCQkjIDgwMzg2IHJ1bm5pbmcgSVNDIHN5c3RlbQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1f ZmlsZT0iJHt4bV9maWxlfSBpMzg2L3htLWlzYy5oIgoJCXhtX2RlZmluZXM9IlVTRyBTVlIzIgoJ CWNhc2UgJG1hY2hpbmUgaW4KY2hhbmdlcXVvdGUoLClkbmwKCQkgIGlbMzQ1NjddODYtKi1pc2Nb MzRdKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCSAgICB4bWFrZV9maWxlPWkzODYveC1pc2MzCgkJ ICAgIDs7CgkJICAqKQoJCSAgICB4bWFrZV9maWxlPWkzODYveC1pc2MKCQkgICAgOzsKCQllc2Fj CiAgICAgICAgICAgICAgICBpZiB0ZXN0IHgkZ2FzID0geHllcyAtYSB4JHN0YWJzID0geHllcwoJ CXRoZW4KCQkJdG1fZmlsZT1pMzg2L2lzY2RieC5oCgkJCXRtYWtlX2ZpbGU9aTM4Ni90LXN2cjNk YngKCQkJZXh0cmFfcGFydHM9InN2cjMuaWZpbGUgc3ZyM3ouaWZpbGUiCgkJZWxzZQoJCQl0bV9m aWxlPWkzODYvaXNjY29mZi5oCgkJCXRtYWtlX2ZpbGU9aTM4Ni90LWNydHN0dWZmCgkJCWV4dHJh X3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCWZpCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1p bnN0YWxsLWhlYWRlcnMtY3BpbwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LSot bGludXgtZ251b2xkbGQqKQkjIEludGVsIDgwMzg2J3MgcnVubmluZyBHTlUvTGludXgKY2hhbmdl cXVvdGUoWyxdKWRubAkJCSMgd2l0aCBhLm91dCBmb3JtYXQgdXNpbmcKCQkJCQkjIHByZSBCRkQg bGlua2VycwoJCXhtYWtlX2ZpbGU9eC1saW51eC1hb3V0CgkJdG1ha2VfZmlsZT0idC1saW51eC1h b3V0IGkzODYvdC1jcnRzdHVmZiIKCQl0bV9maWxlPWkzODYvbGludXgtb2xkbGQuaAoJCWdudV9s ZD15ZXMKCQlmbG9hdF9mb3JtYXQ9aTM4NgoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3 XTg2LSotbGludXgtZ251YW91dCopCSMgSW50ZWwgODAzODYncyBydW5uaW5nIEdOVS9MaW51eApj aGFuZ2VxdW90ZShbLF0pZG5sCQkJIyB3aXRoIGEub3V0IGZvcm1hdAoJCXhtYWtlX2ZpbGU9eC1s aW51eC1hb3V0CgkJdG1ha2VfZmlsZT0idC1saW51eC1hb3V0IGkzODYvdC1jcnRzdHVmZiIKCQl0 bV9maWxlPWkzODYvbGludXgtYW91dC5oCgkJZ251X2xkPXllcwoJCWZsb2F0X2Zvcm1hdD1pMzg2 CgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1saW51eC1nbnVsaWJjMSkJIyBJ bnRlbCA4MDM4NidzIHJ1bm5pbmcgR05VL0xpbnV4CmNoYW5nZXF1b3RlKFssXSlkbmwJCQkjIHdp dGggRUxGIGZvcm1hdCB1c2luZyB0aGUKCQkJCQkjIEdOVS9MaW51eCBDIGxpYnJhcnkgNQoJCXht YWtlX2ZpbGU9eC1saW51eAkKCQl0bV9maWxlPWkzODYvbGludXguaAkKCQl0bWFrZV9maWxlPSJ0 LWxpbnV4IHQtbGludXgtZ251bGliYzEgaTM4Ni90LWNydHN0dWZmIgoJCWV4dHJhX3BhcnRzPSJj cnRiZWdpbi5vIGNydGJlZ2luUy5vIGNydGVuZC5vIGNydGVuZFMubyIKCQlnbnVfbGQ9eWVzCgkJ ZmxvYXRfZm9ybWF0PWkzODYKIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhl bgogCQkJdGhyZWFkX2ZpbGU9J3NpbmdsZScKIAkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ aVszNDU2N104Ni0qLWxpbnV4LWdudSopCSMgSW50ZWwgODAzODYncyBydW5uaW5nIEdOVS9MaW51 eApjaGFuZ2VxdW90ZShbLF0pZG5sCQkJIyB3aXRoIEVMRiBmb3JtYXQgdXNpbmcgZ2xpYmMgMgoJ CQkJCSMgYWthIEdOVS9MaW51eCBDIGxpYnJhcnkgNgoJCXhtYWtlX2ZpbGU9eC1saW51eAoJCXRt X2ZpbGU9aTM4Ni9saW51eC5oCgkJdG1ha2VfZmlsZT0idC1saW51eCBpMzg2L3QtY3J0c3R1ZmYi CgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5v IgoJCWdudV9sZD15ZXMKCQlmbG9hdF9mb3JtYXQ9aTM4NgogCQlpZiB0ZXN0IHgkZW5hYmxlX3Ro cmVhZHMgPSB4eWVzOyB0aGVuCiAJCQl0aHJlYWRfZmlsZT0ncG9zaXgnCiAJCWZpCgkJOzsKY2hh bmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1nbnUqKQoJCWZsb2F0X2Zvcm1hdD1pMzg2CmNo YW5nZXF1b3RlKFssXSlkbmwKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni1nbzMy LW1zZG9zIHwgaVszNDU2N104Ni0qLWdvMzIqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJZWNobyAi R08zMi9ESkdQUCBWMS5YIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIFVzZSAqLXBjLW1zZG9zZGpn cHAgZm9yIERKR1BQIFYyLlggaW5zdGVhZC4iCgkJZXhpdCAxCgkJOzsKY2hhbmdlcXVvdGUoLClk bmwKCWlbMzQ1NjddODYtcGMtbXNkb3NkamdwcCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl4bV9m aWxlPWkzODYveG0tZGpncHAuaAoJCXRtX2ZpbGU9aTM4Ni9kamdwcC5oCgkJdG1ha2VfZmlsZT1p Mzg2L3QtZGpncHAKCQl4bWFrZV9maWxlPWkzODYveC1kamdwcAoJCWdudV9sZD15ZXMKCQlnYXM9 eWVzCgkJZXhlZXh0PS5leGUKCQljYXNlICRob3N0IGluICpwYy1tc2Rvc2RqZ3BwKikKCQkJdGFy Z2V0X2FsaWFzPWRqZ3BwCgkJCTs7CgkJZXNhYwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0 NTY3XTg2LW1vc3MtbXNkb3MqIHwgaVszNDU2N104Ni0qLW1vc3MqKQpjaGFuZ2VxdW90ZShbLF0p ZG5sCgkJdG1fZmlsZT1pMzg2L21vc3MuaAoJCXRtYWtlX2ZpbGU9dC1saWJjLW9rCgkJZ251X2xk PXllcwoJCWdhcz15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLWx5bnhv cyopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJ dG1fZmlsZT1pMzg2L2x5bnguaAoJCWVsc2UKCQkJdG1fZmlsZT1pMzg2L2x5bngtbmcuaAoJCWZp CgkJeG1fZmlsZT1pMzg2L3htLWx5bnguaAoJCXRtYWtlX2ZpbGU9aTM4Ni90LWkzODZiYXJlCgkJ eG1ha2VfZmlsZT14LWx5bngKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLW1h Y2gqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2L21hY2guaAojCQl0bWFrZV9m aWxlPXQtbGliYy1vawoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ aVszNDU2N104Ni0qLW9zZnJvc2UqKQkJIyAzODYgdXNpbmcgT1NGL3Jvc2UKY2hhbmdlcXVvdGUo WyxdKWRubAogICAgICAgICAgICAgICAgaWYgdGVzdCB4JGVsZiA9IHh5ZXMKCQl0aGVuCgkJCXRt X2ZpbGU9aTM4Ni9vc2ZlbGYuaAoJCQl1c2VfY29sbGVjdDI9CgkJZWxzZQoJCQl0bV9maWxlPWkz ODYvb3Nmcm9zZS5oCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCXhtX2ZpbGU9ImkzODYveG0t b3NmLmggJHt4bV9maWxlfSIKCQl4bWFrZV9maWxlPWkzODYveC1vc2Zyb3NlCgkJdG1ha2VfZmls ZT1pMzg2L3Qtb3NmCgkJZXh0cmFfb2Jqcz1oYWxmcGljLm8KCQk7OwpjaGFuZ2VxdW90ZSgsKWRu bAoJaVszNDU2N104Ni1nbzMyLXJ0ZW1zKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCWNwdV90eXBl PWkzODYKCQl4bV9maWxlPWkzODYveG0tZ28zMi5oCgkJdG1fZmlsZT1pMzg2L2dvMzItcnRlbXMu aAoJCXRtYWtlX2ZpbGU9ImkzODYvdC1nbzMyIHQtcnRlbXMiCgkJOzsKY2hhbmdlcXVvdGUoLClk bmwKCWlbMzQ1NjddODYtKi1ydGVtc2NvZmYqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJY3B1X3R5 cGU9aTM4NgoJCXRtX2ZpbGU9aTM4Ni9ydGVtcy5oCgkJdG1ha2VfZmlsZT0iaTM4Ni90LWkzODZi YXJlIHQtcnRlbXMiCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi1ydGVtcyp8 aVszNDU2N104Ni0qLXJ0ZW1zZWxmKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCWNwdV90eXBlPWkz ODYKCQl0bV9maWxlPWkzODYvcnRlbXNlbGYuaAoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNy dGVuZC5vIGNydGkubyBjcnRuLm8iCgkJdG1ha2VfZmlsZT0iaTM4Ni90LXJ0ZW1zLWkzODYgaTM4 Ni90LWNydHN0dWZmIHQtcnRlbXMiCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCWlbMzQ1NjddODYt Ki1zY28zLjJ2NSopCSMgODAzODYgcnVubmluZyBTQ08gT3BlbiBTZXJ2ZXIgNQpjaGFuZ2VxdW90 ZShbLF0pZG5sCgkJeG1fZmlsZT0ieG0tYWxsb2NhLmggJHt4bV9maWxlfSBpMzg2L3htLXNjbzUu aCIKCQl4bV9kZWZpbmVzPSJVU0cgU1ZSMyIKCQl4bWFrZV9maWxlPWkzODYveC1zY281CgkJaW5z dGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXRtX2ZpbGU9aTM4Ni9zY281 LmgKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT0iaTM4Ni9zY281Z2Fz LmggJHt0bV9maWxlfSIKCQkJdG1ha2VfZmlsZT1pMzg2L3Qtc2NvNWdhcwoJCWVsc2UKCQkJdG1h a2VfZmlsZT1pMzg2L3Qtc2NvNQoJCWZpCgkJZXh0cmFfcGFydHM9ImNydGkubyBjcnRiZWdpbi5v IGNydGVuZC5vIGNydGJlZ2luUy5vIGNydGVuZFMubyIKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ aVszNDU2N104Ni0qLXNjbzMuMnY0KikgCSMgODAzODYgcnVubmluZyBTQ08gMy4ydjQgc3lzdGVt CmNoYW5nZXF1b3RlKFssXSlkbmwKCQl4bV9maWxlPSIke3htX2ZpbGV9IGkzODYveG0tc2NvLmgi CgkJeG1fZGVmaW5lcz0iVVNHIFNWUjMgQlJPS0VOX0xERVhQIFNNQUxMX0FSR19NQVgiCgkJeG1h a2VfZmlsZT1pMzg2L3gtc2NvNAoJCWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJz LWNwaW8KICAgICAgICAgICAgICAgIGlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQl0aGVuCgkJCXRt X2ZpbGU9aTM4Ni9zY280ZGJ4LmgKCQkJdG1ha2VfZmlsZT1pMzg2L3Qtc3ZyM2RieAoJCQlleHRy YV9wYXJ0cz0ic3ZyMy5pZmlsZSBzdnIzei5yZmlsZSIKCQllbHNlCgkJCXRtX2ZpbGU9aTM4Ni9z Y280LmgKCQkJdG1ha2VfZmlsZT1pMzg2L3QtY3J0c3R1ZmYKCQkJZXh0cmFfcGFydHM9ImNydGJl Z2luLm8gY3J0ZW5kLm8iCgkJZmkKCQkjIFRoZSBkZWZhdWx0IEVBRlMgZmlsZXN5c3RlbSBzdXBw b3J0cyBsb25nIGZpbGUgbmFtZXMuCgkJIyBUcnVuY2F0aW5nIHRoZSB0YXJnZXQgbWFrZXMgJGhv c3QgIT0gJHRhcmdldCB3aGljaAoJCSMgbWFrZXMgZ2NjIHRoaW5rIGl0IGlzIGRvaW5nIGEgY3Jv c3MtY29tcGlsZS4KCQkjIHRydW5jYXRlX3RhcmdldD15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRu bAoJaVszNDU2N104Ni0qLXNjbyopCSAJIyA4MDM4NiBydW5uaW5nIFNDTyBzeXN0ZW0KY2hhbmdl cXVvdGUoWyxdKWRubAoJCXhtX2ZpbGU9aTM4Ni94bS1zY28uaAoJCXhtYWtlX2ZpbGU9aTM4Ni94 LXNjbwoJCWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KICAgICAgICAg ICAgICAgIGlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9aTM4Ni9zY29k YnguaAoJCQl0bWFrZV9maWxlPWkzODYvdC1zdnIzZGJ4CgkJCWV4dHJhX3BhcnRzPSJzdnIzLmlm aWxlIHN2cjN6LnJmaWxlIgoJCWVsc2UKCQkJdG1fZmlsZT1pMzg2L3Njby5oCgkJCWV4dHJhX3Bh cnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCQl0bWFrZV9maWxlPWkzODYvdC1jcnRzdHVmZgoJ CWZpCgkJdHJ1bmNhdGVfdGFyZ2V0PXllcwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3 XTg2LSotc29sYXJpczIqKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1fZmlsZT0ieG0tYWxsb2Nh LmggJHt4bV9maWxlfSIKCQl4bV9kZWZpbmVzPSJVU0cgUE9TSVggU01BTExfQVJHX01BWCIKCQl0 bV9maWxlPWkzODYvc29sMi5oCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXM7IHRoZW4KCQkJIyBPbmx5 IG5lZWRlZCBpZiBnYXMgZG9lcyBub3Qgc3VwcG9ydCAtcwoJCQl0bV9maWxlPSJpMzg2L3NvbDJn YXMuaCAke3RtX2ZpbGV9IgoJCWZpCgkJdG1ha2VfZmlsZT1pMzg2L3Qtc29sMgoJCWV4dHJhX3Bh cnRzPSJjcnQxLm8gY3J0aS5vIGNydG4ubyBnY3J0MS5vIGdtb24ubyBjcnRiZWdpbi5vIGNydGVu ZC5vIgoJCXhtYWtlX2ZpbGU9eC1zdnI0CgkJaWYgdGVzdCB4JHtlbmFibGVfdGhyZWFkc30gPSB4 OyB0aGVuCgkJICAgIGVuYWJsZV90aHJlYWRzPSRoYXZlX3B0aHJlYWRfaAoJCSAgICBpZiB0ZXN0 IHgke2VuYWJsZV90aHJlYWRzfSA9IHg7IHRoZW4KCQkJZW5hYmxlX3RocmVhZHM9JGhhdmVfdGhy ZWFkX2gKCQkgICAgZmkKCQlmaQoJCWlmIHRlc3QgeCR7ZW5hYmxlX3RocmVhZHN9ID0geHllczsg dGhlbgoJCSAgICBpZiB0ZXN0IHgke2hhdmVfcHRocmVhZF9ofSA9IHh5ZXM7IHRoZW4KCQkJdGhy ZWFkX2ZpbGU9J3Bvc2l4JwoJCSAgICBlbHNlCgkJCXRocmVhZF9maWxlPSdzb2xhcmlzJwoJCSAg ICBmaQoJCWZpCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKICAgICAgIGlbMzQ1NjddODYtKi1zeXN2 NSopICAgICAgICAgICAjIEludGVsIHg4NiBvbiBTeXN0ZW0gViBSZWxlYXNlIDUKY2hhbmdlcXVv dGUoWyxdKWRubAogICAgICAgICAgICAgICB4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3htX2ZpbGV9 IgogICAgICAgICAgICAgICB4bV9kZWZpbmVzPSJVU0cgUE9TSVgiCiAgICAgICAgICAgICAgIHRt X2ZpbGU9aTM4Ni9zeXN2NS5oCiAgICAgICAgICAgICAgIGlmIHRlc3QgeCRzdGFicyA9IHh5ZXMK ICAgICAgICAgICAgICAgdGhlbgogICAgICAgICAgICAgICAgICAgICAgIHRtX2ZpbGU9IiR7dG1f ZmlsZX0gZGJ4LmgiCiAgICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgIHRtYWtlX2ZpbGU9 aTM4Ni90LWNydHBpYwogICAgICAgICAgICAgICB4bWFrZV9maWxlPXgtc3ZyNAogICAgICAgICAg ICAgICBleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCSAgICAgICBpZiB0ZXN0IHgk ZW5hYmxlX3RocmVhZHMgPSB4eWVzOyB0aGVuCgkJICAgICAgIHRocmVhZF9maWxlPSdwb3NpeCcK CSAgICAgICBmaQogICAgICAgICAgICAgICA7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104 Ni0qLXN5c3Y0KikJCSMgSW50ZWwgODAzODYncyBydW5uaW5nIHN5c3RlbSBWLjQKY2hhbmdlcXVv dGUoWyxdKWRubAoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5l cz0iVVNHIFBPU0lYIFNNQUxMX0FSR19NQVgiCgkJdG1fZmlsZT1pMzg2L3N5c3Y0LmgKCQlpZiB0 ZXN0IHgkc3RhYnMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IGRieC5oIgoJ CWZpCgkJdG1ha2VfZmlsZT1pMzg2L3QtY3J0cGljCgkJeG1ha2VfZmlsZT14LXN2cjQKCQlleHRy YV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVsz NDU2N104Ni0qLXVkayopICAgICAgIyBJbnRlbCB4ODYgb24gU0NPIFVXL09TUjUgRGV2IEtpdApj aGFuZ2VxdW90ZShbLF0pZG5sCgkJeG1fZmlsZT0ieG0tYWxsb2NhLmggJHt4bV9maWxlfSIKCQl4 bV9kZWZpbmVzPSJVU0cgUE9TSVgiCgkJdG1fZmlsZT1pMzg2L3Vkay5oCgkJdG1ha2VfZmlsZT0i aTM4Ni90LWNydHBpYyBpMzg2L3QtdWRrIgoJCXhtYWtlX2ZpbGU9eC1zdnI0CgkJZXh0cmFfcGFy dHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhl YWRlcnMtY3BpbwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0NTY3XTg2LSotb3NmMSopCQkj IEludGVsIDgwMzg2J3MgcnVubmluZyBPU0YvMSAxLjMrCmNoYW5nZXF1b3RlKFssXSlkbmwKCQlj cHVfdHlwZT1pMzg2CgkJeG1fZmlsZT0iJHt4bV9maWxlfSB4bS1zdnI0LmggaTM4Ni94bS1zeXN2 NC5oIGkzODYveG0tb3NmMWVsZi5oIgoJCXhtX2RlZmluZXM9IlVTRV9DX0FMTE9DQSBTTUFMTF9B UkdfTUFYIgoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9aTM4Ni9v c2YxZWxmZ2RiLmgKCQllbHNlCgkJCXRtX2ZpbGU9aTM4Ni9vc2YxZWxmLmgKCQlmaQoJCXRtYWtl X2ZpbGU9aTM4Ni90LW9zZjFlbGYKCQl4bWFrZV9maWxlPWkzODYveC1vc2YxZWxmCgkJZXh0cmFf cGFydHM9ImNydGkubyBjcnRuLm8gY3J0YmVnaW4ubyBjcnRlbmQubyIKCQk7OwpjaGFuZ2VxdW90 ZSgsKWRubAoJaVszNDU2N104Ni0qLXN5c3YqKQkJIyBJbnRlbCA4MDM4NidzIHJ1bm5pbmcgc3lz dGVtIFYKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXhtX2RlZmluZXM9IlVTRyBTVlIzIgoJCXhtYWtl X2ZpbGU9aTM4Ni94LXN5c3YzCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCWlmIHRl c3QgeCRzdGFicyA9IHh5ZXMKCQkJdGhlbgoJCQkJdG1fZmlsZT1pMzg2L3N2cjNkYnguaAoJCQkJ dG1ha2VfZmlsZT1pMzg2L3Qtc3ZyM2RieAoJCQkJZXh0cmFfcGFydHM9InN2cjMuaWZpbGUgc3Zy M3oucmZpbGUiCgkJCWVsc2UKCQkJCXRtX2ZpbGU9aTM4Ni9zdnIzZ2FzLmgKCQkJCWV4dHJhX3Bh cnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCQkJdG1ha2VfZmlsZT1pMzg2L3QtY3J0c3R1ZmYK CQkJZmkKCQllbHNlCgkJCXRtX2ZpbGU9aTM4Ni9zeXN2My5oCgkJCWV4dHJhX3BhcnRzPSJjcnRi ZWdpbi5vIGNydGVuZC5vIgoJCQl0bWFrZV9maWxlPWkzODYvdC1jcnRzdHVmZgoJCWZpCgkJOzsK CWkzODYtKi12c3RhKQkJCSMgSW50ZWwgODAzODYncyBydW5uaW5nIFZTVGEga2VybmVsCgkJeG1f ZmlsZT0iJHt4bV9maWxlfSBpMzg2L3htLXZzdGEuaCIKCQl0bV9maWxlPWkzODYvdnN0YS5oCgkJ dG1ha2VfZmlsZT1pMzg2L3QtdnN0YQoJCXhtYWtlX2ZpbGU9aTM4Ni94LXZzdGEKCQk7OwpjaGFu Z2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLXdpbjMyKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJ eG1fZmlsZT0iJHt4bV9maWxlfSBpMzg2L3htLWN5Z3dpbi5oIgoJCXRtYWtlX2ZpbGU9aTM4Ni90 LWN5Z3dpbgoJCXRtX2ZpbGU9aTM4Ni93aW4zMi5oCgkJeG1ha2VfZmlsZT1pMzg2L3gtY3lnd2lu CgkJZXh0cmFfb2Jqcz13aW5udC5vCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7 IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J3dpbjMyJwoJCWZpCgkJZXhlZXh0PS5leGUKCQk7OwpjaGFu Z2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLXBlIHwgaVszNDU2N104Ni0qLWN5Z3dpbiopCmNo YW5nZXF1b3RlKFssXSlkbmwKCQl4bV9maWxlPSIke3htX2ZpbGV9IGkzODYveG0tY3lnd2luLmgi CgkJdG1ha2VfZmlsZT1pMzg2L3QtY3lnd2luCgkJdG1fZmlsZT1pMzg2L2N5Z3dpbi5oCgkJeG1h a2VfZmlsZT1pMzg2L3gtY3lnd2luCgkJZXh0cmFfb2Jqcz13aW5udC5vCiAJCWlmIHRlc3QgeCRl bmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J3dpbjMyJwoJCWZpCgkJ ZXhlZXh0PS5leGUKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104Ni0qLW1pbmd3MzIq KQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1pMzg2L21pbmd3MzIuaAoJCXhtX2ZpbGU9 IiR7eG1fZmlsZX0gaTM4Ni94bS1taW5ndzMyLmgiCgkJdG1ha2VfZmlsZT0iaTM4Ni90LWN5Z3dp biBpMzg2L3QtbWluZ3czMiIKCQlleHRyYV9vYmpzPXdpbm50Lm8KCQl4bWFrZV9maWxlPWkzODYv eC1jeWd3aW4KIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgoJCQl0aHJl YWRfZmlsZT0nd2luMzInCgkJZmkKCQlleGVleHQ9LmV4ZQoJCWNhc2UgJG1hY2hpbmUgaW4KCQkJ Km1pbmd3MzJtc3YqKQoJCQkJOzsKCQkJKm1pbndnMzJjcnQqIHwgKm1pbmd3MzIqKQoJCQkJdG1f ZmlsZT0iJHt0bV9maWxlfSBpMzg2L2NydGRsbC5oIgoJCQkJOzsKCQllc2FjCgkJOzsKY2hhbmdl cXVvdGUoLClkbmwKCWlbMzQ1NjddODYtKi11d2luKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXRt X2ZpbGU9aTM4Ni91d2luLmgKCQl4bV9maWxlPSIke3htX2ZpbGV9IGkzODYveG0tdXdpbi5oIgoJ CXhtX2RlZmluZXM9IlVTRyBOT19TVEFCX0giCgkJdG1ha2VfZmlsZT0iaTM4Ni90LWN5Z3dpbiBp Mzg2L3QtdXdpbiIKCQlleHRyYV9vYmpzPXdpbm50Lm8KCQl4bWFrZV9maWxlPWkzODYveC1jeWd3 aW4KIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgoJCQl0aHJlYWRfZmls ZT0nd2luMzInCgkJZmkKCQlleGVleHQ9LmV4ZQoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglpWzM0 NTY3XTg2LSotaW50ZXJpeCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPSJpMzg2L2kz ODYtaW50ZXJpeC5oIGludGVyaXguaCIKCQl4bV9maWxlPSJpMzg2L3htLWkzODYtaW50ZXJpeC5o IHhtLWludGVyaXguaCIKCQl4bV9kZWZpbmVzPSJVU0ciCgkJdG1ha2VfZmlsZT0iaTM4Ni90LWlu dGVyaXgiCgkJZXh0cmFfb2Jqcz1pbnRlcml4Lm8KCQl4bWFrZV9maWxlPXgtaW50ZXJpeAogCQlp ZiB0ZXN0IHgkZW5hYmxlX3RocmVhZHMgPSB4eWVzIDsgdGhlbgoJCQl0aHJlYWRfZmlsZT0ncG9z aXgnCgkJZmkKIAkJaWYgdGVzdCB4JHN0YWJzID0geHllcyA7IHRoZW4KCQkJdG1fZmlsZT0iJHt0 bV9maWxlfSBkYnhjb2ZmLmgiCgkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJaVszNDU2N104 Ni0qLXdpbm50MyopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPWkzODYvd2luLW50LmgK CQlvdXRfZmlsZT1pMzg2L2kzODYuYwoJCXhtX2ZpbGU9InhtLXdpbm50LmggJHt4bV9maWxlfSIK CQl4bWFrZV9maWxlPXdpbm50L3gtd2lubnQKCQl0bWFrZV9maWxlPWkzODYvdC13aW5udAoJCWV4 dHJhX2hvc3Rfb2Jqcz0id2lubnQubyBvbGRuYW1lcy5vIgoJCWV4dHJhX2djY19vYmpzPSJzcGF3 bnYubyBvbGRuYW1lcy5vIgoJCWlmIHRlc3QgeCRnbnVfbGQgIT0geHllcwoJCXRoZW4KCQkJZXh0 cmFfcHJvZ3JhbXM9bGQuZXhlCgkJZmkKIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHll czsgdGhlbgoJCQl0aHJlYWRfZmlsZT0nd2luMzInCgkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRu bAoJaVszNDU2N104Ni1kZy1kZ3V4KikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXhtX2ZpbGU9Inht LWFsbG9jYS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5lcz0iVVNHIFBPU0lYIgoJCW91dF9maWxl PWkzODYvZGd1eC5jCgkJdG1fZmlsZT1pMzg2L2RndXguaAoJCXRtYWtlX2ZpbGU9aTM4Ni90LWRn dXgKCQl4bWFrZV9maWxlPWkzODYveC1kZ3V4CgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxs LWhlYWRlcnMtY3BpbwogICAgICAgICAgICAgIDs7CglpODYwLWFsbGlhbnQtKikJCSMgQWxsaWFu dCBGWC8yODAwCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBzdnI0LmggaTg2MC9zeXN2NC5oIGk4NjAv ZngyODAwLmgiCgkJeG1fZmlsZT0iJHt4bV9maWxlfSIKCQl4bWFrZV9maWxlPWk4NjAveC1meDI4 MDAKCQl0bWFrZV9maWxlPWk4NjAvdC1meDI4MDAKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBj cnRlbmQubyIKCQk7OwoJaTg2MC0qLWJzZCopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBpODYwL2Jz ZC5oIgoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9 IGk4NjAvYnNkLWdhcy5oIgoJCWZpCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglpODYwLSotbWFj aCopCgkJdG1fZmlsZT0iJHt0bV9maWxlfSBpODYwL21hY2guaCIKCQl0bWFrZV9maWxlPXQtbGli Yy1vawoJCTs7CglpODYwLSotb3NmKikJCQkjIEludGVsIFBhcmFnb24gWFAvUywgT1NGLzFBRAoJ CXRtX2ZpbGU9IiR7dG1fZmlsZX0gc3ZyMy5oIGk4NjAvcGFyYWdvbi5oIgoJCXhtX2RlZmluZXM9 IlVTRyBTVlIzIgoJCXRtYWtlX2ZpbGU9dC1vc2YKCQk7OwoJaTg2MC0qLXN5c3YzKikKCQl0bV9m aWxlPSIke3RtX2ZpbGV9IHN2cjMuaCBpODYwL3N5c3YzLmgiCgkJeG1fZGVmaW5lcz0iVVNHIFNW UjMiCgkJeG1ha2VfZmlsZT1pODYwL3gtc3lzdjMKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBj cnRlbmQubyIKCQk7OwoJaTg2MC0qLXN5c3Y0KikKCQl0bV9maWxlPSIke3RtX2ZpbGV9IHN2cjQu aCBpODYwL3N5c3Y0LmgiCgkJeG1fZGVmaW5lcz0iVVNHIFNWUjMiCgkJeG1ha2VfZmlsZT1pODYw L3gtc3lzdjQKCQl0bWFrZV9maWxlPXQtc3ZyNAoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNy dGVuZC5vIgoJCTs7CglpOTYwLXdycy12eHdvcmtzNSB8IGk5NjAtd3JzLXZ4d29ya3M1LjAqKQoJ CXRtX2ZpbGU9IiR7dG1fZmlsZX0gaTk2MC92eDk2MC5oIgoJCXRtYWtlX2ZpbGU9aTk2MC90LXZ4 d29ya3M5NjAKCQl1c2VfY29sbGVjdDI9eWVzCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJOzsK CWk5NjAtd3JzLXZ4d29ya3M1KiB8IGk5NjAtd3JzLXZ4d29ya3MpCgkJdG1fZmlsZT0iJHt0bV9m aWxlfSBkYnhjb2ZmLmggaTk2MC9pOTYwLWNvZmYuaCBpOTYwL3Z4OTYwLWNvZmYuaCIKCQl0bWFr ZV9maWxlPWk5NjAvdC12eHdvcmtzOTYwCgkJdXNlX2NvbGxlY3QyPXllcwoJCXRocmVhZF9maWxl PSd2eHdvcmtzJwoJCTs7CglpOTYwLXdycy12eHdvcmtzKikKCQl0bV9maWxlPSIke3RtX2ZpbGV9 IGk5NjAvdng5NjAuaCIKCQl0bWFrZV9maWxlPWk5NjAvdC12eHdvcmtzOTYwCgkJdXNlX2NvbGxl Y3QyPXllcwoJCXRocmVhZF9maWxlPSd2eHdvcmtzJwoJCTs7CglpOTYwLSotY29mZiopCgkJdG1f ZmlsZT0iJHt0bV9maWxlfSBkYnhjb2ZmLmggaTk2MC9pOTYwLWNvZmYuaCBsaWJnbG9zcy5oIgoJ CXRtYWtlX2ZpbGU9aTk2MC90LTk2MGJhcmUKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCWk5NjAt Ki1ydGVtcykKCQl0bWFrZV9maWxlPSJpOTYwL3QtOTYwYmFyZSB0LXJ0ZW1zIgoJCXRtX2ZpbGU9 IiR7dG1fZmlsZX0gZGJ4Y29mZi5oIGk5NjAvcnRlbXMuaCIKCQl1c2VfY29sbGVjdDI9eWVzCgkJ OzsKCWk5NjAtKi0qKQkJCSMgRGVmYXVsdCBpOTYwIGVudmlyb25tZW50LgoJCXVzZV9jb2xsZWN0 Mj15ZXMKCQk7OwoJbTMyci0qLWVsZiopCgkJZXh0cmFfcGFydHM9ImNydGluaXQubyBjcnRmaW5p Lm8iCgkJOzsKCW02ODAwMC1jb252ZXJnZW50LXN5c3YqKQoJCXRtX2ZpbGU9bTY4ay9jdGl4LmgK CQl4bV9maWxlPSJtNjhrL3htLTNiMS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5lcz1VU0cKCQl1 c2VfY29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQk7OwoJbTY4MDAw LWhwLWJzZCopCQkJIyBIUCA5MDAwLzIwMCBydW5uaW5nIEJTRAoJCXRtX2ZpbGU9bTY4ay9ocDJi c2QuaAoJCXhtYWtlX2ZpbGU9bTY4ay94LWhwMmJzZAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRy YV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjgwMDAtaHAtaHB1eCopCQkjIEhQIDkwMDAg c2VyaWVzIDMwMAoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5l cz0iVVNHIgoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl4bWFrZV9maWxlPW02OGsv eC1ocDMyMGcKCQkJdG1fZmlsZT1tNjhrL2hwMzEwZy5oCgkJZWxzZQoJCQl4bWFrZV9maWxlPW02 OGsveC1ocDMyMAoJCQl0bV9maWxlPW02OGsvaHAzMTAuaAoJCWZpCgkJaW5zdGFsbF9oZWFkZXJz X2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFk ZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjgwMDAtc3VuLXN1bm9zMyopCgkJdG1fZmlsZT1tNjhr L3N1bjIuaAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJ CTs7CgltNjgwMDAtc3VuLXN1bm9zNCopCgkJdG1fZmlsZT1tNjhrL3N1bjJvNC5oCgkJdXNlX2Nv bGxlY3QyPXllcwoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJOzsKCW02ODAwMC1hdHQt c3lzdiopCgkJeG1fZmlsZT0ibTY4ay94bS0zYjEuaCAke3htX2ZpbGV9IgoJCXhtX2RlZmluZXM9 VVNHCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9bTY4ay8zYjFnLmgK CQllbHNlCgkJCXRtX2ZpbGU9bTY4ay8zYjEuaAoJCWZpCgkJdXNlX2NvbGxlY3QyPXllcwoJCWV4 dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJOzsKCW02OGstYXBwbGUtYXV4KikJCSMgQXBwbGUg TWFjaW50b3NoIHJ1bm5pbmcgQS9VWAoJCXhtX2RlZmluZXM9IlVTRyBBVVgiCgkJdG1ha2VfZmls ZT1tNjhrL3QtYXV4CgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJ CWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZXh0cmFfcGFydHM9ImNydDEubyBtY3J0MS5v IG1hY2NydDEubyBjcnQyLm8gY3J0bi5vIgoJCXRtX2ZpbGU9CgkJaWYgdGVzdCAiJGdudV9sZCIg PSB5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbTY4ay9hdXhnbGQuaCIKCQllbHNl CgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbTY4ay9hdXhsZC5oIgoJCWZpCgkJaWYgdGVzdCAiJGdh cyIgPSB5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbTY4ay9hdXhnYXMuaCIKCQll bHNlCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbTY4ay9hdXhhcy5oIgoJCWZpCgkJdG1fZmlsZT0i JHt0bV9maWxlfSBtNjhrL2EtdXguaCIKCQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhrLWFw b2xsby0qKQoJCXRtX2ZpbGU9bTY4ay9hcG9sbG82OC5oCgkJeG1ha2VfZmlsZT1tNjhrL3gtYXBv bGxvNjgKCQl1c2VfY29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQlm bG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhrLWFsdG9zLXN5c3YqKQkJICAgIyBBbHRvcyAzMDY4 CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJICAgICAgICB0bV9maWxlPW02OGsvYWx0 b3MzMDY4LmgKCQkJeG1fZGVmaW5lcz1VU0cKCQllbHNlCgkJCWVjaG8gIlRoZSBBbHRvcyBpcyBz dXBwb3J0ZWQgb25seSB3aXRoIHRoZSBHTlUgYXNzZW1ibGVyIiAxPiYyCgkJCWV4aXQgMQoJCWZp CgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCSAgICAgICAgOzsKCW02OGstYnVsbC1zeXN2 KikJCSMgQnVsbCBEUFgvMgoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQlpZiB0ZXN0 IHgkc3RhYnMgPSB4eWVzCgkJCXRoZW4KCQkJCXRtX2ZpbGU9bTY4ay9kcHgyY2RieC5oCgkJCWVs c2UKCQkJCXRtX2ZpbGU9bTY4ay9kcHgyZy5oCgkJCWZpCgkJZWxzZQoJCQl0bV9maWxlPW02OGsv ZHB4Mi5oCgkJZmkKCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3htX2ZpbGV9IgoJCXhtX2RlZmlu ZXM9VVNHCgkJeG1ha2VfZmlsZT1tNjhrL3gtZHB4MgoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRy YV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjhrLWF0YXJpLXN5c3Y0KikgICAgICAgICAg ICAgICMgQXRhcmkgdmFyaWFudCBvZiBWLjQuCgkJdG1fZmlsZT1tNjhrL2F0YXJpLmgKCQl4bV9m aWxlPSJ4bS1hbGxvY2EuaCAke3htX2ZpbGV9IgoJCXhtX2RlZmluZXM9IlVTRyBGVUxMX1BST1RP VFlQRVMiCgkJdG1ha2VfZmlsZT10LXN2cjQKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRl bmQubyIKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJ OzsKCW02OGstbW90b3JvbGEtc3lzdiopCgkJdG1fZmlsZT1tNjhrL21vdDMzMDAuaAoJCXhtX2Zp bGU9InhtLWFsbG9jYS5oIG02OGsveG0tbW90MzMwMC5oICR7eG1fZmlsZX0iCgkJaWYgdGVzdCB4 JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXhtYWtlX2ZpbGU9bTY4ay94LW1vdDMzMDAtZ2FzCgkJCWlm IHRlc3QgeCRnbnVfbGQgPSB4eWVzCgkJCXRoZW4KCQkJCXRtYWtlX2ZpbGU9bTY4ay90LW1vdDMz MDAtZ2FsZAoJCQllbHNlCgkJCQl0bWFrZV9maWxlPW02OGsvdC1tb3QzMzAwLWdhcwoJCQkJdXNl X2NvbGxlY3QyPXllcwoJCQlmaQoJCWVsc2UKCQkJeG1ha2VfZmlsZT1tNjhrL3gtbW90MzMwMAoJ CQlpZiB0ZXN0IHgkZ251X2xkID0geHllcwoJCQl0aGVuCgkJCQl0bWFrZV9maWxlPW02OGsvdC1t b3QzMzAwLWdsZAoJCQllbHNlCgkJCQl0bWFrZV9maWxlPW02OGsvdC1tb3QzMzAwCgkJCQl1c2Vf Y29sbGVjdDI9eWVzCgkJCWZpCgkJZmkKCQlnZGJfbmVlZHNfb3V0X2ZpbGVfcGF0aD15ZXMKCQll eHRyYV9wYXJ0cz0iY3J0MC5vIG1jcnQwLm8iCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgK CQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhrLW5jci1zeXN2KikJCQkjIE5DUiBUb3dlciAz MiBTVlIzCgkJdG1fZmlsZT1tNjhrL3Rvd2VyLWFzLmgKCQl4bV9kZWZpbmVzPSJVU0cgU1ZSMyIK CQl4bWFrZV9maWxlPW02OGsveC10b3dlcgoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVu ZC5vIgoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJOzsKICAgICAgICBtNjhrLXBsZXh1 cy1zeXN2KikKCQl0bV9maWxlPW02OGsvcGxleHVzLmgKCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCBt NjhrL3htLXBsZXh1cy5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5lcz1VU0cKCQl1c2VfY29sbGVj dDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQk7OwoJbTY4ay10dGktKikKCQl0 bV9maWxlPW02OGsvcGJiLmgKCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3htX2ZpbGV9IgoJCXht X2RlZmluZXM9VVNHCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQk7OwoJbTY4ay1jcmRz LXVub3MqKQoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oIG02OGsveG0tY3Jkcy5oICR7eG1fZmlsZX0i CgkJeG1fZGVmaW5lcz0iVVNHIHVub3MiCgkJeG1ha2VfZmlsZT1tNjhrL3gtY3JkcwoJCXRtX2Zp bGU9bTY4ay9jcmRzLmgKCQl1c2VfY29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4 ODgxLmgKCQk7OwoJbTY4ay1jYm0tc3lzdjQqKQkJIyBDb21tb2RvcmUgdmFyaWFudCBvZiBWLjQu CgkJdG1fZmlsZT1tNjhrL2FtaXguaAoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oICR7eG1fZmlsZX0i CgkJeG1fZGVmaW5lcz0iVVNHIEZVTExfUFJPVE9UWVBFUyIKCQl4bWFrZV9maWxlPW02OGsveC1h bWl4CgkJdG1ha2VfZmlsZT10LXN2cjQKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQu byIKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsK CW02OGstY2N1ci1ydHUpCgkJdG1fZmlsZT1tNjhrL2NjdXItR0FTLmgKCQl4bWFrZV9maWxlPW02 OGsveC1jY3VyCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQl1c2VfY29sbGVjdDI9eWVz CgkJZmxvYXRfZm9ybWF0PW02OGsKCQk7OwoJbTY4ay1ocC1ic2Q0LjQqKQkJIyBIUCA5MDAwLzN4 eCBydW5uaW5nIDQuNGJzZAoJCXRtX2ZpbGU9bTY4ay9ocDNic2Q0NC5oCgkJeG1ha2VfZmlsZT1t NjhrL3gtaHAzYnNkNDQKCQl1c2VfY29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4 ODgxLmgKCQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhrLWhwLWJzZCopCQkJIyBIUCA5MDAw LzN4eCBydW5uaW5nIEJlcmtlbGV5IFVuaXgKCQl0bV9maWxlPW02OGsvaHAzYnNkLmgKCQl1c2Vf Y29sbGVjdDI9eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQlmbG9hdF9mb3JtYXQ9 bTY4awoJCTs7CgltNjhrLWlzaS1ic2QqKQoJCWlmIHRlc3QgeCR3aXRoX2ZwID0geG5vCgkJdGhl bgoJCQl0bV9maWxlPW02OGsvaXNpLW5mcC5oCgkJZWxzZQoJCQl0bV9maWxlPW02OGsvaXNpLmgK CQkJZmxvYXRfZm9ybWF0PW02OGsKCQlmaQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFk ZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjhrLWhwLWhwdXg3KikJIyBIUCA5MDAwIHNlcmllcyAz MDAgcnVubmluZyBIUFVYIHZlcnNpb24gNy4KCQl4bV9maWxlPSJ4bS1hbGxvY2EuaCAke3htX2Zp bGV9IgoJCXhtX2RlZmluZXM9IlVTRyIKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJ eG1ha2VfZmlsZT1tNjhrL3gtaHAzMjBnCgkJCXRtX2ZpbGU9bTY4ay9ocDMyMGcuaAoJCWVsc2UK CQkJeG1ha2VfZmlsZT1tNjhrL3gtaHAzMjAKCQkJdG1fZmlsZT1tNjhrL2hwdXg3LmgKCQlmaQoJ CWluc3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQl1c2VfY29sbGVjdDI9 eWVzCgkJZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7 CgltNjhrLWhwLWhwdXgqKQkjIEhQIDkwMDAgc2VyaWVzIDMwMAoJCXhtX2ZpbGU9InhtLWFsbG9j YS5oICR7eG1fZmlsZX0iCgkJeG1fZGVmaW5lcz0iVVNHIgoJCWlmIHRlc3QgeCRnYXMgPSB4eWVz CgkJdGhlbgoJCQl4bWFrZV9maWxlPW02OGsveC1ocDMyMGcKCQkJdG1fZmlsZT1tNjhrL2hwMzIw Zy5oCgkJZWxzZQoJCQl4bWFrZV9maWxlPW02OGsveC1ocDMyMAoJCQl0bV9maWxlPW02OGsvaHAz MjAuaAoJCWZpCgkJaW5zdGFsbF9oZWFkZXJzX2Rpcj1pbnN0YWxsLWhlYWRlcnMtY3BpbwoJCXVz ZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1h dD1tNjhrCgkJOzsKCW02OGstc3VuLW1hY2gqKQoJCXRtX2ZpbGU9bTY4ay9zdW4zbWFjaC5oCgkJ dXNlX2NvbGxlY3QyPXllcwoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRfZm9y bWF0PW02OGsKCQk7OwoJbTY4ay1zb255LW5ld3NvczMqKQoJCWlmIHRlc3QgeCRnYXMgPSB4eWVz CgkJdGhlbgoJCQl0bV9maWxlPW02OGsvbmV3czNnYXMuaAoJCWVsc2UKCQkJdG1fZmlsZT1tNjhr L25ld3MzLmgKCQlmaQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4 ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsKCW02OGstc29ueS1ic2QqIHwgbTY4ay1zb255 LW5ld3NvcyopCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9bTY4ay9u ZXdzZ2FzLmgKCQllbHNlCgkJCXRtX2ZpbGU9bTY4ay9uZXdzLmgKCQlmaQoJCXVzZV9jb2xsZWN0 Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJ OzsKCW02OGstbmV4dC1uZXh0c3RlcDIqKQoJCXRtX2ZpbGU9bTY4ay9uZXh0MjEuaAoJCXhtX2Zp bGU9Im02OGsveG0tbmV4dC5oICR7eG1fZmlsZX0iCgkJdG1ha2VfZmlsZT1tNjhrL3QtbmV4dAoJ CXhtYWtlX2ZpbGU9bTY4ay94LW5leHQKCQlleHRyYV9vYmpzPW5leHRzdGVwLm8KCQlleHRyYV9o ZWFkZXJzPW1hdGgtNjg4ODEuaAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmbG9hdF9mb3JtYXQ9bTY4 awogICAgICAgICAgICAgICAgOzsKY2hhbmdlcXVvdGUoLClkbmwKCW02OGstbmV4dC1uZXh0c3Rl cFszNF0qKQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT1tNjhrL25leHQuaAoJCXhtX2Zp bGU9Im02OGsveG0tbmV4dC5oICR7eG1fZmlsZX0iCgkJdG1ha2VfZmlsZT1tNjhrL3QtbmV4dAoJ CXhtYWtlX2ZpbGU9bTY4ay94LW5leHQKCQlleHRyYV9vYmpzPW5leHRzdGVwLm8KCQlleHRyYV9w YXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJ CWZsb2F0X2Zvcm1hdD1tNjhrCiAJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRo ZW4KCQkJdGhyZWFkX2ZpbGU9J21hY2gnCgkJZmkKCQk7OwoJbTY4ay1zdW4tc3Vub3MzKikKCQlp ZiB0ZXN0IHgkd2l0aF9mcCA9IHhubwoJCXRoZW4KCQkJdG1fZmlsZT1tNjhrL3N1bjNuMy5oCgkJ ZWxzZQoJCQl0bV9maWxlPW02OGsvc3VuM28zLmgKCQkJZmxvYXRfZm9ybWF0PW02OGsKCQlmaQoJ CXVzZV9jb2xsZWN0Mj15ZXMKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCTs7CgltNjhr LXN1bi1zdW5vcyopCQkJIyBGb3IgU3VuT1MgNCAodGhlIGRlZmF1bHQpLgoJCWlmIHRlc3QgeCR3 aXRoX2ZwID0geG5vCgkJdGhlbgoJCQl0bV9maWxlPW02OGsvc3VuM24uaAoJCWVsc2UKCQkJdG1f ZmlsZT1tNjhrL3N1bjMuaAoJCQlmbG9hdF9mb3JtYXQ9bTY4awoJCWZpCgkJdXNlX2NvbGxlY3Qy PXllcwoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJOzsKCW02OGstd3JzLXZ4d29ya3Mq KQoJCXRtX2ZpbGU9bTY4ay92eG02OGsuaAoJCXRtYWtlX2ZpbGU9bTY4ay90LXZ4d29ya3M2OAoJ CWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJdGhyZWFkX2ZpbGU9J3Z4d29ya3MnCgkJZmxv YXRfZm9ybWF0PW02OGsKCQk7OwoJbTY4ay0qLWFvdXQqKQoJCXRtYWtlX2ZpbGU9bTY4ay90LW02 OGtiYXJlCgkJdG1fZmlsZT0ibTY4ay9tNjhrLWFvdXQuaCBsaWJnbG9zcy5oIgoJCWV4dHJhX2hl YWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRfZm9ybWF0PW02OGsKCQk7OwoJbTY4ay0qLWNvZmYq KQoJCXRtYWtlX2ZpbGU9bTY4ay90LW02OGtiYXJlCgkJdG1fZmlsZT0ibTY4ay9tNjhrLWNvZmYu aCBkYnguaCBsaWJnbG9zcy5oIgoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRf Zm9ybWF0PW02OGsKCQk7OwoJbTY4MDIwLSotZWxmKiB8IG02OGstKi1lbGYqKQoJCXRtX2ZpbGU9 Im02OGsvbTY4MDIwLWVsZi5oIgoJCXhtX2ZpbGU9bTY4ay94bS1tNjhrdi5oCgkJdG1ha2VfZmls ZT1tNjhrL3QtbTY4a2VsZgoJCWhlYWRlcl9maWxlcz1tYXRoLTY4ODgxLmgKCQk7OwoJbTY4ay0q LWx5bnhvcyopCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9bTY4ay9s eW54LmgKCQllbHNlCgkJCXRtX2ZpbGU9bTY4ay9seW54LW5nLmgKCQlmaQoJCXhtX2ZpbGU9bTY4 ay94bS1seW54LmgKCQl4bWFrZV9maWxlPXgtbHlueAoJCXRtYWtlX2ZpbGU9bTY4ay90LWx5bngK CQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsKCW02 OGsqLSotbmV0YnNkKikKCQl0bV9maWxlPW02OGsvbmV0YnNkLmgKCQl0bWFrZV9maWxlPXQtbmV0 YnNkCgkJZmxvYXRfZm9ybWF0PW02OGsKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCW02OGsqLSot b3BlbmJzZCopCgkJZmxvYXRfZm9ybWF0PW02OGsKCQkjIHdlIG5lZWQgY29sbGVjdDIgdW50aWwg b3VyIGJ1ZyBpcyBmaXhlZC4uLgoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJbTY4ay0qLXN5c3Yz KikJCQkjIE1vdG9yb2xhIG02OGsncyBydW5uaW5nIHN5c3RlbSBWLjMKCQl4bV9maWxlPSJ4bS1h bGxvY2EuaCAke3htX2ZpbGV9IgoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1tNjhrL3gt bTY4a3YKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQlleHRyYV9oZWFkZXJz PW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsKCW02OGstKi1zeXN2NCopCQkJ IyBNb3Rvcm9sYSBtNjhrJ3MgcnVubmluZyBzeXN0ZW0gVi40CgkJdG1fZmlsZT1tNjhrL202OGt2 NC5oCgkJeG1fZmlsZT0ieG0tYWxsb2NhLmggJHt4bV9maWxlfSIKCQl4bV9kZWZpbmVzPVVTRwoJ CXRtYWtlX2ZpbGU9dC1zdnI0CgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJ ZXh0cmFfaGVhZGVycz1tYXRoLTY4ODgxLmgKCQlmbG9hdF9mb3JtYXQ9bTY4awoJCTs7CgltNjhr LSotbGludXgtZ251YW91dCopCQkjIE1vdG9yb2xhIG02OGsncyBydW5uaW5nIEdOVS9MaW51eAoJ CQkJCSMgd2l0aCBhLm91dCBmb3JtYXQKCQl4bWFrZV9maWxlPXgtbGludXgKCQl0bV9maWxlPW02 OGsvbGludXgtYW91dC5oCgkJdG1ha2VfZmlsZT0idC1saW51eC1hb3V0IG02OGsvdC1saW51eC1h b3V0IgoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRfZm9ybWF0PW02OGsKCQln bnVfbGQ9eWVzCgkJOzsKCW02OGstKi1saW51eC1nbnVsaWJjMSkJCSMgTW90b3JvbGEgbTY4aydz IHJ1bm5pbmcgR05VL0xpbnV4CgkJCQkJIyB3aXRoIEVMRiBmb3JtYXQgdXNpbmcgdGhlCgkJCQkJ IyBHTlUvTGludXggQyBsaWJyYXJ5IDUKCQl4bWFrZV9maWxlPXgtbGludXgKCQl0bV9maWxlPW02 OGsvbGludXguaAoJCXRtYWtlX2ZpbGU9InQtbGludXggdC1saW51eC1nbnVsaWJjMSBtNjhrL3Qt bGludXgiCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0 ZW5kUy5vIgoJCWV4dHJhX2hlYWRlcnM9bWF0aC02ODg4MS5oCgkJZmxvYXRfZm9ybWF0PW02OGsK CQlnbnVfbGQ9eWVzCgkJOzsKCW02OGstKi1saW51eC1nbnUqKQkJIyBNb3Rvcm9sYSBtNjhrJ3Mg cnVubmluZyBHTlUvTGludXgKCQkJCQkjIHdpdGggRUxGIGZvcm1hdCB1c2luZyBnbGliYyAyCgkJ CQkJIyBha2EgdGhlIEdOVS9MaW51eCBDIGxpYnJhcnkgNi4KCQl4bWFrZV9maWxlPXgtbGludXgK CQl0bV9maWxlPW02OGsvbGludXguaAoJCXRtYWtlX2ZpbGU9InQtbGludXggbTY4ay90LWxpbnV4 IgoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGJlZ2luUy5vIGNydGVuZC5vIGNydGVuZFMu byIKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJZ251 X2xkPXllcwoJCWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFk X2ZpbGU9J3Bvc2l4JwoJCWZpCgkJOzsKCW02OGstKi1wc29zKikKCQl0bWFrZV9maWxlPW02OGsv dC1tNjhrYmFyZQoJCXRtX2ZpbGU9bTY4ay9tNjhrLXBzb3MuaAoJCWV4dHJhX2hlYWRlcnM9bWF0 aC02ODg4MS5oCgkJZmxvYXRfZm9ybWF0PW02OGsKCQk7OwoJbTY4ay0qLXJ0ZW1zY29mZiopCgkJ dG1ha2VfZmlsZT0ibTY4ay90LW02OGtiYXJlIHQtcnRlbXMiCgkJdG1fZmlsZT1tNjhrL3J0ZW1z LmgKCQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsK CW02OGstKi1ydGVtc2VsZip8bTY4ay0qLXJ0ZW1zKikKCQl0bWFrZV9maWxlPSJtNjhrL3QtbTY4 a2JhcmUgdC1ydGVtcyBtNjhrL3QtY3J0c3R1ZmYiCgkJdG1fZmlsZT1tNjhrL3J0ZW1zZWxmLmgK CQlleHRyYV9oZWFkZXJzPW1hdGgtNjg4ODEuaAoJCWZsb2F0X2Zvcm1hdD1tNjhrCgkJOzsKCW04 OGstZGctZGd1eCopCgkJY2FzZSAkbWFjaGluZSBpbgoJCSAgbTg4ay1kZy1kZ3V4YmNzKikKCQkg ICAgdG1fZmlsZT1tODhrL2RndXhiY3MuaAoJCSAgICB0bWFrZV9maWxlPW04OGsvdC1kZ3V4YmNz CgkJICAgIDs7CgkJICAqKQoJCSAgICB0bV9maWxlPW04OGsvZGd1eC5oCgkJICAgIHRtYWtlX2Zp bGU9bTg4ay90LWRndXgKCQkgICAgOzsKCQllc2FjCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8g YmNzY3J0YmVnaW4ubyBjcnRlbmQubyBtODhrZGd1eC5sZCIKCQl4bWFrZV9maWxlPW04OGsveC1k Z3V4CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9bTg4ay90LWRn dXgtZ2FzCgkJZmkKCQk7OwoJbTg4ay1kb2xwaGluLXN5c3YzKikKCQl0bV9maWxlPW04OGsvZG9s cGguaAoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCXhtX2ZpbGU9Im04OGsv eG0tc3lzdjMuaCAke3htX2ZpbGV9IgoJCXhtYWtlX2ZpbGU9bTg4ay94LWRvbHBoCgkJaWYgdGVz dCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9bTg4ay90LW04OGstZ2FzCgkJZmkK CQk7OwoJbTg4ay10ZWt0cm9uaXgtc3lzdjMpCgkJdG1fZmlsZT1tODhrL3Rla1hEODguaAoJCWV4 dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIgoJCXhtX2ZpbGU9Im04OGsveG0tc3lzdjMu aCAke3htX2ZpbGV9IgoJCXhtYWtlX2ZpbGU9bTg4ay94LXRla1hEODgKCQlpZiB0ZXN0IHgkZ2Fz ID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1tODhrL3QtbTg4ay1nYXMKCQlmaQoJCTs7Cglt ODhrLSotYW91dCopCgkJdG1fZmlsZT1tODhrL204OGstYW91dC5oCgkJOzsKCW04OGstKi1jb2Zm KikKCQl0bV9maWxlPW04OGsvbTg4ay1jb2ZmLmgKCQl0bWFrZV9maWxlPW04OGsvdC1idWcKCQk7 OwoJbTg4ay0qLWx1bmEqKQoJCXRtX2ZpbGU9bTg4ay9sdW5hLmgKCQlleHRyYV9wYXJ0cz0iY3J0 YmVnaW4ubyBjcnRlbmQubyIKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2Vf ZmlsZT1tODhrL3QtbHVuYS1nYXMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bTg4ay90LWx1bmEKCQlm aQoJCTs7CgltODhrLSotb3BlbmJzZCopCgkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBtODhr L3QtbHVuYS1nYXMiCgkJOzsKCW04OGstKi1zeXN2MyopCgkJdG1fZmlsZT1tODhrL3N5c3YzLmgK CQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQl4bV9maWxlPSJtODhrL3htLXN5 c3YzLmggJHt4bV9maWxlfSIKCQl4bWFrZV9maWxlPW04OGsveC1zeXN2MwoJCWlmIHRlc3QgeCRn YXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW04OGsvdC1tODhrLWdhcwoJCWZpCgkJOzsK CW04OGstKi1zeXN2NCopCgkJdG1fZmlsZT1tODhrL3N5c3Y0LmgKCQlleHRyYV9wYXJ0cz0iY3J0 YmVnaW4ubyBjcnRlbmQubyIKCQl4bWFrZV9maWxlPW04OGsveC1zeXN2NAoJCXRtYWtlX2ZpbGU9 bTg4ay90LXN5c3Y0CgkJOzsKCW1jb3JlLSotZWxmKQoJCXRtX2ZpbGU9bWNvcmUvbWNvcmUtZWxm LmgKCQl0bWFrZV9maWxlPW1jb3JlL3QtbWNvcmUKCQk7OwoJbWNvcmUtKi1wZSopCgkJdG1fZmls ZT1tY29yZS9tY29yZS1wZS5oCgkJdG1ha2VfZmlsZT1tY29yZS90LW1jb3JlLXBlCgkJOzsKCW1p cHMtc2dpLWlyaXg2KikJCSMgU0dJIFN5c3RlbSBWLjQuLCBJUklYIDYKCQlpZiB0ZXN0ICJ4JGdu dV9sZCIgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSJtaXBzL2lyaXM2LmggbWlwcy9pcmlzNmds ZC5oIgoJCWVsc2UKCQkJdG1fZmlsZT1taXBzL2lyaXM2LmgKCQlmaQoJCXRtYWtlX2ZpbGU9bWlw cy90LWlyaXM2CgkJeG1fZmlsZT1taXBzL3htLWlyaXM2LmgKCQl4bWFrZV9maWxlPW1pcHMveC1p cmlzNgojIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgojCQkJdGhyZWFk X2ZpbGU9J2lyaXgnCiMJCWZpCgkJOzsKCW1pcHMtd3JzLXZ4d29ya3MpCgkJdG1fZmlsZT0ibWlw cy9lbGYuaCBtaXBzL3Z4d29ya3MuaCIKIAkJdG1ha2VfZmlsZT1taXBzL3QtZWNvZmYKIAkJZ2Fz PXllcwoJCWdudV9sZD15ZXMKIAkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJ dGhyZWFkX2ZpbGU9J3Z4d29ya3MnCiAJCTs7CgltaXBzLXNnaS1pcml4NWNyb3NzNjQpCQkjIEly aXg1IGhvc3QsIElyaXggNiB0YXJnZXQsIGNyb3NzNjQKCQl0bV9maWxlPSJtaXBzL2lyaXM2Lmgg bWlwcy9jcm9zczY0LmgiCgkJeG1fZGVmaW5lcz1VU0cKCQl4bV9maWxlPSJtaXBzL3htLWlyaXM1 LmgiCgkJeG1ha2VfZmlsZT1taXBzL3gtaXJpcwoJCXRtYWtlX2ZpbGU9bWlwcy90LWNyb3NzNjQK CQkjIFNlZSBjb21tZW50IGluIG1pcHMvaXJpc1s1Nl0uaCBmaWxlcy4KCQl1c2VfY29sbGVjdDI9 eWVzCiMgCQlpZiB0ZXN0IHgkZW5hYmxlX3RocmVhZHMgPSB4eWVzOyB0aGVuCiMJCQl0aHJlYWRf ZmlsZT0naXJpeCcKIwkJZmkKCQk7OwogICAgICAgIG1pcHMtc25pLXN5c3Y0KQoJCWlmIHRlc3Qg eCRnYXMgPSB4eWVzCgkJdGhlbgoJCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzCgkJCXRoZW4KCQkJ CXRtX2ZpbGU9bWlwcy9pcmlzNWdkYi5oCgkJCWVsc2UKCQkJCXRtX2ZpbGU9Im1pcHMvc25pLXN2 cjQuaCBtaXBzL3NuaS1nYXMuaCIKCQkJZmkKCQllbHNlCgkJCXRtX2ZpbGU9bWlwcy9zbmktc3Zy NC5oCgkJZmkKCQl4bV9kZWZpbmVzPVVTRwogICAgICAgICAgICAgICAgeG1ha2VfZmlsZT1taXBz L3gtc25pLXN2cjQKICAgICAgICAgICAgICAgIHRtYWtlX2ZpbGU9bWlwcy90LW1pcHMtZ2FzCiAg ICAgICAgICAgICAgICBpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKICAgICAgICAgICAgICAgIHRo ZW4KICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2NvbGxlY3QyPXllcwogICAgICAgICAgICAg ICAgZmkKICAgICAgICAgICAgICAgIDs7CgltaXBzLXNnaS1pcml4NSopCQkjIFNHSSBTeXN0ZW0g Vi40LiwgSVJJWCA1CgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9Im1p cHMvaXJpczUuaCBtaXBzL2lyaXM1Z2FzLmgiCgkJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQkJ dGhlbgoJCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQkJZmkKCQllbHNlCgkJCXRtX2Zp bGU9bWlwcy9pcmlzNS5oCgkJZmkKCQl4bV9kZWZpbmVzPVVTRwoJCXhtX2ZpbGU9Im1pcHMveG0t aXJpczUuaCIKCQl4bWFrZV9maWxlPW1pcHMveC1pcmlzCgkJIyBtaXBzLXRmaWxlIGRvZXNuJ3Qg d29yayB5ZXQKCQl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdhcwoJCSMgU2VlIGNvbW1lbnQgaW4g bWlwcy9pcmlzNS5oIGZpbGUuCgkJdXNlX2NvbGxlY3QyPXllcwojIAkJaWYgdGVzdCB4JGVuYWJs ZV90aHJlYWRzID0geHllczsgdGhlbgojCQkJdGhyZWFkX2ZpbGU9J2lyaXgnCiMJCWZpCgkJOzsK CW1pcHMtc2dpLWlyaXg0bG9zZXIqKQkJIyBNb3N0bHkgbGlrZSBhIE1JUFMuCgkJdG1fZmlsZT0i bWlwcy9pcmlzNGxvc2VyLmggbWlwcy9pcmlzMy5oICR7dG1fZmlsZX0gbWlwcy9pcmlzNC5oIgoJ CWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYngu aCIKCQlmaQoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1taXBzL3gtaXJpcwoJCWlmIHRl c3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdhcwoJCWVs c2UKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0ZXN0 IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQojIAkJaWYg dGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgojCQkJdGhyZWFkX2ZpbGU9J2lyaXgn CiMJCWZpCgkJOzsKCW1pcHMtc2dpLWlyaXg0KikJCSMgTW9zdGx5IGxpa2UgYSBNSVBTLgoJCXRt X2ZpbGU9Im1pcHMvaXJpczMuaCAke3RtX2ZpbGV9IG1pcHMvaXJpczQuaCIKCQlpZiB0ZXN0IHgk c3RhYnMgPSB4eWVzOyB0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmgiCgkJZmkKCQl4 bV9kZWZpbmVzPVVTRwoJCXhtYWtlX2ZpbGU9bWlwcy94LWlyaXMKCQlpZiB0ZXN0IHgkZ2FzID0g eHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1taXBzL3QtbWlwcy1nYXMKCQllbHNlCgkJCWV4dHJh X3Bhc3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRkdW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAh PSB4eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVjdDI9eWVzCgkJZmkKIyAJCWlmIHRlc3QgeCRlbmFi bGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KIwkJCXRocmVhZF9maWxlPSdpcml4JwojCQlmaQoJCTs7 CgltaXBzLXNnaS0qKQkJCSMgTW9zdGx5IGxpa2UgYSBNSVBTLgoJCXRtX2ZpbGU9Im1pcHMvaXJp czMuaCAke3RtX2ZpbGV9IgoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmls ZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1t aXBzL3gtaXJpczMKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1t aXBzL3QtbWlwcy1nYXMKCQllbHNlCgkJCWV4dHJhX3Bhc3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRk dW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAhPSB4eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVj dDI9eWVzCgkJZmkKCQk7OwoJbWlwcy1kZWMtb3Nmcm9zZSopCQkjIERlY3N0YXRpb24gcnVubmlu ZyBPU0YvMSByZWZlcmVuY2UgcG9ydCB3aXRoIE9TRi9yb3NlLgoJCXRtX2ZpbGU9Im1pcHMvb3Nm cm9zZS5oICR7dG1fZmlsZX0iCgkJeG1ha2VfZmlsZT1taXBzL3gtb3Nmcm9zZQoJCXRtYWtlX2Zp bGU9bWlwcy90LW9zZnJvc2UKCQlleHRyYV9vYmpzPWhhbGZwaWMubwoJCXVzZV9jb2xsZWN0Mj15 ZXMKCQk7OwoJbWlwcy1kZWMtb3NmKikJCQkjIERlY3N0YXRpb24gcnVubmluZyBPU0YvMSBhcyBz aGlwcGVkIGJ5IERJR0lUQUwKCQl0bV9maWxlPW1pcHMvZGVjLW9zZjEuaAoJCWlmIHRlc3QgeCRz dGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXht YWtlX2ZpbGU9bWlwcy94LWRlYy1vc2YxCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJ CXRtYWtlX2ZpbGU9bWlwcy90LW1pcHMtZ2FzCgkJZWxzZQoJCQl0bWFrZV9maWxlPW1pcHMvdC11 bHRyaXgKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0 ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCTs7 CgltaXBzLWRlYy1ic2QqKSAgICAgICAgICAgICAgICAgICMgRGVjc3RhdGlvbiBydW5uaW5nIDQu NCBCU0QKICAgICAgICAgICAgICB0bV9maWxlPW1pcHMvZGVjLWJzZC5oCgkgICAgICBpZiB0ZXN0 IHgkZ2FzID0geHllcwoJICAgICAgdGhlbgoJCSAgIAl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdh cwoJICAgICAgZWxzZQoJCQl0bWFrZV9maWxlPW1pcHMvdC11bHRyaXgKCQkJZXh0cmFfcGFzc2Vz PSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkgICAgICBmaQoJICAgICAgaWYgdGVzdCB4JGdudV9s ZCAhPSB4eWVzCgkgICAgICB0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCSAgICAgIGZpCgkgICAg ICA7OwoJbWlwc2VsLSotbmV0YnNkKiB8IG1pcHMtZGVjLW5ldGJzZCopICAgICMgRGVjc3RhdGlv biBydW5uaW5nIE5ldEJTRAoJCXRtX2ZpbGU9bWlwcy9uZXRic2QuaAoJCSMgT24gTmV0QlNELCB0 aGUgaGVhZGVycyBhcmUgYWxyZWFkeSBva2F5LCBleGNlcHQgZm9yIG1hdGguaC4KCQl0bWFrZV9m aWxlPXQtbmV0YnNkCgkJOzsKICAgICAgIG1pcHMqLSotbGludXgqKSAgICAgICAgICAgICAgICAg ICAgICAgICAjIExpbnV4IE1JUFMsIGVpdGhlciBlbmRpYW4uCgkJeG1ha2VfZmlsZT14LWxpbnV4 CiAgICAgICAgICAgICAgIGNhc2UgJG1hY2hpbmUgaW4KICAgICAgICAgICAgICAgICAgICAgICBt aXBzZWwtKikgIHRtX2ZpbGU9Im1pcHMvZWxmbC5oIG1pcHMvbGludXguaCIgOzsKICAgICAgICAg ICAgICAgICAgICAgICAqKSAgICAgICAgIHRtX2ZpbGU9Im1pcHMvZWxmLmggbWlwcy9saW51eC5o IiA7OwogICAgICAgICAgICAgICBlc2FjCgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVn aW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCWdudV9sZD15ZXMKCQlnYXM9eWVzCiAJCWlmIHRl c3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KIAkJCXRocmVhZF9maWxlPSdwb3NpeCcK IAkJZmkKCQk7OwoJbWlwcyplbC0qLW9wZW5ic2QqKQkjIG1pcHMgbGl0dGxlIGVuZGlhbgoJCXRh cmdldF9jcHVfZGVmYXVsdD0iTUFTS19HQVN8TUFTS19BQklDQUxMUyIKCQk7OwoJbWlwcyotKi1v cGVuYnNkKikJCSMgbWlwcyBiaWcgZW5kaWFuCgkJdGFyZ2V0X2NwdV9kZWZhdWx0PSJNQVNLX0dB U3xNQVNLX0FCSUNBTExTIgoJCXRtX2ZpbGU9Im1pcHMvb3BlbmJzZC1iZS5oICR7dG1fZmlsZX0i CgkJOzsKCW1pcHMtc29ueS1ic2QqIHwgbWlwcy1zb255LW5ld3NvcyopCSMgU29ueSBORVdTIDM2 MDAgb3IgcmlzYy9uZXdzLgoJCXRtX2ZpbGU9Im1pcHMvbmV3czQuaCAke3RtX2ZpbGV9IgoJCWlm IHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIK CQlmaQoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1t aXBzLWdhcwoJCWVsc2UKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJ ZmkKCQlpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMK CQlmaQoJCXhtYWtlX2ZpbGU9bWlwcy94LXNvbnkKCQk7OwoJbWlwcy1zb255LXN5c3YqKQkJIyBT b255IE5FV1MgMzgwMCB3aXRoIE5FV1NPUzUuMC4KCQkJCQkjIFRoYXQgaXMgYmFzZWQgb24gc3Zy NC4KCQkjIHQtc3ZyNCBpcyBub3QgcmlnaHQgYmVjYXVzZSB0aGlzIHN5c3RlbSBkb2Vzbid0IHVz ZSBFTEYuCgkJdG1fZmlsZT0ibWlwcy9uZXdzNS5oICR7dG1fZmlsZX0iCgkJaWYgdGVzdCB4JHN0 YWJzID0geHllczsgdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IGRieC5oIgoJCWZpCgkJeG1f ZGVmaW5lcz1VU0cKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1t aXBzL3QtbWlwcy1nYXMKCQllbHNlCgkJCWV4dHJhX3Bhc3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRk dW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAhPSB4eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVj dDI9eWVzCgkJZmkKCQk7OwoJbWlwcy10YW5kZW0tc3lzdjQqKQkJIyBUYW5kZW0gUzIgcnVubmlu ZyBOb25TdG9wIFVYCgkJdG1fZmlsZT0ibWlwcy9zdnI0LTUuaCBtaXBzL3N2cjQtdC5oIgoJCWlm IHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIK CQlmaQoJCXhtX2RlZmluZXM9VVNHCgkJeG1ha2VfZmlsZT1taXBzL3gtc3lzdgoJCWlmIHRlc3Qg eCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdhcwoJCQlleHRy YV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bWlwcy90 LW1pcHMKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0 ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCTs7 CgltaXBzLSotdWx0cml4KiB8IG1pcHMtZGVjLW1hY2gzKQkjIERlY3N0YXRpb24uCgkJdG1fZmls ZT0ibWlwcy91bHRyaXguaCAke3RtX2ZpbGV9IgoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRo ZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXhtYWtlX2ZpbGU9bWlwcy94 LXVsdHJpeAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMv dC1taXBzLWdhcwoJCWVsc2UKCQkJdG1ha2VfZmlsZT1taXBzL3QtdWx0cml4CgkJCWV4dHJhX3Bh c3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRkdW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAhPSB4 eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVjdDI9eWVzCgkJZmkKCSAgICAgICAgOzsKY2hhbmdlcXVv dGUoLClkbmwKCW1pcHMtKi1yaXNjb3NbNTY3ODldYnNkKikKY2hhbmdlcXVvdGUoWyxdKWRubAoJ CXRtX2ZpbGU9bWlwcy9ic2QtNS5oCSMgTUlQUyBCU0QgNC4zLCBSSVNDLU9TIDUuMAoJCWlmIHRl c3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlm aQoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1ic2Qt Z2FzCgkJZWxzZQoJCQl0bWFrZV9maWxlPW1pcHMvdC1ic2QKCQkJZXh0cmFfcGFzc2VzPSJtaXBz LXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVu CgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJICAgICAgICA7OwpjaGFuZ2VxdW90ZSgsKWRubAoJ bWlwcy0qLWJzZCogfCBtaXBzLSotcmlzY29zYnNkKiB8IG1pcHMtKi1yaXNjb3NbMTIzNF1ic2Qq KQpjaGFuZ2VxdW90ZShbLF0pZG5sCgkJdG1fZmlsZT0ibWlwcy9ic2QtNC5oICR7dG1fZmlsZX0i ICMgTUlQUyBCU0QgNC4zLCBSSVNDLU9TIDQuMAoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRo ZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCWlmIHRlc3QgeCRnYXMgPSB4 eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1ic2QtZ2FzCgkJZWxzZQoJCQl0bWFrZV9m aWxlPW1pcHMvdC1ic2QKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJ ZmkKCQlpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMK CQlmaQoJICAgICAgICA7OwpjaGFuZ2VxdW90ZSgsKWRubAoJbWlwcy0qLXJpc2Nvc1s1Njc4OV1z eXN2NCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPW1pcHMvc3ZyNC01LmgJIyBNSVBT IFN5c3RlbSBWLjQuLCBSSVNDLU9TIDUuMAoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4K CQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXhtYWtlX2ZpbGU9bWlwcy94LXN5 c3YKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1taXBzL3Qtc3Zy NC1nYXMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bWlwcy90LXN2cjQKCQkJZXh0cmFfcGFzc2VzPSJt aXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0 aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCgltaXBz LSotc3lzdjQqIHwgbWlwcy0qLXJpc2Nvc1sxMjM0XXN5c3Y0KiB8IG1pcHMtKi1yaXNjb3NzeXN2 NCopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPSJtaXBzL3N2cjQtNC5oICR7dG1fZmls ZX0iCgkJaWYgdGVzdCB4JHN0YWJzID0geHllczsgdGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9 IGRieC5oIgoJCWZpCgkJeG1fZGVmaW5lcz1VU0cKCQl4bWFrZV9maWxlPW1pcHMveC1zeXN2CgkJ aWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9bWlwcy90LXN2cjQtZ2Fz CgkJZWxzZQoJCQl0bWFrZV9maWxlPW1pcHMvdC1zdnI0CgkJCWV4dHJhX3Bhc3Nlcz0ibWlwcy10 ZmlsZSBtaXBzLXRkdW1wIgoJCWZpCgkJaWYgdGVzdCB4JGdudV9sZCAhPSB4eWVzCgkJdGhlbgoJ CQl1c2VfY29sbGVjdDI9eWVzCgkJZmkKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJbWlwcy0qLXJp c2Nvc1s1Njc4OV1zeXN2KikKY2hhbmdlcXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9bWlwcy9zdnIz LTUuaAkjIE1JUFMgU3lzdGVtIFYuMywgUklTQy1PUyA1LjAKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4 eWVzOyB0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmgiCgkJZmkKCQl4bV9kZWZpbmVz PVVTRwoJCXhtYWtlX2ZpbGU9bWlwcy94LXN5c3YKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRo ZW4KCQkJdG1ha2VfZmlsZT1taXBzL3Qtc3ZyMy1nYXMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bWlw cy90LXN2cjMKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlp ZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJ CTs7CgltaXBzLSotc3lzdiogfCBtaXBzLSotcmlzY29zKnN5c3YqKQoJCXRtX2ZpbGU9Im1pcHMv c3ZyMy00LmggJHt0bV9maWxlfSIKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzOyB0aGVuCgkJCXRt X2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmgiCgkJZmkKCQl4bV9kZWZpbmVzPVVTRwoJCXhtYWtlX2Zp bGU9bWlwcy94LXN5c3YKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmls ZT1taXBzL3Qtc3ZyMy1nYXMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9bWlwcy90LXN2cjMKCQkJZXh0 cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlpZiB0ZXN0IHgkZ251X2xk ICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJCTs7CmNoYW5nZXF1b3Rl KCwpZG5sCgltaXBzLSotcmlzY29zWzU2Nzg5XSopCQkjIERlZmF1bHQgTUlQUyBSSVNDLU9TIDUu MC4KY2hhbmdlcXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9bWlwcy9taXBzLTUuaAoJCWlmIHRlc3Qg eCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJ CWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPW1pcHMvdC1taXBzLWdh cwoJCWVsc2UKCQkJZXh0cmFfcGFzc2VzPSJtaXBzLXRmaWxlIG1pcHMtdGR1bXAiCgkJZmkKCQlp ZiB0ZXN0IHgkZ251X2xkICE9IHh5ZXMKCQl0aGVuCgkJCXVzZV9jb2xsZWN0Mj15ZXMKCQlmaQoJ CTs7CgltaXBzLSotZ251KikKCQk7OwoJbWlwc2VsLSotZWNvZmYqKQoJCXRtX2ZpbGU9bWlwcy9l Y29mZmwuaAoJCWlmIHRlc3QgeCRzdGFicyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9m aWxlfSBkYnguaCIKCQlmaQoJCXRtYWtlX2ZpbGU9bWlwcy90LWVjb2ZmCgkJOzsKCW1pcHMtKi1l Y29mZiopCgkJdG1fZmlsZT0iZ29mYXN0LmggbWlwcy9lY29mZi5oIgoJCWlmIHRlc3QgeCRzdGFi cyA9IHh5ZXM7IHRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlmaQoJCXRtYWtl X2ZpbGU9bWlwcy90LWVjb2ZmCgkJOzsKCW1pcHNlbC0qLWVsZiopCgkJdG1fZmlsZT0ibWlwcy9l bGZsLmgiCgkJdG1ha2VfZmlsZT1taXBzL3QtZWxmCgkJOzsKCW1pcHMtKi1lbGYqKQoJCXRtX2Zp bGU9Im1pcHMvZWxmLmgiCgkJdG1ha2VfZmlsZT1taXBzL3QtZWxmCgkJOzsKCW1pcHM2NGVsLSot ZWxmKikKCQl0bV9maWxlPSJtaXBzL2VsZmw2NC5oIgoJCXRtYWtlX2ZpbGU9bWlwcy90LWVsZgoJ CTs7CgltaXBzNjRvcmlvbmVsLSotZWxmKikKCQl0bV9maWxlPSJtaXBzL2VsZm9yaW9uLmggbWlw cy9lbGZsNjQuaCIKCQl0bWFrZV9maWxlPW1pcHMvdC1lbGYKCQk7OwoJbWlwczY0LSotZWxmKikK CQl0bV9maWxlPSJtaXBzL2VsZjY0LmgiCgkJdG1ha2VfZmlsZT1taXBzL3QtZWxmCgkJOzsKCW1p cHM2NG9yaW9uLSotZWxmKikKCQl0bV9maWxlPSJtaXBzL2VsZm9yaW9uLmggbWlwcy9lbGY2NC5o IgoJCXRtYWtlX2ZpbGU9bWlwcy90LWVsZgoJCTs7CgltaXBzNjRvcmlvbi0qLXJ0ZW1zKikKCQl0 bV9maWxlPSJtaXBzL2VsZm9yaW9uLmggbWlwcy9lbGY2NC5oIG1pcHMvcnRlbXM2NC5oIgoJCXRt YWtlX2ZpbGU9Im1pcHMvdC1lbGYgdC1ydGVtcyIKCQk7OwoJbWlwc3R4MzllbC0qLWVsZiopCgkJ dG1fZmlsZT0ibWlwcy9yMzkwMC5oIG1pcHMvZWxmbC5oIG1pcHMvYWJpNjQuaCIKCQl0bWFrZV9m aWxlPW1pcHMvdC1yMzkwMAoJCTs7CgltaXBzdHgzOS0qLWVsZiopCgkJdG1fZmlsZT0ibWlwcy9y MzkwMC5oIG1pcHMvZWxmLmggbWlwcy9hYmk2NC5oIgoJCXRtYWtlX2ZpbGU9bWlwcy90LXIzOTAw CgkJOzsKCW1pcHMtKi0qKQkJCQkjIERlZmF1bHQgTUlQUyBSSVNDLU9TIDQuMC4KCQlpZiB0ZXN0 IHgkc3RhYnMgPSB4eWVzOyB0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4LmgiCgkJZmkK CQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT1taXBzL3QtbWlwcy1n YXMKCQllbHNlCgkJCWV4dHJhX3Bhc3Nlcz0ibWlwcy10ZmlsZSBtaXBzLXRkdW1wIgoJCWZpCgkJ aWYgdGVzdCB4JGdudV9sZCAhPSB4eWVzCgkJdGhlbgoJCQl1c2VfY29sbGVjdDI9eWVzCgkJZmkK CQk7OwoJbW4xMDIwMC0qLSopCgkJZmxvYXRfZm9ybWF0PWkzMgoJCWNwdV90eXBlPW1uMTAyMDAK CQl0bV9maWxlPSJtbjEwMjAwL21uMTAyMDAuaCIKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzCgkJ dGhlbgoJCQl0bV9maWxlPSIke3RtX2ZpbGV9IGRieC5oIgoJCWZpCgkJdXNlX2NvbGxlY3QyPW5v CgkJOzsKCW1uMTAzMDAtKi0qKQoJCWNwdV90eXBlPW1uMTAzMDAKCQl0bV9maWxlPSJtbjEwMzAw L21uMTAzMDAuaCIKCQlpZiB0ZXN0IHgkc3RhYnMgPSB4eWVzCgkJdGhlbgoJCQl0bV9maWxlPSIk e3RtX2ZpbGV9IGRieC5oIgoJCWZpCgkJdXNlX2NvbGxlY3QyPW5vCgkJOzsKCW5zMzJrLWVuY29y ZS1ic2QqKQoJCXRtX2ZpbGU9bnMzMmsvZW5jb3JlLmgKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsK CW5zMzJrLXNlcXVlbnQtYnNkKikKCQl0bV9maWxlPW5zMzJrL3NlcXVlbnQuaAoJCXVzZV9jb2xs ZWN0Mj15ZXMKCQk7OwoJbnMzMmstdGVrNjEwMC1ic2QqKQoJCXRtX2ZpbGU9bnMzMmsvdGVrNjEw MC5oCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CgluczMyay10ZWs2MjAwLWJzZCopCgkJdG1fZmls ZT1uczMyay90ZWs2MjAwLmgKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKIyBUaGlzIGhhcyBub3Qg YmVlbiB1cGRhdGVkIHRvIEdDQyAyLgojCW5zMzJrLW5zLWdlbml4KikKIwkJeG1fZGVmaW5lcz1V U0cKIwkJeG1ha2VfZmlsZT1uczMyay94LWdlbml4CiMJCXRtX2ZpbGU9bnMzMmsvZ2VuaXguaAoj CQl1c2VfY29sbGVjdDI9eWVzCiMJCTs7CgluczMyay1tZXJsaW4tKikKCQl0bV9maWxlPW5zMzJr L21lcmxpbi5oCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CgluczMyay1wYzUzMi1tYWNoKikKCQl0 bV9maWxlPW5zMzJrL3BjNTMyLW1hY2guaAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJbnMzMmst cGM1MzItbWluaXgqKQoJCXRtX2ZpbGU9bnMzMmsvcGM1MzItbWluLmgKCQl4bV9maWxlPSJuczMy ay94bS1wYzUzMi1taW4uaCAke3htLWZpbGV9IgoJCXhtX2RlZmluZXM9VVNHCgkJdXNlX2NvbGxl Y3QyPXllcwoJCTs7CgluczMyay0qLW5ldGJzZCopCgkJdG1fZmlsZT1uczMyay9uZXRic2QuaAoJ CXhtX2ZpbGU9Im5zMzJrL3htLW5ldGJzZC5oICR7eG1fZmlsZX0iCgkJIyBPbiBOZXRCU0QsIHRo ZSBoZWFkZXJzIGFyZSBhbHJlYWR5IG9rYXksIGV4Y2VwdCBmb3IgbWF0aC5oLgoJCXRtYWtlX2Zp bGU9dC1uZXRic2QKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKICAgICAgICBwZHAxMS0qLWJzZCkK CQl0bV9maWxlPSIke3RtX2ZpbGV9IHBkcDExLzJic2QuaCIKICAgICAgICAgICAgICAgIDs7CiAg ICAgICAgcGRwMTEtKi0qKQoJCTs7CiAgICAgICAgYXZyLSotKikKCQk7OwoJbnMzMmstKi1vcGVu YnNkKikKCQkjIE5vdGhpbmcgc3BlY2lhbAoJCTs7CiMgVGhpcyBoYXMgbm90IGJlZW4gdXBkYXRl ZCB0byBHQ0MgMi4KIwlweXJhbWlkLSotKikKIwkJY3B1X3R5cGU9cHlyCiMJCXhtYWtlX2ZpbGU9 cHlyL3gtcHlyCiMJCXVzZV9jb2xsZWN0Mj15ZXMKIwkJOzsKCiAgCXBqKi1saW51eCopCgkJdG1f ZmlsZT0ic3ZyNC5oIHBqL2xpbnV4LmggJHt0bV9maWxlfSIKIAkJOzsKICAJcGotKikKIAkJOzsK ICAJcGpsLSopCgkJdG1fZmlsZT0ic3ZyNC5oIHBqL3BqbC5oICR7dG1fZmlsZX0iCiAJCTs7CgoJ cm9tcC0qLWFvcyopCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7Cglyb21wLSotbWFjaCopCgkJeG1h a2VfZmlsZT1yb21wL3gtbWFjaAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJcm9tcC0qLW9wZW5i c2QqKQoJCSMgTm90aGluZyBzcGVjaWFsCgkJOzsKCXBvd2VycGMtKi1vcGVuYnNkKikKCQl0bWFr ZV9maWxlPSIke3RtYWtlX2ZpbGV9IHJzNjAwMC90LXJzNjAwMCByczYwMDAvdC1vcGVuYnNkIgoJ CTs7Cglwb3dlcnBjLSotYmVvcyopCgkJY3B1X3R5cGU9cnM2MDAwCgkJdG1fZmlsZT1yczYwMDAv YmVvcy5oCgkJeG1fZmlsZT1yczYwMDAveG0tYmVvcy5oCgkJdG1ha2VfZmlsZT1yczYwMDAvdC1i ZW9zCgkJeG1ha2VfZmlsZT1yczYwMDAveC1iZW9zCgkJOzsKCXBvd2VycGMtKi1zeXN2KiB8IHBv d2VycGMtKi1lbGYqKQoJCXRtX2ZpbGU9cnM2MDAwL3N5c3Y0LmgKCQl4bV9maWxlPSJyczYwMDAv eG0tc3lzdjQuaCIKCQl4bV9kZWZpbmVzPSJVU0cgUE9TSVgiCgkJZXh0cmFfaGVhZGVycz1wcGMt YXNtLmgKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT0icnM2MDAw L3QtcHBjb3MgcnM2MDAwL3QtcHBjY29tbSIKCQllbHNlCgkJCXRtYWtlX2ZpbGU9InJzNjAwMC90 LXBwYyByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJeG1ha2VfZmlsZT1yczYwMDAveC1zeXN2NAoJ CTs7Cglwb3dlcnBjLSotZWFiaWFpeCopCgkJdG1fZmlsZT1yczYwMDAvZWFiaWFpeC5oCgkJdG1h a2VfZmlsZT0icnM2MDAwL3QtcHBjZ2FzIHJzNjAwMC90LXBwY2NvbW0iCgkJZXh0cmFfaGVhZGVy cz1wcGMtYXNtLmgKCQk7OwoJcG93ZXJwYy0qLWVhYmlzaW0qKQoJCXRtX2ZpbGU9cnM2MDAwL2Vh YmlzaW0uaAoJCXRtYWtlX2ZpbGU9InJzNjAwMC90LXBwY2dhcyByczYwMDAvdC1wcGNjb21tIgoJ CWV4dHJhX2hlYWRlcnM9cHBjLWFzbS5oCgkJOzsKCXBvd2VycGMtKi1lYWJpKikKCQl0bV9maWxl PXJzNjAwMC9lYWJpLmgKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmls ZT0icnM2MDAwL3QtcHBjZ2FzIHJzNjAwMC90LXBwY2NvbW0iCgkJZWxzZQoJCQl0bWFrZV9maWxl PSJyczYwMDAvdC1wcGMgcnM2MDAwL3QtcHBjY29tbSIKCQlmaQoJCWV4dHJhX2hlYWRlcnM9cHBj LWFzbS5oCgkJOzsKCXBvd2VycGMtKi1ydGVtcyopCgkJdG1fZmlsZT1yczYwMDAvcnRlbXMuaAoJ CWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCSAgICAgdG1ha2VfZmlsZT0icnM2MDAwL3Qt cHBjZ2FzIHQtcnRlbXMgcnM2MDAwL3QtcHBjY29tbSIKCQllbHNlCgkJICAgICB0bWFrZV9maWxl PSJyczYwMDAvdC1wcGMgdC1ydGVtcyByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJZXh0cmFfaGVh ZGVycz1wcGMtYXNtLmgKCQk7OwoJcG93ZXJwYy0qLWxpbnV4LWdudWxpYmMxKQoJCXRtX2ZpbGU9 cnM2MDAwL2xpbnV4LmgKCQl4bV9maWxlPXJzNjAwMC94bS1zeXN2NC5oCgkJb3V0X2ZpbGU9cnM2 MDAwL3JzNjAwMC5jCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9 InJzNjAwMC90LXBwY29zIHQtbGludXggdC1saW51eC1nbnVsaWJjMSByczYwMDAvdC1wcGNjb21t IgoJCWVsc2UKCQkJdG1ha2VfZmlsZT0icnM2MDAwL3QtcHBjIHQtbGludXggdC1saW51eC1nbnVs aWJjMSByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJeG1ha2VfZmlsZT14LWxpbnV4CgkJZXh0cmFf cGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCWV4dHJh X2hlYWRlcnM9cHBjLWFzbS5oCgkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhl bgoJCQl0aHJlYWRfZmlsZT0ncG9zaXgnCgkJZmkKCQk7OwoJcG93ZXJwYy0qLWxpbnV4LWdudSop CgkJdG1fZmlsZT1yczYwMDAvbGludXguaAoJCXhtX2ZpbGU9InJzNjAwMC94bS1zeXN2NC5oIgoJ CXhtX2RlZmluZXM9IlVTRyAke3htX2RlZmluZXN9IgoJCW91dF9maWxlPXJzNjAwMC9yczYwMDAu YwoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPSJyczYwMDAvdC1w cGNvcyB0LWxpbnV4IHJzNjAwMC90LXBwY2NvbW0iCgkJZWxzZQoJCQl0bWFrZV9maWxlPSJyczYw MDAvdC1wcGMgdC1saW51eCByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJeG1ha2VfZmlsZT14LWxp bnV4CgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5k Uy5vIgoJCWV4dHJhX2hlYWRlcnM9cHBjLWFzbS5oCgkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRz ID0geHllczsgdGhlbgoJCQl0aHJlYWRfZmlsZT0ncG9zaXgnCgkJZmkKCQk7OwogICAgICAgIHBv d2VycGMtd3JzLXZ4d29ya3MqKQogICAgICAgICAgICAgICAgY3B1X3R5cGU9cnM2MDAwCgkJeG1f ZmlsZT0icnM2MDAwL3htLXN5c3Y0LmgiCgkJeG1fZGVmaW5lcz0iVVNHIFBPU0lYIgogICAgICAg ICAgICAgICAgdG1fZmlsZT1yczYwMDAvdnhwcGMuaAogICAgICAgICAgICAgICAgdG1ha2VfZmls ZT0icnM2MDAwL3QtcHBjZ2FzIHJzNjAwMC90LXBwY2NvbW0iCgkJZXh0cmFfaGVhZGVycz1wcGMt YXNtLmgKCQl0aHJlYWRfZmlsZT0ndnh3b3JrcycKICAgICAgICAgICAgICAgIDs7Cglwb3dlcnBj bGUtKi1zeXN2KiB8IHBvd2VycGNsZS0qLWVsZiopCgkJdG1fZmlsZT1yczYwMDAvc3lzdjRsZS5o CgkJeG1fZmlsZT0icnM2MDAwL3htLXN5c3Y0LmgiCgkJeG1fZGVmaW5lcz0iVVNHIFBPU0lYIgoJ CWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhlbgoJCQl0bWFrZV9maWxlPSJyczYwMDAvdC1wcGNv cyByczYwMDAvdC1wcGNjb21tIgoJCWVsc2UKCQkJdG1ha2VfZmlsZT0icnM2MDAwL3QtcHBjIHJz NjAwMC90LXBwY2NvbW0iCgkJZmkKCQl4bWFrZV9maWxlPXJzNjAwMC94LXN5c3Y0CgkJZXh0cmFf aGVhZGVycz1wcGMtYXNtLmgKCQk7OwoJcG93ZXJwY2xlLSotZWFiaXNpbSopCgkJdG1fZmlsZT1y czYwMDAvZWFiaWxlc2ltLmgKCQl0bWFrZV9maWxlPSJyczYwMDAvdC1wcGNnYXMgcnM2MDAwL3Qt cHBjY29tbSIKCQlleHRyYV9oZWFkZXJzPXBwYy1hc20uaAoJCTs7Cglwb3dlcnBjbGUtKi1lYWJp KikKCQl0bV9maWxlPXJzNjAwMC9lYWJpbGUuaAoJCWlmIHRlc3QgeCRnYXMgPSB4eWVzCgkJdGhl bgoJCQl0bWFrZV9maWxlPSJyczYwMDAvdC1wcGNnYXMgcnM2MDAwL3QtcHBjY29tbSIKCQllbHNl CgkJCXRtYWtlX2ZpbGU9InJzNjAwMC90LXBwYyByczYwMDAvdC1wcGNjb21tIgoJCWZpCgkJZXh0 cmFfaGVhZGVycz1wcGMtYXNtLmgKCQk7OwogICAgICAgIHBvd2VycGNsZS0qLXdpbm50KiApCiAg ICAgICAgICAgICAgICB0bV9maWxlPXJzNjAwMC93aW4tbnQuaAogICAgICAgICAgICAgICAgdG1h a2VfZmlsZT1yczYwMDAvdC13aW5udAojICAgICAgICAgICAgICAgZXh0cmFfb2Jqcz1wZS5vCiAJ CWlmIHRlc3QgeCRlbmFibGVfdGhyZWFkcyA9IHh5ZXM7IHRoZW4KCQkJdGhyZWFkX2ZpbGU9J3dp bjMyJwoJCWZpCgkJZXh0cmFfaGVhZGVycz1wcGMtYXNtLmgKCQk7OwoJcG93ZXJwY2xlLSotcGUg fCBwb3dlcnBjbGUtKi1jeWd3aW4qKQoJCXRtX2ZpbGU9cnM2MDAwL2N5Z3dpbi5oCgkJeG1fZmls ZT0icnM2MDAwL3htLWN5Z3dpbi5oICR7eG1fZmlsZX0iCgkJdG1ha2VfZmlsZT1yczYwMDAvdC13 aW5udAoJCXhtYWtlX2ZpbGU9cnM2MDAwL3gtY3lnd2luCiMJCWV4dHJhX29ianM9cGUubwogCQlp ZiB0ZXN0IHgkZW5hYmxlX3RocmVhZHMgPSB4eWVzOyB0aGVuCgkJCXRocmVhZF9maWxlPSd3aW4z MicKCQlmaQoJCWV4ZWV4dD0uZXhlCgkJZXh0cmFfaGVhZGVycz1wcGMtYXNtLmgKCQk7OwoJcG93 ZXJwY2xlLSotc29sYXJpczIqKQoJCXRtX2ZpbGU9cnM2MDAwL3NvbDIuaAoJCXhtX2ZpbGU9InJz NjAwMC94bS1zeXN2NC5oIgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCIKCQlpZiB0ZXN0IHgkZ2Fz ID0geHllcwoJCXRoZW4KCQkJdG1ha2VfZmlsZT0icnM2MDAwL3QtcHBjb3MgcnM2MDAwL3QtcHBj Y29tbSIKCQllbHNlCgkJCXRtYWtlX2ZpbGU9InJzNjAwMC90LXBwYyByczYwMDAvdC1wcGNjb21t IgoJCWZpCgkJeG1ha2VfZmlsZT1yczYwMDAveC1zeXN2NAoJCWV4dHJhX2hlYWRlcnM9cHBjLWFz bS5oCgkJOzsKY2hhbmdlcXVvdGUoLClkbmwKCXJzNjAwMC1pYm0tYWl4My5bMDFdKikKY2hhbmdl cXVvdGUoWyxdKWRubAoJCXRtX2ZpbGU9cnM2MDAwL2FpeDMxLmgKCQl4bWFrZV9maWxlPXJzNjAw MC94LWFpeDMxCgkJZmxvYXRfZm9ybWF0PW5vbmUKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKY2hh bmdlcXVvdGUoLClkbmwKCXJzNjAwMC1pYm0tYWl4My4yLls0NTY3ODldKiB8IHBvd2VycGMtaWJt LWFpeDMuMi5bNDU2Nzg5XSopCmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPXJzNjAwMC9h aXgzbmV3YXMuaAoJCWlmIHRlc3QgeCRob3N0ICE9IHgkdGFyZ2V0CgkJdGhlbgoJCQl0bWFrZV9m aWxlPXJzNjAwMC90LXhuZXdhcwoJCWVsc2UKCQkJdG1ha2VfZmlsZT1yczYwMDAvdC1uZXdhcwoJ CWZpCgkJZmxvYXRfZm9ybWF0PW5vbmUKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKY2hhbmdlcXVv dGUoLClkbmwKCXJzNjAwMC1pYm0tYWl4NC5bMTJdKiB8IHBvd2VycGMtaWJtLWFpeDQuWzEyXSop CmNoYW5nZXF1b3RlKFssXSlkbmwKCQl0bV9maWxlPXJzNjAwMC9haXg0MS5oCgkJaWYgdGVzdCB4 JGhvc3QgIT0geCR0YXJnZXQKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9cnM2MDAwL3QteG5ld2FzCgkJ ZWxzZQoJCQl0bWFrZV9maWxlPXJzNjAwMC90LW5ld2FzCgkJZmkKCQlpZiB0ZXN0ICIkZ251X2xk IiA9IHllcwoJCXRoZW4KCQkJeG1ha2VfZmlsZT1yczYwMDAveC1haXg0MS1nbGQKCQllbHNlCgkJ CXhtYWtlX2ZpbGU9cnM2MDAwL3gtYWl4NDEKCQlmaQoJCWZsb2F0X2Zvcm1hdD1ub25lCgkJdXNl X2NvbGxlY3QyPXllcwoJCTs7CmNoYW5nZXF1b3RlKCwpZG5sCglyczYwMDAtaWJtLWFpeDQuWzM0 NTY3ODldKiB8IHBvd2VycGMtaWJtLWFpeDQuWzM0NTY3ODldKikKY2hhbmdlcXVvdGUoWyxdKWRu bAoJCXRtX2ZpbGU9cnM2MDAwL2FpeDQzLmgKCQlpZiB0ZXN0IHgkaG9zdCAhPSB4JHRhcmdldAoJ CXRoZW4KCQkJdG1ha2VfZmlsZT1yczYwMDAvdC14YWl4NDMKCQllbHNlCgkJCXRtYWtlX2ZpbGU9 cnM2MDAwL3QtYWl4NDMKCQlmaQoJCXhtYWtlX2ZpbGU9cnM2MDAwL3gtYWl4NDMKCQlmbG9hdF9m b3JtYXQ9bm9uZQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwpjaGFuZ2VxdW90ZSgsKWRubAoJcnM2 MDAwLWlibS1haXhbNTY3ODldLiogfCBwb3dlcnBjLWlibS1haXhbNTY3ODldLiopCmNoYW5nZXF1 b3RlKFssXSlkbmwKCQl0bV9maWxlPXJzNjAwMC9haXg0My5oCgkJaWYgdGVzdCB4JGhvc3QgIT0g eCR0YXJnZXQKCQl0aGVuCgkJCXRtYWtlX2ZpbGU9cnM2MDAwL3QteGFpeDQzCgkJZWxzZQoJCQl0 bWFrZV9maWxlPXJzNjAwMC90LWFpeDQzCgkJZmkKCQl4bWFrZV9maWxlPXJzNjAwMC94LWFpeDQz CgkJZmxvYXRfZm9ybWF0PW5vbmUKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCXJzNjAwMC1pYm0t YWl4KikKCQlmbG9hdF9mb3JtYXQ9bm9uZQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJcnM2MDAw LWJ1bGwtYm9zeCkKCQlmbG9hdF9mb3JtYXQ9bm9uZQoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJ cnM2MDAwLSotbWFjaCopCgkJdG1fZmlsZT1yczYwMDAvbWFjaC5oCgkJeG1fZmlsZT0iJHt4bV9m aWxlfSByczYwMDAveG0tbWFjaC5oIgoJCXhtYWtlX2ZpbGU9cnM2MDAwL3gtbWFjaAoJCXVzZV9j b2xsZWN0Mj15ZXMKCQk7OwoJcnM2MDAwLSotbHlueG9zKikKCQl0bV9maWxlPXJzNjAwMC9seW54 LmgKCQl4bV9maWxlPXJzNjAwMC94bS1seW54LmgKCQl0bWFrZV9maWxlPXJzNjAwMC90LXJzNjAw MAoJCXhtYWtlX2ZpbGU9cnM2MDAwL3gtbHlueAoJCXVzZV9jb2xsZWN0Mj15ZXMKCQk7OwoJc2gt Ki1lbGYqKQoJCXRtX2ZpbGU9c2gvZWxmLmgKCQlmbG9hdF9mb3JtYXQ9c2gKCQk7OwoJc2gtKi1y dGVtc2VsZiopCgkJdG1ha2VfZmlsZT0ic2gvdC1zaCB0LXJ0ZW1zIgoJCXRtX2ZpbGU9c2gvcnRl bXNlbGYuaAoJCWZsb2F0X2Zvcm1hdD1zaAoJCTs7CglzaC0qLXJ0ZW1zKikKCQl0bWFrZV9maWxl PSJzaC90LXNoIHQtcnRlbXMiCgkJdG1fZmlsZT1zaC9ydGVtcy5oCgkJZmxvYXRfZm9ybWF0PXNo CgkJOzsKCXNoLSotKikKCQlmbG9hdF9mb3JtYXQ9c2gKCQk7OwoJc3BhcmMtdHRpLSopCgkJdG1f ZmlsZT1zcGFyYy9wYmQuaAoJCXhtX2ZpbGU9InhtLWFsbG9jYS5oICR7eG1fZmlsZX0iCgkJeG1f ZGVmaW5lcz1VU0cKCQk7OwoJc3BhcmMtd3JzLXZ4d29ya3MqIHwgc3BhcmNsaXRlLXdycy12eHdv cmtzKikKCQl0bV9maWxlPXNwYXJjL3Z4c3BhcmMuaAoJCXRtYWtlX2ZpbGU9c3BhcmMvdC12eHNw YXJjCgkJdXNlX2NvbGxlY3QyPXllcwoJCXRocmVhZF9maWxlPSd2eHdvcmtzJwoJCTs7CglzcGFy Yy0qLWFvdXQqKQoJCXRtYWtlX2ZpbGU9c3BhcmMvdC1zcGFyY2JhcmUKCQl0bV9maWxlPSJzcGFy Yy9hb3V0LmggbGliZ2xvc3MuaCIKCQk7OwoJc3BhcmMtKi1uZXRic2QqKQoJCXRtX2ZpbGU9c3Bh cmMvbmV0YnNkLmgKCQl0bWFrZV9maWxlPXQtbmV0YnNkCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7 CglzcGFyYy0qLW9wZW5ic2QqKQoJCSMgd2UgbmVlZCBjb2xsZWN0MiB1bnRpbCBvdXIgYnVnIGlz IGZpeGVkLi4uCgkJdXNlX2NvbGxlY3QyPXllcwoJCTs7CglzcGFyYy0qLWJzZCopCgkJdG1fZmls ZT1zcGFyYy9ic2QuaAoJCTs7CglzcGFyYy0qLWVsZiopCgkJdG1fZmlsZT1zcGFyYy9lbGYuaAoJ CXRtYWtlX2ZpbGU9c3BhcmMvdC1lbGYKCQlleHRyYV9wYXJ0cz0iY3J0aS5vIGNydG4ubyBjcnRi ZWdpbi5vIGNydGVuZC5vIgoJCSNmbG9hdF9mb3JtYXQ9aTEyOAoJCWZsb2F0X2Zvcm1hdD1pNjQK CQk7OwoJc3BhcmMtKi1saW51eC1nbnVhb3V0KikJCSMgU3BhcmMncyBydW5uaW5nIEdOVS9MaW51 eCwgYS5vdXQKCQl4bV9maWxlPSIke3htX2ZpbGV9IHNwYXJjL3htLWxpbnV4LmgiCgkJdG1fZmls ZT1zcGFyYy9saW51eC1hb3V0LmgKCQl4bWFrZV9maWxlPXgtbGludXgKCQlnbnVfbGQ9eWVzCgkJ OzsKCXNwYXJjLSotbGludXgtZ251bGliYzEqKQkjIFNwYXJjJ3MgcnVubmluZyBHTlUvTGludXgs IGxpYmM1CgkJeG1fZmlsZT0iJHt4bV9maWxlfSBzcGFyYy94bS1saW51eC5oIgoJCXhtYWtlX2Zp bGU9eC1saW51eAoJCXRtX2ZpbGU9c3BhcmMvbGludXguaAoJCXRtYWtlX2ZpbGU9InQtbGludXgg dC1saW51eC1nbnVsaWJjMSIKCQlleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRiZWdpblMubyBj cnRlbmQubyBjcnRlbmRTLm8iCgkJZ251X2xkPXllcwoJCWZsb2F0X2Zvcm1hdD1zcGFyYwoJCTs7 CglzcGFyYy0qLWxpbnV4LWdudSopCQkjIFNwYXJjJ3MgcnVubmluZyBHTlUvTGludXgsIGxpYmM2 CgkJeG1fZmlsZT0iJHt4bV9maWxlfSBzcGFyYy94bS1saW51eC5oIgoJCXhtYWtlX2ZpbGU9eC1s aW51eAoJCXRtX2ZpbGU9c3BhcmMvbGludXguaAoJCXRtYWtlX2ZpbGU9InQtbGludXgiCgkJZXh0 cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVnaW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCWdu dV9sZD15ZXMKIAkJaWYgdGVzdCB4JGVuYWJsZV90aHJlYWRzID0geHllczsgdGhlbgogCQkJdGhy ZWFkX2ZpbGU9J3Bvc2l4JwogCQlmaQoJCWZsb2F0X2Zvcm1hdD1zcGFyYwoJCTs7CglzcGFyYy0q LWx5bnhvcyopCgkJaWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9c3BhcmMv bHlueC5oCgkJZWxzZQoJCQl0bV9maWxlPXNwYXJjL2x5bngtbmcuaAoJCWZpCgkJeG1fZmlsZT1z cGFyYy94bS1seW54LmgKCQl0bWFrZV9maWxlPXNwYXJjL3Qtc3Vub3M0MQoJCXhtYWtlX2ZpbGU9 eC1seW54CgkJOzsKCXNwYXJjLSotcnRlbXNhb3V0KikKCQl0bWFrZV9maWxlPSJzcGFyYy90LXNw YXJjYmFyZSB0LXJ0ZW1zIgoJCXRtX2ZpbGU9c3BhcmMvcnRlbXMuaAoJCTs7CglzcGFyYy0qLXJ0 ZW1zKnxzcGFyYy0qLXJ0ZW1zZWxmKikKCQl0bV9maWxlPSJzcGFyYy9ydGVtc2VsZi5oIgoJCXRt YWtlX2ZpbGU9InNwYXJjL3QtZWxmIHQtcnRlbXMiCgkJZXh0cmFfcGFydHM9ImNydGkubyBjcnRu Lm8gY3J0YmVnaW4ubyBjcnRlbmQubyIKCQkjZmxvYXRfZm9ybWF0PWkxMjgKCQlmbG9hdF9mb3Jt YXQ9aTY0CgkJOzsKCXNwYXJjdjktKi1zb2xhcmlzMiopCgkJaWYgdGVzdCB4JGdudV9sZCA9IHh5 ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9c3BhcmMvc29sMi02NC5oCgkJZWxzZQoJCQl0bV9maWxlPXNw YXJjL3NvbDItc2xkLTY0LmgKCQlmaQoJCXhtX2ZpbGU9InNwYXJjL3htLXN5c3Y0LTY0Lmggc3Bh cmMveG0tc29sMi5oIgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCIKCQl0bWFrZV9maWxlPSJzcGFy Yy90LXNvbDIgc3BhcmMvdC1zb2wyLTY0IgoJCXhtYWtlX2ZpbGU9c3BhcmMveC1zeXN2NAoJCWV4 dHJhX3BhcnRzPSJjcnQxLm8gY3J0aS5vIGNydG4ubyBnY3J0MS5vIGNydGJlZ2luLm8gY3J0ZW5k Lm8iCgkJZmxvYXRfZm9ybWF0PW5vbmUKCQlpZiB0ZXN0IHgke2VuYWJsZV90aHJlYWRzfSA9IHgg OyB0aGVuCgkJICAgIGVuYWJsZV90aHJlYWRzPSRoYXZlX3B0aHJlYWRfaAoJCSAgICBpZiB0ZXN0 IHgke2VuYWJsZV90aHJlYWRzfSA9IHggOyB0aGVuCgkJCWVuYWJsZV90aHJlYWRzPSRoYXZlX3Ro cmVhZF9oCgkJICAgIGZpCgkJZmkKCQlpZiB0ZXN0IHgke2VuYWJsZV90aHJlYWRzfSA9IHh5ZXMg OyB0aGVuCgkJICAgIGlmIHRlc3QgeCR7aGF2ZV9wdGhyZWFkX2h9ID0geHllcyA7IHRoZW4KCQkJ dGhyZWFkX2ZpbGU9J3Bvc2l4JwoJCSAgICBlbHNlCgkJCXRocmVhZF9maWxlPSdzb2xhcmlzJwoJ CSAgICBmaQoJCWZpCgkJOzsKICAgICAgICBzcGFyYy1oYWwtc29sYXJpczIqKQogICAgICAgICAg ICAgICAgeG1fZmlsZT0ic3BhcmMveG0tc3lzdjQuaCBzcGFyYy94bS1zb2wyLmgiCiAgICAgICAg ICAgICAgICB4bV9kZWZpbmVzPSJVU0cgUE9TSVgiCiAgICAgICAgICAgICAgICB0bV9maWxlPSJz cGFyYy9zb2wyLmggc3BhcmMvaGFsLmgiCiAgICAgICAgICAgICAgICB0bWFrZV9maWxlPSJzcGFy Yy90LWhhbG9zIHNwYXJjL3Qtc29sMiIKICAgICAgICAgICAgICAgIHhtYWtlX2ZpbGU9c3BhcmMv eC1zeXN2NAogICAgICAgICAgICAgICAgZXh0cmFfcGFydHM9ImNydDEubyBjcnRpLm8gY3J0bi5v IGdtb24ubyBjcnRiZWdpbi5vIGNydGVuZC5vIgogICAgICAgICAgICAgICAgY2FzZSAkbWFjaGlu ZSBpbgogICAgICAgICAgICAgICAgKi0qLXNvbGFyaXMyLlswLTRdKQogICAgICAgICAgICAgICAg ICAgICAgICBmbG9hdF9mb3JtYXQ9aTEyOAogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAg ICAgICopCiAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0X2Zvcm1hdD1ub25lCiAgICAgICAg ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBlc2FjCgkJdGhyZWFkX2ZpbGU9J3Nv bGFyaXMnCiAgICAgICAgICAgICAgICA7OwoJc3BhcmMtKi1zb2xhcmlzMiopCgkJaWYgdGVzdCB4 JGdudV9sZCA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9c3BhcmMvc29sMi5oCgkJZWxzZQoJCQl0 bV9maWxlPXNwYXJjL3NvbDItc2xkLmgKCQlmaQoJCXhtX2ZpbGU9InNwYXJjL3htLXN5c3Y0Lmgg c3BhcmMveG0tc29sMi5oIgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCIKCQl0bWFrZV9maWxlPXNw YXJjL3Qtc29sMgoJCXhtYWtlX2ZpbGU9c3BhcmMveC1zeXN2NAoJCWV4dHJhX3BhcnRzPSJjcnQx Lm8gY3J0aS5vIGNydG4ubyBnY3J0MS5vIGdtb24ubyBjcnRiZWdpbi5vIGNydGVuZC5vIgoJCWNh c2UgJG1hY2hpbmUgaW4KY2hhbmdlcXVvdGUoLClkbmwKCQkqLSotc29sYXJpczIuWzAtNl0gfCAq LSotc29sYXJpczIuWzAtNl0uKikgOzsKY2hhbmdlcXVvdGUoWyxdKWRubAoJCSotKi1zb2xhcmlz MiopCgkJCWlmIHRlc3QgeCRnbnVfbGQgPSB4eWVzCgkJCXRoZW4KCQkJCXRtX2ZpbGU9c3BhcmMv c29sMi02NC5oCgkJCWVsc2UKCQkJCXRtX2ZpbGU9c3BhcmMvc29sMi1zbGQtNjQuaAoJCQlmaQoJ CQl0bWFrZV9maWxlPSIkdG1ha2VfZmlsZSBzcGFyYy90LXNvbDItNjQiCgkJCTs7CgkJZXNhYwoJ CWNhc2UgJG1hY2hpbmUgaW4KY2hhbmdlcXVvdGUoLClkbmwKCQkqLSotc29sYXJpczIuWzAtNF0p CmNoYW5nZXF1b3RlKFssXSlkbmwKCQkJZmxvYXRfZm9ybWF0PWkxMjgKCQkJOzsKCQkqKQoJCQlm bG9hdF9mb3JtYXQ9bm9uZQoJCQk7OwoJCWVzYWMKCQlpZiB0ZXN0IHgke2VuYWJsZV90aHJlYWRz fSA9IHg7IHRoZW4KCQkgICAgZW5hYmxlX3RocmVhZHM9JGhhdmVfcHRocmVhZF9oCgkJICAgIGlm IHRlc3QgeCR7ZW5hYmxlX3RocmVhZHN9ID0geDsgdGhlbgoJCQllbmFibGVfdGhyZWFkcz0kaGF2 ZV90aHJlYWRfaAoJCSAgICBmaQoJCWZpCgkJaWYgdGVzdCB4JHtlbmFibGVfdGhyZWFkc30gPSB4 eWVzOyB0aGVuCgkJICAgIGlmIHRlc3QgeCR7aGF2ZV9wdGhyZWFkX2h9ID0geHllczsgdGhlbgoJ CQl0aHJlYWRfZmlsZT0ncG9zaXgnCgkJICAgIGVsc2UKCQkJdGhyZWFkX2ZpbGU9J3NvbGFyaXMn CgkJICAgIGZpCgkJZmkKCQk7OwoJc3BhcmMtKi1zdW5vczQuMCopCgkJdG1fZmlsZT1zcGFyYy9z dW5vczQuaAoJCXRtYWtlX2ZpbGU9c3BhcmMvdC1zdW5vczQwCgkJdXNlX2NvbGxlY3QyPXllcwoJ CTs7CglzcGFyYy0qLXN1bm9zNCopCgkJdG1fZmlsZT1zcGFyYy9zdW5vczQuaAoJCXRtYWtlX2Zp bGU9c3BhcmMvdC1zdW5vczQxCgkJdXNlX2NvbGxlY3QyPXllcwoJCWlmIHRlc3QgeCRnYXMgPSB4 eWVzOyB0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gc3BhcmMvc3VuNGdhcy5oIgoJCWZpCgkJ OzsKCXNwYXJjLSotc3Vub3MzKikKCQl0bV9maWxlPXNwYXJjL3N1bjRvMy5oCgkJdXNlX2NvbGxl Y3QyPXllcwoJCTs7CglzcGFyYy0qLXN5c3Y0KikKCQl0bV9maWxlPXNwYXJjL3N5c3Y0LmgKCQl4 bV9maWxlPSJzcGFyYy94bS1zeXN2NC5oIgoJCXhtX2RlZmluZXM9IlVTRyBQT1NJWCIKCQl0bWFr ZV9maWxlPXQtc3ZyNAoJCXhtYWtlX2ZpbGU9c3BhcmMveC1zeXN2NAoJCWV4dHJhX3BhcnRzPSJj cnRiZWdpbi5vIGNydGVuZC5vIgoJCTs7CglzcGFyYy0qLXZ4c2ltKikKCQl4bV9maWxlPSJzcGFy Yy94bS1zeXN2NC5oIHNwYXJjL3htLXNvbDIuaCIKCQl4bV9kZWZpbmVzPSJVU0cgUE9TSVgiCgkJ dG1fZmlsZT1zcGFyYy92eHNpbS5oCgkJdG1ha2VfZmlsZT1zcGFyYy90LXZ4c3BhcmMKCQl4bWFr ZV9maWxlPXNwYXJjL3gtc3lzdjQKCQk7OwoJc3BhcmNsZXQtKi1hb3V0KikKCQl0bV9maWxlPSJz cGFyYy9zcGxldC5oIGxpYmdsb3NzLmgiCgkJdG1ha2VfZmlsZT1zcGFyYy90LXNwbGV0CgkJOzsK CXNwYXJjbGl0ZS0qLWNvZmYqKQoJCXRtX2ZpbGU9InNwYXJjL2xpdGVjb2ZmLmggbGliZ2xvc3Mu aCIKCQl0bWFrZV9maWxlPXNwYXJjL3Qtc3BhcmNsaXRlCgkJOzsKCXNwYXJjbGl0ZS0qLWFvdXQq KQoJCXRtX2ZpbGU9InNwYXJjL2xpdGUuaCBhb3V0b3MuaCBsaWJnbG9zcy5oIgoJCXRtYWtlX2Zp bGU9c3BhcmMvdC1zcGFyY2xpdGUKCQk7OwoJc3BhcmNsaXRlLSotZWxmKikKCQl0bV9maWxlPSJz cGFyYy9saXRlZWxmLmgiCgkJdG1ha2VfZmlsZT1zcGFyYy90LXNwYXJjbGl0ZQogICAgICAgICAg ICAgICAgZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0ZW5kLm8iCgkJOzsKCXNwYXJjODZ4LSot YW91dCopCgkJdG1fZmlsZT0ic3BhcmMvc3A4NngtYW91dC5oIGFvdXRvcy5oIGxpYmdsb3NzLmgi CgkJdG1ha2VfZmlsZT1zcGFyYy90LXNwODZ4CgkJOzsKCXNwYXJjODZ4LSotZWxmKikJCgkJdG1f ZmlsZT0ic3BhcmMvc3A4NngtZWxmLmgiCgkJdG1ha2VfZmlsZT1zcGFyYy90LXNwODZ4CiAgICAg ICAgICAgICAgICBleHRyYV9wYXJ0cz0iY3J0YmVnaW4ubyBjcnRlbmQubyIKCQk7OwoJc3BhcmM2 NC0qLWFvdXQqKQoJCXRtYWtlX2ZpbGU9c3BhcmMvdC1zcDY0CgkJdG1fZmlsZT1zcGFyYy9zcDY0 LWFvdXQuaAoJCTs7CglzcGFyYzY0LSotZWxmKikKCQl0bWFrZV9maWxlPXNwYXJjL3Qtc3A2NAoJ CXRtX2ZpbGU9c3BhcmMvc3A2NC1lbGYuaAoJCWV4dHJhX3BhcnRzPSJjcnRiZWdpbi5vIGNydGVu ZC5vIgoJCTs7CglzcGFyYzY0LSotbGludXgqKQkJIyA2NC1iaXQgU3BhcmMncyBydW5uaW5nIEdO VS9MaW51eAoJCXRtYWtlX2ZpbGU9InQtbGludXggc3BhcmMvdC1saW51eDY0IgoJCXhtX2ZpbGU9 InNwYXJjL3htLXNwNjQuaCBzcGFyYy94bS1saW51eC5oIgoJCXRtX2ZpbGU9c3BhcmMvbGludXg2 NC5oCgkJeG1ha2VfZmlsZT14LWxpbnV4CgkJZXh0cmFfcGFydHM9ImNydGJlZ2luLm8gY3J0YmVn aW5TLm8gY3J0ZW5kLm8gY3J0ZW5kUy5vIgoJCWdudV9sZD15ZXMKIAkJaWYgdGVzdCB4JGVuYWJs ZV90aHJlYWRzID0geHllczsgdGhlbgogCQkJdGhyZWFkX2ZpbGU9J3Bvc2l4JwogCQlmaQoJCWZs b2F0X2Zvcm1hdD1zcGFyYwoJCTs7CiMgVGhpcyBoYXNuJ3QgYmVlbiB1cGdyYWRlZCB0byBHQ0Mg Mi4KIwl0YWhvZS1oYXJyaXMtKikJCQkjIEhhcnJpcyB0YWhvZSwgdXNpbmcgQ09GRi4KIwkJdG1f ZmlsZT10YWhvZS9oYXJyaXMuaAojCQk7OwojCXRhaG9lLSotYnNkKikJCQkjIHRhaG9lIHJ1bm5p bmcgQlNECiMJCTs7Cgl0aHVtYi0qLWNvZmYqIHwgdGh1bWJlbC0qLWNvZmYqKQoJCXRtX2ZpbGU9 YXJtL3Rjb2ZmLmgKCQlvdXRfZmlsZT1hcm0vdGh1bWIuYwoJCXhtX2ZpbGU9YXJtL3htLXRodW1i LmgKCQltZF9maWxlPWFybS90aHVtYi5tZAoJCXRtYWtlX2ZpbGU9YXJtL3QtdGh1bWIKCQl0bV9w X2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5oCgkJOzsKCXRodW1iLSotZWxmKiB8IHRodW1iZWwtKi1l bGYqKQoJCXRtX2ZpbGU9YXJtL3RlbGYuaAoJCW91dF9maWxlPWFybS90aHVtYi5jCgkJeG1fZmls ZT1hcm0veG0tdGh1bWIuaAoJCW1kX2ZpbGU9YXJtL3RodW1iLm1kCgkJdG1ha2VfZmlsZT1hcm0v dC10aHVtYi1lbGYKCQl0bV9wX2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5oCgkJOzsKCXRodW1iLSot bGludXgtZ251KikKCQl0bV9maWxlPWFybS9saW51eC10ZWxmLmgKCQlvdXRfZmlsZT1hcm0vdGh1 bWIuYwoJCXhtX2ZpbGU9YXJtL3htLXRodW1iLmgKCQltZF9maWxlPWFybS90aHVtYi5tZAoJCXRt YWtlX2ZpbGU9YXJtL3QtdGh1bWItbGludXgKCQl0bV9wX2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5o CgkJOzsKCXRodW1iLSotdWNsaW51eCopCgkJdG1fZmlsZT1hcm0vdWNsaW51eC10ZWxmLmgKCQlv dXRfZmlsZT1hcm0vdGh1bWIuYwoJCW1kX2ZpbGU9YXJtL3RodW1iLm1kCgkJdG1ha2VfZmlsZT1h cm0vdC10aHVtYi1saW51eAoJCXhtX2ZpbGU9YXJtL3htLXRodW1iLmgKCQl0bV9wX2ZpbGU9YXJt L3RodW1iLXByb3Rvcy5oCgkJOzsKCXRodW1iLXdycy12eHdvcmtzKQoJCXRtX2ZpbGU9YXJtL3Rj b2ZmLmgKCQlvdXRfZmlsZT1hcm0vdGh1bWIuYwoJCXhtX2ZpbGU9YXJtL3htLXRodW1iLmgKCQlt ZF9maWxlPWFybS90aHVtYi5tZAoJCXRtYWtlX2ZpbGU9YXJtL3QtdGh1bWIKCQl0aHJlYWRfZmls ZT0ndnh3b3JrcycKCQl0bV9wX2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5oCgkJOzsKCXRodW1iLSot cGUpCgkJdG1fZmlsZT1hcm0vdHBlLmgKCQlvdXRfZmlsZT1hcm0vdGh1bWIuYwoJCXhtX2ZpbGU9 YXJtL3htLXRodW1iLmgKCQltZF9maWxlPWFybS90aHVtYi5tZAoJCXRtYWtlX2ZpbGU9YXJtL3Qt cGUtdGh1bWIKCQlleHRyYV9vYmpzPXBlLm8KCQl0bV9wX2ZpbGU9YXJtL3RodW1iLXByb3Rvcy5o CgkJOzsKIyBUaGlzIGhhc24ndCBiZWVuIHVwZ3JhZGVkIHRvIEdDQyAyLgojCXRyb24tKi0qKQoj CQljcHVfdHlwZT1nbWljcm8KIwkJdXNlX2NvbGxlY3QyPXllcwojCQk7OwoJdjg1MC0qLXJ0ZW1z KikKCQljcHVfdHlwZT12ODUwCgkJdG1fZmlsZT0idjg1MC9ydGVtcy5oIgoJCXhtX2ZpbGU9InY4 NTAveG0tdjg1MC5oIgoJCXRtYWtlX2ZpbGU9InY4NTAvdC12ODUwIHQtcnRlbXMiCgkJaWYgdGVz dCB4JHN0YWJzID0geHllcwoJCXRoZW4KCQkJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnguaCIKCQlm aQoJCXVzZV9jb2xsZWN0Mj1ubwoJCTs7Cgl2ODUwLSotKikKCQl0YXJnZXRfY3B1X2RlZmF1bHQ9 IlRBUkdFVF9DUFVfZ2VuZXJpYyIKCQljcHVfdHlwZT12ODUwCgkJdG1fZmlsZT0idjg1MC92ODUw LmgiCgkJeG1fZmlsZT0idjg1MC94bS12ODUwLmgiCgkJdG1ha2VfZmlsZT12ODUwL3Qtdjg1MAoJ CWlmIHRlc3QgeCRzdGFicyA9IHh5ZXMKCQl0aGVuCgkJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4 LmgiCgkJZmkKCQl1c2VfY29sbGVjdDI9bm8KCQk7OwoJdmF4LSotYnNkKikJCQkjIHZheGVuIHJ1 bm5pbmcgQlNECgkJdXNlX2NvbGxlY3QyPXllcwoJCWZsb2F0X2Zvcm1hdD12YXgKCQk7OwoJdmF4 LSotc3lzdiopCQkJIyB2YXhlbiBydW5uaW5nIHN5c3RlbSBWCgkJdG1fZmlsZT0iJHt0bV9maWxl fSB2YXgvdmF4di5oIgoJCXhtX2RlZmluZXM9VVNHCgkJZmxvYXRfZm9ybWF0PXZheAoJCTs7Cgl2 YXgtKi1uZXRic2QqKQoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gbmV0YnNkLmggdmF4L25ldGJzZC5o IgoJCXRtYWtlX2ZpbGU9dC1uZXRic2QKCQlmbG9hdF9mb3JtYXQ9dmF4CgkJdXNlX2NvbGxlY3Qy PXllcwoJCTs7Cgl2YXgtKi1vcGVuYnNkKikKCQl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHZh eC90LW9wZW5ic2QiCgkJOzsKCXZheC0qLXVsdHJpeCopCQkJIyB2YXhlbiBydW5uaW5nIHVsdHJp eAoJCXRtX2ZpbGU9IiR7dG1fZmlsZX0gdmF4L3VsdHJpeC5oIgoJCXVzZV9jb2xsZWN0Mj15ZXMK CQlmbG9hdF9mb3JtYXQ9dmF4CgkJOzsKCXZheC0qLXZtcyopCQkJIyB2YXhlbiBydW5uaW5nIFZN UwoJCXhtX2ZpbGU9dmF4L3htLXZtcy5oCgkJdG1fZmlsZT12YXgvdm1zLmgKCQlmbG9hdF9mb3Jt YXQ9dmF4CgkJOzsKCXZheC0qLSopCQkJIyB2YXggZGVmYXVsdCBlbnRyeQoJCWZsb2F0X2Zvcm1h dD12YXgKCQk7OwoJd2UzMmstYXR0LXN5c3YqKQoJCXhtX2ZpbGU9IiR7eG1fZmlsZX0geG0tc3Zy MyIKCQl1c2VfY29sbGVjdDI9eWVzCgkJOzsKCSopCgkJZWNobyAiQ29uZmlndXJhdGlvbiAkbWFj aGluZSBub3Qgc3VwcG9ydGVkIiAxPiYyCgkJZXhpdCAxCgkJOzsKCWVzYWMKCgljYXNlICRtYWNo aW5lIGluCgkqLSotbGludXgtZ251KikKCSAgICAgICAgOzsgIyBFeGlzdGluZyBHTlUvTGludXgg c3lzdGVtcyBkbyBub3QgdXNlIHRoZSBHTlUgc2V0dXAuCgkqLSotZ251KikKCQkjIE9uIHRoZSBH TlUgc3lzdGVtLCB0aGUgc2V0dXAgaXMganVzdCBhYm91dCB0aGUgc2FtZSBvbgoJCSMgZWFjaCBk aWZmZXJlbnQgQ1BVLiAgVGhlIHNwZWNpZmljIG1hY2hpbmVzIHRoYXQgR05VCgkJIyBzdXBwb3J0 cyBhcmUgbWF0Y2hlZCBhYm92ZSBhbmQganVzdCBzZXQgJGNwdV90eXBlLgoJCXhtX2ZpbGU9Inht LWdudS5oICR7eG1fZmlsZX0iCgkJdG1fZmlsZT0ke2NwdV90eXBlfS9nbnUuaAoJCWV4dHJhX3Bh cnRzPSJjcnRiZWdpbi5vIGNydGVuZC5vIGNydGJlZ2luUy5vIGNydGVuZFMubyIKCQkjIEdOVSBh bHdheXMgdXNlcyBFTEYuCgkJZWxmPXllcwoJCSMgR05VIHRvb2xzIGFyZSB0aGUgb25seSB0b29s cy4KCQlnbnVfbGQ9eWVzCgkJZ2FzPXllcwoJCXhtYWtlX2ZpbGU9eC1saW51eAkjIFRoZXNlIGRl dGFpbHMgYXJlIHRoZSBzYW1lIGFzIExpbnV4LgoJCXRtYWtlX2ZpbGU9dC1nbnUJIyBUaGVzZSBh cmUgbm90LgoJCTs7CgkqLSotc3lzdjQqKQoJCXhtYWtlX3RyeV9zeXN2PXgtc3lzdgoJCWluc3Rh bGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQk7OwoJKi0qLXN5c3YqKQoJCWlu c3RhbGxfaGVhZGVyc19kaXI9aW5zdGFsbC1oZWFkZXJzLWNwaW8KCQk7OwoJZXNhYwoKCSMgRGlz dGluZ3Vpc2ggaVszNDU2N104NgoJIyBBbHNvLCBkbyBub3QgcnVuIG1pcHMtdGZpbGUgb24gTUlQ UyBpZiB1c2luZyBnYXMuCgkjIFByb2Nlc3MgLS13aXRoLWNwdT0gZm9yIFBvd2VyUEMvcnM2MDAw Cgl0YXJnZXRfY3B1X2RlZmF1bHQyPQoJY2FzZSAkbWFjaGluZSBpbgoJaTQ4Ni0qLSopCgkJdGFy Z2V0X2NwdV9kZWZhdWx0Mj0xCgkJOzsKCWk1ODYtKi0qKQoJCWNhc2UgJHRhcmdldF9hbGlhcyBp bgoJCQlrNi0qKQoJCQkJdGFyZ2V0X2NwdV9kZWZhdWx0Mj00CgkJCQk7OwoJCQkqKQoJCQkJdGFy Z2V0X2NwdV9kZWZhdWx0Mj0yCgkJCQk7OwoJCWVzYWMKCQk7OwoJaTY4Ni0qLSogfCBpNzg2LSot KikKCQl0YXJnZXRfY3B1X2RlZmF1bHQyPTMKCQk7OwoJYWxwaGEqLSotKikKCQljYXNlICRtYWNo aW5lIGluCmNoYW5nZXF1b3RlKCwpZG5sCgkJCWFscGhhZXY2Wzc4XSopCmNoYW5nZXF1b3RlKFss XSlkbmwKCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9Ik1BU0tfQ1BVX0VWNnxNQVNLX0JXWHxNQVNL X01BWHxNQVNLX0ZJWHxNQVNLX0NJWCIKCQkJCTs7CgkJCWFscGhhZXY2KikKCQkJCXRhcmdldF9j cHVfZGVmYXVsdDI9Ik1BU0tfQ1BVX0VWNnxNQVNLX0JXWHxNQVNLX01BWHxNQVNLX0ZJWCIKCQkJ CTs7CgkJCWFscGhhcGNhNTYqKQoJCQkJdGFyZ2V0X2NwdV9kZWZhdWx0Mj0iTUFTS19DUFVfRVY1 fE1BU0tfQldYfE1BU0tfTUFYIgoJCQkJOzsKCQkJYWxwaGFldjU2KikKCQkJCXRhcmdldF9jcHVf ZGVmYXVsdDI9Ik1BU0tfQ1BVX0VWNXxNQVNLX0JXWCIKCQkJCTs7CgkJCWFscGhhZXY1KikKCQkJ CXRhcmdldF9jcHVfZGVmYXVsdDI9Ik1BU0tfQ1BVX0VWNSIKCQkJCTs7CgkJZXNhYwoJCQkJCgkJ aWYgdGVzdCB4JGdhcyA9IHh5ZXMKCQl0aGVuCgkJCWlmIHRlc3QgIiR0YXJnZXRfY3B1X2RlZmF1 bHQyIiA9ICIiCgkJCXRoZW4KCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9Ik1BU0tfR0FTIgoJCQll bHNlCgkJCQl0YXJnZXRfY3B1X2RlZmF1bHQyPSIke3RhcmdldF9jcHVfZGVmYXVsdDJ9fE1BU0tf R0FTIgoJCQlmaQoJCWZpCgkJOzsKCWFybSotKi0qKQoJCWNhc2UgIngkd2l0aF9jcHUiIGluCgkJ CXgpCgkJCQkjIFRoZSBtb3N0IGdlbmVyaWMKCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9IlRBUkdF VF9DUFVfZ2VuZXJpYyIKCQkJCTs7CgoJCQkjIERpc3Rpbmd1aXNoIGNvcmVzLCBhbmQgbWFqb3Ig dmFyaWFudHMKCQkJIyBhcm03bSBkb2Vzbid0IGV4aXN0LCBidXQgRCAmIEkgZG9uJ3QgYWZmZWN0 IGNvZGUKY2hhbmdlcXVvdGUoLClkbmwKCQkJeGFybVsyMzY3OF0gfCB4YXJtMjUwIHwgeGFybVs2 N11bMDFdMCBcCgkJCXwgeGFybTdtIHwgeGFybTdkbSB8IHhhcm03ZG1pIHwgeGFybTd0ZG1pIFwK CQkJfCB4YXJtNzEwMCB8IHhhcm03NTAwIHwgeGFybTc1MDBmZSB8IHhhcm04MTAgXAoJCQl8IHhz dHJvbmdhcm0gfCB4c3Ryb25nYXJtMTEwIHwgeHN0cm9uZ2FybTExMDApCmNoYW5nZXF1b3RlKFss XSlkbmwKCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9IlRBUkdFVF9DUFVfJHdpdGhfY3B1IgoJCQkJ OzsKCgkJCXh5ZXMgfCB4bm8pCgkJCQllY2hvICItLXdpdGgtY3B1IG11c3QgYmUgcGFzc2VkIGEg dmFsdWUiIDE+JjIKCQkJCWV4aXQgMQoJCQkJOzsKCgkJCSopCgkJCQlpZiB0ZXN0IHgkcGFzczJk b25lID0geHllcwoJCQkJdGhlbgoJCQkJCWVjaG8gIlVua25vd24gY3B1IHVzZWQgd2l0aCAtLXdp dGgtY3B1PSR3aXRoX2NwdSIgMT4mMgoJCQkJCWV4aXQgMQoJCQkJZmkKCQkJCTs7CgkJZXNhYwoJ CTs7CgoJbWlwcyotKi1lY29mZiogfCBtaXBzKi0qLWVsZiopCgkJaWYgdGVzdCB4JGdhcyA9IHh5 ZXMKCQl0aGVuCgkJCWlmIHRlc3QgeCRnbnVfbGQgPSB4eWVzCgkJCXRoZW4KCQkJCXRhcmdldF9j cHVfZGVmYXVsdDI9MjAKCQkJZWxzZQoJCQkJdGFyZ2V0X2NwdV9kZWZhdWx0Mj0xNgoJCQlmaQoJ CWZpCgkJOzsKCW1pcHMqLSotKikKCQlpZiB0ZXN0IHgkZ2FzID0geHllcwoJCXRoZW4KCQkJdGFy Z2V0X2NwdV9kZWZhdWx0Mj0xNgoJCWZpCgkJOzsKCXBvd2VycGMqLSotKiB8IHJzNjAwMC0qLSop CgkJY2FzZSAieCR3aXRoX2NwdSIgaW4KCQkJeCkKCQkJCTs7CgoJCQl4Y29tbW9uIHwgeHBvd2Vy IHwgeHBvd2VyMiB8IHhwb3dlcnBjIHwgeHJpb3MgXAoJCQkgIHwgeHJpb3MxIHwgeHJpb3MyIHwg eHJzYyB8IHhyc2MxIFwKCQkJICB8IHg2MDEgfCB4NjAyIHwgeDYwMyB8IHg2MDNlIHwgeDYwNCB8 IHg2MDRlIHwgeDYyMCBcCgkJCSAgfCB4ZWM2MDNlIHwgeDc0MCB8IHg3NTAgfCB4NDAxIFwKCQkJ ICB8IHg0MDMgfCB4NTA1IHwgeDgwMSB8IHg4MjEgfCB4ODIzIHwgeDg2MCkKCQkJCXRhcmdldF9j cHVfZGVmYXVsdDI9IlwiJHdpdGhfY3B1XCIiCgkJCQk7OwoKCQkJeHllcyB8IHhubykKCQkJCWVj aG8gIi0td2l0aC1jcHUgbXVzdCBiZSBwYXNzZWQgYSB2YWx1ZSIgMT4mMgoJCQkJZXhpdCAxCgkJ CQk7OwoKCQkJKikKCQkJCWlmIHRlc3QgeCRwYXNzMmRvbmUgPSB4eWVzCgkJCQl0aGVuCgkJCQkJ ZWNobyAiVW5rbm93biBjcHUgdXNlZCB3aXRoIC0td2l0aC1jcHU9JHdpdGhfY3B1IiAxPiYyCgkJ CQkJZXhpdCAxCgkJCQlmaQoJCQkJOzsKCQllc2FjCgkJOzsKCXNwYXJjKi0qLSopCgkJY2FzZSAi LiR3aXRoX2NwdSIgaW4KCQkJLikKCQkJCXRhcmdldF9jcHVfZGVmYXVsdDI9VEFSR0VUX0NQVV8i YGVjaG8gJG1hY2hpbmUgfCBzZWQgJ3MvLS4qJC8vJ2AiCgkJCQk7OwoJCQkuc3VwZXJzcGFyYyB8 IC5oeXBlcnNwYXJjIHwgLnVsdHJhc3BhcmMgfCAudjcgfCAudjggfCAudjkpCgkJCQl0YXJnZXRf Y3B1X2RlZmF1bHQyPSJUQVJHRVRfQ1BVXyR3aXRoX2NwdSIKCQkJCTs7CgkJCSopCgkJCQlpZiB0 ZXN0IHgkcGFzczJkb25lID0geHllcwoJCQkJdGhlbgoJCQkJCWVjaG8gIlVua25vd24gY3B1IHVz ZWQgd2l0aCAtLXdpdGgtY3B1PSR3aXRoX2NwdSIgMT4mMgoJCQkJCWV4aXQgMQoJCQkJZmkKCQkJ CTs7CgkJZXNhYwoJCTs7Cgllc2FjCgoJaWYgdGVzdCAiJHRhcmdldF9jcHVfZGVmYXVsdDIiICE9 ICIiCgl0aGVuCgkJaWYgdGVzdCAiJHRhcmdldF9jcHVfZGVmYXVsdCIgIT0gIiIKCQl0aGVuCgkJ CXRhcmdldF9jcHVfZGVmYXVsdD0iKCR7dGFyZ2V0X2NwdV9kZWZhdWx0fXwke3RhcmdldF9jcHVf ZGVmYXVsdDJ9KSIKCQllbHNlCgkJCXRhcmdldF9jcHVfZGVmYXVsdD0kdGFyZ2V0X2NwdV9kZWZh dWx0MgoJCWZpCglmaQoKCSMgTm8gbmVlZCBmb3IgY29sbGVjdDIgaWYgd2UgaGF2ZSB0aGUgR05V IGxpbmtlci4KCSMgQWN0dWFsbHksIHRoZXJlIGlzIG5vdzsgR05VIGxkIGRvZXNuJ3QgaGFuZGxl IHRoZSBFSCBpbmZvIG9yCgkjIGNvbGxlY3RpbmcgZm9yIHNoYXJlZCBsaWJyYXJpZXMuCgkjY2Fz ZSB4JGdudV9sZCBpbgoJI3h5ZXMpCgkjCXVzZV9jb2xsZWN0Mj0KCSMJOzsKCSNlc2FjCgojIFNh dmUgZGF0YSBvbiBtYWNoaW5lIGJlaW5nIHVzZWQgdG8gY29tcGlsZSBHQ0MgaW4gYnVpbGRfeG1f ZmlsZS4KIyBTYXZlIGRhdGEgb24gaG9zdCBtYWNoaW5lIGluIHZhcnMgaG9zdF94bV9maWxlIGFu ZCBob3N0X3htYWtlX2ZpbGUuCglpZiB0ZXN0IHgkcGFzczFkb25lID0geAoJdGhlbgoJCWlmIHRl c3QgeCIkeG1fZmlsZSIgPSB4CgkJdGhlbiBidWlsZF94bV9maWxlPSRjcHVfdHlwZS94bS0kY3B1 X3R5cGUuaAoJCWVsc2UgYnVpbGRfeG1fZmlsZT0keG1fZmlsZQoJCWZpCgkJYnVpbGRfeG1fZGVm aW5lcz0keG1fZGVmaW5lcwoJCWJ1aWxkX2luc3RhbGxfaGVhZGVyc19kaXI9JGluc3RhbGxfaGVh ZGVyc19kaXIKCQlidWlsZF9leGVleHQ9JGV4ZWV4dAoJCXBhc3MxZG9uZT15ZXMKCWVsc2UKCQlp ZiB0ZXN0IHgkcGFzczJkb25lID0geAoJCXRoZW4KCQkJaWYgdGVzdCB4IiR4bV9maWxlIiA9IHgK CQkJdGhlbiBob3N0X3htX2ZpbGU9JGNwdV90eXBlL3htLSRjcHVfdHlwZS5oCgkJCWVsc2UgaG9z dF94bV9maWxlPSR4bV9maWxlCgkJCWZpCgkJCWhvc3RfeG1fZGVmaW5lcz0keG1fZGVmaW5lcwoJ CQlpZiB0ZXN0IHgiJHhtYWtlX2ZpbGUiID0geAoJCQl0aGVuIHhtYWtlX2ZpbGU9JGNwdV90eXBl L3gtJGNwdV90eXBlCgkJCWZpCgkJCWhvc3RfeG1ha2VfZmlsZT0iJHhtYWtlX2ZpbGUiCgkJCWhv c3RfdHJ1bmNhdGVfdGFyZ2V0PSR0cnVuY2F0ZV90YXJnZXQKCQkJaG9zdF9leHRyYV9nY2Nfb2Jq cz0kZXh0cmFfZ2NjX29ianMKCQkJaG9zdF9leHRyYV9vYmpzPSRleHRyYV9ob3N0X29ianMKCQkJ aG9zdF9leGVleHQ9JGV4ZWV4dAoJCQlwYXNzMmRvbmU9eWVzCgkJZmkKCWZpCmRvbmUKCmV4dHJh X29ianM9IiR7aG9zdF9leHRyYV9vYmpzfSAke2V4dHJhX29ianN9IgoKIyBEZWZhdWx0IHRoZSB0 YXJnZXQtbWFjaGluZSB2YXJpYWJsZXMgdGhhdCB3ZXJlIG5vdCBleHBsaWNpdGx5IHNldC4KaWYg dGVzdCB4IiR0bV9maWxlIiA9IHgKdGhlbiB0bV9maWxlPSRjcHVfdHlwZS8kY3B1X3R5cGUuaDsg ZmkKCmlmIHRlc3QgeCRleHRyYV9oZWFkZXJzID0geAp0aGVuIGV4dHJhX2hlYWRlcnM9OyBmaQoK aWYgdGVzdCB4IiR4bV9maWxlIiA9IHgKdGhlbiB4bV9maWxlPSRjcHVfdHlwZS94bS0kY3B1X3R5 cGUuaDsgZmkKCmlmIHRlc3QgeCRtZF9maWxlID0geAp0aGVuIG1kX2ZpbGU9JGNwdV90eXBlLyRj cHVfdHlwZS5tZDsgZmkKCmlmIHRlc3QgeCRvdXRfZmlsZSA9IHgKdGhlbiBvdXRfZmlsZT0kY3B1 X3R5cGUvJGNwdV90eXBlLmM7IGZpCgppZiB0ZXN0IHgiJHRtYWtlX2ZpbGUiID0geAp0aGVuIHRt YWtlX2ZpbGU9JGNwdV90eXBlL3QtJGNwdV90eXBlCmZpCgppZiB0ZXN0IHgiJGR3YXJmMiIgPSB4 eWVzCnRoZW4gdG1fZmlsZT0iJHRtX2ZpbGUgdG0tZHdhcmYyLmgiCmZpCgppZiB0ZXN0IHgkZmxv YXRfZm9ybWF0ID0geAp0aGVuIGZsb2F0X2Zvcm1hdD1pNjQKZmkKCmlmIHRlc3QgJGZsb2F0X2Zv cm1hdCA9IG5vbmUKdGhlbiBmbG9hdF9oX2ZpbGU9TWFrZWZpbGUuaW4KZWxzZSBmbG9hdF9oX2Zp bGU9ZmxvYXQtJGZsb2F0X2Zvcm1hdC5oCmZpCgojIEhhbmRsZSBjcHAgaW5zdGFsbGF0aW9uLgpp ZiB0ZXN0IHgkZW5hYmxlX2NwcCAhPSB4bm8KdGhlbgogIHRtYWtlX2ZpbGU9IiR0bWFrZV9maWxl IHQtaW5zdGFsbC1jcHAiCmZpCgojIFNheSB3aGF0IGZpbGVzIGFyZSBiZWluZyB1c2VkIGZvciB0 aGUgb3V0cHV0IGNvZGUgYW5kIE1EIGZpbGUuCmVjaG8gIlVzaW5nIFxgJHNyY2Rpci9jb25maWcv JG91dF9maWxlJyB0byBvdXRwdXQgaW5zbnMuIgplY2hvICJVc2luZyBcYCRzcmNkaXIvY29uZmln LyRtZF9maWxlJyBhcyBtYWNoaW5lIGRlc2NyaXB0aW9uIGZpbGUuIgoKY291bnQ9YQpmb3IgZiBp biAkdG1fZmlsZTsgZG8KCWNvdW50PSR7Y291bnR9eApkb25lCmlmIHRlc3QgJGNvdW50ID0gYXg7 IHRoZW4KCWVjaG8gIlVzaW5nIFxgJHNyY2Rpci9jb25maWcvJHRtX2ZpbGUnIGFzIHRhcmdldCBt YWNoaW5lIG1hY3JvIGZpbGUuIgplbHNlCgllY2hvICJVc2luZyB0aGUgZm9sbG93aW5nIHRhcmdl dCBtYWNoaW5lIG1hY3JvIGZpbGVzOiIKCWZvciBmIGluICR0bV9maWxlOyBkbwoJCWVjaG8gIgkk c3JjZGlyL2NvbmZpZy8kZiIKCWRvbmUKZmkKCmNvdW50PWEKZm9yIGYgaW4gJGhvc3RfeG1fZmls ZTsgZG8KCWNvdW50PSR7Y291bnR9eApkb25lCmlmIHRlc3QgJGNvdW50ID0gYXg7IHRoZW4KCWVj aG8gIlVzaW5nIFxgJHNyY2Rpci9jb25maWcvJGhvc3RfeG1fZmlsZScgYXMgaG9zdCBtYWNoaW5l IG1hY3JvIGZpbGUuIgplbHNlCgllY2hvICJVc2luZyB0aGUgZm9sbG93aW5nIGhvc3QgbWFjaGlu ZSBtYWNybyBmaWxlczoiCglmb3IgZiBpbiAkaG9zdF94bV9maWxlOyBkbwoJCWVjaG8gIgkkc3Jj ZGlyL2NvbmZpZy8kZiIKCWRvbmUKZmkKCmlmIHRlc3QgIiRob3N0X3htX2ZpbGUiICE9ICIkYnVp bGRfeG1fZmlsZSI7IHRoZW4KCWNvdW50PWEKCWZvciBmIGluICRidWlsZF94bV9maWxlOyBkbwoJ CWNvdW50PSR7Y291bnR9eAoJZG9uZQoJaWYgdGVzdCAkY291bnQgPSBheDsgdGhlbgoJCWVjaG8g IlVzaW5nIFxgJHNyY2Rpci9jb25maWcvJGJ1aWxkX3htX2ZpbGUnIGFzIGJ1aWxkIG1hY2hpbmUg bWFjcm8gZmlsZS4iCgllbHNlCgkJZWNobyAiVXNpbmcgdGhlIGZvbGxvd2luZyBidWlsZCBtYWNo aW5lIG1hY3JvIGZpbGVzOiIKCQlmb3IgZiBpbiAkYnVpbGRfeG1fZmlsZTsgZG8KCQkJZWNobyAi CSRzcmNkaXIvY29uZmlnLyRmIgoJCWRvbmUKCWZpCmZpCgppZiB0ZXN0IHgkdGhyZWFkX2ZpbGUg PSB4OyB0aGVuCglpZiB0ZXN0IHgkdGFyZ2V0X3RocmVhZF9maWxlICE9IHg7IHRoZW4KCQl0aHJl YWRfZmlsZT0kdGFyZ2V0X3RocmVhZF9maWxlCgllbHNlCgkJdGhyZWFkX2ZpbGU9J3NpbmdsZScK CWZpCmZpCgojIFNldCB1cCB0aGUgaGVhZGVyIGZpbGVzLgojICRsaW5rcyBpcyB0aGUgbGlzdCBv ZiBoZWFkZXIgZmlsZXMgdG8gY3JlYXRlLgojICR2YXJzIGlzIHRoZSBsaXN0IG9mIHNoZWxsIHZh cmlhYmxlcyB3aXRoIGZpbGUgbmFtZXMgdG8gaW5jbHVkZS4KIyBhdXRvLWhvc3QuaCBpcyB0aGUg ZmlsZSBjb250YWluaW5nIGl0ZW1zIGdlbmVyYXRlZCBieSBhdXRvY29uZiBhbmQgaXMKIyB0aGUg Zmlyc3QgZmlsZSBpbmNsdWRlZCBieSBjb25maWcuaC4KbnVsbF9kZWZpbmVzPQpob3N0X3htX2Zp bGU9ImF1dG8taG9zdC5oIGdhbnNpZGVjbC5oICR7aG9zdF94bV9maWxlfSBod2ludC5oIgoKIyBJ ZiBob3N0PWJ1aWxkLCBpdCBpcyBjb3JyZWN0IHRvIGhhdmUgaGNvbmZpZyBpbmNsdWRlIGF1dG8t aG9zdC5oCiMgYXMgd2VsbC4gIElmIGhvc3QhPWJ1aWxkLCB3ZSBhcmUgaW4gZXJyb3IgYW5kIG5l ZWQgdG8gZG8gbW9yZSAKIyB3b3JrIHRvIGZpbmQgb3V0IHRoZSBidWlsZCBjb25maWcgcGFyYW1l dGVycy4KaWYgdGVzdCB4JGhvc3QgPSB4JGJ1aWxkCnRoZW4KCWJ1aWxkX3htX2ZpbGU9ImF1dG8t aG9zdC5oIGdhbnNpZGVjbC5oICR7YnVpbGRfeG1fZmlsZX0gaHdpbnQuaCIKZWxzZQoJIyBXZSBj cmVhdGUgYSBzdWJkaXIsIHRoZW4gcnVuIGF1dG9jb25mIGluIHRoZSBzdWJkaXIuCgkjIFRvIHBy ZXZlbnQgcmVjdXJzaW9uIHdlIHNldCBob3N0IGFuZCBidWlsZCBmb3IgdGhlIG5ldwoJIyBpbnZv Y2F0aW9uIG9mIGNvbmZpZ3VyZSB0byB0aGUgYnVpbGQgZm9yIHRoaXMgaW52b2NhdGlvbgoJIyBv ZiBjb25maWd1cmUuIAoJdGVtcGRpcj1idWlsZC4kJAoJcm0gLXJmICR0ZW1wZGlyCglta2RpciAk dGVtcGRpcgoJY2QgJHRlbXBkaXIKCWNhc2UgJHtzcmNkaXJ9IGluCgkvKikgcmVhbHNyY2Rpcj0k e3NyY2Rpcn07OwoJKikgcmVhbHNyY2Rpcj0uLi8ke3NyY2Rpcn07OwoJZXNhYwoJQ0M9JHtDQ19G T1JfQlVJTER9ICR7cmVhbHNyY2Rpcn0vY29uZmlndXJlIFwKCQktLXRhcmdldD0kdGFyZ2V0IC0t aG9zdD0kYnVpbGQgLS1idWlsZD0kYnVpbGQKCgkjIFdlIGp1c3QgZmluaXNoZWQgdGVzdHMgZm9y IHRoZSBidWlsZCBtYWNoaW5lLCBzbyByZW5hbWUKCSMgdGhlIGZpbGUgYXV0by1idWlsZC5oIGlu IHRoZSBnY2MgZGlyZWN0b3J5LgoJbXYgYXV0by1ob3N0LmggLi4vYXV0by1idWlsZC5oCgljZCAu LgoJcm0gLXJmICR0ZW1wZGlyCglidWlsZF94bV9maWxlPSJhdXRvLWJ1aWxkLmggZ2Fuc2lkZWNs LmggJHtidWlsZF94bV9maWxlfSBod2ludC5oIgpmaQoKeG1fZmlsZT0iZ2Fuc2lkZWNsLmggJHt4 bV9maWxlfSIKdG1fZmlsZT0iZ2Fuc2lkZWNsLmggJHt0bV9maWxlfSIKCnZhcnM9Imhvc3RfeG1f ZmlsZSB0bV9maWxlIHRtX3BfZmlsZSB4bV9maWxlIGJ1aWxkX3htX2ZpbGUiCmxpbmtzPSJjb25m aWcuaCB0bS5oIHRtX3AuaCB0Y29uZmlnLmggaGNvbmZpZy5oIgpkZWZpbmVzPSJob3N0X3htX2Rl ZmluZXMgbnVsbF9kZWZpbmVzIG51bGxfZGVmaW5lcyB4bV9kZWZpbmVzIGJ1aWxkX3htX2RlZmlu ZXMiCgpybSAtZiBjb25maWcuYmFrCmlmIHRlc3QgLWYgY29uZmlnLnN0YXR1czsgdGhlbiBtdiAt ZiBjb25maWcuc3RhdHVzIGNvbmZpZy5iYWs7IGZpCgojIE1ha2UgdGhlIGxpbmtzLgp3aGlsZSB0 ZXN0IC1uICIkdmFycyIKZG8KCXNldCAkdmFyczsgdmFyPSQxOyBzaGlmdDsgdmFycz0kKgoJc2V0 ICRsaW5rczsgbGluaz0kMTsgc2hpZnQ7IGxpbmtzPSQqCglzZXQgJGRlZmluZXM7IGRlZmluZT0k MTsgc2hpZnQ7IGRlZmluZXM9JCoKCglybSAtZiAkbGluawoJIyBNYWtlIHN1cmUgdGhlIGZpbGUg aXMgY3JlYXRlZCwgZXZlbiBpZiBpdCBpcyBlbXB0eS4KCWVjaG8gPiRsaW5rCgoJIyBEZWZpbmUg VEFSR0VUX0NQVV9ERUZBVUxUIGlmIHRoZSBzeXN0ZW0gd2FudHMgb25lLgoJIyBUaGlzIHN1YnN0 aXR1dGVzIGZvciBsb3RzIG9mICouaCBmaWxlcy4KCWlmIHRlc3QgIiR0YXJnZXRfY3B1X2RlZmF1 bHQiICE9ICIiIC1hICRsaW5rID0gdG0uaAoJdGhlbgoJCWVjaG8gIiNkZWZpbmUgVEFSR0VUX0NQ VV9ERUZBVUxUICgkdGFyZ2V0X2NwdV9kZWZhdWx0KSIgPj4kbGluawoJZmkKCglmb3IgZmlsZSBp biBgZXZhbCBlY2hvICckJyR2YXJgOyBkbwoJCWNhc2UgJGZpbGUgaW4KCQlhdXRvLWNvbmZpZy5o KQoJCQk7OwoJCSopCgkJCWVjaG8gJyNpZmRlZiBJTl9HQ0MnID4+JGxpbmsKCQkJOzsKCQllc2Fj CgkJZWNobyAiI2luY2x1ZGUgXCIkZmlsZVwiIiA+PiRsaW5rCgkJY2FzZSAkZmlsZSBpbgoJCWF1 dG8tY29uZmlnLmgpCgkJCTs7CgkJKikKCQkJZWNobyAnI2VuZGlmJyA+PiRsaW5rCgkJCTs7CgkJ ZXNhYwoJZG9uZQoKCWZvciBkZWYgaW4gYGV2YWwgZWNobyAnJCckZGVmaW5lYDsgZG8KCQllY2hv ICIjaWZuZGVmICRkZWYiID4+JGxpbmsKCQllY2hvICIjZGVmaW5lICRkZWYiID4+JGxpbmsKCQll Y2hvICIjZW5kaWYiID4+JGxpbmsKCWRvbmUKZG9uZQoKIyBUcnVuY2F0ZSB0aGUgdGFyZ2V0IGlm IG5lY2Vzc2FyeQppZiB0ZXN0IHgkaG9zdF90cnVuY2F0ZV90YXJnZXQgIT0geDsgdGhlbgoJdGFy Z2V0PWBlY2hvICR0YXJnZXQgfCBzZWQgLWUgJ3MvXCguLi4uLi4uLi4uLi4uLlwpLiovXDEvJ2AK ZmkKCiMgR2V0IHRoZSB2ZXJzaW9uIHRyaWdnZXIgZmlsZW5hbWUgZnJvbSB0aGUgdG9wbGV2ZWwK aWYgdGVzdCAiJHt3aXRoX2djY192ZXJzaW9uX3RyaWdnZXIrc2V0fSIgPSBzZXQ7IHRoZW4KCWdj Y192ZXJzaW9uX3RyaWdnZXI9JHdpdGhfZ2NjX3ZlcnNpb25fdHJpZ2dlcgplbHNlCglnY2NfdmVy c2lvbl90cmlnZ2VyPSR7c3JjZGlyfS92ZXJzaW9uLmMKZmkKY2hhbmdlcXVvdGUoLClkbmwKZ2Nj X3ZlcnNpb249YGdyZXAgdmVyc2lvbl9zdHJpbmcgJHtnY2NfdmVyc2lvbl90cmlnZ2VyfSB8IHNl ZCAtZSAncy8uKlwiXChbXiBcIl0qXClbIFwiXS4qL1wxLydgCmNoYW5nZXF1b3RlKFssXSlkbmwK CiMgSW50ZXJuYXRpb25hbGl6YXRpb24KUEFDS0FHRT1nY2MKVkVSU0lPTj0iJGdjY192ZXJzaW9u IgpBQ19ERUZJTkVfVU5RVU9URUQoUEFDS0FHRSwgIiRQQUNLQUdFIikKQUNfREVGSU5FX1VOUVVP VEVEKFZFUlNJT04sICIkVkVSU0lPTiIpCkFDX1NVQlNUKFBBQ0tBR0UpCkFDX1NVQlNUKFZFUlNJ T04pCgpBTExfTElOR1VBUz0iZW5fVUsiCgojIE5MUyBzdXBwb3J0IGlzIHN0aWxsIGV4cGVyaW1l bnRhbCwgc28gZGlzYWJsZSBpdCBieSBkZWZhdWx0IGZvciBub3cuCkFDX0FSR19FTkFCTEUobmxz LAogIFsgIC0tZW5hYmxlLW5scyAgICAgICAgICAgIHVzZSBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9y dCAoZGlzYWJsZWQgYnkgZGVmYXVsdCldLAogICwgZW5hYmxlX25scz1ubykKCkFNX0dOVV9HRVRU RVhUClhHRVRURVhUPSJBV0s9JyRBV0snIFwkKFNIRUxMKSBcJCh0b3Bfc3JjZGlyKS9leGdldHRl eHQgJFhHRVRURVhUIgoKIyBXaW5kb3dzMzIgUmVnaXN0cnkgc3VwcG9ydCBmb3Igc3BlY2lmeWlu ZyBHQ0MgaW5zdGFsbGF0aW9uIHBhdGhzLgpBQ19BUkdfRU5BQkxFKHdpbjMyLXJlZ2lzdHJ5LApb ICAtLWRpc2FibGUtd2luMzItcmVnaXN0cnkKICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNh YmxlIGxvb2t1cCBvZiBpbnN0YWxsYXRpb24gcGF0aHMgaW4gdGhlCiAgICAgICAgICAgICAgICAg ICAgICAgICBSZWdpc3RyeSBvbiBXaW5kb3dzIGhvc3RzLgogIC0tZW5hYmxlLXdpbjMyLXJlZ2lz dHJ5IEVuYWJsZSByZWdpc3RyeSBsb29rdXAgKGRlZmF1bHQpLgogIC0tZW5hYmxlLXdpbjMyLXJl Z2lzdHJ5PUtFWQogICAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBLRVkgaW5zdGVhZCBvZiBH Q0MgdmVyc2lvbiBhcyB0aGUgbGFzdCBwb3J0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICBv ZiB0aGUgcmVnaXN0cnkga2V5Ll0sLCkKCkFDX01TR19DSEVDS0lORyh3aGV0aGVyIHdpbmRvd3Mg cmVnaXN0cnkgc3VwcG9ydCBpcyByZXF1ZXN0ZWQpCmlmIHRlc3QgeCRlbmFibGVfd2luMzJfcmVn aXN0cnkgIT0geG5vOyB0aGVuCiAgQUNfREVGSU5FKEVOQUJMRV9XSU4zMl9SRUdJU1RSWSkKICBB Q19NU0dfUkVTVUxUKHllcykKZWxzZQogIEFDX01TR19SRVNVTFQobm8pCmZpCgojIENoZWNrIGlm IHVzZXIgc3BlY2lmaWVkIGEgZGlmZmVyZW50IHJlZ2lzdHJ5IGtleS4KY2FzZSB4JHtlbmFibGVf d2luMzJfcmVnaXN0cnl9IGluCnggfCB4eWVzKQogICMgZGVmYXVsdC4KICBnY2NfY3Zfd2luMzJf cmVnaXN0cnlfa2V5PSIkVkVSU0lPTiIKICA7Owp4bm8pCiAgIyBubyByZWdpc3RyeSBsb29rdXAu CiAgZ2NjX2N2X3dpbjMyX3JlZ2lzdHJ5X2tleT0nJwogIDs7CiopCiAgIyB1c2VyLXNwZWNpZmll ZCBrZXkuCiAgZ2NjX2N2X3dpbjMyX3JlZ2lzdHJ5X2tleT0iJGVuYWJsZV93aW4zMl9yZWdpc3Ry eSIKICA7Owplc2FjCgppZiB0ZXN0IHgkZW5hYmxlX3dpbjMyX3JlZ2lzdHJ5ICE9IHhubzsgdGhl bgogIEFDX01TR19DSEVDS0lORyhyZWdpc3RyeSBrZXkgb24gd2luZG93cyBob3N0cykKICBBQ19E RUZJTkVfVU5RVU9URUQoV0lOMzJfUkVHSVNUUllfS0VZLCAiJGdjY19jdl93aW4zMl9yZWdpc3Ry eV9rZXkiKQogIEFDX01TR19SRVNVTFQoJGdjY19jdl93aW4zMl9yZWdpc3RyeV9rZXkpCmZpCgoj IEdldCBhbiBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBHQ0MgdG9wLWxldmVsIHNvdXJjZSBkaXJlY3Rv cnkKaG9sZGRpcj1gcHdkYApjZCAkc3JjZGlyCnRvcGRpcj1gcHdkYApjZCAkaG9sZGRpcgoKIyBD b25kaXRpb25hbGl6ZSB0aGUgbWFrZWZpbGUgZm9yIHRoaXMgaG9zdCBtYWNoaW5lLgojIE1ha2Ut aG9zdCBjb250YWlucyB0aGUgY29uY2F0ZW5hdGlvbiBvZiBhbGwgaG9zdCBtYWtlZmlsZSBmcmFn bWVudHMKIyBbdGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmVdLiAgVGhpcyBmaWxlIGlzIGJ1aWx0 IGJ5IGNvbmZpZ3VyZS5mcmFnLgpob3N0X292ZXJyaWRlcz1NYWtlLWhvc3QKZGVwX2hvc3RfeG1h a2VfZmlsZT0KZm9yIGYgaW4gLi4gJHtob3N0X3htYWtlX2ZpbGV9CmRvCglpZiB0ZXN0IC1mICR7 c3JjZGlyfS9jb25maWcvJGYKCXRoZW4KCQlkZXBfaG9zdF94bWFrZV9maWxlPSIke2RlcF9ob3N0 X3htYWtlX2ZpbGV9ICR7c3JjZGlyfS9jb25maWcvJGYiCglmaQpkb25lCgojIENvbmRpdGlvbmFs aXplIHRoZSBtYWtlZmlsZSBmb3IgdGhpcyB0YXJnZXQgbWFjaGluZS4KIyBNYWtlLXRhcmdldCBj b250YWlucyB0aGUgY29uY2F0ZW5hdGlvbiBvZiBhbGwgaG9zdCBtYWtlZmlsZSBmcmFnbWVudHMK IyBbdGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmVdLiAgVGhpcyBmaWxlIGlzIGJ1aWx0IGJ5IGNv bmZpZ3VyZS5mcmFnLgp0YXJnZXRfb3ZlcnJpZGVzPU1ha2UtdGFyZ2V0CmRlcF90bWFrZV9maWxl PQpmb3IgZiBpbiAuLiAke3RtYWtlX2ZpbGV9CmRvCglpZiB0ZXN0IC1mICR7c3JjZGlyfS9jb25m aWcvJGYKCXRoZW4KCQlkZXBfdG1ha2VfZmlsZT0iJHtkZXBfdG1ha2VfZmlsZX0gJHtzcmNkaXJ9 L2NvbmZpZy8kZiIKCWZpCmRvbmUKCiMgSWYgdGhlIGhvc3QgZG9lc24ndCBzdXBwb3J0IHN5bWxp bmtzLCBtb2RpZnkgQ0MgaW4KIyBGTEFHU19UT19QQVNTIHNvIENDPSJzdGFnZTEveGdjYyAtQnN0 YWdlMS8iIHdvcmtzLgojIE90aGVyd2lzZSwgd2UgY2FuIHVzZSAiQ0M9JChDQykiLgpybSAtZiBz eW10ZXN0LnRlbQppZiAkc3ltYm9saWNfbGluayAkc3JjZGlyL2djYy5jIHN5bXRlc3QudGVtIDI+ L2Rldi9udWxsCnRoZW4KCWNjX3NldF9ieV9jb25maWd1cmU9IlwkKENDKSIKCXF1b3RlZF9jY19z ZXRfYnlfY29uZmlndXJlPSJcJChDQykiCglzdGFnZV9wcmVmaXhfc2V0X2J5X2NvbmZpZ3VyZT0i XCQoU1RBR0VfUFJFRklYKSIKZWxzZQoJcm0gLWYgc3ltdGVzdC50ZW0KCWlmIGNwIC1wICRzcmNk aXIvZ2NjLmMgc3ltdGVzdC50ZW0gMj4vZGV2L251bGwKCXRoZW4KCQlzeW1ib2xpY19saW5rPSJj cCAtcCIKCWVsc2UKCQlzeW1ib2xpY19saW5rPSJjcCIKCWZpCgljY19zZXRfYnlfY29uZmlndXJl PSJcYGNhc2UgJ1wkKENDKScgaW4gc3RhZ2UqKSBlY2hvICdcJChDQyknIHwgc2VkIC1lICdzfHN0 YWdlfC4uL3N0YWdlfGcnOzsgKikgZWNobyAnXCQoQ0MpJzs7IGVzYWNcYCIKCXF1b3RlZF9jY19z ZXRfYnlfY29uZmlndXJlPSJcXFxgY2FzZSAnXFxcJChDQyknIGluIHN0YWdlKikgZWNobyAnXFxc JChDQyknIHwgc2VkIC1lICdzfHN0YWdlfC4uL3N0YWdlfGcnOzsgKikgZWNobyAnXFxcJChDQykn OzsgZXNhY1xcXGAiCglzdGFnZV9wcmVmaXhfc2V0X2J5X2NvbmZpZ3VyZT0iXGBjYXNlICdcJChT VEFHRV9QUkVGSVgpJyBpbiBzdGFnZSopIGVjaG8gJ1wkKFNUQUdFX1BSRUZJWCknIHwgc2VkIC1l ICdzfHN0YWdlfC4uL3N0YWdlfGcnOzsgKikgZWNobyAnXCQoU1RBR0VfUFJFRklYKSc7OyBlc2Fj XGAiCmZpCnJtIC1mIHN5bXRlc3QudGVtCgpvdXRfb2JqZWN0X2ZpbGU9YGJhc2VuYW1lICRvdXRf ZmlsZSAuY2AubwoKdG1fZmlsZV9saXN0PQpmb3IgZiBpbiAkdG1fZmlsZTsgZG8KICBjYXNlICRm IGluCiAgICBnYW5zaWRlY2wuaCApCiAgICAgICB0bV9maWxlX2xpc3Q9IiR7dG1fZmlsZV9saXN0 fSAkZiIgOzsKICAgICopIHRtX2ZpbGVfbGlzdD0iJHt0bV9maWxlX2xpc3R9IFwkKHNyY2Rpcikv Y29uZmlnLyRmIiA7OwogIGVzYWMKZG9uZQoKaG9zdF94bV9maWxlX2xpc3Q9CmZvciBmIGluICRo b3N0X3htX2ZpbGU7IGRvCiAgY2FzZSAkZiBpbgogICAgYXV0by1ob3N0LmggfCBnYW5zaWRlY2wu aCB8IGh3aW50LmggKQogICAgICAgaG9zdF94bV9maWxlX2xpc3Q9IiR7aG9zdF94bV9maWxlX2xp c3R9ICRmIiA7OwogICAgKikgaG9zdF94bV9maWxlX2xpc3Q9IiR7aG9zdF94bV9maWxlX2xpc3R9 IFwkKHNyY2RpcikvY29uZmlnLyRmIiA7OwogIGVzYWMKZG9uZQoKYnVpbGRfeG1fZmlsZV9saXN0 PQpmb3IgZiBpbiAkYnVpbGRfeG1fZmlsZTsgZG8KICBjYXNlICRmIGluCiAgICBhdXRvLWJ1aWxk LmggfCBhdXRvLWhvc3QuaCB8IGdhbnNpZGVjbC5oIHwgaHdpbnQuaCApCiAgICAgICBidWlsZF94 bV9maWxlX2xpc3Q9IiR7YnVpbGRfeG1fZmlsZV9saXN0fSAkZiIgOzsKICAgICopIGJ1aWxkX3ht X2ZpbGVfbGlzdD0iJHtidWlsZF94bV9maWxlX2xpc3R9IFwkKHNyY2RpcikvY29uZmlnLyRmIiA7 OwogIGVzYWMKZG9uZQoKIyBEZWZpbmUgbWFjcm8gQ1JPU1NfQ09NUElMRSBpbiBjb21waWxhdGlv bgojIGlmIHRoaXMgaXMgYSBjcm9zcy1jb21waWxlci4KIyBBbHNvIHVzZSBhbGwuY3Jvc3MgaW5z dGVhZCBvZiBhbGwuaW50ZXJuYWwKIyBhbmQgYWRkIGNyb3NzLW1ha2UgdG8gTWFrZWZpbGUuCmNy b3NzX292ZXJyaWRlcz0iL2Rldi9udWxsIgppZiB0ZXN0IHgkaG9zdCAhPSB4JHRhcmdldAp0aGVu Cgljcm9zc19kZWZpbmVzPSJDUk9TUz0tRENST1NTX0NPTVBJTEUiCgljcm9zc19vdmVycmlkZXM9 IiR7dG9wZGlyfS9jcm9zcy1tYWtlIgpmaQoKIyBXaGVuIGJ1aWxkaW5nIGdjYyB3aXRoIGEgY3Jv c3MtY29tcGlsZXIsIHdlIG5lZWQgdG8gZml4IGEgZmV3IHRoaW5ncy4KIyBUaGlzIG11c3QgY29t ZSBhZnRlciBjcm9zcy1tYWtlIGFzIHdlIHdhbnQgYWxsLmJ1aWxkIHRvIG92ZXJyaWRlCiMgYWxs LmNyb3NzLgpidWlsZF9vdmVycmlkZXM9Ii9kZXYvbnVsbCIKaWYgdGVzdCB4JGJ1aWxkICE9IHgk aG9zdAp0aGVuCglidWlsZF9vdmVycmlkZXM9IiR7dG9wZGlyfS9idWlsZC1tYWtlIgpmaQoKIyBF eHBhbmQgZXh0cmFfaGVhZGVycyB0byBpbmNsdWRlIGNvbXBsZXRlIHBhdGguCiMgVGhpcyBzdWJz dGl0dXRlcyBmb3IgbG90cyBvZiB0LSogZmlsZXMuCmV4dHJhX2hlYWRlcnNfbGlzdD0KaWYgdGVz dCAieCRleHRyYV9oZWFkZXJzIiA9IHgKdGhlbiB0cnVlCmVsc2UKCSMgUHJlcGVuZCAke3NyY2Rp cn0vZ2luY2x1ZGUvIHRvIGV2ZXJ5IGVudHJ5IGluIGV4dHJhX2hlYWRlcnMuCglmb3IgZmlsZSBp biAkZXh0cmFfaGVhZGVyczsKCWRvCgkJZXh0cmFfaGVhZGVyc19saXN0PSIke2V4dHJhX2hlYWRl cnNfbGlzdH0gXCQoc3JjZGlyKS9naW5jbHVkZS8ke2ZpbGV9IgoJZG9uZQpmaQoKaWYgdGVzdCB4 JHVzZV9jb2xsZWN0MiA9IHhubzsgdGhlbgoJdXNlX2NvbGxlY3QyPQpmaQoKIyBBZGQgYSBkZWZp bml0aW9uIG9mIFVTRV9DT0xMRUNUMiBpZiBzeXN0ZW0gd2FudHMgb25lLgojIEFsc28gdGVsbCB0 b3BsZXYuYyB3aGF0IHRvIGRvLgojIFRoaXMgc3Vic3RpdHV0ZXMgZm9yIGxvdHMgb2YgdC0qIGZp bGVzLgppZiB0ZXN0IHgkdXNlX2NvbGxlY3QyID0geAp0aGVuCgl3aWxsX3VzZV9jb2xsZWN0Mj0K CW1heWJlX3VzZV9jb2xsZWN0Mj0KZWxzZQoJd2lsbF91c2VfY29sbGVjdDI9ImNvbGxlY3QyIgoJ bWF5YmVfdXNlX2NvbGxlY3QyPSItRFVTRV9DT0xMRUNUMiIKZmkKCiMgTkVFRCBUTyBDT05WRVJU CiMgU2V0IE1EX0RFUFMgaWYgdGhlIHJlYWwgbWQgZmlsZSBpcyBpbiBtZC5wcmUtY3BwLgojIFNl dCBNRF9DUFAgdG8gdGhlIGNwcCB0byBwYXNzIHRoZSBtZCBmaWxlIHRocm91Z2guICBNZCBmaWxl cyB1c2UgJzsnCiMgZm9yIGxpbmUgb3JpZW50ZWQgY29tbWVudHMsIHNvIHdlIG11c3QgYWx3YXlz IHVzZSBhIEdOVSBjcHAuICBJZgojIGJ1aWxkaW5nIGdjYyB3aXRoIGEgY3Jvc3MgY29tcGlsZXIs IHVzZSB0aGUgY3Jvc3MgY29tcGlsZXIganVzdAojIGJ1aWx0LiAgT3RoZXJ3aXNlLCB3ZSBjYW4g dXNlIHRoZSBjcHAganVzdCBidWlsdC4KbWRfZmlsZV9zdWI9CmlmIHRlc3QgIngkbWRfY3BwZmxh Z3MiID0geAp0aGVuCgltZF9maWxlX3N1Yj0kc3JjZGlyL2NvbmZpZy8kbWRfZmlsZQplbHNlCglt ZF9maWxlPW1kCmZpCgojIElmIHdlIGhhdmUgZ2FzIGluIHRoZSBidWlsZCB0cmVlLCBtYWtlIGEg bGluayB0byBpdC4KaWYgdGVzdCAtZiAuLi9nYXMvTWFrZWZpbGU7IHRoZW4KCXJtIC1mIGFzOyAk c3ltYm9saWNfbGluayAuLi9nYXMvYXMtbmV3JGhvc3RfZXhlZXh0IGFzJGhvc3RfZXhlZXh0IDI+ L2Rldi9udWxsCmZpCgojIElmIHdlIGhhdmUgbm0gaW4gdGhlIGJ1aWxkIHRyZWUsIG1ha2UgYSBs aW5rIHRvIGl0LgppZiB0ZXN0IC1mIC4uL2JpbnV0aWxzL01ha2VmaWxlOyB0aGVuCglybSAtZiBu bTsgJHN5bWJvbGljX2xpbmsgLi4vYmludXRpbHMvbm0tbmV3JGhvc3RfZXhlZXh0IG5tJGhvc3Rf ZXhlZXh0IDI+L2Rldi9udWxsCmZpCgojIElmIHdlIGhhdmUgbGQgaW4gdGhlIGJ1aWxkIHRyZWUs IG1ha2UgYSBsaW5rIHRvIGl0LgppZiB0ZXN0IC1mIC4uL2xkL01ha2VmaWxlOyB0aGVuCiMJaWYg dGVzdCB4JHVzZV9jb2xsZWN0MiA9IHg7IHRoZW4KIwkJcm0gLWYgbGQ7ICRzeW1ib2xpY19saW5r IC4uL2xkL2xkLW5ldyRob3N0X2V4ZWV4dCBsZCRob3N0X2V4ZWV4dCAyPi9kZXYvbnVsbAojCWVs c2UKCQlybSAtZiBjb2xsZWN0LWxkOyAkc3ltYm9saWNfbGluayAuLi9sZC9sZC1uZXckaG9zdF9l eGVleHQgY29sbGVjdC1sZCRob3N0X2V4ZWV4dCAyPi9kZXYvbnVsbAojCWZpCmZpCgojIEZpZ3Vy ZSBvdXQgd2hhdCBhc3NlbWJsZXIgYWxpZ25tZW50IGZlYXR1cmVzIGFyZSBwcmVzZW50LgpBQ19N U0dfQ0hFQ0tJTkcoYXNzZW1ibGVyIGFsaWdubWVudCBmZWF0dXJlcykKZ2NjX2N2X2FzPQpnY2Nf Y3ZfYXNfYWxpZ25tZW50X2ZlYXR1cmVzPQpnY2NfY3ZfYXNfZ2FzX3NyY2Rpcj1gZWNobyAkc3Jj ZGlyIHwgc2VkIC1lICdzLC9nY2MkLCwnYC9nYXMKaWYgdGVzdCAteCAiJERFRkFVTFRfQVNTRU1C TEVSIjsgdGhlbgoJZ2NjX2N2X2FzPSIkREVGQVVMVF9BU1NFTUJMRVIiCmVsaWYgdGVzdCAteCAi JEFTIjsgdGhlbgoJZ2NjX2N2X2FzPSIkQVMiCmVsaWYgdGVzdCAteCBhcyRob3N0X2V4ZWV4dDsg dGhlbgoJIyBCdWlsZCB1c2luZyBhc3NlbWJsZXIgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgoJ Z2NjX2N2X2FzPS4vYXMkaG9zdF9leGVleHQKZWxpZiB0ZXN0IC1mICRnY2NfY3ZfYXNfZ2FzX3Ny Y2Rpci9jb25maWd1cmUuaW4gLWEgLWYgLi4vZ2FzL01ha2VmaWxlOyB0aGVuCgkjIFNpbmdsZSB0 cmVlIGJ1aWxkIHdoaWNoIGluY2x1ZGVzIGdhcy4KCWZvciBmIGluICRnY2NfY3ZfYXNfZ2FzX3Ny Y2Rpci9jb25maWd1cmUgJGdjY19jdl9hc19nYXNfc3JjZGlyL2NvbmZpZ3VyZS5pbiAkZ2NjX2N2 X2FzX2dhc19zcmNkaXIvTWFrZWZpbGUuaW4KCWRvCmNoYW5nZXF1b3RlKCwpZG5sCgkJZ2NjX2N2 X2dhc192ZXJzaW9uPWBncmVwICdeVkVSU0lPTj1bMC05XSpcLlswLTldKicgJGZgCmNoYW5nZXF1 b3RlKFssXSlkbmwKCQlpZiB0ZXN0IHgkZ2NjX2N2X2dhc192ZXJzaW9uICE9IHg7IHRoZW4KCQkJ YnJlYWsKCQlmaQoJZG9uZQpjaGFuZ2VxdW90ZSgsKWRubAoJZ2NjX2N2X2dhc19tYWpvcl92ZXJz aW9uPWBleHByICIkZ2NjX2N2X2dhc192ZXJzaW9uIiA6ICJWRVJTSU9OPVwoWzAtOV0qXCkiYAoJ Z2NjX2N2X2dhc19taW5vcl92ZXJzaW9uPWBleHByICIkZ2NjX2N2X2dhc192ZXJzaW9uIiA6ICJW RVJTSU9OPVswLTldKlwuXChbMC05XSpcKSJgCmNoYW5nZXF1b3RlKFssXSlkbmwKCWlmIHRlc3Qg eCRnY2NfY3ZfZ2FzX21ham9yX3ZlcnNpb24gIT0geCAtYSB4JGdjY19jdl9nYXNfbWlub3JfdmVy c2lvbiAhPSB4OyB0aGVuCgkJIyBHYXMgdmVyc2lvbiAyLjYgYW5kIGxhdGVyIHN1cHBvcnQgZm9y IC5iYWxpZ24gYW5kIC5wMmFsaWduLgoJCSMgYnl0ZXMgdG8gc2tpcCB3aGVuIHVzaW5nIC5wMmFs aWduLgoJCWlmIHRlc3QgIiRnY2NfY3ZfZ2FzX21ham9yX3ZlcnNpb24iIC1lcSAyIC1hICIkZ2Nj X2N2X2dhc19taW5vcl92ZXJzaW9uIiAtZ2UgNiAtbyAiJGdjY19jdl9nYXNfbWFqb3JfdmVyc2lv biIgLWd0IDI7IHRoZW4KCQkJZ2NjX2N2X2FzX2FsaWdubWVudF9mZWF0dXJlcz0iLmJhbGlnbiBh bmQgLnAyYWxpZ24iCgkJCUFDX0RFRklORShIQVZFX0dBU19CQUxJR05fQU5EX1AyQUxJR04pCgkJ ZmkKCQkjIEdhcyB2ZXJzaW9uIDIuOCBhbmQgbGF0ZXIgc3VwcG9ydCBzcGVjaWZ5aW5nIHRoZSBt YXhpbXVtCgkJIyBieXRlcyB0byBza2lwIHdoZW4gdXNpbmcgLnAyYWxpZ24uCgkJaWYgdGVzdCAi JGdjY19jdl9nYXNfbWFqb3JfdmVyc2lvbiIgLWVxIDIgLWEgIiRnY2NfY3ZfZ2FzX21pbm9yX3Zl cnNpb24iIC1nZSA4IC1vICIkZ2NjX2N2X2dhc19tYWpvcl92ZXJzaW9uIiAtZ3QgMjsgdGhlbgoJ CQlnY2NfY3ZfYXNfYWxpZ25tZW50X2ZlYXR1cmVzPSIucDJhbGlnbiBpbmNsdWRpbmcgbWF4aW11 bSBza2lwIgoJCQlBQ19ERUZJTkUoSEFWRV9HQVNfTUFYX1NLSVBfUDJBTElHTikKCQlmaQoJZmkK ZWxpZiB0ZXN0IHgkaG9zdCA9IHgkdGFyZ2V0OyB0aGVuCgkjIE5hdGl2ZSBidWlsZC4KCSMgU2Vh cmNoIHRoZSBzYW1lIGRpcmVjdG9yaWVzIHRoYXQgdGhlIGluc3RhbGxlZCBjb21waWxlciB3aWxs CgkjIHNlYXJjaC4gIEVsc2Ugd2UgbWF5IGZpbmQgdGhlIHdyb25nIGFzc2VtYmxlciBhbmQgbG9z ZS4gIElmIHdlCgkjIGRvIG5vdCBmaW5kIGEgc3VpdGFibGUgYXNzZW1ibGVyIGJpbmFyeSwgdGhl biB0cnkgdGhlIHVzZXIncwoJIyBwYXRoLgoJIwoJIyBBbHNvIG5vdGUgd2UgaGF2ZSB0byBjaGVj ayBNRF9FWEVDX1BSRUZJWCBiZWZvcmUgY2hlY2tpbmcgdGhlCgkjIHVzZXIncyBwYXRoLiAgVW5m b3J0dW5hdGVseSwgdGhlcmUgaXMgbm8gZ29vZCB3YXkgdG8gZ2V0IGF0IHRoZQoJIyB2YWx1ZSBv ZiBNRF9FWEVDX1BSRUZJWCBoZXJlLiAgU28gd2UgZG8gYSBicnV0ZSBmb3JjZSBzZWFyY2gKCSMg dGhyb3VnaCBhbGwgdGhlIGtub3duIE1EX0VYRUNfUFJFRklYIHZhbHVlcy4gIFVnaC4gIFRoaXMg bmVlZHMKCSMgdG8gYmUgZml4ZWQgYXMgcGFydCBvZiB0aGUgbWFrZS9jb25maWd1cmUgcmV3cml0 ZSB0b28uCgoJaWYgdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORTsgdGhlbgoJCWlmIHRlc3Qg IngkcHJlZml4IiA9IHhOT05FOyB0aGVuCgkJCXRlc3RfcHJlZml4PS91c3IvbG9jYWwKCQllbHNl CgkJCXRlc3RfcHJlZml4PSRwcmVmaXgKCQlmaQoJZWxzZQoJCXRlc3RfcHJlZml4PSRleGVjX3By ZWZpeAoJZmkKCgkjIElmIHRoZSBsb29wIGJlbG93IGRvZXMgbm90IGZpbmQgYW4gYXNzZW1ibGVy LCB0aGVuIHVzZSB3aGF0ZXZlcgoJIyBvbmUgd2UgY2FuIGZpbmQgaW4gdGhlIHVzZXJzJ3MgcGF0 aC4KCSMgdXNlcidzIHBhdGguCglhcz1hcyRob3N0X2V4ZWV4dAoKCXRlc3RfZGlycz0iJHRlc3Rf cHJlZml4L2xpYi9nY2MtbGliLyR0YXJnZXQvJGdjY192ZXJzaW9uIFwKCQkgICAkdGVzdF9wcmVm aXgvbGliL2djYy1saWIvJHRhcmdldCBcCgkJICAgL3Vzci9saWIvZ2NjLyR0YXJnZXQvJGdjY192 ZXJzaW9uIFwKCQkgICAvdXNyL2xpYi9nY2MvJHRhcmdldCBcCgkJICAgJHRlc3RfcHJlZml4LyR0 YXJnZXQvYmluLyR0YXJnZXQvJGdjY192ZXJzaW9uIFwKCQkgICAkdGVzdF9wcmVmaXgvJHRhcmdl dC9iaW4gXAoJCSAgIC91c3IvbGliZXhlYyBcCgkJICAgL3Vzci9jY3MvZ2NjIFwKCQkgICAvdXNy L2Njcy9iaW4gXAoJCSAgIC91ZGsvdXNyL2Njcy9iaW4gXAoJCSAgIC9ic2Q0My91c3IvbGliL2Nt cGxycy9jYyBcCgkJICAgL3Vzci9jcm9zczY0L3Vzci9iaW4gXAoJCSAgIC91c3IvbGliL2NtcGxy cy9jYyBcCgkJICAgL3N5c3YvdXNyL2xpYi9jbXBscnMvY2MgXAoJCSAgIC9zdnI0L3Vzci9saWIv Y21wbHJzL2NjIFwKCQkgICAvdXNyL2JpbiIKCglmb3IgZGlyIGluICR0ZXN0X2RpcnM7IGRvCgkJ aWYgdGVzdCAtZiAkZGlyL2FzJGhvc3RfZXhlZXh0OyB0aGVuCgkJCWdjY19jdl9hcz0kZGlyL2Fz JGhvc3RfZXhlZXh0CgkJCWJyZWFrOwoJCWZpCglkb25lCmZpCmlmIHRlc3QgeCRnY2NfY3ZfYXMg IT0geDsgdGhlbgoJIyBDaGVjayBpZiB3ZSBoYXZlIC5iYWxpZ24gYW5kIC5wMmFsaWduCgllY2hv ICIuYmFsaWduICA0IiA+IGNvbmZ0ZXN0LnMKCWVjaG8gIi5wMmFsaWduICAyIiA+PiBjb25mdGVz dC5zCglpZiAkZ2NjX2N2X2FzIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucyA+IC9kZXYvbnVsbCAy PiYxOyB0aGVuCgkJZ2NjX2N2X2FzX2FsaWdubWVudF9mZWF0dXJlcz0iLmJhbGlnbiBhbmQgLnAy YWxpZ24iCgkJQUNfREVGSU5FKEhBVkVfR0FTX0JBTElHTl9BTkRfUDJBTElHTikKCWZpCglybSAt ZiBjb25mdGVzdC5zIGNvbmZ0ZXN0Lm8KCSMgQ2hlY2sgaWYgc3BlY2lmeWluZyB0aGUgbWF4aW11 bSBieXRlcyB0byBza2lwIHdoZW4KCSMgdXNpbmcgLnAyYWxpZ24gaXMgc3VwcG9ydGVkLgoJZWNo byAiLnAyYWxpZ24gNCwsNyIgPiBjb25mdGVzdC5zCglpZiAkZ2NjX2N2X2FzIC1vIGNvbmZ0ZXN0 Lm8gY29uZnRlc3QucyA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCgkJZ2NjX2N2X2FzX2FsaWdubWVu dF9mZWF0dXJlcz0iLnAyYWxpZ24gaW5jbHVkaW5nIG1heGltdW0gc2tpcCIKCQlBQ19ERUZJTkUo SEFWRV9HQVNfTUFYX1NLSVBfUDJBTElHTikKCWZpCglybSAtZiBjb25mdGVzdC5zIGNvbmZ0ZXN0 Lm8KZmkKQUNfTVNHX1JFU1VMVCgkZ2NjX2N2X2FzX2FsaWdubWVudF9mZWF0dXJlcykKCkFDX01T R19DSEVDS0lORyhhc3NlbWJsZXIgc3Vic2VjdGlvbiBzdXBwb3J0KQpnY2NfY3ZfYXNfc3Vic2Vj dGlvbnM9CmlmIHRlc3QgeCRnY2NfY3ZfYXMgIT0geDsgdGhlbgoJIyBDaGVjayBpZiB3ZSBoYXZl IC5zdWJzZWN0aW9uCgllY2hvICIuc3Vic2VjdGlvbiAxIiA+IGNvbmZ0ZXN0LnMKCWlmICRnY2Nf Y3ZfYXMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KCQln Y2NfY3ZfYXNfc3Vic2VjdGlvbnM9Ii5zdWJzZWN0aW9uIgoJCWlmIHRlc3QgLXggbm0kaG9zdF9l eGVleHQ7IHRoZW4KCQkJZ2NjX2N2X25tPS4vbm0kaG9zdF9leGVleHQKCQllbGlmIHRlc3QgeCRo b3N0ID0geCR0YXJnZXQ7IHRoZW4KCQkJIyBOYXRpdmUgYnVpbGQuCgkJCWdjY19jdl9ubT1ubSRo b3N0X2V4ZWV4dAoJCWZpCgkJaWYgdGVzdCB4JGdjY19jdl9ubSAhPSB4OyB0aGVuCgkJCWNhdCA+ IGNvbmZ0ZXN0LnMgPDxFT0YKY29uZnRlc3RfbGFiZWwxOiAud29yZCAwCi5zdWJzZWN0aW9uIC0x CmNvbmZ0ZXN0X2xhYmVsMjogLndvcmQgMAoucHJldmlvdXMKRU9GCgkJCWlmICRnY2NfY3ZfYXMg LW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KCQkJCSRnY2Nf Y3Zfbm0gY29uZnRlc3QubyB8IGdyZXAgY29uZnRlc3RfbGFiZWwxID4gY29uZnRlc3Qubm0xCgkJ CQkkZ2NjX2N2X25tIGNvbmZ0ZXN0Lm8gfCBncmVwIGNvbmZ0ZXN0X2xhYmVsMiB8IHNlZCAtZSAn cy9sYWJlbDIvbGFiZWwxLycgPiBjb25mdGVzdC5ubTIKCQkJCWlmIGNtcCBjb25mdGVzdC5ubTEg Y29uZnRlc3Qubm0yID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KCQkJCQk6CgkJCQllbHNlCgkJCQkJ Z2NjX2N2X2FzX3N1YnNlY3Rpb25zPSJ3b3JraW5nIC5zdWJzZWN0aW9uIC0xIgoJCQkJCUFDX0RF RklORShIQVZFX0dBU19TVUJTRUNUSU9OX09SREVSSU5HKQoJCQkJZmkKCQkJZmkKCQlmaQoJZmkK CXJtIC1mIGNvbmZ0ZXN0LnMgY29uZnRlc3QubyBjb25mdGVzdC5ubTEgY29uZnRlc3Qubm0yCmZp CkFDX01TR19SRVNVTFQoJGdjY19jdl9hc19zdWJzZWN0aW9ucykKCmNhc2UgIiR0YXJnZXQiIGlu IAogIHNwYXJjKi0qLSopCiAgICBBQ19DQUNIRV9DSEVDSyhbYXNzZW1ibGVyIC5yZWdpc3RlciBw c2V1ZG8tb3Agc3VwcG9ydF0sCglnY2NfY3ZfYXNfcmVnaXN0ZXJfcHNldWRvX29wLCBbCglnY2Nf Y3ZfYXNfcmVnaXN0ZXJfcHNldWRvX29wPXVua25vd24KCWlmIHRlc3QgeCRnY2NfY3ZfYXMgIT0g eDsgdGhlbgoJICAgICMgQ2hlY2sgaWYgd2UgaGF2ZSAucmVnaXN0ZXIKCSAgICBlY2hvICIucmVn aXN0ZXIgJWcyLCAjc2NyYXRjaCIgPiBjb25mdGVzdC5zCgkgICAgaWYgJGdjY19jdl9hcyAtbyBj b25mdGVzdC5vIGNvbmZ0ZXN0LnMgPiAvZGV2L251bGwgMj4mMTsgdGhlbgoJCWdjY19jdl9hc19y ZWdpc3Rlcl9wc2V1ZG9fb3A9eWVzCgkgICAgZWxzZQoJCWdjY19jdl9hc19yZWdpc3Rlcl9wc2V1 ZG9fb3A9bm8KCSAgICBmaQoJICAgIHJtIC1mIGNvbmZ0ZXN0LnMgY29uZnRlc3QubwoJZmkKICAg IF0pCiAgICBpZiB0ZXN0ICJ4JGdjY19jdl9hc19yZWdpc3Rlcl9wc2V1ZG9fb3AiID0geHllczsg dGhlbgoJQUNfREVGSU5FKEhBVkVfQVNfUkVHSVNURVJfUFNFVURPX09QKQogICAgZmkKCiAgICBj YXNlICIkdG1fZmlsZSIgaW4KICAgICo2NCopCglBQ19DQUNIRV9DSEVDSyhbZm9yIDY0IGJpdCBz dXBwb3J0IGluIGFzc2VtYmxlciAoJGdjY19jdl9hcyldLAoJICAgIGdjY19jdl9hc19mbGFnczY0 LCBbCgkJaWYgdGVzdCAtbiAiJGdjY19jdl9hcyI7IHRoZW4KCQkgICAgZWNobyAiLnh3b3JkIGZv byIgPiBjb25mdGVzdC5zCgkJICAgIGdjY19jdl9hc19mbGFnczY0PW5vCgkJICAgIGZvciBmbGFn IGluICIteGFyY2g9djkiICItNjQgLUF2OSI7IGRvCgkJCWlmICRnY2NfY3ZfYXMgJGZsYWcgLW8g Y29uZnRlc3QubyBjb25mdGVzdC5zIFwKCQkJICAgID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KCQkJ ICAgIGdjY19jdl9hc19mbGFnczY0PSRmbGFnCgkJCSAgICBicmVhawoJCQlmaQoJCSAgICBkb25l CgkJICAgIHJtIC1mIGNvbmZ0ZXN0LnMgY29uZnRlc3QubwoJCWVsc2UKCQkgICAgaWYgdGVzdCAi JGdhcyIgPSB5ZXM7IHRoZW4KCQkJZ2NjX2N2X2FzX2ZsYWdzNjQ9Ii02NCAtQXY5IgoJCSAgICBl bHNlCgkJCWdjY19jdl9hc19mbGFnczY0PSIteGFyY2g9djkiCgkJICAgIGZpCgkJZmkKCV0pCglp ZiB0ZXN0ICJ4JGdjY19jdl9hc19mbGFnczY0IiA9IHhubzsgdGhlbgpjaGFuZ2VxdW90ZSgsICkK CSAgICB0bWFrZV9maWxlPWBlY2hvICIgJHRtYWtlX2ZpbGUgIiB8IHNlZCAtZSAncywgc3BhcmMv dC1zb2wyLTY0ICwgLCcgLWUgJ3MsXiAsLCcgLWUgJ3MsICQsLCdgCgkgICAgZGVwX3RtYWtlX2Zp bGU9YGVjaG8gIiAkZGVwX3RtYWtlX2ZpbGUgIiB8IHNlZCAtZSAncywgW14gXSovY29uZmlnL3Nw YXJjL3Qtc29sMi02NCAsICwnIC1lICdzLF4gLCwnIC1lICdzLCAkLCwnYApjaGFuZ2VxdW90ZShb LCBdKQoJZWxzZQoJICAgIEFDX0RFRklORV9VTlFVT1RFRChBU19TUEFSQzY0X0ZMQUcsICIkZ2Nj X2N2X2FzX2ZsYWdzNjQiKQoJZmkKCTs7CiAgICAqKSBnY2NfY3ZfYXNfZmxhZ3M2ND0ke2djY19j dl9hc19mbGFnczY0LW5vfQoJOzsKICAgIGVzYWMKCiAgICBpZiB0ZXN0ICJ4JGdjY19jdl9hc19m bGFnczY0IiAhPSB4bm87IHRoZW4KCUFDX0NBQ0hFX0NIRUNLKFtmb3IgYXNzZW1ibGVyIG9mZnNl dGFibGUgJWxvKCkgc3VwcG9ydF0sCgkgICAgZ2NjX2N2X2FzX29mZnNldGFibGVfbG8xMCwgWwoJ ICAgIGdjY19jdl9hc19vZmZzZXRhYmxlX2xvMTA9dW5rbm93bgoJICAgIGlmIHRlc3QgIngkZ2Nj X2N2X2FzIiAhPSB4OyB0aGVuCgkJIyBDaGVjayBpZiBhc3NlbWJsZXIgaGFzIG9mZnNldGFibGUg JWxvKCkKCQllY2hvICJvciAlZzEsICVsbyhhYikgKyAxMiwgJWcxIiA+IGNvbmZ0ZXN0LnMKCQll Y2hvICJvciAlZzEsICVsbyhhYiArIDEyKSwgJWcxIiA+IGNvbmZ0ZXN0MS5zCgkJaWYgJGdjY19j dl9hcyAkZ2NjX2N2X2FzX2ZsYWdzNjQgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zIFwKCQkJPiAv ZGV2L251bGwgMj4mMSAmJgoJCSAgICRnY2NfY3ZfYXMgJGdjY19jdl9hc19mbGFnczY0IC1vIGNv bmZ0ZXN0MS5vIGNvbmZ0ZXN0MS5zIFwKCQkJPiAvZGV2L251bGwgMj4mMTsgdGhlbgoJCSAgICBp ZiBjbXAgY29uZnRlc3QubyBjb25mdGVzdDEubyA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCgkJCWdj Y19jdl9hc19vZmZzZXRhYmxlX2xvMTA9bm8KCQkgICAgZWxzZQoJCQlnY2NfY3ZfYXNfb2Zmc2V0 YWJsZV9sbzEwPXllcwoJCSAgICBmaQoJCWVsc2UKCQkgICAgZ2NjX2N2X2FzX29mZnNldGFibGVf bG8xMD1ubwoJCWZpCgkJcm0gLWYgY29uZnRlc3QucyBjb25mdGVzdC5vIGNvbmZ0ZXN0MS5zIGNv bmZ0ZXN0MS5vCgkgICAgZmkKCV0pCglpZiB0ZXN0ICJ4JGdjY19jdl9hc19vZmZzZXRhYmxlX2xv MTAiID0geHllczsgdGhlbgoJICAgIEFDX0RFRklORShIQVZFX0FTX09GRlNFVEFCTEVfTE8xMCkK CWZpCiAgICBmaQogICAgOzsKCmNoYW5nZXF1b3RlKCwpZG5sCiAgaVszNDU2N104Ni0qLSopCmNo YW5nZXF1b3RlKFssXSlkbmwKICAgIEFDX01TR19DSEVDS0lORyhhc3NlbWJsZXIgaW5zdHJ1Y3Rp b25zKQogICAgZ2NjX2N2X2FzX2luc3RydWN0aW9ucz0KICAgIGlmIHRlc3QgeCRnY2NfY3ZfYXMg IT0geDsgdGhlbgoJc2V0ICJmaWxkcyBmaXN0cyIgImZpbGRzIG1lbTsgZmlzdHMgbWVtIgoJd2hp bGUgdGVzdCAkIyAtZ3QgMAogIAlkbwoJCWVjaG8gIiQyIiA+IGNvbmZ0ZXN0LnMKCQlpZiAkZ2Nj X2N2X2FzIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QucyA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCgkJ CWdjY19jdl9hc19pbnN0cnVjdGlvbnM9JHtnY2NfY3ZfYXNfaW5zdHJ1Y3Rpb25zfSQxIiAiCgkJ CUFDX0RFRklORV9VTlFVT1RFRChIQVZFX0dBU19gZWNobyAiJDEiIHwgdHIgJ1thLXogXScgJ1tB LVpfXSdgKQoJCWZpCgkJc2hpZnQgMgoJZG9uZQoJcm0gLWYgY29uZnRlc3QucyBjb25mdGVzdC5v CiAgICBmaQogICAgQUNfTVNHX1JFU1VMVCgkZ2NjX2N2X2FzX2luc3RydWN0aW9ucykKICAgIDs7 CmVzYWMKCiMgRmlndXJlIG91dCB3aGF0IGxhbmd1YWdlIHN1YmRpcmVjdG9yaWVzIGFyZSBwcmVz ZW50LgojIExvb2sgaWYgdGhlIHVzZXIgc3BlY2lmaWVkIC0tZW5hYmxlLWxhbmd1YWdlcz0iLi4u IjsgaWYgbm90LCB1c2UKIyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgJExBTkdVQUdFUyBpZiBk ZWZpbmVkLiAkTEFOR1VBR0VTIG1pZ2h0CiMgZ28gYXdheSBzb21lIGRheS4KaWYgdGVzdCB4IiR7 ZW5hYmxlX2xhbmd1YWdlcytzZXR9IiAhPSB4c2V0OyB0aGVuCglpZiB0ZXN0IHgiJHtMQU5HVUFH RVMrc2V0fSIgPSB4c2V0OyB0aGVuCgkJZW5hYmxlX2xhbmd1YWdlcz0iYGVjaG8gJHtMQU5HVUFH RVN9IHwgdHIgJyAnICcsJ2AiCgllbHNlCgkJZW5hYmxlX2xhbmd1YWdlcz1hbGwKCWZpCmZpCnN1 YmRpcnM9CmZvciBsYW5nIGluICR7c3JjZGlyfS8qL2NvbmZpZy1sYW5nLmluIC4uCmRvCgljYXNl ICRsYW5nIGluCgkuLikgOzsKCSMgVGhlIG9kZCBxdW90aW5nIGluIHRoZSBuZXh0IGxpbmUgd29y a3MgYXJvdW5kCgkjIGFuIGFwcGFyZW50IGJ1ZyBpbiBiYXNoIDEuMTIgb24gbGludXguCmNoYW5n ZXF1b3RlKCwpZG5sCgkke3NyY2Rpcn0vWypdL2NvbmZpZy1sYW5nLmluKSA7OwoJKikKCSAgbGFu Z19hbGlhcz1gc2VkIC1uIC1lICdzLF5sYW5ndWFnZT1bJyInIiciJyJdXCguKlwpWyInIiciJyIn XS4qJCxcMSxwJyAtZSAncyxebGFuZ3VhZ2U9XChbXiAJXSpcKS4qJCxcMSxwJyAkbGFuZ2AKCSAg aWYgdGVzdCAieCRsYW5nX2FsaWFzIiA9IHgKCSAgdGhlbgoJCWVjaG8gIiRsYW5nIGRvZXNuJ3Qg c2V0IFwkbGFuZ3VhZ2UuIiAxPiYyCgkJZXhpdCAxCgkgIGZpCgkgIGlmIHRlc3QgeCIke2VuYWJs ZV9sYW5ndWFnZXN9IiA9IHhhbGw7IHRoZW4KCSAgCWFkZF90aGlzX2xhbmc9eWVzCgkgIGVsc2UK CQljYXNlICIke2VuYWJsZV9sYW5ndWFnZXN9IiBpbgoJCSAgICAke2xhbmdfYWxpYXN9IHwgIiR7 bGFuZ19hbGlhc30sIiogfCAqIiwke2xhbmdfYWxpYXN9LCIqIHwgKiIsJHtsYW5nX2FsaWFzfSIg KQoJCQlhZGRfdGhpc19sYW5nPXllcwoJCQk7OwoJCSAgICAqICkKCQkJYWRkX3RoaXNfbGFuZz1u bwoJCQk7OwoJCWVzYWMKCSAgZmkKCSAgaWYgdGVzdCB4IiR7YWRkX3RoaXNfbGFuZ30iID0geHll czsgdGhlbgoJCWNhc2UgJGxhbmcgaW4KCQkgICAgJHtzcmNkaXJ9L2FkYS9jb25maWctbGFuZy5p bikKCQkJaWYgdGVzdCB4JGduYXQgPSB4eWVzIDsgdGhlbgoJCQkJc3ViZGlycz0iJHN1YmRpcnMg YGVjaG8gJGxhbmcgfCBzZWQgLWUgJ3MsXi4qL1woW14vXSpcKS9jb25maWctbGFuZy5pbiQsXDEs J2AiCgkJCWZpCgkJCTs7CgkJICAgICopCgkJCXN1YmRpcnM9IiRzdWJkaXJzIGBlY2hvICRsYW5n IHwgc2VkIC1lICdzLF4uKi9cKFteL10qXCkvY29uZmlnLWxhbmcuaW4kLFwxLCdgIgoJCQk7OwoJ CWVzYWMKCSAgZmkKCSAgOzsKY2hhbmdlcXVvdGUoWyxdKWRubAoJZXNhYwpkb25lCgojIE1ha2Ug Z3Roci1kZWZhdWx0LmggaWYgd2UgaGF2ZSBhIHRocmVhZCBmaWxlLgpndGhyZWFkX2ZsYWdzPQpp ZiB0ZXN0ICR0aHJlYWRfZmlsZSAhPSBzaW5nbGU7IHRoZW4KICAgIHJtIC1mIGd0aHItZGVmYXVs dC5oCiAgICBlY2hvICIjaW5jbHVkZSBcImd0aHItJHt0aHJlYWRfZmlsZX0uaFwiIiA+IGd0aHIt ZGVmYXVsdC5oCiAgICBndGhyZWFkX2ZsYWdzPS1ESEFWRV9HVEhSX0RFRkFVTFQKZmkKQUNfU1VC U1QoZ3RocmVhZF9mbGFncykKCiMgRmluZCBvdXQgd2hhdCBHQyBpbXBsZW1lbnRhdGlvbiB3ZSB3 YW50LCBvciBtYXksIHVzZS4KQUNfQVJHX1dJVEgoZ2MsClsgIC0td2l0aC1nYz17c2ltcGxlLHBh Z2V9IENob29zZSB0aGUgZ2FyYmFnZSBjb2xsZWN0aW9uIG1lY2hhbmlzbSB0byB1c2UKICAgICAg ICAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGUgY29tcGlsZXIuXSwKW2Nhc2UgIiR3aXRodmFs IiBpbgogIHNpbXBsZSB8IHBhZ2UpCiAgICBHR0M9Z2djLSR3aXRodmFsCiAgICA7OwogICopCiAg ICBBQ19NU0dfRVJST1IoWyR3aXRodmFsIGlzIGFuIGludmFsaWQgb3B0aW9uIHRvIC0td2l0aC1n Y10pCiAgICA7Owplc2FjXSwKW2lmIHRlc3QgJGFjX2N2X2Z1bmNfbW1hcF9hbnl3aGVyZSA9IHll cyBcCiAgICB8fCB0ZXN0ICRhY19jdl9mdW5jX3ZhbGxvYyA9IHllczsgdGhlbgogIEdHQz1nZ2Mt cGFnZQplbHNlCiAgR0dDPWdnYy1zaW1wbGUKZmldKQpBQ19TVUJTVChHR0MpCmVjaG8gIlVzaW5n ICRHR0MgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbi4iCgojIEJ1aWxkIGEgbmV3LWFiaSAoYysrKSBz eXN0ZW0KQUNfQVJHX0VOQUJMRShuZXctZ3h4LWFiaSwKWyAgLS1lbmFibGUtbmV3LWd4eC1hYmkK CQkJICBzZWxlY3QgdGhlIG5ldyBhYmkgZm9yIGcrKy4gWW91IG11c3Qgc2VsZWN0IGFuIEFCSQoJ CQkgIGF0IGNvbmZpZ3VyYXRpb24gdGltZSwgc28gdGhhdCB0aGUgY29ycmVjdCBydW50aW1lCgkJ CSAgc3VwcG9ydCBpcyBidWlsdC4gWW91IGNhbm5vdCBtaXggQUJJcy5dLApbQUNfREVGSU5FKEVO QUJMRV9ORVdfR1hYX0FCSSkKR1hYX0FCSV9GTEFHPSctZm5ldy1hYmknCmVjaG8gIkJ1aWxkaW5n IGEgbmV3LWFiaSBnKysgY29tcGlsZXIuIgpdKQpBQ19TVUJTVChHWFhfQUJJX0ZMQUcpCgojIE1h a2UgZW1wdHkgZmlsZXMgdG8gY29udGFpbiB0aGUgc3BlY3MgYW5kIG9wdGlvbnMgZm9yIGVhY2gg bGFuZ3VhZ2UuCiMgVGhlbiBhZGQgI2luY2x1ZGUgbGluZXMgdG8gZm9yIGEgY29tcGlsZXIgdGhh dCBoYXMgc3BlY3MgYW5kL29yIG9wdGlvbnMuCgpsYW5nX3NwZWNzX2ZpbGVzPQpsYW5nX29wdGlv bnNfZmlsZXM9CmxhbmdfdHJlZV9maWxlcz0Kcm0gLWYgc3BlY3MuaCBvcHRpb25zLmggZ2VuY2hl Y2suaAp0b3VjaCBzcGVjcy5oIG9wdGlvbnMuaCBnZW5jaGVjay5oCmZvciBzdWJkaXIgaW4gLiAk c3ViZGlycwpkbwoJaWYgdGVzdCAtZiAkc3JjZGlyLyRzdWJkaXIvbGFuZy1zcGVjcy5oOyB0aGVu CgkJZWNobyAiI2luY2x1ZGUgXCIkc3ViZGlyL2xhbmctc3BlY3MuaFwiIiA+PnNwZWNzLmgKCQls YW5nX3NwZWNzX2ZpbGVzPSIkbGFuZ19zcGVjc19maWxlcyAkc3JjZGlyLyRzdWJkaXIvbGFuZy1z cGVjcy5oIgoJZmkKCWlmIHRlc3QgLWYgJHNyY2Rpci8kc3ViZGlyL2xhbmctb3B0aW9ucy5oOyB0 aGVuCgkJZWNobyAiI2luY2x1ZGUgXCIkc3ViZGlyL2xhbmctb3B0aW9ucy5oXCIiID4+b3B0aW9u cy5oCgkJbGFuZ19vcHRpb25zX2ZpbGVzPSIkbGFuZ19vcHRpb25zX2ZpbGVzICRzcmNkaXIvJHN1 YmRpci9sYW5nLW9wdGlvbnMuaCIKCWZpCglpZiB0ZXN0IC1mICRzcmNkaXIvJHN1YmRpci8kc3Vi ZGlyLXRyZWUuZGVmOyB0aGVuCgkJZWNobyAiI2luY2x1ZGUgXCIkc3ViZGlyLyRzdWJkaXItdHJl ZS5kZWZcIiIgPj5nZW5jaGVjay5oCgkJbGFuZ190cmVlX2ZpbGVzPSIkbGFuZ190cmVlX2ZpbGVz ICRzcmNkaXIvJHN1YmRpci8kc3ViZGlyLXRyZWUuZGVmIgoJZmkKZG9uZQoKIyBUaGVzZSAod2l0 aG91dCAiYWxsXyIpIGFyZSBzZXQgaW4gZWFjaCBjb25maWctbGFuZy5pbi4KIyBgbGFuZ3VhZ2Un IG11c3QgYmUgYSBzaW5nbGUgd29yZCBzbyBpcyBzcGVsbGVkIHNpbmd1bGFybHkuCmFsbF9sYW5n dWFnZXM9CmFsbF9ib290X2xhbmd1YWdlcz0KYWxsX2NvbXBpbGVycz0KYWxsX3N0YWdlc3R1ZmY9 CmFsbF9kaWZmX2V4Y2x1ZGVzPQphbGxfb3V0cHV0cz0nTWFrZWZpbGUgaW50bC9NYWtlZmlsZSBw by9NYWtlZmlsZS5pbiBmaXhpbmMvTWFrZWZpbGUgZ2NjYnVnJwojIExpc3Qgb2YgbGFuZ3VhZ2Ug bWFrZWZpbGUgZnJhZ21lbnRzLgphbGxfbGFuZ19tYWtlZmlsZXM9CmFsbF9oZWFkZXJzPQphbGxf bGliMmZ1bmNzPQoKIyBBZGQgdGhlIGxhbmd1YWdlIGZyYWdtZW50cy4KIyBMYW5ndWFnZXMgYXJl IGFkZGVkIHZpYSB0d28gbWVjaGFuaXNtcy4gIFNvbWUgaW5mb3JtYXRpb24gbXVzdCBiZQojIHJl Y29yZGVkIGluIG1ha2VmaWxlIHZhcmlhYmxlcywgdGhlc2UgYXJlIGRlZmluZWQgaW4gY29uZmln LWxhbmcuaW4uCiMgV2UgYWNjdW11bGF0ZSB0aGVtIGFuZCBwbHVnIHRoZW0gaW50byB0aGUgbWFp biBNYWtlZmlsZS4KIyBUaGUgb3RoZXIgbWVjaGFuaXNtIGlzIGEgc2V0IG9mIGhvb2tzIGZvciBl YWNoIG9mIHRoZSBtYWluIHRhcmdldHMKIyBsaWtlIGBjbGVhbicsIGBpbnN0YWxsJywgZXRjLgoK bGFuZ3VhZ2VfZnJhZ21lbnRzPSJNYWtlLWxhbmciCmxhbmd1YWdlX2hvb2tzPSJNYWtlLWhvb2tz IgpvbGRzdHlsZV9zdWJkaXJzPQoKZm9yIHMgaW4gLi4gJHN1YmRpcnMKZG8KCWlmIHRlc3QgJHMg IT0gIi4uIgoJdGhlbgoJCWxhbmd1YWdlPQoJCWJvb3RfbGFuZ3VhZ2U9CgkJY29tcGlsZXJzPQoJ CXN0YWdlc3R1ZmY9CgkJZGlmZl9leGNsdWRlcz0KCQloZWFkZXJzPQoJCW91dHB1dHM9CgkJbGli MmZ1bmNzPQoJCS4gJHtzcmNkaXJ9LyRzL2NvbmZpZy1sYW5nLmluCgkJaWYgdGVzdCAieCRsYW5n dWFnZSIgPSB4CgkJdGhlbgoJCQllY2hvICIke3NyY2Rpcn0vJHMvY29uZmlnLWxhbmcuaW4gZG9l c24ndCBzZXQgXCRsYW5ndWFnZS4iIDE+JjIKCQkJZXhpdCAxCgkJZmkKCQlhbGxfbGFuZ19tYWtl ZmlsZXM9IiRhbGxfbGFuZ19tYWtlZmlsZXMgJHtzcmNkaXJ9LyRzL01ha2UtbGFuZy5pbiAke3Ny Y2Rpcn0vJHMvTWFrZWZpbGUuaW4iCgkJYWxsX2xhbmd1YWdlcz0iJGFsbF9sYW5ndWFnZXMgJGxh bmd1YWdlIgoJCWlmIHRlc3QgIngkYm9vdF9sYW5ndWFnZSIgPSB4eWVzCgkJdGhlbgoJCQlhbGxf Ym9vdF9sYW5ndWFnZXM9IiRhbGxfYm9vdF9sYW5ndWFnZXMgJGxhbmd1YWdlIgoJCWZpCgkJYWxs X2NvbXBpbGVycz0iJGFsbF9jb21waWxlcnMgJGNvbXBpbGVycyIKCQlhbGxfc3RhZ2VzdHVmZj0i JGFsbF9zdGFnZXN0dWZmICRzdGFnZXN0dWZmIgoJCWFsbF9kaWZmX2V4Y2x1ZGVzPSIkYWxsX2Rp ZmZfZXhjbHVkZXMgJGRpZmZfZXhjbHVkZXMiCgkJYWxsX2hlYWRlcnM9IiRhbGxfaGVhZGVycyAk aGVhZGVycyIKCQlhbGxfb3V0cHV0cz0iJGFsbF9vdXRwdXRzICRvdXRwdXRzIgoJCWlmIHRlc3Qg eCRvdXRwdXRzID0geAoJCXRoZW4KCQkJb2xkc3R5bGVfc3ViZGlycz0iJG9sZHN0eWxlX3N1YmRp cnMgJHMiCgkJZmkKCQlhbGxfbGliMmZ1bmNzPSIkYWxsX2xpYjJmdW5jcyAkbGliMmZ1bmNzIgoJ ZmkKZG9uZQoKIyBTaW5jZSB3ZSBjYW4ndCB1c2UgYDo6JyB0YXJnZXRzLCB3ZSBsaW5rIGVhY2gg bGFuZ3VhZ2UgaW4KIyB3aXRoIGEgc2V0IG9mIGhvb2tzLCByZWFjaGVkIGluZGlyZWN0bHkgdmlh IGxhbmcuJHt0YXJnZXR9LgoKcm0gLWYgTWFrZS1ob29rcwp0b3VjaCBNYWtlLWhvb2tzCnRhcmdl dF9saXN0PSJhbGwuYnVpbGQgYWxsLmNyb3NzIHN0YXJ0LmVuY2FwIHJlc3QuZW5jYXAgXAoJaW5m byBkdmkgXAoJaW5zdGFsbC1ub3JtYWwgaW5zdGFsbC1jb21tb24gaW5zdGFsbC1pbmZvIGluc3Rh bGwtbWFuIFwKCXVuaW5zdGFsbCBkaXN0ZGlyIFwKCW1vc3RseWNsZWFuIGNsZWFuIGRpc3RjbGVh biBleHRyYWNsZWFuIG1haW50YWluZXItY2xlYW4gXAoJc3RhZ2UxIHN0YWdlMiBzdGFnZTMgc3Rh Z2U0Igpmb3IgdCBpbiAkdGFyZ2V0X2xpc3QKZG8KCXg9Cglmb3IgbGFuZyBpbiAuLiAkYWxsX2xh bmd1YWdlcwoJZG8KCQlpZiB0ZXN0ICRsYW5nICE9ICIuLiI7IHRoZW4KCQkJeD0iJHggJGxhbmcu JHQiCgkJZmkKCWRvbmUKCWVjaG8gImxhbmcuJHQ6ICR4IiA+PiBNYWtlLWhvb2tzCmRvbmUKCiMg SWYgd2UncmUgbm90IGJ1aWxkaW5nIGluIHNyY2RpciwgY3JlYXRlIC5nZGJpbml0LgoKaWYgdGVz dCAhIC1mIE1ha2VmaWxlLmluOyB0aGVuCgllY2hvICJkaXIgLiIgPiAuZ2RiaW5pdAoJZWNobyAi ZGlyICR7c3JjZGlyfSIgPj4gLmdkYmluaXQKCWlmIHRlc3QgeCRnZGJfbmVlZHNfb3V0X2ZpbGVf cGF0aCA9IHh5ZXMKCXRoZW4KCQllY2hvICJkaXIgJHtzcmNkaXJ9L2NvbmZpZy8iYGRpcm5hbWUg JHtvdXRfZmlsZX1gID4+IC5nZGJpbml0CglmaQoJaWYgdGVzdCAieCRzdWJkaXJzIiAhPSB4OyB0 aGVuCgkJZm9yIHMgaW4gJHN1YmRpcnMKCQlkbwoJCQllY2hvICJkaXIgJHtzcmNkaXJ9LyRzIiA+ PiAuZ2RiaW5pdAoJCWRvbmUKCWZpCgllY2hvICJzb3VyY2UgJHtzcmNkaXJ9Ly5nZGJpbml0IiA+ PiAuZ2RiaW5pdApmaQoKIyBEZWZpbmUgdmFyaWFibGVzIGhvc3RfY2Fub25pY2FsIGFuZCBidWls ZF9jYW5vbmljYWwKIyBiZWNhdXNlIHNvbWUgQ3lnbnVzIGxvY2FsIGNoYW5nZXMgaW4gdGhlIE1h a2VmaWxlIGRlcGVuZCBvbiB0aGVtLgpidWlsZF9jYW5vbmljYWw9JHtidWlsZH0KaG9zdF9jYW5v bmljYWw9JHtob3N0fQp0YXJnZXRfc3ViZGlyPQppZiB0ZXN0ICIke2hvc3R9IiAhPSAiJHt0YXJn ZXR9IiA7IHRoZW4KICAgIHRhcmdldF9zdWJkaXI9JHt0YXJnZXR9LwpmaQpBQ19TVUJTVChidWls ZF9jYW5vbmljYWwpCkFDX1NVQlNUKGhvc3RfY2Fub25pY2FsKQpBQ19TVUJTVCh0YXJnZXRfc3Vi ZGlyKQoJCiMgSWYgdGhpcyBpcyB1c2luZyBuZXdsaWIsIHRoZW4gZGVmaW5lIGluaGliaXRfbGli YyBpbgojIExJQkdDQzJfQ0ZMQUdTLiAgVGhpcyB3aWxsIGNhdXNlIF9fZXByaW50ZiB0byBiZSBs ZWZ0IG91dCBvZgojIGxpYmdjYy5hLCBidXQgdGhhdCdzIE9LIGJlY2F1c2UgbmV3aWIgc2hvdWxk IGhhdmUgaXRzIG93biB2ZXJzaW9uIG9mCiMgYXNzZXJ0LmguCmluaGliaXRfbGliYz0KaWYgdGVz dCB4JHdpdGhfbmV3bGliID0geHllczsgdGhlbgoJaW5oaWJpdF9saWJjPS1EaW5oaWJpdF9saWJj CmZpCkFDX1NVQlNUKGluaGliaXRfbGliYykKCiMgSWYgJChleGVjX3ByZWZpeCkgZXhpc3RzIGFu ZCBpcyBub3QgdGhlIHNhbWUgYXMgJChwcmVmaXgpLCB0aGVuIGNvbXB1dGUgYW4KIyBhYnNvbHV0 ZSBwYXRoIGZvciBnY2NfdG9vbGRpciBiYXNlZCBvbiBpbnNlcnRpbmcgdGhlIG51bWJlciBvZiB1 cC1kaXJlY3RvcnkKIyBtb3ZlbWVudHMgcmVxdWlyZWQgdG8gZ2V0IGZyb20gJChleGVjX3ByZWZp eCkgdG8gJChwcmVmaXgpIGludG8gdGhlIGJhc2ljCiMgJChsaWJzdWJkaXIpL0AodW5saWJzdWJk aXIpIGJhc2VkIHBhdGguCiMgRG9uJ3Qgc2V0IGdjY190b29sZGlyIHRvIHRvb2xkaXIgc2luY2Ug dGhhdCdzIG9ubHkgcGFzc2VkIGluIGJ5IHRoZSB0b3BsZXZlbAojIG1ha2UgYW5kIHRodXMgd2Un ZCBnZXQgZGlmZmVyZW50IGJlaGF2aW9yIGRlcGVuZGluZyBvbiB3aGVyZSB3ZSBidWlsdCB0aGUK IyBzb3VyY2VzLgppZiB0ZXN0IHgkZXhlY19wcmVmaXggPSB4Tk9ORSAtbyB4JGV4ZWNfcHJlZml4 ID0geCRwcmVmaXg7IHRoZW4KICAgIGdjY190b29sZGlyPSckKGxpYnN1YmRpcikvJCh1bmxpYnN1 YmRpcikvLi4vJCh0YXJnZXRfYWxpYXMpJwplbHNlCmNoYW5nZXF1b3RlKDw8LCA+PilkbmwKIyBB biBleHBsYW5hdGlvbiBvZiB0aGUgc2VkIHN0cmluZ3M6CiMgIC1lICdzfF5cJChwcmVmaXgpfHwn ICAgbWF0Y2hlcyBhbmQgZWxpbWluYXRlcyAncHJlZml4JyBmcm9tICdleGVjX3ByZWZpeCcKIyAg LWUgJ3N8LyR8fCcgICAgICAgICAgICBtYXRjaCBhIHRyYWlsaW5nIGZvcndhcmQgc2xhc2ggYW5k IGVsaW1pbmF0ZXMgaXQKIyAgLWUgJ3N8XlteL118L3wnICAgICAgICBmb3JjZXMgdGhlIHN0cmlu ZyB0byBzdGFydCB3aXRoIGEgZm9yd2FyZCBzbGFzaCAoKikKIyAgLWUgJ3N8L1teL10qfC4uL3xn JyAgICByZXBsYWNlcyBlYWNoIG9jY3VyYW5jZSBvZiAvPGRpcmVjdG9yeT4gd2l0aCAuLi8KIwoj ICgqKSBOb3RlIHRoaXMgcGF0dGVybiBvdmVyd3JpdGVzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2Yg dGhlIHN0cmluZwojIHdpdGggYSBmb3J3YXJkIHNsYXNoIGlmIG9uZSBpcyBub3QgYWxyZWFkeSBw cmVzZW50LiAgVGhpcyBpcyBub3QgYQojIHByb2JsZW0gYmVjYXVzZSB0aGUgZXhhY3QgbmFtZXMg b2YgdGhlIHN1Yi1kaXJlY3RvcmllcyBjb25jZXJuZWQgaXMKIyB1bmltcG9ydGFudCwganVzdCB0 aGUgbnVtYmVyIG9mIHRoZW0gbWF0dGVycy4KIwojIFRoZSBwcmFjdGljYWwgdXBzaG90IG9mIHRo ZXNlIHBhdHRlcm5zIGlzIGxpa2UgdGhpczoKIwojICBwcmVmaXggICAgIGV4ZWNfcHJlZml4ICAg ICAgICByZXN1bHQKIyAgLS0tLS0tICAgICAtLS0tLS0tLS0tLSAgICAgICAgLS0tLS0tCiMgICAv Zm9vICAgICAgICAvZm9vL2JhciAgICAgICAgICAuLi8KIyAgIC9mb28vICAgICAgIC9mb28vYmFy ICAgICAgICAgIC4uLwojICAgL2ZvbyAgICAgICAgL2Zvby9iYXIvICAgICAgICAgLi4vCiMgICAv Zm9vLyAgICAgICAvZm9vL2Jhci8gICAgICAgICAuLi8KIyAgIC9mb28gICAgICAgIC9mb28vYmFy L3VnZyAgICAgIC4uLy4uLwojCiAgICBkb2xsYXI9JyQkJwogICAgZ2NjX3Rvb2xkaXI9IlwkKGxp YnN1YmRpcikvXCQodW5saWJzdWJkaXIpL1xgZWNobyBcJChleGVjX3ByZWZpeCkgfCBzZWQgLWUg J3N8XlwkKHByZWZpeCl8fCcgLWUgJ3N8L1wkKGRvbGxhcil8fCcgLWUgJ3N8XlteL118L3wnIC1l ICdzfC9bXi9dKnwuLi98ZydcYFwkKHRhcmdldF9hbGlhcykiCmNoYW5nZXF1b3RlKFssIF0pZG5s CmZpCkFDX1NVQlNUKGdjY190b29sZGlyKQpBQ19TVUJTVChkb2xsYXIpCgojIE5vdGhpbmcgdG8g ZG8gZm9yIEZMT0FUX0gsIGZsb2F0X2Zvcm1hdCBhbHJlYWR5IGhhbmRsZWQuCm9iamRpcj1gcHdk YApBQ19TVUJTVChvYmpkaXIpCgojIFByb2Nlc3MgdGhlIGxhbmd1YWdlIGFuZCBob3N0L3Rhcmdl dCBtYWtlZmlsZSBmcmFnbWVudHMuCiR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICRzcmNkaXIvY29u ZmlndXJlLmZyYWcgJHNyY2RpciAiJHN1YmRpcnMiICIkZGVwX2hvc3RfeG1ha2VfZmlsZSIgIiRk ZXBfdG1ha2VfZmlsZSIKCiMgU3Vic3RpdHV0ZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcwpBQ19T VUJTVChzdWJkaXJzKQpBQ19TVUJTVChhbGxfYm9vdF9sYW5ndWFnZXMpCkFDX1NVQlNUKGFsbF9j b21waWxlcnMpCkFDX1NVQlNUKGFsbF9kaWZmX2V4Y2x1ZGVzKQpBQ19TVUJTVChhbGxfaGVhZGVy cykKQUNfU1VCU1QoYWxsX2xhbmdfbWFrZWZpbGVzKQpBQ19TVUJTVChhbGxfbGFuZ3VhZ2VzKQpB Q19TVUJTVChhbGxfbGliMmZ1bmNzKQpBQ19TVUJTVChhbGxfc3RhZ2VzdHVmZikKQUNfU1VCU1Qo YnVpbGRfZXhlZXh0KQpBQ19TVUJTVChidWlsZF9pbnN0YWxsX2hlYWRlcnNfZGlyKQpBQ19TVUJT VChidWlsZF94bV9maWxlX2xpc3QpCkFDX1NVQlNUKGNjX3NldF9ieV9jb25maWd1cmUpCkFDX1NV QlNUKHF1b3RlZF9jY19zZXRfYnlfY29uZmlndXJlKQpBQ19TVUJTVChjcHBfaW5zdGFsbF9kaXIp CkFDX1NVQlNUKGNwcF9tYWluKQpBQ19TVUJTVChkZXBfaG9zdF94bWFrZV9maWxlKQpBQ19TVUJT VChkZXBfdG1ha2VfZmlsZSkKQUNfU1VCU1QoZXh0cmFfY19mbGFncykKQUNfU1VCU1QoZXh0cmFf Y19vYmpzKQpBQ19TVUJTVChleHRyYV9jcHBfb2JqcykKQUNfU1VCU1QoZXh0cmFfY3h4X29ianMp CkFDX1NVQlNUKGV4dHJhX2hlYWRlcnNfbGlzdCkKQUNfU1VCU1QoZXh0cmFfb2JqcykKQUNfU1VC U1QoZXh0cmFfcGFydHMpCkFDX1NVQlNUKGV4dHJhX3Bhc3NlcykKQUNfU1VCU1QoZXh0cmFfcHJv Z3JhbXMpCkFDX1NVQlNUKGZsb2F0X2hfZmlsZSkKQUNfU1VCU1QoZ2NjX2d4eF9pbmNsdWRlX2Rp cikKQUNfU1VCU1QoZ2NjX3ZlcnNpb24pCkFDX1NVQlNUKGdjY192ZXJzaW9uX3RyaWdnZXIpCkFD X1NVQlNUKGhvc3RfZXhlZXh0KQpBQ19TVUJTVChob3N0X2V4dHJhX2djY19vYmpzKQpBQ19TVUJT VChob3N0X3htX2ZpbGVfbGlzdCkKQUNfU1VCU1QoaW5zdGFsbCkKQUNfU1VCU1QobGFuZ19vcHRp b25zX2ZpbGVzKQpBQ19TVUJTVChsYW5nX3NwZWNzX2ZpbGVzKQpBQ19TVUJTVChsYW5nX3RyZWVf ZmlsZXMpCkFDX1NVQlNUKGxvY2FsX3ByZWZpeCkKQUNfU1VCU1QobWF5YmVfdXNlX2NvbGxlY3Qy KQpBQ19TVUJTVChtZF9maWxlKQpBQ19TVUJTVChvYmpjX2JvZWhtX2djKQpBQ19TVUJTVChvdXRf ZmlsZSkKQUNfU1VCU1Qob3V0X29iamVjdF9maWxlKQpBQ19TVUJTVChzdGFnZV9wcmVmaXhfc2V0 X2J5X2NvbmZpZ3VyZSkKQUNfU1VCU1Qoc3ltYm9saWNfbGluaykKQUNfU1VCU1QodGhyZWFkX2Zp bGUpCkFDX1NVQlNUKHRtX2ZpbGVfbGlzdCkKQUNfU1VCU1Qod2lsbF91c2VfY29sbGVjdDIpCgoK QUNfU1VCU1RfRklMRSh0YXJnZXRfb3ZlcnJpZGVzKQpBQ19TVUJTVF9GSUxFKGhvc3Rfb3ZlcnJp ZGVzKQpBQ19TVUJTVChjcm9zc19kZWZpbmVzKQpBQ19TVUJTVF9GSUxFKGNyb3NzX292ZXJyaWRl cykKQUNfU1VCU1RfRklMRShidWlsZF9vdmVycmlkZXMpCkFDX1NVQlNUX0ZJTEUobGFuZ3VhZ2Vf ZnJhZ21lbnRzKQpBQ19TVUJTVF9GSUxFKGxhbmd1YWdlX2hvb2tzKQoKIyBFY2hvIHRoYXQgbGlu a3MgYXJlIGJ1aWx0CmlmIHRlc3QgeCRob3N0ID0geCR0YXJnZXQKdGhlbgoJc3RyMT0ibmF0aXZl ICIKZWxzZQoJc3RyMT0iY3Jvc3MtIgoJc3RyMj0iIGZyb20gJGhvc3QiCmZpCgppZiB0ZXN0IHgk aG9zdCAhPSB4JGJ1aWxkCnRoZW4KCXN0cjM9IiBvbiBhICRidWlsZCBzeXN0ZW0iCmZpCgppZiB0 ZXN0ICJ4JHN0cjIiICE9IHggfHwgdGVzdCAieCRzdHIzIiAhPSB4CnRoZW4KCXN0cjQ9CmZpCgpl Y2hvICJMaW5rcyBhcmUgbm93IHNldCB1cCB0byBidWlsZCBhICR7c3RyMX1jb21waWxlciBmb3Ig JHt0YXJnZXR9JHN0cjQiIDE+JjIKCmlmIHRlc3QgIngkc3RyMiIgIT0geCB8fCB0ZXN0ICJ4JHN0 cjMiICE9IHgKdGhlbgoJZWNobyAiICR7c3RyMn0ke3N0cjN9LiIgMT4mMgpmaQoKIyBUcnVuY2F0 ZSB0aGUgdGFyZ2V0IGlmIG5lY2Vzc2FyeQppZiB0ZXN0IHgkaG9zdF90cnVuY2F0ZV90YXJnZXQg IT0geDsgdGhlbgoJdGFyZ2V0PWBlY2hvICR0YXJnZXQgfCBzZWQgLWUgJ3MvXCguLi4uLi4uLi4u Li4uLlwpLiovXDEvJ2AKZmkKCiMgQ29uZmlndXJlIHRoZSBzdWJkaXJlY3RvcmllcwojIEFDX0NP TkZJR19TVUJESVJTKCRzdWJkaXJzKQoKIyBDcmVhdGUgdGhlIE1ha2VmaWxlCiMgYW5kIGNvbmZp Z3VyZSBsYW5ndWFnZSBzdWJkaXJlY3RvcmllcwpBQ19PVVRQVVQoJGFsbF9vdXRwdXRzLApbCi4g JHNyY2Rpci9jb25maWd1cmUubGFuZwpjYXNlIHgkQ09ORklHX0hFQURFUlMgaW4KeGF1dG8taG9z dC5oOmNvbmZpZy5pbikKZWNobyA+IGNzdGFtcC1oIDs7CmVzYWMKIyBJZiB0aGUgaG9zdCBzdXBw b3J0cyBzeW1saW5rcywgcG9pbnQgc3RhZ2VbMTIzNF0gYXQgLi4vc3RhZ2VbMTIzNF0gc28KIyBi b290c3RyYXBwaW5nIGFuZCB0aGUgaW5zdGFsbGF0aW9uIHByb2NlZHVyZSBjYW4gc3RpbGwgdXNl CiMgQ0M9InN0YWdlMS94Z2NjIC1Cc3RhZ2UxLyIuICBJZiB0aGUgaG9zdCBkb2Vzbid0IHN1cHBv cnQgc3ltbGlua3MsCiMgRkxBR1NfVE9fUEFTUyBoYXMgYmVlbiBtb2RpZmllZCB0byBzb2x2ZSB0 aGUgcHJvYmxlbSB0aGVyZS4KIyBUaGlzIGlzIHZpcnR1YWxseSBhIGR1cGxpY2F0ZSBvZiB3aGF0 IGhhcHBlbnMgaW4gY29uZmlndXJlLmxhbmc7IHdlIGRvCiMgYW4gZXh0cmEgY2hlY2sgdG8gbWFr ZSBzdXJlIHRoaXMgb25seSBoYXBwZW5zIGlmIGxuIC1zIGNhbiBiZSB1c2VkLgppZiB0ZXN0ICIk c3ltYm9saWNfbGluayIgPSAibG4gLXMiOyB0aGVuCiBmb3IgZCBpbiAuLiAke3N1YmRpcnN9IDsg ZG8KICAgaWYgdGVzdCAkZCAhPSAuLjsgdGhlbgoJU1RBUlRESVI9YHB3ZGAKCWNkICRkCglmb3Ig dCBpbiBzdGFnZTEgc3RhZ2UyIHN0YWdlMyBzdGFnZTQgaW5jbHVkZQoJZG8KCQlybSAtZiAkdAoJ CSRzeW1ib2xpY19saW5rIC4uLyR0ICR0IDI+L2Rldi9udWxsCglkb25lCgljZCAkU1RBUlRESVIK ICAgZmkKIGRvbmUKZWxzZSB0cnVlIDsgZmkKIyBBdm9pZCBoYXZpbmcgdG8gYWRkIGludGwgdG8g b3VyIGluY2x1ZGUgcGF0aHMuCmlmIHRlc3QgLWYgaW50bC9saWJpbnRsLmg7IHRoZW4KICBlY2hv IGNyZWF0aW5nIGxpYmludGwuaAogIGVjaG8gJyNpbmNsdWRlICJpbnRsL2xpYmludGwuaCInID5s aWJpbnRsLmgKZmkKXSwKWwpob3N0PScke2hvc3R9JwpidWlsZD0nJHtidWlsZH0nCnRhcmdldD0n JHt0YXJnZXR9Jwp0YXJnZXRfYWxpYXM9JyR7dGFyZ2V0X2FsaWFzfScKc3JjZGlyPScke3NyY2Rp cn0nCnN1YmRpcnM9JyR7c3ViZGlyc30nCm9sZHN0eWxlX3N1YmRpcnM9JyR7b2xkc3R5bGVfc3Vi ZGlyc30nCnN5bWJvbGljX2xpbms9JyR7c3ltYm9saWNfbGlua30nCnByb2dyYW1fdHJhbnNmb3Jt X3NldD0nJHtwcm9ncmFtX3RyYW5zZm9ybV9zZXR9Jwpwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSck e3Byb2dyYW1fdHJhbnNmb3JtX25hbWV9JwpkZXBfaG9zdF94bWFrZV9maWxlPScke2RlcF9ob3N0 X3htYWtlX2ZpbGV9Jwpob3N0X3htYWtlX2ZpbGU9JyR7aG9zdF94bWFrZV9maWxlfScKZGVwX3Rt YWtlX2ZpbGU9JyR7ZGVwX3RtYWtlX2ZpbGV9Jwp0bWFrZV9maWxlPScke3RtYWtlX2ZpbGV9Jwp0 aHJlYWRfZmlsZT0nJHt0aHJlYWRfZmlsZX0nCmdjY192ZXJzaW9uPScke2djY192ZXJzaW9ufScK Z2NjX3ZlcnNpb25fdHJpZ2dlcj0nJHtnY2NfdmVyc2lvbl90cmlnZ2VyfScKbG9jYWxfcHJlZml4 PScke2xvY2FsX3ByZWZpeH0nCmJ1aWxkX2luc3RhbGxfaGVhZGVyc19kaXI9JyR7YnVpbGRfaW5z dGFsbF9oZWFkZXJzX2Rpcn0nCmJ1aWxkX2V4ZWV4dD0nJHtidWlsZF9leGVleHR9Jwpob3N0X2V4 ZWV4dD0nJHtob3N0X2V4ZWV4dH0nCm91dF9maWxlPScke291dF9maWxlfScKZ2RiX25lZWRzX291 dF9maWxlX3BhdGg9JyR7Z2RiX25lZWRzX291dF9maWxlX3BhdGh9JwpTRVRfTUFLRT0nJHtTRVRf TUFLRX0nCnRhcmdldF9saXN0PScke3RhcmdldF9saXN0fScKdGFyZ2V0X292ZXJyaWRlcz0nJHt0 YXJnZXRfb3ZlcnJpZGVzfScKaG9zdF9vdmVycmlkZXM9JyR7aG9zdF9vdmVycmlkZXN9Jwpjcm9z c19kZWZpbmVzPScke2Nyb3NzX2RlZmluZXN9Jwpjcm9zc19vdmVycmlkZXM9JyR7Y3Jvc3Nfb3Zl cnJpZGVzfScKYnVpbGRfb3ZlcnJpZGVzPScke2J1aWxkX292ZXJyaWRlc30nCmNwcF9pbnN0YWxs X2Rpcj0nJHtjcHBfaW5zdGFsbF9kaXJ9JwpdKQo= --Multipart_Sat_Mar__4_00:34:57_2000-1 Content-Type: text/plain; charset=US-ASCII --Multipart_Sat_Mar__4_00:34:57_2000-1-- >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: --Multipart_Sat_Mar__4_00:34:57_2000-1 Content-Type: text/plain; charset=US-ASCII >From martin@loewis.home.cs.tu-berlin.de Fri Mar 03 15:56:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/24: Re: Uncomplete template Date: Fri, 03 Mar 2000 15:56:00 -0000 Message-id: <200003032349.AAA03148@loewis.home.cs.tu-berlin.de> References: <38BFCD09.178BF61A@cnet.francetelecom.fr> X-SW-Source: 2000-q1/msg00019.html Content-length: 1294 >Number: 24 >Category: c++ >Synopsis: Uncomplete template >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri Mar 03 15:56:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Benoit Sibaud <benoit.sibaud@cnet.francetelecom.fr> >Release: 2.95.2 >Organization: France Telecom / CNET >Environment: >Description: Message-ID: <38BFCD09.178BF61A@cnet.francetelecom.fr> Date: Fri, 03 Mar 2000 14:32:41 +0000 $g++ -v Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs gcc version 2.95.2 20000220 (Debian GNU/Linux) $g++ -c Pipo.cpp *** #include <string> #include <vector> class MyClass { protected: std::vector<std::pair<std::string,int> > v; void pipo() { v.push_back(std::pair("", 0)); // should be std::pair<std::string, int> } }; *** Pipo.cpp: In method `void MyClass::pipo()': Pipo.cpp:11: Internal compiler error. Pipo.cpp:11: Please submit a full bug report. Pipo.cpp:11: See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions. -- Benoit Sibaud R&D Engineer France Telecom/BD/FTR&D/DAC/OAT >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From loewis@gcc.gnu.org Fri Mar 03 16:06:00 2000 From: loewis@gcc.gnu.org To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: c++/23 Date: Fri, 03 Mar 2000 16:06:00 -0000 Message-id: <20000304000600.8815.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00020.html Content-length: 489 The following reply was made to PR c++/23; it has been noted by GNATS. From: loewis@gcc.gnu.org To: gcc-gnats@gcc.gnu.org, martin@loewis.home.cs.tu-berlin.de, nobody@gcc.gnu.org Cc: Subject: Re: c++/23 Date: 3 Mar 2000 23:58:52 -0000 Synopsis: Testing attachments State-Changed-From-To: open->closed State-Changed-By: loewis State-Changed-When: Fri Mar 3 15:58:52 2000 State-Changed-Why: Test failed http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=23&database=gcc >From loewis@gcc.gnu.org Fri Mar 03 17:16:00 2000 From: loewis@gcc.gnu.org To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: c++/25 Date: Fri, 03 Mar 2000 17:16:00 -0000 Message-id: <20000304011601.25309.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00021.html Content-length: 499 The following reply was made to PR c++/25; it has been noted by GNATS. From: loewis@gcc.gnu.org To: gcc-gnats@gcc.gnu.org, martin@loewis.home.cs.tu-berlin.de, nobody@gcc.gnu.org Cc: Subject: Re: c++/25 Date: 4 Mar 2000 01:08:37 -0000 Synopsis: More testing State-Changed-From-To: open->closed State-Changed-By: loewis State-Changed-When: Fri Mar 3 17:08:37 2000 State-Changed-Why: Send to wrong GNATS_ADDR :-( http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=25&database=gcc >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/27: Re: bug in overloading resolution in egcs-1.1.1 Date: Sat, 04 Mar 2000 04:26:00 -0000 Message-id: <200003041213.NAA00856@loewis.home.cs.tu-berlin.de> References: <199901051500.QAA09273@count.math.uni-sb.de> X-SW-Source: 2000-q1/msg00023.html Content-length: 2365 >Number: 27 >Category: c++ >Synopsis: [not accepted] bug in overloading resolution >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 04:26:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Alexander Schiemann <aschiem@count.math.uni-sb.de> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-Id: <199901051500.QAA09273@count.math.uni-sb.de> Date: Tue, 5 Jan 1999 16:00:53 +0100 (MET) Dear GNUs bug of egcs-1.1.1 concerning overload-resolution on linux (and HP-UX): conversion sequences containing the same user-defined conversion are not ordered in a correct way in the following example: If I got something wrong and this is the intended behavior if ANSI-C++ please send me a short note (aschiem@math.uni-sb.de) best regards Alexander Schiemann <begin example> struct A{}; struct B:A{}; struct C:B{}; struct CX{ C c; operator C&(){return c;} }; // viable functions for call below void f(A&); void f(B&); int main() {CX cx; C c; f(c); // the standard conversion to B& is better than to A& f(cx); // after user defined conversion to C& // the standard conversion to B& is better than to A& } <end example> <start emacs-shell> -> g++-egcs-1.1.1 -v Reading specs from /usr/local/egcs-1.1.1/lib/gcc-lib/i686-pc-linux-gnulibc1/egcs-2.91.60/specs gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) -> g++-egcs-1.1.1 -Wall -g over_res.cc over_res.cc: In function `int main()': over_res.cc:25: call of overloaded `f (CX &)' is ambiguous over_res.cc:16: candidates are: f(A &) over_res.cc:17: f(B &) <end emacs-shell> hardware (pentium II 400Mhz): MACHINE=i686 MACHTYPE=i586-pc-linux-gnu OSTYPE=linux-gnu configuration of egcs-1.1.1: #!/bin/sh # This file was generated automatically by configure. Do not edit. # This directory was configured as follows: ../egcs-1.1.1/configure --with-gcc-version-trigger=/tmp/EGCS/egcs-1.1.1/gcc/version.c --host=i686-pc-linux-gnulibc1 --prefix=/usr/local/egcs-1.1.1 --enable-shared --enable-version-specific-runtime-libs --norecursion # using "mh-frag" and "mt-frag" >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/26: Re: g++ 2.95.2 internal compiler error Date: Sat, 04 Mar 2000 04:26:00 -0000 Message-id: <200003041208.NAA00749@loewis.home.cs.tu-berlin.de> References: <Pine.LNX.4.10.10003040228590.1108-200000@manzoni.hypercatalog.com.> X-SW-Source: 2000-q1/msg00022.html Content-length: 1039 >Number: 26 >Category: c++ >Synopsis: g++ 2.95.2 internal compiler error >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 04:26:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Luca Raggi <luca@hypercatalog.com> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Sat, 4 Mar 2000 02:36:30 -0500 (EST) Original-Message-ID: <Pine.LNX.4.10.10003040228590.1108-200000@manzoni.hypercatalog.com.> Dear gcc maintainers; The enclosed file, when compiled with: > g++ -c gcctest.cpp Yields: gcctest.cpp:10: Internal compiler error. Using gcc 2.95.2 on powerpc-linux-unknown-gnu. Note that the "friend" declaration probably doesn't abide by the standard. >How-To-Repeat: template <class A> class C { int foo; }; class A { class B { typedef C<A> AA; }; friend class B::AA; }; >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/28: Re: bug in "operator ?:" Date: Sat, 04 Mar 2000 04:36:00 -0000 Message-id: <200003041223.NAA00998@loewis.home.cs.tu-berlin.de> References: <fl1zib7riw.fsf@poivre.cmla.ens-cachan.fr> X-SW-Source: 2000-q1/msg00024.html Content-length: 1052 >Number: 28 >Category: c++ >Synopsis: bug in "operator ?:" >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 04:36:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr> >Release: 2.95.2 >Organization: CMLA, ENS Cachan -- CNRS URA 1611 (France) >Environment: >Description: Date: 27 Mar 1999 00:36:07 +0100 Original-Message-ID: <fl1zib7riw.fsf@poivre.cmla.ens-cachan.fr> Lines: 22 Consider: poivre% cat a.C struct X {}; int main() { double* p = (true == false ? throw X() : new double); } poivre% g++ a.C a.C: In function `int main()': a.C:6: converting to `void' from `double *' This happens with egcs-2.93.12 on a solaris-2.[56] (I beleive the bug to be platform independent). EGCS is in error according to 5.16/2. -- Gaby >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/29: Re: Possible bug in the template instanciation machinery Date: Sat, 04 Mar 2000 04:46:00 -0000 Message-id: <200003041233.NAA01141@loewis.home.cs.tu-berlin.de> References: <flbth0sp66.fsf@poivre.cmla.ens-cachan.fr> X-SW-Source: 2000-q1/msg00025.html Content-length: 1920 >Number: 29 >Category: c++ >Synopsis: [not accepted] Possible bug in the template instanciation machinery >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 04:46:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr> >Release: 2.95.2 >Organization: CMLA, ENS Cachan -- CNRS URA 1611 (France) >Environment: >Description: Date: 07 Apr 1999 12:25:21 +0200 Original-Message-ID: <flbth0sp66.fsf@poivre.cmla.ens-cachan.fr> Consider the following: poivre% cat b.C template<class T> struct Y { typedef T X; }; // Primary base template<class T, class U> struct Base {}; // partial specializations template<class T> struct Base<T, typename T::X> {}; template<class T> struct Base<typename T::X, T> {}; template<class T, class U> struct Derived : Base <T, U> {}; struct A {}; template<class T> struct Derived<A, T> : Base< Y<T>, Y<T> > {}; int main() { Derived<A, int> d; } poivre% g++ -v; g++ b.C Reading specs from /BASE/dosreis/EGCS/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.93.15/specs gcc version egcs-2.93.15 19990405 (gcc2 ss-980929 experimental) b.C: In instantiation of `Derived<A,int>': b.C:19: instantiated from here b.C:19: ambiguous class template instantiation for `struct Base<Y<int>,Y<int> >' b.C:9: candidates are: struct Base<typename T::X,T> b.C:7: struct Base<T,typename T::X> b.C:19: base class `Base<Y<int>,Y<int> >' has incomplete type From my understanding of 14.5.4.1/1 EGCS gets it wrong because none of the specialization matches Base< Y<int>, Y<int> >, so the instanciation isn't ambiguous at all. It should be considering the primary template. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 04:56:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/30: Re: bug2 Date: Sat, 04 Mar 2000 04:56:00 -0000 Message-id: <200003041244.NAA01324@loewis.home.cs.tu-berlin.de> References: <199905121029.LAA01639@stmarys-belfast.ac.uk> X-SW-Source: 2000-q1/msg00026.html Content-length: 2420 >Number: 30 >Category: c++ >Synopsis: [not accepted] template parsing problem >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 04:56:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: D Maley <d.maley@stmarys-belfast.ac.uk> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Wed, 12 May 1999 11:29:35 +0100 Original-Message-Id: <199905121029.LAA01639@stmarys-belfast.ac.uk> With the (stripped down) code below, I can't seem to win: template <typename T, typename T1> class X { public: template <typename Derived> class Y : public Derived::Base::X<T, T1>::Y<typename Derived::Base> { }; }; template <typename T1> class X<int, T1> { public: template <typename Derived> class Y : public Derived::Base::X<T1>::Y<typename Derived::Base> { }; }; int main() { return 0; } I get: gcc -DXTFUNCPROTO -DSUN -w -falt-external-templates -I/usr/openwin/include -I/usr/dt/share/include -I. -c -o test.o test.cpp 2>>err *** Error code 1 make: Fatal error: Command failed for target `test.o' test.cpp:14: wrong number of template arguments (1, should be 2) test.cpp:3: provided for `template <class T, class T1> X<T,T1>' test.cpp:14: confused by earlier errors, bailing out but then if I change line 14 to class Y : public Derived::Base::X<int, T1>::Y<typename Derived::Base> { I get airforce1% mk gcc -DXTFUNCPROTO -DSUN -w -falt-external-templates -I/usr/openwin/include -I/usr/dt/share/include -I. -c -o test.o test.cpp 2>>err *** Error code 1 make: Fatal error: Command failed for target `test.o' test.cpp:14: wrong number of template arguments (2, should be 1) test.cpp:14: provided for `template <class T1> template <class Derived> X<int,T1>::Y<Derived>' test.cpp:14: confused by earlier errors, bailing out I'm using airforce1% gcc -v Reading specs from /usr/local/lib/gcc-lib/i386-pc-solaris2.6/egcs-2.93.10/specs gcc version egcs-2.93.10 19990228 (gcc2 ss-980929 experimental) Its not vital, but I can't think of any other syntax options so it looks like a problem. St. Mary's University College 191 Falls Road, Belfast, BT12 6FE N. Ireland. Tel: +44 1232 327678 Fax: +44 1232 333719 >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 11:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/31: Re: Optimizer bug in gcc-2.95.2 C++ Date: Sat, 04 Mar 2000 11:06:00 -0000 Message-id: <200003041902.UAA19008@loewis.home.cs.tu-berlin.de> References: <Pine.LNX.4.05.10003031128430.19277-100000@lar.bfw.de> X-SW-Source: 2000-q1/msg00027.html Content-length: 3347 >Number: 31 >Category: c++ >Synopsis: Optimizer bug in gcc-2.95.2 C++ >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 11:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Stephan Springl <springl@bfw-online.de> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Fri, 3 Mar 2000 11:44:20 +0100 (MEZ) Original-Message-ID: <Pine.LNX.4.05.10003031128430.19277-100000@lar.bfw.de> in the program attached below, the static array f is initialized at runtime, probably because the initializer t[0] cannot be resolved as constant. With optimisation, e. g. -O1, the array will be initialized with wrong values. Without optiomisation, the initailisation is correct. gcc -v -O1 t.cc gives: Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/specs gcc version 2.95.2 19991024 (release) /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ t.cc /tmp/ccrqSaYK.ii GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/../../../../include/g++-3 /usr/local/include /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/../../../../i686-pc-linux-gnulibc1/include /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/cc1plus /tmp/ccrqSaYK.ii -quiet -dumpbase t.cc -O2 -version -o /tmp/cc4T7tJl.s GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnulibc1) compiled by GNU C version 2.95.2 19991024 (release). /usr/i686-pc-linux-gnulibc1/bin/as -V -Qy -o /tmp/ccdGExwZ.o /tmp/cc4T7tJl.s GNU assembler version 2.9.5 (i686-pc-linux-gnulibc1) using BFD version 2.9.5.0.16 /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.1 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/crtbegin.o -L/usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2 -L/usr/i686-pc-linux-gnulibc1/lib /tmp/ccdGExwZ.o -lgcc -lc -lgcc /usr/lib/gcc-lib/i686-pc-linux-gnulibc1/2.95.2/crtend.o /usr/lib/crtn.o Stephan ======================================================= extern "C" void abort(); struct s { int zeile: 8; int spalte: 16; const char *name; }; int main (void) { static const char *const t[] = {"a"}; static const s f[] = {{2, 12, t[0]}, {2, 18, "c"} }; if (f[0].zeile != 2) abort (); return 0; } Stephan Springl BFW Werner Völk GmbH springl@bfw-online.de Büro für WärmemeÃgeräte +49 89 82917-452 Bäckerstr. 56 81241 München >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/36: Re: Problem/Bug in g++ 2.95? Date: Sat, 04 Mar 2000 13:16:00 -0000 Message-id: <200003042045.VAA19540@loewis.home.cs.tu-berlin.de> References: <Pine.GSO.4.05.9908031611400.8966-100000@jor-el.fnal.gov> X-SW-Source: 2000-q1/msg00031.html Content-length: 2806 >Number: 36 >Category: c++ >Synopsis: [not accepted] template friend operator >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 13:16:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Oleg Krivosheev <kriol@fnal.gov> >Release: 2.95.2 >Organization: >Environment: wally ~ $ uname -a SunOS wally 5.6 Generic_105181-13 sun4u sparc SUNW,Ultra-2 wally ~ $ gcc -v Reading specs from /home/room1/kriol/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95/specs gcc version 2.95 19990728 (release) >Description: Date: Tue, 3 Aug 1999 16:19:48 -0500 (CDT) Original-Message-ID: <Pine.GSO.4.05.9908031611400.8966-100000@jor-el.fnal.gov> when simple program below compiled with -DPROBLEM i've got error message wally ~ $ c++ -c -DPROBLEM -Wall -pedantic -ansi aa.C aa.C: In instantiation of `vect<double>': aa.C:76: instantiated from here aa.C:25: invalid use of undefined type `class vect<double>' aa.C:29: forward declaration of `class vect<double>' aa.C:25: confused by earlier errors, bailing out otherwis all is ok Looks like g++ 2.95 accepts unary operator- being separate function but not as member. From what i know it can be either separate function with one argument or member with no arguments. template <typename t> class vect; #ifndef PROBLEM template <typename t> vect<t> operator-( const vect<t>& ); #endif template <typename t> vect<t> operator-( const vect<t>&, const vect<t>& ); template <typename t> class vect { public: vect( t a ); vect( const vect<t>& v ); ~vect(); vect<t>& operator=( const vect<t>& v ); #ifdef PROBLEM vect<t> operator-( void ) const; #else friend vect<t> operator- <>( const vect<t>& ); #endif friend vect<t> operator- <>( const vect<t>&, const vect<t>& ); private: t a_; }; template <typename t> inline vect<t>:: vect( t a ): a_(a) { } template <typename t> inline vect<t>:: vect( const vect<t>& v ): a_(v.a_) { } template <typename t> inline vect<t>:: ~vect() { } template <typename t> inline vect<t>& vect<t>:: operator=( const vect<t>& v ) { a_ = v.a_; return *this; } #ifdef PROBLEM template <typename t> inline vect<t> vect<t>:: operator-( void ) const { return vect<t>( -a_ ); } #else template <typename t> inline vect<t> operator-( const vect<t>& u ) { return vect<t>( -u.a_ ); } #endif template <typename t> inline vect<t> operator-( const vect<t>& u, const vect<t>& v ) { return vect<t>( u.a_ - v.a_ ); } int main( void ) { vect<double> a( 1.0 ), b( 0.0 ); b = -a; } >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/33: Re: Wrong delete being called. Date: Sat, 04 Mar 2000 13:16:00 -0000 Message-id: <200003042005.VAA19380@loewis.home.cs.tu-berlin.de> References: <4.1.19990714001252.009455a0@pop.mail.yahoo.com> X-SW-Source: 2000-q1/msg00029.html Content-length: 1699 >Number: 33 >Category: c++ >Synopsis: [not accepted] Wrong delete being called. >Confidential: no >Severity: non-critical >Priority: low >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 13:16:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: "K. Haley" <khaley@bigfoot.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-Id: <4.1.19990714001252.009455a0@pop.mail.yahoo.com> Date: Thu, 15 Jul 1999 00:06:16 -0600 The compiler says In method `void TPointer<T>::TPointer (int) [with T = int]': instantiated from here `static void TPointerBase<T>::operator delete (void *) [with T= int]' is private within this context even though no access is necessary in this context; the check should be performed only in a delete-expression ([class.free]) #include <new.h> template<class T> class TPointerBase { public: protected: TPointerBase(T* pointer) : P(pointer) {} TPointerBase() : P(0) {} T* P; private: void* operator new(size_t) {return 0;} // prohibit use of new void operator delete(void* p) {((TPointerBase<T>*)p)->P=0;} }; template<class T> class TPointer : public TPointerBase<T> { public: TPointer() : TPointerBase<T>() {} TPointer(T* pointer) : TPointerBase<T>(pointer) {} ~TPointer() {delete P;} TPointer<T>& operator =(T* src) {delete P; P = src; return *this;} T* operator->() {return P;} // Could throw exception if P==0 }; int main() { TPointer<int> pi; return 0; } >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/34: Re: Bug in g++ name mangling with const pointers? Date: Sat, 04 Mar 2000 13:16:00 -0000 Message-id: <200003042014.VAA19456@loewis.home.cs.tu-berlin.de> References: <m117JXo-005P8BC@siphon.tcs.hut.fi> X-SW-Source: 2000-q1/msg00030.html Content-length: 1557 >Number: 34 >Category: c++ >Synopsis: [bad code] Bug in g++ name mangling with const pointers? >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 13:16:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Marko Mäkelä <Marko.Makela@HUT.FI> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-Id: <m117JXo-005P8BC@siphon.tcs.hut.fi> Date: Thu, 22 Jul 1999 17:09:56 +0300 (EEST) I'm using egcs-2.91.66 and GNU ld 2.9.1 on Debian GNU/Linux "potato". I noticed that defining an extern const pointer (not necessarily pointing to a const object) causes the linker to fail. Here's a simple test: ---a.C begin--- #include<cstdio> extern const char*const c; int main () { puts (c); } ---a.C end--- ---b.C begin--- const char*const c = "hello world\n"; ---b.C end--- The linker will fail with the following message: a.o: In function `main': a.o(.text+0x4): undefined reference to `c' collect2: ld returned 1 exit status I don't know whether the standard allows the definition of extern const pointers, but I think that this is a bug. Either the compiler should issue a warning, or the name mangling code needs some fixing. Also, the demangler in the linker (and in gdb) seems to demangle the word "const" in the wrong way, e.g. "const char*" becomes "char*const". >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/32: Re: templated friend ostream & operator << Date: Sat, 04 Mar 2000 13:16:00 -0000 Message-id: <200003042054.VAA19569@loewis.home.cs.tu-berlin.de> References: <Pine.LNX.3.96.990811115248.4976D-100000@gams.ihep.su> X-SW-Source: 2000-q1/msg00028.html Content-length: 1609 >Number: 32 >Category: c++ >Synopsis: templated friend ostream & operator << >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 13:16:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Alexander Zvyagin <zvyagin@gams.ihep.su> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Wed, 11 Aug 1999 11:54:39 +0400 (MSD) Original-Message-ID: <Pine.LNX.3.96.990811115248.4976D-100000@gams.ihep.su> Dear gcc developers! The code (see below) compiles fine with egcs-1.1.2 and does not compile with gcc-2.95. I get error message: bug1.c: In instantiation of `A<int,6>': bug1.c:15: instantiated from here bug1.c:8: template-id `operator <<<>' for `operator <<(ostream &, const A<int,6> &)' does not match any template declaration bug1.c: In function `int main()': bug1.c:16: no match for `_IO_ostream_withassign & << A<int,6> &' ... more lines ... With best wishes, Alexander Zvyagin. // --- CUT HERE --- #include <iostream> template <class T,T n> class A; template <class T,T n> ostream &operator << (ostream &o,const A<T,n> &a); template <class T,T n> class A { friend ostream &operator << <> (ostream &o,const A<T,n> &a); }; template <class T,T n> ostream &operator << (ostream &o,const A<T,n> &a) { return o << __PRETTY_FUNCTION__ << endl; } main(void) { A<int,6> a; cout << a << endl; } // ---- CUT HERE ------ >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/35: Re: gcc-2.9[56] lookup problem Date: Sat, 04 Mar 2000 13:16:00 -0000 Message-id: <200003042101.WAA19592@loewis.home.cs.tu-berlin.de> References: <yg9pv0k84g5.fsf@pcmath03.insa-lyon.fr> X-SW-Source: 2000-q1/msg00032.html Content-length: 1475 >Number: 35 >Category: c++ >Synopsis: [not accepted] gcc-2.9[56] lookup problem >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 13:16:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Pierre Aubert <paubert@pcmath03.insa-lyon.fr> >Release: 2.95.2 >Organization: C.I.S.M. Universite Claude Bernard Lyon 1 / INSA de Lyon >Environment: >Description: Date: 19 Aug 1999 12:12:10 +0200 bug report platform independant. it does not compile with all the egcs versions I have access to. ---------------------------------------------------------------------- template <short B,short E> class R {}; template <class T> class A { public: explicit A( T const& t ) : my_t(t){ } template <short B,short E> A<T> operator() ( R<B,E> const& r ) { return A<T>(my_t); } T get() const { return my_t; } private: T my_t; }; int main() { A<int> a(10); R<1,3> r; // OK if( a.template operator()<1,3>(r).get() != 10 ) return 1; // don't find it if ( a(r).get() != 10 ) return 2; return 0; } ---------------------------------------------------------------------- gcc don't find the a(r) call. Do we have to use the a.template ... call? aCC and KCC seem to find both calls. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/37: Re: Bug report, egcs-2.91.66 Date: Sat, 04 Mar 2000 13:16:00 -0000 Message-id: <200003041917.UAA19244@loewis.home.cs.tu-berlin.de> References: <Pine.LNX.4.10.9907051701240.9375-100000@lorien> X-SW-Source: 2000-q1/msg00033.html Content-length: 4248 >Number: 37 >Category: c++ >Synopsis: [bad code] virtual functions for local class not generated >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 13:16:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Fedor G. Pikus" <fedorp@wv.mentorg.com> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Mon, 5 Jul 1999 17:16:23 -0700 (PDT) Reply-To: "Fedor G. Pikus" <fedor_pikus@mentorg.com> Original-Message-ID: <Pine.LNX.4.10.9907051701240.9375-100000@lorien> Problem: the following C++ code compiles and links without optimization, does not link when compiled with optimization. System: Linux Redhat 6.0, kernel 2.2.5. EGCS version: 1.1.2, egcs --version reports egcs-2.91.66 Source: ----------------------------- begin source --------------------------------- class b { public: virtual void *f(void *c) = 0; // virtual void *f(void *c) {} // This works exactly like the line above. }; int main() { // Defining this class outside fixes the problem, // but in the real code it's NOT POSSIBLE. class d : public b { public: // virtual // "virtual" here makes no difference void *f(void *c) { } }; // This is the important line: remove it // and the unresolved symbol goes away! d D; // new d; // has the same effect as the line above. } ----------------------------- end source --------------------------------- EGCS command: c++ -O0 ~/nolink.C <- works fine c++ -O1 ~/nolink.C <- does not link: /tmp/ccPZtRSO.o(.gnu.linkonce.d.__vt_Q26main.0_1d+0x8): undefined reference to `f__Q26main.0_1dPv.24' collect2: ld returned 1 exit status EGCS with -v c++ -v -O1 ~/nolink.C ----------------------------- begin output ----------------------------- Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ /user/fedorp/nolink.C nolink.ii GNU CPP version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/include/g++-2 /usr/i386-redhat-linux/include /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include /usr/include End of search list. /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus nolink.ii -quiet -dumpbase nolink.cc -O1 -version -o nolink.s GNU C++ version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release). as -V -Qy -o nolink.o nolink.s GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version 2.9.1.0.23 /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtbegin.o -L/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 -L/usr/i386-redhat-linux/lib nolink.o -lstdc++ -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtend.o /usr/lib/crtn.o nolink.o(.gnu.linkonce.d.__vt_Q26main.0_1d+0x8): undefined reference to `f__Q26main.0_1dPv.2' collect2: ld returned 1 exit status ----------------------------- end output ----------------------------- Thank you in advance. -- Fedor G. Pikus WWW: http://www.coho.net/~pikus/ Mentor Graphics Corporation | 8625 SW Sorrento Rd 8405 SW Boeckman Road | Beaverton, Oregon 97008 Wilsonville, Oregon 97070 | Phone: (503) 685-4857 | Phone: (503) 641 0306 FAX: (503) 685-1302 | FAX: (503) >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 13:56:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/38: Re: C++, 2.95: Problem with matching of function signatures Date: Sat, 04 Mar 2000 13:56:00 -0000 Message-id: <200003042140.WAA19913@loewis.home.cs.tu-berlin.de> References: <199908122125.XAA00703@mira.isdn.cs.tu-berlin.de> X-SW-Source: 2000-q1/msg00034.html Content-length: 1576 >Number: 38 >Category: c++ >Synopsis: [not accepted] matching of function signatures >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 13:56:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Wolfgang Bangerth <wolf@gaia.iwr.uni-heidelberg.de> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Thu, 12 Aug 1999 20:01:48 +0200 (MET DST) // This is a rather new error, since I haven't seen it two or // three month before 2.95. Somehow g++ can't match functions with // the same signature. // // Configuration: // gcc version 2.95 19990728 (release) // sparc-sun-solaris2.6 // // gcc output: // tmp/x> c++ -c x.cc // x.cc:32: prototype for `T<y>::T(const double (&)[T<y>::array_size])' does not match any in class `T<y>' // x.cc:27: candidate is: T<y>::T(const double (&)[T<y>::array_size]) // x.cc: In method `T<y>::T(const double (&)[T<y>::array_size])': // x.cc:32: template definition of non-template `T<y>::T(const double (&)[T<y>::array_size])' // // Anyway, we feel deeply indebted to you gcc-authors! Go on! // Best regards // Wolfgang // template <int y> class T { public: static const unsigned int array_size = 1; typedef double array_type[array_size]; T (const array_type &array); }; template <int y> T<y>::T (const array_type &) {}; >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/43: Re: C++ gcc-2.95. bug/problem Date: Sat, 04 Mar 2000 15:46:00 -0000 Message-id: <200003042234.XAA20125@loewis.home.cs.tu-berlin.de> References: <199908081039.MAA26290@mpii01807.ag1.mpi-sb.mpg.de> X-SW-Source: 2000-q1/msg00036.html Content-length: 4179 >Number: 43 >Category: c++ >Synopsis: [not accepted] friend operators >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 15:46:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Stefan Schirra <stschirr@mpi-sb.mpg.de> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-Id: <199908081039.MAA26290@mpii01807.ag1.mpi-sb.mpg.de> Date: Sun, 08 Aug 1999 12:39:35 +0200 There seems to be a problem with specialised template friend functions in a class template when there are also member functions with the same name. The requested info for a bug report is below. (I have the same problem under Linux on my notebook - so this seems to be platform independent; the same problem arises if namespace is not used; the same problems arises if instead of operator- we have plain functions). Thanks. g++ -v --save-temps specialized_template_friend_member_function_overload_problem.C --- Reading specs from /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/specs gcc version 2.95 19990728 (release) /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) specialized_template_friend_member_function_overload_problem.C specialized_template_friend_member_function_overload_problem.ii GNU CPP version 2.95 19990728 (release) (sparc) #include "..." search starts here: #include <...> search starts here: /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../include/g++-3 /KM/usr/naeher/gcc-2.95/include /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/../../../../sparc-sun-solaris2.6/include /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /KM/usr/naeher/gcc-2.95/lib/gcc-lib/sparc-sun-solaris2.6/2.95/cc1plus specialized_template_friend_member_function_overload_problem.ii -quiet -dumpbase specialized_template_friend_member_function_overload_problem.cc -version -o specialized_template_friend_member_function_overload_problem.s GNU C++ version 2.95 19990728 (release) (sparc-sun-solaris2.6) compiled by GNU C version 2.7.2.3. specialized_template_friend_member_function_overload_problem.C: In instantiation of `CGAL::V<double>': specialized_template_friend_member_function_overload_problem.C:54: instantiated from here specialized_template_friend_member_function_overload_problem.C:31: invalid use of undefined type `class CGAL::V<double>' specialized_template_friend_member_function_overload_problem.C:33: forward declaration of `class CGAL::V<double>' specialized_template_friend_member_function_overload_problem.C:31: confused by earlier errors, bailing out --- specialized_template_friend_member_function_overload_problem.ii: # 1 "specialized_template_friend_member_function_overload_problem.C" namespace CGAL{ template <class T> class P; template <class T> class V; class O {}; template <class T> V<T> operator-( const P<T>&, const O& ); template <class T> class P { T _a; P( const V<T>& v) : _a(v.x()) {} public: P( const T& a) : _a(a) {} T x() { return _a; } }; template <class T> class V { T _b; V( const P<T>& p) : _b(p.x()) {} public: V( const T& a) : _b(a) {} V<T> operator-(); friend V<T> operator-<>( const P<T>& a, const O& ); T x() { return _b; } }; template <class T> V<T> operator-( const P<T>& p, const O& ) { return V<T>( p); } template <class T> V<T> V<T>::operator-() { return V<T>( -_b); } } int main() { CGAL::P<double> a(1.0); CGAL::V<double> b(1.0); return 0; } >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/40: Re: Result naming doesn't work for functions defined in a class Date: Sat, 04 Mar 2000 15:46:00 -0000 Message-id: <200003042239.XAA20164@loewis.home.cs.tu-berlin.de> References: <14270.52708.140409.985100@bolero> X-SW-Source: 2000-q1/msg00037.html Content-length: 2004 >Number: 40 >Category: c++ >Synopsis: Result naming doesn't work for functions defined in a class >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 15:46:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Chris Butler <chrisb@sandy.force9.co.uk> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Sat, 21 Aug 1999 18:06:12 +0200 (MET DST) Original-Message-ID: <14270.52708.140409.985100@bolero> [This bug/behaviour was reported to me as a co-maintainer of the Debian GNU/Linux GCC packages. Please Cc: 43170@bugs.debian.org in your response so it gets archived in the Debian bugtracking system ( http://www.debian.org/Bugs/db/43/43170.html ).] The following code gives a parse error with BUG defined. Looking at the info docs, I don't think it should. Exact error messages: test.cc:12: function body for constructor missing test.cc:12: parse error before `{' test.cc: In method `string foo::do_foo (const string &)': test.cc:12: parse error before `;' test.cc:12: confused by earlier errors, bailing out -- System Information Debian Release: potato Architecture: i386 Kernel: Linux downstairs 2.2.9 #5 Fri Jun 18 19:30:25 BST 1999 i686 Versions of packages gcc depends on: ii binutils 2.9.1.0.25-2 The GNU assembler, linker and bina ii cpp 1:2.95.1-0pre1 The GNU C preprocessor. ii libc6 2.1.2-0pre7 GNU C Library: Shared libraries an >How-To-Repeat: #include <function.h> #include <string> string do_foo(const string& a) return ret; { ret = "foo" + a; } struct foo { string do_foo2(const string& a); string do_foo(const string& a) return ret; { ret = "foo" + a; } }; string foo::do_foo2(const string& a) return ret; { ret = "foo" + a; } >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/42: Re: templated friend Date: Sat, 04 Mar 2000 15:46:00 -0000 Message-id: <200003042146.WAA20042@loewis.home.cs.tu-berlin.de> References: <14253.55552.895629.685616@bolero> X-SW-Source: 2000-q1/msg00039.html Content-length: 2832 >Number: 42 >Category: c++ >Synopsis: [internal] templated friend >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 15:46:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Max Stekelenburg <max@noviomagus.student.utwente.nl> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Sun, 8 Aug 1999 21:29:07 +0200 (MET DST) Original-Message-ID: <14253.55552.895629.685616@bolero> Original-Message-ID: <Pine.LNX.4.05.9908071045260.1450-100000@noviomagus.student.utwente.nl> [This bug/behaviour was reported to me as a co-maintainer of the Debian GNU/Linux GCC packages. Please Cc: 42662@bugs.debian.org in your response so it gets archived in the Debian bugtracking system ( http://www.debian.org/Bugs/db/42/42662.html ).] The code is part of a reference counting system and i'm not sure it is correct C++ but it did compile with earlier versions. System is X86 linux with 2.3.6 kernel debian unstable install g++ package: g++ 2.95-3 noviomagus:~/src/test$ gcc -v --save-temp test.cc Reading specs from /usr/lib/gcc-lib/i386-linux/2.95/specs gcc version 2.95 19990728 (release) /usr/lib/gcc-lib/i386-linux/2.95/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ test.cc test.ii GNU CPP version 2.95 19990728 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc-lib/i386-linux/2.95/../../../../include/g++-3 /usr/local/include /usr/lib/gcc-lib/i386-linux/2.95/include /usr/include End of search list. The following default directories have been omitted from the search path: /usr/lib/gcc-lib/i386-linux/2.95/../../../../i386-linux/include End of omitted list. /usr/lib/gcc-lib/i386-linux/2.95/cc1plus test.ii -quiet -dumpbase test.cc -version -o test.s GNU C++ version 2.95 19990728 (release) (i386-linux) compiled by GNU C version 2.95 19990728 (release). ptr.hh: In instantiation of `ptr<A>': test.cc:5: instantiated from here ptr.hh:33: Internal compiler error. ptr.hh:33: Please submit a full bug report. ptr.hh:33: See <URL: http://egcs.cygnus.com/faq.html#bugreport > for instructions. noviomagus:~/src/test$ cat test.ii # 1 "test.cc" # 1 "ptr.hh" 1 template<class T> class ptr { public: ptr(void) { } template<class D> friend ptr<D>; }; # 1 "test.cc" 2 class A { }; main(){ ptr<A> p; } >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/39: Re: Problem with gcc-2.95 Date: Sat, 04 Mar 2000 15:46:00 -0000 Message-id: <200003042144.WAA20019@loewis.home.cs.tu-berlin.de> References: <9F5DA2D8E614D211A21100805FA72C3A04B78A87@DRKBFFTC0006> X-SW-Source: 2000-q1/msg00035.html Content-length: 1412 >Number: 39 >Category: c++ >Synopsis: [not accepted] typedef of nested anonymous class >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 15:46:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Fengler, Matthias" <Matthias.Fengler@dresdner-bank.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-Id: <9F5DA2D8E614D211A21100805FA72C3A04B78A87@DRKBFFTC0006> Date: Mon, 16 Aug 1999 09:17:05 +0200 I found a problem with gcc-2.95 (tested on Linux/i386 and HP/UX 10.20). The following short program doesn't compile. Inserting a dummy typedef makes it compile fine. Best regards, Matthias Fengler Dresdner Bank AG GM IT 4 Juergen-Ponto-Platz 1 60301 Frankfurt Germany class X1 { public: typedef struct { int xx; } MyStruct1; }; #ifdef WORKAROUND /* This dummy typedef makes the program compile */ typedef X1::MyStruct1 someDummyType; #endif X1::MyStruct1 foo() { X1::MyStruct1 m1; return m1; } $ g++ -c x.cpp x.cpp:14: semicolon missing after declaration of `struct X1::MyStruct1' x.cpp: In function `int foo()': x.cpp:16: `struct X1::MyStruct1' used where a `int' was expected $ >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sat Mar 04 15:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/41: Re: Is this a template bug in gcc-2.95.1 ? Date: Sat, 04 Mar 2000 15:46:00 -0000 Message-id: <200003042310.AAA20227@loewis.home.cs.tu-berlin.de> References: <37C173AE.B4EE585@esat.kuleuven.ac.be> <37CB86EF.E5F6342E@hfm.tu-graz.ac.at> X-SW-Source: 2000-q1/msg00038.html Content-length: 2104 >Number: 41 >Category: c++ >Synopsis: [not accepted] friend operator+ >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sat Mar 04 15:46:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Wolfgang Glas <Wolfgang.Glas@hfm.tu-graz.ac.at> >Release: 2.95.2 >Organization: TU-Graz >Environment: >Description: Original-Message-ID: <37CB86EF.E5F6342E@hfm.tu-graz.ac.at> Date: Tue, 31 Aug 1999 09:40:31 +0200 Hi there, I have just been creating another template+friend example which seems to evoke erroneous behaviour of g++-2.95.1 in my eyes. Please don't think that this example is exotic. I used to implement fuzzy numbers, where I coded the alpha-levels by using a third template argument that points to an array. But let's go on to my source. It fails to compile with g++-2.95.1 but compile with egcs-1.1.2 a.cc: In function `int main ()': a.cc:33: no match for `int + vec<int, 3, (&i_ref)> &' So, if I introduce the third arg, gcc-2.95.1 complains, while egcs-1.1.2 does the job. Thanks for the patience to read all my bug reports. Your efforts could help me a lot because I have Ziliions of line of template code, which I have to rearrange for gcc-2.95 if this turns out to be a bug. >How-To-Repeat: template <class T, unsigned n, const T *ref> class vec { T v[n]; public: vec () { for (unsigned i=0;i<n;i++) v[i]=0; } vec (const T& x) { for (unsigned i=0;i<n;i++) v[i]=x; } template <class U, unsigned m,const U *rref> friend vec<U,m,rref> operator+ (U a, const vec<U,m,rref> &b); }; template <class T, unsigned n,const T *ref> inline vec<T,n,ref> operator+ (T a, const vec<T,n,ref> &b) { vec<T,n,ref> ret; for (unsigned i=0;i<n;i++) ret.v[i] = a + b.v[i]; return ret; } extern const int i_ref; const int i_ref = 1; // expl instantiation. template class vec<int,3,&i_ref>; int main() { vec<int,3,&i_ref> a(2); 3+a; } >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/44: Re: gcc bug? Date: Sun, 05 Mar 2000 02:06:00 -0000 Message-id: <200003050948.KAA00562@loewis.home.cs.tu-berlin.de> References: <001e01bef8b7$66a70cc0$6d04a8c0@nb.isel.pt> X-SW-Source: 2000-q1/msg00040.html Content-length: 3722 >Number: 44 >Category: c++ >Synopsis: [not accepted] Bugs in <iterator> >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Joao Belo" <jbelo@isel.pt> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <001e01bef8b7$66a70cc0$6d04a8c0@nb.isel.pt> Date: Mon, 6 Sep 1999 23:30:19 +0100 Hello, with the code #include <iterator> template<class T> struct X { }; template<class T> X<T> operator+(const X<T>&, const X<T>&); template<> X<int> operator+<int>(const X<int>&, const X<int>&); gcc reports: /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h: In instantiation of `iterator_traits<int>': /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:576: instantiated from `reverse_iterator<int>' x.cpp:12: instantiated from here /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:104: `int' is not a class, struct, or union type /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:105: `int' is not a class, struct, or union type /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:106: `int' is not a class, struct, or union type /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:107: `int' is not a class, struct, or union type /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:108: `int' is not a class, struct, or union type /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h: In instantiation of `reverse_iterator<int>': x.cpp:12: instantiated from here /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:576: no type named `iterator_category' in `struct iterator_traits<int>' /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:578: no type named `value_type' in `struct iterator_traits<int>' /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:580: no type named `difference_type' in `struct iterator_traits<int>' /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:582: no type named `pointer' in `struct iterator_traits<int>' /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:584: no type named `reference' in `struct iterator_traits<int>' /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:601: no type named `reference' in `struct iterator_traits<int>' /cygnus/cygwin-b20/H-i586-cygwin32/bin/../lib/gcc-lib/i586-cygwin32/2.95/../ ../../../../include/g++- 3/stl_iterator.h:601: confused by earlier errors, bailing out Is this a bug? I'm using Cygwin b20, gcc version 2.95 19990728 (release) Thank you, Joao Belo >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/45: Re: Template Specialization Date: Sun, 05 Mar 2000 02:16:00 -0000 Message-id: <200003051001.LAA00823@loewis.home.cs.tu-berlin.de> References: <37E78776.36C42062@carter.net> X-SW-Source: 2000-q1/msg00041.html Content-length: 1637 >Number: 45 >Category: c++ >Synopsis: [not accepted] Template Specialization >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:16:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Casey Carter <casey@carter.net> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <37E78776.36C42062@carter.net> Date: Tue, 21 Sep 1999 08:26:14 -0500 [Original report simplified] Under gcc-2.95.1, on 'i686-pc-linux-gnu' the code below returns a syntax error on compilation. This same code compiled fine way back around egcs-1.0, but has been broken since 1.1 or thereabouts. For the curious, this is part of the type promotion code for a template-metaprogram implementation of lisp I'm working on (maybe a future Master's Thesis project). Casey Carter >How-To-Repeat: template <int N> class Int { public: typedef Int val; }; template <char C> class Char { public: typedef Char val; }; template <class A, class B> class NumPromote {}; template <char C, int N> class NumPromote< Char <C>, Int <N> > { public: typedef Int<C> val; typedef Int<N> val1; }; template <int N, char C> class NumPromote< Int<N>, Char<C> > { public: typedef Int<N> val; typedef Int<C> val1; }; static NumPromote< Char<69>, Int<0> >::val ci0; static NumPromote< Char<69>, Int<0> >::val1 ci1; static NumPromote< Int<0>, Char<69> >::val ic0; static NumPromote< Int<0>, Char<69> >::val1 ic1; >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/46: Re: assuming & on overloaded member function incorrectly reported Date: Sun, 05 Mar 2000 02:16:00 -0000 Message-id: <200003051007.LAA00888@loewis.home.cs.tu-berlin.de> References: <C147A7827CF7D011BEB700805FD6C9C0E2855E@GBHKM001> X-SW-Source: 2000-q1/msg00043.html Content-length: 3313 >Number: 46 >Category: c++ >Synopsis: assuming & on overloaded member function incorrectly reported >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:16:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Thomas, Paul D" <paul.thomas@eds.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <C147A7827CF7D011BEB700805FD6C9C0E2855E@GBHKM001> Date: Wed, 6 Oct 1999 10:17:06 +0100 I am getting the error "assuming & on overloaded member function" reported when I compile the attached source with gcc version 2.95.1 and version 2.95. This code compiled fine with egcs version 2.91.60. The system type is powerpc-ibm-aix4.2.1.0 and I am using no special options. I have attached the following files: overload.cxx - the source file output - output to gcc -v --save-temps overload.cxx overload.ii - preprocessed output [removed from report - mvl] overload.s - assembly code [removed from report - mvl Please don't hesitate to contact me should you require any further information. regards, Paul Thomas [output] Reading specs from /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/specs gcc version 2.95.1 19990816 (release) /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_AIX41 -D_LONG_LONG -D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_AIX41 -D_LONG_LONG -Asystem(unix) -Asystem(aix) -D__EXCEPTIONS -D__CHAR_UNSIGNED__ -D_ARCH_COM overload.cxx overload.ii GNU CPP version 2.95.1 19990816 (release) #include "..." search starts here: #include <...> search starts here: /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/../../../../include/g++-3 /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/../../../../powerpc-ibm-aix4.2.1.0/include /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/include /usr/include End of search list. The following default directories have been omitted from the search path: /usr/local/include End of omitted list. /local/gcc/lib/gcc-lib/powerpc-ibm-aix4.2.1.0/2.95.1/cc1plus overload.ii -quiet -dumpbase overload.cc -version -o overload.s GNU C++ version 2.95.1 19990816 (release) (powerpc-ibm-aix4.2.1.0) compiled by GNU C version 2.95.1 19990816 (release). overload.cxx: In function `void __static_initialization_and_destruction_0(int, int)': overload.cxx:30: assuming & on overloaded member function >How-To-Repeat: template <class T> class A { public: typedef void (*Handler) (A&); A(Handler handler) : m_handler(handler) {}; private: Handler m_handler; }; class B { }; class C { }; typedef A<B> MB; typedef A<C> MC; class X { public: static void process(MB&); static void process(MC&); }; MB b(X::process); void X::process(MB& b) { } void X::process(MC& c) { } void main(int) { } //g++ overload2.cxx //overload2.cxx: In function `void __static_initialization_and_destruction_0(int, int)': //overload2.cxx:30: assuming & on overloaded member function //Compilation exited abnormally with code 1 at Mon Oct 4 11:34:07 >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/48: Re: New bad bug in initialization of static arrays Date: Sun, 05 Mar 2000 02:16:00 -0000 Message-id: <200003051004.LAA00861@loewis.home.cs.tu-berlin.de> References: <199909270656.PAA04756@radon1.awa.tohoku.ac.jp> X-SW-Source: 2000-q1/msg00042.html Content-length: 5342 >Number: 48 >Category: c++ >Synopsis: initialization of static arrays >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:16:02 PST 2000 >Closed-Date: >Last-Modified: >Originator: Glenn Horton-Smith <gas@radon1.awa.tohoku.ac.jp> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Mon, 27 Sep 1999 15:56:43 +0900 Original-Message-Id: <199909270656.PAA04756@radon1.awa.tohoku.ac.jp> Reply-to: gas@hep.stanford.edu Greetings, The following short piece of code compiles fine using egcs-2.91.66, but not 2.95.1: class HepString { public: inline HepString(); // Constructs empty string. HepString(const char *); // Constructs string from a character array. inline ~HepString(); // Destroys string, deallocating storage. }; const HepString names[10][5] = { { "b1(1235)", "h1(1170)", "h1(1380)", "k1(1270)", "k1(1270)" }, { "a0(1450)", "f0(1370)", "", "k0_star(1430)", "k0_star(1430)" }, { "a1(1260)", "f1(1285)", "f1(1420)", "k1(1400)", "k1(1400)" }, { "a2(1320)", "f2(1270)","f2_prime(1525)","k2_star(1430)","k2_star(1430)"}, {"pi2(1670)", "eta2(1645)", "eta2(1870)", "k2(1770)", "k2(1770)" }, {"rho(1700)", "omega(1600)", "", "k_star(1680)", "k_star(1680)" }, {"rho3(1690)","omega3(1670)","phi3(1850)", "k3_star(1780)", "k3_star(1780)" }, { "pi(1300)", "eta(1295)", "eta(1440)", "k(1460)", "k(1460)" }, {"rho(1450)","omega(1420)", "phi(1680)", "k_star(1410)", "k_star(1410)" }, { "", "f2(1810)", "f2(2010)", "k2_star(1980)", "k2_star(1980)" } }; //////////////////////////////////////////////////////////////// In the new compiler, it produces the following irrational error message ten times: testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested Obviously, the compiler was never asked to convert from "const HepString[5]" to "HepString". It must be confused. Here is the complete set of information as requested in http://www.fsf.org/software/gcc/faq.html#bugreport: [gas@radon1 ~]$ g++ -v --save-temps testqqq.cc Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/specs gcc version 2.95.1 19990816 (release) /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ testqqq.cc testqqq.ii GNU CPP version 2.95.1 19990816 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../include/g++-3 /usr/local/include /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../i686-pc-linux-gnu/include /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cc1plus testqqq.ii -quiet -dumpbase testqqq.cc -version -o testqqq.s GNU C++ version 2.95.1 19990816 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.1 19990816 (release). testqqq.cc: In function `void __static_initialization_and_destruction_0(int, int)': testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested testqqq.cc:14: conversion from `const HepString[5]' to non-scalar type `HepString' requested Note that the above demonstration code doesn't actually do anything (other than demonstrate the bug). The bug was initially found when attempting to compile Geant4.0.1 from CERN, which is known to compile and execute just fine with egcs-2.91.60. I hope you can identify and fix this one quickly, because it seems like a real problem. Keep up the good work! Sincerely, Glenn Horton-Smith gas@awa.tohoku.ac.jp [In gcc version 2.96 20000302, the compiler says In function `void __static_initialization_and_destruction_0 (int, int)': Internal compiler error in `emit_move_insn', at expr.c:2548 -- Martin v. Löwis ] >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/47: Re: 2.95.1 nested classes broken Date: Sun, 05 Mar 2000 02:16:00 -0000 Message-id: <200003051008.LAA00904@loewis.home.cs.tu-berlin.de> References: <199909270547.WAA32443@linux1.magma-da.com> X-SW-Source: 2000-q1/msg00044.html Content-length: 4201 >Number: 47 >Category: c++ >Synopsis: [not accepted] nested classes broken >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:16:02 PST 2000 >Closed-Date: >Last-Modified: >Originator: raymond@magma.magma-da.com >Release: 2.95.2 >Organization: >Environment: >Description: Date: Sun, 26 Sep 1999 22:47:46 -0700 Original-Message-Id: <199909270547.WAA32443@linux1.magma-da.com> Dear gcc maintainers, In gcc-2.95.1 the scoping of nested classes is broken. The snippet below compiles with gcc-2.7.2, egcs-1.1.2 and a wide variety of newer commercial C++ compilers, but it fails on 2.95.1. Thanks, -Raymond ---------------------------------------------------------------------- 49[linux1:]~/src/test>cat namescope.cxx class A { public: class B; class C; }; class A::B { }; class A::C { class D; }; class A::C::D { public: B* foo(); // A::B should be in scope }; ---------------------------------------------------------------------- 50[linux1:]~/src/test>/usr/local/gcc-2.95/bin/g++ -v namescope.cxx Reading specs from /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/specs gcc version 2.95.1 19990816 (release) /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ namescope.cxx /tmp/cc8RbNC5.ii GNU CPP version 2.95.1 19990816 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../include/g++-3 /usr/local/include /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/../../../../i686-pc-linux-gnu/include /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/local/gcc-2.95/lib/gcc-lib/i686-pc-linux-gnu/2.95.1/cc1plus /tmp/cc8RbNC5.ii -quiet -dumpbase namescope.cc -version -o /tmp/ccbQ8vF6.s GNU C++ version 2.95.1 19990816 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.1 19990816 (release). namescope.cxx:16: syntax error before `*' 51[linux1:]~/src/test> ---------------------------------------------------------------------- FYI: 51[linux1:]~/src/test>g++ -v -Wall -c namescope.cxx Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -Wall -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ namescope.cxx /tmp/ccibKqii.ii GNU CPP version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/include/g++-2 /usr/local/include /usr/i386-redhat-linux/include /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include /usr/include End of search list. /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus /tmp/ccibKqii.ii -quiet -dumpbase namescope.cc -Wall -version -o /tmp/ccJ9v2Sl.s GNU C++ version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release). as -V -Qy -o namescope.o /tmp/ccJ9v2Sl.s GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version 2.9.1.0.23 52[linux1:]~/src/test> ---------------------------------------------------------------------- >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/49: Re: error with templates and namespaces Date: Sun, 05 Mar 2000 02:26:00 -0000 Message-id: <200003051012.LAA00983@loewis.home.cs.tu-berlin.de> References: <Pine.LNX.4.10.9911041632240.12142-100000@josquin.ucsd.edu> X-SW-Source: 2000-q1/msg00045.html Content-length: 2203 >Number: 49 >Category: c++ >Synopsis: [not accepted] using-declarations in templates >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:26:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Gary A. Huber" <ghuber@josquin.ucsd.edu> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Thu, 4 Nov 1999 16:38:51 -0800 (PST) Original-Message-ID: <Pine.LNX.4.10.9911041632240.12142-100000@josquin.ucsd.edu> Hi, gcc folks, I have some code that doesn't compile. Apparently, the using keyword doesn't work in templated functions. It compiles fine using the Kuck and Associates compiler. I'm using egcs-1.1.2-24 on a Pentium box running Red Hat Linux 6.0 I've also tried it with gcc-2.95.2 and I get the same results. Below is the command I use, the error messages, and the actual code. gcc -o gcc_test gcc_test.cc -lstdc++ gcc_test.cc: In function `int g<int>(const int &)': gcc_test.cc:35: instantiated from here gcc_test.cc:17: `f' undeclared (first use this function) gcc_test.cc:17: (Each undeclared identifier is reported only once gcc_test.cc:17: for each function it appears in.) Thanks Gary //######################################################### // gcc_test.cc #include <stdio.h> //################ namespace A{ void f(){ printf( "f\n"); } } //################ template< class T> T g( const T& t){ using namespace A; f(); return t + t; } //################ int h( int t){ using namespace A; f(); return t+t; } //################ int main(){ int i = 2; // int j = h(i); // this works int j = g(i); // this does not work } ------------------------------------------------------------------- Gary A. Huber, Ph.D ghuber@ucsd.edu Assistant Professor Phone: (858) 534-4277 Department of Bioengineering FAX: (858) 534-6896 University of California San Diego La Jolla, CA 92093-0412 USA >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/50: Re: gcc-2.95.1: problem calling destructor on typedef of int within a namespace Date: Sun, 05 Mar 2000 02:26:00 -0000 Message-id: <200003051010.LAA00956@loewis.home.cs.tu-berlin.de> References: <C147A7827CF7D011BEB700805FD6C9C0E91D30@GBHKM001> X-SW-Source: 2000-q1/msg00046.html Content-length: 2249 >Number: 50 >Category: c++ >Synopsis: problem calling destructor on typedef of int within namespace >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:26:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Thomas, Paul D" <paul.thomas@eds.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <C147A7827CF7D011BEB700805FD6C9C0E91D30@GBHKM001> Date: Wed, 20 Oct 1999 11:59:58 +0100 When I compile this code fragment using gcc 2.95.1: namespace A {typedef int Z;} int main(void) { A::Z* z; z->A::Z::~Z(); //error } The following error is reported... In function 'int main()': 5: qualified type 'int' does not match destructor name '~Z' The strange thing is that if I include the typedef line twice, gcc++ compiles the code without any problem. e.g. namespace A {typedef int Z;} namespace A {typedef int Z;} int main(void) { A::Z* z; z->A::Z::~Z(); //okay } or namespace A {typedef int Z; typedef int Z;} int main(void) { A::Z* z; z->A::Z::~Z(); //okay } This looks like a bug in g++ to me particularly as there is a very similar code fragment in section 3.4.3 (5) of the C++ Draft Standard (2 Dec 96) which looks like this... struct A { typedef int I; }; typedef int I1, I2; extern int* p; extern int* q; p->A::I::~I(); // I is looked up in the scope of A q->I1::~I2(); // I2 is looked up in the scope of // the postfix-expression If I add a main around this code so that it looks like this... struct A { typedef int I; }; int main(void) { typedef int I1, I2; extern int* p; extern int* q; p->A::I::~I(); // I is looked up in the scope of A q->I1::~I2(); // I2 is looked up in the scope of // the postfix-expression } gcc 2.95.1 reports the following error which is the same as the error reported on my code fragment above: In function 'int main()': 9: qualified type 'int' does not match destructor name '~I' -- Paul Thomas paul.thomas@eds.com >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/51: Re: g++ reports error for ISO C++ example Date: Sun, 05 Mar 2000 02:36:00 -0000 Message-id: <200003051022.LAA01094@loewis.home.cs.tu-berlin.de> References: <38308445.E132105F@cygnus.co.uk> X-SW-Source: 2000-q1/msg00047.html Content-length: 1169 >Number: 51 >Category: c++ >Synopsis: [not accepted] g++ reports error for ISO C++ example >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Jonathan Larmour <jlarmour@cygnus.co.uk> >Release: 2.95.2 >Organization: Cygnus Solutions >Environment: >Description: Original-Message-ID: <38308445.E132105F@cygnus.co.uk> Date: Mon, 15 Nov 1999 22:08:05 +0000 This example snippet is from the ISO C++ standard, sect 7.5 para 4: extern "C" typedef void FUNC_c(); class C { public: static FUNC_c* q; }; But when compiling we get: $ gcc -c flibble.cxx flibble.cxx:1: multiple storage classes in declaration of `FUNC_c' Since this is an example in the standard, by definition this should work. This should probably also be added as a testcase for the future, or better still the whole example from sect 7.5 para 4. This is gcc 2.95.2 on Linux BTW. Jifl >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/54: Re: template, static const int and overloading Date: Sun, 05 Mar 2000 02:46:00 -0000 Message-id: <200003051028.LAA01159@loewis.home.cs.tu-berlin.de> References: <382956BA.77EB57@matfys.lth.se> X-SW-Source: 2000-q1/msg00050.html Content-length: 1859 >Number: 54 >Category: c++ >Synopsis: [not acecpted] template, static const int and overloading >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:46:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Petter Urkedal <petter@matfys.lth.se> >Release: 2.96 >Organization: Lund Institute of Technology >Environment: >Description: Original-Message-ID: <382956BA.77EB57@matfys.lth.se> Date: Wed, 10 Nov 1999 12:27:54 +0100 When static const int member is used as the template parameter to an argument of a member function, and the member function is defined out-of-class, its prototype is not recognized (at least in the case shown below). The simple workaround is to use an enum, which is probably better than static const int anyway. Please, CC me! Cheers, Petter. [---]$ gcc -v Reading specs from /usr/local/lib/gcc-lib/i586-pc-linux-gnu/2.96/specs gcc version 2.96 19991107 (experimental) [---]$ uname -a Linux katsumoto.matfys.lth.se 2.2.5-22 #1 Wed Jun 2 09:02:27 EDT 1999 i586 unknown [---]$ gcc tempmemb.cc tempmemb.cc:10: prototype for `void tau<T>::find (alpha<tau<T>::D> &) const' does not match any in class `tau<T>' tempmemb.cc:7: candidate is: void tau<T>::find (alpha<tau<T>::D> &) const tempmemb.cc:10: template definition of non-template `void tau<T>::find (alpha<tau<T>::D> &) const' [---]$ cat tempmemb.cc template<int N> struct alpha {}; template<typename T> struct tau { static const int D = T::some_CT_int_member; typedef alpha<D> beta; void find(beta&) const; }; template<typename T> void tau<T>::find(beta& x) const {} [---]$ >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/53: Re: inner template classes as friends? Date: Sun, 05 Mar 2000 02:46:00 -0000 Message-id: <200003051024.LAA01131@loewis.home.cs.tu-berlin.de> References: <199911092225.XAA12111@margay.ica1.uni-stuttgart.de> X-SW-Source: 2000-q1/msg00048.html Content-length: 1388 >Number: 53 >Category: c++ >Synopsis: [not accepted] inner template classes as friends? >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:46:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Stefan Schwarzer <sts@ica1.uni-stuttgart.de> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Tue, 9 Nov 1999 23:25:40 +0100 (MET) Original-Message-Id: <199911092225.XAA12111@margay.ica1.uni-stuttgart.de> // According to 14.5.3 (1) we should be able to declare friend a class template // or class template specialization // I am not too sure of whether the follwing sytax is intended/correct, // but it is swallowed by current versions of KCC and cxx (edg frontend). // Stefan Schwarzer --- sts@ica1.uni-stuttgart.de template <class T> struct A { template <class U> class B; // this is generous, but should work - compiles with edg frontends: cxx, KCC // -- but does not compile with gcc-2.95.2 (linux i686) :-( template <class S> template <class U> friend class A<S>::B; }; template <class S> template <class U> class A<S>::B { }; int main(){ A<double>::B<double> ab; return 0; } >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/55: Re: namespace bug using function templates Date: Sun, 05 Mar 2000 02:46:00 -0000 Message-id: <200003051026.LAA01150@loewis.home.cs.tu-berlin.de> References: <51C9F3C392D0D111A15600A0C99E64A9011E24B3@localhost> X-SW-Source: 2000-q1/msg00051.html Content-length: 3074 >Number: 55 >Category: c++ >Synopsis: [not accepted] using-directives in templates >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:46:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: John Pedretti <pedretti@roguewave.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <51C9F3C392D0D111A15600A0C99E64A9011E24B3@localhost> Date: Fri, 19 Nov 1999 18:15:36 -0700 Hi, The following code does not compile, apparently due to a bug in the way function templates and namespaces are handled: class templates seem to work properly. Thanks, John =========================== John A. Pedretti, Rogue Wave Software, Inc. (303) 545-3150 pedretti@roguewave.com =========================== --------------------------------------- // foo.cc namespace xx { // declare function template inside namespace template <class T> void foo (T&) { } } // using namespace xx; // compiles if the using declaration is moved to file scope // declare function template inside global namespace template <class T> void bar (T& t) { using namespace xx; foo (t); // xx::foo (t); // compiles if foo() is explicitly qualified } template void bar<int> (const int&); // instantiate bar<int> ---------------------------------------- output of g++ -c -v foo.cc: Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs gcc version 2.95.2 19991024 (release) /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ foo.cc /tmp/cc72F7M1.ii GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3 /usr/local/include /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/incl ude /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus /tmp/cc72F7M1.ii -quiet -dumpbase foo.cc -version -o /tmp/ccMoxa8S.s GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.2 19991024 (release). foo.cc:19: template-id `bar<int>' for `bar(const int &)' does not match any template declaration foo.cc:19: confused by earlier errors, bailing out Compilation exited abnormally with code 1 at Fri Nov 19 20:16:49 >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 02:46:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/52: Re: user defined conversion to void Date: Sun, 05 Mar 2000 02:46:00 -0000 Message-id: <200003051031.LAA01213@loewis.home.cs.tu-berlin.de> References: <199911092228.XAA12178@margay.ica1.uni-stuttgart.de> X-SW-Source: 2000-q1/msg00049.html Content-length: 1146 >Number: 52 >Category: c++ >Synopsis: [not accepted] user defined conversion to void >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 02:46:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Stefan Schwarzer <sts@ica1.uni-stuttgart.de> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Tue, 9 Nov 1999 23:28:30 +0100 (MET) Original-Message-Id: <199911092228.XAA12178@margay.ica1.uni-stuttgart.de> // // the standard allows conversion functions (12.3.2) with the form // operator type-specifier-seq () // now from the grammar summary one figures out that 'void' is a // correct type-specifier-seq // although it is not terribly useful (12.3.2.1) one // is allowed to declare such // functions (footnote 103) // gcc-2.95.2 should thus compile this code // Stefan Schwarzer sts@ica1.uni-stuttgart.de struct A{ operator void(){}; }; int main(){ A a; } >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 03:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: target/56: Re: [C++]: Error definiting static member in templates with initialization Date: Sun, 05 Mar 2000 03:06:00 -0000 Message-id: <200003051055.LAA01570@loewis.home.cs.tu-berlin.de> References: <14526.10123.942282.197060@gargle.gargle.HOWL> X-SW-Source: 2000-q1/msg00052.html Content-length: 12915 >Number: 56 >Category: target >Synopsis: [bad code]: Error defining static member in templates with initialization >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 03:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Clemens Hintze <clemens.hintze@alcatel.de> >Release: 2.95.2 >Organization: >Environment: OS: OSF1 slbhdg V4.0 1229 alpha GCC: 2.95.2 >Description: Original-Message-ID: <14526.10123.942282.197060@gargle.gargle.HOWL> Date: Thu, 2 Mar 2000 09:34:19 +0100 (MET) Hello, on 18th of November last year I have sent a bug report describing a serious problem with GCC 2.95.2 on a DEC Alpha machine! As I have got no answer from you, I suppose that something went wrong during sending of my mail. Therefore I have recomposite that bug report. Please be so kind to give me an answer so that I know you have got the mail this time. Here we go ... At 17th of November last year, I have installed the GCC on our alpha machine. All went well. My first test compilation of some C++ code of mine, was successful. But then I have tried to compile a code, that heavily rely on templates. The compilation was successful, but the linker moaned, that it cannot resolve the symbol to a static member of the template class. The same compilation with the same compiler version was ok for: - SunOS slbh88 5.7 Generic_106541-07 sun4u sparc SUNW,Ultra-Enterprise - Linux 2.2.10 After some investigation of the assembler output, it seems to me, that the definition of the static member will not find its way into the .s file, *IF* I do both *define* the static member, and *initialize* it with the same statement. That means: template <class T> int Test<T>::val; will work, but if I do this: template <class T> int Test<T>::val = 0; the C++ compiler will not forsee storage for this member! So the linker will complain!!! I have attached a bzipped tarfile containing following files: tst.cc - Source that show you the wrong behavior tst.log - [c++ -v --save-temps -o tst tst.cc >& tst.log] tst.ii - You know :-) tst.s - That too ;-) If there is a patch to solve that problem, could you tell me, how I can find it? >How-To-Repeat: begin 664 bug_tst.tar.bz2 M0EIH.3%!629361KO4#P`0]S_T/_WT^#]____O^?^?O____\(``00``A@)SP] MC`!]:\3BS+7<[@!0MHFV=8>\S.-`4D%S#=:;'740Z:#2*MN<NTJ\QZ%=L>%% MHW6``-.0X04='0*`&AT=.4AUW;A!H.)759@8D(:*-IJ:GXA'I0T-&@`-`#U& M@```!H'J``!*:$$`03((F&H9*>4]3U/4>%/0]0U!HTTTT!H#0`-BGJ`X`&FF M@`,@``&@``&@``9``#0T`$FDD14GY,AI)^H]"3TFTTU-H@9/2&F@T`#0#1Z@ M`TT!H`1*)#3(FB>D81FH:F,4Q&3T(&AZC31Z@:&C1IHTT`!ZAD$20@@(T:": M-`T*>F0FJ>:HWJFFF)Y3>H:@WJ"/4:>H#T1H8TC_WO`/D]W]6O$'7[H<"B#Q M@`)E`U@"(8$/>#4*`(,"9$@`"P1`@(E)&24A6B:`2-E18`RE(T"@A[$Z"R&R M%P!D*$Q"5AR$\@T`#RT/$@U#`2$$(1$3)_I?41;CSXM/TQ0/`!8$O0U@.81Z M-;U"?Z"#Z7G#L.3WQY<<N602'FM/1FRM/EF!#D*+T<E>`JL#(E,'C""GF``@ M`G,@F(AFZ,;;[7L6#3FKS0H0F4T4V&^6OD/#J7DEX.D"2*0D>QTEZ!W?+VTX MG/0LWM'67%B8W*6M;4K:J*VV%5G"$+50S?,=)12\-H?8<"#M5*VV66VE6TG! MD043*41AGSTT\"Z<41,S.KD//-0WVL+;!&-XF8)B6(\!"3&P49=6441U;2Z2 MN#>83,*(P\&ZH@-I;!U9B,+3E=V;CM%!10:E!VI6%M<:,4&30A1(@@@B)@E* M4H4I*$01!!$PI9O2IJ"%$I2)0L$15=-R[YMFR[:J;^CK;:TV!C,9-D6*LF[* M;7;6-#9)I%C&&P*7G:DF,K&KGI1HG>Q"C20,$(<B&,#>710'B-;F#>-TC"ZI MAJVN9RU3:\X=MDZ,4#%$11`EFW%F)YVF>),9?-:+F$*;]SJEYKO.ND.R/9.F MFHAA9448J13RKVAG4(PGM,`F@KH:X)`.@9U5MSM\HC>9:A468KH2*(@0B70- MW@)F]85\?-Y^Z@><.\*A9F!F&PP_9ASFB8<_8ER!?.L?EH?'(U_?GX<+U9*4 M^%9L93U[MZVH8\:%2+VF8"@ABAMF0D(3N>%#=RN_3<M[SALJ2P5$)"#AJ$A. M%*J'`@`E$4-D$3\D%.$60!+P;0:AN(2*$'Z@@^,7SC3X_3/_A+Y-O:?9]=_B M>09AE77UC0IUV*P3Y^R!TO0Z<L,8""$&`P#.R&!]JR&@-:EA,1$#D`FR1](2 MZ6)EX_'3LFC^Y1-J6/5$>N)D@^+XOU!3:;0434F_0/Q'Q5.OU,:_I/."/:;] M(4^-4$2>;/GVIVA8;!IZL8]9D0R"BS_!^@`\IC13[CGN]QP^]M<.!`)Y;`;/ MRP80-AE^NLR*;H'F`Z/MALQ#8.'B'SA@$A2T6TSRT8OXP'5$,G$('I[''\<X MH=$9M*61D\388TYRN838&2@@9)H5F"-HS\R/?7+SB>?5+^))F%7HBV)AV4:( MT/`O$XN=/M4_V?F63;J$-61T1/&?3_#MS799,^4<[OQU[,/\TOIS^>S(WOV` M;I6BFSP0/3W'*RFOX[&9<@$?(^A:_MKC^`ES_2A\CAU8W3*2,B>`;A^4UVXR M+`3081P.9APB`K%:!AU;3=B)B4[]\..5S<V$+L\?<]?FU/`1%X;&PADAF/NV MSY32'/@3TBD95,,QP*G,EC(`]I"RRU6%=CAZX^JF99[_:LH+)';ISPP93%/L M-7\B>V_*6F<%$*W(9$#D*O%/<2$R9'#+_CBLMT""QHX_$M^'U4*`[CS),BI! M%"*$M2C%'<:$'--7\Z_J3J+>#G(W=U3014(E')4*!1A0+TX>V>B9]GS5J13. M9UFS0[COBDDM\UF7F_R1&4/"O4!)!RY/@S1QCM7L$<6"[I#(]T<TC)2'.)XO M2*VF-G9.G"Q+SR+2W%4Y&`Y3ITYS19UR6$KDP<(2"1!4U>UFW*(><M@JF;.8 MG%\;4B"F;'OW[146FG"9:[FIH,](V@];G-&',;X=8-K`P!$7!#(`@.`[.)`0 M#(D3:B%L#P8P%PLVZPE@9%2*U?*G26`R*`.X8HN^%0C`S=QTLS$-HS[1:==, M#RWU]RC8FCI!\M^6IG2N)<J3H++E>EJ5K*]`&6$9&0%RXS)P<!XK>!$XP.W8 MW")P%(C$PT:!XZ=`[;]<R/1:DX@;+`QF1[#CG94S*V8;F5&46.1<(0]I,O;A ML-,>#15[=^SLO#/BU:85",<$(;=)7(,RU#XP18N\M=^[AM5W@3<=N;OUEY54 M1:"H%'*9.)M**=#C21"0A&!F-!044E@=FW`=QI:\N[<M9L+XSXQCI+PTKF=5 M-Q-BB0(H@$`P^'`P1>H<079HP5:^#",AI\-^5*:.7:T\Y$MP@&@YL@H)I8*F M5D*SKYAQ\M28!S$G</*O<AAA2;A2Z`Q(2IH$#(%H#&#$@)"!PR#>:CMV%5.> M"@+#D9<LOG]74[+AAQ'%P-QMZ(U*#M&_=I(&TE&DN]418Z'?'3`KACE'<=ID M%G85F&'&0YS0=$&E!C2QSA$,&&,6!YKB!1>!5K:D:ZHZD!L(W"D7<7.\V1&$ MMS8[T,5(E;.YN;[?Z^]3/O:L<TLG#N;?LR)Z,.I#)I*D.AR"_90P9`)#QSRL M=U>SENRS<DS3*"7CI"$%T8!"21B2,D`A#>4-00RE09%=2^"OH+^M`\8H'P(C M1!&$!D5J`5`"9O8>KD56^[\%-4OW$*0%Q'Q^,V3:,8B8R#]>^>O#P>$^?P%@ MFS]M)5]V_=?RL_1Y/2.81%!%3G4+85):2@>H8;KX_<MMMJJK2UJV_N7V_2]% M\\V$(A"!`]0-[J,"#<>^F]B]E$^05`H0?KS*`L'S*!+Y"Z'T'N*,0V?08(0: ME@7R&`#$U"W<O`+%#5G`1'I!R9W)VR4LZFP!IA:!#4(0]$8]H3*<.=,`9^2= M0A;T?[@886*QVO!C-G=\:JKKX>W^VD_OZ[F7L.I6K4*Y<'IL^O"9IO.E%IB+ M&]ZND?1Y6[9W,0+A0U-C(.0UVYF]RBTB^IH;XSP67Y,7,_OT-#7E,7.&6F.Z MTQT@W8*R#[0@O@!!"0YQ`]/J"C_+/$#Q/$R`1+,WVY.T%"="1',Y&W2;]3P\ M$BAD:`9!]_7,\GDZF!0Q;$Q&!PR0M"D-+9A`I'0D+SN6*!QJ-))CQ1+-Y#CX M4:GD1Q.!B:GD-^/?AL8%E5<`UPP\/#N#EO0!#\(SIW2BQ?@;"$(1@5KOR>US M&P'#.V1D<!R2!%ARP:ZT-4+JQ<L:^6_<=)(:[23D'6W9'!+/NX&IL;`C@00= M1QQ"$(P*B*E^R/,?B/%/[IS#\H'3V$!TY=NH[!U.Q_#K-S?.<O=T]FTFXL6( M46D3PQW&T2^MU._S?E?\=J`CD!FG/0(8C;@4#O,SF*H=;C#<B*C6'-O3?#T= M!8P+41T7HR<#IW;[U)H&F0Y`$<ZH*B-$2@\C8%=(W=Y#(-N`H.!?NL!-';UF M`XD'W`;@+!X\W`:PW0Y$!@5![)L?`4(<:(*X1*UJT%1S-+IQBF^,><U'2KZ< MI)U<@J-@`YL.-4T-1RYD/!)F(N@F:Q`J^9G(!#OKYJ$4>2BB=E1=<P=B<6;B MTB!XW-BLNXE"J+6@8#0FZ9!D3T5%/EL1S#`H(<Y!0<D*05W))R0T[A)@"&Q- M`.`:A9.@1L!W;Y22*0@)V44-J4X4!KZG160X4W.`E+`FUVDF"`<\0%@"`T2% M2;C"J`,#@#?HE0YC?Z4>Z1E(!36*ZB4C9(;S(-A@Y/JVZ:U_*=Q#2=M0(-NP M#(0=PEW+;`X*V-@.&WM(PX'?FU0;;5M8;7KMD;NYARYTM<##$<9.@OKR3-!F M2_8[6&AK(<3&IJ:8.;F3(_'[OC![BH>FO\@.>>;-#75]W6^M9P\1#'(7[#:\ MU@=*X1#/X)XVX"#!SBI%@@S5(Z_-GG`[MB;_C!`LY\!`^`@]X@]P@V^U!-@_ M;0]7KGOZCK)5I5X6!$(2>1,*)L%1B_A`0&#@[?`T01DP%5!V"IWGK%2S0`]A MBY#MN+85.?_<G:2(P(*0Z]FGMHVBV%/4:Y9$%2PW-B!1,@`X,=\S84[8<A7H MW0OI3WZVH<Z'WFC-7&C^2WNSZ4U5.;G^W>5]N0L?9JS;F@TL>H1\@L1<"F". M-(9FSU0.MGA(^B8`(F)=XYA_>"#ZS[/L@,T&(&#AK"`^$$QD$!5X8R@)=-"! MZ%OF\_8V(LAL'>($[Y,(@GYJ!59/?Z57?.G0[?F/:"3=,?$_&&SV<]KE%)!M M@^D8/+#\S$XD>7$-EM4J0]0:G1%L!IE!M5>)*A9#1CGC`%?#(]ZF%=P0/EJ8 M=K%&#MJ:I8?%0$PS&2*;C9)"%_/#3S69<+VU$]S+890;-VAK@4.<+/K[K:&F M2-6B'ZL]X7VX3]>I?2>-2V\\=$VYM;N";LGHRYWV);%OLKYB#`!T,8"LPZ<3 M(*Z2/%JX^6M/ZT$#`UK!2C,#:8OX^;`QHSCC"@8&PF[.O>`&QT%^A`8-Y<6Q MG:*(@'G`)U!&_U'WA+"_@MDNTMG,[$F93+.P/S#;RC`SA`6OK`8+Y>;VQ>GT M-Z69(28Z'?^"3%<0;]86*9:=<!>%G<!6[E5M*S@I)>6CCTH4&#`Q-(*7TJ'L MW&^GA6EOYX($G3]F4&,TE.ZU?,D<\7/AK^C`'$S'1Q4X*)<!(Q,/G)E+56>+ MF3LW*?S6V6T;)I^X45>A%W00UO2%\K59$O$SW$P'3.)]E!LS*F/&PQ4:'<,J MMI#BHG!,@XCUE\!#76<6@;%86O,E+_=[?-..>&.VN&?'?8M<V9A*Z;(7[<09 MC28VI`<%-'>%PASC(L;\4/6G?AQ5"E'>%?/C!0^G'CWS3)`R$#:II*@B,)W0 M1B];NE&SFE;:V@H&7X&<:*XD`AD-EO](Q@B$5&*ZB(W%`C($`-'0`H-@1H"9 ML+^WGKAQBNLM/;@&.?YX9DF'C&$'\`X`D49,=4,Z_>;$VW8/W=CN[CQ$L!FO MR-1!;0QY3C]8:AOW&<0989'&(/91*`'V'L'7/6,`_$'":J\1J<1?#W<97CHI MY.L2S-<3Q6!E2PTDK%"U%]KR8:4)"4JG(,MO]%R?@83L'=*!ETX2AC4QH!=' MUFWU%B23$=G.#L,-TZ#E^#,9`@`WW-G"B(:O'QYZ4I7NZYD>4VD1UQ6!"#>% M2B=`Z!'@#E7JPYRY8':-/1,,,&/S_F868=>]SND>'_/9YMQYTCF;4G9'#S#\ MAQ[DL?G@>)N.TCN"NIQ;:8TH=F;^SZ7"`=[#G1,A`'>ZU`WXZ2$G;`!G1V++ M[@P)UP80P_"2JQ8HHPRV>@R:$(8(`B3P,]5`QM:5D=J"0S"1QJ>4]/5"@\4T MB[X/H_)X%;?+3H,>0`]0'R-EY]?U^1G\WO]\-)\8XX(;I(@.J"!=X$CU-02& MQ;@GW(FC5H"$2[F!$?'Y[U!^\R^>=A.:'.1]1`^XE_"UC6-I*L6UQD/FK[P8 MTTFP,=;G<4/;K0HSEOIE,-F:K$3.[H2>5,M_X:+83^A-AO,[X!Y$60SA(R+, MK@;AIK]YK`U1>X._VV2VIF4Y*3S\[\!)GEUY@.$W.<WYC@7E.,)B'JI=VW$: MF`,Z:WK+9#T;3J"<ZJ!"$ST-A$&&CMUNC5RPD!*-X*L"&3!0?D",A:(+'5D[ M!BBF.44$$;$4S`IAOQU!VQV1"[0KQUM!T]'=<^7!!E(KJB*P$B@!NT+8$6]: M?1QU)5:M,9$GNA-\78LX'/8%9"%_63Q,?FVZ:)-'V"G::(]@^0:?XO]E=7`> MVVPO1+'G2)PC0E^9/`[JT_0"?[W8-13B1!I"/E9VB#H'F(JNX-I(KL'$8=U] M\7<`$!I;?W5=AUM/F<C:9#!H.FE&G80&Y40+]Q2!LBH[1DZCDIN.>09=0@,2 M*B=%!O;=J&;H`7#,VWT[1=0@!NCHAH;E4VBF`Z<,#:4[B@,@FN^GJ@.@0=.V MA<^A47CO`OVTGGXQD1D,@A^C+,M^@A7$I#`*IEK6&$<ERF+-W@^&-@X-?#3@ M]O<P80#1+K2'$>TZ^=40*6%3$7L/2!^,@0O0+KM!8D'>QS[1V?'KT<((E201 M*<$P&+59G&ZO289)+AP[1"5Z6M:YP,UM^V`^`/D#G`#J;AVJ<#B4=\V%MXI8 MA'#PG%G=E)3\V=4U"X18$"`1>7K`[?=OTYS+@*E"#"XM::!5DV]Z&UV<5[MP M<0RCV]W9*)&"I1X.SM$Z`Y')#:F!VMN4S0GA!!B248%91!`8`H"$Q"@.,6V* M*E4I0+!$4(,AYVN'/-'1)@<\%&*QD-CC[8>,G!!8BBZ("11B^OSPD.O-M39C M`W@2*R+I5,D0<[NWI`_'@+F_9][59G-4PE%)U@>'!LYQFCS`B7&Q.[4IH!A` MR%)6,`00EE,28`R:)P!?0U+(X"=(63AAL;@6\38PG%WBU)26X@Y!II@#M0[K M7,@,#+#A#<N%(*$%NZV[RQ!E8Y44T`5!-.`W9DOLRC97*Q+H^C.^684V_SQ> MXA!TR'+7DO"V`''U^FO6<0H/37OS78&.S(+Y0),0SGTXPVQ&Q+P/IW#E^Q38 M1A!QF.5@M`M?)L%AOE31@,!3D>//=M;H9:70.X)+'?`T&.3??@"4)SA49G'` M&0,&8`V!0*VNDKVAY*#Y%#64#-@SO'9=X&@-NF,,8SP!"E17-HHU@;`#?-,D MQT;T4_;@@*67@$"N"5(!T.BHW`WES<-KO=Q+9T&5`AE$"10N-SJNG1-MN";4 M4S=`*,`$BA^/<*.+;3ECAMAO%#:F@:HN'`_-2S8<MNR,5)D49^`&J>F@</MA MF9LU$RS/<93WPU]M^'K=]O95=XG3W">_CY^D!7Q-ZW,_",)0":E7U#`\MWY@ M)7F=X!!()`DD6+V4APL`5"8!!/9T>0@\^'H'D&V^1%G+!83M/Z>_W0'^Z(%X M['3U_=Z@[[[OQ<NT4,>\>J&@I;*I!"P5!=&,9</G]?675+@52&<8,DN@/<(- M!B8RHK6G!!P/<8?1[/8O>F[@&06T&]71..P:&CB8P=)[:W.#86G;^F#\"X7( M'X4M(F2!'L2W=+U+I"%I<.5='4$@?G'*1V!BMI6EIH%VBUX>4F0V4KC5YDE% M^L>1BX&8%)[^U8!P[.:$/II0*(C[#JZAGXGPC-K%NAWB9M(LA5K`^)Z,!F8W M)$%7`R(@6*.B2K!4&)#:6YFPL`+9#L#'\J^CO\0N;C4$>EBFSK^)SB\$0KB! M:JH*0@5J4:ZJ*P%4K44N=ZE'1FI'#8J&J`.)4HF4#=,N]'PW)R2#L(@X@(6K M`8^-"R@Y`+T[?1;R7"AZ(Q@F::ITDS[UW)/C`H"?I*:"'AJ:FAQ5ZQ5,F=YN MGF0,]((<H#9-`7T.+!N^JF\#4F_W!O'+S!_Y8*&U'Y03LT/?PKJX;7QT?)^$ M(3&`_[!)@R0\Y`V!90L*(V(S]CF2494!DCHH&",!,C$%1A$!2I04I2("(G<X M*J^=XYU\S8[[S<TG.'ED=<![I(>'H),`YHBOJ%\IP$3VK**2VV7Y<(22FU4L M2U6L:A7*$E6;!WG+:IY#@?D?$L/0KX`!YQ0R'W'K7Q1LF\!XA10A"`$(*2$I MWE@LG$3AV)]5#0A#P[U2(/LN/(E]#(/(\`%\G;UVZ3YF=+K8O(-2UD;T2-$N M+`H/2&`:%ZKJ<'26@(<C>MQ,)*D"GBAI%-[J#2E&#O56A1\+J`?3PV*I<-=0 M,5M.CSVM#I&`1(0HR7@$BDD+ZC<+(;R:&45*2^S!L-D%2"CF"[U<@7I0]:FS MA(6@%":OBP9ET),C4P'8)K,Y;L>^:L&6:2ONOPS;Y8#;2&:^<)X0*(0@PJI1 M0[#(,Q*.**]9J`NYXH''HIU13#TIFFQ2%M0V528$)H%I00@J)W!$U,(4+(+W M$5,YZ>8[\9O3$7FHE*;F&PVH1('*J[I"9AWBAH`.O1I?S[\BPX=7OS?LLV@6 M0P)XH3)<^L)W%U1[E3>'I]/0JY]JE(%!0$P6%6PP`=8HE`_J`+EW%'/8:ZN1 M8*<L5B<13XYT@92B/[81"!&]@:@&KB.E%7:J"03CBQLHWD,8?62$`(VLBE@H M7[R`TD&P#CB`A]!L/81>'/T[^`A=$&02!3F5*5RC13X"J5&`XJ.DE:W;G?Q; M5E^&U=`@ZH+<2D$+#8B"-HBA1!&!`:,T-4*`O==QX=LW-I+MR3<4.+4$[BK% M)/:HPQ]3]<K@#],/!!X7(GD6@1#H&\)-@_4@OXC0"KF`;>P]GC8!;/A8R=X` MYF#D!4`*-J(TC2"':+`^A.8"Z&;RA]!!1=N%1?D&G7V)?I$X@G!ZI)`"*P9` MB"R0A!Z`[Q!XF^&F0G_(N40>,DBI"*0@>M(U$I^HN6(2Y"!>!9CA]6@-<@/. M#R4]7-:+:#X(:4=`FB<JAX]X=9I->('I'3KR/$[^Y._UFYBWI@\0D(IZM<-6 M,\1KG-)$(3>H&/0)A2Q?V*J]4S`^KK17&NV+L+?NSS'17,F2M,=X2U^8Y'5T M[=#\II1`SKOGE\R@Y&@F8^#S/S?GO7YZQBUDT!\XOH`LO)NJ>_>%/F@=[E)$ MHXCZ/3)U/XNX.OQU?B7%N1%S*@5K`"940+=%N!,$#4A64ENH9"$*'4A+,%,P MA7M,JLYB`2"#?(SRDYD\T5%P&:-83--W`:Q6J6<C)N!Q(/70+F*)_U@"`<]Z MWX::CP;_$+;CS_#@B0(B!]I``I![00($0,(EP-`M#2`O2[JX+.'L5)H`9"=6 MP(HD")!@"$4A`@+$@$"!"7U.=`?%,.80/@1=$#FFDY@!F`P.J@=<T65F\.[T M#1B#MJ@((N91+5]>;=LTHP6@=-GK8E@EF05`<0X1,K.Z-E(FDJ;N06A6A<,7 MRR3P#I#BAD%3O1(7;`N7%:!"6V#,3H,%1P[.OH:H4:1(.AN=`!KL#-H$.9P/ MQ>-'X9/LV@5D#IURO-KJ7,BB$"DP2C>&Q&]/""<?CBWW'*OKA#S4=Z\`)$(N M]C("6#JU-WSJY$(,/7ML%BU6S\[MNA`AU9VL],,/M*=Z(]80ISERN"D]SU^K M(HB0G3@IXBFYP0L22B(B)$1!"!KJARR80],@&YXJ<9F,)&3DA0]892Q7J_+7 M0=Y4AR?V-PS53KP%!2Y#2;C,-`FB@@4@K"@A6E9*)0(X8!<NP(38`)O3C$)3 MT!"#F#[L'@@,)RO7B;;>XNCL7@7A1(,%8HD$2$0!&(B"HC&"*(`C%$8(B((B M(B>SR<KL)[&8F0*(<L*;N&VV9`64L1&64(41058<7Q3065/@OOX6/FC('LG@ M[?F=GN3TT[G-$$.VS(4K"!Y^S#8,5$IOHVQH3KE0U=%U@E`P($#4"#:%HKF( MQ/-!&L2A0U,@I#82HJ78Z:4K8($7%#>]U2L&1@HAD#"^MDSB%H,(&1<P-KC: MS`E#AE#E;Z/*^CF5C4$Z#U!K@O@HW0-VZ6,21N7(-I8;96:I:K!IKC3\S)M: MJPDT(?8W;UGGSN*.>8]-$O)5H=$:9;`CZ0'8*V8D&2!?`%D>D=3@._D[#M?# M>)A@H0]^^MXYV^L[4"Y">UO`XH.Y/E\`/40+500(AGX)H+`Q(06#<-Q>^G3\ MP)"&BO,)@?O`7-47'1B&:`$1D%43F!`'R`'HZ,CRRTRI5T]:&V^6AWX'FC;J M6D`N`"H()3."<>V'YS0?M)1H3LQ_>N25.K$:RN78>-V0`Z`-17;0Y>=4W44X M*`#V$%-72I2^!HA.=`:.#\GOIRT=?2"6+$AZVJ_)7Z?A5S*%F!`8I!C`(0\H M]0&/M4Q[WBG8B"1-2(\D/,&>X-:"0D$S@0*"],YXHYIP0W]J??SY?449&0R' MW5Z-$3IWN_,-89F7B29&$5!9R"2@+$0BR-!T@^KQ5XEJE$N0+3PB#NZ9,C!D M&".=*%8'D<#J(<;ZU/O!H1!D)<U>&BD+<&F<M`I4?'3C7!?,@!9H&X#J`L`7 M,%]C",2)%9`W)"#1B:"*P(#4B$8HT`@.<(%4(*UAQ,')COT/5>:N?%.40%A\ M`@5"H"P#K`D`HB"0021D9)1*R+RD832"*>$U3XR&;E(B5-IX.W3;O6%DG_Q= )R13A0D!KO4#P ` end >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 03:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/57: Re: g++ 2.95.2 bug Date: Sun, 05 Mar 2000 03:26:00 -0000 Message-id: <200003051111.MAA01848@loewis.home.cs.tu-berlin.de> References: <384DD807.8721FBCC@roguewave.com> X-SW-Source: 2000-q1/msg00053.html Content-length: 2556 >Number: 57 >Category: c++ >Synopsis: [not accepted] templates in default arguments >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 03:26:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Martin Sebor <sebor@roguewave.com> >Release: 2.95.2 >Organization: Rogue Wave Software, Inc. >Environment: >Description: Original-Message-ID: <384DD807.8721FBCC@roguewave.com> Date: Tue, 07 Dec 1999 21:01:11 -0700 This is a report of a g++ 2.95.2 bug. The code below doesn't compile: Thank you Martin $ cat test.cpp template <class T, class U> struct A { static const int n = 0; }; template <class T> struct B { template <class U> void foo (int = A<T, U>::n) { } }; $ g++ -c -v /build/sebor/dev/stdlib2/tests/regress/src/test.cpp Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs gcc version 2.95.2 19991024 (release) /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ /build/sebor/dev/stdlib2/tests/regress/src/test.cpp /tmp/ccsxupTb.ii GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3 /usr/local/include /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/include /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus /tmp/ccsxupTb.ii -quiet -dumpbase test.cc -version -o /tmp/cceGXWld.s GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.2 19991024 (release). /build/sebor/dev/stdlib2/tests/regress/src/test.cpp:12: parse error before `>' ============================================== Martin Sebor, Lead Software Engineer C++ Standards Group, Rogue Wave Software, Inc. sebor@roguewave.com (303) 545-3287 >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 03:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/58: Re: Unwarranted non-void return warning Date: Sun, 05 Mar 2000 03:26:00 -0000 Message-id: <200003051107.MAA01780@loewis.home.cs.tu-berlin.de> References: <199912140632.AAA30846@pale.csres.utexas.edu> X-SW-Source: 2000-q1/msg00054.html Content-length: 80913 >Number: 58 >Category: c++ >Synopsis: Unwarranted non-void return warning >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 03:26:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: "James A. Bednar" <jbednar@cs.utexas.edu> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Tue, 14 Dec 1999 00:32:27 -0600 Original-Message-Id: <199912140632.AAA30846@pale.csres.utexas.edu> Unless I'm somehow misunderstanding things, g++ 2.95.2 generates a bizarrely meaningless warning when compiling the following function with optimization on a 600Mhz Pentium III running Red Hat Linux 6.0 (kernel 2.2.12-25): #include "retinalobjs.h" Retinal_Object* new_RURN(void) { return 0; Retinal_Object::VarMap vars; return new Retinal_UniformRandomNoise("",vars); } The full source (after cpp processing) is attached below. Here is the warning: pale:~/research/lissom/src> g++ -v Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs gcc version 2.95.2 19991024 (release) pale:~/research/lissom/src> g++ -c -Wall -O -I../tnt/ warn.c warn.c: In function `class Retinal_Object * new_RURN()': warn.c:8: warning: control reaches end of non-void function `new_RURN()' The same warning is present without the "return 0", but I put that in just to be absolutely clear that there is no way to return from the function without a value. Earlier egcs versions did not flag a warning on this code. Jim >How-To-Repeat: begin 664 warn.cpp.bz2 M0EIH.3%!62936>R:><\`R9I_@'__________O___[[____]A7]]\^GH:$77, M=UNZ[3([:<QV7=<NKEZ>J<7FZ!D`!UTD%U[-R:WKH.H(5PR5VW(>X.,1AW'( M?1]]];[WWF^\^]T4*.O5]\&NPJ^^SGFWL5=G-=LI]Z][VG7GO;6[7;N%V;E[ MSOKWW=`KUG?6-AOL`4?0#0/;5."VIZN9W+)U;IKKBZ[65V[;;-,Q3-7&`?>[ MWM6[7<SN`5%.=VR;D7@<UQ[8L[SQ@3KUV*S3;*DJV$YX>>Z&]67V'NU#VF/@ M>[O>+W;E"/HT]>@:MGVNQNY[W=>[+*J+H[FI7V>]AYT&ZYQK;+;HX!0`!W;I M)5`$USL1U=O75#O5@"C1VP.G;%&0``#$2.U-.JZSZN;[9]A?2*HJT%[>[W/; M51]]\Z\QSWL<]`%/OO<7W7P.TO'4H]Y>RE5/O9WUR].)ZO7#MV#7-K<G9QG+ ML@2H/KONQ[QK[C04#;N#"H`O=W15]SZ>KULMJJSK.57N/+[#7M7;WCO6]VO6 MONNCO9!J[=5UKKFO?8[MW7=R5.#RK.W=WH&^V^[BN$MB\MU]QVMO?7T%]]K? M=]?0=Y#'U>7MQ1I\VNW1U7;ZY],=]NE9V[NCW'GO93FK5HJY=VH+9]S<JVW( MX>S39J^K:^J=7O<]C=.[9O+KL]V[:[W#HY:6[8SAN$FIUW;[N]YE5U[O?;U% MK513YM%VF&E[#Z>O6N^\^S7MNYRNVAWVAUI6ZZOEKWV'1Y];WMUNF:GS<IL] MPTV:=/N;[H'#JM5NY3H&33IT-![QE<.=@>V$NC.VFMO:=L\]WBJIR/O>YAF@ M0NPT^^Y[S0@^MMKXL'IM;ZVE[[V[+VCTRBGV]POK7L-]OI'V4:'I]?7R^N.K M?0>(5%=@:ZWOOO#KVS=,M[SWS[GL'CV^XL^F]5X[(VY@JVY*.J8C('O>Y?64 M$E(%]?71ONIV6MJ:J+ZW;KWOO8]=8^K<'07==DY<XPYW-[,AZZ=?;+Q@E6BM M-.@1;IP^]IUSNGMX>WEVG3U]-\WV&.``%6V:NSGWN;G/3IO9P%GC4RY-K8&F MM*W-M=.-GN#MN#E&CT`[-O:BM4URZT9UKFTEC:)]-[9'0Z4\'F`J52[-?5C. M6;P`,*W=R%(KX2)`($`30"`"`(:%,R::IZ>JGM4]3Q3]*-'E/*>I^J!M0R,: M30&"0A$(($30U&53],(Q3RHR>H\4R`VHR-E`!D``R-``:`2$D329)DQ-,JG^ M)I3P,$&(TTT:$94_4RGZ*-J?I)^D]4_*:9J,HVH>H>I[32@)/5)22"!4_))^ M5/4\I^IE'J-#T@-#0]0,@T`9``T`!H```0I(1,@0!,1B"8@#0"9`DGZ4_13] M-$GBGD>C5/T)J>FIXU3U-D1Y0%1(B"!`"-`(TIXR"3:I^JGFD_2II^E/*:9J M/U3]2'J;4-`VID9`&F@;^/[7@D&*_`$C2R$)A56)(1(E4J"056`"!?]FL$34 MHTHT)0OX,RA!E$)5$:0%"M:BMJTUMIJI-1M$625"504E9``$E`0#P5/WC2)N M_6.A0TK"?UN*ALAL(8[#H4!4H*(+2$UBM!2I1!B/\0M*U:$?]P?]KN/8\@2A M9X5X0G0J?K%X`/^@N@#J-`4,R1#,4;CRPJAQF5B*HJUR<03(:03H+"RD8'_M M8+_TVTFGS.&!)VJZ9UI"6EGS+=0F>MK=Q;;[\H"LRL\V#3>,!C%!$F89')C% MP'%AAR2X<))PDTXN23/ZU43A4#JP$P.*Z1`_M'_X!__(_[Q=*>+_Q8#_H]3T M@'<P']X54\@[;C_V'P4\60DW4;]'.VX`$`!M8```````#8```````"I7VKT1 M`Y+D)R&$,"*?(H;JZT='0`8U+8HM?#:>Z032&[I+'$@GM$#^**(D0X]N*#_' M#M._]/IY;;451VQKP<_)#$-%!Z?]\"]AMJ`?C\^?]>^JX!5LNG<@?C@19:=$ MH(4RHS$Z5!$W<1$-1ZC35T68UK)#1N[K<J.?[]&ARRS%F,Y5K2Y9C%JM,@TJ M35FBS"EK%,L8QC4)/?Q]#'5QTDJ67SKJF24V4WI6]YV]7IVO-=336APPQ_[; M:'0U$RTM;2&9BV9,29+^LW"4DOGSWI;\/=O-*_!7XZP594J8F1WMTQ9-85AI M4T50TL&0:5#3"$"E990*RBJ&U3J5IT96."YP'+7`-,;E&+DQ1_?UQ=A6$9%) M@3]%V4F<1&40:8P>AD!7J24;2,S!(EE+-)!Y\3LCIQ9O!1QB1DPY4&P-J`UU MSVW<(Y7.W=U==G2.OK/5[+CNZZ3KHW,R9\5[W.$W=W4&.#B9($H)3%3!Q.%I MU1!2X4FC+"J:'!2Q8PM=,5ZT$IC6)L&R*$GVZY3S7.ETQR[7X5WEZ^/IYDD! MC,LB1[OG/GS-U=$OGQ?A[Y&WUI?/KYUX$2),JVK=7.N:O7.7)TZ,LHJI0Y5< MVA`HJ(C4-#*I,B3*@$LT8JMH+GUZU\E)>U733.9Y?)!LO75C*I$!I@5),B(B M%MMT2$*<*D&FF.-R`2[5.#L`L@Y!A;C*@22:C,*5-2YIPT!DNM)QH#(IIV,* M<,RFN+6JS7&.FIQ(DZS1\S<`"MD+,4UHJ945%4M25)2M*3+/?36J)#5)1M&L MFM&V#5+[:PYJWOREQX::?#;@VS$BG9J,DT(<"%B$@@B$U!A$])Z[ADNQ%-09 M!D_S<!_WT&]OA9UCI)MMA$%,*EQ>6F&-)HTS)6*JV57L/YT2@LK`<N2J"4I4 MTQ;,JHR2)AA-==W6DM?),\O4IW%TO=O>F,*&2G`>.J)(446%VD\`<0,LLF7; M66N6.<&%";,,$L&#.$Q!*1H(.(UK)K%PRVMH79'P8#-C0)ZPT88QV(8@>`R% M0A&/^X;/_?ZN7+S7K(:*F(I*6Y1U\U:9K%EL?:G.UIZPH8TV-LD,+J@PP@4Q MM6\K)CH<95J+#A9+O)D^@QHV9KY*23*C';KB3"Y%WK[2UY>:ZMTCX]V7KTN< M;;[.F*E>$W99%4E*G*HW`>FNT99W.+%/>5X!VM)E!?1,+!J,@R8JEZN18$#- M\MV]>=M.3+)D<2R2E*4E2DEB5)5"G1GAJ86Q:&UF8>6];V8]%SV,3>W,,-$H MYAB)C"N1.32>#;R+XT,;,%AV9(YZ9+MB91ZX$-MOIT)N2I2H'C"IV2>F%7G+ M4;4B3*`Z<PCK!4%KT9,)XJK&%4C4[2S[.V:(\>G+I2=LMM`2Z^;YSH$Z[MV] MLVQL[M=O='KMS@1[>KI27=[TKNJ]4E+),E+*F4VU[KKD^;-7-[S;!;1=+HLW M6-MM,6:TF*-1E)TZHJ`,"A6X]P`RB9"DV`5`*@1C>16ZU`IM#;$4$3(*)DJZ M7'=+NPIE7?75R5S7M>Q4F-.%.)FD,+0Q@&(ZUF,.GW>ESW<KWNO6[S5Z>!;* M]*UYF>E)B*)E*3),U(O0[M7=U3ER[V9J(K2T9E24E%C0[WO>IN3NXQ-%;&RY MMU3$IFI=-!N5*3-8VZG2DL7-7,>=Z]41=75LIH*'!BI-ML=-D)9]]VU8L&#A M.`]D76(8GO54KJ4Q5"#&5&Z\GO.NY<Z#JY%NINW:02L6Z[`KKL=U=-)$2ZF: M5TLA==3J6ZZ65<Q(D75!F:KE=FNJ5=9LK%VEW+I"7=KLMV3IV75VZKSY\^:- M>:ZOCKU`F)),5,322):[2KM[K7JO=22(>[NS=;I>(1>KW<;?<Y)92WU?7C5] M+XUZ7LV3N<E<W.[HC6YMN.ZW;9W<E:XX[<=VLLKRU[UVXB6X9-N;HQ3FT:V/ M1/:]_7=Q>*^?35UYHNF(J62.5R3%C&)IE2K3>AJ;-S6F:5FM-*:UFM6%H=3: MY26*\ZV^:8A5-()2)"DH)@[4ZR$?]3_W__>O_:W+6*7VM5]ZBML;0:I+6B$K M1B0$Q%:+:-L;&;7[WPAL[]IZP-)D9&T!J*-ZSQVV-BVM%Q*&YN8[6\F\\$A[ M(N-[?-LJ<HGFYR[NX6^*Y?.[Y=23.HVDY<[NNY..;NW<M]GO78P1K@72-C<M MQIR5W<VN[IB[KN3H7<%W.Z25USBY)+NJY1SA1N)<9T)RZC5_,?^GD$Y0'_"7 M8)`(@`@D+S9=M9E'R9*A]GYF:Q#+*/>69J1842CN+P>&1'D[-]DWDIHJ(:&G M?*FP^7<[#GV]32AH>$R`T*,[I#UNK!`BXR+1"1XM(-6&V?#5)>&1R"@P38@J M0\Q46[IH&FV)J52Q,L90Z'LCX]M&V#T:XL0*@5I48Y0Y">:JL7LJ@@R!QMRH ML;;);?<T:*U<HU8VHUBJ_BS;F-5V>6\HUTK)0Y'E(?$+O.KV<1@@T@4"Q*9* M9*\\#4&ILP-:0#.=B!MF",2C`)V@>S#WZO\^&';N'HNY"RS2@MQ'@8L:5[=L MO,'3NZ<&`P9&19D46(4=<U^"WB]=UT3[N]4:;W7%=764*Q;1ERL9AA2\.7(K MG73VI]WRI?H;J(M+\/>O7.T%S6Z4'(X/ES=JL(VV\AX9*C0VD08!$Z3/G=MW M:HJ,FU8VN<MBMRU<M8VBW-%TY:.6Q=`I1EL:L;:Y6Z2RI3&2YW=P&6NZY3== M74M+F*#K44G*ZJ*V\VNKO>]("$[3E/(C-LH2DR4R+?$"S"&C05_/6Y7EKA8J M39/OV;S9UV["WWZ)QW0NUTQP5()(XQ?4@?Z88(7\O_'#)?F6`"RQ\9HI>"!) M"6LIA2BE2"8-8_>M6O^_CH!=I0H&H.`Y2_<>S;6]Z*Y?&ULA]<FI`[CX;]=\ MV#<#W>4\M1YBFRHLPH*#((1R$VBK&Q5I)-(0518Q6Q2;454:K)BJ+8L1)C8M MB**BQJD`L;:HH@VOSM<2C2Q0%!17]EY_C_PS?LWWT9SGV\8;+05H2LV(,RJ5 M[NI-11)!:5WD?PHD")@2H((FDL/Q*T2P((FZB$/\7K]WY>[/C=ZWK?R"?@$[ M!U$LB2?U/U(7)$GM"%?RKQ*03=0M@^IP3)I^^X;+"(5.I*CI@=$HP:G!*5=$ MGZ<P*$")?-55#B2O*`3<&%D5RK!25`HA8B)S8(Q#3(@Q)9/#\\+0.D+(DJ5( M3"3"B[P*9QV:4!I!302`-LA)2B2=K"T#S)YDJL'=X`*"TMNQ\P`MG-XU06F( M9:IF6!3EB;&/ZAG];B$P_I8<<<>\0WW[3%4F6>$2#MB&K"2TQV8UX;;;D;LU M7KUUMUUVRY$1$1$1$1$1$1%*5VTN16K;<D889)AA556C333?AQPEJ1PX836F MFI#&*JJJL1C&1(VXO!J#APJM:(TTS42*D/*9,22I8A;MMABRF&1.=Y)/M%1" MP+84Z_C]:S;N+`JDPG[W3652;)A!!*"P9]A:=^4<L$#GZJ_6:`%X!X&'S#^Q MP?..G3OO0^8>_21`O(>!V'0)T(0(DTP;RCC+N,>AE-I&G<(=U9.3+#P.),C. M'+'"R#"R=`AN1$J_F_#6M(J^=53SU!"`YB!<5?/Q&"@,1$&,$1$1$1$1$9*( M@B(B(B(,08YR(0A00000,9#@8QG3JN+WI"KW_7FV\:3EM^77U]9]L<L\2B,A MMP.4Y2SRO7+.6<\\\9/D3/NUMZZEQR=)TS"I^!CX>NVZ"(G*4IR)2J+BOO_. M$(]4SS3VK][]0NTX4!=.1VM5^K=Y!O.8(B(B(CM.<Y$1DHB"(_9_#\]\?P^[ MS^#.1'\JR*IHJFMK(HK8?:.QT?>[(3/Q'3IP=#NX,.AQ_'PIW6[`@&!"CWL@ M=D"[/-P-F`3FP@<V)W0Q>1*G(EZ=V=TH]PR$#ZX=]`;\<:XE6IZN...(7E<) M(;E;4F9J:2%41`?)"/S2!@)<2?3UZ^H2W5KY>MK.<;>O'UO7.+Z8AF;K72-) MU=\\]-,$_/25+LYRC<#DW!'^\(/FG].?A9`U\0#IQTFLP5,)B4CU4[MB;&QL M:)^ZN@#99L-6:L#5FK#:@`;4TTDDI0@P^'/8M9BQBTKP,0+,2!;Q3/D%"@@5 M!(%04H$'&M`24A(%1*0?2HLO'4XE2/H;K)319U2$AFH.I(V/I/\EP0'4:`#J M*7Q!2!7)P`FP%]3H"O1)<1*?0\A^.)S[B<_;Y]94;%W_H46]_0*#]1A@^F9# MN/>R-RRN9DYN:]K*+U<,&&D2*>/,%,N,9D5BOJ.G-[L_E<\%?\0:L?M+<N3? M2C?<]XS78R.F4.3\D*14?A7_&=J+ESQ':*O2=0;D:MK6;&U,AMS5SMONNV%N MOGUO`WUTRO%0KTC;37"\C\XN\R__PSS1[?+KO?UE'?Q\-O#KU\WCVJ^(RLP, MPAW`\*2DIP)DY_(T*?DF&0\$XXG*8ED_ZW')/C]\_U?.:8Y848H;>&CO[PH* M#KRJ>PWYJ8?V4!]>HK9@`;05W:C3=N.#*J(IQN"YA>[M><=+F3]OMZJQ;4+# M20DV(0-?*4B30+T[N/4VC%O,Z$>-5[`S_9=JY]!Y%U!:)A3H1OA8P90'.8$2 M/<T"#+5O(0$"@00E*OH-%@NB1>Z%?)`G203:'F!ZL7\P;"YA'5-&3^%**:HT M(AB/Q'BPV0%!,"#NJI"UC]K5"-F2*JNEBM"JM5.B9(95E9:L1-65K-J6HB(B MBU>JZKK1A*4M,KJ4M$\NM,18,$BAI"H8!-OM2C2-<1&F$BI0N]Q4Y!#XA*;= MYF1QR7.FT_9J1/'2$\XI(G4F1C6L-D.LL%RE-T@1#8'$TJ)SE-OX]U#7%2*D M,H3,R1)O(&1DEUP>?B/,0X\-W>5T2!0;=J&)$B')_/G16XD>-18L1#23$UHJ M<5,WMLW+6$IMT.NG1(!,.[`Y`N9B'>STHT;Z$M6!42M(F0L$J+2N,EK!3"3) M-:3&*"%`@@>//9L;[\L-J/JLD"D!F#Q&0$P(??)[XEH6==F7+C)QDD/(]LD0 M<:(,E"B0(#04G3H?G?SY;;AOBH/F;TDAL5`NF%'PA4-$(>>$^DHFEZSAK+,` MET8-#;;5@FB^'@:#I)^F:J*D-JBU:),([6)D<H'(""I9A$I`/H^W;0;2PTEP M-.K#+Z_=MO]E5!(CYPU0967!A28.(9$F^H<./9]9PD0O9('TSJSJBR!PZ%-A M-6?PX_FQK&Z`G0V&J1V-^N3TM!(K.>8EPX$0)XZ.LDSA+4+4U<LWHOM>@SB] MSG+4Q2ZE,)B9JXR&WRUPGI[K'QQ;;YKG;94A+DY(3DAIZG-;'CO=.C)J.N>8 MISR^=O;OC?#XYN^.;UQQ+DE4<WSJJT<N1J,YYBW<UF4#XYMA:HTJEWO-ZYR] M0T]-MLISC?%QA'NM7K.-SAF9-/EF\S-9E\5CG&JY&]3.>7.;..=RJ:USO*DM M6N&FU#HRR;O>DR3;JV[.KPT6LXQB,,K7%`&FD\1,K0JFCEAA0V-1)WC+_0(. M]0A4^Q\&<04E3P$?`=QV=;./KAP"AQ0ONSWRW[2WX2Q7>YYI)15N<&H@ZA_= M^<=KBH!^\0,2H?V!I:]$>BL)^2Z?D.5PPAK!^K]/M%^"JT;*NN(Y&D%&>S_\ M,YNFW.4[_#W_]V!TI'N+WH@,_12,V?S@@U'1Y+Y%,4)KA_V2IW/[(KWA^H8= M?;Z@]:O:S$T/R%##@40I@I`R%6S#O/VN\4M/]&D>5+T/_E""PO-)),]9<O4N M[[`'X(I^3F".\<,#"<%ZB!B');^$2>JR)'`E@.ID,CW\_MO1".MVWY5,J5-5 MKWX_+^:WZO[<``%5?J$=</E0;NP'"-^OYS@>BOO]?H'H0J@?+DG!^]7`T,A6 M"?'7HM6W,SCBO=Z-OX?4P[6Q:00K-+V?'"5\Z+%W.'FB:D\Z$@;@;1*:$;?K M6CG4O`=!KX-SCP,HE>`::X1/:FLKZBVK%T_8^I";BM1I'H/[FDLQ0_;VG]:R M1@X$&8#LYG-.1'O-!8)OT(-'X*?EX2.9[O=P/"\T>L>/J3'8D[`]H?!F&6/_ M0.0E-L(`D,H2)B6_;?&J_XIBW"+2*)%>FOT)L)SKAJ3X)7I!QP]W,C4T*H\Y M;+B<`8\B"#S\;GG/`B*)B%B(B(CX'((A?!GI`M-=KXP/Z=:-(\L/Y*TJ/)W. ML=1T(8'[GS(0Z!=]GF-U156I2%D**L._4U'3U'".CJYJ>"#@(A\YHY&!Z(-] MB-UA\DE+DMHLJ=_!&FCK2?@\7Z%5IZ(YR+4)NRQC(O*0,II;.X:*,7*]%906 M*64`A`>70.Z)I]T)WNAX4(/FMIF=(D,@P.<5!UDT,NR-M-)^9HX#`JDUX>XZ M$YG,A$(R^IX!T$OH9I2&5+L8V^;)IGJ9'D;Y#DIAZQ@_L>;66K(DR37\'CDX MG5$NCUX.>.64]FY'S3KA\@Y"#)(#])&Q'N)'=Q6RE?$Y<&%TS*:""YT-5C(C M*3G[/UZ?.G/'2:=VVS8E=>%XAM86Q^@P"M;VOSS@^5M/W:.DMC2)P:B^^*"L M+262/`LH0Q57!BM5PDWG?"FLA5KU.]2F<0K[A=88R[-AJ16<B8`NO"9YY14% M,WHF*:/RM_F^](O&>?%!7,X!E51XRM9=0P7M7E#V]//OQJ$2F5=ISK$_'/22 MYYW;:D)LT-3TDUW&8\LJ@[ZB+S/)DAI2$4D+.<".V)(F>5$!9U-<''*0#0/9 MV,5&*(X%0"#K@8@Y#HJ/LT8;]5(4E(0/;9>6A#\T(_97"Y36X-(*%NTW;N<? M'WN_WN_FY`WQ9*&QK]6K!T?1>1PVX*-&:71R4PP82>>LG]18Q4*Q4*T*!98H M)>L6<IHC/IC"?+X_C^?;ZF>K>?=W=W=W=W=?#G/%:6M?',#-B22.0?#H0D/; M">V$J2>XCWK:W+'.L1%T,2B\:N7T5;5^*0C<@YW/AR5)^$554?`&%3"3,S_R MS0:IBFO8@^U`_WYT6:F"%0%T*%^AX>;@6=<$W#@>D8&Y$KD<!NX:(M*&HT0; M!)CT33N)C'T(VV-#0L=S-^:Z+4SDE^WBMP\_PH;T,]$DWWT>F)G>W7N*J#P@ M-!Z.7E"KR@ZT!BZ!QJG!?LG0'Z(!H])(:#TIS#^3Q.NC0VWV]!<U11=-VE"% MB5!I$EVHV-QFNJ.K;C,F>I<KU2E3!A)5]64&+`20<)9V]1.O2NFZ#QH,Q>;# MLE!T,GYAAT%$6=2C]T=.[/<]XCYC1ML$%',ZF=I:(]EV#ZEG`H"ER\O'.:CL MYR>,XRV#D>*!B_'X^,5$YOT53;&'L9`F*0EN=O&OLF63.VQ[2_FO8L*ZDH#* MJF.83IWCIN`]H),?`@Y":/$Y?:W-+/QWR"R8&DNXE(9@:7[?NBQC.2D-HO`+ MT$Q*!%^E416O96JW?J>H>2%I!Y4,2>O3`[=OA^(]S$54Q*TC"?)@'&P6-V85 M5+U&YD:5-S7@CZ'E[/9\./-^;;Q@DRE"1_/KR6AJOT$DD=>C/[7]WH/[)4_" MD3ND+"-D-&R/*$22^:H'R8LRU*C8:3S9+6V@,9RYBJI_\O4.1@@)GN-A8(+3 MFQVH3FIA50'Q%(CV?Q4532PFD&A@@-1KS&*AW\A$S,\FNTT1]2R-*DKL]S7L MW@Y2]\ZJZ)T,%V[A!C-?`K]^IR9PA\@T_>K$8@:9"%"=8XZ^HPE\O;()H8RR MH)?H-!,9]Y9@RAJ'-G#_);Y$IV5M#"Y5'=9^7)!ZK`H.0QE0Z)[^IJ<O%_E6 M/SE]L!/WW<UQC(JR&V1R$*599B2@+Q%5,?'F:#4&&!MO93A!OOA(_;!P2ZB2 M9YL=$ZQ/[#0?0TR2=KED6I%HMN,$N`B1$RDR#=+(&!E'QB>^EB=5CH4Q;8E* M_K?]@@`ZY9XAL0)>12D/:<?(ZX5E0@4I=EB7FR),8TQMOH;/#'5*EBIGF&SI M72'>P'V/<]SS'"J`QLHJ1#8BWRXNR3),HR_5.)KLM)$ZH*I:`/`T\PZ&=P]Q MHU!:7,>(I2HU5F&9Y9S/$8AZ0FZ56,HS499E4D"9L,_@8-\#WVF3-$MZIGW- M)V9$I'WSLHEDDT%4P4S+'B;'`4!XF8<B,=Q>8974I7Y+?K_9E=W0<[.[B=UR M(DR19),HDR4N%.7,:=T%N=MW=.&+<QKJ:W,;$J.ZYNCNN=F#FW2NN[NZKERY MU36;<<3ECJ-W73+N3MS7==!(3IUT.=W;IL:L0\7L._@.G:9(0[6%5`1V8EVY M4UF:@U*8993*)C!AW*VGF(,&,::&!XQ2F@97]^%0\ZO0M\RJ[[+I$U[+EAB4 M<YN`\`[;P1$3>&YHX8VIJ:]:JI]/J//VXB)X#T_\'$=#Z@90^C^[T'ES.A M(/4\[?;1%1Y@LD&&IFPQPDE_`/B9R-/TBN((%L"!;'%W>QOU+VR_G2IVZ\;W M+MW)DQ]G=FCCOPEIRGUSI36/8RI5'A6.$L0ZU/W8R'L]B%!7-Z,UVC171.S] M/'F#H9F[Q*]2-$)0/GC(JD!I@?;)_]"OM\N&G<E?$C"AMK]$(";R;82M*83$ M,2*+DU@$>9TS+1*%GY%U`$<#1SZZ.[@&05F`VYFN7U=<%*Q^PRU=K`52IXSB ME)*%Y*Z@/$E4F"W^WU3'/VY_O=\E0V/4W&A[1R/,M4G['*/A!6-C!T#-(N/$ MI&>Z&Y'+]!^,R:YF0"D`2#XC.S(XEJ3<TM>!)3X$'8&--M8&)#&)5\\R@VRY MYM'!P89A4'(860E>`',29#!.FT?`KAP?M?E^A\)'X^E!,A)(>?T8Q'O.`NNA MT0=2L>$%WV\KV7I>L-'+L;=W;N*GZ>F;%(/`9QZP3.*K/S&R8K/Q$U8?2$@@ M909%R`UUD2,F@@*D(Y'.'>!@=S4::I%^[\3Z;IE#VO<QX[UP4<7H3XU)E"D< M*K+A@D=URZ7B4,B09$#@PJY]Z['/62W8PM5==\O[O&_=E])2%H9FF#@&H<.% M6K>[NY"@/(JH0'O0'FMS1_R1Z!`QB9P9@5UFC0\-I=:`0NYP6/M)>WP,H)2H MBP#YSZVHF3`M"&;C=F=7WM'\\8`T"9J`0,%_28M"@]=N^:FYLXU"1(4+5!C, M5BG4*Q2N'#3/3<GARU3AM6*<K)C>.Q8)A)5WTYL610T/,+A(H+R%4*A/AJ<I M")JYZYS71&"#8&2&,ZP(VR])*_>;PD<1\QD$C,D>(^`PH&7.%Z'&YC??-J9[ M"4@E^N`.I]PO/>)A8YJEU48TVBJP_LJQK2U2&1CA*JQ$%X%-I0%&WW]MR=Y7 MV\(P:/J'B*\Y^!P[YY9+FT_;@Q-^U:RWT'[[8)4N:LVTBU?$?>6D$!M/5=YV MT#@6/1A(T?@M%2,D-+(-="XV'O#F03&%#T)*Q0Z<`R[Z((`;TJO12[EPU<D& M4M?XJ<EK/L>7.A2B(KKM*7!&BP%NQ1+7UU2SUA!F+(Y%H)Q$S-C&VR8T_1>J M[%$/*!02C+`KA)[;X5QJ;&,D,@8TU85(EX=U;&W5G<,9<%#%`I"OMD-D0WR0 M%?M]?$./2Z1HKL\L0X%BK<3V%CVM;?)8[N;=^K1J10H,.9E"6;)#82-GVG@> MD%9)>6B[J>1,SK(GU'H>$I"^@<>C4(-_$<"5?<QV,U[!D3`Y#E)<5V7XDZ(A M>^0V9`3-.B.!K4,E8-1\,*"%=-=Z:FTY/Z<(D)J:'5C6?(RGP4>[O)*NQ"8. MFN>8L"HM&"EYOHRG%-41_$%W*,F``IQ'DCTHH#\V34AN\'Q[JG`GN=QU!MFK M2M1-XS%V!0??!B$4+8-L%2#B(%YOBW!HTR#$KVSW_KCL\_4UR=>,6LK/Y(N* M!&`1!`-#S[1=`8X4GI:($A20TVK%J1'"<-1B:TTG5YK?OG]IY$<_AMQRW!;C MGP-!:"66</,O(D&8,N'$("8,2@H\39SV<U#L>9O<XL8G&9T.S@PE*=7,8R>S M1'>>'&DNH9UZ8CM;0VD'9!8BHJ#^Q26<=)YO$DO/00,&+0=CBK.`T"H%?`AM M&)"\=[RBH((>>:V'YX^$?V/IG/[GNJ=;NK^D>2I=4ZJ4RLN[S,F50$"D6,#[ M$CX9=^7YXOFRG/-51Y-8K`6T-;A!-)+F%(&PD@FZ<;<I4O2[HJZ8C#4GHZ71 MJ6G-AC]#NV>`D:"#:3*;$K2HU142D9;!JKWO5P%.[N^$F%SC7'!551552]G2 M1-G@"GVR;NV-B*<!L.42#DEO:7#H7#&`AT7<<I$T@30,&D@ZZ&-=V1'R-E>4 M;W44!>L!]N%27C#53-:5"M)AC4`&ZD=.?)"_B1:.QTN0\'!YSR=.?`[C!I'" M7-:.-A=B-,)0L\_XBB\-'B[VA`_"/-BM`Q`C%BFA-%/9Q,QV686(9)>#*:P= MX<(*6!LC5A&4I<AJ&H1;54,DTA*QJ34*,,#(M46U,:"-@F["$*A$.EMBOGL_ MO<=GV'QKB[><O"G<.GF&)T/^QS[GF[_D^NM%9XN_-[52$G3;;R1^]JTK=92R ME$G82KPX`(WAO$D0"&))`A2"9!D8@2`D)]3H6QQWF4-EUQYMTV7#=7$`YG`8 MJ00P8?REM=9%2`%`IYJQP#D(D-=>BWLROP>>NQ_%PI)U753GD\.-KKWY((8= MS-=`%X#6U#X&@5&SD^B(V4M/>HF,[Q_@Z0M-NYG?F,A$@W-$!E++*XR#Q'OO M6E9'#QL3X2IH32OG.;5EE!/ZS^;/YYUQ8N,D8W%6B*[:9$-DDZX]TM++=>QW M<&-OJS4;=JE4JQ#9I?E+$F5)DSI\XMF=BN>14[^!0*D$!`7--'7;96]LW=I* MK"SBM)JR198F#`S"PH+5D2_KPI8%BP3$IIO\N7JX#-"0Q$,Z57$(%P-&^^/F M';DE];0L5%;PO=9=[K&BU:(_-!%5\4<XAJ>I]662NL3CLTD<P+7*6<-`V;1@ M!"*<JJ[]/<S/H/6K1QD=GI#H[I*^SH(W]/-$D.'V;V:RT";21=D2^9G:HUW9 MJQ?@W4"&!S'NV`BL"WI`VI<+'$F!.<U26"<+1SYA>@6OH7`Y@08FE""9?#** M8=I`7:[K3DO:=3EQR.44&`8+PG716C`S2I2&B23HF`2(,0/$`CBD42Q%HQQ. MAOR-W>(=U"LO=99\LB./9G`DDBB5#\[(+IAC&RSYL1Y*\YAZ%='A+XI93Q%[ M>6S@Y+TI!I"D3^JA]@9/)XZ>F1DD,/#.4+>"A1*'U)E`D)[I7N<#5J8-5ZTR MW^WHI(+V&3$\IX7194-X8FL8[[DY9-(M6N6H,*9Z:%#KO"P&&4P#@*AS/KKO MIZ&#/0Y%>AZ1PVN'X^^YY'M+X8V)(]02*D*JJ0T.;.M%H@FDT2">=O-?$FWN M*,^(<5#LN4S>0!0+FXMT*ZT15&#H<9AF+`+/H^4A'TG2*#ANH++;@O4/=PQT M=[Q$OQ6Q_?W&;H&E@X)3=_B<>KL[(>5Y@[CH7;5#H*=T1$!G+V]J;'$P2YG- M(7BDDM%P&&HSJV2-'#S/O[MI')4G-MJV4^,AXK&$*Y)0%%"+_S)$'9'SH8&/ M01H8*'F70K)B1(R*!D,@9W("Y;74H>$\CN\6DZ2HFXVKOX+TI4EE6%9C`EP, M^63#64RM$)A88>W?F$!YO5Y00QP^TKJI@I.P1`&!2%4.\3-#P`D$R96YT%5\ M6*V8E(&@J6YJH,,!()C=[XUT*V^X\(/3F_2\77C315.J'<+"CF1'H5-9Z]-9 MDS#QE)*]%N*I3"7,FM'F(XU#@/GJ3;KG=&G")UMBY$A+"!BPR7C&QI",(3:` M,F#V0>BT*4)1,$NI'.>Y*Y`:WC!8(D:`B,@PF8E4^E9&%)*6-6-46PNA;D2K M**344,2*I"4E;$;@WMA:,>UC*<$=YRL*#;GY,JT,;AR,3"=Y*`Q38`X4E'F4 M:=\3QTOG#THW)A7)=:X1DK%31[.CAPX9%*4=%4O+YTYX<OI>QWYZ"MTF#8-! MAM4J@V#KKF[Q_)A,\SJ2[-\BYNX&0:EJ:D&5X['3)>NO$52@ST>V\P>\@4"Z MO,*:WZFA])B'H-TBV7(3Y-*!A*6'0%(&M<S5$ADN&8^=+AAPGS2R&B@IF'2G MSD)B=G!KG5430)SY<+'+U&CF,P^;&PWZ4ZB9:7T&=E@RX,#+%H9MVI9].P1@ MUY(RGW#A(Z1PC2(B!GL6%='-!H+"`/J<*D_MKZF!#V-I1+X9L^&BLL***4T( M94*'0YDT!R;305-@V#>5T,%92C.9F-&`D81B4]HBRYR-B6F^1PM#;\(BP542 M(-09T()LX(..=V+BJ:D*HN"X&D!=EB<(R<AB&>\DKFQ95F1F7%Q%,F:ES(W` MQW$<GT]</2]`:NE3(W$D233!@,)'$SP,)5-E=EAPX&-#3&1C5B(0-O.VJ)54 M[@8#:TEDY5GJ5/2Y0N&#,FTSK8\4Q92F9<QMAU#A/(<TW"5B1S9,\8(1)I:Z MV!:%+XO+TKIRTTI^3N_-H:D.9E9#HHGD]SH='"9BSA[&-%'R.509Y-E'89X* M1B[VD3?2ZY6S#@'HE$D#]D['E/.&'8'0'-T*>J,I_+Z?G\6JR3*H;!NZW+`L MQ3-1@YY%7/29D%28-C8NB#VCA2*(Y,Z']X6$-<P?$@VV,D;L*\PH%`@[,&(9 MJQ4,^H:4$]E<G#X+V'2&-#-=O%7A@8==M)HL_(=T@%6E-C<\"-G0PE#OVPY) M\\&44&KQ/E?7^GW'K5T>LS3&DI5=!YHM]KMY[+)^`Y;2P$W^5N(B9Q<%0%/Q MZ[#JCV@-EMI)J]4Q9XH>'<W4[0S'!KOR=[4`NFA>.,"+)!3P!`NAL&WLHL"> M:JH1F9IP#L'F;@;*'>=U'%536$1A+DVA`3AZ&^Z;UZ,$@L#'*`,D['Q;+.B- M"TL7>/2Z@^KKZS;?+K,33UIB)XH<*AXJABH5IYZ]7.5IC>H49Z<$@R0C/7S8 MBB.:(LTOT*"X30K-Q!M/8PJ;-"U>\W"Y0J"RJD9)ZIJ:-E5-89A@5$(HJ*1X M-(4+716VC%86>0I#F#&)L4-%-""H.4.%=-)$S.)^$'&^G'VTY;:;KT2TVA(X M-/QKO=@G*?R]TJSY7G*T>33DX1)3B>BDO?>*5[L2IY^>^=&]*Z/*D!8J0&93 MTX(.-VRK#(VC.YQHXGIO"K#:<MBF6<XO67NXAK5@T;1C:<GG\ZDPR/,]M!'1 MJLJ6-PMQI+A$N6GEE;:O)+I*96@2"MR'6H$A*B*#>A@"Z,H/K<IU33+*/S4B M_ELI0IN0=&CLVO-_CV'`,P<Q^[CF#W'KI8X8C<$])TF[\[<32EL71RLBTD42 M2AL]?2CDK7:9D*=UM"32"O;N>G<Z])8NFC._X(A71Y7UUX;9ZST[;TD+)=^I M>KNJJJPI)&3>N*`JAC,4AC7!8X??91:8:H126)'"`8T*Q*8B%++QY3%,7./R MO0XJ9EF=@73B%18%0=5;DB2LB%]A`#Y!]!FGS.W;STXJ`.2^^EW]8BF:QL31 M`@?*(%5'ZRDH\-%)JP9+@T1A!I(T:PM"U@;SQNA@:`W\[&B(FJB-G*#'K,&L M1D5WYQLEKI73>;W46I(^$DB=!I+$!`AF?#_Z]=]NXSTE=D20DMFA"0.`$#,3 MU-6A5UK3X>TSO.573(0Q,V(3U"G<J>'AX3V9(M9C#%\KCV,&,S%):CUK&+-= MF#*DC&&L:BDIA*<;@8ZJ3@DWU6"!X8;Z>L:0U@978AT<-#R2,(PM".I4)E01 M7B3UD2*U"9,Y22#G(@-P;\&+F\L2)%%%%%51155LZVN&'%K8.,/L17!0##LM MLZO,JJJJJO</M7CLL9?Y^C>N\B<$P($="H5H@G*RQE:0ZTY8C,,&94N&0^[- MQ3%J72YJ4TL,,AH@'4RG*6B7"0I!OJO69K?T6;V#F%X2-^=8P$YK5=G9)H<D MVGFQW"&@ZJU$TO4@"8P3(,UB2^+O]4L%D+GCN>GY_R_>_EZWYE>DJLU'```` M``::X#NVM=))"`2$@```!)`@``2$@#6220@$A(````20(``$A(`V`54,,HK# M+P1$,3"^N#9#::8BG95T6BPM)#LP>$H'64/%,27%;/$7-\QS3TGK4M'SP;)6 M`L_T0/![ZPV[]M75%\AU<,AB$8F3RITW[TF2S4"-4FHCIYI...3>N#6BVS-` MT/`+W>?,SYT.AO;8R?B=]*:5#P)SZ%P28@$?O1#^4;&\:Q!QDXY$(S:2D--H MB(!S1]K.>[DLMF9X/0K)WRJN'5LVI6HWFBJ5X3<\9]C=N_!R.TV]W525(*%0 M.00,"0X@;3:8QM0#1:TAK4KKRIC"2$7K9G:UE['S6]>0EIF4UD$A;LYFT1,- MN^8OB&@+GC*[YX"_$\6COU2W4GL9EV=FHMK!50[&LB`EC.XCV^H\64Y8AL)B M')A=(+R,$-NNO:Z6>"=4PFW,3U)^DVM)LO"4G$GHYR,9E-#HFI)Z'@:DI(T' M0YC*6+"<H(G1/@E]%TCGLA==Y!P)&-A&GF:,-6BUC9,5=UT:B2*-PJY72-1L M;.NZ[K+6EHX<IX!T,<CCU(Y::Y-X@AIM-VP:)%"*%[3T%&XE0?>=\7#ZF2KO M@(WF9'$;3HH.VJ)3:I1[&:SY7:]@#(`6["%E%K`O$+A"*,5X4:`=K2V03[+C M@%QQ6M#%*J4'VU$+7.;JID0PP6,0S8Q:-6K2+L<`RWI+##-:U'>&1%Z@W5U5 M,H6C2*E6J'/EA0U[DT>""KB6<HG+;I!)'X81(J92E#Z>IG"-8@"F@QHU+I5R M174Z8+;T!N`8*SIA5'""*&!;D7.9-;W]1*Z7"4[$B)R=F3FOS`CG@MQC793Q M%NW2%$>_3JJUQ4EGAYPLRZV.!)D3;@D0S-HH$D2+6.IGCV#=N.9.K16,>7P[ MZDT7A2K(Q*BTS,NI+/TNK+G1I>]BQO`!DZSX9KT&JH[Q)9*-#S&';F28?-(X M:@]YFAW'D3R%>$1@(0P:(1F?.E9@![WKM&=.$I*2-"2'WDSXG=U^CY;\1<BI M?"I1<<.DXGD$P=%R0\V,M.\8T[GFT&Y7#ET^0BSCS`?'TKB[>&&:#DP`&/-T M]O!WJ=XRDJ04*@=`A8$EW\CFR--,13LPYH01KX;-LL/OW<MM)WQ5NRH5"-$< M(R7K0W#/L'CC3,NX517/OZX2$&=O%X&:#"H/CP)!XP0=+UWA9^XJ2\:A1-[W M#:)<2G2<R#H.O1TS0[(\2IB>:M@;#D72JVBJY=#I:Q+OHLT44445:=EW1155 MP77)7EMK8<9D3'T@Y#-C/*2KJ-A<GJ,H%XTW$*1B!&6#.A!,PY9I%Y%TM[SL M3"3!@V)JPXKD5'H,<RL30@<\0V8]IZW(>[J*D,6X.U"XH4#;+0=6_,^:KDA` M^SF!(P*AF;J-Y9.I+6>+-(D7[AY.A;B%TB`:/82#2E>MNZ<336D,S0O=+BP= M$(W+5)3.IPYI:511?;O?G:K2MI:9!4*$/+D47ATV?<0%SUF:(E&Y+;0;3&Q] M@F5;;;<!<]_QJ&M-\>]R-@Q78_`4JZ#2.DG_:(CWI!(G!%$15)IGS#8>`I"4 MZC92:%U4"`PFDFI@TD8Z;B&Y-:7]W)FNN0>II&O;JEA*0GJ'4]'F$CW;C43D MAKO7'FVWI"B6FT0#F7\;TH8#&QIMMT$@R<EJAIIKX/E6ZF5*J10>LB[2M9/+ M?;/$K3G/(\!2$+@!Z!JBB#2Z1G"HZ5EL&J20XA1'KQN\R@]4)[O6>'F[3T&> M3382'72#\9*2GR0T_&G?29-A#`KSBV0C;GT#,=4T02E>@PT$!1I"U4B!C2%( M0=#(Z%VS.()-%AST/3W=.UNZ)%K@<%4A&]9=5)FA0*/;<58W5+!W[XTS4@KD M45PEEU(5TP;)-:W4Y)5P:A!I->7*0WTQ[&SY\0[`G:7$YW!AQSZZ4Y11MLFL MB8]<]A(:E,@UHQ68"@+(6BC&1HU$JX+-,U-3P:QK-K-27,,HW8C+`I%J31%D M,7+5++4FVNUC+24T5OB]*O2TDTY'2TUF]+?%>TQ17NZDG;MNR8M&E0:$--I= MI;MLDVL6,==VP!M6TB-(HA`:!@T4"UC]LVO'5V=QI,8S/IC-!7$B644$@,\! M\/V;8VQC;8MUW<9+3*_$9'C7$]692)4I*5)$LIKC[NE7*/+ISZ/EKGGG"::D M&/?Z9=#QFIB4P)4[R123G:!02D1VCCG230BF[V$!R-%[%?2_M*Y$NR@<+3>O M!<)<"Q"\**#A>,D-@RQ+(D4<C=[MTT"*4H3M.)S:\9P!"9>$N/A;BZML9UGC MK[!W15M6'1$$$,\\@RF&@3@E*"@T`0U,JR&6D6FUI4*(&.D9&-@R!Y`T/&RC MAL8LJTM/U1J%U"NK`&:"*UQZ&,Z<7["":)UKV7`0XHC?L/XHW'2_+Q[MC($I M0*2DI#1VO<^GU\!ZNP'M&?5'938TP6B()9G=(4:(N'+IPE!L<0S@3P@($R"G M6)A))';6#3>$:M97>:?"E'Y<R#M$Y)IDSIBKD9=T&-9!N9%$'3HEU3>A0/)F M7&5'1B:;4$U??I);%Y05VA;C!!`^X]AVG/2IO,@;;0FQ!-Y'GM(,L\'#=IU+ M"YH30"`8:#$V!FDNPKXBB"6`@2#800(((B+[J(`30DN&F#@5O9(CL3XY]N!9 M7`P`QL2<&`-4P0)?!H%L!5D'RBV1NYN8,8S,5ER:J=`F]L1W&9@4289A77NX M3U1S:+)AOQB<^]"*1.<>W+K@Y]HBJISQIO1FTV*U9R19Z/$.#;F;G?KKU?(P M$ZFEU';<ZL,PBG24P4UL(T,QA>`VQAHU'1)FQ13+'8T"(MY73G<=0[F;\ZW? M`W\*95WUIF:,<C=4D\*LM,9(7`=FH4%`VNW\+9JN%X7BIG+-MYPBS);U&)"0 M&]-"6FEA/,))$TP,$,!;UT(DMQ1!^-'9L0^$*'&YO>DW*-630\+C6;J.X:2& MB,<3&S@C`TXX1:,)B@VVBJ?%JT,JHKM(@W:@Y:I-`PD)&M0M,H;;>3+NIHT: M$QKYSI+UZ.]8IJRF<$,H:50O@A-`#8(4QZJZ/F!XR\)Y@NIW$L:.&>6U"?F% MBE*$O$&%$60>XR)(T$=JC)A+<IR&Q&AIIH2P%2E*$PF+G9+^T:Y459*7YNZ+ MOU7K0FM/=JDDQHQV>;TM/=-*?Q_L]M7I6DJ^=MW2NGTSGEYII5[=^_W5_@N? MIIKC)OMT737224K*2;7+@:4DZ5R2Y72M]I;SR(KI=-)_<MS/\/N:DB/N@^[& M3PK`JHI8CMC(369(COD7S83\?0MVDD?S<6<0:$Q[@0;)B.FA'_,C-I*7MM%B M`8G+\9\`;61H.'8`Y1OK.N70=':J<Z#RV9*8!/IVP%[I.EYT:^-15]HL4K*A M!K,FHC*D2!&P82B,A5&6(;1?=9<LEW=*%UEÛD$84/=.H#4KDE*9/-\># M0G"A;52T+7JMK%DO/V'G!S`XJF1'[+4(%/<Z_2A7[BQ4X1QE%<1B7B![VE2D M?C(TI5*TC0&0.2AL'*+KJNVZ2I1E-*FT+I;;C6;::LDEF&;)242*F6)*E$EI MR4<9%EH%,4T<W;<W<W.Q78T.ZA.ITR*2%W<I#)(AF;)42:B*8I5+5&I9FDLB MQ(I3;,N:C;M$C1/6#*U@&%-7E[-:)]_G?I#9:C1K6B/K\(PB2@Q@5&6_@0A= M%!-21$42T]0'L9_4,/E8'0^QP0A;284A@<[0V0XNC,S'-6&KC<J$IU1*.8GW M?]_9,OYW=]XAL"X*3!J`,&0/*R!N),JZ95A)WV\?/^.JJOGLLO,AZWC.)XJ' M5J<LS,G4ZM3EC@1!C'GV<YZWN/DKV'2DKL//CAL0;-6N*JM!P=_[M*^47NA] M,!\9[JEY^SU:^J%WD'B#U]OR:$Y0(4J\29#J'>M[QW\,W4[UX4.OAB26PB/: MG1/E(,!]8?G/<?`_M3\00$T5?4?%WY$HQYNE)<EU2S]-K7'.JI5'5>009F%P M$DD9F9I"/R%8E$B%$E86X@57"1!<"8<8">P=.W7%!=Q2$8$94@IMP/\HS_0[ M,P)#.*2&G!Q8#!P<"$-.../Z-G928"&&&`V&9`"<&<=Q:F)"0C0R8!H<,#%9 M5QE_H1`#0I"BDJF)@Q,(I*E"41_8@?KA^:?OI[S>K-(:#\R[CO]^PV*@E3A, M3R)ZB3%)]V^W^*IA\LDYBN<I<L'(Z0WK^311J2'`>(S!<_K[&=BY8#,)&2-5 M615?$[3">;D"3!UGATV%%W8Z-=#ZM#A&Q%)%;:(T#JL7M+4;$[9#WA(&BV6^ MPN;*02&(4J)X-1E8'GT"'Z$1#12^O\M#.>=59F*"H@PT%3E'+B8!B&P@'_7T MD16&P>@.DE9SA6@\=EPA62CK0=JTQTY.M>M;1VE86]XDU/)V.*JVK@>4R15` MVA:XME//(A&C7.("]2B1D:)+U9M4E9#*H"5R4U(T9122Q7)AJA?X-";2278: M1X,*ZK>-.`Z<'*<@9210#0B*'VR6Q^#T^#BN.2ZRP["F"KFL+^A<*LX"#01Y M3-#3!X_0ZTT8V5*P$1&>^&!K73J^CB$[5#SZ),)045]9.W]Y-(-XEJ<8U2Q+ MS,<72Q5JIJ1$1$1MM+6OOM]\F9,8VQH!M"&&(@9/\J?3291<<'"RHD"U=X#0 M#I5Q#`&24*3QSND-B*6/\*DRR+VQ!_Y4J$=EC)2?$?ZW3H=!C@XN#`0XB!LR MD^4C'^#2/?S1=>%E:5>"CX2AXH$"+8((U^G^&J`NP2H)H3$T'U>[$5&)=<^! M)"6"I=D3=P_8=YH.3^[V1F_EP#7<*GO_QXJGK-`QNVE)P;&'!QT$PP!+G9^4 M^GR=QX;\1X=UR:5#A$#0JWK::$-(8))*ZJKB9W?T]JMT<PYZ%]RH1I'T@H"C M330-8+<$*P6TK(-"@R!@Q@0(+!Q"WNB>1KQKW7"H"#5;F";%TT#3[U.\H=P6 MPLD63G,B.OQXGH&]@N-^+BOI.]XW@%H=N>WH7:T,PR_8B>*_WSED>`9XK<+Y MF,?2)&;J:5I.T$B*3S,N:^/;/62:Z>X_=]#7L<!U_/[G)>FP]2]5G<VEL)J& MVF]]M]`U#I\OU]V-OU_W'=!ORBM9=V^TN6I6S>6.^5FRFG;B9E96\8KT+F"U MY=<VVVWGTMCAPRGMQU8TVW2*2CCJ]VF,7ALWD[X;AC/Y/)=X1I(REPX1M<\) M]P.*&F(@F"@1):%B%BCKA,)'.]FXN:+&]NK>=?BWL;T)]&5[$'PB*0H_;-F; MG[NVUK7:@TSJRZGJ9[Y`OQQ`T]Y67M/&?O./,U;9^'1LK[%XUECA<K\$6WG+ MPQB8*+<,&>-:"R[62FW0]5H*"PQ]NC6YL$8R$3^@9T&BA`\9!WC0$@[H\,1V M-H&0J`T5&!#XZ&ND+,K.9/%JNTZ9\[;]-,V_373=ETUW.3\9,AO?/.W'O+^1 M[<'$)\$2LT,\+SV"**%#/4M"C2)HQ><E?*7.U:J!'+3=BA".VM`O:IIB*;L@ MV.>"Q\6<(MC03T3`:H,&,Z.M^DI_$-4>TY*5M3CK*@\NHZ+<\:]'KTFT_0"Z MYXT/D"B)J0SJQ?2JAH]CG)!DQ!5`3-LNM>#L5S#B+;EG#2HU<DB_(RP&DP[, M@,:LD:CC!KI$JHE)#*P;\0UM:QFU3[<;BO8?O`OK;]70)<"<>K.OK%]3.P]& M(.?;B2N-`GD0'LVGPF++S]$E)+^H*CA"R'PXD_>%16-13`/'JY7GS>WHGVJ< M"_Z_4)J-0E3"PEE"2%E(7#\:IA$'W5:78<%D.7SR+%4!40KSXRGSA(X`S>!- M#"IW3[P4@[A=_$#YA'GX%8`ASR/KP\*^/E[>[-I-#2[URE.:A'^G4Y7Q%#YI MG5=/_,=DQUUFW`R#C,FOM@T9(`5\6O.1E.#N^=J_^$\`!M:MUX9D$PE,CIH1 M`V7-HR=A[*%23T060S^`A*;T2>_YRC"NE@:+(BL1M]48<E?,V=#/PX[FN?V2 M4^V=0?A^C/FK^Z]G*GL\F.ZQ[%6G#7IM?8]B4>=8>Q11AU#EA1"+WYNC7ML* M[--FV;.KI!JUHYM6X>$$^(?U6OAV9XJEW@OSF+L-FAF=&YL^P:(\^<1C2O]T MY/*QI@0728:RV=VL7.##&-@QG8]",>'RT4<[CJ_E8M7R!1$N$]M`W)!E)F!I MML[R#E@<216HBX\CE+D>S"UV#%`U+#$TQM&4BC,>FX'A*I9C^C,39.*Z=B>4 M_2*J<';L[ER:+C9%(*$LBBXZ96VO8IONEN8@+&@X$1\!*3H2IJNJR(>\E)I4 M/@B=&?@I#TXZ*L>!IUZ."L8>RKRVLMJ6#[H]JH&K]DR'(/YW.B;T;$ZLPF&% M)6TSC.+=0L/F-$-S37T&<%AC396!INSD99#3-!2[D,,P*HV80;'A#MG4O%G4 MN:[)"W=C!2@R%C>X(@4#5A$S\"SP9!I9E@1(^!H7H9YR-G@V+BZ8=K[Z[3?2 M8G2-^^QI[A4/@\F'HK@HJ]=#+,W$%`"H;BTA+@,/TWA6@^;`S9P":Y*+J',@ MO*%TF0(`^6OM'\*0O4ZO@W>CG>2SHQ1&!J4LZ01"WT37?Q]OKS1I?`VQ+\S+ M0#<TTR8%H6^1W@#2-:'-RX;[W)`U>UO@T<<FDGFI-/;US21Y%K'197,FL.PK M(DFAKP,49?$2KG4GPN5]@*T1X]4G#R7!0/AW^?KON[$=?T8YF(AV0M*E8Q'B M/8Y2]`\02"J_F^[%@EWK$31W-:05&C\C1&-IMR=4X_0&JJ77L!.^:BAM1;NU MQFVQLHBAP0Z'>:EF#]AUED#5L1\5NA`3-JE9J4M%<8.;8K66ZE:)"?)D<XJ' M\W"K"ZTB;;9Z6.+1XD[A;<2X5\\I\ND25"#=`VN#2A@;-"J4\:;ML2S\-V!E M-?`-#^6NAZ]VXQ3)7R>30QC0<H$CD-`>_Y#8Q_/S%VT8W3OUG7SAQSK8H4H. M>6Z_:(E;G'YV4S>5TQSD=PZTM777;6N\,&;-&G10UG"<-^OK,L1*2U/!KB4I M^W>%.=6U&`;7%H4+M4V#NH&L3J-@V,D+JDEA<6^_&^L#HN]%BTR`!8!CQ]D^ M1S;:B8F70V$T:^?>-Z[/Z7?F<?X/+_[FQUX?CZRC,GDN0L\['&L'*LKW5BOA M?8\NE(YKV#D/8[HM$(#GY]MC]P?O']H@38)'\BZ1XGISWZT6WM!"A=#CUPUW M$42E-0OZP_L'_$0)L$C[29N+[MV[M#/_`2LE_V'H$&W^M>9^\54CY"L%%+_M M%-?#J7R`P,0LOO@-OZI^,_UL`].PV0)2+_,PN?ZV;AYF\[H.W?R_CCP\`WH7 MR_CL2^A,;%&D\WU.H=0.F_?\_3W&G6D)IP/NVG28<FW'X5>,4+7!G1CE+-S9 M$-OOD.4$P3@,O130N(25OLM0$'O#X#Y"!-@D?`FEY\H7<T;,4YOG$N<'ZI57 M?ZDOXQP"F_W<;U84H[@0-`R&TH$&<\!*>J7(V[N[!W]^-/'COWTTK&E>"TGW MC`KO^\9!(0FT`ND]9YJB>G.6HTA;5@!L%(R@11I(A/EG]/U^FZEJO*+I<M>U M!<>#C:P3&`/OW"DE\?PYN[Z8G,*H2NPB\(7&F_FQ]%QY=_]5^[I,D%U.>P&@ M+'''*?!MAKPA`,]\\I\=NW#CL/*W:(.#"M>$I2;A(B(\*_!H?+N\U^-QFXT+ M$\Z.E///^+0>22*2&D\\8>-S-LZQV=OU@<`D$K^)"66/.WGZ]Q&;B:+H)4G3 M5%5^Q<A?HH0,$K[*@`B)!UOCT^O&QY(Y]5\?@5_;,)'1I45[K%A_PAEPU!:W M\'>!1#'_M7C/QC9KV6;,N1PZT/\_R\]^!]KDNN1M;IJ^.1Y#\#+(@D$$0,D= M\AB.1SA*BW@#1N&]2PN7]WRI']'<?>-DT6=/GDT$[F>-^6/#N<Z-EE%E79"P M-%%QIQPHC(+$MIR)X112AG7$R4\U_!^S<>OB/J;*A^PD/:F6DE^RW_?C>,>_ M1Z;^KE*1F><<I5KS(M2);O!(A$E1T.1?3$VK9)(YWV75R2,T#._:RQ>QV[Z- ML[FV9N8Z#D_$WKYTF5=7[R()#9N)2&>I)J!7L$/PALU>'55)X\6O1W)&J!G[ M&8^[FZ:11G(;;D1/`'!KB8^Q[W48MQ=+!R:*;YG#-%#8G.51[@H,I4/3MY-_ MI:(B/5R;D0?\Y^X6FN0LP8[D>D$(%FR>WFN2X/K]WN[SNEVE6US>+,69^LFU MS3!BU\<77Q/<,[SWF,K&LE[CMODEGM05CEN@XN4F<G;2?PK[(8Z+!1TE*\XE M`XM'L.:-O0]S6D==LL0]-+T<]>"H==,;BN5\FVWE6<\$G;E;@9_9F5X<BT@Y M/=004RX;R@]QB#*KE:J48R1_*GR7#Z)QG4YK='7RN:IJV5MNO#QWG<&*+BR7 M"4LXNW-XO.7>OKYZ+?82X^A"C$H:AXF'=0C,8J`TBH1351J/5AK":&+`:14( MIJHU'JPUA-#%@=P7QJ]20)(.0DA)()L,+4Y1SBP>>_.T4;A#D&%Q.4<1CC6L MTZ&S`I05,*'IJ-FF11K6:=#9P9.@:G/5-2,R?>30_482QX>5G2=:S69*U6:N M56JQ'LZ"=R4@\J))#!*&$FI-$HN(64UXY:AJA9S?3KW\36?IB-+?TOJR_Y7W M^<&RY[6[T?MS3G"\R$[P[CATWSQIL?&,^-0<KY3.WLH_F<VAYG;M?;QWR=ZV M[6Y3]?%7?;O5O]DJKRZ[Q^7*ZK7)^3>VF4;(]GCB<*,0166E8/&PR^Q+<.^/ ML'&7*+6RRQ28W>4&75SI0)..%;\J6T=Y%YRUSWV).<;I994E>?#MO9TW028= MN^BD;/@35)!#74>36T<?Z;A))$%!:&1O+-]%RRNAUN3[3%AP4P)5D(9\5!AW M!)B$3$SA=?:HX+"O`VX6%+=*+<M]]!#V/5Y95?JYG8\#L[A56#PZ+M?.<.Z$ M^.2'^1U.WA>P=Y%1R<+M9/MHSA(\%(`S8G];(%Q\5!<:7<+Q))!\[Y[!@`HF M"T5`(ESTPBR"T4P^4%NY0[(S;RO7@8P8,/GY*6\Z$N(R"("/LY1]VD'U9RZ: MF`[C40Y+T&("X$PP,2(8I[1P3MB^/;CLQN_N8Y<5@%[3=LR;/,9`:@OJ0I)& M0P2)$F)DAB9*2:#Q''\)<AJFH!:CH4\R04V5I'(TVTG]6!J/B6(4J*$@T:"@ MQ2%JHL/!;<"DTSYYB22)21V\K$IVZ?4K01,H>TVR[L@[>:Y$!PS,!-A<(("$ M$"L96(#P+J%0:?31\PO.SVR*&UEW/8]C^CG!YW+X4LF&$LHY=%'/T''FO.,= M1N)T*QMB\<QA[Z(J,@R!GL6?>-62FETKEMEXHF5:M3I72)FLU!E22^H--MMO MX+[=N7LVSS9;C&YHP1D48R[&,<>[B&1;3HB#/I/[X+'?]BD#&VW@79@1CEYR MDYF9<@,4BWN'H)J1XG$.I0>]C==WVTUVGW#Q-AO?;L6N;1*%3C.2DFS\0Q:< MY1$AO?*`_`G(#NK0.L"@]#Z%30U(V*J"QM[_/76O>[@[9%8]WV2.VGD6NMP9 M.(MK>)U=55QP"U)8)RP3)Q8EVIKE,RRA83K*.TXZM92Q!TUBEZ4]YG)C4AC= M>6/:3*&":.$;4V;R*RI#ZU,J9MWBC*Y>V\\%`ZR+N2R\#.O`FO_))D9&73.Q MF9JG"IG[=^XD1[&VXC-S'&E)/PB$Y9FMW>TZM\X(;]T%+W_#$*;R</[.=0FK M[4?G?C?-2-D&,[2G4A*)&V[WC#M7`W*PZZZA^LB90O&5\3F4S:F3G@#PI\+2 MQTB>*K6T2VE)1D$#-'1?\@]!J_R@#E.;X1$E@\6_,Z5GQL>K-\^,L.M9[CNM MO,^7-&XTT2/D_3XGCQK:.QY^FB>1=6:WAEAZ*^<LCK5&BG+(D(DS9-#?DPT- M3=)[,J4]]/E[XUO%WM*DD4/\.O$W$SR_.=FW4#I"^]<**77C/;G&E3%)=?53 MOH!WUG;U,RVI;RG[C(7=.H6:#T;;&FFVRJ"JD$E\<'H9QQMR0-#`]P<=NZFP M]5+SAK37EI''.1.1N3)$?(?5.VM=$>?C]LJ&>D"),CI"P3('B/!,YM6\%S(" M)6<BPR70)CE)8(5I:.\IVE4*%^^I*GIT[O;XMSK[`T'^/#Q&F,901@Z#5J+S M5-N*H!A(PJ+@#`87H9MMMDP22.@>P!06IGUGIK10EXZ>UDNEHJM\TU+D<B*' ME8B1/0O,2^M119G:,HS-_^QE#H(M)4`D"$CD!!MRQ*V38Z/W(:I_)]:"';<( MPTG7\H+2P3$'"8K%M01`,&&5R)7)#AFUW!O'U?3K"5RSAJD!-K9V61`L]('H M:&J15MBA-9U.<4IU(EE.I-LL<<SC?E;I_?+">[X:]!W>1X#@("BJIMLA(=,. MFJ+W2,%H!4&K&F([Z?J'B3\!ELCSME[)SQ/OL7V.64CCP*S*DB%>=1C'8-_* M@=$T!JI4;;]]>85%H#!J!&1NW"22("HRA4T?=()_!D!0E@VI)G$\:-'[63R. MWRZ&[V#'9ZGP580B@)M'EKY]YU2I.A^L\W,DT*"EM)EXWTZ4D*Q"1]]L^<ZE M+6Q3?QW3)Y9>7'QS[72VQP4"[O"-_H_&+"Z![P@$MA)B:#"RNXFNWD#@%`T; MF$##YT*;EW1U#;Q-3TVCWL8W:=_NZCXH2$P@?/%%3(^"@,!*&954<=U%3YYK MPWV/4[+[C7@%UWR#=K9)?W?:*/]I*-^%NL-O'MKZTFO+O/A]A0\.'!EY#-3( MG)UJH['K'5G0I#;=\.)2XWWAGU@I,[C>ZJSPWB06X!@S;I&Y^A&<C(FLOO./ M"6FKK%YY>62Y4(.=8E_D\R!LK\?=.?WQ*JP>#1+.%;2D7D9G8[%)U'LS)DYW MEPZE,K8X2*GEP\<=LZF:Q+"[I[6N4W4-:PKNAO)$A_L@7*1.)8?^[J7)6<4. M=XISJJ]Q"A[>G'=9^?SSODYSGU.W=DX(C'<3]Q/7]--RTSP9[UAMW^W<2./V M;I'/!)MR<0'"L@RJ-4#,MD[+0W[LS>8,M'%&]B1C\<Y7KKRQ,N#:S5D2-;%9 M,&%]<SI1$_Q"I+J/3A'`E*AL2)J;6^I[M;G#;J7[B"+^&BG<JNH^E*2,4D<Y M.N%.)#)R3UUJC(290@7T.29?>3`KD<()!U:2V%\?HN`J'W'2E\CX'C!897PJ MG)[MWC/PWQ\/8>;TNN_2YXXUF]-2KKRETURWXOQMFNK5<M;S,&5ZCM$8V"9* M9*TIM5KMT^S4SQKCQVW3IW;YDF3BCWWB*[_"V.Y$A=UYWUQD=Q&,[D(X&Z6! MZX]<XAK=6HVSEM*?!YFL71T.QO(G;,[9D9TWPHX1'`UC76[&>M(#2=?KBN<5 M6--I$^>9(C<\\LG%/&Y+:#%:G:6933!'A8BT63XM"=((0U[]M^G'EC$1SZ6S MRL8GNTF,DYQU;:Z&_YY0<GQ.G",S?4(?6L<V$SUEWY-/K0G(_J#]O:>U8=<Q M]:-#IXW/G5W&N^;I1WE44Y?I\JPR..<R/5RI.G"F^9F+"5OT&';CV,/NA^M_ MM+[/P^9QV7>=I*IZKY8JN#+=3*4LG\T4+;RC1>^-:.V(J^T^.\SCI(Y79>2` MSC=.),&/)W[L4XUS\5MHZGV>7F2&F49]J?(W0.<YS-VZO2-\BDAI;G+V0;Q` MP2]65-Z@:]M*&V?M=@TOT-TXGF2]QE1QV,EF5^:NWKRS71AJ=A^''B/1@MIC MV=,FH20GBVRY?M>?H>T?"\3=J-.=G12[OK9VXL--O?2\UFQ-T:;3<]"X3\!5 ML3'Y<I'/&H8,^3^$LC<8IN,S*D[<')FM_;]W[OV8L&0>,!`2(;BQ9(OMTK9O ME$7I_Z=B*&:%T!=W4H+#J!8:\=.>.BU[\Y:\D\)VF329*2R/>-S0>G,?<>S2 M-,"?B'@HNU$(UJR%-3OKZ%-V]O%:CY<0/F6RI955$^?#^>I-]'8;9U%Q00^# M-LX36F4OSZ17':`89=WB&!XX>T,XANH=&Q>VX$A$T;CG!I,AS@4\M2QBP(JY M#38F#$T,'WZ3LFI9ERQ.%KV;$8V&JYT2'!M0L.'6&[XM&-0>M1QI8"`N5&,D MC&,A11P24L$\)=*#SWUPZ<7PBCE+0KP."].%PCF#Y]E:-,(P\).C-BY_W:\X M%]H@=AKXA_M@P_H&>;$1HP(Q.2SW7MK@UK;FAY$DO,1+[M*%"P#N$*5C&X(] M\SUVWL'L-UK;)[&N99;U30Q(]7'K*=*2>3_OJ[SP&-I%P(B#1Q`<1%JB=6![ M4-K9P$.<#RPY<G"-G\T_INITRG^D#]7KJJP"PJK3[=S.^P@!B*7^ED-;!L&A M.095=KJ^7Z)7>6FDFF)L&43O:@'5*R,#`2C+*#23.9I9+)$M=*Y2:4IEI_HX M_Y>&SA4M+;8EK;_4_X'&R<.P8::8B/D12%6):3&NB%5I,JA!HY&&BT0H=67B M-2&2N!*4FYU&X@5(8,8#&>ER?*530M1QB1U9"Q9%ZY(Z.K$-B*B'Z%8K6UP4 M.22J_H)`^D@$7%#0$A0"/NS_*)"'Q?PBGY*QRI<<$P9B9@30_M8O9B<OL,)? M/'ZD)`6K\)]CP!E`.2`81IJ5(^EC0TA61BI1K)(U#;;;ZMAMME6LF*Q6,<?$ M:CEM&Y-"EE++7SHYCW$0R>^'ZTT>$V(L\;Y'XM\0D%L?N]F2TSB=G963'-,H M5_E$55UU\/&HCN`B5!))'W[F-L?F<""OUM2B5^\D;?<_"?@:,&9V>-H#;,=, M6=_0SE3[HI1NN_IZNVN=KO/366A5R=]*#/V)B[!3=M&[6X\6B6QDM)!///=* M89Y&GN+UONMPQ.B)LY"^M^S7FTNJ('/!Z(,A\$TNR^&(VWIGIV(2HCO"C6V0 M*212*</UU=#;]I,C&'77Q.Q^?GN;Y-5#Q"FF;U5V.RD>O1--L&[VG5+C#_,? MV'<2*>$6\-:&25#,D$,KTBNU#!J4"0V.#(M!P,EVNY@QP.AG5*&M&!LT8%C/ M@\F2:;JF7&F-4*VD<-"D7F'<-*N2NO:WR1=CYBI4:;:]&8'@^*H8PHG<9)`= M$#EA99%=/A][`T<ZA3V$7H2+8\&J8RW%Y-4%"SY$#ZW$+3#?M]>.@9A_(SWY M%2VE$I,V:P5\LG-34F/4D8:4R<$,KH:[K%F4530T:"&/U8<N_$VVSEV^`8B@ M=&%VC:<<6#N1)X9SX6G_F_,?^)'ZN_BD/>]#__R?D_KKD''A;8D_E+`^*?HQ M[SWG5AT<SXZ5]OH8^?Q>,UYP9:$_)+1)7)!\\8=)UF0V&`]YX,D;LV1[1X!8 M(39!I!L))(R1=\`1D&Z@W>?.LI<7&P_W9E]U<+H)(HP!!V.-=4`+7W@F<Y%0 MBFW+<9A8QX>S=/6:/0^8&`6J,X1NVS^AJ>)!N*GO>XR]:9_^^<')%DV-N"-( MDB3(_9F(RS%M'U+7-\^4U6MG9KCX:33E^JB,,!TR-PB?7@3D-2FR]EKY8_6E MDBD64H&QFB.H,V:\Q@P9>^3'GS&9L*TKZPWH4.]GM7]YH>8OR;@9&1Y21#A4 MW04^.A,>C5<S<Q;Z'IY+;6G??`KLZ(5Z_=4I%#8RQL.V+];"^(+\#J'RR-\, M9?.:=TH2XM(6N%Q(YVI!DOD-#&2260ND5;9C2(B#I>63+\0JE@G!W/>R8YM! M)[,)HS[!NPS1T#2IESYDR.RR[L1YOL^OQU]E3RV:BK,JOZ'5?>:NO#VY=O=7 M>;XY<XU;KCC+YYYQS4?-ZXEZXC&+.>,2O2DZSPG6LK3I:^+QB]L%*T'BP[J< M<\Q[U5Z+G'&4UQSN\OB/69CYSDSCG1E;>JO7%IT)XE*DYS4Z1RY\P[EQ%F<4 M=F<FTVV;D.(D55#,$C7`]:QKY1?E9Q);IRH1C?]F_VF[QRK.9*<FW-/Y^T\W MV%?O@J8X0@:.!(S9PW-*OB/;0(/,8:L9[8NTNF=B2J,_%[DC\(`W#*"8QE0V M:1M)9FT;!H&LC0:WL6;14'S;[\N;^\5T-Y=2R2B;IKMH*R'"+8Q0P9::"A') M3QUCF8.A'O@T==P8I+-L4J6KJTQNEW@.BH;.63;3;QQO/#'-.V]!)$\P[K+! M*A[2$IE=#2=42&HQI)&`:;%L;<9:IRK*Q<DJAGJPG4KQ4?0?`*E,>#C'<JSU M9?YM>4?0O;;"<>U#\99;(PC2JM^MV^LJ??<;?##[1A'0M+C=<.*K*<Z<+&E+ M,8XO*<V@E%;S:&%)?C\`.^BW%X#L<B-#X&7R[8Q4+`:F:(K1IHSADG3"3/(J M9X/\Q(+,ZMZ/GVF*;Z-O0X7-FA)5#,9-14%>&!B,S">!I<`,SE`1H[,6+[#7 M!HRUC3\^C#<PPI)WRP<LLW:[1M=SG=HDTEW;J4K[:6-[,MTD;JL5=#YK)*MQ MLX&"Q$SL$!24`>B'8GC:W\M5FPL;&&Z[X:N@,>VF0-2E<#F-%$3O&X1H@\#0 M8Z(VG"`N6<D7[A5[_'\`_0/X3D)W@/@=YD,[<O1BO9=B?`,B#W<X@7B<LV[% M3I`FVV;%(4G=`0B#[YYJT]0/9/N\G)QJ460I(E#DI@$]RM'8_+0_?[>X8F4O MN-"6@H[]I"JCXHH;][#T,P9H&HQ+0&'0I\\L@N/="I'RCW:_LKL_EJ&X8EN! MAN.<N;?QE:Z[QH)>SE<WG307,F!DES5!.@J$.0'&4<'05!'BJ.1Y6\K%U87N MDKR#1467QF!&OGLVW7GNI7E`;A;9:'>N1^/I=8_ID*,`^4M0\1B5@:K4]1]+ MP;=B0QG%EDZM*S&IPBU2,VW-NE`**?/@$SM1HZ5Z46%+1.0FE$\^J(.YU-QP MD2,\2I?:M&*4(U;B`<FM@A>E2_#87;AO<!G`N'%DAMQ!`^'Y9O.QQS9;&&#< M$/!FK'&8>X,$;9;/<:+N4/A]-M[HBIMR2%,()"3@M&%K;%G$)436YD-&XT/& MB,]K_)`"ND<E3+JR19ANX[Y".#+>-"4FED9:_7?.F0R5`[VCQ%9Q"'6#;.)& MVTE8SP-%C:!L0!GY`/U[JK^;OE5RDIF9:BKUR#0D[/M\C5%]XXYX9FP!\1-* MX$C"`!>!`%^C;H@F*GG!"^^+?3Q2^=9MD__A#WP/QT7HPGDI)"/L7SZ^TX&Q MF8T^?MQOHE7T[C+N@B/3CN`Y'N,=3OK\/`"_DWV)`A+\1-)($UX'[67%UW)H M?8><]1SPT?N.41#)Y@_?F6$56L6?TVTW&E;-C&'CAYVU5MJA(926VZ_B;VTU MGM%=[_$[Y*_V63^K@^G7'[XD'MDT/8J4X'>?9ZU4_$8?>TH$R'UL+9),+/Z? MZ?\CG>GLXJI.;)<IE<I[ZM60ELT5:+QN]UJ-56GMEEC&22V.&4$!WH@QTW<2 M*&%64V.QT-EAE$LT5CN*;3WN\,+R\PQ%YNZ*U=17#6Z?!&?<4!&G^Y_>N0B# M>*(QK3++B*<<L_+_!PAZ<>J8[(9-&UAGX-\![H/DRJ>9@<<P(]_>*"\C[X/S M@H+\_=^T82=7=Y>&N>A:?Z9#T%D.DDX/_:1('UB@.PBJGYGRHDR0D'>S0.9E M4C9@,P%_!^P4%TZ5V8(4%^^/:^E7SMK]A?JF/X+F8C&^%<294KY=W\61]WH= M.K%IED-9D$%6>@2&B`(--Q;\"Q"@+D21T@]DIZB!Y0:#:6KID)4_SA\%(%*% M())!EC6*[#2H;!BC<-V2AD(J5&[?Z_6;5VV>8;EBGD97YIU>85>OQW1?;17M M*SZ/W)VG\TM+?+*G;CC6QAZ]R4+!M("LHJH<;?"U[E)!OI2Q>WZSJ3MZE&=; M[OF.R#&][<;*YYEWC)V"89Q675%UU3OESE\M4QYCJG=+OK5=7K?5[W>Z];9& M[3=MEJ5UI-O(TTQ*6ZDC?GM.-^Z6FMUOO&>-&DJXVY26(8S-YMX@Y[ZHI]5G M%Y(.5S9@P,5<=99Y-:HUYK+2,O1PLX3FL9QS&FQC7-9?5]-CG5]KUU?798-` MQI#:2;0V=43[[KH]WKUYNFF%2FI2\&AH:#`U&9ACK+`U6G$,)#CK>@\>$\O( M,./U']))551R&+\)8`6%H+JN@4@]KP'575U_1SO?$UM6*J*:UO3YRQP:=72V M'57!X-;PV=@,_BV.;[D-Q"<8<:H28.4XFF0P9,9#!#4AZ>7-V.3&'I-.^GV> M!\GSK6M<_ME,:=4KMVZYJ=O6>PHI2J()*JJ(\CA0$:W)[P([X[?3H#ZT1^"* M!]Y4$?*']`H+.Q?XO<_M]_?]H.S/LDL1,/.;D'&HV;HR2Q(/)(+:,%!?`$#O MDN]%`P#"J*D;%"HA4%62.O1)U2$G6'NHW%!>PW=`X*28N."3P"`9A$Q94\MR M-$142>$48*>G.D.;+86R,3P2"7@W(_$(341HOZYZW7#:UV[(W3RZ.->5GEKS M%4\SLE22JN9E#/37R<^6S9!W@JM6^-PQ!ZC%B`!-?8P@VK;7I,K4Q2D>R0C_ MP(>/7B<)/&H="D9C1[\\_#<AJ)R0K,)B9"XDDBG%E'6GBTF;&VMGODHL,:0- MXVHT*DB1H)A/_A,$VH?QE!(Y?L.&G%\\SH2Z5>#(\IB>&EQE&\<`/T.9?OZO MFZ09=^:K5W;#JK3JFY:I/??('H_GZ%T#"!JH5`M:59A!YNO5\Y+KA5+6CT21 MXB1;0A00T#7<<`,F$2!VD/4%_DNU_S*CT#V^VN[KL%K-XA![/R%$C@$F@Z0, M4+[VX'9#40KJ;V"OY\Y$AYX5II]U>K,O5Z\-X/D9R0VBJ*35O9*;0FT'D@3V M+KC,T;5!F".;(EN1HF,;W!-H3F/*L6W"N)KR_%'6I19M.Y04D600%`$EF/K5 M*9R,@%"+@+`+.NI#*&`_9H@_(M0J$&8Y`SXP7DIG;NX!D!ZRD/R0"4*&2'7^ M>K#D=7WO3Q7R^2RR0RR<LLLERR>SH=(S#R&.VW=G@NZ_5MX3S)+*_!II5H:' MA8&T$&++A*>9_A!UL*P[)@M(N'.,YDQ<;-*RS%9DFBRF$\$^60M/&L/6TD7: M/F8SV8ZX+,PEJC3@Y!KE9(>;S=3LE=NITK>^-#L6?Y6,%&D$F(RL0"53KUF2 M,`FB*NRY@=<&B&)+F#*RV%'_^[_/R\O7KZD^CM*?0#5(S&"-17.")(3GW#K+ MBEQXI8:`&#.*7'G8I?,A0=0&*>;[=PJBVBOW2D3FAD/RWJ%I-NHLDQ,1\G2< M!TPR_XC%3VG8'G^K8?7/O3+,)^KLR'05/,3K623+;!X+'T?7C-Y#4I^3\*N\ MG\/XJT8#1F12$1<JD.$[,7?[Q?:=<^7,"Y`:UUTCO4!J'YQB>\,7L9]A#AXP M>,Z":2(B*]AA8`XP4QJ?C4U0U28FC#@PB/9!I(]'L]YHV)[N>`Z0\K[13%/` M8CJ^^\+H2Y:-87;XGU!D$*4&%45.&*$J>1/H>@K*/CS0M2V0U(F.4/\LH>#^ M],"FX^?I6SH=:K-JF89#=_<1$$0+3B'&(8PU0*I_!M]12FD'7Z^/IY>V;H>? MTBU5ZRDZ>Z,3`IJLS0U%T%,)`NS,96*!9%H%41/V<0X&Y3KKYO%PK?OXVV9, M/?SAH.90?>?29(`4_;+SLSWUK\'CX=Z^-556]CI5MZY6?=Y.[#QTX`L3RHZ? ML&0,&1!,E%W]!A#L&^Q48QQ\-^XMD,(:;"#39IKNTFU19_G!Y5E+X)(8,J&^ MS="HMTZ#'9?%4P\:]!?Q6>G3FO81"T,&.QG!`PPQ0TAL%,F9$A)03B3.?CT] M//QGGY>E;>=XM&I<6>L0([V!P8IG`3&D;TUPF,AV&/*CJUNZ`]`='ZX/8_(* M"^T^T4%M>_P?A&5!H^UMS[\K[DZ&5GHD$:5(^=ZRK#Z*N*T35U:&.2(&VB1' MT8*;B`L*NM#.F-Z9(_7.QB>WWR3*2GJR?'3XJTKF8SXTY:8LLO/KSFCX*SLM MOU/DX55+%6J_+Q.*KZ\?=&KAU96,K)QI-&V;X?>4AB42`?E\0T_:=\/B('VN MO0+W'VO(!3\X'V935*>'G#NS(MT/RBSVB2`7Q/+XFOFY->?K[/9945)_6U*& M*F2W[@9ZJ0\L::YO3+6=;6E.EH=-=;ZZ?)"0%%B2'#@%DF+"M8H<6T&T/2'R M"PFH#IF#Q<I0C*3/#MBNHNP,QVFD1QF,IA&>?3PUV2.(NPL6OC-[I4E$<)RW MLXM3K5EPEOG$IXO.E]^'&5;Q7+%9RP6<5N9%G/)]A-$B1\%I(DQH(H/55.*I M$NG7$BY"1,/L^YI4:=[N%>`[*Q+;#6&GY;]ND@O.[.WI+PS.UO7>NEY2#M1/ M/.N<G/.5;?5=KUT9S6:ZY$@2[<=&JM,*[0'U,D@SNP&SNZ,4&]2G5=75WR=- M:U#<QSOO.NU=)AWSFK7**(FK.<,O=]/BYR2YT)`EOCI!-5485*Z5F\F35;R8 M]A[)=%^Y_<R3[_G9&FV4C<YLSCWB0)2@"A]&@V"5W;A*-^5GQF^,IU<,#,,8 MIE>)7O6,J3Q>KI"P.G+8N'.E'<E8#NK*=)TU*JAMT$<ZKF504Q8PYEG.^&3F MLHRS2R(7T(A"JP%G+'&.GVZUSK7:NW-]-_;I/JMIQX^(,.I5U55T)`E"-I-X MKI9DYQ(/<*[/;WVYIWP^.N"N.]C',W-U9"^.>PJ`I3G'N<FKXUSF&<#M\2'& M3+U*=75?8)`ETKILZ8:>F))(L3_7_#]Q3E7FI)A@'H35*-C$VVTQLV.F:-/< MI*B[4NUQD?A.;5[C@PD([=40'(*..,2@ZJ5"-!&?^(ID!LH4_S2JT/T/]CI- M2.@QT.)03:B@,4"!!004TD?U:0?3\L2#[&KZMHR&I46I+_2<@30I-T_@Q-1% M4F&VA\CM@Z)5<D`_M/Z\$\[R\`4_R/X)F`@EOP0*8IZ8\\%'/"K`R<AP9;T) M<9IT$3WA?C=>)`KL)*U"!J1OW_XYZ(KHFS%T8`AI3:_H3$;*:W25';]ZVQ\% MP>?^$40^!1!$VE@801*2+*B\P8.(J$2'>=J*J'N<C8ZV4$;PV:.&DOWF6']Q M)]^31QY)$PSX25$W)!\!\Z)S'[AQ^M[WN?YF'9A#X.Z\+E>ZI6+$Q:2%2_C4 M`6TUL.P;"@V&<3<AN1$T-31J0V6'DC1:I6@`8+^,E+_?UK*NH5`DF2:EP7Y_ ME6R*G=KB)&S7!9T_,FEA?M()C;&QLUL$A!@Q0D,&BA!X&H3,V4*?\&9JT$)B M,AA#3>I^X,J4"]U`Y#1Z'K,)U%VOQ1OX(0>F/7[^>1E"?3M(-]L'];GI`0:= M\6&(F,FQ>U[MH*#W:P+WC,"<\I$JDRY+8:"^^`G?62\3,R`D0?MM*_*#?UN2 M9'[NDS;?"MN@(&L#60S/ALR6HPW8C+R4!6O^:'>^%`5X!:?9;F<YU1.#PY?V M/NKRF=>\.D+NKK&#_`T-Q5D+G%R9(9$H'AD#4B%][#'K[=D'_L64#?V0CY<L MB1Y\7EA_=83\7<A'GU(21+JX-B/&1&CA(._UT_D.>*AZ,D9N-I2F_5V-T"GI M"7CA1SC$B!H]C\\F-*#>Q<1S\"%TOZ.6YB*R()!F#(<#/.T=^AW=K@!R?FSO M.$"RX*-G$.(;T@VF'J9&10+@\F&LB%#*-9,[@P;I3DQMG=6#,)E7I9&'J$"T M:GK3'JI$NW7H7,[PJAPG:4VM":-@O<[5I(@W5]7-ZM*S?':G3PPG:J^G#9E1 MV*565R+"#+#"#*"%$%?S^1A.^+B_>G</E7VZ'<;F2]_7;+Y;8[@JU!Y23K&[ MM&$DO5MW&8(+DBFS(`XC0&58(8')H#EI8ER@(&M!D\[47&L9%H(<#>9T7MS[ M;(#8L&1@ZU*$B`*P!GS+V&:T#U9FR3J0'095SMQA=6<#3(D3>E3;7=2HPT+D M?Y<H#OS_V3)AQ<(+W):-M,W+VZ$1!!<I(=\W-VX;F=?^%=QKDR3B%%.2BR'? MV@5BF13T&CO^5<TW9W']DDE!"CU++&43:2`::;24@0:X!J([`T]GRLV3Y4:7 MAN3P2<B/O844"L<;KM!=[$CK=XY7>C1C$@(!H7Z?TX*V#3!F"#MQNZ*XG-^Z MN^2HFD78#:M3IB)1$`R.Q,Y+*.!EGXF%E6/\PIHI+DH9Q/9D`<2M#UL,XP35 M3VYDJF`])SM,]FTSVE#*1TD<^DSC6D@N:F8&Z?<5F?9'0?"!VD:W%%E#/&24 MO%Q$/6<H>;J2B1QU.AOK9+LF=$EC)6FEN'J_>.'X]0H5"E,.'A<(Z%#<5-$% M-Z=!U!G)^HLM@E=SG"PVU0'!8AG/!(YE%WN;F:IKR$UTU,I#X!&OQX6V<XO' M\\=M5&3Z8[HARI2["#T<I'A!(')L[^G#=.K^WP@S8>;,F=T0MTI45S_!;X/, MB\CO((LX39Y[C!(F-#$VV,\/0D6)WUA3?>D7K,F5:%JYICIUSEC-&2+&38#T MX,W#=-[]JH9(*;SX^WURM[10;V'SM7R"_,VNH_'KFOQR:[;JHDI"3F#DF0=I M:9?7.2%MF%1//LT:VL),8P3%`OMD2H4E[(AXC_8O"?9M@;,>^]HE1O)*D8PG MQ?;-.,"J:&Q:92]"_F,IVVR")$$-29R_E0*`QDSD,C?(]D=$4A/%1P9$RDM& M-B\!BPS?:`QD1T9C/22D;1DVR5QP:D*<6;FS(YEE6<)>#1DL3)%V>;.DEU[6 M4'37`<11_*IE'B@KS"?/BHU\F<9U1!M#.#C<,(^PQ#UGGH&ZHIS@Z/V,XOQ4 MHJW&F\OZ^AKG.-0]X\Y)^OZS\YA3E5JY'[5+/:3BX/]-JBH:;WEEM7]CE\)" M#A)EE#IM*'5>:*V-@&=3.R-B'[E.<E!$#0#24$0-(\$89F2E)01`TKA6C?U_ MU?5K?2)S5LAUUK0W4/;9#PWBTXIEC(`*<@3)7B$_/LX;SD&8F`>3S6)J1(J0 M.=S-995)V1E[,^'MSMWXS7I/91_"9MD3,N[*3R5BT=<^LSR+W);H,?A$,DP; M]N&9]D4?+"O\?UXH'K@`[:[[#G*ONM3TLC8TG'LY0D<QBY:0`<V98<"A-ZYS MFALPU5A9N8,-@_=FF<WO7Y7IB6:\;OAJ75+]URX(,92D)IHLTL^IB0CW#*R( ML8\(8')P_\*&/_C%EF;'EUS-@HYQ5/T284;WUV@WGLU&%#"B1C0W9].*+8VE M>$7YW8_U2/CUAS<G5%-DB)]MZO0\:;3<=-5;43$Z6(R7\G?FHUMW:XAHU`99 M/;)[(\]MJ$4:NPAB;WM$F*7LA='U<WJR./$DI9^Z1/=!&V^S2E?6FO$M!3`; M1!XXWSVH*8/FX!S\=N&^GA63XN_`/!D-B_VSCX;[SF,=6,8SFJD(41*$(#Y0 MH`7R,OWUG?0L"T6^YNLIM0,AZL#-H;7V%SD5FP#LQ>27\!P"_R&BB#BA01[V MT,U\_K[:UAH27(Q$(&>LUN7Z=+?W8V,7*NCR+*D$'PCI2?/A[>&[K^O?YA?# MMN#H]I^-#:6DI2@&EI*4I6-$UB%+24I2O@^4>H^#NC^KS2L7%Q8_+58HP71L M\>L+):8D;[N[F+$A!?S'"'"\"_K33AL<@[X#N?)MK</TE(]\\VOW6247G^F2 M.:*4IQE*5=5^:.-,HA>MU![IR<1\+%M/:R4J6YYZN:HZ1'*<9\O.14^[3CTO M.[$V+S[0S9"2BL9Y:\L+8A]H:YAY<9?K"];?G?<U"'L40@U7&NYH/5_LKP4O M#LE"1,:V8!LQ>C"[.%H#`T*X-9/:T%V4XS!]:GX]^-<96H'9]F9N`&V&V4^[ M13#S)0(S(W20M6C=APWJFD5?1J37>Q?4I$V(\M(C(Q+WR_2SI-L#/UR?,@53 M!.<O[TDT+.R0%9?Q%KBK+J&KFV&42-&;1S2A_,`/K(H[D5@<E/N5+S!MFP8B M&2,OHQ0NW0.U,4*9_G_\N!!W)$)`*8#I[#)R,H',"S`E`++L2,RS"YAK^-MW MBYBD&K)(XIQ;?PFX.`]QYI52M&'Q^7EUEB2KTG,X]1"]F@=2[*?*=O"E!-03 M%)!)$*&Q%%);,87Z1<T-KH%%OW(^:<?9A]ORZ)5D%IE&264MA46J=/(5%"93 MITMZ+FCE.(X38FD=)8T;;5Q)M(Q*S#(O7+<8Q<5AP)4:7TIDX%.NM+*`>"FV MLS,YP@GSPN&V*;I$,)11;:18L`JDD%I"..[L<:!W!]ZVV;%=/AH5T1NJJFZK M8J5V.5)54YK("U;J>J0_V$A^^5_H6""2'EP!?K&D?JM7O6ZJJS,J\S*6DFF* M)@'!`VL42E*+;`,N"<V9PQ-6ATI?:5TO==1`E)\VF763"#:BHJG(2U:"A7Q^ M'GQ[>/BM?C:O]/80@R9&3[JA)2=#3%G"-\(&<RR;3#/J`8IT:G_D?X6UD&E3 MMP)A26-)4%:R&+%1OMO;@JE44H52J9QJ9C!4LI*,KM=TCLE'$EB6X+&U<-6Z MI5-RW:T13L4TN^Y&@8A7<)5:`RLX-<*3?%WS(U-L9*I5I=+;LZZRJ,)8MMM8 MB@I+CC1RIJBW$#236$A6%:R,8V(#'HT%.DR/CJ(TFK`P),E<((PB)Q'E*WE5 M;V-Q681DI5D=4L&5'&]&D*2R0Q4S7+9=;!2@5A&8X".D*)@@93H1&,<1F2`V MB#/K/%/.[D"9`S`Q`T#`73!<$(AI*=5D=K917;#=0JJKXV)AK'&@,-2MQ6*) MN6H#]1+PR!N2/]Z2,QI!H['^C#;;<C'^(4.WY*%XO5G&.?DDI[W%H5H.S;;= MB0C30[KZ7@+%VOX7K[,;T!;C0_=\A"^0E]"U\XQ415!54U5<DJBDH2!#&B23 MWOQFMJ3WON?[@G\T/5UU-EWT\$1\!$#`6Y(L=\SF<M&Y*\UF9_VBVED:`)@: M81(-!0&`_'\MC8[S=QTTV^N[5+N2W"!%K.\DD=5(X;+RW*4E*2_F]D>AXQ?P M-1DJS^Y?:"/QHOS<B$/:(<&T=MUW\NER*JLKT:UQ6KR[;5NP@Y&11MNBFW3; MA0QMT=^LQO6'#&T@F?EG;&N(P[SE*3;PH@M<Q*3(C;=GF[O!+E.N[+(S#4+A ME<RQ0*(D-SIKBT94*L*FJ%3:M\1>L*;IQVX-%)ML;.]0#FZ*%P,3&!JYVS.C M4'EZO#)3F86QMZ"&E?5A:RQ:HT4"J[J*(<;>XXHPH:CZ<"9+N.G!L&W6#NQO MAO@T4EWL;911DUODQD9S+T3-,A+&PUID#&"TV=^?^G78CQV<]:TU%K1&W"?X MS9W-ZBBEXJPE!P9(-,HT%'L@Q'*59[#OXPZ$>Z@><WTB^(&ZQ1.Y+@895*15 M%-P\<+.>%X_4J$P54GL\3STINK[+Y=`%DD(F/O33&M+.KLH,#]0M77!\'CLK MD-`QA&=9+]=H"C*N!HA5&AGZ]`H<E0-`+KF:0P-'HACPNSV`@+K41QW[CS:& MYI[9Q)#=]ALN$E<,""KO:W%[9[.409#@YPNWFSE&^._,R,Y'!PZ,^VS:V0IM MMU55:..SLS.1C1=QVN)M.TE/$9-F2B(J$1&4K!H!IK4?%*-.DG=("RK;TF3) M!!$AZV2I`<`OC4W@6C8W)5;62;\'64J^TZ._+#!O'M/K*`HD!L7)>R)@\1?9 MIOH#TI9.YF&)<6'ID"+9I2XX(N-%C*N8["R)!VGK2:1V;#"&?GZZ-$*1#*,O M:*HDGWF5%?[LIWQ^"!/6_J`D,"43%-&@7]$I/];3>V\K[[:JJQ,:8F).Y9BI M5*;)4NT)[F1R$Q@-AE?Y?OGG\P![$<B7M#S@OT]Y;[,1PI94LUG*VVQ+TC%Z MB^5=^X*4)"VOY4U?TK6M3^0?M`GI^C/7XJ@N$PA5*)2@D$K"B%\D]:@.!"U% M:J$T(2'M4()]H9R&A"$@8B8)^]'-#U,O/0_?-21.*$3Z=V1_?^4+3C[O<B<^ MSJ?:/@LS-_86S=>C$6$DD5I86`[("R+U4)"2H&ZF)B#\4)$-*FP^8&%B]6D_ M$?A/R;KLDR26T:?CNND9(W[LVK_(^SN[Z:S5Y='69@E0I%M5:M!$R)))22_" M^3?I_55?;6K62$DOM0CW-+;DTQ!M-C'CBS^!K<##'CPW*W'=>'GV"JF^P=D< M=AU#X)PO$*^UE!$XCRDPG[JJJOW_>->3-M&26D9BW$1]OH=N#S#7'8^E'M/T M%#\!A@<(B1JJOH0W/*'FZXL/H%?5G@]XJI@@AY+AD?#TG!_V]><M:UJRN%^X M\PQ`E57K_&GV5(Q9MK\]<P)&L59,$L)&@%H!^G[)#](89?HP-!&%BX0I27*S M*MM73-)="-1#`^_)EFE5F3#9HQA6%864WK5WF-W=TNN77.>GO<]=NG7J[<EY MKI;N=NUWMT[O2E+@NY=KS=Z[=-KR=[2,U>I+UW77=VY+*6ZKTV][LMZDM(F- M>5PP]:]W=7=>NDIKE'4F1&$Q-C&,Q1IBHHA(2.`S&G_F&B\,;@-2%$&TJ9$Q MU5%120128,J"KW;U=</+O==M<BOIZ-[YVY2RDAD+H:A`@U''`9+(!1$4,I*5 MKU[>EZW3)&KI.I?T(NEZM2:AB1MMLVLWEQ:N)4*I<8RE5,7&-MM-7&3%U5S8 M7;>32U.$$/+-+(0Z,Q*G=PQMAUM-7OB[>>OGRNDUZ]KAE7O5=+N'-*`4`H@N M44$4&$0P;C"2+F2BVS&+EJTQ3?+=U=86C-[94TTIJRC>4P-8[.K!-TDR::I# M$94J#'"JJD%)N.-MJGL"WC$(V`8;1(955#O)LE]I\'Y-P5'];/Q^*#$F/U>= M?O+^-V`4ZA_VPP0B?1/@VP>&VN4.`EX/@A(8AR0N:/]9"BJ^:**?L%?QP!O_ M9\R8/5@$Z3J#_[20&8S+EL:QB#MJ26>P+P(:`#>[IGZL';Q=VJJJET.:,0_# M?;V])-!8A*8]I86%CV?#WG]W_L221Z3??#\H?'KL">7=&J3/T%\L!`&_DOKY M)"_Z-TV``O\OM)4_.@@0=%4/@`IW0_`M(4-`TC2##EPRO]*62!R?%[9J/&I) M$ZA9!UI2LVHK",L2&*OX:52%\100A#1X`K?>`;R<]_YK@))([WY-7I-&W)04 M/54`*?&[:OV,$&8?',U5E58P8`2X%EK,U5E47]6;Y\YK\C'*_%&6#NA@Y<E% M"!^N02E>)7Z^6'.Z2A)6$NJ/C[-_`E6`;];(Y!WP$IKRA=Y-O_CC,T(H[I(! M2B2?CP>KZ2983DYX*ZT9$Q&3XEFVI;;=QK5,9-9M:,C2Q&M6:DTI;51_NTT; MX*<":T6FTXF,F5L3;A4JU:BM5>#&=7W29#_.+TITK\Q3X[T2:5I<FLQPS&YX MS":)BJA>'9Q=1^$C2P;#'&C)H"'EG$:EF%"#D:S"B-`CQ21AV621JQ\I)&+$ M86`1#`Y<>')+J$CU`/:))(P@JK"22,SJ*J;&QYC945'Y$^4P/B*J>WI[?X@W M#_$IV8W3$'^<6)4B"6(1D4E4[0^,-"-`A\\I^%2`/26WR)BONIP(:L"_6*0> M3EUU[)0$Q;=P_S2@221C\.W_/F`CTM(\QAU_)W[D(-3YH+,R%RY&#\Y?5CM' M>.;6B;7TC4*(*F0-)09`89H<]'*N=1&&@N9Y4Z]`H!Q'(18&34E'QG],CDQ! MS?AB`[USW;CPV'SJ?O'_0AH?6P\/:/G>Q_H0]H\#PS/N<D>N;FS19N8,+(^N M<C)'8E/:<!@8J"89_$CV'^`-OY*$J26JJC50H8R4W)_0>;K##^H>IBP'@8B' M]VA4*C^0T?7-!_;_J#_?0D][Q?"S9:X4.8&Z\!CA1%RBG;J9.9":D/_<U)H; M&\*O'_)<I\)VW/7R;U-A\]O;31T@_W;[DQD=^17=HTD5B0@/F!O``OX_L_6^ MKR:TN9KF1$KX*J8D$Q\C9Q;62S^I]2&&-F:LL*XLA6%#8<`BBAMU&[8S>:R. M/V$ZJE4VVZ"8I-V$G(K,A5=QCD,L,_R^/]^90.?](,,$C@OWKB+OQY]*].2K MM9Z$#H,MZP7?O^^N-/?54HSD+'C"\X/J_GL*?-`5M>!Q?MGF0V`VAH0N030I M329!LP#.I6Y3)DTFCW^_])21XQAZVQI+E3`RMI"QJ+&`Z:)TF+,":8%BA8S6 M9)?!<0>!K$Q7",BB+QE(#*03"P1>_+%^9^@6_X*(4J+&([O^#A1D&A49$OAR M\MQ[2L#%9+`+0N/60AAA0%YB+BDL,<'=%^3,X_.-I?I4/<_PTOQGY:?P/JTL M!+A$]=HT-E$-DWR,9SAQJYTT7L6O^/PT.G<'OZL/AJ'3*.@RJB]K1IL719^= MHES1B2/.`LH/H0G0ROQ$/T)^#]]^\W$^%[#M^SQV7P9E1YZF!Z*WZUYZMPJR M<J_59E"NUX#`KW0J#\!GP-CV2V:7U:^ER$PW[Y'F_\>6"GQA!]/XOI[NO3U< MN#]PK_6*J:>4%#R!$_8?3\"04H0CI/ZR2Y-)?-H^/V\Y<&C[6M#C";Q4FJ>? MYS[GK>KU[SMU'52U:M5^J%(FAE$2B7N864D=<>X^BQ&-`CCVD#NU/]D&T]W] MF^KO3$:YWVOYW`P2#[`N"#VSE8TU^GNL_W3K8JY6+?N-_65>=S#);;`H1H_T M0!^)-CTR*:5?82G>,K.0021!(8(UB@@D<-#UOUX,+&P:QEU#AXWZ"IU7M?DG M4C[;L@T";>[[^GK;R,0=Q"'8O0])IW(7]3(+N)>N1R@#\V`&4!(!*+#N!(OW M(I`3[AQY2<C?#"I#!8YP&H32%(3[R_-_ISF%^V3X!HP3I)TS*#I&LSHG]N)\ M51@TQ+%H(O8^"8\9C4/\*G,B@P'2MM-I-[QPO'&0?@#A/4FL4JMVG"VLMM&J MZ8Q%JK*L6?B_Z5-':H;&L9#<.6-C:$<.X3_?54531.HEPPP>PJ-XUODE/[S@ MBWQ&7&#"#Z(X>00FU6](LICD9%$LW90XV4%CMI$:0U"F093::_C=:T.J85E. MN9XH+:-,Y%0ICH0]2=IB.TL+=$:XZ&T&QHC6D[#1LMA*[)L48NH#9&D)XC7( MK`B#:-<6)$KD&H'5%J:/1K`C";7S2@*=-__;X?\"H6;+0T;1F26HJ)(6POM@ MF1]LE4T@81%\2W/PGQ_%L_]=OJ]_R^'L_"\S(OE]3_)GGGG%Y:?#<:@P0T)# M`?/X.LV[`:2/H2%.L))(].MM%C4&`QKLYAQZX6&TNLUV'M:4T7#M9E_'L7H2 MS1L:7-`Z,H?%\G"*@SPJ@2@\?<_[9'H:0E$=)>WB?P_MRR[\L@RT(S]O]EB< MI<N$[.N)_<_!CUX9^E]*U<:BOB4D>;Z4&-)44)$[S`MM^(V#XMKC,>"2,S;# M3S=/0O%WV[044U,RUSQH_ZPZ94VD'8[#`,OU%C'V$9^(QI>55W^3E&M9J-D/ M3_,(&"^OL#')'J?FJPR2@S,:C,R`V!#!*@%0$"AAOC.$[)V]X+=MXCABR:,E M>/JV_5`?7!O+OG/2&-$Y513220>>$YSM$11/VF&10HT[I(;1E3P=ERX_FW"G M@C[(YC*%'S,!]I&\/P]N2'W^6#BJ^A,%6,I,7^]9]M23\UZ^.3"'(,]&QL1* M&T`U54B#PQHO^?0P?I".$2%:J(ADYPO;)H"M%5^61IH`Q-(M:::365JS1;]M MK*II*ETTB+:I9HD9")I8:IA2QC*8&8K>?XF-K$\I_K<$X2!V)(D&Q2,R63SL M?\(GX"JI85)154L#!IC_=W/0APDA''\_S($FDTA"_F!JB2IH$Y`A_AV"<U+4 M3)T#RG\,941_0E56Z]W,DW^9UJ[`4S39`,D)^Y_*?,&/S&Y$>TV,4\\#\9_1 M/85$<Q^\`_*RC\K\5$X.\54CD<@[30XFE3O`=@=ER:0(HA-S;$,@FQE!A7^A M4?[G]6&WLS+BI/94=)8J-CP/W8FG9AB$,(@A:>L%*IBK%JD6ELD]RS=\DVPT M_TN&;W?VX'&35RG760*0R:3)R81?T?9VZOY<,[DB-SDB#P-7,&S%?%JNF:S6 M8^U)AB\M"#D:>DL>?L&315FGL*R-46UK[OJVA]><&,L0,38XQ10]=UO6FQ%# MTU`;>68$T?.I*KBF?2.'0S<YEG>%8KZX:$UK,J:3VA)AD:T=A&M@O>=NW!!$ M,(0X.#@_WK]5D+^^.^6(Z9A0JC#,:#(G#:AA#;/Y#]PN[$N3/*<0="+^5Q.T MA`T1H933#U8<5E=/<8XX8AM5556P+"VX.QXC&!;;H[B8YFWG-PV'RM_SYQ=U M/*G4K;LP[YGQ5T65:]XJ5563)(O1D!A:5%%E2J4^I>E:5U.&&IGQ5QB0LP@0 MCMTUB%MB120Z!4)%#;<"I<NLVTO-S9"82:(,LK(@PJ8PU&B:+)$-5@%)2!0A M2!2"O64UK(R4+'%"HP<.<:;ARU),:&1-(TT@L)6254T2DQ5%5I9#0CEK"6-D MV&)Q@=$1F$Q++AK0,6*BQB324Q8J9%)58PNW+78S+KI76XW1-J3=9KM+KJ[! M!E$W;1#:2U##,;P++&,8-'D60MM%*`1**!X5JG/RSIO$G1*AE:-)60=)62FF M-G!PJ!*.)P#5G,"=0:QB,3=7978+>EZ]<U^B+Y<R=30_[5?G&::&M!1W]"KZ M6HUV!A8PH]?+;`-8U@````````U6``JLM>MKY_E=?:661&U?SD?SBRC21J]) MEQ,.$C30F;V`RI`NK_YF.([!X$;GS:1XN&)8'E'-&.G&([<Q6299>L'6H71( MP$$J%42D^LPT>D\#1&C`0KLE4,BD3)&A`]L*(<I(+2TDMD1NW&$DZK$X;5B& M62&U),LVL-M*Q+E3"95QD!'2X-%'1)_#""_I^^1J=[I!'L3!B8565K]=.DE2 M69:,RE394;;8'G2_-<.%!PX9(_HYRTCUKCR3!RL82DRNBSU/1D^:QU5S_NY; M>:^[]7=3R^I*22DI9-KV+5JO)G$IY.$Q&EE5'SKX6#5#Q=4R6I4JPJ5ZZPJP MIM@F08[W0N%RYN!JF?.8&'\.4')HJB*1-\3$FSJ8>,(!0NR53,5.DQJ[-N9F M0V*I*NE?DE-4A<G*$N9B<&,7F#1RF8."&ZF306RI;!K?;VZYLNFN*Z&-/?TT M>,LG360Q51T&),D4MDJBM)0:NW.2Z8VPJ8IRKL[L/25)S'3]W=IK6]%3L>>' M,U=FC<>A8K)!O)9DT22DK(;\]-18</*>&ELZ(IU4Y:8-*Y>U@]BQR'(8C$5; M+<66RZ8[L9T4X55Z8R<J,I;4I9*+$L/#W',-)HC\.X-5@D2A99PU"]A!5CM6 MJF2DV+%HMCWW:O$VUUFV:,#N+5"M"_+(F==:=2(3*54V(QD=LPI`O`TH#ZM> MY65I-+K!Y'1B@R:=LA)Q890*D@8QI(C0?2@B,12;D:@'8WW-`,)-.HU9&6MI M:;395(F4UZ]=;I*0K&)I65S5O53HYSPE2;<-M0FG!AHC`CR,&-!!3+$D4<#` MY6TJN6,4Y5-9;MI53:JK+TN3J$\3@P'@)#<>3B7AE%B<G0[(0'T3HG9\#'3* MS"<V3/7ASG88.;%4I@;F(AI@I6+">XGF,/P#8,#<V</A1:FQ7!<&3:5(F>3X M6@YDGE(3>.^!\8.;-)N0H/KCV2$;H/O577&*[JE*['IE6Q2K8FU]96;9--3& MD&VH00,D`!70?`,W(>`]CBIPJ$C"L1)1V1A)[(7&$7WWSWWY,GT'R$L^HPW, M\?EJF`N:":$@YFU),T@09$J-#FZC3-7/5NO8(:T2_*O:-3$624LJT927>/FP MU6O!W96FW,FY1;*51O781F89A@I!$$M,@'.%[<B_"O<153-6F>;]K5[-2)E$ MS%,J5,3,J-I2TLA"0$HC015$,]@9R(U>KM>EO%(_#]_KS2A(1D9E**2D`Y!? M#I@G!RZG(-!L+E2-23$8EF\F5(T>+#;N;UKB3(@M9;9F%)2)96?+KL]W<WP9 MF#HVS6LVA#[2=0]1@4G8Q=-%-R7WV)*5.,1Y!"#D23!<*2\QW#C3HA($$QE@ M#SB/$@@5];NGX\C+2'L0R#,0/]CG+,!X`ZE546AVJ!E"+_$']:OVQX]QNL0\ M_]FC,JJQ`P.L'^UTAOW5545%R\_OW%1#H!V`F('!X8?YYU9(Q!9$/![N5/^, MK3Q/**S>MLWJWCAQL68Y!:O'NC9JV>MU8L54+[:G=[7PWMIE7.Y+"5:BCO_M MZ::S&K<YCE=PYGC48F'_-&HA\MPF2>_I$3V(YL$O(N^VO@L](FK8SN0]AP@P MA"$T3MNA$"1".LK2Z!'RLU$`O9<'@4O:JFA\_?__.(\'<=$%+_B2#I#*[IY> M6A9ZU"<E'NB0ZO+F/1ULR$.):5$*36BZ9F&`9(&!`0P&EZ*']NU4&@52.>]( M$@<&SZC'+#92QI:X+%<)8P;J+"D*QBV#6!T0S"\RS):JR0]K6%DN+A\S--9$ MM5XW%G=SV-@]?_/A'B<"EMLU88.`0$!B@\I.?_Q3,.W--H"BST:6Z2/*0Z^N M>.WG2;+(Z9?16DY(FV)Z#L`Y([<_8[.M15V;55555840VQC;;&0`KZAS4@TP M&EKM]PLJ,L#R[T[3W>W/*7:,)#K6M9E6H]0\*)S!60I@,KB\A%`=5)MR2,T- M(*E(CZ]4I;F\$'$AX0SJ%E+*2E*4E1XCBH8E=SL(54_P)I7FR/N+N7NZ2Z.Q MR]5F%@T?EI]IX&T\'E$=%E*NHT$T4II*-)IUVNQD99+<Q@I8M:$DVJ)"J31J MHJR:L:-:2U4E;*P"J222TMJ5(!X5$,6`X@Z'11;/2K2[R3/+4/>6ST/29$Q9 M!DTVTTG8QO1N$#-4IJ!67!@2M5X^"F-80PQA)Q-"FWPT1.=QWC#U14UC0,@H MK%:N8VV-C)K)I)'".\BNJ<A;"Y5U29G"$CY!^3?MZRI14CHJ%%X;&;&%M6$F M5XZW*(\@<Q7I!TE*81TI,LB9;3+"9*M/6QXL[LFR/I\IM*32>G%^A6D[TF^L M<]I1L));?:U[ME-K\/P``#Z_/X^^\FO`IT:#%4P[1?F7YMG,S*H\B!RY7LS" MA[`X7TD+X0^A)3N@N\C*.'0D)0LK&_+GHZ:QWWAFU6G"935&)H532RRVUBEQ M#`U"R,',A>,U3E-CI!41(Z<*E#5$4A1*94E%8N76:S&FQ%ZXFEB%I:>2)1V@ M<(RVNV$X6(CJQBJ]%&+(MYJDI*VBJN:+5<MMI!&)!I`#"5T2JB82AH@<60<2 M2SE.UABC)U=U)2M0U9NFW+;LK(JBDV/LMKIL:V(UHM:HHN;N=M7^I[_C=^O? M&B]A$&W0/DGP^5.Y*$B`B,E[_2Q\?9G'0Y$X271+-0,$P0430CL28LI+8N;D M,8:T-)(L:=$L99P*`2I<D(8,$CO&(B1H$*$$F2"%:-&_"^3D;B;[(=M),2%A M(]CN\W=*F7$IM`C/-P`T!*!A`J<2O;*!Z.4)RC?5?;YVES'M8^+1HJY3:L>) MD#"-0Z\A\-"/[[(CR*XJ.")X(,D9U]6_'AJPMD&E6>U/%/(+P\CC"..-R!&Q MC\$0N@1VM?D/@58B'?"&$*P0>0E*$*5R6E4S;T-^43@CW]DJVVVF*\I@PJO4 MZ5TI$U$RLFS==JNFPH`X-QL@.77R5&R(^$O^0-!AQ5B5/KLCV4ELA%/LR#VI M5>)C*JQ-1#$$2TF$O:<D\37(#SP8#T:0TD9L/E>8.?9>&4,M0F5&TVQ]Z$41 MO(`[#;3;/(Z'@71Z&\V&>X._:L21&:B<G&662T=T=P\AYL?1!.&SOZU]4)MI MY$8/-.)Y$GK?7;:I55%*KE([SIX4.GGB`^M9$2JA)*6!,HYD/*28J='>K24K M!I8&*86`-,!@+*.`Z3-J.0H.6B>^B?[*'PG`]433XS?/7:=[).'SZZ))Y6'L M=D=S7C#WUE8JVU:K31'RG#JUSVP9217U0_3-/B;7QQC/=GQIN#VHQCY\9PB) M09&:>^(8PLQJ+**IC;)<R2TVC@PP?5WHJB%]EY7V>QV&1*%DRQ:8K&*3%5B8 M33@)A4@('LEZ'IB&"%(HA&`H"3X237+M^!7U+]M<54^)3Z7W2\#2(^I!XP^[ MZ9V?Q%/KKQZO5$Y972)(:MU<58`>OSC(&>!YNV/EL*:<C*<PSV^E/$O^T?+E M1E$&-4-)CI4DC!/\YP;!4<FRLE62)-'A(.F!^$#W[)EB;,]3_H/<9$#-=;#U M)Q@\$@Z!5J!3)Q21@(-[TGH/\-(>+#1$_NXK&C30''O6[3'VJ"YD$K&(Q#*] M1]VW[MTI3;IN>YYT*:U5#`IVAB;04J0!VA'XOMOM5$\<7S?CV[:S7IR7P\JX MD6<Y5CUF3O6\YCM=QB4/$4DYV)<.-<=(W<[5>]Y4QKO/7<<P:&#YC!C((@;1 M@9S*J-(A@GP]3%D'/9/5M&6V).>8?1'UK5C_DKIR6I!P]\=(^V/MR.FW,1F, MAX[U54&,S(,&+)/OAU*(3A/;.Q(9!)\5'3IUN*OF>_2$FOT[:,A922_O+5,= M?9114&)(8F9`13"FAXPTY(8G(L)4EA$#)=R#=V(8'KML!&,RN-69-I`C0&CQ MT[&[$.`+@LF3>OU9\IL+TM!$0&M8Z@[">11$B3V#5H[LRX.T8EZZ#@:9S..= M[W*M!OKM1PCK(E3BKO0$X2@8N<I!1S`.O2`%KSU$I&`4<,*X80\"\J#]=3YM MP^9-"Y`GGE3$"$\SOCT2#:43Q0EU?(0OOD#MD"9`I6%LBZ66M;UJ;LA-J&_T MER2#1-*O(D"ET2B\04FQ-@'BZ!.(AX'Q?>T;"3^7Z?/20\.//7LO$;3<W(]$ M<>]WB8^$L0@=K"/P41(Z6Z(4DTA$L)B\L>_.B!%=(X-"<!(/4O%*0I=F=AZI M]O(\*7B.SJR6IBC&[<$:5!6Z.A@7A!.V0*QG+B.Z1HB6D$I_M1OCE9$BGM3D M?.%ZLQE7J(8_AOC_C_W]#D^%.L@Q;$I)_M1X>RIL;?,)I4,$01!,&A@([N;^ MTX"J;H8J*D)(2?)A\@2::8>$AM?RSG<+?O(S2\+LT<@[C,1M!B@DP(GY*&0B M@JH%)+X\%?Z"\/4?_[B)AA`+,`_69A,&!^6TY2&F[ZG\U9_/0W3;WCW.44#Y M*DKQ1-V*M5;(^V11J`_4GM0'XD4`?2\AYB+*>'_(EB2"`6'[X=!%`\B)N+VP MR]"]GHUI9T2=(,5'24$V__#\=S?%-,F1E,B2-RHL(&20W*XY"@NN3RP8EP67 M?1+)#%B1-Z(X3(F(DZ[B3L%FS`-'8`;JD>X-U5[Q7RO]^F*HF#KL0"B,XOFW M]WTB'0QK/'[Y0P>`R,<(?ACCZ\.V::!U*%P@X#(2J9HO@O1TL8*7@Z:@.4%S M`*L4*.DJ;01MBW_CJ,444+%M-S**DG94^+&SVL@;:P<!>?Y=D&DI>@DEU53J MD@/$;J+9JU29MI291LIM9*BB18@L2%2!\W6BQ%15*50(2$:/W0&$BIT14=`3 M`J=QB$^3:E5D[,2H[*5J&.@3%@G\PGJTBKT(*+XX*8020Q$,1#$09B*L0CR( M63J>B0X@7`DT'N4</^0JH2J<!VD*XU"/\WNG`G:3OAT*7E,DR4>2<??/S[E9 M3%KL72WJTLM,I*K)4L:TPZLF[&U5)9%P;4U.X<U?5KE[9^K`Q/K0>?B(('E$ MQ<S'P?J,VTI))<Q&1\43(B#B<3A&@X6!="!I3O15'Z430HH>A@4#;`=H[L]C M&'V2I5+<OC!Z0G=Y2<1Q,B!R$4.@*>=5/**2BO>"A[OD^)]*>0.1Z@-(!@_Z M%F)((R(9B!E1YPNDAEDG(Q0V@,0<<5!/N\_S?K:U;IIK6,S&9[0^>$)A]``> M9]2;`@/K?3RE)CN4G5L"\N4"(K`RO,?G>Y?,**&Y"O9[!["T('(P(DK_P?:9 MC$8Q`72I@D'[#U\?<I/@^"JA(@L/\\JF\,*J$EDF=/RDG!@O;])9Y7VJP^<I MDF?5QOD@1>/CDXZ$F.B5*)<$:#,O%R730:B-4>RPT!DDD@N.S-)&LEY:58UT MDD8F%:QL'!82;D3=;E%R5-<]C1.(3VRQ98,:>_/=Z//T(;B1.\D2=T/(T8BA MI=E.?WZJN?7@0*!$2J`:5+3::U2S4ELIJM%5BA2Q)905SA&*4HB46+JE4E:T MC;$FUF-A2:B9,:S,J;-:E-5,S5$2,B`02*,%`4"E(?0HCQNH^/WS`,PQ;+#, M,5S',E$.].HG+V"K]PFZ(_!?;(TX7:AX/^YE>]_J'M&'2"?1PDDJ!WI/3ZA? MD#S$<OVH>?TD]*JX9_1/S>_L[N1^_KB5E,5DFM]>#_)G"VO+HM#QVN<M7!IY MO["6.HF;25^O:JK8%!>@<3TPS^)Z^]_-YXB$$D&!DHE)71X]%_ACUU=0K[VA M&GS_)G]=_5H_[VL@L@V:S7-E\V35/\?R]U[I4J)C2!-/BAE7X2]_0XY87ABA M]X)0*"0JJ9H:E(?SP4"4(6QK\R]!['@E+Y&.#%/3^[;8BV.HZ=V"AF#;1F%8 ME"008[6%"?GWS,S6_@C^<?I'X'S?$>7<,(]OR_RS[?5]IJ%!@AL:;;2$T(&= M`.>.`>@?P'X_',#,)(RVGY$1GGOGR/_A,Q`D,J,"><=C=%_?YU1`?Q4)(HQ: M&S&L6,;!4RTDVDD#U]=`"/O]?(MHPYCI4\E32D1_F`MKYUI4E44H54/MI&*R M[:P39_@_$#OM?UYI[TSX3A<CO`Z@P0!"U5*FM@!DDDEILU2@0H6`CM1&RJ(B MK8>&=V3/CEZ/"',.5'A/G-Z_OBY@:;%G"!(,C(`%1M-?48'X_Q$"5NI_599= MCY7)6AK!K3,2KH-85(LU.:5L]C32SCPIANV\:^BYVMMW(B.O]%7&M2,/K[=3 M\`CX<1'C;?O[-^\S+A[0]D1+0VD@PC[8S-"DYBF72"&@!L$@&>)\I""J#Z/1 M]AUS_;DK2H2</YX[KQ+P+9V\,:!C/\V?(:5/:80@P:;.&BX:/8]K"VV-OAC^ MQ17AX]WNZ'<U>PX'HP8XDJR^CW$@2]A($H=P9AV,=<#%):H>;V$]^`.XJ.X. M_4\^;Z9N^F&E9OT:@XZ9"6R1#E8ADAH)[07C>"`10)!]R#7*I3'$D"6"3&<T MDE/<*9(*<DZBE5;F"XK'T/"X*4_4]A<J6Z"!VA,B!"Q(L!R524%#E[]56GV? MK'Y107WG^\1$)7X>)@!I-M3OLLEJB+56%A!2DM$CT5F+,84D58*6$5C")$)* M$JAUZ_6>)K6&9LH;B?5[SYD'S.0DAD_!K)\GCTW/B;#9O#%JS*UNQX*DF@,) M.BP/WZ"'BOIZ4[C`A580+%#:`TDH:Q,!*0(@F,96ABEL3"A^-32K+2PO3#$S M]&'V[(\88(8']=M36L:*L;"#&(@I"4(B2@X/OF%%QADFQ`PD-.]BV1$JX2(F MD`:>0AP_LVW.N!A`D%$A,<\</>B/"N:LC>]VO3^"L,/QKLUV70\^Y&H"V/D# M/[[R2]R$J@>Y4FS261)-:1$MEZRW`43(I[CS\"KZE,R[]+BL`LOS;4MZ5$5: M8V:L*BLVZ[9S+&"BTC)$6RS3:Q8,76<T1H**-G=N&V-N(K48MFTH8I;,O0@Q M(MH50I95%J0L2;NZRR526LI:DI(B5#0K!"!LYLSHB9J!)6A@&W>[7MK`"VF; ME<HUW5RFF28S3<J-N`)439B("*08&&58T!D.*K"&4;!J&:D*6VR/RVZOJ?UZ MOQC8Q;:XJ'^A]&YJO:A"??(/1[KKW?M:^OVM-@SN_+N0O;^&W[M=R0"1+BVU MP#F((F"3:GK2REE"522R+*'DV2'YH`]/:Z9G3JLR")BO\Q.%+0Z)AB+"PMM7 M!=J/P-;C2LK#-L32$;3\\FJ2W8P)FC_ZF&#$H]:`0//[:2.]LYY1]0T8AIIC M3$P&T=7UT%OY7'W[T%3L4>KP+%Z[Q>SUS^#5P,+,RXF[(#0#$2201YEG")ZE M$>TS*R=$]?N^7]V;XJU"SY%M'OTRU9%RC74S9BBY".#D&88^&#C$)(2$LRD) MK0FE2E@OQNOKV^T]_5&8$22ONR"_GRJ&/E(U13A/#635)&!W'!$38!HBAIEY M*8P&#]-:,/[)/[.^BXW-J*J:9(Q'E&:)++$0_9"FTBKHD1R/@QJPF8PDK"=P M!^IVT.,AAUQ=>`8O+OPVMG]>4JZL.BLLA:A[*3IUDJL57:2%-)['2?@3\?YD MWYQV:2UKA[CRAFH"BD2Z6)M9<.8!MMH-0T4LSJSK(5E#.Q+D6QE@$:-`ARA> MM5^538_1JVBQW%@05&J.]WV)3K:@V+(QNSM4&Z=),O'3J\Q&AV0L@BJ`O"Q1 MCTHE\19J!G71=I\9$`CTM"7Z.':AFLC\A&OY_Q_:O(,ELC//]\PP9C&VT8@! M(,E^C7@6;GGC=,Y!&/,.-UCEI22'96&5"81(A&55V!AM8#$1GA@44"5U+40A MT#JK8-H1*L634A._LMZ#2Q!1)&Y!_VTCOV;BD"5&57S'5\5[TT*8J>$%OX^^ MMD+!SY#VFHF.!0A!BU'LMR0?D%\0*X0CIZ^?RS&O6;0Z6YO[WF^HV%"/88@Q M!ODUPLS%8MAN1*H;RV(:U$D;#JRQ@4#ZY@KM*31J[%]SQBHRH5O>"1PLELMD M#<K$)D,`Q(5BS$2HA814&'B;Q]$J3NI`9G?HU)R(%+;"9531K%'('!&.PNWT M!AZ-\I74T3(S$20PFK`928V#T';BP135F!!4F5CG<J40ED&-DE&T9*JG88X9 MMO@["ZDK':'\_6@S&-'<WNQS#C5HQNP2+A(Y239&B,.\JAL8&.J*BHD"1[S" MC1N<]U.^U]U7^M_3^?47NYB3>WM(09*+%BE2$P$AI+)5%155,P^(.MCAXY;1 MMHI$ILB/9R,.6\)2K+7]UUICC582V)G>S(V>;(U>VW:&A,1Z22"6:.&PNVSN M&@(I4*$<0,B@**4S(DI;J+&"DTD;AJ2.#2;JK-)F#?J<P;2<23A+#TBH:2&L M:K[>U[6G*,>3VG=.^:NO1-[933*X.EY"2$$T$!3F;8%#L-8=.EN@]J:7USV^ M?-<&#M0:C(@F&T0VH-ED*A5!4'?9TTC*+S]3HXK]$Y@L\5]LEPE/O>N2#V@3 M4'(,626I(^\(2B)V':K3U_I6K?LK6V69TC"?+;-R,GD1\8A!\X/]%$6I.$YG M:N]DU"/LEC#^E/RY8&Y2J5Y?\J<`]9Y4[Y*2E,`D#(L`AD?-O[7*1V=G=Y*_ M<UQP?F:-76K]AHQ3<N7$CNIE\(DCY#XL4QZ,/>-RA#/$E>(TT+(AI8UN\SA6 MS;BD"[XQ1=CS^9YPCGB3<@DB2(B?P,XK?",!D[A@6&%AA]/E!#T',4-)Y@?Y MKW`*DJ]/ZL/F^;,W)IK#^*MML;DAQ<L=PSZOWN86):4/E.XBW`E^A!/FE1#% M'3X`R\/)3M(I-U44G00HIV@P:JW[;-+&MC5IJD:*38(%"(`9)1(9)L(7(,[L M=7=9,U#YQ_2.6QUZG<DSU!>Y'D#[>7Z#P)2@B+B%4&BVX_`!@DWU\G3J`YKF M;`\G+3<B7EL\^_:=A_`?N[Z;D#2?KKV32U<-2S=6AG36L9PJ&$I2:1(0N`#D MBCN0.0J.\"T*A<<1%'ZD#-#$DEK8`(BE?_'[A95W'(MCQ/_U;B*W208$DT`E M@1$B67+(+(S9OK^LM*[!*T#OKD#&/J465<Q6Q"PY4$"&,!=SR<M:&<7`HHWK M8J5D1&L%QK6+-II:0JK<)J.-;T!5[$,&)%,22PC""*.?!9!#A:13.A%1$O@T MQ/1100U9S<KQ"LXV,=@@!$.=K`+SO<91E8=<IHT9?"2S`[FS%+%QW[4KQ:.= MQ';54[J<O+G//BE>86IP=H:1KJ<2<6M9%8Q,RH:ID&A7>RW:]-I'$E12H6R- M'1J3&+P,3FE3"D3H=1O,<,1-1++JPU2E1,IBS))+F&$86&551D+#N+LY%E+5 M-3"JZ29H)9"U=&&)(S&UU;-814C!L3'/4(!K8=&B-V9N52K;@N],K%(K1FV9 M)=XA!:%H`.#-(L5E4)JA/JD+D32E-+&(F7L&N(FD#<[:..QO75RE/<4"#+<W M2-AE@[U@*FFA:.>BP2.2;=#"=I>^('71CB5CQNUUB3:25.Q+KS(X.CLAA*!$ M*T`<&BY,E,!*,L%B"2QL\S+,RP*#1BPD,C"E(PPB+\>*L>@?5:`IP[/A]F4^ MPEX2VVZBIJAG-/FD,P@<\%$I.(LC*6VVWEVK`V69@L;&PL4&QAHQ3:"60[95 M*D\BN.UUJW*T#YO@-8,-C,>,-#+`YM\D[G96[V!KJ=BZY6QUH0]`Q4'8JRS0 MU8X.C1W6\-O#>(XIRQBNJF#&.ZL"\Y#,%8,1AH@%)%%&Z1V[.",T,AJAJ06I MK.RAPHXNE5UTH45QJS<Y\\Z)HOJRO`^%L?=<A1867VH5=V8J;)SUVK7?BM;. MJW1R8N#+`V/N\@S>'GCM1P]/PQ<Y"QMRZUK`.]JO(;ZY\&+>@AP>(8CB^:+C M$$[,Y>1'7+HO<E2I,H/#V'1YZ`1T=S-$";>QGHUH+0K<TNF$#"3-B2NZ-L)$ M\VI`-FU2)#O;#,KUR-/`#(RD2`:80O37BP%WE0,2%I<&<=GGAKQO`KE)E,X5 M!#<E*!-PXKTJ5KFGO'2S"^#Q%AW`[<:.=%9C))8U:E2,3MXP:E#?1I>/)8QD M[=&RJK7:\"[[C211#RX.2N.M1,8VV*`R$(EWK!E8,.$NN"[*Y"FVB."'E)SM M7"&!$6'&G2,2*0;!!+64*@G>&'0S0)8<*F<VJ18"862X.DX082BGS>ML@9JN MEL1UG&YBX-U3@P`E<!(G:HZW$MP6%4TULC*6)4%)D%O&JD0-(N%$(7P`(%+? M2C7=)(@+!@W"`,A$0=)"..XS=99,W-G?M%3DAU*[[YYXH75%\\"8=A;SH?`- MQ]N)L-G!VL7AG1H'!92,S72S)QQ.)OF[-;A`UET,/"7I`;';8D2A,3`');+L MYL&U3;!'8IZT;[#"0R#*9!QFO).<+J<;XINV^("B=Z.>7&TTT,:`UW.T->=' M%KD7;*K;>>7W:KB/.``?D!)A`8&@&-1)"IE'8'OM>@,AVSN5RWV:C&QP8,DB M@Y(CNN[LL+@VH,G4**"0ZED2:ZZ?7VN^?)C?2X&-U\IKDXISHWI331FVF9_C MU"%]GH=$DU?%7,HX%[IZ1B)-B5"D\Q9(6/4RI5>;8X3B'!P\Y3R=.9HO+00Z MH!5(E-L98V+U$T"BX3G/E'H;WJ58E(^`1J&,;=@8E_)#OXQ?F$4+C./(GA#Q MH92LS,R+4,EB9*E=4H!V8+15^T&,@DBN0:1W+.!(K@LMWD1X)'(%AW<!\.0I MU!Z@Z%(Y!DDH)$`7A@@8$HFK+19Y4[U7MX+<PD8.W2!2!2!2A2!D5D#JE-,D MT10A$=),A3)02]\5KY!98H3*45D7M=P.]S"^>O7IW3?.*C;I.[6:+,DQE9F4 M45,O1([-U'I/?2(?R(I(+_W&1#N4:"J(H$5.0F)/>.Z*RGYSS"=RFDY('M3_ M*/J32&V0>B">3U4\PSZ$2Z-H.:]H[`J;`1/,_J!&0JJ*JH.#L%2=SD`J?^79 M%-2,"PI`Z_![?ZN^[7V]YT/9W%1EAGB"H0KA`:B>[$3(HH(C-B1!5>#"#5ED MA%`AI%J0K>*@[Q#5UV22<CM/%)SJ)B5[8J;/9BQ"#U?CZQZ@">'`,:T"H'CW M524)1SE:$-#TDZG4E#&5!3_/*(F`8F*@8*P'^F1'8T;$H4)0H<3[Q-WDJCZ= M:\.J'O3H`FX(O15[`4E!HD50D\MQ$Z+)'VDV>D@TT[S<GN@IYD_A+7W!_)W, M1V=DG:#IT))'!3F/0>#KK]+T0?PJE%/WS[X&QK9UFN)02W=TP2_GZ:MU;>N4 MB='=U8YATE.B($@2-Z0D(&FJ6`Q"0TB*I_N"*:9>;XQ]GW&DYB<R'F2"O^8) M]U?!T;7P-&:V-U]\+E8;LA*3%F$0M1Q2U,,NCCP40?"<E5Q$#_9_Z/%\^KT8 M=FZ2PHJJ<DF$2@2M_=<-^%W]IE1C:;!IK^3162N##,;`PRQ<)#:LSM[0-5*= M7K%/&325IB$_#^Z<C1)7K>R)#0>L`33T,?D,]8J=X>J0I5A:"ED@^@'"%L)P M6<DI`#!9!,(W'@(@)(!1(L+]$M6^@V)X1?\/$1-H#S^=-+=I]'S_-AV*,IT) MP.6:*)$VC#ZXDF1."1QZCT%DC]4W&W@8^$:4_SJ.(PD>94@).H>[1(.6D#ZJ M/Y]FX2#O")5F:J\Q?U!@WJ\LM6:U!CM-`?4:!($T6(DLJ=;"#<I-M\\[.4XR M;9J?LTJ?+T,TL@<@T%#%6.K5&8M-/GH-JWH^TJG!S#4V-IZ_(L*O*2K0K4U5 MD<OLN-14/"$AP3@L2L*4[X*N_:8@M1+83ARX)Q-G=(HD-%DB28,5`3CGG$6# M+&JH1E-I!&)2LO0:[<[."^-MC1TF-"[*L5)@+2:%"0JIC&I4RU?EJ^_\/QNW M`8FDE0A`(3\-;Z5]?:[6WK!5B))K[C<>;."(CDW(?TES&J3B3&T7-$I([))E MQ1#%0ADE20HHE@92'`AHP;"<0`QP0I3%%D')%,1)!(0A2`'%#`%I,`6%,):0 M(L9$H0E!D124,DDAG@GBEB!Z;7^?CH9E55:[H)O.@N&#X)<$#+V!"BHTGVLF M?3..L=_CDCJQ\3O"1V7ZXD0K`CA-M>KLPUZM%I-<RJ"@B<,W,8X-$/.0ORA2 MR>2(A:AN''S(<-P`"50A]PR*,+(HDS#*BR#``=5P%@>L8!.!!46R2:S2)-U; M3736ZIK5<FM[.J13**;-$S::\5W'3I8KL0,RA-CA%'A#;:1F3H1E5$5$50&A M1`386.3NX@IYU530>+#,KSL>B&`3K!*0$X`B@_@]-@UX>G5#2U>A59Z%`ZX- M;#L9."(0!XO<;'U&;T>I6M2A,G.9,A%T(PY.-=71K6,Q`ZH%21Q(3QD)9!E! MAAF909`&:(!*1%*50NNL<P<CR/^\7W(L00E`BD"2/@CH;_21X'G_E\=V82Z= M:_O]UK.<::]OA>N<7TQ#,W6ND:3J[YYZ::6_^_LBCG.<I\"#@V]"VDFW7?.6 MV_?I+&F-L\2B,AMP.4Y2SRQ6^<LYYYXR>I,W:VW:EQR=)TS"IO/;E_5MN@B) M2E*<B4JBXH#!H;R>/Z]SY=_Z0GP6$C98B6R+0)UL1,12A4Q81A44O2PRR-IR MGTY/&:'MUHI16E=#(BY("<'+8#2`3=9#&[$^GK-62KPF23-Q6PQ.'A,+*Z17 M/3W:'3N]P=$TPJ4L%**4G/`[)HF0-?V^S)T%ZN)-6)J"Q9"6RC^?Z4E38WV. M.UQ-ZU]&]TUF\XZ^.F>K'^P2+\T^,Q/7\E)'@.Y8**E"R>'W?H8S&,N6TCZ1 M[)B`>]]Y^+ZEV38]Q^+/XH#)5V$.X5>\>H]7\O[>5!R:`KT_-78?$V^^EYU$ M380(25"$'+8X.IV@?VC`GSE*4D202^M1$@5Y?#2]W3@0'A'N-+VR=J'T!ZG1 MY3L^7YU,>U\<Y+5O?,?Y%YVWH*KBR84,W9*)"I*1(W")C2WS6(*(G%8O&&^1 M0TI10TXB@=/#"%OUU(`<Y!`B`$I&W<1<@6D"D:4N6"*Z8`0=,(4CC.B%``R1 M`U$R)S76(IF7U(_SZYGL.TT/)D>Z"GG-?KN\NRU:U?L2'SD^EN0'N!D5YC#) M0K2"0LM!5#1#$H$DE1\OP^/9\]^8_,:UAF=/`*'TO6:S-FRJA)]0>>">*?8+ M4*OT2&DO@426?#%4%L;7X4UTIK]U=D7]&AJ.TS'S,CB<JQ1=ZYW-ZFS"TNDV M:C%T:Q-1V=@^I'O?;./Y6_>GJ=:W'K?][/G_?_3]UOH,:(M,--1-9M++SP+@ M&FFFN)XD/GRL-\,6E$GVG]X]NU5L'#$_(?/U!-O=/$#V'SGL=C:X%/#<0'3M M5L"FZJOXA]W.@XDB.3T,2?HM*1*OU/^U8AZ/`P)\I@X/T?B^,%WPDPBO>)(` M(8+*C)*B0?9C4?/O^(VW%N*"8'QTB8CHQC'(\$4#`U&F.N.^C`-D[2,+""K) MS(*D'F#)(K)0+$[RPT<*YNJG36:E46P444CPL*CKA/EU\7JR:NFLFKIK)M.L M/!#OXI"3F97K_CYNJ*)YL**F8Q,S&1:6K9B3]BFAJ&$]%1DCH>#_*=V2(Z-Z M,L_.I^[9@Q;IFAWQ`AMX&"BIW-P;,\"A-IHD7EAR$<`]Z0GI4,FMWR(DW*(1 M4FT>$:^3Q`W7NY5AVDJD+`(D2L2#^P4$N<T'1)>TU^H</?1+9"%NJ0/B+H22 M1M_=R2<NAY2>R(GP4GL1L(M(WM$_3.RVQ3113$4>C]VWNC?Y_Y\'-D3)0@D6 M6#ADAO?.@YLJASD>N1(A@BD4DF,01DS5J[3V[H*HB$LN2-MMX%&#%!H3NW;E M(5BQJ,,:%;R7@LF%)3,;::I`6E:`:$P(-/8UWA)1))'N?B0M0M0VXD?V/4Z= M^\(-P-"(]BB\:$#N2%PY?=UR=^V8BBBFBO(/:COVO:_)F=I_8)!#!1+`L%VJ M*'<B(=.LQ%%%-%8N*]XKNX".:$L#3I5$#ES\HCZYHHJ@HP),2T&*F#`[IY54 M>26L4`NGF<!P%5"35U2`IHBXQ#"FP+,4/L)(]&:C3$1$1MIV=L\\+L$J:0X& M$@^1PTA+3'`&"YO`4OSD;%_"QQ(+9"V6:8J8XN]I@:*$;&622B!K[SI1=@M6 MS+BZ`&`HH-#1/(E)FF/]:Q(VJJJR&ZB8JK5YQ07MZAMF&,D25!*01*;-2E;7 MU34H"F6:ZO;M>,4_L='\8WD^#VAJ2\<1*4#VH'Y%1/>$DGS3\REC[!(D\AYT M8G0(_@=)K5-)::EEMFJD32TU)1*D:E?N*WK:2)FD:=8$<?=_;$KE.X1UB3\( MG5(&0^R1"=941%S;]*-M5O34E;77<5-=%%$!!'7/M7[G=UY=U<S8`"I<(V'K M\TDD'1`N@$^?(!?`Y)*:Z,7$2]@1H?`:#T)"9&]X885]%87YC!3-&!$IA$8? MT[*U39F4J&#_4.4XXX.#1`9/U4M.T'SKLFI2%*Z]O;RUZ;5TLN,2+$@F0H`B M###'#-:PG]KK'',TP32[5.C1C!37+-'!Q%@[L?;ZC&\Z]O>%/<NI]J]8O+^1 M7S61M6*FN,D5F\S0Q3:JLI:R&+\@E'O44[@\Q]H/D/,A[/B)H!3S$L=4FT@. MZR.SO)/X'YHA/`4>!X1!XY+A1+(0L%,DPD+(<#^60B]/.^RW\#M'J1Z2)%0J M!?3\OX1XO`]D(15)'$#A\FVTTVX`]Y\OD(/#WT6D'JJ0\:)KI(?+_O;<[WGL M_QO4G"'J@D^1UF0U/']1(I$8=2%G1[O?GYA!CP!\7TZ[D'H$JQ["Q%/$P"#\ M/S<QZ0/R(B/_*5%"B@\J0A^=D>8B]Y/Y>CT8]>M?A6</#\;;?-'C8$^Q@XC4 M4)`3/3^',M.\0V!(&$Y!I'^9/P*8FGE)`=AP6`'R+XJ>H%`V7OEG].#D$!$' M@1["AS%-U2=E^K[:\^!1MN+4]<DDQ\$/DA'F/YSD(E#?E/JT@F$`E"NC6`P3 ML0LP9.)*&!$D#CF"I24%+2'VBNWB2Q%XVQ@#%W]:>JI_7\)RVNP0<!<+?&C, M%:+7GF"LU^S<VM^BG'ROPXD9QP6VM!?J7(B)\^=]9G<=\N6V7=KE4M"'\LT) MD`>\7%0][`'9?GA[8S[L!_(019`<<8C!OV[[/%3ERWWT<4TQJ1*,4WQ"NR,X MRMGC-]L'I4-1`=TG$[PAAG&:1YRO9*N@D:=[7T\J*Z%%/M=WM=;=-';N=I_A MDI!"0.:HY8K0Q+4@D6#;3&VW!N)IE:Q10D9E)HHI2868!H.4Y!K#"(CM'_?K M:4J__*;=K,EFV-#ZB=44T5C<P.Z-2\'*<D(Y)&V=RNH\3;[]R`N25-`?Q:%S M]C@>A)?M^I4%[D/D`\H?<-V?@5W@^PAI?TDF2&HT0.B%U`@4(Z5`@240)4C, M8@1I4E&5!90GJ.X'G8J_F,Z6B(_W8V<-<YV[^1(G;W=>FCMW>]?HKOV(Y29^ MDQGCLEF+]RM;W-O[-R"H`D%!5"R`/*_FI"`E(A5_E3`%3[A44']*H/XQ$_VK M'L>9^,]N;(EJU(^$TA=-7?$RE[Q\QK[;Q`[@($)E"A%I0^WETJ_<O'P-?GNR MO*KN_X_G1*T,A$8TP6)D228E*D444JP*E$*@U#[(^\)/[2?9M?@F3+,\R69@ MU<HMD6W1_BTU$M/&.T9Y-Y.SMZWU&B!Q`_1@P@5['NA*EH:QE_@:CL4:.0;N MJP=C;3LF,J%'UOU&)RQ,)QEAS"4Q&(C@.WMQ?&/KG51M\LQ,'Y44VV%DB4+' MH)CS&\%18TPQ)$,-MH)-&)EAAC+1;1A@PX8N";MIC28@80/TF8(545*[5'G6 M)VR`D-B*7Y+EIQII`#B^R2.3F]C(,7XW$?V5,1"R#O7J(])*3P1!])Y$/J5A M5AQ\S*`GG2*@IC$1E685"N3P>IX/H4,2V-83@<'L$-*P.D!Q%)43,%/U#VFR M]6!!^!C[X0?W*$"Q"F2!064T6B,*C6VNVRVNZEN@06564=_>1T\LSA_*:-#0 MQL;.1ZT2<V'0F(FA74QYV?155:`T0L0F+E/*'E*Z(TL;6/&W!(IH,!C&VY.C MAE@[.MHB1#I$$PR_W$'SB<A5^30CZB898;;PFQ7)@B25D$UV.E^,A2+CY"(( MJLHVFM2G7,HB:=]&V[T<P/*I6QV0LA`D9%M/%(O+:>M#0]4)T'&*]+[THX-1 M:%5%,H"4X,:V/(SD)N/@'";IT1S$((ZD.*3>C#%J$4;T+RDUX21W0=I^QF4D MMGV0.1(!\+_SN2=AN_7X+I78.V^#X�@>HOU)&^:2/9_HRY?>$N>E?]7C:S MG&FWC\;USB]]'#S=:Z1I,K?//332O^C[HHYSG*?R.<F]!BTNX;KOE/;?OTEC M3&V,Y1&1`XARG$L\L5OG+.>=\WE4&:E#=K?=K9MT\O/4^7/QY](2555=%5_: M/EW(=Z],]A]JE-URK%>4CI!!+_[2D4'UE!$"[OZ3<4$DD:+079;A<=F=Y@F5 MTEX6D&UPO*I<":B(F"I8K4>[8YH\R9@D[N[/"/9[//KE")X13*!58S:EJ:JB M92U+96C1B09Y'56@PS#&IHA@+J8Z(]%L5TZZ3I`'2*I!B$UM@655=AH`#6L6 MS?2;RH+R`W!^O7.;9,>/JY&E'ESY<C9,CMLVWJIG1T1)50Z@88JCXHDB<,., MC`9BBX0>?1MF!FC:+$86(UI0S+E&5"RR1458>/K`^<2>$0<&5.L5\@!/-(AT MED@6403V%B)50*A$I!I$7R]@H`EYKF9&&E%,[E19-%V'Y.SXWT;'D`@-@'8A M%DE4*0_+AE7G\Z0<!H\KU-"]L-ABX459%B6&F<U!ABDPM`.@?K\?IY:U7AJ< M09+.43I&GB/BW[Y"1JB)&,J&9BJ.C%7(`0A34J-B8R-2)4$82L:D,7ZIFVO: M=6F.8;YY&HE&N#4B8LB1IC6:D6IERM&).B261N)#D<Z8I-5(^"'8-(0AV)Z. MU%[94\T!3DHT`?\`X"T/CWO$X5*BI^N5,(_MHGN_":Y7%")XVA9"-BM;D[P. M9$M,X3`Q-$9>1KK<MA.-*8(A01*4,2*9`<.LU&3V'<.@>1/JRP2BQRG"H/L8 M_(IL[#R3A]P>I1Y=J%)2!#\G&0<!MZP9!@"B5^;9Y/LRJJJW%.J'.E2!W!^X M4%_$*"P^@`1]B+[D.?M72'RG>*=J>LA.SW24GV*"/Q)4D*FS$E1ZK>F%M*:G MFD).=$-AE[1`>\3S!X'HLQ<8$R2V96@N\3WM5]NVW_%3&VR@6IC&4*2J%``R M"D*02,*)%(E4LL@L0BB&5/8E?6()R%"#J)`A4T`0E\"2!`+7ASC@XC$R)\8W M!-JR;<NR47.[I&I5J*KZ22$C?$=4JH2:%]4P`/D7>C19=T456R32HJJ%R(3R MF0!_02@P,*O8,LE*M`)"RT%4-$L4D('.03^=E4T3#^7$#"0B4I:-R`B`H4Q: MC53FN,RTZ/7CO-IVU8KW@^Y]/L`0:*U`7'X><Y$ANMV?L9D53;9F-'N/>0&4 M\]GRN/7MZ(H1@1N/@J!Q*"R*T^0G25$B&II\34-/6A";DB1':<(I[A<0)^(> MY(L50><9!)PB;7UL4YS0CK>!)'9?V<;#P1W(;TNB+48F867($&,223](_?1^ M[8B4$YP(4';V*CA1;(U8+T;60VQFEQK'L7)>'`XZTQL&-'1]W?-;(%Z$K*-* M*5_'R=P:GY8<3A59\DGOGDN0/:GYQ_-:M2VJ5OA2JDZ^,[3R8F++>K([UK<N M'H`J'D,.'<\3DO,^]![M)L6BA%[%>@J'+$Z!+V(@>G!NM(&YITP9'J)SHD&# M=?+MM&^DBS^2=45]%'*=X/W=FUX1Z+0O+*7]]XV3/:[22SGUI2?+!'M^W4(2 MD8QGW,7\>67&1I--L;1H,KM,\A4,L*N">1^3CB-L^UP?%(#VGGWGAR!%F)-( MU309%F/*7F_O(BC3_A`@E8#MYJ/0#U!2K1GE0!=D.-(:4$*%I91A94A39[)% M^YW?5OK?Q>M_`^`2))`,S<X`$@0_;G5?H1K^V7Y/S-*B6N2*PBEG9%='#HI^ M5]-B.`V0K"\QHP&\)@Z@A"N"W#Y0.6D\WR(BK3Y0%UWI72DM$D/F]0U`5F+[ M"0MZ*'2:7<W`BYV59*-0=F!82;N#MQMN!64161?-!OXU\OVS7SWSHH^V2NF? M+-%I9#W6+9:OT=,(:0HY8RV2P]SCB[(\DZ'.I$5.N0'LL2V&G]K-8T99."MU MU4AMSD.W$)(<X6!)'5/B*Q(J&XDQ)U4F@?;[I7M,,,D'Q"4[%.@^<9(>R&/= MVBZTI[0Q$?-"-/?S[N515474_2:/]'REOK<S#H"`GWN_R_27#NH=P$JQ`G-E MTG<$#6*>;5)I*9;1J7TV^NTI+U7%B"NVF9H:V+*EK;U9)-;3!9$%X>9L<LSU M9;V,!@WS8Z5NQB;!D)-D/QD-UMFV(PD))KH[?1IVJ&3F(KP2##*T@4``3`HA MTJ12A4,D40@D%`VQB*[)]0;>JM?_PH&&Q4@KY63QG"0;N!&#S&*EI6,1,I;) M[K,5"KR=*X:LYL8IV)360Q>N+'>:-25PRLT!<BQPX*"Y8@J,FIXHWC/+.8.+ M5,HHC,V/13"E6*\LQ4L3PNLTTMB85U6JW:KMC$M*KAP[ZT7I@PLG#&,9DDBC M!L:=5(*DH<3P?HU@:,(23;O7>\[+D2;UUNL6>]V+K[@8?M:10[:@V41:HLUV M*2JH,R)\G-*^I*;ZBAU$F%B+EWUK\/NL%0BS$VQC&-,H-;W9I-6\U9/X"RC9 M`V'M)<XJRR<39D2\S@'-TNR^0P=BDU#)@LX(RKH0(%.HO(-G=A"Y6)RS#AL< M#,)8(JARPQ4N(E,F?QFA)91(Y"B:[G=IQ2*J91`E)ID&$&:.[>6&#]WH'=QI MF.(-#!J675(NP7<3`1P83U3(<QAN-1K#VR0C])R\%B_BSS:82_6,RR>6,6WO M(GG"QZ_13,Y&I4-*>1Z77FMT&))7HI:G7AQ(P=+)R8YBJAR0%D&!\W`"!V%U MS,XTQ]K*\939DDBGXS#3],)_>,+*2&@_0E!A^!?P7ZI)+Y^>U_[J+5?N#($B M2,LR2DUFDV$A%JTW%&&)0QCU-=#S%/E+*)1&!9&2)D6(52E8)@:%(0<(2<%, M08%@3]KR$$'CA3`<_UF,QI5#E_#R#F`;K3$LL,1)IU;:!*%V#8Q-P*%:,PP9 M@$):E):5994W2NIDQ2V;$D2`R,20,Z,`P,=B=#$+>G:O?+KR#/JZY)$U/KYO MK=W4FJ:HJA4@EEH%5@W4!Q`L"0*<`[BPFX0+6R#L,F2N(;"$P;FT6M19-DQ* MLBN4*E0L5!16W$]J.$.I&VQ402I)P@@\H2?'N/OFQJ45#80A*$)G_SQQ'U@J M'\W+B[6AX%'@%],H_83U60YDC[U/Q_A,E4[$+\_#7I4C="51H^7$V&=6KZ?F MQ\=O0G".W.3\4\K95B_'5?-Y/5Z3,*F*HJP_`:/P?,6<S@^1"0]TCZP"U">Z M`%R94!"@$FEI5BM92YL:VZ:$LJ:U3T7D@GD"#8>`!-`F:HJ*JJ,`"$`"'RW\ MN^5^K]=OT_:U;(@<ED`P$0ZPTJ.$JK:QR66HDI6%$SF9A5!W=Y:U15X'#!(' MIVO6-7S/R])Q.A&.85F99J1_P622')MPWN'7OGZ&L"SU&=D/?Z^$DXJ._(CU MH(G21-O'%52RI'G>-%$-'5QQ``Y"IIW4$1-D1@5&`)7Z!D%D,%W)!:*43<PF M,,'&!B%J8H8,54R0&:*JQ;6VDE\]%U(I9"B.733+UM*S:FJ:N6[KDPB4)K,< M0P<)F"7,90P!?P`H/!H:$/R,&PN\%"4(1$Q9A&.-AA#.RR[J$&QPA@#P\0XB M\`;"+T%W@@"!857:>P#I%&@-'9<SD8/B`*\*O"'X"4]2>*O21HF%)D0I\<<0 M9A>!][=XY;@:2!+`M%""?50!F>[>L!'WB5%$R'/7^5SVP;"M&L"_^)(I(X*_ M4!I6CK$3X`0)J=XF)V3O[:PZPW"J0@?\2VJD*%S;UO]RS\0=7S+VX8<@=F0B M(A621I6@"1(59`V+S[P5U&"B7HK%#6$C$_FXL4?YMCC[]Z\EN$G#=:;J@KK3 MFXRRWBZAW?.?(?$+22L+HC+AEB;DVVVVFYBML/)$'WQ/4_M)`GO$'O^M_XHP MT@0PH4I_6/R#R?8"PP`AA*F'8'-47^3T053";0CW$6%JM))VAMS4I)/\Q,C` MC]_WFH/`PQ01.J$,PG8:,"GA41Y2K*K$D3*!"4E*B02@P!*'T`@]8$1/E@!> M6L$4<7=07RJG[&>X4=(8@JA$+V!_F#DB[[JBH/D!ZB8P3(3*D!]*'-_(DDC_ MS/$FI#DA1T$G7)ZGJ<X2ST*:<XQ6\9$EVNZ.9)X1PXGXUDD_0_)IR,_69!K- M,J)](0&)`4JTCN(8Y3,@$S^"4.4)0:9H2"LM5$>78A)X(/(\F_XQ(PHD;9CA M"I>2.NXKD@0*J:AI0&V#$U#40NI$W'3BH%*`%+%1"T21&YIA5"34M6"JDJR1 M:JR$]$C8?E',=2>*/G,1H[SWR?!.6RQ.+'E#WQ7S[]X1<21@J2+*_ZI)!. M8.X^J6)'@ZCS_(:TTD92(N2Q*K$26PD>RAD22H324,5[)8:1[?6PAJ)(A/&7 MD,AYNH@8%V"<_/ZD-:*HPCUPK'S9KE[3D:[?YWUZ?.25\7H/W2]PVYV(=P>H M[_AX:'_WA74D0,6QM]Q"`]NO$"@A!@//4-Z](A0X:;4.&PWLQNB\![GJ(`KT M0P!!.B?!'$\B*-2;D^OP/Y?P>CYK#;K4>'1&$>?>*/_@J>U4VQ]WB$'"@H00 MP/+0ZT2B:[S2;+"L&Q!`[<1@H'BAXTU!BJ\G[!_U^,?E_P5!@EC7R'@F\4>S MU>W6_@\(E^TD\$!>K-;RBV;$8)H_&!1S\1D!):-9.DF"8-@-39\OUHP+88+[ M?-%&>:ZYP5*GDIF"/L*;L/%EP!:LBR48SMGISQ548'8.,354.FCB,B^V%,&, M6M,AVHT5&F,0Q&E*J'%TMC2U@4J3(J9LWNKM-[:C#60>B<4B>SC]!UY=>1H> M11=UVVFXQHB$N%T/]02#0YG<WO86Y$6,/V871@$:&XQ)M"9ZG7JJX#`&!J(' M4`??=9\+%=[4.$M'$@6W\)N\2*](!#?CO^S-Q1>%PO;*\=(C"C12ERQBIB.8 MZ(PD`=.8FJ?>]O;P#M</"JZ&78%CZCDK^<!GZG&>[F&,.PNR"!3?3.T=UL5I MC%88R26#F&$BIP*TP]V3+I4<M50.:PM%C0<&?9208]^_^GT=M<+V),ZZ=>X( MHW#SG(UB?!,28TZEJTM0M<5E2V+Q/S#!XO*IJ?X*?PFEH*B!I2A)YIL=_J"S M(BUI)!W5(1A(.5>U3HJD&:,*$/8O57W;/EYY!_>%!?#3_$>13]H![;:)(*L@ M+4D1W1\H^[40$#EW\)H!`V5QDD91_D14Q0%,V'87CZ6JJ#0`;]1^;^/Y#RG[ MS$?6\T3OCPAZ]K55##,^M4/G.#'[PAZ4"21S$GI#CJ>FY(^/@X^[\W*=&U6- M8F'JA]WHH^_3]/H,$S#\*ES#XQ.C<8&H4)Z`D+FU;\;ARJ>](_>Z>U.4J?%H MU!SD9#,AK;9_2S.R88<E>3_<.7"<"8%!!`2-811G`N!A(-),IX451'=E)(MB M61MEJ=;(:1N,X<ZD;CX_\+$4V\K(*])!C:,&@6ZNF"T*^@8KF-K=+2$G20'Z MX'W\O^0<8L1'YPK\)=/3_#C:?1PJ2,4+HT28VCO"`2^OR#]A3YI)"#8_6!M+ M13$](G=R0/45!%51&#!@R1.!9GX]='ME<#\WJY;]?;X(>KMSABC@#"]8DD:2 M!7!E:O8D6[B[!WO-=/Z2\XXVV#]!Y;.[RCCZ:?JPS)VT!W0:-JFJJJJLL&"6 M%V-&@P?,!Z`.)M[0>/HZ[KR@O5VX!S82@/>+"`^J`W)<JG]^D2:L)7S^?OCO MO[?Y9_OYMU4;;\CW1$B1202&1*&0D)!B%I&8JU2T;&;*E6RIK(I%$BQ*?39$ M-0D0;;I'4RK*9,?`^WW%"U)$M2$^]?-.71BL?#K;=2(S1+N0=8%,<F+:2U85 M56++11M,9)%[_T?1Q&<&%,B+^D0K^AD.YQ*0"GXQ*,$)4-((&740YEDFE$M( MBJB%-/][."GX5\EA&^(<)K20I%0QE`Y?<M`4BC"+LC!C2/A`9#*0T,2+$$EF M:M*FM2K*IJ;93:2J29KY=T4R;";+4I2HF-1I*E-)HU&J*I-3-A,:22QC25,J M\YJTTTIM)M3;2+)52J4JJ)8TR)FQ;)Y[;3<DP95UP2\V]J]NVTI33&VS#::U MHE+*E*[OCW;KME-F*^-;XM[1/.V-=W6S,:72Z3>MW9C.I+75WQM\[I)-7KY< M]5U>5JN>]YW6>+TDM)F-4LE60TML7!E-4VU,3;6;UD;I0M,U:<)C&T\)-A`J MICBP35C%5069W5)HC6!A/BW((Z!L.#0W=1`QOW\J(HZ8=P:Z';Y:.[K1.-`" MB>JO5I:T+;XM26>6(*TD)8#'$*0P.&Z!I0VD**:)M#*DOC@:MRPV0S"0B28: M$L,QH:5L6E2VT@5%1B-20EDL;=+KU[>?&G8HXINR29IM@W1*DW7(TU$IQ=YD M6VEL985I%%4G<(15;TVR:K26K)6J3;9%9`B@XL7<6*BWCT-4,9J4TJ;&,Y:0 M@JA$4/\J=[.VJKS@1MFX`VB,&VQ5150/!.I[/'#<@Y^-G"=F93OE$*#$J<@, M,;`9Q'`PAP)($:<,'`LA,<#&3`H4)A"U=KF,@:E0:4V53)F8M&;6)LI9L:8I MM)WKO26:-$;)&KZ]=VW7MZ*LU*TVEMI)DTE-J4VJ]3!F+4E45;)+$04F.F!B MDL1+)(Z[G)K:2F34IPLC$;-ADQ#)10<Z2Q"7+0&T4(34=C2J!F991P(ALIA@ M@532S(1(D@2!",)%C`SH`]Z'N!<'M^_W3S]URO?FZ;[PG=4/N'9$@\)(\4&A MAD!3#1Y<_9[Q!%[JK[[\#!F#2X?9],]W#Q[.)"Q@^SXF@TG]V^30CA\8P3TC MZ5?6*>9$/M851$W.`^R/@JA?Y+908?UW4ZB'@AV8^`?5(SO3],:$V6202U(Z M.L81J/Z)RDF$-;TP&EA#\;*6!B!1@)%<G9[4IG[PHXD`$A"`2D"0$('_@K@# MJ&^BQ_A,?1T4%3[%?2<!NGU+X@*G]&Q>8-E6-88X.`Q"N.(X:/%A`P(1/M7H M0%E*:665JF5J-2JFVM!?P/`_+X=?MV!?$T8;&84410U6LR(8_`'$_%*L&N11 MOJ]/EQ86Z_BQ+O`@#SI!PKNIO:P.#H"99P!^MV)IL"-KCZEST-]5YK6_W![1 MV)]&U4#\$=P-T(1^9$!B?&]W@?IA2H6REE*6PMB"$A2*(@OG'PWW),?88.?. M'>:=$/VL0,;?N9N833]@\$_:N1/Y(B"?2`)5B?R1IIX7+-O<4D2>Q95"15DA M'4;#!WO\2&CY/89601`$SDN2^,BY0R&H0F5PG!U?S:A-E#%3VD1N<;T^<NX5 MN[*G$LU8<I1LXT8];;XLODEVWD7E739_5ZW<NDKW'2SKI=9==)2E?,V72[:O M5U>]I1-4:]GKU=-39)I"F#,7`X4-MC8=AE2278,$P7!TNUA&0%#G#L)LPNY$ M0(Q#[(>-PP3:H*$M$1&)N0[$\1I-Y-T(I-(82IA1F#C3+00RF$BR2EN&$2;Z M,.1&88.][MN3NLRVH/MO;U7K:",I$;K=7:I+7II2O6G?ZO?&]=1W:-W6VB(( M?4AF]W-@<!01BE1*92_.Y$0(;5R+]EOM7[]L>MV/1%.@=?Y!/E2%)E"20:5* MPM(:B)ADLD;1/J0MDR#@";A`(',7#HJ<2CQ)2?7(.H0Z/S<U$>3"HS`>G?P, MS,S!T/O`%#<_N(/-<8=T!_N\,D(M"%*(_BV/2$IR;=D5XO=/0QMQ(]720R20 MC[V&%A&14"8`H$&94216M):VBUK2M2B-6PLE&@`@5""9*0@"%$DD&E5D(0@( M@E!AE"!223LLDF09;5*['!',^N-O#<\C\UKD:!Y`+XG-`MAX.TW*J":!P5)/ MH63YT$$V\/A[=:GWSNFWJVVV&=^.'6K>+"0&0A+5'NR\ZJ5(XK=RM)&#H@FC MQ20#7/2^E$-QX0=P&E)13>OQ"HH,BG^H]=7,W`X$'%0T&C#+1I<4B6(8@22) M5P4R5<2!QD2!,`AD4'%<'%&!C)7%)T;5;*F@`D3#52CNH'"B!"@+N/``(Y)* M\8H,JJ8'TZLQ]'[9P8&'3N%(D^8SAH%$^^!%0*,)[]H&^Z:0<U^^";K5C_5@ MF'G<V1X$ALSXVRTP`?W1H57]4:VLE=I!#K-*-6A&AH8*"!""R8(%3GZ#!,A4 M)D"("24Y),&&8HI0,E=M[QLQ)9]\'O);54)6-]_O7H^>_<^?`8`*`511=ZPU M+$LBTLT\C?3L]KKYV=^^_#CEP[Q\U5O`N>'QU%;RK;8]>H_KJ$S?XAOFKES% M":MW!";09A4R8*C!FINUUQEH:D93Q.`+W)=4C4A7&'GGS*%N6Y\(K>I&C)K, M<T7:*<^+&,OW7H@95[\$3249&>I8&;N]KF9,HE<#5`"R.2)%E4(&DID+3/GG ME"2Y"`<[4291M'."8*T;&U9(W1?QL&'0-E]&M@VDY/;.W:6P22!$C$A@0H&P ML,DEL<J_QWE$2W""Q?B<.7./$F[,]?NSM=\^?ESJ&ULT3537&9F<-IME?,'4 M[>TM&'Q+$];R1"IFAI@JJ^;U#KG47)63(Q-)=2XQ,4W,B6$DA25D"A\KR$SI MW[&P'FM0=PP.^;!=,W<23>"5-$)]9I]A8H`VVS*-^+U6D3NOH9X:1WY@&(2[ M,0K[.)(^N4\GAZI$H+I)"#_1>R$?T<A9H1_(1Y<"2+\L3F#4D\TYV[NC%<3& M.(_`D/#3\4H<@'QZ-$D+BR#S&XA*;.Z7^=G@#_,H]T'MN1PK]C;;;;;N!\#? M60EO5'(GI_,]\YR''^=N_._P-GS\0)M$$.HBNOUWZ_7S?LGZ8)#AP_0D&/J5 MEM0U60259AB)H@K/@8TI#2PNHB$?;*;A"!2)HE#$226"'>PDD,T&([K$J02B M2#LKQS.@$<]WZW9CV3`98VX#^5=L!<RCL->L(7Y=L3=P:!@SK\E(HJ5U=>R! MD:_Q,.R_)-([Z\@[+!+%B*!*)50JI)[)[O+NQ[?]<$?JKD)C:N,I`B`A7?M] M9R13[PDCY(:+IB$%%=]S"?NB;S+(@,AA5;H;+KU(FZ2Z*^:?)5E>)TGU-57$ MZ7JR(W-CVX"!)%"+@RI@)@IXH<*!ZXJX<%(_FWY3)`QT&=A'@@!&JU5=?9$1 M#7"@<B-`0%\KP[%V16439E4I5@%UU0Z@4I%H!Y&<#Z:JT<P3.$,,C`^AWV\9 MW6403"C^8]R:=T'J@W>]O?SU>RK:VM5:M1S+5KCZ#S!I#`D.C[X/(*GI14_O M^:X0[*O45$P+\P+[`]<7U\))B]S.Y1&[KZ_CS_"^?5WISHYDJ<I#F;&:C()O M;*80A!,UF%VY$54V[D:[V=1RD/,<D`96NZ_8YP6[]FQX*J@CY92U@:8_JL_= MFHU51$:WY\;;SU;:$-,P0=9`Q9*D"P^\KE7R2^=,8I:M]IKFU(9-M*LBEBJ% M1F)O6&9<,54LY=.='Z:XKI7Z:A]P>N=VK\T_%5$KZU^MP_-S1!UALL//W?JY M(ZJ!'U8G!H((3E_>60KI)B^\*>[]T]JGW9MGM6\/(^>?V!V^I.<$9(GL3]H0 MEG>-0\X=P!*(1O;4B$X18#@:OEWD><2'J?ZL2-WI19<*;B2:59%U8#18FE-1 M8D7(D-ET33#LPQI4L2JP,,(C1#K<<%'1;0,:!%%VE5'6MA'_U5?I60-G@Y$< M:2HAF*8)B(4J&>0W*4T)H"#%6B5A2I*KX[121JO3S;>PQ$M2FI"[KI:1J5?E MNE.F)*(V-)26*DTFC3+)&R9$LE9%,I:5*^FZB9E$:1F)$RDS(A)9;%ELHLRJ MR;;95+6EK$519Z;=*F2RLLMBK15M+4JLF34C8K%LV!&C8K&*E2FW->KUUME: M9-M*2F9+3%&2;4;4!DDFTS58FEM-9I-EE)M9)*4J5FM)4;9*5%336",QBTB% MBB26C6:2HL:V*H:2S5):2DH:5\9W6R45=*WUZZO,7FF$*8)T2X.C$,(8AS6* M:IU>7\Q?*WQHZLE9:N:PD5\O9J&8,0,5<)@CD$):$#9E"MF(1F#RI)@P5-"2 MR4DUQ(2`!("ZVLWYOS6DUKV>DP(GKS%1>1"B2+P.!LI)@XI^QG)<E)D4U^=8 M)<!/V_GNPTL'1D["STWPS3^/&[KA4Y@_&U9!;:I`4D35(8$'K)_'JFQ\_@.! M]*^J'1I,C[%B#K'Z=[;1OJ>[\])#W22)\8VNV/C,%<6$(LF"30-!9922$6MY M+P_2E$W]3\YI\DT*0PE#N]IVIBAK@BK/4=X9&$42]6S1O&QK8K*PR*E@I;9; M394DBDF'J7KS=SUW:QX[N]=>DR%)I00-T!5_LY^DJGADJC_48:87([2H90'2 M*6G'&M0MF,*JL8&*M+;8[]+SC71.H`!I1'0VWC6":H()&&(%F2\AM-$.@U32 M\JX$6<KEW1P2GS=CNCYD"'=H.X%?POLNARF1..)QNN[MW+7=RIBDDB+9:OBY ME4NNN9LW`XR6Q8GU_'\^;+^>'%346/RN+JQQ*:^9'I;5J"H:R?&5/3$GZTS9 MP$#]^1^'[/&:R:R;-PORD#&"F_`?3W`N!)^/YX.PJ<G))3"<D5WD^B';32>L M*BRX2?H]Z3]TBM9`>BDMF?69=R3(F%%^QI]DKBK\=0A!A0@:22N-/N4D"V84 M=\XFC2#00A)0_7*8[?SG1TR:9THRSOF9G3HD4HL_QN7>Z=M-&L)AXS]?UK;= MYN#ZZDHT),:(TI);F`WB>;P8&#T$E!K034I6C07)-H6BD4VT@]HK'&%HEP2J MJXN"J6BEAIDFEZW@KB]=)TEC*.J-,0Q5GXN<-(E=<:KE#0H:("2C!RCW+ZY> MJ70-KLYQYNBF@MX=SLPKCDP[HOBA-`H:(D$,YSQYB+VSA"XPX-;@6C3<`C+# M8=RP&K6%%'?#!,NAG(.T$4)LD!JE`@V#H+KKKH;P(PCDJB4VZ*(]%LSKSWL/ M';D[AP+>H1G4Z,#$K;-%C<D'#HW*N8DDU8XD0:"=YW-0;+7DJ4(@T)'CV!A) M8DE(RR21C!@;,A2"(8E<1.1KF9H$V)"()EQPP$$M@L'2.D"TK#BA&#&"Y5ZO M=7I9<[6FTFQ3N-1@C6O37:3:6-=7=+9LK%KW6NIF=K2XRTM*KI$V[,A2J11= M:AFDK%QC),\<&DGJ=UN6I?F6\B^2UY?$J;V2W@BF/'+H&.<D,XF\WM&)EF$D M2XJ9-#<ZN-N*4Q-$N]-L1A6B0[Y-&N-.,5HC(X1`PD`M:TDNM&/,0Y$1"4X& M2[IB&S@(:6.-@NM)<6%-L9DQK9S4U.MYM@.M2]1(E0;(`VG>R)8,QXFX]RBQ M>3(*F#TT='0$6QI\(BW71%10Q&Q86A5:J9*F4MBZDS>1DUMS.,6C3=*.)%A5 MCON1F^U5@T%*Z<2TN@T&M[2IAFBATIF*;W:M@-1!;23`*$FBN=%4S-P-`FZ0 M,)<D&)VQ9#'4H;`2(AFL>7^R01U/R0BNJ:/&8\8[E8['/CJ/SZZ-BS@/;8XU MX/"&D-E513?68L:@,-X:3&+3(LTREYK8RD0EAAQ5WW+(&"@<Q`N!@+.A;#;[ MSOR:*%.3*RA2P0P8ZO`.-#LHT"6AI80RDIK3(1038,"#E*35E4V,<TCA/9U2 M]>B+3-44:&0L9<Z"E31$)M898&I"=M(B3EU`[C@#D$!`SV3C,SR[%Y4RO!W\ M4(131=15XAX+A[-)G?>RP?,;H=2#:JNR%X:%R_8?CA&S6J+RWPU(CMXAV9TD M.4F#JSTT=3AT=7(X#:F<//-%V'!-+)$[@YLJ6$0]0M[:)&W$!M-$$24A<N?) M-=>>M9F/=#RND+35IL2:*0/KJ(+8NA-'H&K+YPSN4E@6*D77!>PN^:"A:,IH M*Z&=R"[,XT:V79)HCI)UL+4)TN=H*H_PF9#13#;3:X-KPGM6N.3L=B\8\I2! ML`H3"!=B\^/3;SXRU.QZ&3QKO65#=1:F*WIN;%JZ;<H*-&R45!M8K?G5<C)2 M48K\TUS!;C20V.<TEZ6;H-LTPN84J.E`[$@U+;.G3!HJ50EJ2%\TF+3J:\UM MRM=-(&(VGUUTU=^-U5(TJ%I5'18B:6(4LD&Y&$,!$!L8THF!.1PR:"=4FBQ& MZM*H=S!A;(;4M+9NSCHW.Q&]KS2W='BOG+5;%W70>`O5I0,FAJH4+@!<@?!B MT,A`VRA>G>$GFA538X()&X`NCN/L-)>2WXAT=_$DPM.PILN#'0DM"&,#K0D` MO!1W"KT($[ML%#4B"8,J.0M).LE08L&]XDDC5$6Q&TU":88C)"ED-9X]=`]% M8\)G-<+.%2$&%N-VFF"J386)N<AL@6;"=:F958DEE8Z#1`.39E"UE5!AH<N\ M+"RBX&%GF$S+DP3E^S-`Q+,A&(-C"M72#=011=7:6DT(9B@*^]TWZ:X90)M( MQFAQ@S712H[P+;%R0@SRZ=--HT2*\(\:(P.."KMM(7+",#&"*8ZBKQY\33V8 M9$-$9&,1V1.;G&QJ@#-[!3?(!&I>N:0/12,H>SH2@VN+(!-(8&JZQ8WC0^XW M`8FA@T@9"577-9<VN:N73L.8<-1DB^4(@ZIIBJK)RYA-UM!410G!,G0:XVD; MB:&PNSA&Y<F.)#A."3>XJ:G@<<#2/5X<R&@)3@=52E&@Y6JI6V)8=3(DX;3) M"H48B[I2XNE=C`7;!),`.[@B)SG055145554[";[@FYP;H[!QYSN=@XA'.GC M3H=I5M2CDPM6H7&*9.8TX&GA7CATK"FP=-Q[C>02D>6&#ETS3I'=3H=BET0# M?W28+VCN(AU$7H!V]'\EO]1YG2CV`B)\QCIZ<DTQW!N[E,;JI0U3K$DQ@DD< M.4E(2(81'\TAX!"=V!Y,+MK-1WSC;QV*FY"6E$=$H8:8EU"9!$M!@_AS3`H" M:"5"BBE-TDI,I6-F6JF4V)K("+>7&$`I0&85M.E$-+H))E88'L%3SIV$*G,- MP\0$X1&5,,/4;?AN]`^;XHF\@H4D$T"!$K(Q)*J,,`-*@:&%9%Q,5BQK/OV# MXBIX!X<Q0[?VB'M,TH=YW[&,;([@BC#(+0+!$1NPDY(B8!@5`F2OB[NIV<C- M]QU*NC6`.B$*H$*!4VS8TC(+,;6LR!5U(%I;(G.H.-M-UKY4VQEMLJ-(HBQK M:;5+3--8I-8UF6J:&429%)$9`)6$4@&(4I**H622'#8KPGAY?E^WS2$1T!<T M(K^`MP(6S?0WJS3@?`7@<:^J`F,@CY.M5K]:(_ED::&[#:&V1T'H'8=TZ`2$ MJ`9I)8&E';IO/<?NH)3#HW_7W282@@#(<S%":D,@*07X=J!Y$._PD,(4`I0Y M&*_KA.9;,AB"H>$KB8/)]()"`SVHH[&]$)#U/*;*B7J?#N[>?LQ$LOJ@3+WN M19'!@V4:8QB&@K</D%%]R=O0"\;`S8\JXG3+`W')HUBF'*Z6;I3%545*CUK( M;VP1V'$5Q,1'!-$)H8V%=A%7".L-1'J39&U62+(.R>QQ.++C!'0H'0">J#Y> M/O>4BHB)B(J:(KP#[1A3@0GZA_*YL,L,";"#/Q7Y-5CBD:AS!]P)`O5('=)& M."+#[00U0U2;;?5A]KZ?1RVX]F4CS-G@A"@:UJK&Q6*M13-BJ-$5)K;4240E M1M9&U342!!2B$@S!(K02A*1*1$I*0DY)'\^G*<PN=L:?U\GGN$OJ\4!#9#V* MO\00X2T$2$0G@,C9O*KV5>$0B#3:Z*ADB8$L##(,A))HT&G1&`ID_:H=CV]" MF%4.#(KUZI/O1Y4E,PS<5#;;2;B/8*R(J;H>>I1)DG>1"QYJ`_-+`DW$1[9$ M3U-)11$3M/$EG\*+4BTM<P):TD!JCO*'E[1&O-$`DA$`AL3=P6OLE$A\)$&L MC<A!%1X,=AT>VR)%,S(208``?&043V$`H_;20R6#I9!NP#4J4OP43;U/VR2( MG:[]Y>]>%5KUVW67-M&[:K+4Z<R5UZ2[5<\SNU@L0.%`!%2L#^C;:V1QD2E5 MD;B*I06V+(/]2OU*6L49)5?_C8U]N(89AL(:G"4R2E/9=_:-)=OU[>)](>X6 M%D)'_5\RH+RXEDF6Q;;_F#[Y$%!^41\TG#^=]-)]B!)/F$3A!Q4D^6,MO;]` M2'3E3Q@?Z4^`@CYR`0^814?`E,B(5,E)837]K[V3;;)(RL544:-BK6R-)!LB M24&),FDE5KULMNMK3-8:244D6TL,-($?G)7L\L)I^&]VP0Y]]3RA\Z8IU#7< M-(,[]ZH!V'"*9)),EB!BP&2D&)$S`+#GE&A:/\+&2-L**I9,U5K"9774A"HI MH?!$Q.7G/%_=3HI]:H]\"]P8E-2CY-*8^GY<?N_=[=>LY'^4A0*/2B@G4W8' M!#,^CISV]#N"9\&1]`B7HWK4K-#*ACLAM$9MR!3JZP4VGFWU[&Q1"$1$%^_W MGK:9$V=CQ@[XB28"?L,R>N?@,,73$!&S@ZG4LTJL@PM34RX_?6WMB0ZGZ'V/ MY?*+%-%$H%[!9B-\^YGR9,L,8P_1^A8A&PZGP`:3YTOL`4!)$/P:.[-K3ABQ M1EN3%>&STX%0ZI])^80G[$?L^J'D\DLH5UE3%BE*0LJJ5D(@$K0P+!#*;*X! MKZU$,TB.R:30?TJ@&E>0@]JH+]3)X%W/SF@PA)*?%*$/.Q_&LAYR0V?S1"_\ MS`MVR(ZRHC*@L!4,@'>!K5P'D4:8Q5F(7@_B.S@[N$.)B)@Y_#%VMH2BPP`R M#]L]LB:D:$HWE,8>.6.C\&#D*L0%Q_)H-$JM"#T@B,E#(!#"6?KL6UC\!T3" MXH%[\T:&C[S!S#YQ]W^G_5_I4S_B6_E(J+++Q1/>=$A;"4C>-Q##;RXOIV/- M#I3V(C\!/9[=(:E""*U:(HBK1B$$E!C]:)Q_<DSE,YSCMDV'>V#&?7/(S"YY M($C+W+!,U`2+20@.U0@A9:5(T*9ZF%[2(@B&J2I(5JV<;Y[O"S6:,^Z!P"2R M4=W9L6HO=:Z3O=Y8O/J)KSM-MFFI,DLI:(F2E/),5TM<TNNVZ5)HY=KNXTT8 MBN,VN1J[NW2J-="%+FN5<W=USJ[>U;6[:DN#G<;BV6Z2WX(]@\#:B6*)'=./ M;OPL?UZN/VHZ3]Y/:-"6(0]LE-AW_3L([*D36X,AN>B%=C0[#"&,A2$@D$@O MF0A<&!V^2.Q1/R@/-5`9)`]I_ZCSWOP\O0^7_#'B4_V6>HY\S8YZ%3P-&K[/ M2'5T(_@=&F8T-#,T@4&'LP$TU4+%&C*PE.9Z^>B"\'!78.@,C-]\#V=U;[FY MSYAL3*Z12(4IS=W&]8ARM'K>0"F%^HA'L)'49-RI5B?[3#(U8:*)Y3<,(?@X M(&%O':W^I#KU=D[:[7)QS^5![+!3AC6]32\<:-1E.W8D?P63QE1$<66EI8;P MA@L@^RR0])2RH##"O6`0X9#X[8H2'#X=,V2B5'8FJQJQ*L2JJAJDC:D1"FH0 MR3O7@Q!>T4%A0Y$KQTQ&_)_J%XE8F)#T69*S!Q$:4YJU/OIUYW1(JRT<=N.' MBAZ:<*E:(28HXK@)M`]D"]!'7A^S;H<+N?'U^Z1V9!MSE/^D!XS"DBLYAFA; MDF",4J89!>->W#CMV<O6EX=>.&WR2=X&N7]&D;E(&D=HIS'$9(6/[T9/U*># MSR8G5($'T,YY$^35\K\F0X;J[JP?,&E#$.Y.TQ&U.+))PL&-(7KF3KHG?4'8 M_8,I:#LXR2!C=@.<I;86,$85"FK%3)+ACC3$BV3=#-*W-(R*E`@2"&DXH4,- MO!V5%.4DEHY'$O2@@"0E#R10\,`;&\55F*3(!+"+BX@!^2JJ[!`S*Q$(#I*X MX;0'60Y;Z)_;"]-'9F?TN@%.B2.'BZK4321N$49(9*<R]4-D&34:%6L)H<2Q M#<K4XD6-"#V67/([N^"#E'"?A(._L$%;3\`R.J1G2QDR"^?<"IC2P9Z!U."R MH9UN'H=M_J$A2DWNN:'Q"#_`J(2TB)*H22/]XGH[`*$X/<=CZQ[=WB_>*?PO MR.@Y$DLS1+542!1$M\ZHI[6B04$^5)(5C8F5CT7P7]0N@FD`N'H#4#$'8'^2 M:VFJ6VHM1K6C6*4V5%+4E8U%9"-6OF5M%92-B)2S,K*65333;!$F2:K^XM:9 M)H5KVDM34LI%24E4IF-32Q9FFS2-4I8U*98,2EEDF66-DTI:9))!23)K$F:) M(DE*%M)$LDB::*D5"F%C$F-@L6DUC28Q-62%A$HL-HI)H)8UC9(HQMM*6MY3 MN[==<_DO?&Q^O=TS`-RBS(AAIJ@L,4RB79A>>V;1HPP#%EQC^.R%B$T8CMIR M20E3)'"1PDPFD*0(A&EQA3$)H8)&4C00\M$J5)7LNMI`Q1E;G6.I@BAWV,$7 M:=R[`A1/_0&*%^D(1"7#IP/HO[UV`^=A`:"Y"_+@IIH7ZR"`M529969%1_A2 M5[-#WTDXXXII7UW:E4FK>)I.ZZBS$MT^6#;0IY]8D$M&]A+DX;)T*9T$IR#. M3$B<$&`PT#P2G0]&P+Q5B:FK)M!;4FIFWTJ*H9M3J[&W.5UW:L9,ESI7VF[U MW*N3)-1;#)$M?=E;RU7QM7P&Q;>;2E3(D6@"`BE<7:5RDT45V)M:DWX=VUS3 MNN^>[Q&D+S;JC8MEZ:T5*1YVK?7MT;7K46T)53)$3(I064A!:(JC4J$5.B$R M*.P+)IU*T<I1X!6`_[7*6(.&#GG-ULDKZ.>>/0Q_G.?QT[>_I>M^%>7(MJ,A IEK[.M]1+8*4HH:$:3(5I%(?N@WDO+BY4Q5XH*-?_B[DBG"A(=DT\YX`` ` end >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/59: Re: Template problem: Is it me, or is it the compiler? Date: Sun, 05 Mar 2000 10:06:00 -0000 Message-id: <200003051750.SAA00699@loewis.home.cs.tu-berlin.de> References: <386B870C.4517B5CB@netvision.net.il> X-SW-Source: 2000-q1/msg00055.html Content-length: 2245 >Number: 59 >Category: c++ >Synopsis: [not accepted] deducing non-type template parameters >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Michael Ben-Gershon <mybg@netvision.net.il> >Release: 2.95.2 >Organization: My Office >Environment: >Description: Date: Thu, 30 Dec 1999 18:23:40 +0200 Original-Message-ID: <386B870C.4517B5CB@netvision.net.il> Compiling the following code with gcc-2.95.2 gives the error: test1.cc: In function `int main()': test1.cc:32: no match for `ostream & << R<int,-5,5> &' /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/iostream.h:77: candidates are: class ostream & ostream::operator <<(char) /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/iostream.h:78: class ostream & ostream::operator <<(unsigned char) /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3/iostream.h:79: class ostream & ostream::operator <<(signed char) etc. etc. etc. The code is: #include <iostream> template<class T, T lower, T upper> class R { public: R() { value = lower; } T val() const { return value; } private: T value; }; template<class T, T lower, T upper> ostream& operator<<(ostream& out_stream, const R<T, lower, upper>& the_value) { return out_stream << the_value.val(); } int main() { R<int, -5, 5> f; cout << endl; cout << "Number is: " << f << endl; return 0; } If the class is defined slightly differently, and all references to it are altered accordingly, all is OK: template<class T, T lower, T upper> is replaced with: template<class T, int lower, int upper> Of course, this will be no good in a real example, as the class needs to be able to specify the other template parameters in terms of T and not in terms of int! I seem to recall that is worked with some earlier version of g++ Michael Ben-Gershon mybg@netvision.net.il >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/61: Re: Language bug in static initializers? Date: Sun, 05 Mar 2000 10:16:00 -0000 Message-id: <200003051806.TAA00812@loewis.home.cs.tu-berlin.de> References: <200001050525330590.01C2F367@smtp.a001.sprintmail.com> X-SW-Source: 2000-q1/msg00057.html Content-length: 2231 >Number: 61 >Category: c++ >Synopsis: [not accepted] static initializers cannot access private members >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:16:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Bruce Eckel" <bruce@eckelobjects.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <200001050525330590.01C2F367@smtp.a001.sprintmail.com> Date: Wed, 05 Jan 2000 05:25:33 -0800 Reply-To: bruce@eckelobjects.com I think the following should work, but I get an access error with 2.91.66. Static initialization expressions have special access to private elements of a class, but I suspect that the addresses of the member function addresses were overlooked. That or I've screwed up the syntax. Thanks for any feedback. //: C11:PointerToMemberFunction2.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com #include <iostream> using namespace std; class Widget { void f(int) const {cout << "Widget::f()\n";} void g(int) const {cout << "Widget::g()\n";} void h(int) const {cout << "Widget::h()\n";} void i(int) const {cout << "Widget::i()\n";} static const int cnt = 4; static void (Widget::*fptr[])(int) const; public: void select(int i, int j) { if(i < 0 || i >= cnt) return; (this->*fptr[i])(j); } int count() { return cnt; } }; // Initialization of static should have access // to private addresses: void (Widget::*fptr[])(int) const = { &Widget::f, // Full spec required &Widget::g, &Widget::h, &Widget::i, }; int main() { Widget w; for(int i = 0; i < w.count(); i++) w.select(i, 47); } ///:~ =========================================== Bruce Eckel http://www.BruceEckel.com Contains free electronic books: "Thinking in Java" & "Thinking in C++ 2e" Please subscribe to my free newsletter -- just send any email to: join-eckel-oo-programming@earth.lyris.net =========================================== >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/62: Re: 2.95.2 namespace bug persists Date: Sun, 05 Mar 2000 10:16:00 -0000 Message-id: <200003051804.TAA00793@loewis.home.cs.tu-berlin.de> References: <38719B25.71C710F@gte.net> X-SW-Source: 2000-q1/msg00058.html Content-length: 2531 >Number: 62 >Category: c++ >Synopsis: [not accepted] nested classes of surrounding class not visible >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:16:02 PST 2000 >Closed-Date: >Last-Modified: >Originator: Raymond Nijssen <rxtn@gte.net> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <38719B25.71C710F@gte.net> Date: Mon, 03 Jan 2000 23:03:01 -0800 Dear gcc maintainers, The following bug that crept in sometime after 2.8.1 has existed in all 2.95 versions so far: 41[linux1:]~/src/test> cat namescope.cxx class A { public: class B; class C; }; class A::B { }; class A::C { class D; }; class A::C::D { public: B* foo(); // gcc-2.95.* fails to see that A::B is declared in this context }; 42[linux1:]~/src/test> /usr/local/gcc-2.95.2/bin/g++ -v namescope.cxx Reading specs from /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs gcc version 2.95.2 19991024 (release) /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ namescope.cxx /tmp/cc84JpBr.ii GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3 /usr/local/include /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/include /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/local/gcc-2.95.2/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus /tmp/cc84JpBr.ii -quiet -dumpbase namescope.cc -version -o /tmp/ccwNSPZI.s GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.2 19991024 (release). namescope.cxx:16: syntax error before `*' 43[linux1:]~/src/test> -Raymond >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:16:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/60: Re: g++ bug: partial template specialization prevents gcc from seeingordinary template of the same class. Date: Sun, 05 Mar 2000 10:16:00 -0000 Message-id: <200003051800.TAA00759@loewis.home.cs.tu-berlin.de> References: <Pine.LNX.4.10.10001021631460.490-101000@198.dsl.xmission.com> X-SW-Source: 2000-q1/msg00056.html Content-length: 6833 >Number: 60 >Category: c++ >Synopsis: [not accepted] partial template specialization prevents gcc from seeing ordinary template of the same class. >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:16:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: <llewelly@198.dsl.xmission.com> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Sun, 2 Jan 2000 16:40:02 -0700 (MST) Original-Message-ID: <Pine.LNX.4.10.10001021631460.490-101000@198.dsl.xmission.com> Due to the size of the code that provokes the bug, I have put in an attached bzip2 tarball, along with the .s and .ii files created by g++ -v -save -temps. [Reduced to only .cc file, since .ii file and assembler output are not needed - MvL] >How-To-Repeat: #define BUG template<typename Ptr> class normal_iterator { public: normal_iterator(); normal_iterator(Ptr const& _ptr); Ptr m_ptr; }; template<typename Ptr> normal_iterator<Ptr>:: normal_iterator():m_ptr(0){} template<typename Ptr> normal_iterator<Ptr>:: normal_iterator(Ptr const& _ptr):m_ptr(_ptr){} class Sequence { public: //iterator and const_iterator must be of templated type; // typedef int* iterator will not provoke the bug. typedef normal_iterator<int*> iterator; typedef normal_iterator<int const*> const_iterator; inline iterator begin(); inline const_iterator begin()const; int m_element; }; inline Sequence::iterator Sequence:: begin() { return(&m_element); } inline Sequence::const_iterator Sequence:: begin()const { return(&m_element); } template<typename Container> class Checked_container; template<typename Container,typename Unchecked_iterator> class Basic_checked_iterator; template<typename Container,typename Unchecked_iterator> class Basic_checked_iterator { public: typedef Checked_container<Container> Container_type; typedef Basic_checked_iterator<Container,Unchecked_iterator> Self; Basic_checked_iterator(Unchecked_iterator const& _current_iterator); }; template<typename Container,typename Unchecked_iterator> Basic_checked_iterator<Container,Unchecked_iterator>:: Basic_checked_iterator(Unchecked_iterator const& _current_iterator){} /* If BUG is defined, compiling this code produces: $g++ -v -save-temps -g -Wall partial_specialization_clouds_availible_template_function_bug.cc Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs gcc version 2.95.2 19991024 (release) /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__EXCEPTIONS -g -Wall -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ partial_specialization_clouds_availible_template_function_bug.cc partial_specialization_clouds_availible_template_function_bug.ii GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3 /usr/local/include /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/include /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus partial_specialization_clouds_availible_template_function_bug.ii -quiet -dumpbase partial_specialization_clouds_availible_template_function_bug.cc -g -Wall -version -o partial_specialization_clouds_availible_template_function_bug.s GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.2 19991024 (release). partial_specialization_clouds_availible_template_function_bug.cc: In method `class Basic_checked_iterator<Sequence,normal_iterator<int *> > Checked_container<Sequence>::begin()': partial_specialization_clouds_availible_template_function_bug.cc:159: instantiated from here partial_specialization_clouds_availible_template_function_bug.cc:144: no matching function for call to `Basic_checked_iterator<Sequence,normal_iterator<int *> >::Basic_checked_iterator (normal_iterator<int *>)' partial_specialization_clouds_availible_template_function_bug.cc:120: candidates are: Basic_checked_iterator<Sequence,normal_iterator<int *> >::Basic_checked_iterator(const normal_iterator<const int *> &) partial_specialization_clouds_availible_template_function_bug.cc:66: Basic_checked_iterator<Sequence,normal_iterator<int *> >::Basic_checked_iterator(const Basic_checked_iterator<Sequence,normal_iterator<int *> > &) partial_specialization_clouds_availible_template_function_bug.cc:144: warning: control reaches end of non-void function `Checked_container<Sequence>::begin()' The problem is that line 64 *does* in fact declare a matching templated constructor, and if BUG is undefine, gcc 2.95.2 finds and uses it. */ #if defined(BUG) template<typename Container> class Basic_checked_iterator<Container,typename Container::const_iterator> { public: typedef typename Container::const_iterator Unchecked_const_iterator; typedef Checked_container<Container> const Container_type; typedef Basic_checked_iterator<Container,Unchecked_const_iterator> Self; Basic_checked_iterator(Unchecked_const_iterator const& _current_iterator); }; template<typename Container> Basic_checked_iterator<Container,typename Container::const_iterator>:: Basic_checked_iterator(typename Container::const_iterator const& _current_iterator){} #endif /* defined(BUG) */ template<typename Container> class Checked_container { public: typedef Basic_checked_iterator<Container,typename Container::iterator> iterator; typedef Basic_checked_iterator<Container,typename Container::const_iterator> const_iterator; inline iterator begin(); inline const_iterator begin()const; Container container; }; template<typename Container> inline Checked_container<Container>::iterator Checked_container<Container>:: begin() { return iterator(container.begin()); } template<typename Container> inline Checked_container<Container>::const_iterator Checked_container<Container>:: begin()const { return const_iterator(container.begin()); } int main() { Checked_container<Sequence> c; c.begin(); return(0); } >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/63: Re: 2.96: templated varargs Date: Sun, 05 Mar 2000 10:26:00 -0000 Message-id: <200003051810.TAA00859@loewis.home.cs.tu-berlin.de> References: <20000110203128.J4939@mobil.tue.nl> X-SW-Source: 2000-q1/msg00059.html Content-length: 2979 >Number: 63 >Category: c++ >Synopsis: [not accepted] templated varargs >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:26:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Kurt Garloff <garloff@tue.nl> >Release: 2.95.2 >Organization: TUE/NL, SuSE/FRG >Environment: >Description: Original-Message-Id: <200001110130.CAA09944@mobil.garloff.de> Hi, does gcc-2.96 remove support for variadic argument lists in combination with templates? Why? Does the C++ draft standard say so? garloff@etpvis:~/gum/testsuite/compiler > g++ -O2 templvararg.cpp -DWITHOUT_TEMPLATES -o templvararg garloff@etpvis:~/gum/testsuite/compiler > ./templvararg Testing with templates DISabled 1 2 3 garloff@etpvis:~/gum/testsuite/compiler > g++ -O2 templvararg.cpp -o templvararg templvararg.cpp: In function void PrintArgs (Type, ...)': templvararg.cpp:36: invalid use of template type parameter Compiler: garloff@etpvis:~/gum/testsuite/compiler > g++ -v Reading specs from /usr/local/egcs-2.96/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs gcc version 2.96 20000110 (experimental) With egcs-1.1.2, the code compiles and produces the expected result. System is a SuSE-Linux 6.2 iX86 (glibc-2.1.1, Linux-2.2.13). Sourcecode attached. PS: Please Cc: answers to me, I'm not currently subscribed to gcc-bugs. -- Kurt Garloff <kurt@garloff.de> [Eindhoven, NL] Physics: Plasma simulations <k.garloff@phys.tue.nl> [TU Eindhoven, NL] Linux: SCSI, Security <garloff@suse.de> [SuSE Nuernberg, FRG] (See mail header or public servers for PGP2[RSA] and GPG[DSA] public keys.) >How-To-Repeat: /* templvararg.cpp */ /* * Testcase for the compiler to handle varargs with templated * types. Should result in problems for char or float values, * because of the std promotion taking place, but be compilable * and functional, IMHO. Kurt Garloff <kurt@garloff.de>, 1/2000. * Testcase by Jan van Dijk <jan@etpmod.phys.tue.nl>, 1/2000. * Copyright: GNU GPL */ #include <iostream> #include <stdarg.h> // if you don't enable the next line, this program won't compile // with gcc 2.96 (snapshot 20000103), ... //#define WITHOUT_TEMPLATES #define TestType double #ifdef WITHOUT_TEMPLATES # define Type TestType #else template <class Type> #endif void PrintArgs (Type somearg, ...) { cout << "Testing with templates " #ifndef WITHOUT_TEMPLATES << "ENabled" << endl; #else << "DISabled" << endl; #endif va_list argp; va_start (argp, somearg); Type value; while ( ( value = va_arg (argp, Type) ) > 0.0) cout << value << '\t'; cout << endl; va_end (argp); } int main (void) { TestType dummy = 0; /// termination criterium: value < 0 PrintArgs (dummy, 1.0, 2.0, 3.0, -1.0); return 0; } >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/67: Re: Bug report for GNU C++ 2.95.1 on constant expression eval. in templates Date: Sun, 05 Mar 2000 10:36:00 -0000 Message-id: <200003051820.TAA01002@loewis.home.cs.tu-berlin.de> References: <3.0.1.32.20000201173025.009c0b80@10.1.1.3> X-SW-Source: 2000-q1/msg00064.html Content-length: 1413 >Number: 67 >Category: c++ >Synopsis: [not accepted] constant expression eval. in >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Sven Rosvall <sven.prqa@indigo.ie> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-Id: <3.0.1.32.20000201173025.009c0b80@10.1.1.3> Date: Tue, 01 Feb 2000 17:30:25 +0000 Hi, just stumbled on this piece of code in a proprietary library that caused g++ to yell. I haven't seen it in any list of known bugs and wouldn't either as it is a bit wierd. This is what I have narrowed it down to: File array.cc: -------- template <class T> struct foo { static const int bar [3]; }; template <class T> const int foo<T>::bar [2+1] = { 0, 0, 0 }; ------ % g++ -c array.cc array.cc:4: conflicting types for `const int foo<T>::bar[(2 + 1)]' array.cc:2: previous declaration as `const int foo<T>::bar[3]' % g++ --version 2.95.1 G++ accepts the code if either the template bit goes away or "2+1" is changed to "3". I don't expect this bug report to have any higher priority but it might be fun for you guys to study. / Sven >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: templates >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/65: Re: Infinite compilation! Date: Sun, 05 Mar 2000 10:36:00 -0000 Message-id: <200003051818.TAA00962@loewis.home.cs.tu-berlin.de> References: <Pine.LNX.4.20.0001271720410.667-100000@gamspc7.ihep.su> X-SW-Source: 2000-q1/msg00061.html Content-length: 1214 >Number: 65 >Category: c++ >Synopsis: [not accepted] Infinite compilation! >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Alexander Zvyagin <zvyagin@gamspc7.ihep.su> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Thu, 27 Jan 2000 17:28:39 +0300 (MSK) Original-Message-ID: <Pine.LNX.4.20.0001271720410.667-100000@gamspc7.ihep.su> Dear GCC developers, the attached file can not be compiled under gcc-2.95.2. Compilation time and memory consumption are infinite. // gcc-2.95.2 will compile this code // if you comments any marked line(s). class A { public: virtual A *f(int n) {} // Comment this! }; template <int N,class T> class B : public A { public: A *f(int n) {return new B<N-1,T>;} // Comment this! }; main(void) { B<5,int> b; // Comment this! } // End of file // With best wishes, Alexander Zvyagin. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/69: Re: Multiple inheritance bug Date: Sun, 05 Mar 2000 10:36:00 -0000 Message-id: <200003051823.TAA01018@loewis.home.cs.tu-berlin.de> References: <fxdbt5smxus.fsf@salsa.cs.wisc.edu> X-SW-Source: 2000-q1/msg00065.html Content-length: 2122 >Number: 69 >Category: c++ >Synopsis: Multiple inheritance bug >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:36:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Glenn Ammons <ammons@cs.wisc.edu> >Release: 2.95.2 >Organization: >Environment: >Description: Date: 07 Feb 2000 16:50:03 -0600 Original-Message-ID: <fxdbt5smxus.fsf@salsa.cs.wisc.edu> I am using this version of g++: Reading specs from /s/gcc-2.95.2/sun4x_56/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs gcc version 2.95.2 19991024 (release) and running g++ on this file: class eel_private_executable { public: virtual void read_section_descriptors() = 0; }; class executable : public eel_private_executable { }; class eel_bfd_executable : public virtual executable { public: virtual void read_section_descriptors(); }; class eel_arch_executable : public virtual executable { }; class eel_archive_executable : public eel_arch_executable, public eel_bfd_executable { public: virtual void read_contents(); }; void eel_archive_executable::read_contents() { read_section_descriptors(); } When I run g++ like this: g++ -c eel_executable_cpp.C I get this error message: eel_executable_cpp.C: In method `void eel_archive_executable::read_contents()': eel_executable_cpp.C:35: request for member `read_section_descriptors' is ambiguous in multiple inheritance lattice eel_executable_cpp.C:5: candidates are: void eel_private_executable::read_section_descriptors() eel_executable_cpp.C:16: void eel_bfd_executable::read_section_descriptors() This is a bug because eel_private_executable::read_section_descriptors is abstract, so it can't possibly conflict with eel_bfd_executable::read_section_descriptors. On my system, uname -a says SunOS cabernet 5.6 Generic_105181-17 sun4u sparc Thanks. --glenn >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/68: Re: GCC 2.95.2, Next 3.3; explicit specialization loses default Date: Sun, 05 Mar 2000 10:36:00 -0000 Message-id: <200003051814.TAA00892@loewis.home.cs.tu-berlin.de> References: <200001120443.UAA29433@fafnir.com> X-SW-Source: 2000-q1/msg00066.html Content-length: 2039 >Number: 68 >Category: c++ >Synopsis: [not accepted] explicit specialization loses default >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: James McKelvey <mckelvey@fafnir.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-Id: <200001120443.UAA29433@fafnir.com> Date: Tue, 11 Jan 2000 20:43:56 -0800 Reply-To: mckelvey@fafnir.com GCC 2.95.2 Next Cube running NextSTEP 4.2, 3.3 Developer Explicit specialization seems to forget that second argument to constructor has a default value. Test case: class A { public: template <class T> A(T x, bool y = false); }; template <class T> A:: A(T, bool) { } template <> A:: A(char, bool) { } int main(void) { int b; char c; A x(b); // OK A y(c); // Fails A z(c, false); // OK return 0; } g++ -DNO_NAMESPACE -D__USE_GNU -DNeXT -g -pipe -ansi -pedantic -pedantic-errors -fsjlj-exceptions -fno-keep-static-consts -fshort-enums -fstrict-aliasing -ffloat-store -fno-common -ffor-scope -Wsign-promo -ftemplate-depth-30 -fverbose-asm -fimplicit-templates -fno-external-templates -fno-repo -Wall -W -Wbad-function-cast -Wpointer-arith -Wcast-qual -Wconversion -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wwrite-strings -Winline -Wtraditional -Wno-long-long -o x x.cc x.cc: In function `int main()': x.cc:31: no matching function for call to `A::A (char &)' x.cc:21: candidates are: A::A<char>(char, bool) x.cc:8: A::A(const A &) x.cc:32: warning: unused variable `class A z' x.cc:31: warning: unused variable `class A y' x.cc:30: warning: unused variable `class A x' gmake: *** [x] Error 1 >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/66: Re: gcc gives bogus errors for classes wrapped in 'extern "C"' Date: Sun, 05 Mar 2000 10:36:00 -0000 Message-id: <200003051815.TAA00932@loewis.home.cs.tu-berlin.de> References: <200001131843.KAA06379@scv1.apple.com> X-SW-Source: 2000-q1/msg00063.html Content-length: 1403 >Number: 66 >Category: c++ >Synopsis: [not accepted] bogus errors for classes wrapped in 'extern "C"' >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: turly <turly@apple.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-Id: <200001131843.KAA06379@scv1.apple.com> Date: Thu, 13 Jan 2000 18:56:23 +0000 gcc-2.95.2 gives bogus errors for classes wrapped in 'extern "C"' (I'm not even sure whether this is legal.) extern "C" { class Argh { public: ~Argh (); void DoSomething (Argh *); Argh (); }; } gcc will give the error "invalid use of undefined type `class Argh'" when it sees the "Argh *" parameter of DoSomething (). (It's even weirder in that these error messages are only given for methods which occur AFTER the destructor has been seen; i.e., moving the destructor so it's the LAST method above will result in a clean compile. <fx:Theme music from _The Twilight Zone_> Hmmm. </fx>) Any ideas/suggestions, or is this simply a case of "Doctor, it hurts when I do this." -- "Well, don't do that."? Thanks! --turly >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/64: Re: anonymous union member is not hidden by gcc 2.95.2 Date: Sun, 05 Mar 2000 10:36:00 -0000 Message-id: <200003051817.TAA00953@loewis.home.cs.tu-berlin.de> References: <17056.947940440@www8.gmx.net> X-SW-Source: 2000-q1/msg00060.html Content-length: 1129 >Number: 64 >Category: c++ >Synopsis: [not accepted] anonymous union member is not hidden >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: GerhardTonn@gmx.de >Release: 2.95.2 >Organization: >Environment: >Description: Date: Sat, 15 Jan 2000 13:47:20 +0100 (MET) Original-Message-ID: <17056.947940440@www8.gmx.net> Compiling the following code fragment by g++ : class super { public: private: union{ int myName; void * secondMember; }; }; class sub : public super { public: int myName() {return 1;} }; int main(int argc, char ** argv) { sub myObject; myObject.myName(); } results in tst.cxx:13: declaration of `int sub::myName()' tst.cxx:6: conflicts with previous declaration `int super::{anonymous union}::myName' which in my opinion is wrong, since the member should be hidden. Gerhard >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 10:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/70: Re: template bug Date: Sun, 05 Mar 2000 10:36:00 -0000 Message-id: <200003051828.TAA01084@loewis.home.cs.tu-berlin.de> References: <Pine.SGI.4.05.10002101116030.55362-200000@chopin.Princeton.EDU> X-SW-Source: 2000-q1/msg00062.html Content-length: 2257 >Number: 70 >Category: c++ >Synopsis: template bug >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 10:36:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: JM Geremia <jgeremia@princeton.edu> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Thu, 10 Feb 2000 11:25:05 -0500 Original-Message-ID: <Pine.SGI.4.05.10002101116030.55362-200000@chopin.Princeton.EDU> The preprocessed code below generates the following compiler error: foo.C: In instantiation of `foo<double>': foo.C:45: instantiated from here foo.C:16: invalid use of undefined type `class foo<double>' foo.C:23: forward declaration of `class foo<double>' Here are the vitals: g++ -v Reading specs from /usr/local/lib/gcc-lib/mips-sgi-irix6.5/2.95.2/specs gcc version 2.95.2 19991024 (release) uname IRIX mozart 6.5 10181059 IP32 mips BUG DESCRIPTION: This is an example program written to demonstrate the bug. The problem occurs when operator*() is declared as both a friend and member. No problem occurs when operator*() is declared only as a friend or only as a member. Comment out the member definition and declaration of operator*() and everything works. Thanks for any help. JM P.S. please cc me. I'm not on the list. >How-To-Repeat: template <class EType> class foo; template <class EType> foo<EType> operator*( const EType &, const foo<EType> & ); template <class EType> class foo { public: foo( const EType v = 0 ) : Value( v ) {}; virtual ~foo( ) {}; friend foo<EType> operator* <> ( const EType &, const foo<EType> & ); foo<EType> operator*( const EType & ); private: EType Value; }; // Friend Function operator* definition template <class EType> foo<EType> operator*( const EType & e, const foo<EType> & f ) { return foo<EType>( e * f.Value ); } // Member Function operator * definition template <class EType> foo<EType> foo<EType>::operator*( const EType & e ) { return foo<EType>( e * Value ); } int main( ) { foo<double> f( 5.0 ); return 0; } >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 11:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/73: Re: g++ template bug Date: Sun, 05 Mar 2000 11:06:00 -0000 Message-id: <200003051838.TAA01201@loewis.home.cs.tu-berlin.de> References: <20000219032114.A18196@lennon.cc.gatech.edu> X-SW-Source: 2000-q1/msg00069.html Content-length: 5137 >Number: 73 >Category: c++ >Synopsis: [not accepted] g++ template bug >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 11:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Brian McNamara <lorgon@cc.gatech.edu> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Sat, 19 Feb 2000 03:21:14 -0500 Original-Message-ID: <20000219032114.A18196@lennon.cc.gatech.edu> I've encountered this error a few times in g++2.95.2, and finally pinned it down to a small case (~60 lines after preprocessing). The code is below, followed by the output of g++ with "-v --save-temps" as suggested in the bug reporting info. A comment in the code below points to the crux of the matter. ---------------------------------------------------------------------- // This demonstrates my compiler bug template <class A, class B, class C, class D> struct Help { typedef A First; typedef B Second; typedef D Third; }; template <class A, class B, class C> struct HelpSig { typedef A First; typedef B Second; typedef C Third; }; struct Plus { template <class T, class U> struct Sig : public HelpSig<T,U,T> {}; template <class T> T operator()( const T& x, const T& y ) const { return x+y; } }; template <class T> struct Ethel { typedef T WrappedType; }; struct Fred { ////////////////////////////////////////////////////////////////////// // If you "comment out" this thing below, the compiler quits // (mis)reporting errors (this this isn't even used!!!) ////////////////////////////////////////////////////////////////////// template <class Z, class LA, class LB> struct Fig : public Help<Z,LA,LB, Ethel<typename Z::Sig<typename LA::WrappedType, typename LB::WrappedType>::Third> > {}; ////////////////////////////////////////////////////////////////////// template <class Z, class A, class B> Ethel<typename Z::Sig<A,B>::Third> operator()( const Z&, const Ethel<A>&, const Ethel<B>&) const { return Ethel<typename Z::Sig<A,B>::Third>(); } }; int main() { Fred()( Plus(), Ethel<int>(), Ethel<int>() ); return 0; } ---------------------------------------------------------------------- Reading specs from /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs gcc version 2.95.2 19991024 (release) /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cpp -lang-c++ -v -I/net/hp45/yannis/gcc.2.95.2-install//include/g++ -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -D__OPTIMIZE__ -W -Wall -Woverloaded-virtual -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) foo.cc foo.ii GNU CPP version 2.95.2 19991024 (release) (sparc) #include "..." search starts here: #include <...> search starts here: /net/hp45/yannis/gcc.2.95.2-install/include/g++ /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../sparc-sun-solaris2.7/include /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include /usr/include End of search list. The following default directories have been omitted from the search path: /net/hp45/yannis/gcc.2.95.2-install/include/g++ /net/hp45/yannis/gcc.2.95.2-install/include/include End of omitted list. /net/hp45/yannis/gcc.2.95.2-install/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cc1plus foo.ii -quiet -dumpbase foo.cc -O -W -Wall -Woverloaded-virtual -version -o foo.s GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.7) compiled by GNU C version 2.95.2 19991024 (release). foo.cc: In function `int main()': foo.cc:45: `int' is not a class, struct, or union type foo.cc:45: `int' is not a class, struct, or union type foo.cc:45: template argument 1 is invalid foo.cc:45: template argument 2 is invalid foo.cc:45: template argument 1 is invalid foo.cc:45: `Fred::operator ()<Plus, int, int>(...)' must be a nonstatic member function foo.cc: At top level: foo.cc: In instantiation of `Fred::operator ()<Plus, int, int>(...)': foo.cc:51: instantiated from here foo.cc:45: `int' is not a class, struct, or union type foo.cc:45: `int' is not a class, struct, or union type foo.cc:45: template argument 1 is invalid foo.cc:45: template argument 2 is invalid foo.cc:45: template argument 1 is invalid foo.cc:45: `Fred::operator ()<Plus, int, int>(...)' must be a nonstatic member function foo.cc: In function `{error} Fred::operator ()<Plus, int, int>(...)': foo.cc:45: return-type `{error}' is an incomplete type foo.cc:45: confused by earlier errors, bailing out ---------------------------------------------------------------------- -- -Brian McNamara (lorgon@cc.gatech.edu), your friendly CS 2340 TA >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 11:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/71: Re: C++ typedef redefinitions and templates Date: Sun, 05 Mar 2000 11:06:00 -0000 Message-id: <200003051835.TAA01180@loewis.home.cs.tu-berlin.de> References: <38A3DDD0.D750182C@menuett.rhein-main.de> X-SW-Source: 2000-q1/msg00068.html Content-length: 1743 >Number: 71 >Category: c++ >Synopsis: [not accepted] C++ typedef redefinitions and templates >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 11:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Jens Maurer <jmaurer@menuett.rhein-main.de> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <38A3DDD0.D750182C@menuett.rhein-main.de> Date: Fri, 11 Feb 2000 11:00:48 +0100 I may have found a bug in g++. Versions tested: gcc version 2.95.2 19991024 (release) gcc version 2.96 20000204 (experimental) In contrast to 2.95.2, the newer CVS checkout is happy with this code: struct A { typedef int T; typedef int T; }; However, involving templates in the typedef's fails even with the newer CVS checkout: template<class T> struct A { typedef int X; typedef T X; }; The error message is: double-typedef-template.cc:5: declaration of `typedef T A<T>::X' double-typedef-template.cc:4: conflicts with previous declaration `typedef int A<T>::X' This is in violation of ISO C++ section 7.1.3/2 [dcl.typedef]. In this case, it is not known until template instantiation time whether the code is legal or not. Preliminary analysis: The error message is generated by gcc/cp/decl.c:add_binding(). For typedef's involving template args, this is probably the wrong place for the check. Instead, gcc/cp/pt.c:tsubst() might need to check for duplicate non-identical typedef's after the template args substitution. Jens Maurer >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 11:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/72: Re: gcc-2.95.2, g++, Solaris 7 SPARC, aggressive type analysis in template-class's template-member-function Date: Sun, 05 Mar 2000 11:06:00 -0000 Message-id: <200003051833.TAA01140@loewis.home.cs.tu-berlin.de> References: <38A6171F.CBF08CA6@mail.utexas.edu> X-SW-Source: 2000-q1/msg00067.html Content-length: 3836 >Number: 72 >Category: c++ >Synopsis: [not accepted] aggressive type analysis in template-class's template-member-function >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 11:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Scott Page <scott_page@mail.utexas.edu> >Release: 2.95.2 >Organization: >Environment: >Description: // gcc-2.95.2 suspected bug: aggressive type analysis in // template-class template-member-function #include <iterator> #include <list> #include <sys/types.h> template< typename AElement > struct fu { template< typename AIterator > void bar( AIterator i ) { // OK typedef int xxx ; typedef int32_t xxx ; // OK typedef int xxx ; typedef typename std::list< int >::value_type xxx ; // OK typedef int xxx ; typedef typename std::iterator_traits< std::list< int >::iterator >::value_type xxx ; // fails (twice) typedef AElement xxx ; typedef typename std::iterator_traits< std::list< AElement >::iterator >::value_type xxx ; // fails (twice) typedef AElement xxx ; typedef typename std::iterator_traits< AIterator >::value_type xxx ; } } ; int main( int argc , char const * const argv[] ) { std::list< int > li ; fu< int > fi ; fi.bar( li.begin() ) ; } g++ -v -Wall typedefsAndTemplates.C --save-temps Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs gcc version 2.95.2 19991024 (release) /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -Wall -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) typedefsAndTemplates.C typedefsAndTemplates.ii GNU CPP version 2.95.2 19991024 (release) (sparc) #include "..." search starts here: #include <...> search starts here: /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../include/g++-3 /usr/local/include /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/../../../../sparc-sun-solaris2.7/include /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/cc1plus typedefsAndTemplates.ii -quiet -dumpbase typedefsAndTemplates.cc -Wall -version -o typedefsAndTemplates.s GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.7) compiled by GNU C version 2.95.2 19991024 (release). typedefsAndTemplates.C: In method `void fu<AElement>::bar(AIterator)': typedefsAndTemplates.C:27: conflicting types for `typedef AElement xxx' typedefsAndTemplates.C:24: previous declaration as `typedef int xxx' typedefsAndTemplates.C:28: conflicting types for `typedef typename iterator_traits<typename list<AElement,allocator<_Tp1> >::iterator>::value_type xxx' typedefsAndTemplates.C:27: previous declaration as `typedef AElement xxx' typedefsAndTemplates.C:31: conflicting types for `typedef AElement xxx' typedefsAndTemplates.C:28: previous declaration as `typedef typename iterator_traits<typename list<AElement,allocator<_Tp1> >::iterator>::value_type xxx' typedefsAndTemplates.C:32: conflicting types for `typedef typename iterator_traits<AIterator>::value_type xxx' typedefsAndTemplates.C:31: previous declaration as `typedef AElement xxx' Compilation exited abnormally with code 1 at Sat Feb 12 20:20:07 >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 12:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: other/74: Re: preprocessor bug... Date: Sun, 05 Mar 2000 12:26:00 -0000 Message-id: <200003051951.UAA01615@loewis.home.cs.tu-berlin.de> References: <Pine.LNX.4.05.10002161448550.15425-100000@bel-kwinth.fnal.gov> X-SW-Source: 2000-q1/msg00070.html Content-length: 2663 >Number: 74 >Category: other >Synopsis: preprocessor bug... >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 12:26:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Marc W. Mengel" <mengel@fnal.gov> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Wed, 16 Feb 2000 15:00:41 -0600 (EST) Original-Message-id: <Pine.LNX.4.05.10002161448550.15425-100000@bel-kwinth.fnal.gov> [There should be a Category: cpplib - MvL] On with gcc-2.95.2, sparc-sun-solaris-2.6, The following program: - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - #ifndef FROM_DOT #include <X11/Xmd.h> #else #include "./Xmd.h" #endif SIZEOF(nag) - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - with a symlink ./Xmd.h -> /usr/include/X11/Xmd.h Gives differing results with gcc -E bug.c versus gcc -E -DFROM_DOT bug.c to wit (according to diff): - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - 3,5c3 < < < # 1 "Xmd.h" 1 --- > # 1 "/usr/include/X11/Xmd.h" 1 3 105c103 < # 117 "Xmd.h" --- > # 117 "/usr/include/X11/Xmd.h" 3 119d116 < typedef signed char INT8; 121a119 > typedef char INT8; 143c141 < # 164 "Xmd.h" --- > # 164 "/usr/include/X11/Xmd.h" 3 172c170 < # 4 "bug.c" 2 --- > # 2 "bug.c" 2 176c174,176 < sz_nag --- > > > sz_ nag - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - Now, of course, the differing pathnames I expect, but the differing typedef and SIZEOF(nag) expansion seem completely wrong. For those keeping score, the definitions in question are (of course) in #if constructs: - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - #if __STDC__ || defined(sgi) || defined(AIXV3) typedef signed char INT8; #else typedef char INT8; #endif - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - #if ((__STDC__ || defined(__cplusplus) || defined(c_plusplus)) && !defined(UNIXCPP)) || defined(ANSICPP) #define _SIZEOF(x) sz_##x #define SIZEOF(x) _SIZEOF(x) #else #define SIZEOF(x) sz_/**/x #endif /* if ANSI C compiler else not */ - - - - - - - - - - - - - cut here - - - - - - - - - - - - - - - - - so it would appear that the definition of __STDC__ is on or off depending on the pathname through which the file is located??? >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 12:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/76: Re: g++ 2.95.2 bug report Date: Sun, 05 Mar 2000 12:36:00 -0000 Message-id: <200003052017.VAA01750@loewis.home.cs.tu-berlin.de> References: <51C9F3C392D0D111A15600A0C99E64A9015189BB@localhost> X-SW-Source: 2000-q1/msg00072.html Content-length: 3932 Note: There was a bad value `[bad' for the field `>Severity:'. It was set to the default value of `serious'. >Number: 76 >Category: c++ >Synopsis: g++ 2.95.2 bug report >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 12:36:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Jay Baus <baus@roguewave.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <51C9F3C392D0D111A15600A0C99E64A9015189BB@localhost> Date: Mon, 29 Nov 1999 14:40:37 -0700 Hello, The following is a bug report for the g++ 2.95.2 compiler. It appears that template functions incorrectly handle const char array arguments. Here's the example program: $ cat bug.cpp #include <stdio.h> template <class charT> void foo(const charT* b){ printf("\npointer address inside foo() -->%x\n",b); } int main(){ char a[]="char arrays -- ok."; char *b="char ptrs -- ok"; const char c[]="const char arrays -- addresses not equal"; printf("\n%s:\npointer address passed to foo() -->%x",a,a); foo(a); printf("\n%s\npointer address passed to foo() -->%x",b,b); foo(b); printf("\n%s\npointer address passed to foo() -->%x",c,c); foo(c); return 0; } The output on my machine is: $ ./bug char arrays -- ok.: pointer address passed to foo() -->bffffa14 pointer address inside foo() -->bffffa14 char ptrs -- ok pointer address passed to foo() -->8048933 pointer address inside foo() -->8048933 const char arrays -- addresses not equal pointer address passed to foo() -->bffff9e4 pointer address inside foo() -->8048960 Compilation details: $ g++ -v -c bug.cpp Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs gcc version 2.95.2 19991024 (release) /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c++ -v -D__GNUC__=2 -D__GNU G__=2 -D__GNUC_MINOR__=95 -D__cplusplus -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__E XCEPTIONS -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di686 -Dpentiu mpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__ bug.cpp /tmp/ccKPQffp.i i GNU CPP version 2.95.2 19991024 (release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../include/g++-3 /usr/local/include /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/../../../../i686-pc-linux-gnu/incl ude /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cc1plus /tmp/ccKPQffp.ii -quiet -dump base bug.cc -version -o /tmp/ccYxuoeF.s GNU C++ version 2.95.2 19991024 (release) (i686-pc-linux-gnu) compiled by GNU C version 2.95.2 19991024 (release). as -V -Qy -o bug.o /tmp/ccYxuoeF.s GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version 2.9.1.0.23 $ g++ -v bug.o -o bug Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs gcc version 2.95.2 19991024 (release) /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o bug /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i686- pc-linux-gnu/2.95.2/crtbegin.o -L/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2 bug.o -lstdc++ -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/crtend.o /usr/lib/crtn.o Thank You, Jay Baus ========================= Jay M. Baus, Software Engineer Rogue Wave Software, Inc. (303)545-3197 baus@roguewave.com ========================= >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 12:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/75: Re: Bug concerning using-declarations in gcc-2.95.1 Date: Sun, 05 Mar 2000 12:36:00 -0000 Message-id: <200003052016.VAA01738@loewis.home.cs.tu-berlin.de> References: <199910211508.RAA11263@mail.lasec.de> X-SW-Source: 2000-q1/msg00071.html Content-length: 2476 >Number: 75 >Category: c++ >Synopsis: [not accepted] using-declarations and redeclarations >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 12:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Gottfried Ganssauge <gotti@cs.tu-berlin.de> >Release: 2.95.2 >Organization: >Environment: >Description: Date: Thu, 21 Oct 1999 17:08:09 +0200 (CEST) Original-Message-Id: <199910211508.RAA11263@mail.lasec.de> Consider the following source code: extern int a(); struct x {}; using ::x; using ::a; Compiling it using gcc2.95.1 yields an error message: Reading specs from = /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/specs gcc version 2.95.1 19990816 (release) /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/cpp -lang-c++ -v -D__GNUC__=3D2 -D__GNUG__=3D2 -D__GNUC_MINOR__=3D95 -D__cplusplus -Di386 -Dunix -D__FreeBSD__=3D3 -D__i386__ -D__unix__ -D__FreeBSD__=3D3 -D__i386 -D__unix -Acpu(i386) -Amachine(i386) -Asystem(unix) -Asystem(FreeBSD) -D__EXCEPTIONS -D__ELF__ x.cpp /var/tmp/ccHYhMOv.ii GNU CPP version 2.95.1 19990816 (release) (i386 FreeBSD/ELF) #include "..." search starts here: #include <...> search starts here: /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/include/g++ /usr/local/include /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/../../../../i386-portbld-freebsd3.2/include /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/include /usr/include End of search list. The following default directories have been omitted from the search path: End of omitted list. /usr/local/lib/gcc-lib/i386-portbld-freebsd3.2/2.95.1/cc1plus /var/tmp/ccHYhMOv.ii -quiet -dumpbase x.cc -version -o /var/tmp/ccSj8BIS.s GNU C++ version 2.95.1 19990816 (release) (i386-portbld-freebsd3.2) compiled by GNU C version 2.95.1 19990816 (release). x.cpp:5: `a' is already declared in this scope The same source code is compiled without a hitch on Borland-C++, Visual-C++ and even on egcs-1.1.2 What is the fundamental difference between using a structure in the same namespace and using a function? Note that declaring `using ::x' compiles fine but declaring `using ::a` does not. This kind of using declaration quite commonly appears in Boris Fomitchev's STLport. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/78: Re: Problem with namespaces, templates, and friend functions. Date: Sun, 05 Mar 2000 13:36:00 -0000 Message-id: <200003052119.WAA02012@loewis.home.cs.tu-berlin.de> References: <vs901kq17h.fsf@iar.se> X-SW-Source: 2000-q1/msg00076.html Content-length: 2184 >Number: 78 >Category: c++ >Synopsis: [not accepted] Problem with namespaces, templates, and friend functions. >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 13:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Anders Lindgren <andersl@iar.se> >Release: 2.95.2 >Organization: >Environment: Host type: Sun. Gcc version: 2.95.2 Command line parameters: None (expcept the name of the program). >Description: Date: 20 Jan 2000 15:14:58 +0100 Original-Message-ID: <vs901kq17h.fsf@iar.se> Lines: 58 // // In the follwoing program GCC seems to forget the function // "Forgotten". In the function "foo" it can be called with objects // of type U1 and U2. But in "bar" it can only be called with "U2" // objects. // // It seems as GCC remembers only the prototype of the last usage of // the function "Forgotten" in the first function where it is used. (As // a compiler developer, I'd put my money on a faulty cache mechanism // in your function matching system.) // // Try the following: // Remove the namespace declaration. => // The program compiles with no errors. // Comment out function "foo". => Ditto. // Change U1 to U2 in "bar". => Ditto. // Swap order of the calls in in "foo". => Ditto. // Replace the friend form of "Forgotten" inside "Object" (Alt 1) // with the template function definition (Alt 2). => Ditto. // namespace MySpace { class Tag1 { }; class Tag2 { }; template<class Tag> class Object { public: // Alt 1: Broken: friend void Forgotten(Object const & m) { /* Do something */ } }; // Alt 2: This definition works: // template<class Tag> void Forgotten(Object<Tag> const & m) // { /* Do something */ } typedef Object<Tag1> U1; typedef Object<Tag2> U2; void foo() { Forgotten(U1()); Forgotten(U2()); } void bar() { Forgotten(U1()); } } >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/77: Re: Reporting an error in catching exceptions Date: Sun, 05 Mar 2000 13:36:00 -0000 Message-id: <200003052114.WAA01979@loewis.home.cs.tu-berlin.de> References: <387F8B53.6A8F3E33@cabm.rutgers.edu> X-SW-Source: 2000-q1/msg00073.html Content-length: 1506 >Number: 77 >Category: c++ >Synopsis: [bad code] Reporting an error in catching exceptions >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 13:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Hunter Moseley <hunter@cabm.rutgers.edu> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <387F8B53.6A8F3E33@cabm.rutgers.edu> Date: Fri, 14 Jan 2000 15:47:15 -0500 Hello, I am running egcs-200000110 and gcc-2.95.2 on RedHat Linux 6.1 on a dual pentium III system. Both versions is giving me the same error. The program is the following (test4.cc) : --------------------------------- #include <string> class A { string a; public : virtual ~A() {} }; class B { public : virtual ~B() {} }; class C : public A, public B { public : virtual ~C() { } }; int main() { try { throw C(); } catch(B& f) { } } -------------------------------- The command line options and results of running are: ------------------------ % /usr/local/egcs-20000110/bin/c++ -O2 -static -DLINUX test4.cc -o test4 % test4 Segmentation fault (core dumped) ------------------------ I am including the test4.ii.gz preprocessing file. take care, Hunter >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/79: Re: incorrect "no match" diagnostic Date: Sun, 05 Mar 2000 13:36:00 -0000 Message-id: <200003052112.WAA01928@loewis.home.cs.tu-berlin.de> References: <199912242124.PAA11541@fncrdg.fnal.gov> X-SW-Source: 2000-q1/msg00075.html Content-length: 2553 >Number: 79 >Category: c++ >Synopsis: [not accepted] incorrect "no match" diagnostic >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 13:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: wb@fncrdg.fnal.gov (Walter Brown) >Release: 2.95.2 >Organization: Fermi National Accelerator Laboratory >Environment: >Description: Original-Message-Id: <199912242124.PAA11541@fncrdg.fnal.gov> Date: Fri, 24 Dec 1999 15:24:37 -0600 (CST) Hello, Using gcc 2.95.2: g++ -pedantic test.cpp -o test.exe the attached program results in a diagnostic as commented inline. I believe this diagnostic is incorrect, and would appreciate any advice you might have to circumvent this problem. If the problem is known and a patch exists, I would be grateful for a pointer to same. Thank you, and best wishes of the season to one and all. - WEB >How-To-Repeat: template< int N > class C { public: enum { n = N }; C() { ; } }; // C<n> template< int n1, int n2 > inline C<n1+n2> operator * ( C<n1> c1, C<n2> c2 ) { return C<n1+n2>(); } // ---------------------------------------------------------------------- template< class T, T (*G)() > class S { public: inline operator T () const { return (*G)(); } inline T operator () () const { return (*G)(); } }; // S<T,g> template< class T, T (*G)() , class U, U (*H)() > inline C<int(T::n)+int(U::n)> operator * ( S<T,G> s1 , S<U,H> s2 ) { static_cast<void>( s1(), s2() ); return C<int(T::n)+int(U::n)>(); } // op*<>() // ---------------------------------------------------------------------- C<1> c1Gen() { static C<1> const c1; return c1; } S< C<1>, &c1Gen > s1; // ---------------------------------------------------------------------- C<2> c2Gen() { static C<2> const c2( C<1>() * C<1>() ); return c2; } S< C<2>, &c2Gen > s2; // ---------------------------------------------------------------------- C<3> c3Gen() { static C<3> const c3( C<1>() * C<2>() ); return c3; } S< C<3>, &c3Gen > s3; // ---------------------------------------------------------------------- int main() { C<1> c1; C<2> c2; c1 * c2; C<3> c3( s3 ); // GCC 2.95.2: why do you report that there is "no match" for // the following right-hand side operator *() ? c3 = s1 * s2; return 0; } // main() >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/81: Re: g++ Date: Sun, 05 Mar 2000 13:36:00 -0000 Message-id: <200003052108.WAA01870@loewis.home.cs.tu-berlin.de> References: <14414.11348.443031.434865@kaa.relex.ru> X-SW-Source: 2000-q1/msg00077.html Content-length: 17329 >Number: 81 >Category: c++ >Synopsis: [bad code] Comparing pointer-to-member variables >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 13:36:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: "Korotchenko A.A." <kaa@relex.ru> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <14414.11348.443031.434865@kaa.relex.ru> Date: Wed, 8 Dec 1999 13:00:52 +0300 (MSK) In "int main()" function pointer "pf" must be equal &B::g1 but in function "void test(B* b, XXX x1,XXX x2)" x1 not equal x2 ?! 1.log -- compiler output testcpp.cpp -- src testcpp.* -- tempopary files >How-To-Repeat: begin 664 1.tgz M'XL(`"TI3C@``^U]_7/;1I)H?I7^"L1)M*1,2O@D0=+RKJ4X?KERLKG-WJM4 MW;M"421(,:8(/H*4Y3C>O_VZ>[X'`XBRK5Q>/3&Q",ST]/1T]_3'S!`(3K]X M\(\7^_TD\;[PO*"?A/JW^/B>U_?#*`[C.(%KK]</_2^\Y.%)^^*+7;D=;SSO MBS?C<2/<7?7_CWZ"T^!D6<P?M@_?[\5QK?RC7A0+^4<`"47]7J_WA><_*%7\ M\_^Y_.=/GWK=&Z_;+<<W>7>;7Z]+KSOWNH6WS<OM9+T6WR?P[_`?^7BZ6,V] M<IU/2F^V*:Z]TUVY.5T6D_'R=+FX/)U/)EW\7D1IK[M;O5D5;U?=V2;/+\MI MOIR=AB>#Y"0\)02'`.S=Y)MR4:P\5N$%@\$@\,/8:VWR93XN\_;A1W:!M'>7 MX]6\.^%C_#;+7OWX'Q=9=A:*FU?ZS47VP_<__OT?4#1(J&RR7NY*_`=WV!M\ M[5:+6ZI[^?J[+*.K[Z#K\Y^_Y7<(QR\1EE\V04M8K_NB?%>"#%IXUU:WO`V6 M3-:[%C;"Z^OQY&JQRL4]=O/+Q<N?_OG]WW_\F838""V[-BZ`+DW@\GJQ.`0& M>1<__72WP#SJPN-$G\+0VX=?+5:3Y6Z:>T].3DZ>>&4^WDRN/)QZV]*[RC?Y M4($\`Y#G3I"/U(23$_4_[^04]+X;&0AYS6?II`;T$[LPFXN[EZNI5\P$OY:+ M<GMR^,^KW)L5RV7Q%F?K-)^-=\NM-UUL\LFVV"QR8"A,=^\RSU=><;W8;O,I MF\U;:,@QK<?;JZ'`+H`8^H^=D9.`)I-2*J_[?W>+?.MUI[OK]24HCU*^"6FP M4#9ECTY*IHDPI_?41`=%;6]27*\72QC1Y3N/\$EL^7Q2=@%E<-+K$4X_"@`G M%0<G`70DT`,CQF`:_K?7_?=W.H4VK>.RS*\OE_E&I_@DJ*>NX^U*%-SY=]^: M33Z:\Z`+('JP=-<>%/,I#X1/WZW&UPO$L7H#]#'LB\O\-I^<+J==@#TI"R!5 M\P<"YG2RV08P5OU^(>_O3>%F>YG/%RM`T'W]42@J[31Y=)?E=DIN8'D-_]#O M=)<3?O71!.>KJ35^()\DOIS:HGZ[V%Z1/.D>G)KW\VZ]+C8XJ?+KW7*\!>`2 M3)PG!73X1_C_X%3-Q@?KHS'^ZP51/]3B/[@.`C\)'N._/^+SE1=X3S2/_^20 M2CZSHSU=%.5VDX^O3ZZ>`'IPO(>UGZ_6F_'\>NPM5MM\,QM/<BI\"*(829>[ MV1Y4.<D"[<6J_!:*5MZ3BR?>^X>A%!HOBGVH_'R<:@YA3K-7V:18S19S3I47 M'WH&8=MWZQP"#Y7C`^/@+[2#BS3;>EDVWFXWB\O=-L^R5BO+KHLI7F79OW^? M9>UV>R1Q[%;E8KX"2TDX`,7N_CA,.A@90:\1Q_]JI(.3<5\<+CJBL!''S_O0 M<5\<+CIZ<2..;_>A8U\<AUF&\V:%3A*3#HYR64#<0W\`WQ(O1C60LG.CR8ZW ML=70A$;MA>GQ)MO6#V::W^C55'K7L+#=;%V437CGBVE3]6)5.*O+*P@6$(#Z M;(18833W4;07LUFEW:MLS2C6N"DJMIOIPFQB#P?NRGQK-:\"_68,2<AHN[AV M#U7JV]1![MO)U7C#>W19)-&IW:LT4)`T;?4*Q.<=8\W-.,,,J():-[O"0D+$ M"8TU\]AHMAL0\<3]=`RCOS>Z.CBO#L1S@W%>'.RE2@<'`,-M@63C@2F].W%D MTIP(=G_E18-:)H?$%9/0`TU!K2KO8+-;Y1*WD\8#H2'5Q@X=^\I+TS_<\XI1 M`VO\!PP[H)NJ"GWE)<D#]AGQ3BKSZEUY.@%)E/>?"[5J[AA;X/>:.F9LK\-R M9XC62^]$#E!I<C<)5>3)X(_6A.IXD7_Q@RO'G=QVUD#8OYN`!?K^[]FON^LU MS&+/T\J^^_[URQ$VA3'T_Z`Q8!PFO,U-L9@2(2)`$2/1:+P>;W"YYOVA03DO M/<Y6$"^-#BNC@IH2LIT1RUOP#XO^,HA81C#<T.\_['`_C(Q1$$WO!1&SY7A> MCL!U'`K:\!_:V6."AEQMBA''Z,!1GJ^FSG)<4[0KWFX6X'3J:QQ]L`I')\!. M)R8LE^"B"O@/5;C1PMI8%9?CR9O=6E0Y&B%")CF7T-E%.3IT"AY0+594QYB] M6.:K8B1N+Y=OT->-F"Z*0!"NX!O"-UZ.)-G1YF2W`7>TW%VO1H+@;+?:E?E4 MW1,H<.0_@_\:R:29/A^,2,JB.L/%XI'(KEV5=`<AP&*5=<1UL=NJFWRSR>0$ M$A.,83I\ST;*PT#/:QVCQK3AHL*]#IN4\*TU`,A1!04I2@T.\-KEMAD3RQT0 M49GG;VKP2/%T4'B\,8JQ=0Q)3>GNGL`^4,&D*-XL\FQ19+/=:D+KCF1F/%T` M'`CUY/"]0Z.P@B2L#>IF.[YDI>R>X:"AU77KZ;<CK@_&>HJ\95'C;@5"G2V+ MMS!(:W0FW!XPQ8T#E6)JY:,W!OAYOIT833.07Z47J%WO")!U.NEX=[>8Y<5L M+]0ST/!BXP:MD`$J-2&O`M/7W4)?SI)^:(9-4-ZU[%2@N]6=P)+T[>9=/7`3 MXV]FY62\FEEB8YK(3&9'2];8-''3<#-;;^!Z;U0Z#GWB$WO'TU55DZH376NN MM2Y!F^SFNJG0$.@LT6P&80$1@VVP\)@&0REX/0ZXK>+@0/H$J<@?`@/AQ\9@ M3EUR_8#D0[[2>^`%78I4/S2&XM+0/'V*IF:R')>EMV!8T-.R@D(4L%O9R:B: M'FNNDX'!S4BO%(QFM11WZ=52H5@]]\DU:UC9['K+@J8J!'.\&2Z[C[>Y%G9! M"1CU?#DM#]^S($L-"./#[49$B&+<$-!LF17GP<+;Q71[Q>X5#2)^8Q@I-J`H M8RD`.2D0#3"*K-+\=I*ON1>0/:TW^62!RWXL;.`3`C1K,WY7HH`^5*PT!.WA M`P3MAF9AX,YU!>;)T%OO+I>+B<Y;%M46Y9%7K//->%MLSEIXV^:!';9K,2LC MBJ&4X1D:V8#&825N'0`9)<5L5T#O*UQ8,6OJ%`UA\M7N&ITR$\O[PX-Y44PO M%UOOS/.]SN$!."9V%^#=;+Q8LML0;R_''#3VO`\:/B2#%G@0X6(E6D.H)EIB M9]@,+]=KN$SQ$G1V-4'H'MZMB@G02H!1R`HV^7HYGF!)C]I>,N0AM`:.XNUX M\XZ7&!2AD<NF"TBAO,M\#A9_M^E`S?2#R2D3%B_@FX%X"ME[KWRS6+\M@44T M+BA?YK,MW`*9WF8QO\+KF%E.,#CC)4+Z''2:3Q`2;KUB0H!X>97?$I"`@BGU M%C,#`D4`+%@7@)!:"+#=&O1MPN"@L0(L64.);K+(5]O%;#%AS1%PMKC-I[R= MQ+=:8.3.&Q,Z"+<+WL@G^X=P.F_?$^N!!IH+9S"^IS"PIS`BU)AE,=Y2!8A% M4?&4.D?I3W_=E1(`V?B4&/A4L([ZP7F/Z?D#Y*N5F6Z80K"$K3:/#]Y[FWR[ M0P>*]M'[4(64-S?C91O@Y3VF<V>L&?X]@_J1P(9UB$W3,FY/T9PZ>B<KR[O7 M(?GU*G\[:Q\>O.>WQ7(Z`\[R5O0%MP@D*4"0$<.GC`_^=75.%LES0LM;P)XQ M%H`"B$+H!0N)%H:$?3-J,ITE'%1T@Y9-N@8'3<IM.!O@'?2P)G*L?!9Z0NNC MHU#74-$RX=N(9W1XH.A<5W@!^?-,L<+%!K"9I6+#X0'GP^]GGL4$!+P;?T?5 M78_+-_MV!X/C5T?>OUC#W[T62NB(X;F3$N"-0<M]>C\Z8YW6=8)"H\##(6\6 MD%0`\8I//+S$>84=<VCV[9D\EG/O4`LXLNW5IGB;H:_;;?3I_T$#FBSS\:8E MPAGV%ZPD#3\3MSR\\O[*`8;L^W?F-X$9BQD(@=4=Z3%1NT*$&"YU#FR772,[ M<<@<#2@1EGP2;FIT5P=H]._?!0H&(PR'5#G3@(DZ,,0?M;!'&`@-ARQ$T1MA MMPVM6M2,">%WNN9QC4$FU-_5,Y>C:,09MIDR!M8TEIZ#1XK$]N,J-!_$7V%. M(D#;!_7AEZUN8)`J4'U9A\4F48G*0:46FNN*H;61:%:X`,1T7E6#XK.*>RNA MF9X<`R?AR\E'REJ$#[0;&`E.FV)S.^\I*-R0B,1$Q:(1F]M>2QE`!-?H&V\A M^B<3\VXUR?"D'RU*%F2!BE5[I,.Q264!XGRRRY1(>4MI14''QDL(>5HF9NSM MUJ@@[3CRUF^+S12)T8NU4L9/5H>I)6BSU8(2SD6E@?RH4(7E1=]#V,CYK"<U M'JN@X7Z0@1S`;(IM/MGFTR%7X>5BE:-RMC19EI=H4#M&A)5M"[*R([W=S6*S MW8';^A<BL*J0^0N@P41L(N48/QC[OFR"RU0@$U<C6EH6_]$??9F`K\Y#CKA9 MW%"B:^[>@/?<0`P\K:XMZ`:8+\,S?:)+,L"X2G/&"YBNZ,S6"="G0'G)>?(O M`Z*M\F[P@HO5G*3$%=X+=/,"@?1VW-);'VFM62UG(%]V4-VK;%EN`''-,1BQ M*'B::Y;RE9AJ35%;HY/)JO4EZZ.,+5KK@SUN*8AC,*YR">NXO;U:E-Y33TQ- M2V_Y/-14BU8-LS%&VFR0$M61=TM;,GK'?)-&-[+9;I7A:1Y]1GM4DF%;/B#: M=IJOMQMA&_ELL\)T#VRN?XLY)7@18RL*Q&)LL7$2&.*UAEA#:>R7&0WRCR4% MI:910OM=!N*[2*FTH!\5-+5@NVU&)[A^^3D82:AUS/6TR&U$BQ*GM].V%_7P M9)F[<B$%['6=79%&W:YW6]2^38L6#B>HE,>&A)\^!5,ST3N\%2FAS1P'$`5A M`$G?*N7S9,X'12K_G"U'.FV85!A89*/?J54]+%OYIS1$"E)UV%+"5/G.3&4[ M&M[YY>YZS1+'*B9-%UJ&,CP]6[6'+7UB88D^MK6&%S'J'/>>0B)LA^*7+:Y* M':DC;)#C,[]M.HTU!UU+T+5&NS$!SHR.SR"'-:;46;ZVZ9BW5/?<_'3XADD^ M5R$6A7L6F]K.G8(6FE9@.F]H3"(,("]'AH6"HOG(L!0(--?G#W@ZON]LZ*@H ME/$;+:"N."T.=19T"]R>UL,K/J5E&QW17:;!@2]_Q0S<7?CJ#:6.[?QNZA2/ MAR:U)B?/+;(JQQ4<0[';U'2NAJ+...A=_V@/HH',_$<'G39:E/<5:U^1N"&O M+W')N]**'[,PFO$RLP5-E8J:ZY-TMRH-C")(H.4J,,BX8EZCD*EODE9"XC"Y M@G`8=Z5Y0]:3F1(QNXAHN+TP(T:91\R6N_(*`Y>6(WN1E1B(H).:Y9M\JNB7 M`;CJ5@R;UU`@RW??B21<Y<<LUJL@P5JYZ5_M@ZKKJ];(>\IYJ1<DPX!1VQ_@ M.X#GJY;:^X7,H*,#K*Q!&&UQ^[:U?RL,W?EF;4ON%'946L$]%\CQC!*/Q8HM M3!2[;2.^M<R9L`3^*43`80<J33VHQ>ZR0I97:(1YTR;2*N&2MB=-%KZ#R``% M-M?R6ZO[>XZBKE=LS'LE'#6=EI\F"`O1O250%2;+2G-R7=*'(Q((\1P3"1<. M7!-L6M!B`"T]C92O0R+1Y)@)G(??'97`&6DU-(*Y@5-I(@)$K6JWPI,P>@*Y M6RFCX#!?(89*`5A]8V7/M"5.JQ>R*,MHRBVI;$GN'/<[*/A8M#VUFAZ"R<R7 M8-FU->?0M-<&$0VH&"U5=*)<#4O)@&V,(2KNTG[_W>!46XS8'QT>$&)^;PC2 M<+5$,U6*,$=#CTNG$&WQULP*ZV,U*O10:'S#EAJ-"26===>9*I)%!Y_U=KS8 M6HL'9E3;K4F^-)-YMR%6R+G5!H!5VX$*#^4PE86K6B3B^(XP%@CJ1-=DYBW[ M0Y`,GT$<\7B.6]?:^AHM@X/C9B<IC;4856HMQV$/J*XB(]C-])-"WHK'XS"; M%]<=$5/@',ZHR)K<$^X@+:9@Q:3C\>!<BS<P<9G84B8[4(5EYD&!MEH>8?2\ M=O>Y$=4_ARC`58=Z=W1D'/]3<*CH%#M@`D;?0^^X91Z%.6Z[$4.G>"Q)IQ8/ M3Q.Y?+7:HJ^!)C9T24X;=\;%D+'`FM9&8OBT(_ADIEK;HBPG<F8;Q#PS:&E; M^/0QW>!Y.6ZY:58=SZZWOG&RS1NCCRG*8Z[4=-Y#UQ$7!N_DY$2#N9D5F^L[ MN]$:..$Y4KD%5XVVRG<E#537?+T:_M2':MB8K(]N8/3V]?$5M$3GZ8P3G'ZY MS.A`KLLY$S*(J?D.SH@?BJ;U<%Q(9HN7>#;26#55"ZGOJ^N/:G6[+K3G1X[X MR2!L+H)FWI,@5=R2E*;.0I'X&[$)%]J_W.B.O?%V.YY<.=$>$TV:5$`=\)3Z M^#HW3V2R,&[OIBS4X@>A*`[CUA!&CUK>Z\4.^>@IQ]ZIBS+P9484.0]KY*L" M#8D1_,P<>XL*R5]ENR&W)&+K78R_5L_,(/#A$Y$]8M>/R;D^+M<RHV,U6SSO MT--EM6&/M=)]E%@%_O),+&>;:[/XNP=[@4-']%=/+,@/^0)Z=9'DF.1GH^%K M0%:@]_FLX'U-V2?8SAI#UV@HA14T=NR8YC5OVV7;@IRV.FY17H(8J*TXQ#@T M]^FU#>@S#+H/^+[O67G)#F8!$H99G!<!,'9FZNPOWE^`R@-^?H5-#G8,D$V0 M:3ZAP0"$/$!TUH/6[/2JQPW`H=KLA"':.YZN$?+]2ZCC114T;..3?CNAJ1#[ M*T\90!"8;_/__"\(*AA%N&-W^`']T%=>],"/`&&_(FP^?FUM[&G[L$=>ZSC+ MKL>KQ;K-C]6J:@;/0!8"AA=J<(4.5W"X0L')7PH(N+>E1`,20&YQ"(F)EL4D M#LR&7%`0JBWW`2HK0.9Q=-!E,8=X;`"<.'QO)X?3(BO*V6TU(N!HM+UX4=*@ M@5,K*BS6B%J$RE^RDSS5/)8'KX"@3=.J^YSQ"JV!W/4)1A_TR)=1C3DS3DRV ME2!VG,21'7XZE4TX.C71;A,P?M3(S?$)0;5'9BEX(FWWBUN"[G.6'$W4X8]C MC/+%(3$3A6T;O6.W?W(VL!(6NZ6]R,6:ZH:XS?+,#_5=/'@';%/]<V&FY32U MF&8S3Z]V>C#E[[;Y<KFN2)RE'WK0"`7CK9;52-";&E@KN=G,2['4IF8OM[C/ MGIEK9RX`4P?T;+QUS)++9\\\0M.>5-1:P_-YL!B*W$"U6W]IX<S5KR[VN[M_ M$*1,3]<-8V)[LGM(ZBY`6JO9"Y.$)%#SH3>UF`WT=[=Q/#1GU:2Q[%0T+FZ) M8[FJCA:DJK/6U5LC&IV5#%\MPLNB6'J7FD+;Y%RJ<X.N]M,"/*###FL@]`,% M8SE/[X,A:+/E/-O\V[*1O>V#JPZ3B$X\_)FL,96I@$^")I7GH9)`8#<TW%J# M29%1`0O2/\B`9+%/0&(M5>B_?IQ/BMUJJ^U09!A'9V_+:M"R$$'+4#3S6KZ* M8$1U301C!S!BE)!/BEQUNY'9JKY^"M'Z7_[/ZB^NAH;9NQN#9K^P->NW3:VH M!5^;-0>D2#Q26R^U1!P9)E_V<M2>./%J:\CW'SXU_B06$(;[L,$>Z3V&VOJ# M1$5C^J-X(M<`P*$AK"/>-&$M1UUM9,=KU$HG9U5#Q4/AY>[ZLR`D-1#VX8CL MPSZ*7G(68W!;"X^K29@1L5\8Y5/Y"Q`C.WHO?J^A_\Y`IDQ`+T^:Z(=UHT.> M^]!RQ!%D/@PQVK'??Q<GXKO/M6V[9]1WVTZU!*(O"0%B4NF4MGJATC?=#!]X MGKYU$4`)/\!MC-S7=SD_PX#KQN"F_!,(#SXSX<A?EVS.2".J@ZHACZU^J4Q8 M_]4,4":VA;[D0Y`<$-M-,OW&=>HK]0L'2&OY!MY(YLN$"8'$<K8://M%C0'+ MUQ1D`>]X<B7+/FC$XJ,G1/JEN7[FPHU=1!X,V+-6[9AZJ[-`GE.@&6@OON.* MK]>RYS#FAO-*,NFLWB.9G%?P\\U5GN-=R6G/?]V$.X7ZDH(X3*%M%ZK?D(D5 MRK;Z::$>GLD^Z>1%J[$K<3CC4[IA>W]->;($O:F!=>?)<@5%MA<!Y_/GW(R/ M:NOMJ,,190.4\`951Z`!Z8@^!4]-A%9'-`O4:OJB&&8ODC\%#<R7HP9RZ==` M[HRT#MP3;?9K4DU(97_.86,BV42QGDSN!:>3VP@HNZX%Q>RT$8!RRZ;.6$IX MET2\N\&\^R=]+C1B"7V_Y-,I,#UMU')&M8HMDD56T!'W'(`22",%K"Y<RZ*[ M\SY%`9Z6X'W2K^Z@#.1<H0=LJ^K=W<9XR(?:0=@'O`YB<U6RX+9BBL[PV5ZX MEY]-QN7VF>CON=?"-B0*<XQ%PQB+FC%6V^A$%_88F\'K(/8>8U$S1O'X(K<@ M)_BX.T\'<G`"@@UP39-\LS'QN4"7Q1S=E6-K")]B5;,YI+GJ!JC"P'37YA!' M5=D>*MEO[;X7Q"_H1Y@0A]%#9[0=PB-\Y@AMG.'Q1H@.3^AW^V+;DA^9@"NV ML7*5W_(]_XD6_RY0##I.`*O!B4_^^#B<4%N#$VKN@9.V-0\K[SKP0I0HY]L+ M>C;-UKLE*\$+S[55+0'P#L(E448+DO,`_2A_N!8:Z/9[5*QGSYZ<#X?SX,FS M9[CI-Y*_P%[2[\)4)Q>JCW/>QV_0QQVX+W3<#N1RJQ/QM("2XU]^^:5M8P,X M2C*0+:US^F$1@'FW08>^PC9;P6M==I\?WP;MEM^!_YCC866A+&.)P"%E$JW; MX,LS;'W@>9S>5Q"="G(1"%,3_'ZOP9R/%<@!1_;AD+:W\7=<^)-'I.?"*TO\ M?2C0N[XHKO&)'4>L!(E>X^^VCXCU4$(#(ZC.>M9AQ;35_3_]YHT_QT>]_Z5\ MN#X:W_^2Q$GB:^]_B:#:[P?1X_M?_HC/P0F>03HP7P%S`CRY+/D1D*OB.C^% MT9^^+39O3J_+.9X"N=S--SF^ON@T.'W2`0&C">B<O-Z"L_)E>QUI%0B_#OG= M\/"`-3IX,I],PDR\GNOD2<?S;R/P23[[7^(&BS#<@ND)VF<;^AKY[!E5[`-W M05]^1M!]F%+W"@.F1X0B9"A"0#$*0C<P>P("[S/ZZ#[U](10Q1HJWT`5W8&* M**K@2SX-GS',GL(5^*[/R.^[/G>@K]#<KZ,YV!\]VV$4&%.&,6V/NE'8[Z4C M_-O4L$+3@&$8H$[TDB1*W(U5%LZ4T>=#`7?8!?!:=3+6`5A3H<C(AE&8N#ND M#)+!AY)K,31P`;,TD4$KE4UKH+7,DC51JAF$-6UPFB[S6\FU`-2O3"'Z7`ZI M)0!'X0ARR#F_CT(L:,2E#5$H8*]^C**53KC0IW[]8$6SRJ"YYL!W_:@QH&+0 MH"5_*U,0=<\)B)$5LS"@%^S+!9:)5Y8PV(^W:%EVL[U<XH'2#(,_A@[TY!B_ M00-FA-;5\@$/^X'N^0_<F\S[_YCNQ"/M'Z:K>[S^PT&`?+\6"#]&Y\BLD9!Y M$)FP.PTX9,!*08*X@AC?=D7`$0&G"C:I(I;`,0$/%'"O@AA?7T6P":-"P?:K MB"5PCX!C!9Q6$.,+9`BV3[`]!3NH(I;`*0'W)7!H\9C>,D60`PMM&%IH%6C@ MVU@M:?!W4C%@)KM$`D<68GH_%0,-+39$%E[VU&$&&UGT1I:0Z?54##2VT28V M=PL!FMB@EH392ZL8;,_2ALB2,']]%0/NV\"6A.EIRPPTM4=F"7BM1C:PE"RV MQ"O?&\0FAF^#6SP3+[EBT('%BSBQH7\3O`AMR<46S>P-6`R622Z2L(EO*[`8 M7VA++@E,4.5O`-B><8FE:*5.<,\"[EGR8._.8K!]&]8:'-\/8L`H/?@:<&\E M&_4KYK7R[J<Z.USS`BV7U=0L18];3<U2^(8VZY:BQZUF7P.6ZKSR@EYH]:1K M5B+LLQ*_+B?V@BJ""VTX7:6D>!)NE6OD;@49E3"@0JZ+_MK7$=E<=37&I55I MXB(^>BTH"M+(@F:_3A_^$Z"!!V40TKMMAG`;H:)@*8LQZ<TV6!ZS<E#JVU(\ M;6O(XTY\8AH/1'LQ%63C<HBM0*V_^@J^066/".MH^(^+P%<DC,(7)R.-(FR4 M\D:1$QHJ!AH`(7!';=HXM]2Y\CJI!4>C(2B,M/L]]NL3/=C6?P4Z9#-*C%[[ MM:BHX6S0GP0CJ@8]4:5^K"WJD#RC4NLLZ/EFG=9=,)"4B.=0B:HPC/4JK5&8 M2$KDPUED72H)T9Y'H\;M&RTUI%'"*.$/7V$:!=Z%$4$/8F/:!'.2=<]^@<=9 M'<>L7_[B'%&:LO[8(_F&S"G!)`R!SR/M53E#<FF=I`^VIC?B[\L9DMGK),"B M="0?4X1$8-PP%BD!_,<`>[Z/@$*#,5X@9<-HX(@4!+4R%5HC%9A4B%I$O$5< MA<3J6*LVM1<E8NJE\^4N;)*CH@8]5"_JM,?F)SKV&7,H3&])5P@BY1`#!<$4 M&$]D(`3Z8YK[`8.`@7!%IE^1$4C(0636(_19\`M]Y%>,O@[>)HQKXE:0R6_[ M6BV9K-$0,659]'7F_^,"_Q*+X)MA3TWL/>.KKV,Q,6#UH+:MT<B221JZ98)Z MRTQ&Y*,H?)]*2$/0*?OIB#T#D>9`P/VOCPI&.L[04&6H5<8LM=<$/N0T]_HA MTJ18'0E%BV+&QLAG%C.QR)0ZJI-.&!*!@<NE"0-6]Q5\17D'09./DD>`0'M# M<E$TBV4XTJ_`HE-!V)#!J@"MGU9@R5@@<,3"'15DI&8\(A[V2L"QE0J8HA8O MT2#0Q$[B#)<J7NQ`H,#*G/\P<NAWV!FO8=#A)]V&88>=#AK&'<F[P$@!Y&L= M"!VP/`>C&72*'3;&7N+.>+T>IAUZC\,0[*AXA<,0)K1\>\,0YNXEMH0NV!L; MZ%)U:D3GXE@6]0FS++_,YT`^&%?H&@U\J+<T(DZC*:8`H9;`AKVD,71AYRF@ M:4!*$71H,@0=,C!!AS0[8&$';D*Z<R9^G(*P]`A+GV%)&98!PX(&']`PE5&H MS"BTT`AB%`6<I(#3%'"B`J*JL-&1)L^7Q>72R]C3E^N'_P(MB$]&LXQOC7B# MS7*?+"C,.9]LYQ$#ICGZ@N;?"P;4%T`IMR4Z$-X/%(`]<_7QGS."F$GK?8F# M]SL<W]<WE^QJR/!T_-$[8_WQZYL9:XNETN2A3XW5>-#:$25HOHX8/)%Z3E2= M,Z!8`"4,"P$M!!06]!0$U%#;><`:"V:`JX.JQ1(JC\,1QS(:_>L;?JER"^)` M3O;VX&133,?;\>')ZPN^?[)9K.8'?--9<NJ"<PH87H:QXA0B9IP2C$!_,/K- MX)3BAI!+['-NI(P;%S2B"P**`P'$/04!+0045D0*PN)&'#=SPUR5>GT1Z&.^ M,,?\RR^_L-T5OB[1PV7I+*,G6PUIW8I6H4:8]TWS6UX4L'`L6\]66;%AT"&1 M!H+:Q51!MUQW07YB#BA8@7IDKW6S1:_7%Z%.-VV*8VED2'",A;0_=G`R7N+Q MD]C85,NR[WX*SG_Z(3C';^!5=OG/8/B=R*;04N#Z5BVH6LH>KIGDGU#<3JU2 M67L;4'5L5`>AJ@\=]:&T*O7='YS@^O1!/43G;R*L.*P?+_#MNW/\8E:KQU?U M3E[_$'0;A@[5P.SUKKQ:>M_DEVMD_W??XQ2Z+FZPJ%QW5#G"ECL8S=<0QF,= M*PXU%-,%*XNTLI*7Q7I7MZPL<9$<-I,<XFC/ST.S:8C;J3]$S4TC-K+R[=(+ MXA:.K-TA8@ZP&2.,%_RZ]$Y>A[V^:M"3#<:WG$&I+)I"T3(?+SV_10@P7?HF MG]Q*3DYN.UW>)2_K*@H0;CR=+KT6(B=TU>:L7^J$FHYO1<<$TQ*M$.K7ZS61 MGX)^K4,^;SJ=_B&-2<C7'!+!2QE][;NO!#="8^B<RNFM/IC4&)\0_82+O@== M3<;+I7?,2*8F7X-I8)JEBS9`T<;-HHV5:$-%&^B>%&VYX`5<M`/5(-Y?M(#E M3R':ON\2[4"(UAP2P>\KVM#_!-'N*](019HTBS1A@_G-%"F8F(/)]?JM]\UT MT0DDWW]=Y<26D-=^W0TZWR#LKZP\<NH\@U7,(@:S!H%B=>1@=3]RSR+$6-&H M*LK0A=(V:1$RJ=?,))Q&C,_=E/%92!3/CD&S?_3%^>$:.'3$\@9/GW$A9MD2 MLGK1^J>+B2U0H1ICH<!"#\:W;A2*EJQ"E40J.!2[.&2YN+"''.HW<ZC_.3@4 M_7DX1,PA'_C25AARGVDS.](A60K4&V9P-%VE,1=K[J'%)=I,?HD3"EK=Y/0S M&8PZ7E+P,<M9#`HY?5,H0X!-Y/&D:\"2+G+S=X/C>BD'?]D<.Y032-3]H8S: M>'R(35E50^MJ^(FG,"G2#$2@"7$N%HJHCZY%@(<W6BQ'C2ELLX08D6D<=!DB MN')$:/V:""V5$5HBE06*!ZX>`E]V$?@LI(HL.+(_0:#@@MJI%#BTR5)X%D/Z M0ZGYP<6BR4=$,74?JNY#E\Y*STDAB>4YR6]U0^ZN3/0)H8\4>F[1P7?XG6[4 MTSPZ%$50%)M%*12%+LQDE8)88<;@Y+;8@,]"2T"N<87#IN-4?`S%!ODPZ.%: MHXQ#J)=O[&!A*GUK5T3B*@*WK`R+1R)'\"J)[YBMW!C"M%FN@9!KPPQB-$<R M>3A_&3'&\.(#$9&J?F)HHIF)X4/40R;!BH4)FH4)EH6@N4AE')U;42MI` MBM1:&,P!4#:U9XFGIX<R3Q3'!H`["F0VE(F@6/<"_KML6Z3U;IHQJ95DEH)Z MBQ68`\BR[2(X'[Y""@;Z5DF0C,1B*)Z>8$M>!R>3XOKZ@#7"K#RN+JEH9N_U M!>KQ"7_E,K1Y<7AR^6Z;>_ZMWWC5HVP_T?/ZX/R)UM=\M3O!HP[%:I*?;$\` M^0P(>C*^?=+YVWI3S/'UAPX#S.#(!"=\+28)<($/+6ZV6,V*H5@!\#L,&+"\ MS<=O#N0=,\Z\1V6>.6HRT+999)K8ZW(<=.,PTF2NG'ET),UTJEEILA(4/7Y- MU"Z0/A[6IJFTFM#GB[K``LVPBEEB_2:1-QPUZS-1YGBSW2XR^K64(^)(4S$8 MWMZ<K&G?Q:*^SJ*^:[JF_>ITC=ATC=1TY=*A4H62]#^LGQJA!-4GQX68''43 MX6*?B=`S)\+YO29"WY@(%W=-A(L])\*%F`A"YV.F\Q>&SE^8.G]AZ_P%T_G8 MJ?-IE^.@&Y?.]^ITON_6^=36^0NI\P-?U_GS_72^I]_T39V_X'T.]M3Y@6_J M_(6E\P,7BP8ZBP9.G1]4=3YF.A];.G]!.A\KE*384;W.1Q)4U_D7I/-)J#N$ M_AW^X$4G=<T"X&!JJ.^+N]3WQ9[J^\)27Z!(&#M-?5^8ZOO"5M\73'T3E_J& M?I?CH!N'^H9U2Y]AX%3?,+35]X52W[`AG4Q-S7S!T4669N[*?.-2S-!4S!>F M8@X"U^`#??"!2S$'054Q$Z:8B:68+T@Q$X62M"^N5\Q8@M8K"^0#^^@*@)&J MQ*%AZ3";D!L#5XN2K<>':CT^UI;S<;<CFUQMY@05Z$!!J!2.,A2I;TB?KFY( M"&E;SY4WA>A_B"B\=BE;7*=LB5IHU].X4(\RQ*IZV'<LJX?26Z?&4BA;KU)A M/\+KR^^4<8611CAJ9'5MG"UG]7GBA7V4"R.W("M-'97XVA"5G[G@.!2A;.@N MK28]:CP*KYV9A)JYQ^E974Q)ZSM-@[I)[*NU66??LLOS:I*+>(>N]F).WVQ! M`%]#R).RE)::Z*YU8>5*/9<"QIH<R<$`W/U6?2QCT&/&H*<;`YP45-AU3,&- MF(*]F*E7SS$#-WP&"IA(F).DWIPDLK=ZUW.U6[W)@C";!P2[6.[EB"JMV`K/ MP(RJ*E":DW+529=5)<IP8-7>=:5'D96TV`UB5^B1_7W#0%=[(9AN,^5"Z^JX M.CW1-//)^*W.2\5!`<%BCDB/.:(1.US`8P[:OE9"4%R2G?RMN/P52-&&)JN" MWJ'6EXC&NV2]16#.HEUQYQKY;_FF.(@;G=)>\0N/7L)4J$FO0]:FXI`(@OF: M7B?5/(T>V%AAC0AJ^DXW0U.!>?7$X66BNI`FHH7;,/6KKD*W+`-7GSW59X\9 M%D=,VV?6(C6L!0L<4M&>)G.O?IZ+CAKD<[Y?T'#.@@9:MU%+`FB=*S+2SP#X M^P0-OADTG!M!P[D5-)SSH"%U2A/G*!&%URYQUBTJ1)$[:(AB1]`0)8Z@(>I] M7-!`&^]AJA'>Y%"C_:.!M"'X2..::*`Q%HCZ=\0"J8S)N!=F+E@0E-2[X#1T MB7.@<67`YIMS$7MO%YRR234P)M4Y<\&R,]L%DT(S]^KOX8)]Y8+[]5-3:FK= MW+R'WZUUME%'<W--P7VDC&G5[[J<K>9A<39:6R0!B2_RN[J7_2%RY8Q16C<C M!^[S,K&.11R8B0/'-(U#QS2-H^HTO;RM3E,U==7:_W3A&F5@C3)@NT'QY]@W M58LSM&_*1A`/_V>WF`'I)6;LWXR7ZJA,0AL2L5,/0HM#(=M#33[7'NJ`[Z'Z M:EJ;H5M@:&)#B!WAW*WN-,1V<W.[P:AFTSNMG_EIMR9XO#-RO"-LE#&C"!#] MA@"Q+CK40D,5%_I&5'@N[F@<Y_N%@A)V3W-V7C5G@X[JL"GJ&%C&[+QBS,X= MQNQ<&K/`-[68C@5$45?K'>\=QBQ.:HQ9W*LQ9GV7,4M=QFS@,&:)(_K\2&/& M!AE;@V0')7`]\--MF>^P94GP9[1E,=FRQ*4%B<6@A)FR^+,=!_&Y+0LL6W8N M;5G0K9D&9JPR<)NRQ&YMFC)S?&2O!O6F;-`U)A@[9BQAQ7-Z7N=4P[Z&AYJ- MR*^RV0;?K6?9-=2H%S^\S,Y?OOK^QRQ#5L2X!W1P\OKUQ?<O\2S*S_BM*G"; MZ."$7P;JTEW:GZCK5%UJI;'S,DU-=&I+ZZ4@I\RW@LH.+^YR:O51?/<M&P5^ MZ\.C@JXU?JT>K)-^1\A9F4:MJ,;#R'9][AQYFJCKL!89=H8X%<!472:US2+6 M3",B[:OK7FV[F+6+M'8:<+^V7<+:Z7*+G*.VVO58.YT5&K<"WQ2XD!P7.-YV M>'&7R]$2>,0%'MD"CQH%'AH"#[NBS#V(OEW_*0)/&4?Z]Q1XX+-V:0,G:UIR M%=-!]*9A50B1*82("R'B0H@L(21<"(DMA*11")$AA*@KRFJ&$=H`GS3MQ`0* M[RL'/A."J$$0)C<3DYL)YV;"N9E8W.QS;O9M;O8;N1D;W(R[HJQF&#T;X).X MV>=,Z=V7FP/>L+\W-_LF-_N<FWW.S;[%S0'GYL#FYJ"1FXG!S:0KRMS#"'T; MX%.X&?()&][7*81<J<-@;VX.3&X..#<'G)L#V[]*!UOUL,TNMF<PE&E?O9L* M8QO@DQC*YVP8WY>A7*]##60_?QER,Q]J(/MYS)!/B;#)TEL^TW::TFM*MUD) ME(3C#"J>,VAVG7U#D,PUUO,A\FV`3Q%DQ&=&5#\S+,Y8GBP0KBP0OBRPG5D@ MO%E0<6=!LS]+#<ZD75%6,Y;0!O@DSO"I']W7GT5\;D3W#@DC'MM%^N382\4C M/JTBK9^[5-QRHH'PHH%PHX'M1P/A2(.*)PV:7>G`$.2@*\IJ1I/:`)\D2#[] MH_2>@HS%W-`(V3,G"'EP']Q7!6*N=7%X7Q6(>2(2[Q]&!9;G#X3K#X3O#VSG M'PCO'U3<?]#L_ZE_+27D.5]]E!TG%8A/48.83ZXXN:\:<,<3]^ZM!ESSXO2^ M:I#PW"0>W%<-$JZT24UNXE(#*V0)1,P2B*`E0#(6TWRU/7CRZN)BZ+5>_?@? M;8\]SM$+!H-!X(>QU]KDRWQ<YNTG?]JGC0>GU^,W.3XZY0'[:'S^-]R%@7C^ M=]B/Z/G?<3]X?/[W'_&Y^.[UBU<_>V=>]\;K=O$I6=UM?KTNO>Z<?JWE#3WO MZ];?S_^M?7@P?_H4KEF+MM<M//Y\;T][SO>?5M$?/\Z/>OX__'NH/IKG?^!' M\OG_?ISTH20(??]Q_O\1GZ_XLQR]9^J1S<\?7XKR)WXIRNGI^++8;/D+"!_? MCO+X>?P\?AX_CY_'S^/G\?/X>?P\?AX_CY_'S^/G\?/X>?P\?AX_CY_'S^/G /\?/XT3__#?E7=H0`\``` ` end >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 13:36:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/80: Re: g++ enum bug Date: Sun, 05 Mar 2000 13:36:00 -0000 Message-id: <200003052115.WAA02006@loewis.home.cs.tu-berlin.de> References: <3882F04F.44C58C89@or.uni-bonn.de> X-SW-Source: 2000-q1/msg00074.html Content-length: 2989 >Number: 80 >Category: c++ >Synopsis: g++ enum bug >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 13:36:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Karsten Muuss <muuss@or.uni-bonn.de> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-ID: <3882F04F.44C58C89@or.uni-bonn.de> Date: Mon, 17 Jan 2000 11:34:55 +0100 Hello, I run into some very essential problem with g++: The g++ Compiler does not support the attribute (packed) on enum declarations. The following line of code compiles with gcc but not with g++: enum numbers { zero, one, two, three } __attribute__ ((packed)) ; The documentation says: packed This attribute, attached to an enum, struct, or union type definition, specified that the minimum required memory be used to represent the type. Specifying this attribute for struct and union types is equivalent to specifying the packed attribute on each of the structure or union members. Specifying the `-fshort-enums' flag on the line is equivalent to specifying the packed attribute on all enum definitions. You may only specify this attribute after a closing curly brace on an enum definition, not in a typedef declaration, unless that declaration also contains the definition of the enum. The command "g++ -v --save-temps enum.C" returns: Reading specs from /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/specs gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release) /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -Di486 -D__i486 -D__i486__ enum.C enum.ii GNU CPP version egcs-2.91.66 19990314 (egcs-1.1.2 release) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/include/g++ /usr/lib/g++-include /usr/local/include /usr/i486-linux/include /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/include /usr/include End of search list. /usr/lib/gcc-lib/i486-linux/egcs-2.91.66/cc1plus enum.ii -quiet -dumpbase enum.cc -version -o enum.s GNU C++ version egcs-2.91.66 19990314 (egcs-1.1.2 release) (i486-linux) compiled by GNU C version egcs-2.91.66 19990314 (egcs-1.1.2 release). enum.C:4: semicolon missing after declaration of `numbers' The file enum.ii (6 lines): # 1 "enum.C" enum numbers { zero, one, two, three } __attribute__ ((packed)) ; -- end of file -- I found nothing about this under "well known bugs" and I hope you can fix this. Thanks, Karsten Muuss >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Sun Mar 05 14:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/82: Re: g++ 2.95.2 fails to reject an ambiguous overload Date: Sun, 05 Mar 2000 14:06:00 -0000 Message-id: <200003052156.WAA02306@loewis.home.cs.tu-berlin.de> References: <NPDGKFLMJGIAGBAA@my-deja.com> X-SW-Source: 2000-q1/msg00078.html Content-length: 921 >Number: 82 >Category: c++ >Synopsis: g++ fails to reject an ambiguous overload >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Sun Mar 05 14:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: Martin Sebor <sebor@my-Deja.com> >Release: 2.95.2 >Organization: My Deja Email ( http://www.my-deja.com:80 ) >Environment: >Description: Date: Sat, 22 Jan 2000 14:51:36 -0800 Original-Message-ID: <NPDGKFLMJGIAGBAA@my-deja.com> the program below compiles with g++ 2.95.2 despite the ambiguity between #1 and #2 (see 14.5.5.2, p5). Thanks Martin template <class T> void foo (T) { } template <class T> void foo (T&) { } int main () { bool b = false; foo (b); } >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Mon Mar 06 01:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c/83: Re: g++ 2.95.2 warning: ANSI C does not support the `L' length modifier Date: Mon, 06 Mar 2000 01:06:00 -0000 Message-id: <200003060853.JAA00856@loewis.home.cs.tu-berlin.de> References: <MCNNDAGKIGKEDCAA@my-deja.com> X-SW-Source: 2000-q1/msg00080.html Content-length: 1187 >Number: 83 >Category: c >Synopsis: ANSI C does not support the `L' length modifier >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Mar 06 01:06:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: " " <sebor@my-deja.com> >Release: 2.95.2 >Organization: My Deja Email ( http://www.my-deja.com:80 ) >Environment: >Description: Date: Sun, 05 Mar 2000 19:27:19 -0800 Original-Message-ID: <MCNNDAGKIGKEDCAA@my-deja.com> Hi, the compiler warns (with the --pedantic flag on) about the `L' modifier in the code below. Since the modifier is specified by ANSI C99 (see 7.19.6.1, p7) the warning should now be disabled. #include <stdio.h> int main () { printf ("%Lg\n", 0.0L); } $ g++ -c -Wall --pedantic test.cpp test.cpp: In function `int main()': test.cpp:7: warning: ANSI C does not support the `L' length modifier Thanks Martin --== Sent via Deja.com http://www.deja.com/ ==-- Share what you know. Learn what you don't. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Mon Mar 06 01:06:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c++/84: Re: Internal Compiler Error Date: Mon, 06 Mar 2000 01:06:00 -0000 Message-id: <200003060852.JAA00826@loewis.home.cs.tu-berlin.de> References: <38C30BF2.D5397CEA@home.com> X-SW-Source: 2000-q1/msg00079.html Content-length: 102062 >Number: 84 >Category: c++ >Synopsis: Internal error in find_function_data,refers_to_regno_for_reload_p >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Mar 06 01:06:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Mark Robinson <plasmoid@home.com> >Release: 2.95.2 >Organization: >Environment: GCC Version: 2.95.2 19991024 (release) System : i586-mandrake-linux Options: -O3 -g1 -c file.cpp >Description: Original-Message-ID: <38C30BF2.D5397CEA@home.com> Date: Sun, 05 Mar 2000 17:37:55 -0800 I have attached the output. >How-To-Repeat: begin 664 gcc-error.tar.bz2 M0EIH.3%!6293640/`D,"P\;_QO__________O_________\`@``($```"&'& MOSX/J1MAH#(#N[H%*(>/J:[6@``^P>A>P`GL(5`"V#;-!3MJ*!1+H[?7J`F> MW+W&77O9WL/H/79XYSAF^N;OO;UGU???:^B^V^[#JCT;L+,;U-&U]=WL&Y4& MU9:OOF'J)ZO5W'WP/K$8:K4]ONQ=NVLTCUKYO5?>/%F,^YI[SO/`WM]SEOC! MTHKT^T!6P<S'3G===V;NG32[N4*[;:.MQLLE0WU=[=O+?$<$@Z`/D%`&AIWO MGJ]\QOG?>;K>G87WO7,WNY.W%LU5;I75<N?9O;SJ=I*,MZ9>H6]UVKGUU4*? M?=T\UWW3>Y%7P'>O.O;N7M[O?>]]#[V/'3IG5JS:KS/7)Z;:[V'==4\\JS:Y ML]YH<Y3/7OKV'N]N#NL`.Q[;RMG#IG'<^YVO9N[Z?>'OFJ0J#[N!U*O?:]CT MIIMB8:VMBW<W5@V8#KW=VJ#T#%0!>>N'3IZ#KO?9P'D>V78^NMM:/<UZ6RE* M```$0*H>P'>[W;VWS;[:/L70#X=:1IHY.[%*/O>>?3ZC>^^Y>4`#1VYV]]NP M/;CRW>,$;7-;E<X]G7WM+ZK;Z[Z]:=78F=VN]M[`"BBWWC7W<M]WS:=L/?6M MCKZ-A/=U5=?0#I*6F:P5WOGO1MI&>X!UH`TP^>0KW<][EV^W<UDWO;G&^4)O MKA][=[[IT>#Z`QPOL;<#T`'5Z]EKU]YZNC*;NVX[R/>]WWMQJ]O>]VU([6(2 M]V.5Z@1VPU7U1.SUT[WKM=..>UMVN7;G8Y6EL:;4=V4KMJ^LW;E+8[MU/6-1 M>O;)\]YW;USU]ZOE>S?>.IU=;[[VOM[N>?>/;%;OMU>^U]O*KM7KK?;=M$V[ MZY]?/O;ZZWO=GD@=L[MDYE[M,V=-*57?8KNV=&*H]MZ:^NG"'R#Y=L=O>\>Z MCSU?;ZZU9*7OJ[E1TUT[[<`.SZ&$[[[O>SUTK[K#=5]S<^O3S7HINWTH^N^6 MT=>/LGJV.X[T]VQ;PX#3(K3=BF6[!]&[C'M>N>5\I?75V?',BKV:C9E\V3U" MO3')1Z]YA[[1/H]`87G6NL&OH.^=[[SOJ:%'L[DS=-?(`Z.<V+Z?/(O.4@D7 MWGN^[04#K,M"CZ^+O:7I0?>TVZ^.,/:\W==+6MM``H?6N\]W7D]=<[[O3S[5 MO#&ML]>G1\]T4]>[>K'.O4C.T15=K#4;=76:/?;H]L*GV:%V=#=E5>VVU5:^ MKEW;8RZ^M>C2^6M,-MG>YY9LM9IZU!V:Y5-BCOMT17<X?<U'VU7V`'WNG5:- MH'BUH=M1?&WS@KK66NHW?=M-[W`#?9]&JU\O1KT\``"B[6=K.O+[WE]YB^^] M=*O3/71WGQ[G;.9N;;9O;[.]MUG/>YI?6GQO73L[M`T.=4CVV[=[[COMW>[> MU#>W+EONZ?;[L#XFM,9O=A>91MX[JBNK['1(#U]\P)T2P][=;F$OH-;+W+C' MH?`%`=LDO;1:T/A(D`@$$`$!`":::9$TTR:-)I-H)IZ333)Z%,VDTCQ3T:3U M-HQ0"1-$01"9$T!3-$F*?E1ZGBF-)HT>IHT8AH-#(-``````!)HI$A!`U)LB MGLDP1)^J?IDU/5/TTU3VB>J:>@R#`)ZI^J>&@3*/1````D]4E)$)3]4\J9M2 M;49J;4:-`/*,RC(!Z@T```````&@:`$*1$30($P@`F!`334QHF1D-`D]&DT; MU3R-3:GZ4>D](!HQ-``5$B(($`1D-!":9&34]3)J>J?IB$RGZ*>IIIM1IZF@ M9/U0#U-!ZFFC1Z0T_N?_7_W_O:?]D@].1(OYZE2'[%2:>MTX@F4@MBVK%B"P MJL?S_S;<HX)$JJ\'']W2K_-H_F,/Y<]O1.0$.O@8*@:E\"4$>\B)3AD0@@`3 M1"ZDI&@"@`TD1(+D*"8+#MA!U#0"%(`LRKJ!!<@4PB9,E06E6A:`,8H"517- MJZ&U%CEC6H4K5&)D%28!4PA*=BAF*!((>A+6=J6LJU<UR2K<W;5+LC=W5VFK MLQHM&UV+2_Y_[F]3O,+"0"D&%7%$*,0Q650.24!*`%,E0U*BE&$(F$"!@Z<5 M$U*`:@52)"9E*#%RH6Q"KEC!&1)%AVJZ;';4BW(MS;#7;NS9`X#2C(&(`LLJ M4HE"J20H4I*N*R&(*!0@DD))(PI*`LP")0(4HZG`)%)A0@B0@0I*`*32"J'] MAH2I:)UG[DT231+)']TR2&T-B&.T=#@.G!Q#:C/#M#3IQ#@#_\#R[=HG_Z!_ MX/`]ST.4"4,E)Q7E"=*I[!>0#_N%T`IWR%P!$%#W8AA0E761-R4D$:&U1+C, M+5%3.NKI%,D:5>PL+*08@A2L7G'PG4`E*+0#$L0TM,DS%(TH_'!@5`*32JBT MFRQ,:M2HI5HU9`19M9_2755-+4FIEJ7K?7I%Z6H`*1"E'<A^?>:N\",XR@%1 M,+"R`7"!6E4'",8&J,L0QQO[PNC%D8A?5MXD$X/FYYMIC]#AA)[%=,ZTA(UY ML&!$VA1S`7A@JJ!F!?0RFJ;W08Q01)F&>&=6-+@.+##DET<))PG3CDDP=CHJ M!WL!,#H4W*I_ZB_X@M1?[!*21VK_<F!_P5RYS`-4P/Z#F*;CE/]R><CTEAN' M$H4J*HJ+1F2TUL4I25IM2S4JA*E#-2L$T`U25V/AITFC7!^&UKZYU<"`ML`` M``````!L````````!4KZKT0V2ED-$R696F5,M+0R04W-QFJ?H765*WFVZ1:I M)126+$E,TS=AS`EH()EDB6)$(2"$FDS),F+)1FILLI6?Q6KF6F,K-%-%0TJ6 MF)AH#;*X0L3,I">M0Z*ZUKT^^6O54KRQ6F;*9+&+-:J"*39,RS:9K2QHRUC; M+-;)C4LI911):"@HEI@JA/DG!#\)$!.I(J-`@FFI">1]R@.(:A8!`[B38Z%P M4(2`4ZH+2E*L!ZB`^65$!]R'0E6O""8U]&(/I<*)`S96D\:SSH_K6<.G![*A M!5*$ERVV&_TQ)!:9C.BCJ?_2_T+T#M#%6%%J7_7JA=ZC4I:315,Z1R3Q5";\ M#MXQN5IP\*0L;",0`2^!H:L->D\<`G:@]<6+'-%`F.Z**UIL1>PI@,O-`RP> M^RF/`P6+MV8VE!0[Q<5EE0$L+(D2W@=ZR>#FZY*DFOQ.X1&&C;#7":@Q#$Z; MQZW,ZA@MV-*:$JEJ0M5;4+4L+QTUJ^1@]9][7WV6T[>F!K?3&Z8$C$EL.`9X MQ@@@XX,.$-&L6;N/.L^UW*]?@J?':Z.FY=#%2;%&V@508E+`+;$&%8`I4&8D M_%[W=.FHI-"18'+G-NLH5=W63&2PZ9TFNTDYDZC24HQ"$$OOUTV2,;S;D#+R MNAE-3*O-=ACN[%H3G=UQE2:$$L:30PVF9AD,8B[KMHHD92%([M.NC4=+I=G0 MYR`WGIKR*YNN<6-&98S=<[A2[N[.TQNZNE17-=<NB;EW-=DP;H.W:)S717$N M$O<[J![C&N9IHTRF@H462)*O-=-)YPBB[<ZY72W-HC78RMTJ[HA)3,,3=RNW M3NA1==7:6E)#22648T69>AVD[O3V4A3,4:@HWT=[K\-*]7U_V]6`LU4#QKO* M^+H*-SL4FZ4CXXL$Y@GL-N<61.VQ];Y>8EFM&<HEM7R.FC!0U$MK.46G6HZY M"Y:4&*5;052$=2*4Z$O@I9P11?G;L$[ZZ6<1,Q\'CS"E7OOLNNK9!15Q8HGC MAIS-0J&M//G3-U2-ZQ3J--W7O@N*9?#BR!5X5%L=W&.'%TM+,86U!TXKJ58* M=M/!;*66+VUY2Q>,DJ=6ADVIEMUH=EZO4&'#PSQA:=Y`[3L5BK:%@Q8*HO*# M;F3;FYSCL,ADK,"9UN&C%S,E<AFH.QTSC,C;9F$RLPMTFQH;I95/9O7(<$'& M&1U+&ACI.IXE>N&<-F.(E$E$*,K=31%,PJ/>3:Y5.CG!#.*7JE'A10+US"F8 M54"\4%L$32T,VE"B"-%0A4F5LC5;(A:`U;(DNIHPJ(V6YDJ*NEE#&F3`H,2& MQ9J4K+4&DK)6`LMI0M(<Q1=!+$DNH48=,'E61B1,T6-ZCH(FM@'2V-Y8<U+R MUA1RQ.:QQRVM$PU2RRI6MVV:4I0459$6W:K$%)1-C)A58(L.M40Q=YK#&ZC_ MW2@^]D7X!&O][@#J7ND.AV@'4(!0N052UW:^G0Y:AE1"S_U57T-6*#XYN1?- M>[=[TH;,*>V<S!.6APK2UHE(`A*"MK+"T9H6XVH:ME&V@5$6-M@6T&T/6RL_ M3$*\:,Z89DS8D&-EDJ1A*@TI:%A6E&U!94J-S%V'.;.ZYNEN:,6N[M7**-1J MW*Y,F5V:[-<JZYUCAW:X[N*EUU18Z4W=;'2[*YMKJ[N<-SF[1'(>W24_3:<& MB4MZ6$D`C:3IMU0_<^O7J]<[&";-VY(5QW:/'-P05@9JTI9DP4OPGLZ8_"\M M.E_%W[?+KQ8OQM05<(C8WQ<PR+_Y7FX'\/,;#69!9]RGU'OLZ*$5>))>56%8 M'IX*86(E@-0@BDYH%`<6_#>8X+#-G3*NI2I)50$13R\BUWUJ4\'<,J=V[F*4 M"@L`J`9#7];[?1T'2%>E=\+28>2V?"WEC;`LC*VE(L>4NLK4@>O7C*,G$C94 M1NIB3,C;#^QX(<>6ROLUT"\HFS$0.^5<E$5X6%045-<E0U0L#.NURVVX;FP6 MNV5S5;FR`IS,,@*%,E"GV"KF6.><N$R`0292]5U`=(1H"`MZJ62;4DHN$+H$ MX\B(+#A;STLAT=>[6+E;>QU13#6P@I.W#,P37X>=1])`XD[G`77B;>E"BQ5Q MX&^+.QDFBJ!9'G6),B107C4&1YJ*6O3E>5Y044M-><+E`.3DFD-ZVE0;DW:8 M2W)UN(#=97X*="\;&I6+S*FFMC<66T[M7BK'!`@YI.`ZEA1T+;:H0.FM-S=M M4<NG/F;DF+RJX"0+52JT3C+(ZBRKY&P(#QY$C'-:%5&L4TE<6YDS*FN8C6F" MW&%':C,%7:5VV`<VH5-L)7,6NDS!7*VQ0+9;6JVQ0+90;*-L4"V6"(I&M[NV MN70MKE=-1!<Z&C=ZC1JPK-6%E+.G3D%X_XV<>#RE[>"B)"<I.0-=A&`9,@J- MI;J@P;5?P0]CCO6F-?<*M1JAC'XI!%.I0HAI9OR)N+(EC-7-?7N]3CE!@:E( M"*6V3J,_'L>?.L\MMV\KV6EGW5VN[@;*"8R)DXWENIXC-FSC1&,JHLB@6T^- MDN!L.8[2CR#(5.SHE>[97B(,-U0GK="'R=3K@J%/-$;:U.D,S,&XNN>ZMT7= M5<+%BB@4@HH^]$Z5.(==4VJB@>_UN%Y1`%(B)2RG5D*@9)4NYCE`IE$BY,E3 M,IRRJS,J5*S,6!D.)*D%RV\8L41A6M8%U*)Q8\2HWAS)Q%*#5&L"O&%$FM$9 MZMM.F)BPU59$*SYZ9PEY[M>ISG*Z7'=))KL3,N:*V)@R%9DP]#P3X>%34:6S MAT[G+8C%;2PXU)Y:XXP65.F>OJF3XNB56"G$[Q6ZRJU;2CC7:ZTFZSW;#G9U MV77:`N7-;^;W4:]W91(-N7*$/BWE7DRED6(QM!MBPQJ2VPCKA:T&$+D!KKBF MBH::!I31&T@(PLS+J9RVYF8*5;:)::FAQ`W%"EX:MQ4HE2FFF*Q5;`*SNXTH M`I('`=B04=M=:/JQEP[">[E\X/5EML>,C7_,]?[69+'>.YK^\Q&X10Z?$6E\ M\]FD[^'`W`52$5#$.<8565&68G:GG1J2Q*I+IAA(.2AAF&$O,9:E<[9Z?S#B MNX*PS?3+5N[=46L6W*W#5H.L8M*FLL`*5B*0BE")^JS1M]VMR?3MC:Y;G3%< M8;212#$-!,A,-V5^"YE)D&:&9H0>ZOM)N[NXU'FURO9<IDA%!A"WE058KFLR MI*#&YADRQCFHQ3-1DGZN\!),O=J&RB-RBUPC72X%%*%#B0T94FR0#<`?FMRY M?_J%,CNC(:7A@?JG<@_9!DAO6#*N\AQ4?]-#:Q)WJ)>V$<49>M=*DZTXZ8RN MU.EMI4WTQ#IK!RL@.ABJHJG'A;YN8=,D[_!<Y(=L]"(KQ[L]5K2[4?&#>B+) MB,2%(H32VD332VD34;--:-JB*2@J#<S)B"0F)$[CKK+O(,D[XH[X(MD/_A?P MSN$/*2/;KJ*FOG*A7\TGI9^FHAAJYE"&QHY[]AD%M#B5T\H7ABP619"4Z;98 MLWV.@P?7.(40Q>NZ<X-90HL3%(&$DS"<!E!A6I*(5AP2B;#B"*H@H)(I8*)> M_IGI-'=ST'N,,>NS0Z'5A-$E)TG"0HXER#B2ZR@Q.^8,SS<8LZM(QS_$X0,L MOK_R]O&(4@_'[_?Y\G,6_HO-,/5Y5?4D.#$B2EAZEQ1DU!*&%-%:63JLU3KN M\M1NBUBX;8;:*$H:*7Z74;_5A>KIP_5!*>H>28,8S7:D^PJCEX*4FUCZ[K^Y MT>?9]W/EC08PJ%*/DD<6"/5H\H>S61@R3H58M)*#5^(YH3,$264"B26CNG7^ MS89O#FZIASUVY)UQ(PEG9PLR8Y3+Q*RK+SL+Q1O+*\/5''3PZ:9;2E$;HXYR M@P4Y=@E[UG7#/3D9RTI1':Z(I:2]!Y;G=DZI2FI11R6.C<>(\QP\";>-UCKZ M)K_M>5PBJJ.)"Q%VV-JM$4('_<9*:8Z/**"J#?*X;2H7B&SCEPQ<EAS)3R>W MIB(BO;;:6RD11%Y>^^^HQ#008H(HR)&3?8IAPT#D+Z^SCY"5M%:6**KY-U]. M>#W_*L#POG2P\(!DE1W!Q;)C6`L,>!-HE2:E`5O&\4"V(>4`H-&@981@JM@C M6<NPE.M"@SNPX$O%?+EQ3Q]CC?&8<,QTZ&%OV&S8;EICG,)@:YPIL.$Z'=!- MT4TVVEVU3>*YK)*@:[H,>,;3:T4-K4HNZ*JNW<JG4YF'.$=FOUL7VS5]2Q1: M\KLV98Y4ZZA`M=;I%;KFZFU=U)NL[[WVH+61-;3I=;(4%`%@+(L4)Y"7\+?) MYH4+3>?#BV]IN6"@QQ$9]`_VS?:?U>O68\!2;&%!(3Q-.S2["'9O;H6)2"") M3<NX-$[,\OS'HZ.R7DDYG+6-&28125-!T^!9VX&GJHVZGHS(:&#TPT8AW0TV MT'B@RZ-E1F6+1=V#HJR!9!0(,HH9=2>8J&?T1_$*@838;J3`_DLZFHD:Z'VX M?;2UIE)%E,HH:Y9!-CLHE'ULQ:>0(B@[L.BE[YQ%B"#BE$ZLV*%*'WC<,<S0 M[FJG<01+9P&]@3-4A$6N,*U,N]^NV>6.''1I:C"SI6%%-)9G;)BED5P(:AJ. M"<8U&0=(>D&Q/B8<[B$`]:G@?1HA+G.QPV89113'_&<G[_^)I>AL2WR,L^+% M^J4O#&SS$YZ6#YP@QI_.BFU<OW_P:-JZL8>%6J[9*R9T;Q)=8F=%GFX0118< M.Q(9D9A8>NDHI@A'HT$SF0X'B!C_A<&Z=)W(_B,EYI7M*".!_)DZ!Y$8=H>@ M]3G1T0ZT`Q11*"*Q$%$Z\'%^WNWIX=F<)*GK\SK!^7KU=LV<V1&8'K:\E!AO M&#\L%0QC)\UH+#QUM?]5S/L-C!$BD>>FPBAN]^6W@G@@R`I,Z6M+,(Q4BU-$ M4M$P#,!W2>V7\=]WR[$#1(O>C6Z1J"R;5*FQK%&HE*`H,@,AW\WI#-!N"IID MFL62J9L5_E-S4IL8U`64MD6BU5]?F\EI#F"H.-/30IB"`J$`B?7=W9!!TD?F M]D40B^;;;;T;=#'UZ14=/P,&,E7E%JBE)`ROV6K,;MNQR*I4JLQBE8K!F,+) M0,3#1)EU6\$8YF/WR&(_7(P'P:!M\8>%XPJ7ER+#);.."@SM*<.B%#7.E;!C M)C,3MDA*`8%EAIQ^+(BV*A--^SK2W6WID4&"RB`TLPL+,RFU*+:N[\6LRFC' M0C`I,H5)PH#"5VH[:(H)&'/FO.O&`HR:AF'*:,:::HYS`X;.'1VYYYYK,<(- M(-*AF"A"`%JV`]7R\-9A10W*IBN8!D4B@09L<\^CKI3F-"&U++[>DB?S.W*) M399,DS465JYPD/U;UK"`EL#?+!+104M$1C1$0K"V>>E$4P6A;T((,-K>2W6Q M=2B",@(PSA-$3B3B8!EM$&*Q84QI2K86."C+*,C2DN#G#E]WU^'#Z*>-V75& M&8MN</@?>K<*T@@S+B0RK.H1M`Z=`GLYL,1!Z&E2*'LQY.>>53%X-YR2G8[L MNO@.OQ1SO%;T)\<2&=7K+`V;6Y8WO'6>Z<X%VYT<@QB(JJN!G6=(="40BDY. M1RX;8%$442AB@T+A$5*.TSH71-,(DJ1=<JK6AJY990VHW33>1H4::+0L@IH) M<E2M1@RL:N-*8R(J).KWUT15FC&AS%8B(O4XF1;:6TMI;2VA1)8VTJ+!I1<1 MJ4##$-1@\>0QMMK`,A!TNIFDYC,,3$YS+G-Y]V^9XAXAB6(>DRL9J3)*<*0\ MNKX7ON$X@L,,XW4NIY!LZ!9C:VR-&HA65MH*+`/?]G,`<6TEDC;UBNI2$:V6 MV?59)2,Y!"/,8F=;0K`KXLP)WU68A>".(>&=.S)H+)R4#,C6NPV.T7]M4XJ/ MUNB:-N`V;+*)X8VK5Z`UK-"5:`E8Z*=EU01JRY!$MILL(2X.8*'#@(6IT8NH MO),\3G`G!8@HO+;;,*EEKU3`A1T#)Q[@XM!J2H*2RE`L@C1%GMI4UXF&,'QH M>V$C^8_[\_;;;6)D#VHN\Z)'IS2;48U<M_9->;4%BVH#4%(Q"F2Y#D`/:0W( MFRVOBH-9-=-=+:,D2`8VT6NE%N4)^A>4)KSNKQ+#<HRVA5%443U7K%$'JPD^ M_[K;:^S48M<J+XU;FT08H*C8Q28VC,V4_G4X$0S90^=VGSN:GZ>J^>ZV(D+D M"Y`5$%)^_TKKZJS&%:8("(P$4]S:V"A^PDX\X<UL]_H^B;AT'7N,[]%_(=VW M=!5/C&,5.67!3C^.N+/+TDB3&M2!QHF2)#*,W-KJP0(N,BL0I_'T,1?`@ZYX M`1;&'*8F*IJ`F!1&4(FA,R/EDR131@-*(?$+M`W-H(S=*8X<+)9-E0[\-T#& M,89G7'"5G&A*V@8WSJBKJ:Q:1W5%74JBTCNJ*NI=*3$-L)?J,]/(DR.E!7(# M<7-8NZ[N46N[J2=D<S=E7-&")W2KL9UW5"Z7=KD.)VHBOZ\85U14LHI8::Y! M42UIF8F66,UP1#,'B=`$W`!0D2-(T`0=",!.)`QE<U@CK,:A%@XH)W2^\GH[ MU4J)Y^#%/NAR&[TY78QR9FFPV!A>)G0.TI]4'A&F)0$]X1*!2+8LS1B5E_.U M#1(MG8[-<-8%30[;$!2()%A%G)99*DD$26%0^>Z:4+4"H%J*H5:4\/W^$+X& MH=`+CS/:!3U/-[?<3=`(HD44@]4I?&R9R9A&V\Y[RZ=S<44)8VMBL6`*`,9R M"(4<@B`R%_9*.1M:OY;55Y53(U,E,5LAD2FE3PA![X3AL@'B>I;YS+',Q*M& ME)4&H=8VLK+&TOUTH9!J,4*LBRJV(I7S@#JPV_.]W`Z84+;P&E$I3`DB6T?1 M]!G\/T>&D_GT?/=)MTU]MF\VKI7T#RI-1+UR@C%I-,@44AJ7`@@W@G\YYYM? M%M)9J5O-45V:Y*'!S9-75>RWW?T73<Z*?OHW35A7A>52T9=Q7$B92`B,I2;> MS]/^,6+_\Y0P.;1>O%)AE25XFVW"&@R8+.G"W+M4YHLT=S!L;L9*BT48UHM& MKNZVQ9W5RQM))D"T8BU?VSFVV(MBL6"346BQL6-ODUS7R[J"$2UJ7>]<J4:S M4T6)BZGR-<EXT);2ZI^WPY\?4O-)4C5]+M$$_4NOI=8ONTS,"RH'6=C6B:E$ M8ADJBF$V4;2J*RHNE!^33108D$F12C(C$,A1A&0'GV,?-K.=ZY<5ZBHA+1JR MU+)BI5FVQ2UE26+--5$V:U,%"B9F06"%^@D<8`84A:*F5J3;4FJ9JE-8T*E` M$2LP4`"HIJ4\80X%2G-3]T,5CMF+(5TVE5&495H489@4%(T*4H=8=0H-*!+1 MUL1-41JA50;L@F4(]=8,<:,BEN+@UOE97!(QA(QJ*$IA:)$A2BVDH38C5@@K M%J*HV-HU&S,RV:+-1HR;%J$FTV";-45_#(.OU?W;GG]?OK$N6LU*?#EBKF!9 MC_LOX/^^^18AY//[9AHTV*3C]+IM^:5.O"6)`93@#.DY&!H6!I?WV>3_!F.G MX<3'_%`&S`TSAI1OE%'.ANSH]NF,YB[60^3(_1^A2_IBVDXDFPL:094[&>+1 M=BF,;7+^&"32G$RV5#AG-G-K-BQSC`R^3K++VXI+G3A_TZ:2SADJ3Q/Q<A[Q MBMKD^&5+0MI-REJ;PIXG($C(!BY[P59$[JVT<`=8%KB.P$`?^GX<:]L^^`\H MXC_FE3479AG-,/1A)G^&4*N9B27*TTI=?2`4BD((^5(]^3YN=6ZZ8E:6&.6E MU+=LKT`HH)1RJ"Z*`X9CX';4?>=YMW76ON<L:5I3*YSM*9MWJCZ<^(ODUZ,! M:_N/4R[N[N[N_'?5M\EHWW9)S'[OX-9`K-#&@>6(R<]/A(YZ$48#9_N@(%AG M3"A*315R:(@@"!EL0=&5=&%^"&%7NYTBNTXL"X9FQ)9N;0.(R:FR[#IAB':I M0H5PD3F/S2`<$(]\J%`*9"F24J=T@Y"5]DB?9``4*_V2`KN!:%#^ON\!V+N, MK6:$'NE/DE#([0'C*KH0_?>4%]7N]RA_/SC^/%_&S>[,O]O[:.#0ZH6$H9&O M#[2@QY!K3!NUPO9DHF3G9U@O\>REW_7OPWX1E%;JK+*5W1&'^7_4)Y7/)'Z\ M4)!ZM>-UL(B$/ZY3R@/&,+)5*7S[NZ[^'N4D9Q"@<1Z24`VIPD0`S:<<VL$H M`,7+J0Y>ETF2'<F]?1[2T'NF^?'<\2A07Y\(39[8K(/TM)M?B<QG-D,FII]9 MV1P[U(S@CE`R+7`P%`NFAH="%-!-DDK-M>C1IJ0S)*K*PVI#)`JLK#:D,D-$ ME/HZ\&C<D2>C6)Q"ZD.94I=_9F<8??6K#V7'.&6'^-WF+Z[']GD>DP;)3";( M-QZV*?/THIK-H3&-B8U_2\#X.;1C'&.$QYN!J8OZ?'H'<'MX0^">122)8O.8 MJ/P([^LT!A3%!2A67OM2:455#DA%05X&!.!A/E.#KTJ%6C]_G:1=R&XA#OTY M]_AD%6MN[\G;G1ND0DV/8RT)6L+*%1[VY/EZJ+('/8I;2*3+TAE>>C"28A.) M+,.DIJ6-9FAB%BF1ID,*]-84WB$A`G$DF-H0:T(?/QX<104S*HPYM049&N4# MF1P@5$-9&H]$/,2+.'"E]-H&?\Q#];\7T[;^^2$^8D)V'8$H0\GQA<@GC9/2 M6Q(*Z_]>"(XLA:1]:S'-R-%BO5CE812B&V!V0I!J<$H`-$`_%F!2K*R$:2Q) M)6U9(QB9$*(4`W20Q#1@>^R1&A9(Z5(Z2AT0A4(81)A)A4>>F+\)$WKG0BF2 M&1D*!H)!=2BD0K@2JIDA]<>J$U;@\(W'L0](^D86*"7;\FP%0<+EV93*$%L[ MO'`M,,APX=QLV#IRQ-F/D,_&XA,/FPXY,GO?JOIXV>GNAW'A[[?6TC5)!TB0 M5[)7RE!:#S.#!UZ=FS:AN!#1HP7KKMG(B(B(B(B(B(B(TI7:G(B([:Z89##" MJI31HTTWZ^.)(<.&$-C&D`I1$I*41*0I2P).'59Q,$X<*JJJM:DFFF1J)%1' MC++)(D0@/#ANTF&(8+"899>:$.*KL]C7WWBWDZM=5-[QFVC'V\E^A91/V5@F MH/9TU6:7](TDE8%43%W"\5`N\4G3P\3#ZAP?1`!T'D=CH5/`TX+,NQCX/.`; M5NB'`X$R-A4$5`3BG),0/[?KK6E3Q(]T9'M54]M0+5;K\5?;]`P4!B(@N<P1 M$1$1$1$1DHB"(B(B(@Q!C+(HK'##`L(B/#KOS4;Y_\7QU=>V]>7W>_^;^B?= MCIGB41D2G.M:E,\LL[9USOD.'#YF9^_6W^#4N.4XI3,*GUF/Y_Z-MX(B"<I3 MG*51<TA537FFO%-:OX_ZA=J<*`NG(ZM5^FN\@WG,$1$1$1VG.<B(R41!SD?M MWN\_;]WG\G.1(HJC5D5366116A^`[/H_+Z.]^AZ(3/T#ITX.AZN##H<>HOC; M9P)7R6"[=K:HM;5;3&OU4+K:"1)K])T1(-C&3R("0&W$<9*$CR0\0(\&B2#V MLME*\ZL$3%]Q6E-.F=TB9H,@G.`!+Y<G`@6$S!"YG1V&^D@FC2X+Y0KTD40_ M)1F(8(#4KX>_Q]X2Z5K[/?:SG'/W]OOO;V_#&M*;9PV]76NU\3VK=Y:Z[;/, MG[]I3NSI+D$I-PB&C]H-+ZD?#B%GVA_G>?7;HPXR*B:?E-]+;2T1_([@`IE# M5FK```DJ5-34-J`!M33%5$54141!^DXXGIO.,(!?6*"\JRRP$K$@5K+<%,P0 M!!(%`@8OPW^%%G\!UH(C3Q(2&L*+<Z$D'XB:`]K(:0FTA?,=@*GL);]S\!WG M+D=><_G>,P\:?2$BG_?YD@_Y##+/VR<>;R_H'$RC6?+5_-E%ZN&##2)%/618 M8S!2*>`Z=7ME[[G@@OU!JQ[+<^;?6C?:^&:[&1URAR?BA2*C\*_T3M1=.N([ MHJZ:4A-R-6UJ3;:FH'-7.[BZN;.V79:`Q;$$M)02VAMIJZU'H&M5I%:?T%.^ M2Y:]>-_';C*?#9TXPDN!-68&80\0>BE54!`>0.'(:<E/QALGO^V?<F36.-+6 M(JR;R=NQ:5ARQ9MJEDAH_[V!VXA"RI#2`\F2/GQ"*.K1*Q4UL,U:)6(@YA1, MEC8<3B@4+2@I*2B3^6:O/V'`9X'SCQ^''X8&>'C**&$,$)3$J'9BBCK2Y,(: M6).EDD\:#M8B;H_</3)/P-HF8KO&F6?HV<6;G%B,I/O+NZ%&'ZKD8#3\G1T/ MEGZYZZBBN5.`Y((B9ABHB*1D\$V(:=1"C*RU8B(B(B2E2J:E:;4M1$1%%J]M M=C76BF44RB2NI2]/IK74A31")K\O09H1WUO'3DIW0X5*#]D`F$:DZ%+#W;<1 M>V`+XI((^8]72:-\(IU84#5*;25$.1Y=)L%#?7$#/WYTJ$1AD28F8A2@/"W) MW>@0T/'CP\2NB5H/!"2(/&A(Y_CR92H\:BQ1(>8\YI-[*GA#!-+DQ"!0GM@< MD#68!U@#OGOH@"@0I""4%I%W*-)O61(5KBZM/I64+4$4L^NO?#0!.N9RRP3I M`!^C,J)*0#Q#W(B!QI00DH420$_=`K_!`*ZA:`\)`\7J8ALJ$$TP`<_#IKV2 M_NJ(ZV3]](3LJ'P\<?E56,IBJM6"@YM3HBD)`C?!@[AB9/9Z?K3F@20O?\EI M"#?R7YF(P>6G7XZA52',?R?02L9CI(W@69'H=;_04%R].7)GDOG[?=^HY6(3 MI"FH.V\UPJRIT=`.QGK??^KS[6MGH,MGD=3ZD/#.>B$[3HLT7?S$O?U*H5$# M/]!_]K?1(F?*9^+_QOL_R0>;_%J2='!V_Z)D7=KLM9G]NJ+E2.B;*.&]5OG9 MN]N]RH;;K4WS2K.>>6]N<;;YYYYG-YQQ5U3DS=YR/.1O=1LX?+,<>LR!NMJ* M&H8-R6Y6/A[;?&J#-T36[NW'QOB<LWN]9QJY<-1R<#MYN[S3X-SF14<<0K.- MZ)@5OCG5W7.LF^+;!L)CI8F^=Y<?+<H+=56N:TR<[@*):`TE26DK`T#QWDO> M]\\*I0CEB*=,08Q+EZW6-$F0P5<H5&*5H$L6N8BN*1%B^6,3O.,8K;&,<ZRS M7&N7FWQJ<\F]7>\S6LN^)Q'SSF:YSGG>M3GCQ$/0)"IX+(*2IY>2I;0VZXX= M+(_=WN-=J@JN>6D7S,ZI!+*Z25<F.J0=H:'C_DE^?L>!6`_4(&)2-*VFBZJ+ MT7WDH\U=*Y[_QG+%JJ5VLV;GK_M>8^;M?E*=M/^K&X.*4CO+W5$(>AXJ#-DI MG^#%%0U'5S7P*8H3?\(,@<^]!OT&^J\"8?C727C,/P[S<"5AJ326;#N8L9L% M>7>S?^7_7?*&B=2_\<A*^W?K?>)R1/\'*)/I*2R/6I*LJCZ/9H3DL-S_#?5W M>`]VC;/\WV55555556:?-5(S#GRN[V^O]]XGJ$!#]F2=C]:N!H9"L$^C7JM6 M^XBM6_'QG^WT,.UL97F$YW:#U]^26-**\KPXT1-3>E"0-P-HE-"-OR?<M:?# MRQ2<&<!WC*N;KG%V#37.):Q&]HR995%E3F=I,C$*BAH7`T!=JC]6Z_BLJF#H M*&8#5E<3@MU2/>OR-A@#:W(&CV*/7`C!Z^=152NA:,X[T0IC2UQI%U_6F+(1 M3295(@YS))<Q,X0&9Q*B19-_C7-1KY9,4>=X7[O;UX;M/KE'#^U@\.PZ*F#4 M\HI3MQPX][VJLJU525$1$1]1U")\2!];/E(M->A]DI_#(1"XH_JMQ(1M8>>/ M"AY%@@I(^2^Q`Q:!>FWL-U"AB"F@D0]>"F`1(6F`DB^0J)*YA1)JHPJ#&+8D M6(#JP[<X\&!RL!ZI*7&V2N-LUBG?X"<-1VI/Q>3^Q5:>I'.$\8S$EO#A58O5 M(&1I<'8:(8O/:]EA88*G38"!@>O0/")I^6$Z-H>1)@;Y[4S.A"&08'.:CNCO MAV,O"-Q-)^N3U$'-?/\7P;X^3E\&XP>'\+@^"3]#K#EUJK7NRJ9[#(]#B0Y* M:N8:OY.`V<VI:LB3)->[SP<UU"KGGJN>`ZH==,CX.*I]1S;Z!U10R(@'Z2-B M/<2+X9FX<=O)*;&MBN:"<<F&29I2B"1<ZF>3#(IZ^W!XL]+9\YJ^%!`IH)#& M(I/H)Q^-L1YZ=W1^K.X]VZ]LFFNA8_)"@603!2&LD>1FH0TJ^=>QHE9P#>F, ME-9BK%>A,ZA/S%WPQE09L-2*SD-(F`+OY0]>ZT"L]46*Q?3[TB6SSX@3BM@R M2'C)JDY046S![SV!W=GV=^6P1*95VG.L<P_=BWGMO)5IAMJ0FS4W/0)-=QH< MJ"4L\Y`\0);B,0OQ9!I01D%L+H1]L/Q\9/PTA'#]:_$'3J06'W<:=(_DF"'Z M!](Z3_$;[2*D6K%$!*'S2&7JI!_7(GWS61^)"'Y0W+\/Q_1^C\?P_1IZ_Y=, MUSFFB&=$A-SV;GMMMMMMM?#G/%:6M?'Y!&Z%S!+D"30!`MTFFH^*X"3*@!JO MS\`X:/*I<UP_7^&?8JG'^P]"'Q:/=F6=BJH*1JAL90_\)H-$Q37H@^I`],N6 M_V:JH(5@5*E_(\?1P*8Q?(;!\\="1\\)40?B?-?J+L4'>PAC0DQ[ENT[K%1C M[B-]S4N97/SLA=BC].QGX52_#'50X."-/R5.2'S212DCN8-3Q<+Y%5/I+M`; M/;U]85<@ZTA@&@8;3:@`@0'8-0'8BI^C.+WJV,>-18E(A<;M*BBQ*!I#IEV% M#L"T2<"."SH<ZTYY%EY400X!@+%Y8T8L!(PLAQI<6>3>5$"K((A*Z8YD2#(9 M'J,/4["R+1W,NC]KJ2[K^3(AY\V1!*$/TJ740\$TNX<DB@N/?QM-V;UJD)/: M;2IID5[^MRP"D4P0T705T4E5JLLZUM8P#="F;$HW31;/)PJ-C%I(8'L,7"81 M[V5&(@RA]CI19!)T$-BG2'`V7LE7C4U2HF+';IDD:61E-ZWNRVB)Y-D79Q26 MO*V$'%7X-<-'\9E"#5T9TP!R=Q('Q*T,J.CSX?>1K[^/(F(^]$0%:T,O3X>V MQLB[&00O@SS=SL(#)I]J]ZS62DH44,@M-45&:0:C(*%[TQ]3>259(/2LTL)@ M9RJ.2'P1,P0@^__E%KCR@DF-L?-R`SE@O03$J"E\U"E:]%:EWZ^Y1QT^-QLU MV<,4/)Q`\/F_6_`BG^C@TZJJ1HH*!D/MP77`6);3$@B"\`VXB#%S\-=B/1^3 MT/<.J*-W":T669M=+M(^@^"Z<V?M?V>8XG]LX]^$+VN,T<(:.$>,(D)O4*A] MS%"T8[4J-AK2C/Y-9%-Z+CGCI':*Z\P[#5!Z>I#]XB_.#H711_W30])<:-G; M*W>PV&N51/WQ<D(-ATFD'@Z*"''9JBA#:KI%?Q)'F4Q1F(90$>8TB@Q)GD=A M([)P!<5%>9T,LV+8:1RWTC"-E#-'N*K9P:^3FRJGL7+81/(&GRE81=`TR!PF M#6"/9MZC"7S>V03AH@99?B4^M_D!DQL8=VX'#^G3Y2<]"PKXU)G:6(PG[>J# MWJ9VC60IG8,9(%([LE-KOSS"RL7^N?N.#Y!B_*GWAWS4L-0T(DPF04+0!ZX! MQ9B2C1#FD/88;%5]<H:H<Z:LHS@(,)]!"]%'(DF>K!R,]0?WN`'RD]MX1)22 M5E0@*`M'H@R&@BF&Z7P>R4MC8Y_2$_XTK<G$%9E[_G"_IG]I`(7R6RQ$)YGG M'.W>5J]5W-9C)+*K:[;-QIJ27VMA-S&&(JHBHGH6BTP7!J,8L,M.,]`MNE<! M[V`_)[WU=0\5-2@XM5-K&=K,.*)YM1U+X]]:\2T5!I%&*<00H!A#5#B48($& MZ7ZSC=<C!=FFY!G$&$"!,X&&269RC9SE,D3%R$XHJR1RJ>E):AZV^/%CH6PM M:9D7`O4-!@00=A^.0H:]UD9BXS)MW7;38DS!=IPJ`[5Q<I)@*G=TI-40Q*)$ MS-36F3$U&BD8:#&<`4A"J<`%*"/2]QP]T.0/22O1*#WFLY<XM"!X[<')2_]F M1EBGI(-LH<0.,B86.<`T#R#M(*3(HF`>1YX^'G'RO7Q2!'`M!'VJ$*0O($TD MOQ>A9A:Y`8&'44C`+2X*148X!(_8'U&TC'YX#-A<:I*,3FX^W7\8^C\&Z[?0 M0L7QB?XLF=N*H(<]5]N499TE6)SE.V=*91Y,J513:_;.42K4RURS']#I;:1? M1ZLRVB0W=&6U<JQ^'.'J7#$KXDB._9AC(--Z4P5/\T"&I4&<C%<S!2,6/KS! MA-"K@X>';!P:6EUZH2/N:6^<\\PKF@FTD?54;8*DIQ-Q:5J3:T^R/S:3<6L@ M]B4ONG%*24&3\UX&2YS#Q*:9%059#K[/1,=4>S9?H>5E0PO4Y$&A_ZC)GF<; MO%BOL5)3,RD478N<AO*6A+\W4-U@=370L:7UDS(!8"&"_]S<^(JA-:ZZ8.\; M9(J;4^=?0,=N_5(_-WH)@$CX[,5/?QKUKZH8XSZX)OI?RL=UWQP:4-.7/4[9 M2;D>!N?A6[%(.P9ZY$$RZK.0N5`M4GW":F/K"%];%MZ$#&4SN2"F\B1,8CL- M(=H30A_KVDI;5+T2'Z?<?1Q.@\>Z6S']/?W[752$QBZ1V=.55U5J.:'/,CF- M4*$2\#LN>1M<N@]"AD21D0.-M<UY'362XY^),&99=Y5=>2[?W,V4[?R^N-N_ M,V^F=!AS(#F<'*^AEV!S#LE9V9KB/U=)(L^5P(1WBZ^U'9.A0[B1[N8[G,V@ M)\RI4;)X=9J,(R&Q<YSRL6JF0?VS`0%P,Q2H3:BS<[A,>92H_$[)$WU:,OY= M82]0LZ`*:0W_6L7@P?I1[?3Z$ME:"&6*+R@Y[%R9]P,I-#8\,-RT7ZQ)Z&)A M9)D#"HQ$&121D+(9X5"=^5#U8NS0J9F`P$BHO(50J$^>Q'6<"&7+DO9I"[03 MY\&A(@&3&#&CO:#(8M]/2NVO5::N%-$CP-9Q4,RPSL"HXW*+K*@XA$?0/,86 M#;MA9G6YW&?&V1JSW5<[S$=Q06VD)DQJ,^)AR[!;57R%"5)X84/CVUV?FL&O M!N4U0ZJG74#A<U1YR0FT$%6VO'QT3SK=8BLNF\7="S[TO)`=TYW<=&=9!)1% M.#+6=3K!XXRRV3B$U`/3Q_Y^&W9XFYKGCH$<N5748R"7Q^%0L=PR@^")\\&3 M/=I/2_;58O&1RZT/V37J>F5Q=YZ<I>JU4XS0TL@X:U+#8H8,/$\"I+F_D+G4 MC+MLH8F@>E=9G>M82,H\&=S)=#G(6:F,9,:L\YTW,5*R-#4V)EQU9I"5LTL] M(0:"RCNPKN1?6R$&9[*#3V/)=%S+">\"@E&^8M,D-JPTLRH1JX)?H)236!.T MGW\K2.3617<'N3")2@;A<-`9?9[#V],O$GEJ_#P)LKR<Y!R+%6Y)[EJQ[VMO MH-&A5O*FO;NJ%BPP[#2$M6K3(9:A(L$PD;TCRJ9%(VDK22\Y:KI$C6DMTS1O M:4D8'DM?S+D,'LU"7!-CO\6.5S0)PP.0Y26:[5XE*,4+X2'OG(T2ZV-(1R-J MAH5'8,2-78DKIKM35M.,8FJ0T>[SW.IPNOW*6L*0PRL]#OO,*=]A0JL%TEPI M(_C!=B@R:I'@KXJ2#\[+!)/'O@]]3@E9XD24JY=TYG(L\^-H@2%^I#3::4*) MWY^V0^OW96P<^LUS<6YH,MI:0`(_??3P%]3F5]=;KOGK<]`J6F='&*S`@`)V M`SB"(I2<:&&6#&:B@:RJ"$K246P-((18E]Z@$:!IAMJDNJX."MAE`,UHM4I2 MRDY`Z)3A)S!IIHT&`P:R1$'BFZ08X%A]3SSEZ7AHH4JEP$IB)M$,,0_N1^OB M89V'H*,O_>B\U9)M'AE\CI)Y=@R!>9[7GIN(+:2U461#OZTJGE3(J>PZ3/I' M2=&LC"/CA?#K(EYPU*S6E!6DPQE`#'*IQU]``_@Z:6)%/M#[%T'DY/XSW[WH M6"81"H:52&K$K&B,2\>2TRJ!LJW`BZ<,5%:A*E53XE2M2Y8FIV0@9=(WF*:! MH0BBHHJ,.%KIFC7NNNG$WT<3,=+,+$,DNS*IP>D.$%$@&P34@F0060U#4(MJ MJ&2:0E8U)J%&5U5VB5"W-8N*T?*ZZ]UR'%MHZ\/]UTX='Q5.</DCNCIYAB<' M_4X^#TN_Y?Z&M$SQ=^;VI5%5TVV^C5:^<G,J/0EKU]D2/0]$D814BP5(I1QD MB+6`#*R,I[5-BQCCS*2AM=<>KA-R9.`R(=7)DD4JE/\>OZ.L[N6!4*^UNSG( M2?/J*(IE(L]P^8C@:^SBB`TH%P,"$2--.3Z#5A\L.XZ$R%(+L'&)XKK[X4=Z MHT<L\L9X&4I2I@Z4^.U0)B:.PS70!N/%QN@J@-6I8OF90",)%&*22/:[<0[C MR.E#HY>F5Q[TJ#![GG6$QFT/]KJ326#6_49`C4B%,-6APV$,1EE<9!ZCY5BA MG>TJ'3SL3TE21*>_(R.4Z-'`S.\GN:YR7!%M!DTL3Y2),MHX""A%HNU=<1R. M#8*(YDC<KCYZ_!G[^*I52W7',D;DH*$Q]$=&7+TAS!9MIST;[S(P#B.DE*6/ M)6>Z*#(ISR&&89OP8,8Y+"G?F>+66;;3*ZG#HZYI&SP4E**JJ"&,/!OVG,9H MLL^?UK;XKR'CLI*;-:G,C[=/!I\NS@^MC##L::/#;96]L;VDQ&!/$:'4J3+/ M'!L-AMV8O\^&G@-CP,`9S7R.GCG.0S0D,1#.E5Q!@E00S*7N*]I?A:%@0F\+ MW,N]S&BU:*?K`I2^(<XAJOD?>RRHNL35.UH2.3#<[2<=;:CI'`813E57CZW] ME<W'3EW$1,.8R07A%SIMR08,Q)GLP(QW\I$1!E>-=#GC:#2IO9B^TX\=9/E' M/0Z^NN1<5B7V'?O/A`U@;0H+U!%RA1(&-*?/#W+`N[42P3HM'7K1>A+7VHL5 M#&+DH5IUBBF'<*KJ\H=#DOB=YTYZ'2*#$<%Y3OT5HP,TK!N,*"D-DD'=@J2( MJDYL@F(I9*JZ9,1T9HQ8QBQ(5F\F6?9='J-'/NSE0J4>#4YI,R[3^,F<OVW, M(#DT:-)L:/0A(T&:*`N'>7.2>PFF'(!Y<YA0N*$@ZLJA-0>B@\`I&YMDZLAD M1!0V9WDR1!!DA7@4*LIV69-'T7AK`:SXSCU?VIH-Z&*A=+PX+*AO#$UC';<G M+)I%JUR6HH8D,S"`IEGF4-0[K`8*0/`.`J'0^O7>FQ[3(SU.1+@XAP76'MV3 MC<?QNDVVV)(Y"2)3HE2%-4AULZT6*A-)HJA/.[#UOXJ+.<*&<07E!FL)G!`% M`N;ER_4MJF<K)72^G<OP9/J708+H%Y^Q_."/K7*('#<H66V>/CH2H+H'8X+N M12=$1/0RWB(C-5\R0R0^PBY3)M`6DPX&(Q>52Y5JT&EP"P4$IR;%H*=Q1$!G M+W^-.0RQ!N=#(Z&9;M.Q)+S@.\]JG*OJK)%T</4[17X^#A(Y*7I0423R+X$& MB1,D&EH*`'^U423:)[X9(R<N\/%L[.7Q=HFY2--NBNZF/E$=7EU/)R^<\CN\ M6II9RPT(8ALCL]Y=)(JE9(@,PL3"PP^[1C62H6588Q7NXZE'Q]?RJRS91,RJ MI_;,6')E["J`Y%!:#[A-XOD-&VW/5[QSMQKV5'+I7@DV4G-0WUH"\H^:Y6CD M($1QI#;S1`]2_+.0R<QIXQ/3F_6\W7C315.4/`+'%VIC]2HS:>W7>9,P\920 ML41L%0+<;V17H66SU$6JBQRP3;KG=&G*)UM>Y$@#"!I89+QC87BPR4;H8I3Z MZ,CW4C)1920AEU(YU."UK%'.)P4DB!H2(R<)F5B0()`((<A?A(IBGJCM9,VI M5[2JZVF6B2I+-DF%@Q=Q-[86C'M8RIP1W.5%1S+)'!GQFEHKAT5,A$[DH:,4 MV@<@R+U)-';!\-%KT!>K0L2U`HH')H%291HH5A[[-&C&12E'*J7E\J<\.7UO M8[\]#GK)2L&EAIJE4#)FP=NN;G'HR9YG:2[V^A<WY&0:%J:D&5X[SLR7KKS% M4H,]'MP8/@0*!9H+A0-=_,:'VF(?$\)6TR$^$:4")2PZ2!B6N9JB0SEF,ZS5 MTWVF4233/*G:D>!#VGMM>30=_4S&]I@Y!)S8O:JI@'SUSTP0CI5[S1U)Z<ON M@I>N9D8U;`]`&>4C"QC2,LTP3&*C=65?CSZ]9*QI/OR<E(9(S@(&,N0U&P9@ MM`U$9BLA4XZ1`W4L99)P>/<T&@>'30^H'"#$%))^:[4;/NGN8%'L;$M0%X8V M<%(G)TFB]:$.I9SVUUT(+,EA"*V0PN%3L.I,$CFQ)IH.;;+E7IE!F$!4OL6* MN4I:[7U].%0,#QWCH,(B88L>ZKA?.')/'O#XW3;\8BU9#,@9P049R0<\[L7- M<BNQ)6%,.0]&B[5B<(R<A@F>XDKFQ8D,KL:&!<Q5*FQ@S+C'<1T?7X8>EZ`U M,R0\#!H$T#U#AI[C#'W^AX4VDD$#,,&T]9RYY\D]8Y++"))B,[<=O*$VA5I- MC>2)54[@8#>TEDY5GH5/6Y0N&#,FTSNL>28NI9QU]!MA]0OH<;I+9#Z,L_"B MD1I>1+`U"?%Y>E=.693]'=^>U>VC135(V,!>3X-ALP54VS#Y%$"'P<J!GDV0 M[&>2(Q>+2*WTNN5LQ'`/13&,&"^9J9P=`@P&0**(&UFA-(_D[/?PJK),J+X1 M`-X7"R%H*9L,'/,JU/69F%2:F5*C&Q=E#B.%5*D<F=#_$+"C75#XJAMU6GJC MM'6:8V<&C'U4J*\JG/">#Y&"/'D5,;5\TGDYM?,WR'+3$#7'?F7A@X=O'F6- MON>4@FN0VX>BMS25%J<>-3+'Y4RU::OJ?1]/S>X]:NCUF:8TE*KH/,6SQ>M\ MGO>/JZ%DOWLS='5*J/NJF1DKPWB:&B^KPZ1XZ5[:JD6BX-84<>@@G;B1C:;2 M8?703O:.T@.4T+&`*H"?D"!=QKL#]M%R$\U50C,B2@#N'J:\CE=MI0\SRHZ5 M5%9$\Z-:%J6FT$<SP:.UDXM^.2=%%5,*T&.!2!U"5U"\/I9G!U=59:3O5(7L MI1[,H1TFDORK=ET<A0K+-"B0CR0Y5#R5#&L0QG27OOU=,K3&]1,9ZKQ[3M#9 M<<NZ10PL84,HBL(,ES99MB&3&KKEAO5Y3YS$ZRH<.DQC6?0U,`5-6A2?!N+K M"H+)52,D]4TYHV54\,*8@!6A06$(LK*2\F)*%KH6V49JL-GIZ$P\!$BDZ<PH MGK$[FM!M&A=,$38;QI*G;!SQKS]U-M-Y!9K/:!<F!YU6[[7]:Y#>:_.MSY\W M-5^+3CH(75^3=K]3SS<^WK+1Z4].5.2FK2>U]72D!<J0$S,#G5LFPN;QBQ\L M=7U[!IAYN>#K3//!X@:<W(`OS:[\E!\-!O+.0-)9"R(TGZ[SI[/'(O>G)+LE M,K1*05L0]:2")`8D8F)GR1Y0'".O0V&]K<"S@GJFF:Y-&'OY(<M1]<_%'2HC M=4AP#DQY39QT>)XNA+0CS5>0XW>6]?+<S>D>N(]8C$DJ;/'</)-=UF41W-H2 M:03T\+T\)]??"TLF*F@'@$#3;!2R-@[=;-KB-\[5!*D3G[%ZNY)/E>OYKH7* M\2&TD=E8<R`0C&QL"SIY1+2*79@R@U1"`BAITS$TW>K>^IH5OXE+M)UG$HC; MWQG`C.#!B!Z>/8[>G#O.@;9QQQF9^73*<!7/<HCDF3);!])8N3Y:!-59XF;1 M^D%3(,I=A4@Y;;24*0O0V,L37V#&8`>`W&8Z$<2URY\6T9`>6MR18"S$$I:E M\36]]`MRTI6,'??2B#(:&UIHV)HA0-KK"$2D?HFDA/$43N%.638KE+@%4+8; MQQMFE.!=DJ1C!+-*B+&$@H,"4@C"0-,-M8@T4"6L`?V),(C%6)U%0L]24 M#6")8)ZNZ;!HZQTWF]PE"IXJK[1ZUKH2O?@8BO/W]M__#SZ>/`B)VLA!F'MM ME:22:>\5M!Z_@4+IO'PV_I7.$98>X[$52,UL)#S+$.8\2R/18\ECM[&#+)$Q MAK&HJR,61[>!MIS1UYRV-+&]6XJQ<889!VC1`2ZP#B">YV:5Y08,<A"$E(26 M8PL=FF3FX;V=SK<V,$B$(0A)"$DX.^`X&+BQ`_'U2Y1R8`,1V+@9W>9))))[ M!]J]/"[-49^KLXV>:ZBB0F!"(8%@8JS0??6^$YJT&-,J/*3=N5);R!XD;!8P M6)LC$Y_EJEVJ=$K,+C1`>WRYY&;;),AMFLL?P7H@E6.$NW,4@XYPR@JAF@CI M0\;:5$#\&&^IH+M=,Y&VV&_C55P3)4\1J&DT.4,(1\FWKT^0S\3,D>Y@V0.$ MT=)=,?D95>`B`G?\%0%=%U\36/[$+ZL));65'``````%*X!S5;I)(0"0D``` M`)($``"0D`;))(0"0D````)($``"0D`6`V95MF5^<EW!M[-Z9:NM>8R4;P@: M+186DA/3*!W2AZV%<#G,AZ=9'=+O_(/6]6L;UEZDGF4^M6458,2R7N4[<=O! MQEZPXIY@LKG.KL<MW]@Z3/4S+69F>%EOJ4#4[A7N].P,^JHMEP#8-,ZO=5]A MXVML/L*H0,$D'\B([8\)<',:UZ_8\[]8TE=,-K^2MN$:[NHV<T?8SGW<H"66 M[,\23Y`R2RAL9`JS"8P9#!K)8,8,[5KPOVI\9HV=F9R'X]I#24HK6KY2RM+= M6*,E&ZJ3KQH!F$]GL1PT0&$)CV</<ZSW]K6,M/.>8)!E6V(0>.,+X7CO7->@ ME<)Z5')<F$@4Y2S$;1%`V\YKD?4&H+NF)9=RUR?=F%>J6J!YZ5>UW0.$V&"] MK(%/V>6.Y=D$/"@VO?H]&F6)S;Q<#BY1CP,-:D"S65;^N`EK.RO[(`PTT8(( M3'8SC4[^2TL3*6]'E5\A?I182">CH-JE1>D%)P/6;Z''5'T^C,PH+*AR69DI MJ126V-DQ5W721J)(HW2"Q*(LJ01+;);*4M@GJ\N_?/![>4'(DG>),5XYD1(V M62EX'A&=F&BOI`084C-$[\R)4FP8P=JC[.42VM9S72K#7D^@#,$ZQ-^?+I2? M6=3(XJ;R<*Y%-;FELW!5TI@+CB:T,520/BJ0M<ZVI*RDPP6,0S8Q:-6K2+L= M`9;TEAAFM:IWAE(O5#<N2/3L56GIC&VV@MA>?*:&$,*50IF>FS"\(OD5!KA9 M1LA%$UF:"$<WE#+*0$(Y@Y,C,#4"*PC"6J*4Q.)YPOFKB3LVZ.W(AI74<"56 MRVB;J:68@"-!C1JKBG!(M!H;-:HOFJ!8V&D1H@TA\M&A81A+H'9P@LCTK(%! MCE'-LUJ(L:"=H2`MQ7O$JT5`P)MA#$#'+#JR2_`5.?U9EY;<U+$6\NR%$?7I MPJUQ4EEAM9%EL<@0YPE$0E,AF3177M,[^X96E4KD@8SM#9Y2$Z):&4@0AD"A M-I!X&CK!B0,<L_.ZJNM&@]&C'``,G7.G+O)GEM`S7!<VS7UZ&Q40&UX,IWE) M26)8=/A,[-#.1)F2P*D^G-+/3T=+?IV7OZ>)0>CNVG>#I9N1D55A0FJG$@L- MV4W)/7,8.)\P/CV)0E\U`W[K2&<H;;41/HRS`H''&DP<^Z(B7M%);J0<7"^G MTFE[%TY;T/5@`,>73P>*GL&4E2"@1#S"`@27>GS=8C04Q`VK3%4$"/7RV;98 M?@;NXTG?$MV2B89)EAD9O6AN6?D'GG3,O`55'B+R=H&+QIV5@Z4$:.@]E\I/ ML.B_C88FVVB-\L;UK1\V6((Q\BD,W,TL-H*F9B%-+$&&$(0A+3LNX0DG1<Z) MX;:]AUT58_0XD.RXQ,U&;F"<V;#1!M"+6<,Z&<BA/>0>+1#FO#76]'1?7;\# M@-004,^`XKD33>;&&8FA`[\4^0][D/I[QTD/.%:HNE1`;9:#JV_'V*=H3-H. MP2PE^@ZM+74IS!@=A`4)L-?F.PZ7H5B$TUF?&.UKV#/4_2_#SZL&3$(TL26& M%T-^*R(30/[)'A.W=%44WI*%"W<F]P&Q:D@T#8]]5S)ML?@G%DYQ&]:$LHMM MMM_O?LL+MO/BZIL&F]KU-&O:.3ZCP>QHE^-FET>EDY;;9J3#2X8G62<1I(QF M%ECMWQD6)@`Y@T(M[(@1GFL\?#HY:Y![!Z^/<E=*0HL'PCQ8H&M3)#UW1!X+ MIW-NT*,]J0$4GSM10=`BC%5P6B7T.!A&(>5.?">&\L=3X2$B56#/]<`04)N& MI7,,3OA,3,^==.9Q=W[G:2M?I%\:`)5"*_4`S\PVBRAI0[0UMJ':LM@U$D.D M+]41\^>,UDX^?D=,D#29W&7!@Y>S;"FM\^IS#HBKNX3@&B$"^+0VAM38FUUG MY4F380P,L1;1!GVAD.BA,-:Z>JI/`OZ\$7F!?(C<*^K8GH/!T,0)'=G`$03B M"3HPJTDL/8^,)<Q\!0@70P1>22S\]([M%)6'?D[CA@YD#'`,@\RRB,Z]CI0) MOJ5JDM=>)Z'"!7=>ASY15$3TY.[L6B#PGU91A*\<L>IL]V(=X3N6$5=2"M]. M$IK3$#32QV7NB9W7K:K&@9-KP(`H,UB!,!2$K2RIA@Z=!$H8PQ-$E\SF.6O+ M`J!QD`J@6"K:DT19)E94,4,5!$J8C3($0R4IN-$B:F"$<L(61@-.\#;L,=D9 M-!09F*6.*8Q`3$IILDE-)@X++$BT#388H8:WITE,CH,4P&#AI)I`T"M8L5D= MEL+C6<RPTDQ,8=>N'1V&\K9.L8A:";VA\K[E1415%QKV=DNMR!FF5!D'$WNK MYB,Z==CMDM*UE($R4@Q[_++H>4U,2GCK\WP.IJK7KKFFKZR"\AXS@4$@)-"( MX]Y`<S"]ZKL?`*8)]Y"X<'KGUSTU(\WKW-$YKLY8Q8M,6PT$`P@:J3N2-W)[ M!&W+K*B$AO`T#M*J[X'*`(0S$)>'7&9VFOH2GAIL3HK!FO6R'FT#+9L8QK\: M?8=X'E%MTD!)1H8DJ:3-5DLHRTBTV:`@J0,^_][+8;ID$,.(3[`M#UP5PV8I M*M+3^,:A=0KJQ6.H^4\`=Y!Z#B/&P/SF!0QTA]_/31T%QQ4@XHIOD!_`_LLD M#<CJ5Z'GU^(^KR[[7J[',"4B%)24AT,6BS[/A=]]'U@>:I!ZX8M%4>>E8M&8 M*R)PHNDWT1CQ5F-,%NB%M1G?(4;@#'F*,O"((G';Q&YN=0UA#S0$"9!35F;T M&&<0_#,@]XG0-,=)5U&1UG&L@X,BC!QPK)_%*(#^3\65:L]P#\L,#T+7VQ>A MR487J)-'J\CNI2F8!*4J)`W=3Y;O/0\YRTY/8<>4\N'LB<Q$%.BI:.\#S3KV MSB&NY@CP7M>>\R97?SZP)827C6CZ&NMI%>J*@/E4$01BBU`=^AXT>`/N]YT# MJ,O5IH8"1L3L(=CUQ5%P6&D!`^Z!2A48@0]M4K1)VWDH!2EM$K9E9I"'AX)[ MQ;0;&B"(;UI7IM)&3%SQC2?<A%(G./=GRD1TQNBS38NO96DT.)LV"I.2%89I M+EDFLSTD!]IL.`GUO(/I@:AE2E!H&D>>.-#%"5(.3T;<$0,9.LI@IJ53/<V& M&(%B*$WA@K4`J;)$G;IB>[Y4K/,QW$4,[]7B9EK96K8W*)F9F2&%$(-P9D8< M(DB`[SYS&<0QXL8&V\G#;:+LC19YUIN^:+>@S/49":0<"1A%V14!]'#AL0_* M%1O=9B;W#5E'"2V5HRFM:0",")B;&4J12UL3<N*!@Y0>-`X98<,.*,,FF%MU M10TG+E,T36J<2I3A(EUL`OUR#&&6@A$D4E**)1B@BX-E!@;E-SIL)K>:::@9 M)F*12"BQ-CEG4QU)US*Q5&S.KSE.N0G&D%2Q90-0-7ZRYI,U:X'32"&4-$CU M0F)`V"%QVM>501T&N/IM*:<UJH'J@'^7[`V2-5\HL/R>MJ.J.O#,;,U+>DJ> MN@FQ!5J)P1$&WD63-F$-&T$+5YD'68]@N$$=<PHSDTTD0LP11+3G=;S5))18 MKV:Z;V7I1&K*:6+V8J82H52&L6,&('@AAN*%S+J0L8#!!9CZ&E9SEW[C?C2W MTL",OIT+=))2LI)46Y5S!LI+KJ..W5=FF1;J6B^KSJZ;V;DRKI=2*37[C<)_ M>=S4D6_J]4ORZP*L*5(JPF:XVV2/[_I@^?KR!_N]VCH95$C%S@849P]T1(GI M#C@EB<_V[2Y'TF18`LV,8W=,:%@7#3:P#\.N'G3I*0X%/E4F43BD\:CPI[=9 M?=4;5]L;1*%1A$RF:S+\NC<T94B964C:0DLDI124E<[,51FB%;&+.MUNIA<[ M&FC2ZW74II,U-4&U$9;;[H,@"CJ>W`-A"G!*S"D2)0M@#:/?L%H")(7U&QQ; M,E0_@PQ5*S()V*'0_G]&OY;KW.9E\H@?>0HNF*FFI,LBR2337+I22:8S1J1) M(I'.-!-EN:[-*R-&5%37=TJ0@PQ!HBBR2FV4R*:J_KFMYK&QJN:N5O6AF91H MLIM(NE6Y)(-4VI24V*"M+:EW;II)4I3++%N<E9)52I+:-9-M<F;=*3%)8QD8 MDF9M3;4;23!@I(*5&92V5RLJK+%@9D,B6TG]-[^S$V?C^L]Y]Z*'#D.1%LUF MI_A_XL]&G(E*#$E5'^3TAI#6)()B/U9_#Q@O)034D$5$4%$1[0'S9^X8?<P. MA^=P2$^U$-#!0^K?H_9^Y\O.[;;7X!8M_P0/T?L?,QD]DXGY(;),2+*:H8E@ M]4L'"$RKIE6$GU\^_O_HWZ47\TH(=WP]>CNU\-=C$_GOGVWJ?2Q9-#:`SSEE MG:=4AL`*UK))-F><"63(8E>];W=+.C0DBS2`1N*@OB8,!\OY"-1_\?U%#(_, M&CQ/@^IE_?_%^HS]6&E54]C#O4+,X7)3Z='`X-C<LQ)"7WC222C_BA4)I-)] MGCZ/?Z?R=20=?ULB9*3L/^,9S^9V_O8$AG:DAPX/\6EP#0X.!"'#CCCQMVI, M!###`;&9FD9W-$@+&!B6$+,2D@?9Z$/R?QEGP/\#)U_!_!_!SBNM[85R3V). M)^3J_E3\W]7EI^5_G_O_ON_M]/YG3V>ULQZ?F^'OH/@97^E(>3/)*A)>4_HY M0X^[63I4/4D#Z"=?_MWJL\D%;8'J3,5?]6"<T&5_ZY6WQ+JTA7?_I$";-LHD MTE_2PP)/7U0Z9/\'+#_6]&*7OO!\Q(:A#(/]E,,#^%(=]%]Y"_G4J#W9Q,C_ M;>T)_<P^&=1[8_K]C@/_]N//KI/";OSND/5IS4Y.X>E2:RRBA#OCT[,%^.#L MJE]H^G_ATZ''(\B9A,2A*(^"!_ID?ZH_Q5_C<6W;4W#!K_1<<+:4BG\N88?T MJF+$G\_7K_;4WH_PZDYC>+E2B<CI#6G_AJ<4DAJ`_01!@N?X_XC.JN6`S"1D MB:U3"LR%^L]91GD%204/4E!%/.^$=*-2V7V-.<,.]MXF*?YM%H,B6CT,H5AR MTXU"`W<K1"F.Q@G0Z2;JLGDM8,QC=36D])M<@YX2;4XOBFL$\++AS$S3)>%C M*YWR>G<QT_J1T:32=H<5&#_'!0Y\C#$H!A`6!X`)&)F`L6I33#&:X#U6#IL# MI0@,:8S8D1:]1MZ.WU,JA&F4(T9SB`G@,DBQA`9U1-`6(6@/;%[>"!\T+2(G MQ$AX'>]2;$]/HM;T#+@P/%_.NWF8VI9X+_L,ZW)R>^]E&@_IHP5QF=;A#/H7 M1+(<FB`=!@UR),:8<?]:E(.&`!#41`2ZH(_W?VH213^[RT-B5%TG/FS)R[[_ M[S<_R75-%5PPO#F]=M+')9L201[?]G^__E\>+N]/NV?1M0?P'[!R:8]<3$B( MB(B(BVM];ZU,2+40L2A!SF$:I!>5&E&0E&2%*2!_@G\9!^<)_(<Y<=`_&!_D MFF)@LI+)2("3DT(SYP>GS%*?+&T7<IP;M)-H+,!?V7]`N->4[#$+RRP20F-" MEF5,F11N:84/YFF/^UY^K4]2G4\/7+(@IL5_M9&>I6V.REXR,6A5,2D8.'+< M-*:?]9%X(G5`3Q"`0%!7,_\.%7"O`KI0@;;1(A"@9#1ADQD3XM.G?+/T,Y5H MX9^7GXR2T]?@._97J4]BP.*)U2#Y;KP&]`O?GG76$ZVQQ&6Z]/0OA:V\._77 M/[.^B8LXJ&^M:,W?C>IJ%?OF;G/0S+YZG<C3%:9*689]DS8OLC;+>)&7&4]: M$2]@SB[O*A:*++,,,+*-Y1\=Z]:JM]O5/QPC71[K=44U-D]K&'HFMO9,QBE^ M1S*UG3!K!-7ZYM$+>I7'P7?7E!A"FO)QH)[B_'>]4SK=+>$?Q!WU=A1\3VG" MT1<;UH<Y=&C=:Q_!A\%4!#LT$+"=K@VH>(,04->*PK5Q;"PWB=^89]E*?TY/ M_L_OF<&N5:$R(HI]3H9%2CF[6<_J^FF-B]8EGNX-+$MYR=XTT[I4*;2)0S$7 M[.PV-!9>=9Y,N'AJVVWBFEN_:<\]-J0$"8QE(E*3[-'OM+QUU_:]S.L;*7V] MW[G,]!IE>3CC;DH>KDU4;)$$5,GH4CQ&+3D6+NML$AT('X5ER*K0)Y"Q4,#* M!4D@E)#L:)`<Y&0/O:.Z[RQ0*S[F&_GI\%-64.ERBDR+]M<$YKN!?-*VNSOY MXA]&9=$#R;)HKS*!F;8PYD_ZMT1Z>TC=%UZ06^G:Y'9XW]JIV[J6X8W(7=L' M0.O9$'=795(O(6'?4-`S1AA&?9OC1BNW7&&>GDH7K76%[ZFC1CEI/7I,AH94 M^"63XJ.B:#'6,75U3KRS\9UK[.\XR/2L#.UQ!SO+2U=?KS[K-SDYR,991$<= MF<BI3,:@'I2#I507W.(&4O9OQTB^*+$A9Q+I6(IK2D#E*<5GV_48RWUT.G67 M&EJXI&FV*Z/36V3+L>$&)&M:$MJ5G/'EY])LK5Y9KNJ;6,D<GTI'#VEIH0QD M,I$1X$I-,I*D^-LY99N&ZYQ)O.6V.>JA\:P2I7?D3Q2CVLC6"-2$HN4-$'9K M1MY18R(-\>WRYSA\%(M,X#)!I[E-D2\^D+%:CEX;G#EQ+@-);;(WW)7F^D@U M1LQ8,O;UX#<Y5Z8%%RFQM3X[^(?&%:JMG?@R'<5UD++I#D&R'K#W1[FMG&-_ M(!Y=(D76U]JQ2G6L<FWMWVQUX\,\G$W;8F%;PMM)R#2/QOSH^>LXUQZ[HTQP MMG5Y.'K>?=?!,E'?'NO9@3%A0T>UQ#2GJ11@BH@J=M,RMHBQ7`>19X;R>3#= M\M:PT!`0\TH(S%K,L@G]1QK>]>>UWO#YH/$G^PG[BNN/@:_95I6#3B0/+P"Q M.[0&^VQ(T;8)YD`MB4!\F':-/E/Q*!+IA>_*.A>OVX/)LXD\VG1;W9I&A_S] MQ,C4)558C?Q[&H$TA5B7;.6K@;09`QD&]SWZRF\/:+/O&>C-)N"J;E"44<5A M;54W6&QFA!!R"U+=;.EO_[TY`!:>6R[.1!-2F1IZD$`R=D4DM]B"X3%$GLH6 MJ,^VBJE/15>OP0T2PPA2.PQ%GG(H8)9F1<YLN:%<*1$&4L(#M_*0?L=B@PXR M(,#1P,>L!4G*8S@EP*9K2K-R1(H=4<L(44'L/HL*TX_;/,\)C[*=T4$9""E5 MEE-1.)%T$<H/I:YS(3*:_9-L)J^I(7D66@Z$*YO$V65E$FV7(I.X3.%!$@P1 M?3WK&7M^6&BR^R\S45F0]13*?GIL]3FI-/,8$DNSA0<2@6$RZU(&QVD]P:9Q M:I0H71$)Y<T0Q@FUF=@\]!A9CX("AG`X/#O1#O=.7Q8M7R!"A<)FV@;S,5J5 MP<U9Z9BYL>]Q&W.(ZKW>6O6^6$:WF&A5#`@D/:"%E*@&[X"Y"21*D+\D0 MBP*S&--9Q9#ZE#[1FM%4N3%8;(I!0E`&11=-<J;Q<D%BG*Z#AH`H:!<@CZA. M@F1U-JPR68J)BB3XDJ/)6EDCX(G5GX+$..#HJQX&CC9@,HH/=CT6->F.E,!^ M4?+Z78.F-Y[IE'8/[%;7@C4XT<"<M933,,(@MI,7.3@E%AR-&WIHV0,:;)88 MW18^"BA4:9H(O!1AF!(;,*&QX4?9UHXK;T7-=DDM^XP4H:$&A-9[N"(%`U@2 MH?(3*F4-+,L"$2/@A2`X+]+IL\FQ<>F*V'CM,LSI,3F-^^QI[A4/@\F'HK@H MIW,C*)<$S<X*E$D6.P:="\Q+<909^3D$IP4]]'A7L-SLTWK';,3TB=V&,?3G M(E8CIB^=4>:I%:-%54JJPNFT+7%=WT<WI%[%([9UJ:&=94;0UJPP%PO)2O%5 M9E#5*$B=CH@I,^1Z;FDJ<<O#K!1=HVTC4:^<SD"ZM#3)@<H79(\0!I&NU14# MO4%N"A9+M'*S-K`K[.'99PMCUF&*<!0<$"`CU&:14;9SFDCR+6.BRNN9MX)I MD>4J,2#"'-F'7KWFEX.U>U[/P!VF/'QR<O@L"0'AOUOI13&9_;"B(0@R3$FF ML)@!08A[.\7*46X4A("LOP\Z*@E>RTI9$7)EK(T,6/I9GGF2UK,7U>/J.<.6 MV)>>6F&'R`\YPSE2;M=9IL;(4J.-W5U0\AX'&G7-S@IWE:X;.::,W4?MGJF0 M;>-Y?K1O%)P+M*Z8N-KVS6`OHT'1$?D41+[RTQU`=U9RT4#)K91:;^&*^EOL M-,4R]/*5"AUT/'<GNB98F;&)CZ"K)=&(FUAH]K0N_)/>]N>?AJW]8Z\:AH?9 MKJ<^7M,4R5\GDT-!T@2.T8EC-1A+&.[2@GTH=;107F%+'6AF,-6GHH:Q"<-^ MGG,R(E(PWAK8I3\NE?6P7[Z*7MR;685FR%7RN1-SW]7H>[@ZYOE:6K[+OM0T M#6.Y3^YN$=BKZ+X]LV65E?FSR7B^JY(,`7@*KF4;8FRN4S^[H[#R,JJ5`T#5 MQ\/8_K(D2B3;O,A2?+2G6E*QC^YL_[;8Z%55Y8N:;T745[U.4CM.W%$^J?;+ M!4MD:,SJ-^_3D6ISKY#4Q'F<X$NT8??9O0/`<I#D27TB^?Z1`FP2/U%Q+;.% MO[@0H.8<'7J!W`H''@3JI1"@_$7\OZ!`FP2/K*%<S;W$E\_EYEEISYKN"]?; MZ89__!+J9H"PTEW\QL@`[/7D%DV,RO'U'/W?)BMG][B?+L[B:Y_%D;6'MPHX M4+OT\]2Q]]]Y7:X-N-<]HI$J,WZ>QTL+JV1P5=#X_<'>C]A^[O-?:[*JB@C$ M\WZ'D'D!Y^7=Q\OKU-?.D)IP/K+>DP?=1VO0\>"'FM*_/!F!A0O-4Y65&VKQ MPC^MRJZ:B_#Z0X0[1D0@B_%ND?F+\_@0)L%/J-KV^7'W2FM4_#N-A'AB/>S. M\SR,4O7\$1N=O;UM'9VVR@A+3VC)DA"AKNE"-F)IH!>T\J*WY+*0`V)$8D<. MN*_E/?F?E,MWB@LQG2)BX\E,C.;=9M4&"[!A$I?$4TOC\]'OYJ<M,?TN3WSP M&;TMQNDL.QBII([32BT(:B[CI',35!+V?U5]L]:",VVFR63!%*:9L?UKM[>/ M.^>DR2NISS!9&@V$R1CIEV3W>\0A'P?;ITZ\_RG&PZ7\X@X:U^<YY2(Q0/G[ M,EX9W*XNWZ$DB4H-GIQMB826(1N`P%-H?!0[%UE.@!L-!".QD</!/EYS(ZT/ M`R7S@2!#!I+DA4LZ]8U#N9/V3U)^V9"DGA-A'WR';]3>.+WI+*9YIO$,-.+^ MR9%G$=/81H9L;;]I4<Z&E59R.TN>`/P2W9TG%R;+U@-90I4*DCU?T=F=LJ8- M)3)XB41D2J954TP^+G7L(/-RTS)%V&5(W_T<%,^A@__(=WGFM^D)1$([?!BY MXBBS\NE5\Q@L#FO9C#M!3@MP024#()$!KU<)-%(G]\T3E36HO\N8_2&R)9YP M-Y9%0CL)TKGLQU-"M2Q9"R791K`'!EJJHA3*-DE$X1:E,^WBR6_+L]Z,/:<D M-&:#HK>-[E\?(12(K<&.A^<3:L9553KN5*JJ9B9\=V>IUX\]5(-V3<F]R)=_ MRY3?^<K(UO`9^1E(F-G!!(_RD4PKT60OX='W887;;SVB^3NJ*9$VU]'G58Z; M4D;#;<B*9=>1CXO9U&*PKG5D^)F3F:$2E0>H4&41[FM=NXEQ$WJM'P_;XU*R MMRG6]5UX%FCB."^IME1F4\N\YWA%32L&KE)F[RQ[*L[%E9E5EW6EE6D2AQB. MT-T.5N#N9C.U:==UE;3&E\YF>N*%+X+N(NJ3>Y[[$C:^?+-NF;R8<).X@Y\< M*Q:+Q:XC^#+S5?8G%`T?9WU1G>IPS3E+;S[`QI163)Q&46;V>+&%IT^_H2.A M7P:CPBQIRRCT/)1PUNM\QL9B((6MBQ#O&>>6;[\JFT_K<EF::<^LG$*O;`C@ MD<KS#.*"7'H0HM*&H=IAO0C<8J`TB44JU*:IZL-85H8L!I$HI5J4U3U8=]%[ M$G0>WA.N*M;2VEM\NIR9MMMOB,H31Z;X;FYN;FSR&%96*72S31J4>`'H=E=/ M&>`A+F?^H!WZ_/QZ[QCT2YJ)F%'7:^<">D2*,9">M`]&"Z:P()T%`@#[&`D1 M+2WII<W0M)O/GY]I;XO*CEY1#F]7-]E6SP*UM2M(<Z9:4K>O9M:=<^SVWX[: MN6NA&&VY1DXUCY=M<ZW>>5'(OG6:R-Y2BE[/B'.)F2>]\(=+\0ZY16TIMQ$I MQ:C;GG[*W/+2/,WY\WV]ZSQ5UG/VUQ[5IUELXPI[.R-[Z;S%K.;.CGA<W6!S M9KN<]&F0Z<EBT$1KE(TCMZ:\^S!S\`;.:9P]SP7A((8=PU=EFLY<'0D(S,CM M&\X,YJ[/49^(2/6@-/EZ^C8^;<56/+JG;M:T_U,NK:<%B:T!-,!=A\YE=(V` M5#(8:3_V2"<A([.CFLV@U8#^3IWJ1,MJ2R($=HLD/?[#L&I2>DP9)[93)X)R M3RF'\05O><DQU6V^_>10,P8,/B6)IDZDE(^4Q!)29>01]'*.,4#H1R0TP&*K M&F1*BKM(BAOZ]"1(&4]&.?"\`7H8.K)HN":W%(/D,@^!(%H.A3OD#SO+R8&! M\'(A43NQ0TIC1";6%%AAJ7U$L.</VYD([.^Y+W$H$7/,VO\^`^W\%KR78>W1 MB6,.`T1#9"AA$$%#*WM:D'B2I/"HI#3[CJ%Y7?3(T14>'#BL(ET&!,!Y^WX. M]%O#+65C:<E/*.L+9;%(;UE3SFUA/?Q0,><0]XQ\8F$;*;UWI>^H;<MHK)8T ME*!YDY1S6:%%^`3550A\OJO1IT7Q9O2&0"EY^FB[K7?H(>XY2J5]?8/9Z5+] M:0&4ZM51ZFD3*%YWSG%QIX.JD#&VW`7813QJO@G@R;I6Q*A1?/ZE!,R*&D^W MV#P)J1V',.XH/FQO,_J.7G7CKYCRD^Q^3Y:SDI'9CB)0O,IO2:DFSZ0SO-F= M)S)U:YNC"/'RJ:10/I+42\\J!XP*#J?$J<&9Z2X+*YQHCI7<O!8=<$CH2.7^ M8SP6N&H8<:%&1!`H:91S5'&Z>(L=KSY%<#S+2*RR1ARKW;>1?4@H<,UWR.=B MCOFI+R;\J9C*]ID#[!BZUW1\G>U=_F>(QJ#&]:\>Q9AE884PL:]K76+RWR7& M65PWP69=Y215[LMQ3BT469F61:=91APF=O>:6ZEZ*H?_BC)3,^S.Y<S5.53/ M_7RZ\R9+R;</1Q,E+6D/XQ"EH;7=[3LWT@AOXD%+W^G$$FZ1=]V*P16><CQ] M\;7RUJE/72CJV7%JKY^=]'QWZ#;O`]^WVA^F59ANNN.;LSMJR[Y$>V?KW/L< MX,7G53TD*Y"$S-T5>%0@Y.79B`G0^?V):T($+K%&88+-G-V9[&9VG+S94J3+ M'=;<SZ(Q;<C72!+X4.V0NJ6'A[6+H//O/5I-I<INZ"904P#I#1RP.NN)Q)J6 M]W8TIJ*4?)N\\,>^U'R,HM>L@S&!_HG!TX#0J3SV[<^*[5>,Y+;O:\*]U)VU M=9#<2'N!2%\ZRKK85.S.M2M-3-M5S`UTSKEO*C%Z%A=_$T>Y(&+_E<WK6ED! M(3!9A7.FP]*7G#6FO'DVCG,B<C<F)#ZY?*8S#Q^/TRKFTB&1WQ8F0/I'@F@K M[#J0%9O4B1L9?D+(ZJ+DI5ONN;NL"SC"K_+GW^?W?L;S-OV`W]4+`UZ,]#Q& M,;;S7BVYDUZ+?LR2*76D]9134>5MMJZ1\#?L]S;]8E=?CGCZ=\:&E^C\^Y\\ MW*1W::GU+#["46SWV2%F4>P:F)"5D.[.UQB69O_L90:D!R.T8K$C;MQ+*C9_ M$:AT14K<.M!)JBFC$ULM,_B!8+9#K*G"=9B,*4[=?A-9^5/3KNLJ,HH_!.+" M#IBSJ@IKV'[L^E_9[X\04ZY.(%-IEVRL8N#HHMB.'54>K['X-,Q.1B^SLCU1 M])O.JVM">M[S;SSXH_LCMK\1F-+'0R>$J,\^\=`DBJJK%\]0ZX4S#@M0%(/+ MX'6OD'H>AZ>!@KUZ2[CL6TJC'W19=>MKEX]PQF%;-40'"O-MOEET"HLP8-0( MP<V?D,-#,-'H_6%@,?KS//X81%-6\X5P^N!Q:@-'<>E&C_8R>IMV:#<T%@8` M]X10Z&YQM<K'.)1LQ$[S>+W1=3VZ5WSCXP-(GQ\-BO;<[_"YVJ>:6L7*)@V` M=K1/Y>NB=0Z'^Y=B#5>J9A.JR,^V-A;(&?<QL<*!!5@&HHKV?#3I'U*`P$H9 ME51P=W=XYW="^\XA,:V^R]EM>=U;7S;>UDRQ_D\_+;\RI`7]D=HP/5GHOX'/ MG;=L8V/C[N.Z)7K$J9S*,OZ0K#GZ1DM<>7^SLG.IX<9DS2H;=Q"%.\6\.-IJ MLHDSIFG`8?H8AI:N'X,Z81FFQKT:.>WN?)[K2R7?!(NU`H9>^YK/2Q`:M7;I M"AO\U"TSZ=I/;VT[7+WNLD;.N<(R:C$;3CVT./$<='[85(42]:J?$Y:G/FU< M[WK+4]:A^@Y.-8?7Q5[/T]+1]NM,D_)/K<@^G*"ENDE=\G=,`AB^FQ%,NLEW M6CSSOUC*YTZ]:N7?U^S3OET<'2"K`Q>>5R6M0"5S&?UZXZV6M9?MJ?.X/N^C MJ?GDSC7=\#U4JO*+KSNRZXTOK32GR95%9JKD4G+*WZ)?7SRI,.]ANTWH0TW1 M^XZ%.W>V\ZEPV)/E4,K7HO.EY:XL%=(O*M+]N#PRQ5;[$KF;N/IZG3LMW=.C MNV2&<C4G)UJHW.D=\XT>Q*&V\;YQ*)8Y+1AGI6C>]0L[MY02!]=+K4>BU;OH MI-^I&DED36GW'*QQ:U<]WBEN^Q><'3$2\/,ANOO\IS](E58",H5<_"+[!$Q: M+O)5GL\F3G>5R_;V6&RS?.BJ=_+OOW9VL9)8FYE7VVD2WLK2X(/;2BD%7`,I M$OTV)4B91RFNYJC]7L<;C-_1ZUH:8E:N,[%).ZRX-*.[>0KL]6?#/L/8R-B@ M/7?(RVE6M&Y2B46I"(<'NL41/@VO.T7I;`U?FPG$'(XOM@R.6YE@S6KB;<I" MMUBM-*2)E]X)F&#II)=RHG2"AI@M2;!AC+,\*(E\0J93TUXV<R<4E3(W*VK8 MD^F*J3)L)X4S.VU:'7?(Z'6E2^DI#A-R83<CNQB26MC()=#:#KD)GO-O?Z'? MQ6ZOEF3)R(,=)IS>O3OGV8FK03M7GEA5M679I0[F:UKP%U1,LRT$F]6D,O$B M4!/YZ[3US^'3*FH7N[.FD^2)W@OKW7D>\Q>R(A]M`O/*4<]+U=#F.H3A]61E M.TD;Z.<-N76.R13LOP\>ES/.D=C)CP!C%0RJ.N6,\2RO;KG6>H6T)TE&._GE MC;8KH1*[P]6HYQ'0Q&6ZK@@931UD6>6\+)^<X?(\,O,RS=<$G#3+]"4J%R7; MUI9,X8T>[G7EWP%6,FWWMM=QE&Q31G6(*904D;Q$FNR=:%.LN?.)XP0?5WN5 M^-WU=0J'IY^W1]--^C,K><#P_H;GEYFAUA5SU=N+PS+HU\KU=.FKJF^*5CK. MAJ_7&?I?Y$W\JW6^EU7FJJ:]L52GCE9%5E?T:5%MY#1.]*%F;&4GI)MO'7?G MFS$D!G&)Q)F="[#PC25:-)CDI^$N\\"#>""![R@US[RFVT':R![9=;E]<TF] MGMK>&2S/E4'D,1;QA0"8>3-#HH&O9,[/;01F=79KNG/Y8*%/AWS02@B9D.<_ M:^]R*E)^42)[C7CS/,J;G0D4U"VM2#/,<>3R^>"@Z#(,1'/FD;2K>.4N"7R& M]'&Q2)E)9V9S*%.UI7JBE9&4QL=+F=RSC1Z+T\P4%F$1PR11J!KDR"6A"[;Z M-4Q0"S&R^\ZF1415L::'L/P%YP@_C1]2!OD-%?0Z"MJL<GJU483!@PG^AWLZ M2'2<*KIXH7*+<B$0WY52WT(#*/#B<G#[DYSDS#^ET"40(JPAI58V?*PDP@7N MB=8V-($=.V%S-X%=^+G*&P(:-#$1(B?'NK(V/.59N]_-DE)/;BAKU&S>I*7< M+->DR:3)261W&YH/'H]E7\#SLCIGX'DLNU22VFR><^A&[9K%9]*`_>T`+;2% MAL@'\\K1R,Y(4J&N,%6&0Q6?<;T^6<IL9N^8<FE\^47?5`89=WB&!Z=/:&<[ M(^8B$I%PAUPVV+Y5Q`E%)K8SB:KI%]'*91-!'#'-=;!%:?4H:8Q2EPG!-#!_ M3SG*:[+Z-ETOR+X]<+@<&E1:*LW2(PIATRYE)4D`4/@=HC9;"I"A9\N-D\`= M):%>1P7OX7".H/Q=QPO-U\UT>1-_N\N29(60]\_YVB5_V!@_T$9HB)BE9$^^ MW;.>P]:Q?>K%V,)B>]C@&=@4H24`U`CBE-]JA%@D2"W6_2JPXL2NS7`P!Z>> MJAHP.95])L[!-*:P,C%CC#(O%:7IN1Z]+9Z.IC\O=A*[N@_2/LSO1JY>7WE: M3&8MS>JO;0?YH'R_A&V[`,RJKP-OD9AA/E82`Q%+_G83>UW\UK>14=3*,F'# MA3&K(L4FF)4&4T^NM;WN:KYU;JS4M94M:-,TWNUUE[K=(@FB#((D@@F%_JW_ MY>#8<,M#52K(M;?YW]KC9.'8,37-VTB/J(I`1A%"4W"`B8J((8\%,.$4.]AY MG4AD@8-$H/^^LQ50DJ0?A4&14):A*HX7VZ9:@^(A1Q)0NF"T4!2B9`$'4PP` MBE0_9_`6*C])&X[ZA/[/]>(G>4LBAU61!8$P(&A3Z?F/V;^4_ZP,`4$F/S8< ML>Z7W%5S&CVX^I"0'OD9%I55;E_%5CPKW+A,*L+(C&I4CY*QJ&(9(JT:N21J ME2;:;?9N1Q1PO"U:R,-3'_<VQMC:WY&HZ-HW)HH-,&FSR8%4=H(09=.-OK^J M:]3O=>R,)'31BD0D$/KOEPXR$D#AZC&A^GK.K0=5%9DA%$C]WFZUF:PQMGT1 M[LX)^+5)3E/D1#;V/NC:M"<?E_/+KMTK^5TSD\VT!H[/-S9=A?/\/=2YRKR< MYMW[N[W.W3:UWEOQ+2KO(-`/Q"?+6-M+#O:):F4!++*F>U,^77`2QH;?>2G? M0ZW^_^.X2X[S$,#Y3D2"6;;8,&<P(XM21=K9M'4@\2KA$TN9"[]$W<EAE^Z= M\M_<3++M59+9>\\T>MBBZ;$S;9A7QZQ-$0!#$62ZB_+MAI_N\/V_\/PE_,?^ MW_'_VITU%Q\/W;;E%PCPN2M_O^'^+0;_W]G\^OMD_3<^<^$H?FVT]H(8>Y1# M3315,?[SD1K]SLYY,V5'_.9]7CHNK@_T;.,7V/;&T]U37'5S]4R'`=E!;+^M M>-G,#1112Q;&5=K>4'!(H9A@:-&)'#,:;Q,V-C7\AK<.KW%X\JETN%YCX*79 M_4%"3FK9YUP>6+^G-*IIGBK,PNF':MME*X^'V%H6CG%J%O8?NP]B4N35*,NJ M7H.SE9J!5Y$!]<X19A?E^^^8,H2?/H:*VDZ+9A@T<G/["E3'Y+.6*RZIG7CU MBNX6[MGR;93&&@H]6N7/2K<U6WP[?`,43VUMHG.'>+NDH=(PZ=5`N7*GP/M^ MQ!SV?UA]H<!)+/M*[\SI1^6R2*[QRB*.9@[-(RS,V/ZYDB\00RU>RQ0?;9.$ M0FLYD`=[[6>+6:O"R6\&;.]HJYTU75W>6I^JL!]JWK$G]DORH/BF_EI\!PE@ M9`53W#B=WZE_S?FOSERT76-*CR[0-1+(N'W99.DZS(&\FF'YB&:D9/0@CWR< M82,&4B!MD/%PZ_3T?Y(1H9\,.W2`\AGLV^[^NI/F_$/KMSG2Z\+#,D`+U?&G M<,?_3+L_L?;]/Y_^KW?Y/M__?X_LI^3[ZU?X;^AQQQQO]__QE_Q_X?_,OZ?^ M3_BE_2?KE_Q[.[N_Y6D?ML\G(S_Y_]W_3WI?#Z&?)^SZ_J]GM*![OH+U0#38 MQC10<92D$FA'[?QW,A^!4-RAP8L)YZG2*76?XA3U/['F3)N!T;K\6)CN<P>8 M^B5:6/[%"_C/7E+,G6)G;)9PHA:%`V-$1^H&:M'XC&#+W66?[AD9P%:5?Z!R M$@V36B7\)(5Q+MH)0R&]EA',XI%@I[S4(IQ(R1Z+?0>GD;;(=88P&'A'^/1V M<E"SY9S<L+9*(:,X55#(&#TRA7DU87[FB=([V:)@$&L"ZUB'`S*+8"97+:J= M4H%S:0K569'6U(,\E^X:&,L"HDO'07;(SV;@[<26HRW4*HO."OMKRR#MH(_# M"T?*P_IT>1P&B#Q_*NW:TWA'W]?NVWW%S6AW&PKFH=6;-IMLJAQ$B4I#*"1X MF[`QF.]RS7*%_%Y09Q'.L3<3A$?W?;1\YCFKLEQMVG_<^1K[Z^HIW1HY^=(/ MAZB/F,PT9P62L=X]M!0>(PS8SUREB3A+OG#AJQ#%)5&?R/=`=D`0<$%!,NG! M>"X;-(VDEF/9FR,!>1F,.&!F[C18')B))J&OY%70WEU+)*)6Z;=LHY:B/"A) M2,AD65%@I(9D/?UEMD=$CWQ&C76H8I+-L4I:75IC=.\LYK7.`ZJAR<<V_&[C MEG"ZYK<"4QCYWZ6$<!MAT5BAX%KKA5?1CH?Y#W8&/*-%\GC$4-=:IUXGT8<C MXX(:FL''L&-!3P1W$P;Z&&HPL6('/3@*P9\AA]1\`HJ5O'3IO;R47A[@PR_P M]D>ALP*9Q[T/SEMNW4=,(TI4X=W*YNR/%DRS#O&H<A75ERGC!UYUE51!)E.< MPD69PX2APVOG1%F#.&(-?-NKYUW;0TJ(?Y'M2\-.QXN'DM-#M-"AL3-SVEUN M>M8]WCML8:I8[C6M30:D$DP*LY(VQDF#=X9))TJDR_J6,]Z=U?$+=;ADSQ;W M?/RU*"H_%M[G;@`"B$'B3-3$33-ZL#$9)A'T&EP`M[9-Y:1'ZACLTN2+/J8I MT4HL&=5UN<S=KM&UW.=VB327=NH4YA3=V6W21O)H>BR2K=G`V+$3.TDH`^-A MV3R[N/958`;%C9APN9V!O64,@:E*X',:)@V7%/-HR-.N&*EZ9TB3]*23ZOBC MD\BT<<CTT10@._>(%W%^YOE=NQ!`FV-DWP.&#E%T!"(/C/-6GH!ZSZ;&"^71 M$[T@J0249I<S5#AXZSJJJE5/KTO7P.].U<AE;E",A17LTF*2/>C;9AUS#3DP MV&):@PH;/9V)'MDVI%6LI(BGO]94]-/Y;[/QC8-QB6H,._LWI(1S)B&3$,GU M%:"Q-2\RN1Y3PWV1+W+WB*S-Q,.H^]WU$R`*I9J@G05%$@.R(YN@J".JHYS, MI\C_#K1+J&LAG)/C;;)1+:D1-6%J64A5*+G1;T4Z)GOCV(XW:I5$@N=9]UBW M-HQP!MC)"D@[@)&7IVW(@OX8I7N]?!S2-!=D$Z,Z,^8]E%85:@]YSLLT<AB4 MP:M:#D/NQYC&,X:LG-I5;4X1:L9Q$.;=/Y4&054\`=+/THT3%)I]:==%=2*J M0H2C"-/#M39EXVZ6C.5ZY4DT;-Q`.37J'C)>RQKU5/#GPX.:7-H%!K,!R'V1 M#(YQ(;^31],[G3LT9?/)@W!#UT(ZG5VOL"!.D;CV$F]YHNMVJNFC'5.(B"3" M"0DX+1@U!Z5[C:K-\]:N4I)437)D-'(X.=$6K9[\Y?!`"R2+MM;]@9/EC)<, M\(5JX].R1O673WL)6-C3;V])YZCB5R#[NU9X;]22/V;;?G]5<BT:DV@L,K&* MNZJKVN`'W.U<))((9AA"('%D2T6;GS^7'I-6U?S-=L9E#\3@/JB-23"Q3`GN M<2DGUMC[.OKSK#B.O:0-27N'/YNZ%WKO10/0C0RW@B+4M52\Q(`^=,**^&+_ ME>]<6E])\J:%OG-?UE["-$Z_T(^@DI*(@@^\&M:(B:C/V^&.10=C98NZ,A9` MM?P?.T?WK/ZS24_O74MBD1YSE3YP?;])?BB@>M#:G0(8?@!X/M]8QAY##O:4 M!%(/?,)LB(H3/T?AZ8M5V/C\,LT]:JIJG;C)VGSXM6.V0T.T7A>YJFI#71B: M8WQ5<M+K')FEP<#8Z=;8Z,@4#YQT,<;NDB#",N#+'8V67,Q&F"AE$)IW2KI/ M>[PPO+S#$7F[A-6U=K6X^BHO=6!;54R]A7ZPL8WPJ(F;NR,-9M6BDTQIFC%5 MV)NOUG[LMCHM75`8M8];V21\91BQ"TS)@9,XG\<V:E>/QD?"2$D+="2%_90D MA<<N7AQG!Q\_R?X4D$@&E#U*!YA_^51$-*B(<OQHDR0D'QLK54@8P,P$'^)% M1P,`-(J/F>9ZWVC!!Z#[XM<1LK,3#+(B8QOPIV,,<+:@B)5I8E*BV0K(B6DH MJ=!J'N+Q+P^Z-M.N%H"!LC"(DF+C?+FBC12F,!A,@PA0FVX4FD,-[Z'W&AS# MN:4H"]QK!#(^9DJK,0PVGH\FYR>_'+MZ'Z^SH["!G\2XAL;%PPTR_Y";&18# M$4T,7>QQ8(,*&_;]R#4(V3:B,.30N/RN^?/C7S_BOK^&OT_`'1QU7OX_769[ M:C/;?6LU4UCKY21RG/#FHB;BDK3M,M#O+'*6#LWWV,Z[9%]:27OO(GI*"6C7 MMXBXZX^^1IU\,U6G2.DUKI'6E95ZYT9@TIM=W9CLQIB[EO*L^3=\8D0G6*AB MN''%;6CIE)A$^*4Z.KLZN)8B-'/7(HW8UC%*[:X-HUBF3*9M)1D]JQ.VW*6K MK*F6M^L[:1K1HLZ:-"#0&+)H"-]=9[9/$L[.\W1J4]M@:')L#Q7.&#/::2YL MXNEQ6LO26^&:ZM*,"UO2T/3-</</<>KHS74-]49M%-D*[KTNW,XK>J*7BJK' MH8_#51\/9G1&SK,,=[88GU&N$KELQBL*&1([C@YL[Y2[U0(4E5I@TV9+!,Z+ M?O@\7X\'+JF87O[,?.(.T2#Z(D&H<3WQ+.FQ1#T!W(J,G4/%%!]R*L*\40@0 M%,H-50[_EPXTOR^[N_B7E/$#Q@$+93)PO3SK!QN`(LBXI!:"@TL-"@<HJ.\C M$5'LB@_!0#U27I11@Q:M5)8H6`J"K)'0#PNTNH6A)"Z%[M(Q$0D"[/$#SB&T MK$C>''J%IXCI86)00UP$I)1L:1K)B>KU28<JS";D0\X9!&HVN2;!^/&-004< M1P(T@>$I!^XD"$$6'P>U"&>![9MP31\#L^3^;^QDY_SQ*_RTG*42"5*?JM6U MEJCJFO)Y:Q`W,3DI.U8*(/`8J`UW,/ZPE$\4^AR-+BAZU!/_0(?Z_'MR\@_P M.>?[K90;D7M)'HP.7X_9BNIX1Q`Y8$,0HTA@X&+"&?\_G;>`NN)SHY],&Y-T M6S,.AG!"%2NG(8FEGCA:R)*'^F8)L/IB/VW@N=[(."$9"S4Q232,^UG#?9,2 M/N_0^)`H450C6["'X1)L\9SYC%!/K5"*NVZP_I(?VIIJK.%I9BE]H_F_J_HY M'F;84NGH\.:*+DI3=58AG:;%]J>QFAI/18RFKG8DNV(J7:0+;;)K36%4R9ML M0[E5Q'O',A"F9,A?9>3Q_:^(?7];>N`O0*4;D?YV@7P_Z"@2Z_*)0E]807NW M"7T?W)5_=T.24?"]$T]HKXOAAN#XV,DW44NKB]]J/A#S#0G6`.`)`U(),3:0 M$[=MZ7ZV2EJ`OD.V">C8Z3Y(/?S1BIU:3^6.887:2$_%Q)M[G43([5MX-4D6 M#\A0_#)!^!*I8(/L.(#0:*!:"DEE)(SQYF]#5'RD?]VI"TAEAX_Y;;CEU>4^ MA5L69$'!!294N2FS:9A9@DPY002&Q!HQA/-Q3$FV8!GYB_3&N8HDX,3&2%,4 MMJ3P37RU'%G#,1=_GU#W."?-H4M\AG(_G'1IIX\JL:V-"R^6@'O/1SQS.WZ\ M^?".Y9_>8P59#K2<)43R>'A7^],LN\#QN:H8DN\,R7`H_[=0*H!DB!(P7@ZL M86A53]QZG:7?8D'(,[2[ZV9Q%"@V`8IY#^/5@>2#T%<6\7_/*1.:&0\_3DZ3 M.1\&&$]],#C#+X.*GZY]QW=P?%\'18]T(\.2)/[M9!1?5*$&0'L@.0"PR$68 M=_D9.FA8TCP-?N[NE%NK_>5P'.G2\,/C+RL47MY@7D0<,4P[S.]\`72^9H(I M"%\HF-<P@/X]_EES&_3NDIS(X$_4?QD0T?(1,8'M/*ATN^6,4X5BJLK,$R+) M5<JRB:&8CV_$YR*+#!0DNU<39(9`0M,E\68')JZ?P;TO#RC<Q%E'R\YV.\FF MGN0^4H#P/^<>X?7\5:=#K59Q4S#(</\9$0,8+;F'.(8UTX2@98_B;<.2!3^' MG]42/3ZX]M5!.3^'PI>\J@U.WOI7%<8S69I`,`[F9TH4#U1VP+6R!`OG?Y+" M*+)D>IJ2&3[?<55"@0D=V@]W7$V+F4]]P^Y`#)_1+VLSZZUZ>`U$6Z/5J7L< MGUAW:.01X6!CTZ/5"^,'?]8PF+^I7>IQZK+U-3E3++%,9DRCO2UC3^H\9MI] M[/&G*[]K,TTUBHR0HC@^&4SMF0\BB\?5\?._D`TN"Z*&%VB&D-F*$)+W_5EH M322P7B7;W%#,5*Q!)[:/&C;Q2K([2]]JJ;3UI]0T]42CI9,Z:"ZH20NPE?YD M)(7LKV-+QC6&?3!/HF?=SE6\<N+ZVPCZ/KXTWH$?Q=?MCOXQH\7O[]<$WTK/ M5PI'SE'V;6UD9YI)6`_3[Q@1LFX:/J6H1R\.>)^(RJZGAWDST)D!XPDH8,$G MRXF,D1,V=NVCNGXY/J(Z[JN/J/X?05_G1^M$=!LIQPC*604+K.@_5\@Q?:>C M.!`>*EL):GTK]0'T8;3;:1OS#6(8Z(/Q$FM`!"#S^G1^^)->[WOZ:J:]T_?2 M=JM5=9_)2M[Y+C<&>JD/M^C>OY$)`5#[7RU4)!N^3DPRZB7S$H&Q)@</AHZ- M%V5&!LQ9K-.(8=`E!5,+-48V<N?)KR2.T7`N7"SQI&;B(IM+L9;E$[6E$7?% M;UQ?%PCC!4E,S[(5F6.OD*$2,W\J89!NH;+YD*/\$"D%(*`_'T:4Y#)[RGP& MBE(2LPI)=_./WQF=K$C.VSU8^(G29K4G%9[61-RE:V:X26>0U3KUT0DA3I;1 M=944PAT^J`UR@NP;6[W3MU@)LX9177],2SAP?D0DA,KWN$Z49#P7.`YU<N?: M35^O!9Z7P2SA!)SBN,LL*ZH-`^7.Z$D+,KH#S8%V$V73ANL&=C0-SP2]#[OX MX4F>[?\O!H;N$]&C=)\!Y5A"_1V!4ORYY6G%3*O9U*6LX8%<2Q>57;/+++)? MG6_V=7UY3H.F4UP_"=W7891Y9_(#PNGFY:9]3>*()WSE)F[TQH\W-5BML9)4 MHYN5[6O0NO).&A4^"X:4@%^67[\^>U?CPGK*J9H]VM0=!R0DA,;I)*(FGZ^R M5J++I!O[_?Z$KI!`<PKV/)Z[S>6YX]?L6*&]P]X;>^;I+U2RLKIWUQSOE=_$ MBW9Q@9U\T5'P=;'QN)T/Y?K!^T_08TM#=$R[CFXE]:55QY)<Z8*+"LDE16V6 MRQI2EJI<XZ[\6WG`^$MBQ2>+6(A*`PH'F(0N:6TK*T9$:UA8D%D8^6NL!C7# M_H$,8&UO>8A8ZC%T)NW\V*K0_IG_?+`Q%F"S$LE(LLH)*%"DI#5D'_52?_2C M_E_TY(=(<F%M52V4--92M)E+_+=(24V*QO#^?'145%)AB>EC7!@"F2(?]A#Z MW\.GH!3^\_NF8""6^^!3_'I`]D#1^(Z.[IS5RQHKE;K-F_64N<TC1*5YE^N: M>IB==-Z,F2K#'J]7GG?1%M&EHF,C"._,"32H-6H(N2;&7DEH_N/,70DM_]W# MB2=!P#&A..#`L,4J)'`(P],+5TP=(NB#B3S1HSO"UC*7N=#8ZAR6%-X<G&DE M:_HC+4+KJA`E_Z(,-%"DB"JO#3"*H+2KT0(!'7@SX%H!T/[Q_0]GO?Z&'EA# MZ'A\GN?4Z=CPP]ES_;?K$.7Z:!;,0;\C4B4J4FZ8)Y?HQ$YB,(-5HH`,/6#1 MG']LRI*;RAO^BN?=D@JFMPF%@D.QG$W(;D1-#4T:D-EAS#5A8H6@**!AD*:$ MB)_BV;/7\_\V25_U0A=I$!C_3_-):9[R7V6A&_/=_Q;S<1EBSR<?Q44?OO!1 M54I)4'VKN6?.M"[-E<HYC)^$NW.U"_Y;D:SK6FJ]%W`%2N?J7?:>,O!]*>>I MJY^_2)=6MC;K_1V7AKI(BS,>?ND;\0T9PFZLS@B9."$0X(&/.Y?A[U(QZ&NW M<7,8BBQK61@C\&#!B);+46%BD6M$_E+O+FRD.N[%`=W%S@7)J&VPAD#33!^D M>36'V>SSOGWU\C*-J=CE)H_-*?ATN[A",)==UVY,E(JJJORT#/$.1-]#G#?" M'0'RQACS/,U;Z&*S=X5.91>58N5>!^,^AGM:_-]A*N647J:Y[\'IC%C*4Y*` MAK'%:SKJ24:[;Q*Q+%0_S&`]<Z<'%JE)LT-?=G%:ZG.7C2)H63T-Y-TI=R)X MD^P/$XV'#'K@CM&,Q85@9*)D$89D,QM`7G"%_I:0<9VD'9?$XFVY&@Y^& MH7:S5)PF?3\X:[HXU9L&P&P9X:]F*I."N4#I%7O-TE&T8>&!7CR7=+&KP:SB MZ#'=[:UJ5-F=M^6LPD->`)J6CD2\+0C/II+EQ"U]8*,#2).\\5[Y*;TOGI/` MS9I;:$[$5TO2U8(5V1D8STL$KOG9:)I?"=SZ\K6D\_DSXG]B9TZ75';JS7VZ M08&Q/&WH93(;@*TY+O_3NII--MMKJ]Y;1\.6U555D:==TMJ]MQZJU:IG.M;M M-T]N?T>%5V^'1%*C`=JQEC=VPO5&"#%2>4C`J-A@?=EK]+7,)J'),@B?T,.2 MW.*AWT=<$]70Y=F8F[[]N/_1F_+>YW&^;#KCBGAG[[T1S`?I^P_!JX<K<.5+ M=5L4:/:RHB3"9?'@2L^&2)GNL0U\G$B2_[&K)M+VWAL;"L^!T9;A@U*?W0-= ME6,GSD\\?B.I3YI!<Z$M@:*FM%R4RVSA-Y1O-5*U"*$C(P'R9?+NMB@3U*]? MOJ,!IYM/U(J<;913/&.>F9YM*&FP,.SD_UV]DA>RQ#'G!$$<W$LV$)270T<, MOH5-?CE$5?-C]Z@TFPK?$Y)/:7A:"CZ:1,NVUDFD)'1STRP1:FU9C6KZOFUT MQ[+5U.@:=(2T1'OC+=B0Q`V#;&V-DH;)GBD+*!+I6QLT;WR)1IIW/O_)_F<G M6KRQ\C0RCUT\VHQM]G.E;Q$$,?H4.94*G<RA8Z2#<Z#R.T,H2M.-79X&B!A5 MBI7RQ/"44>)R=QA;LA']EF^45/[3Q*`9K\T8N0!0848O1Z;04'O>!=PS`GL4 MBI>()$B"H:4/0:##KRA;5A>MS`$B#RZ!C'6IS&:,X&F-:DW%LYD@L.0RZ&.E MLV3N,%OZJ"YM3MM/Z(>*Y$!<X#.?HB8CC;PE/G[38O1D;18F&)0F,9(A=[J- M5^J7.9H=Y6DR;7C(A/6(]_$@/>5KM-("W:X,AC&F,-#L*+?=4)?-[A]Y)"O- M'Q#X9;DHG[CPB]O2A>)Y176`.0J7@Z3D2@V9$H&,#=BE+S<A&/21)<:MPGXW MCI-9C21FQ4T.PRFVR#Q*<YZT)OS#\#7J=+;IJ?#I)E!6PV>DF6QMGQ6X<A#; MT]AZOGJO8'ET>\ZU81K10=!%WR5]W&M9T=LB"1?#94<[/=HL^"Y`MV&7S<I( M),Z**^UI?=V5V%L1Y!@QDFQ;4&.PP@R0]BA6?%D0M>;(+"5TSIKK/,=T>)\= MV+08O?<6A)+E)L@W(3(U:,N\@Z-LV&6K4RV3Y6^3'@QW:<>NL@[*1WK=RCW- M`=NERZF<.`;6@Z*ENE0*O0=F$-$#'H=O93]E`L6$&E.PI8H0/)AYLR9)JI`= M@S2=A\?2U(>A)';&-0:?!2(/7J^GWZ8<!=74\555\8$+.3"QD6\++/>OF]-U M>KV$*?E]_1JEE*]C&7QM*<]?PX3;V.6CP,L^TA"?D)BI<G[YNI;%*IL/E43\ M'W4,U@MYYEC`=\J^?KQ;Q*&3>DXEU9UF386*F@$F?X^MV/8@<425$W"7=K<Y ME%XJ(Y("_DI!D-'>/-^#7,*&`IAT/:SD3(&YK)*1-3.YH\ZZR4<X@9D<0;!2 MB^&0>FASOU+$W)>29W<C$GL$=O&C^S*U88*!D'NRD'=MGE.WYB,-&>-XJ=_( M>H-NZH^O95\E&F+0VAL9]Y1A]>YGP(O69-*!DN67!2_585U@9:(:'#AE:IPE M+2`,#9OW&W`T4R1#,,%?3F42<JFW;=JBDI`I4T6N5]YT$(*.I01$&"3T\J;E ML$$2#"P_2QNH?*9[L\Z,AU2A'*R?%B>^&N?3]F&!8'N_9E<%]\O3TS3H+9^# MA=Z7%%UF=]CB1"$-HHPAW:),U>Y:.E(6=R"XSPZ*`K$SQ@Z.R\F`TQKMC80^ M'6%/)9U1]1KW83.X7U06_B]$%UYI4/@8^ZAVX.<E4558_)V?,TL8?5HZ&C8= MM4SZ,YG,;7,K;YXHH^UO@9_A-X]."^MGGU[%C"6<</R9V-:8[R5VY[7GU)1! MB]E,5Z&T]G*KF#/-_A>:U6:A;_0_65O=T2NX?H_8`O<$O1H$QC>D(CXY.`D] MZ9Z8BO=FH:KXYJ?\5#<ERY&2H8^B*DNTEJB?1TN]G=HQ3DK1,?Y,Y>U\.*$* MR96\8PC0>7;-.#/=V-W0'OZ%8,TS\AHTV\_')&4F6PCC(PX,HIC]*]F'NSO* M?%#?W.2N1A/YT(%L*&=_N=F6N!G3Y:&P&V>YITGFE0PFLL]G>RPR%G2>]K?& MREH<?,Y18M>L4B-0^O\ZY-SSQ/"9`S,>T'S1XV3Q+0T/6'(HXCN+M&7B&;\< M>LR(@Q:4BC%9O)I1KUDUUB:"3`;1`QM_5"#8>3OGU\8H/DAHK$3?PWWTE==* MEG+%75N43,04<R=.KFW:GE5$3(%/PO\W.M?@XRY13E$WF]^Z\FR;&,@VB&2( M((@X`8CE,NI%)1GQ(DZ^RV+:>19<,,;U@CD338&CR2R)R*Q&7?\>O%PS@C%U MFU+E3+B@I5=T=,4GYTBFW+B].]XVG`?/,RI.4WK.9)AX5M*&<O/7+C?*+1\A MN=IXSUJH`.3`[SU:_@'(#8[R^>+GL-#3!,<E!0(>O#$SN>_Y?C-8:7CJDDF- M!"AE']O%#$S^'I7\^-BJN5='D6;5'`SY(YTGTY?'EOT^BWM"_+1S-#]"&I:2 ME*`:6DI2E=,ADIM#:0VDMUS%D+=;DX,<_YPE/`+)\G&I*2U'Y2D937Y[(`^/ MX:(R1[[9;AV'S9;])F%R.=I_(>OJ=+DG3-;0?3+L].\PN\P^4B>A$Z25@H5, MN%6-$^:]ZI/Q9]CNLCZEYXR9R:9I*3)(A#=E$@E!<CA,@G6!?-VP&S1XGC!X M,O:&VP;,,AS:/8P44GXDY-=D,A!KM"2NQ+1E=;R2DR&6:2S*TS?C2#28Y7SW M[F1.O++1TI2(D\==9%#KER^:=,V)L6[)U'*0=&$8BEH;EO!K6VEMG,J$)F8^ ML9DL]X4A@*+0+:I"B'.<P+%(`Y,2-ADM6M_.K93#3YT4A[H7+"V@,:I_YPIU MC=H/0B$&PT`=6CN:^4M`!>4I'/W0C5,]&=)N%$-(<4=!E?J0!"%TD&RX%R]P M\_^58Y]_;1,G?7&'J_T@A[2:0^!2@$#@8&%8N"#D`TS)2EW0FFEJJFE.IK8` M;B(D)!A'XIP4GNWH21?#?KCXDT&&[.)R73\@T%X3X[P^7AT2J"TRC)+(I;"H MM4^?06(H3"G/2WHN:.4XCA-@F(8\2PX&."=!"ARL**HJ**(Y*BE(-%"8Q-"A M+Y9:4I<5C227<;:S7!:[DPP*54<.#/JIIH,IAVUI90>$C9HMS,SK4(^VI,;X MC0MB!5D!;()+426Q(.'@['&I%].<KE-M7I0V^@<,O+5N8<\$Y.C@U,U564Q4 M"ZO,3^E4_TO_BR'\M)^'.,XDPXS"'YE?F,1FLJJU=_SLOUUS))K)587>9B8V MXO['%)I:84Z$#:Q$*!B*1*.A:#EQWIRS&DI`2E"IX&43C*C$&"'*6R#!*1$* M2F-FTO)R0Q.6>OX_J\NSEWRKZS4_DP"!9MYN$O^;"Y()LD-A"8CT1[##TK<J M3U4=>D9'L?Z+:PC26.T=+K*!U0D.`LB(I3(8"`*IZ_\-NX-B9`4!0A.&%*9. M5),%"R961%JTJLS(<2=.BM0G72XT@40B'SJ0(42;U#=:W&Z@P[C-M$,K02PL M`Y[<1-%HRV[.NJ7=J:S4!NM+5*SCQ@\A#,.-@,D1%[%*;H'G/#45RX'*G-DA M:8XT4]NV(U2POEJMTDS![X]T/!)R$9*'],CH@C1$3B/?*>$.=Y$<<`;2<P#) M"B")%5M*402P./OD0)Q(;F#2%)%F`X`YKPVNMA0*V90A3C)D8J#*VY8W=XJ5 M5R%,9'JQD%J8L@TL.+916\.:#*YPQ$N*Q7TDJ=Q;A_A(`YB(37+BX0)_BE/] MY(]\AMCI_J#\S\W'I2B[55A[V]YXJJJQ>"JG-S&VW"/SCVQ7YQ\)14.K\>VN M6411:!YH_)3XR\Q9AD$B"#YJSFOKGV[=B[.[G=MKAB*4326*"+"LK25L`K$2 M!LT#)F%!E!304%(%*_F_,?%XG6>[M]SIST>F.3O4]:0JD,"(01'W1BH,@Z\7 MS=],/[OX/FW\LPU0SJ4@([H^5O+04QECZ*D'!!"*ATS%Z'3"LA4/G[^_LOHL MA`B5]WH320]%].L%?X>5PH[5-T,I*W!$`C%DON82:2%,DS)_J^KXN^2**JU? M=MX7/O\XO4I1M2RJL(4,;</'5'#0BQ1^-5P\N2/^;MC:DX5<-F#I^GK73MZ) M^=Z]?`8&\,L+1LO/'>[5,X<TSW5/?N7->-&&BJ-H'GL8@:!F77.9R:H'EZO# M*C59A;&WH*-*X$5P60P@*7<92:=-O7AQQ4PL:I\N@K57=..AL&W,3NQLAP4+ M!EUF<8RF;KC,>RYME%6-AL86P6-]?X__1K8N$)/#Y;S-.<L0W.<6!R:I3K^` MTX<5%%DZ5HRC1%MQZWC*W<B8[#X`ZAZHJ\595E(^2^*SZ&UH/PGQSBAB)Z&R M,JUT?$#CH)ZDXR).-^:SZW/Z5/7YJZ5H)P+55%&H4R@@*,?8]9#8TQP#%K\X MI8L7J7.#SBV81E(*&'4I'ONEI^=ZL_1>(:]LYAZ#X%#125'![D##!(?CQ`-' MLACLAG#WUY'#$/*K$<Q%(;Y]!LX"+@19UC9W1UKJC'!V/CNCA&N">.B<7S5% M#H==&?=9PMG7@`#U?E]_R[OO-*N<K%ORGT%,P4>&)\A.'3!N549L[69X)&&` MAM:XI4TR%("&,?BRRPHJ#^5L.8KZK4V2S;5TWF7I)2[2YEAHHJ.R:G`L9A:G M5RH=Q[.(]K<</CYWL#TLJQ(/0<4&,)%>(;P3!L&(AU#SI`41FU2HN.B#0^3H M@:#&4,9JMN!(PP^/=H]>V0\IF5,?#UX:09!@\U41A`.DOXP_XOZ?]+Z/[_]9 MO_I-\?XP#1_T)4%_;_(R%_5_6+^O_`3_T*F1C_*II?V1"$'\"]5<20A>PEA" M:E$I02!E8^Q)10_T8_2#_*01;_L_WI@H8S2_K?PQ5'[Y!%ZO;'^"3?X_F`[Z M:E(0V`2$I^=Y6%A]-AZSZ87^N?-SHZ][J<^3VS_.?S?=Q^?JVVUB;4ULML)6 M,UFU.%.8O*O#(,NY0PR.I`=26TMI;2VW6+;S&8<U=L<S1K03E:-IN&,JYLJ' M,00=PX%8<.1+:RW69(B,626QO,BR%H*C$48H"`BP;8%'CK950ULYMFE@H7EA MC@7B284&:4-BV[;'&3@:BO*VVV27##,N"JK"5@;4!!B3)"NL(MVLX<E@9H6T M+=N.Y2VB@*&3&2FELMNX4-FVVVVT&V!;9.2TUMM;;:,@("$2VB`QBLDVLBRH M(8BW,(VC:%;:),ATD2U)HDPDPS>CL>!=[X?]';YWQZ![?60S23%53&`>L`_+ MW/`#Z^$_Q(H,""'*L(DPORZ15T/OF%=:+-,MO)?$)`3RX!+N`*H1_;!I=O8^ M_`A>QFX"8<`DTA`'L7<A'<S_,SE\8/HE\;R\[U?00?,QC?P[9+NVLG"T#+,A MF77VB[`JM?FMR7%$I9+379<4J'^A`(XTEFF_+D9!\48]1>"@.K1'0RO?(OI" M`[G1\5:?DD^$?N^J(2%,A$3BGNCZ-1/9M/MAYK/T:?A%JM@I\%!2&/CQ#EB1 M-$`$_`J%L^C1;ZD$':COGX$N8T*0O-"7=!/V=Z7)<E1(`+H](A-"U!+GBCL0 M?UZRB(&W8^)S$Q@AC&,Z/^?W<'F"2H*_7HB7`D@$I1$_',@?;TL?WBF+?IAH MK+DF*4JY5F+I#)*1H$-`A0#YK*S");*#P,&*"4$H,0YL\M.,M$I4I6N&K2RC M3!95,R#6RPNE&[(Q!+6U36&DK-BRC(9&F@B@Q28$13%ME02()*!ADVL28$2" M*,FM@JQ7$-;0M,=)37*.I,B,)8DE];F,,N*6EK03IC^N=G.CI:#+3%%DR6([ M8UEM(:()J3:S!2JY+J60J*'3A9N65!(EM.J<PRE"C*UH)>%`Q88324(7"%)A MB(L"B4J"?C%*)@TF@4D.'#@<&<K11I$@**-*5!&%$I3APQFEE<MKP`>&LPJR MB"3Q9I&`DQ;!6=2ECPFXQ3<5;,V<X%$88T*K+)C,:B-?33$F@0L#E,8+(426 M*-:V,5$4!?-JJ.@M1HHDISN<;04"[A68IEJCC`ULSA.!U"3+5),4M`6":ZB- MIE'8AI!:U13,]RD*)$\_=^&@7],H"_RL>^KSOA](#%C\L!"^?W%4AI45O+VV MK]++VX20#&(&P0)']"*#R*+ZQD=W9E^R[O)[G2ZD1`?:$L3["I[_=_KOP_X- MQ?,GU2=)$[)1\X?FAP;\N_L#_RY*=+JONB3"1-01%PFC[*`(.B;1;E($C5A] MX%_LEWKZ5Z>"0MTJ?Z?HE>\(_T^PU\23\)WZ?3^)VD!XQ'V0G]]$C("JGK$? MV"XJKU^2+,]1A[8/E^:^5]F_0RK^9@<_@'[XU$C]*?A(_']";B/\R3W&%B4D MFL(S1($47JOT_L7J?:56OWY%L855&6&*C*CRO^CZO5Z_#P_KZ/>M<==/:UFN M>>.M]%Y=LZH.AH32&)#!]I'SM&XW\8%V-@E[P#WDN[W^Y<UV(H1D_SE\E)98 MJ6:]7`A(2^]"&DNH&?U^G]Z/X"7X)GWO[V18/"&#EW"IW?#^3,S,K#0`/[%8 M%0FBD&_R]OR\R&IE(/5PB7S772?9^1AX2#PR^>6:UFO0W7EYF""NR_?]5EF4 M&95>I_@X?:/XOK>JQ#?MF",KX1%2&]E2F?N?V6J6T52G`?J40\'KRC/Z3%`: M4-#K#OC4K$94BG*IO,4]+HV!`RK\YX8I]L;)%<^,S/C^3#M^;A50P5.@.=8] M[9/QT??DO%+U"AM;T`/D1=84ST4C8[5,0'F#$A)`=J7N.G[B:-?KYG:MJ;^^ MU>=P]58X?Z$CX:[MO1UZ](/^06)4B"6(1D4D4+Y[*Q(0'8)=8..%EFE()XS[ M2<?>E"$$DTA%,LNW_#_;./?]WZY?G<W<O0/UM/Z+.5#XGSD=ZE]0R26,J8>D MQ53%%885_&SSG?\)=0OV5&89LM8+FH,;H1_,@L7:8MKR+M=+_/0](\CRS/J< M4]#MV&@G;@&!*>MY#)'8E-E/SR",9_=([:_8\?)^3OX\]'_'H_EG\O84P4_L MK_:=D_'F>S_M$*-[#H"_7(&_E%3%4[/\>>$?O\HL_\<>5Y_)3J3V,[QK2=,9 M&VVES$TWJ7VI+1;SH)+-AF![T`?0Q`@^+2!'V?N_CE[/X_Q/?\`T4I?:HC44 M+X/]SL#^;++IVTY?J_A_Q=JBA^,@7\+<BG^X5NGS8'[OZ<YY'("D@$,64<9H MP3)DC4T"-FZE;EHP2D)(J8I*2U_[?T[_;_WZ/^_A7-8']8P=T_ZVB$[0A]Y` M>5*.G'P`M23I,68$TRC$0L9Y@>@XWN2^L%X?K7:*]Q4U=^#T$[W$^/P^-JXS M*=D\'#I![6)3J9/]OJQ_T/:9O_:9%199L_H?Z[HAV-"AVE_9_]_\7#_;+X-V MEP%T4/_N007O("I8H22OB!T@S?_K$$__&/7G_MC_WZ_[S_QY]NY5I7XSX!^' MR5+5&U_U3]?UA<A^[1@;^MA\_$)3ZQ3[AD3V#4G0X8=I/I_\/^'Q_H]!_Z_J MQ_N^Y_`T_&M:R?]-C[*GYJ_Z-XD]98)[Y`A1P97[1#VB_"OX,_L_F-\K\Q!X M!(?.?27$$A'R/T./JZ3'P1#$<Y*`#,9/J.MR:!C2J,_XLAH%=KT&!7QA4'Z# M/H-CY);,7V-?6[C3#CB1[7_\](0CXM(%X=K\G^9_--&^NGAB@"=(G5_3$FH^ MDW,DX.UM'8B7\7\7[FCC@A'=/[))=C0'V]87T_/'1H^UK0ZPF\,2DPV_*O>] M;U>O>=NHZJ6K5JOX84B<JTR3)/<PLB1U[\M]%B,8".'Z_E(U;6O)07_88*UO M]4C?9?^:E?@A"&]'W_I(`_$%]7X4^T&4P,/=K,2+$/GVP_J0A4(I/:S^Y`S: MTJMO`I0H_ZX`^I039\D*_JE#:`?4J3V*U[88DC$BD?BT8D?]6E_#_=_@Z[?` M]YKYU3K3)(%FD]%[&(A4@"&CW#6$VPT`G'T?7K^/OSF`'LK[%%^?Q/@<<I,2 MFY3@_ID8A'1%^=29!]GZ;_X.@1D4X2%0O$0$B$B!A&#W`2+^]&-F#)^$<V_T MKN7PR/!UQBVPQ)7E1JHU"V%1_19\;!INO%_`W_/TSSGD>.OZZG\!]X<&A/.3 MSD<F)\H,AP)#69Y)_XY_X$A$'XJC+T@:YV/2.A4&,N$["0?U?-@Z/RSN'60= M+]TF![._O=!M^T_>9U[.S!VC2J"@\N8HLQYR]6A1`_P?IUQ.:LJN^9RCHXR* MZX6[XR#R!<Y3HB'@G;<,B,.EBG`X%*B5LU4KN.CAB!3'0C`)@F("V2X-YGGA MJF22B)B"2=F+N+;)B]T!KIAQ!E-+5,`;DY)U&'7#R1180[>4O\,V-F@O5"^E M)1%\F5A4.QQT3F8Q13`@6T7ZYV6==U.5!"CYEM4#OK+A/@D"*'774.&1M2RP M/P/$R=T*=-'C4'EHD^@G5VS,ZB.1SE,)S(TM#'1[=#C5FJ.`XW&8,M3*9X8Y M`D4:)YPQU.=)CELG$$L*H*>5HQ(JH?A>=>0R,)D?J_7`,`:4;'@,*$U31ID3 M.^%TVVJM-F26&ECET5N>"2%L]+YVU/:)R`*AYG5Z+5I:'H@BVJI8E&CC60.I M("R3TX=(<,)M#T,<D:(#-&5!DF2<AP/6%*(RX'AA.".\Q'(`I_"7'H3@^!QH MU+$2$D$1$MLA#M#WS3UPK`A#I,="4@@DDJ"AA`F(S,4^;M@G@TP[YRG^^/SH M?WOX:FJ:HP#Z>GM[I?Z?F_J)6_%,2`Z:I9!W/=()(/!HOE%&T6CUFGH.A?M@ MF1_"&)I`PB+[RV?RGR_PS7_Q/[?S_G^[Z/UWH9%\OQ_<\L\\XO+3\FYJ#!#0 MD>`!W`U]WYTA3DON5/\/E]Y4[Q@,LDE"_5L?F\PF-I>UKS_@C\O9'5P?JSK] M_K4,-(6XV,1[GU[$FZ2H.?\;_2Y!R"J!*#R][_?+U;UA*([9>_H?R?KRR\<L M@RT(S_5_+8G*52@L%X%_,?$@Y0$?(>0V."2&=P,$C8\B!C24B0D1^U@3^G]A MZG\WV?:8NDC+LT^+T\!_&']@X?WIY@HIJ9EKNQH_[8=,`[D'9V,`R_NEC'Y$ M9_`8TO2J\_5TC6LU&Q/PGWPC^@$6^/L&.2/@<U8IAER6UER&R*2:$T,-*?O5 MR_@_F?:1]WV!%?N:TR(8TV#/PA=9PY<O&?\#`^AA1I<9UTI@TDY513220?%" M=9W$11/YS#(H4:>$D-QE3R=UTY_R<!3R>I</R^_#L#"A_NLE]P/QN()^]'ZB M:9GNT!^DCOA^WZ,4.%5-_=^GV<;@.$7^.!;!X5"JDCY[.*K\$P58RDPM?^O] MQR@;?ND,"5/VE[)&^C%3M*E5MM"3WED=)7K7X>IB?K*Z`L@JJ8AD[LP'UR8! M"4-?W_\F.ACU$62--`?PKKNNNBF6VTTT)!D422D4Q$)`)(@(<&D:$IO5M=K5 MO2O4Q74B3$@S`6^?XS&]F].1?^IP3E('9)$@V*)F/K%#%],&+!S]H+^D<U'O M07^E9!'_<!\#0)_4`ZZ3.&H::$0GS[U^J_OUPE_!-=>[F2V_BY1(7;_$[5NI M::4HK,LJ2KF@:_%?G/4(5"AZC/(H0(ZM"^+7Z6LDTS`_G`?E91^5^I1.?$NG M0/`T.)I4\@'5"%*$0/!:@,@F3)#^L@B1<"42SX+6C)/?0.F(HQ$X>P_%8:;8 M8A#"((6GM!2B?.:,@HC72,DIMI6@:Z31*T#,K[">+0>L]!&CR'9@<']9T,WN M_3@.,FKM.O*$*0R:3)RD")1/X_X\^_T0_Y()_Q0CZ/RPD?L8J,M6`N>?65&C M\SO;]\@1^MIZ18\_8,FBK;KV+D:HMK7Q^S:'VYP.N$"D4:DLI[?&\=]J0P]L MH*[IH)H?94E5Q3/D.'0S<YEG>%8K[:-`X![SO.ASOC*L@R>V!K12?(,NFQFF M)YWFX,Z+@?F/+KL01(D!)24<'ZK^2R%_GCSEB.V84/)!Y%DEK$,B(;4,(;9_ M&/^-'EB75D_2*0=I*_-0"S32B*"BJ5=$:&$TP][#BLKI\3''#$-U555L%A;X MN3B8F/2,PO',3DF.DV])N&X/KO^=_O_SW>8W73.:GKIW5/S/J8<O)B=%>FLV MK:Q5K@60R$O1<D"EI4465*I3Z'WTPG8/0AI?H"=62G"G08-)7CAZ1DGA"&". M":2&55:5`2JTRK+W=:==S`,LF9W&7:T84AC(U&B:*A(U6`MDJFLAB-4:9MH, M;:*JEDD/6R&U2I">-3640!8@4#LPZ:8W##HL3%T*34--`L24<1T#`X1$1$&B M1B$TA'+3"("<#A$98PF"UC&1`I3,5PD(2#"A=#!@9C@S3)A.2R5UTNW-HW;K MLKK=1G79-4G6:ZEUW&)*NT6)DI$.B#CBN`V;(B"3TCQANDTX3E7#&#<;F#O6 MJ=/#.F\2=4J&5JO67:K[Y=E19?-VZ:D)*PVGFP\,X0XWSD$6$R36(DLM+8U# MUEG#!R*I&EF,6<+\`)$G161)#9A^ZV)',D\AHZ_,:W/`'9M4>C^V/S<`_ MAN!^\X?'Z7A].`?'`.<VU@`+:S\%7X6U^/\'7VEED1M7]BC]XLHTD8T4JO%* MG?2UCV45MA/\E^5S,?,^QGE?A0\YV9I1='HF];:FYDJO=F22T)LV^E?H%MZ; M94IMJ`:+/DQI[7FTK3!%KM4$RK9E1%`)\\B*="`4*"E6)><P`>+<8A*M6'58 MG+:L#+!-K`RS:PVTK)+E3"95QA([SERT[LS\L3!_S_)F3GAFR!RZ#!#(:5A[ MY=^NE>DLV2Q):,RE39(X<,#SI?L7#A0<.&2/['.6APH]:Z>:8G18PE)E<+.[ MT9/L6.JN?Z\2:L=/9F%U7"J554JE2J0TQ!#!%,>)G#!XG`X)HF(3XY\+!JAX MNJ9+4J585*]=8584VP3(E><TDQ>G68:6K/<PQ8Y*$PILEDK7R4ZW;-F_3-W9 MB(&H7(4P0B2)*%DJB6DCZ<TIF57LVW)DD6DJQ'Z[($T0<$,5"9G#JE*-D="$ M\#&+UAHW,U]C8/0D,J$@GI&$7E=YHR6("9J(!YDQ&1%%"==PI60Z&680X--4 MR431=Y2XS?&?#OAYRN+$NLAU^F;==M-66E,4N`8+BDA01*H2$I_G^GMHW"1` M'?F/=F%"L0TU2'1RR)BRU%4Q3JKT=&'M6V)S'3U^;36MZ"'N#U8/4U=VC@>Q M8@2R<0V9-!)*R!(?TG%HTDO!'@SWQ1T$@ZJ<M,&E<OBR1P'`8C$5;+<)IO:8 M=C#.D!Q@'%QFU38PDI5$5*5]YDNTU[=U4:2E:E)9%BHLDIWSCG#</9]'!C3^ M'B&JQ2)0LLZMTC(7L01":AVA=U-2DT+%HMCZ[M7D;:ZS;-,/,M4*T+\4B9WZ MTZD0F4JJA.(IVS"(%Z#5`^K#W)6DTNK'9#91J8S#,Z\!QH32A$2IDA\=H)&) MH.%:J1MQPTA44U6KE98D5%A9*DJU1IIB8JE"L8FE97+3X*#9JNTQ*S"R(%#1 M1!A0->T8[J]BFB;)I%]K-;GK)?:ZY3E4UENVE5-E,O2Y9JH]3EA.1(<#T<2\ M\HL3HZ':$9`??.$[?,QTRLR!?##I/<,'5J'@S%-!HQ(:E+8*LQ56>2PZI4_( MV8<-N'V46IL5P7!DW*I$QZKKZ(*V[)+N,##G%I3F/*!]$&XF'@D$GU4^TL(W M0?F577&*[JE*['IEC\H;J1SDVOME9MDTV9J)%4*E1!$#)`@6A\PUP1\;`/"H M2L*Q$!5=TF2?'"XR(_?/V62^P]YGT0?I\B^_6H!\P9%#Q_+,S/!`@RDH>VG$ M0J.O6V>P""0$_J,]P:F(LDI95E&46FZ^3#6O!W96S>J.5F$NF.*#0)$J"5'N MS#D[=K%9J2FQFU5Y45KL9%=P:PJD69%)M3\TAI)*)B5-F:8;%C94,C*F@C5) MJ5J*EE9955$(JB1GF%\"8P6&$F4$4%//Z/:]$LFQ:FF*4B*9FF2^C`'"((:( M)1.I1:[8KZIZ'7P.H:#8N5(:5P3!\,>-.,@[#Q,#9X!O-<+`J0,($LUS@841 M0(@P8R#T4L>6UG26TF.7:\0'\X2Z@/$9%)V8NFBJS.>=F9IU8D/PR2$^^?J_ MND#!/P!H\*6A2(G]83@9"?CA/XH%#^Z<_GO[V,_L#_34]+30_BB)3">9)_1. MM4)V!^URV):4MB6JEM.2:(&4(L[47_,*^!M`B1T;_M,V9C1TJINAMM.("@A: M2^4"O7N!6+2#/#JB:B]7L^&W@1'ND\$'`3_=W]GO2F[U9%LQT@KU9_KLU66# M$%A"^QX!C8^#[#L:/H#1"P[0RKEA5QO,,M'-5"&/ISKP7M.P+J&WW>VHHPL# M!D"8V+K*H.H<4_V'@80$2#[L*.&'1]426,@,D)&BN@40)@FE_KZH[:C=0T:& M!@ZVW00*:#W[ZZ66%#8FQE!;3`V11`NJ5:F;21-+NFBR2>E:G44DD+6I2KN) M+@5T&X9DS:%<A48R"#D-*(4I2X9SJ<!)1"","4_DV>2;-0?Z@L2>*DD>'6N, MR5?8CV>\<RVJG*CNJJ"I2JM3ZG3-IJ^O?+P%9T-I8)"^"U8T]RCW9QI?]\KD MLL^:U%D@-T,-F)C)6%@OMTZ#F.(3&W>X'$\GOZX&@G)X'?#0]8F+X[E:GIWC MUO8DP4.I+$JH1)HTQX9AA@&+!AE8BI1DU)UD/]G"TT)(ZE3TV@&@-#5KA,*/ MN#C%NPA%C2WR6:E"RRD8-#<I:(EC2P:4V`VJ6@/!`LH)XC+%$9('OFH:!9+A MP8/N"62U$*F4J*&4ONKS%5@'9/KX$>%FW8S2R+-IJ5EDTL6C\L'"@ED()]N_ M^G:Y"1!':[:'`[BE`PZZW5*E7;5O-?/Z7X=V8.^3E`@G@,2M/JGD@W6<8)[- M]="(P&LE`D<)!BJJML6L:LMW09B3`R0-!$PA(Z0^@R2-054(I)&Q8VR!1T*F MV_-*")JX1WN*O;HY/$[Q7S=#LTW3._N@"V6[?<+0YAYC=T--#%=)*_-%CC0] M>Z,#X(D$FVU*YK\A/(@!\['Q")Z@DLYZ^GU*\!=7=6A/%(=DCR9F?G]RZ]AO MLZ11I1\4+N`)@F!@@@@97AMB8TE?)G)$D"NFA>H\):G=(W]:;*8.\^%6FC5+ M,CSBQ-'\6WWGF;3S=$DZ2W=2NU2D64$T6E+)8J34ZNVNNNM<U$;I6KLK&VDV M-"DII-7M:J^3#A"+2M("82IC(N29`Q";7+:3EL5)I-PK9-K42BQ`H&$`82"( M4%0RJ@&24*]T@9%()HAP@&A0H@+!8:39S8VG.$HXWJ8/;>RY804.^TL+8^`Y MJT%5VM)K=<7P%]%@:FIENX^)%!`S=)BQP-%A&2O("TUV^0W`V*!..4F:5;,' M?IR\7B8UA##&$G$T!DSODA"KEFQWC=Q:Z.$P[D2*1P(J%%EV.G2X*HHC@\R\ M9#TII6Q;WYX!"N_37XE==1U18PLEU:>5KB>4:8".@][]^B5C6N-3'*<+PH\6 MC"KS4/AN%$^(X#USP23QH23K4?_G.ZK19+E:<*/!6R$5@BOF_*@L%0*D<))B M]]O\AG=O%QX1U[BQZ*JK8COT"2>_C:=T9DRFU7Y_F``=N[[?AX_*\FO*-"!2 M211V"/S%V/\\TNE1=U3;9EL!<:OGS"A[!T4]Q"^@BA]Z0AON)F"%MBV2*J%! M9O,YZ8[:R<4X*8[KG>=<W%#*C&KQ=J\FKVNL&;$KKJ=:NUO:[I)=73@DF"=P M([KO-RBN@LU"U,E%UPPRPLM,7)BW&E@FQK3'`@GO>20+:VPA2`W0!81#<X,Y M`L#25&!@D5X-&M&$9W&`:)33*CN4B&)`,E3)#):5-0T(FI4&A&D:2A2D$,(` MV2@A,5-V)=LB:6(<A9QPG>PTHP7,Q@F#+DT$V>J\HL$E"4]KG1S0J(</+@,4 MH4-%`5X0+A+0@4%"-"('=O#44;G>M6@TL>V4/^K^WFO@[DOD8Z$>DB#C0?)/ ME]2>*4)'"9@T$FE5T`XZAU\E"1!5]?2>IWDH27BEDH+=^@=9GRZ4#JR)[S</ M`&GW'KBG2A`]CMO38K*MW1EF7*UT7Q><53UZ>FBGPGQ#;@NS;MMMMMI-)2:1 MVUMVE3B[N[;ZR7D34554!F*[EV_)X]Z\'W)>M>K$PDWX^+Q5PBE1+PR$>I45 M4L@E`B3)!"M&<O=U[EZ\1HC(Q7*&C6H=9V=^4GDD*$>]U8D,<G)WC#E@R;11 M=DG!95A`(Z>I)-JSCBB@=YQ-$R`5P,4YLF<":!*!VK5U2IFV%-2D4E%A)]-B MH=DZW2AYVIP"T(=LWK?_MP=[RKE&OE]`TV*N_+O25%DM)G,LM+`^#JAVQ0C: M=O3D!Y9"JG20R`XE:#DLMP\<[T(1E436TJK,CU&0,(Z3H]2=CBK4N&E5N0]. MH?#0CPO!:62TA->7&>.3:2MXE<N69I[@E.T:!A1V@O303Q<8Q:N8,JK'%U1Z MJRCGCTLXJ"D$T1/M'T#Z#IQ24505$78P>R1ZMSUO>FN(AY\1DJ4JE62M,"5U M=36:DI-:*0*2F(<D*`7!F8V>6^@I>9XH\@GLZBPT=+\]U74EZG2NE(FI$P,2 MS&$KA83`]3@;)#T]O%3/HVZB0N(!.!5)&BJO\@9'BZ<1)M*2+A9HL!]!W<#O MR'%#4IZ[E9[R#9(CJAV^UUX;CI7&HYLTAG'Q7#2$E6&^0^K0A[5B.\+&B*)J M(8@B5M$##5,[T<(,=7%4@H%28<]HLEWN`9Y[[LM!O8^?('+"@6'0-)'782RR M#B^#O#21>?`.Q)'VF`OQLU'FOQ'L([&$>IR-1GQ#GO6)(C1(1D(R"2:LT)FR M%Z.[YP3JV>]ZTGV61FU=0P>B><Z'B.]7P<5.M!U5O:?-5$$1"01&E(6JRSVH MEB22YIZ"#7Q)9(JG"``D,0#$*"P2"GK@-"AB\JZ(>\\HH&"./=L#@GZ&6>?; M[]\$KO'!;U$KI@-`LHX#W)G=1V,&)#M*)U]`;":&KAU0J%;P+:D`K`U,6I?T MF"%F-`;&B#MU"="P8Z*2S:769!*O(2D2&-MK5=6R/KV]&/%X..*+V&$C'W0_ M/-'P39'K)C#6:(CRJ#OGA(\7W]U&X<@H-*%GWH..>=4+FDH,C-/$RJPH,M53 MI*+YX0V1=3CW.;46'F=%G1/&K<1:S93)1FH'E?"]X?<,I*AI4T-A16,4F*K$ MPFGN]3[/9TC6=N$E@?58Z<4L6K5M*P=2I12>??RU)\(><2LIFOJZV3695TI. M[2[&5"T99%5@J1*5#\]F*6-H&(;2),\4E1+(X^(,ZA[!PSB#>T$X%8FX#U/: MG8"0DJ"T"`7>@2[)[^+[A2U'VQY]QZD>,Y41Z$(.COHXU9X,%1[3*0,"OD@X MREP.V+9!*RI$EG[@TE-'+.;BTT!22H,,79=P-IL(9`1!'EA+D/_<-]+M4Q1, M6".FDAT1^J>1X"8\SP5DJR1)H\Y!V8'V0/@W3"P3:SU/]1\#(@9KX]`$[R<8 M?-(.P5:D%R<4A8!A1[QN/WU$.BH5(3ZWE1HJT!?G*TTQYR@GG:0."0Z@S/OA M?6K\*XERN7X3)[>1DY<Z-*55:9N*EL-32!U;M]Z_1?O[:];UZ<.YSEF:U94= M>V^'?&95?%7#Z<]AC>5^<Y[FXU@G.-D\Y=.I&)8#.Y!Z\'4&A@_<I58S%J=K M:\TYD:)(WTVFIAB'T]C%D'&T].1G"+;8DSF'UQ]JU8?UQTZ>K.H4)TMDJ#AM M/C!['9-:3Y^BNT[N#J_F&"2%XWLTAQ[N_Y,\]O+(N$PS,1,2E8J,4G4GTAYQ M80G9.D\B0R$D^:CMU[2XEMKL9(9\,B!S>S#2O^QXU%KW')LV;PD$"9F#G`34 M&F1L1)")4D"2D`*44T0:=$,*]M!N%C!F0PB""@F9BR)C2!!AY8&@X9AQ4=FA M'&H8#4J%\/?F@/?*X$!$B41!U).2B"1(Z#!7A;([#WB&)@N]A;XRW`L&P:JG M@\M)<==["5NBW)V?DU#.LF3B=V),[9NR/2AMYK+=V8)FM1T@U03XH->OW8*< M.W'[[1HUIXY#Z$N=BY`GQ2CB!">Q]JG33U*,+!#O,)>T[F4-"]4A&O)!"%1^ M8Q*S`$;'YLH&R\D0A0:/=IEUVC]8/MWM5>(>0A0W"NR47CCIIIY)P"`#XY+E M\;R)(RW/E,R0C``DPIF?GQ1)@P`UKQVD^QT6K=K"#P3@&*ZLD4$74V7T7BOQ M0Z/:R"ITA2A(>GQ6A$!/IV8`H1`G@N;#2)OBT:'A/+$%XD6'BI.BB?&PSC"1 MYU.LLD)M,=-"0ZJB=N&&C,C&.#311'%D0PQM7M4I$T"PP#(RO)W(5TTA$OL) M$"]VGR7H(1;7E)";D%G$U.0@D0R+B@Z+6$I.]/6N4Y%KHHO7(58?VV&Q]5V= M%BR4<@APAS<TE@*C]7V*V3`;P7@T,Y@2Z\2'AUA^:P3[U.$''S))UA\H][[& MWOU/PFI&5!G?\Y>F`\_%*J;=#[YX4#,4+(P#*"4B56)"S,&@?SA@=?9>;)RC M]'0TN4"9(>\R0S"L,#&7"XDP!23?EY`X"0X1G"PI`G^+U_Y3[ALN$F-:6TM] MQX08L\3Y%G6Y)98LMJ6'BH8T8BF2K(-%,@8RKDBL0/ZJ&0B@A.4':[/-T/I2 M^,D+WZ?[36I!)KM%Y>`_]\1,+Y:)(4@D!^7=3$!(F^A[R,OX76$NX,/8![A> M?N@JF@Q%#X$H?[7#?O9D6&""&(Y,,`LQPQC'TD#32;DDFT^)]%6NJQ/N=%2, M2$.D%E/1_:0100"P_D/9%$/4BR*CP@?,>.#+WEKVZTL=MF(1(.9%D$A_M;_+ M<C8Q>)9,IB!UE3ED9(RQ.>FHNJ*#>$'<IW8$0X++UYV2JAHT'.P3H.*X(O`R M=PLTTWC8^G+P(Y2<XW',B/)(\`8FF)H9@\A7UH?YV#Q/<8]X^$D#)'8XWY;O M^#ID72K-^?Z\TM*MO!606&+V9*%YE"-H."LA(#FC_3_G[.?*6"[@TDI>PM90 M:N#I)#<-;GMO%F(DFIK.&J_VUS6HE24@"2H-B9($@9"#^8@)E,OID^XHJH*H MKN(]`_+^WX/AK7`?=V5^O28GT(J]Q[04/G)@((6!$DLVT3*-E-K(M*MI5)!( MJGSG?`0PD!0*L)*'YZ,LDE6!U4'[X><<*B2,9D973"&M*R`C`*U(LA3526)B MR2V#"&&F`=*]L'Q?))(:2$B%FX)\^7R*II46?:NSS56DUHV1^*$34CC8^?[U ME!4E27QYZ1)M^J43NK;I32S9+)+)*S$D2K"=%(LCS<6.:284T?1(8_^:$A9( M<1)$Y/)2N=P3E7L<"5UZ2=MG4IU'6$UUA(XXDGDG_N.CU^UE29F"6:AV"3A( M8),$0$N#@XA#@8!+)!WR6L%?)A<`G!-F:AH*4I.$>Y`[_D\/T<G?[[/EAA;^ MZ6\5]*MG)^N$[O6\\D1$D2GW%B(!0"(3C`X`>LE%T@U(]HGT]@QF'M05--7, M89#2H"P_@"6XSE%1/:P@ITP#O3T&>#^+HAR@F"",-!]C#$%91YG,J?BZ:=O> M#YKU443O4#V]T"'O%(`2\JM5:QA30"./6?<<C838PS-@(D#=L54+8:8J?M(L M2K"HL-`@61#4*:0AE"<Q3$$W%#8$H;:09`((/U_5]L_XS9<8VI;2WUH('SX" M#\8J@+^.1/E>5[G7,I,>I2$U4;13IYPH!2`*L#*_>^0W_\O%[@D.BP._U)W7 M4@YJ<M2EQ4,&%AA&`A2"1HZ6/,\?-U2VOM,XVE0AK**!H6MXKM<`J2&`:H4V M@O\<-52($LH,$OJX]A\BZUH^<;4M@4M7&-J6TMZZ\WV2`(49`/O-'D^]D/E8 M,7/EXW\2B"DG'NQ#CH*XAP1@<*$9.$ATE[:#9\EL2EHL(K3LK/NQEFXC%ZLF M0O9`Q,15T#DI(SQ;@9*EY)WF)J)KMF6(L-"\DPYW))[Y8LJ&G#X9[O4]4ZI/ MS%DC@`[R1)VCP'_V,398Z468#9V_5%%7;CPY$"(3)01"FA`I1H9$S!1P8)8R M!P8%@A#)%#&%9@4@;('&5HR$,25<L266`!@)(;4VFVDK52-42;68V%)M*DT6 MIFE39K4LVJ*2$A$2,J#!*JRE(%*HT![^>%'U_J,`S#%S,,QQ7,<R00Z)V'6N MGRJIYZ!4^K\NKB_F)_^8^.*[,Q/(_(27UO^IA/^H>@PXB]_J/F+2Z3U56M?$ M>4),Q"!ZV0.]H(F##'#R^87S"0RWZT&:7)C&YA^P3#6:6K.ZO]GYT32E3I(G M(1)J8LT_U7A?<@$"+R8JVI+]JT6/<L_#JR)0208%8!@?'#KV.],"B"_8I^XL MD>NH]TLD9Q"ONTA-/L_C9_-?MT_^[7(U#R#`@U6S,:,FC_R_-^-K)42`,@&D M#]4OE'=SYXH?>$H%!(55,T-2D/\4%`E"%LUQ^X#N''DGYJ@B6FL^ACH8I[S1 MH)M'CCK!@V,L2UEKWLW*2[85"UFI7%OB1`QGDJ$$*"5)+WH]`0OSBT]@O0K; MO%C43D/Z/]?Y/VOR]?W'B'R&"P48JA(P(GS!\8T/@GZW[?7G^74U=,BLO63^ MW_.JKU>%XE9[?@0[>G=GS#_DB!(2$H&)@?>.S@5_A][\LB`#2,2"LRQ7I,,5 MB4#Y?+0J*?7T^FMYA#@?U8K]>DR+O'_*.GX6-L"6+7\I=*_V:A7ZYI_&IU\' M"&I*LA1`L8PQ80J2C"M']NO5\<2W778*7R7,;,VN:'H)*P6.+`*R*J@(\U(C M.6JL1TM*6",.QA.F<"(IRST_<H7%.P/\?G(7#^:Z?<GCW).($B3]W\I2424B M$QASUH:3$?RAP?VD?O/Z3\]S]0GL'FUYYL4`!*.^(!^\:7S_E((EC],$B4WD MLBI0I6*)<BIQLL3;)9LW5PKJ:::6>/,8;ML>RL/#;Z1<J``929*1JTDI-"1G M^\8X$D<ZD8?F\NKW%4\C\H0UZ??YLI_?WW:5M!9^/E>VC!%$*AH92/Y[#V8E M`\Y2@GH+AA]9@@/G#YHB7,SD@LC\]5+):YEJT`I2,.10<D0H$%CWK91V+V9W MZ.QTM:/G=+9_/$2@+)H5X(*S/[A$;3%#*5&@8QK_'8^:ZO:5,8I59.&HPT>7 M&0X?'`_8,9GG4Z.P&!I$&7D17`7R(L`%RK:DKO>H5@/4*HYO@N!C6L-2&N20 M.[X5I$0G50-;P`K"0)6!9*3%+*)JQVU@]&9N]N91F:])B!T[O0Z0<HB@!67H M9)$]^VX>")6X<>[$^''!W\(R01Q(B?2'7M.C<UTN)(3D*KR2;I)M\M?V'DX# M7'O;ZAZCPA^MY?B"'L-T'&ODM2ZPFJ!@/"CQOJ-@ZTAM/@?`L(8DH7Q(>B2R MR$4*L"PCHD3)@Q`@+TT<?FRJV^OZ1^851]0?_,1$(4X_-ZS@NW<8\OA'F969 MXP2.3*A6"I*C04F*+99I(AE2,4*0&7.$%Q%4(822!<:6PUE]1O;5*:2J4O=[ MD>W4M%"B21QC3:@::A`$A`L1%14%FS,ME))K4M&KKMAC@Q2PP4P.(*&>//Z3 MT&M89GRH<PG0UT8?>^^$\9LC4!&I</Q;W/DWSN?6;";+NI,5*J98:W9AE<)* M2!P9F@S['W7;=+$4FPL(PNK:HZV?S88]-=?5J[RC&M<,-R#=&HL0UB8"4@1` M=T+I@U(QHQ&D*?T0[T+B$1NR')4R=0Y"LD=7\<71P83054)09`FX=#GW8?AP MD\4I`H?F>+%UBCXMRE*%B(A2$@2T]/L*F8_7JBKKADG!`PD-/-BV1$JX2(FD M`:9#N(<S^K7#SPQ2*6K"RFX_&]MS;\T([1^(^>]B:0=GP'XPQE_T]<0^84.B M/TH,TV4VR4F5KKNI2:11%RP)8E&"0)A9J5(T,I@$%,:E1^4^A/9T%7S?;\F] M%?(6>S'4\H3\K,OT2TIQNFMK4;:,_IU/S<J=4L_UJ"QA'15W8[Z4`PE;?+%- M#I&/]?>G06LK_='!/?&33Q9=NGSKO>=3R8@0Y)4456*R4QLU85%9MUVSL8*Z M[O97+(RDD6RS3:Q8,7K>W>:(T%%&SW;AMC;B*U&+9M*&*6TR]*U76TQ6LFU% MK36W;Z[UEDJDM2EJ*1F(E1BVREJOF[YFO29A6EMBRLV[W7JUH`:LS<KE%<ZD MC;,R3&:;EC7`$V)LTE2+6;2S;9>@J3[NDDEDF19.[0+:BB'>I<5H58BK6'SW MQC8?B8O(1AK%-GU)&2M\N'Q0Z*H[H^D?ES;%41RB(AGR^K)>S[FI3/M/RL;3 M'[_T_;@^"2T"@B7VP$FUE`8TG:17Q(#SE')8^,].?D;0`P)42J5I5GC$7(;= M3\0>T0S8@&R#PY.FGCO3&9A0B!9297?I-HB_>#!WA3-59$)DTE+,M^*ROS/Y M#%(C(/TB@4/J=:0[^G[QC^48>!`1C$8D83T_GP<Y]AG^_]*R9X8_D_%/'\W8 M48_F^SC^9#D5$0XGK\+R`8"/WE"E@P03W0RC9A&>L43XRU:S#]H^T4]GQ?J] M'^/CX'[,NV+0#/ZPJ`^/1E$I9`?''D%MQ4<A'3J)#499`4Y3$*NTGF[?QNMV M39J:FS2D)$6U8HI4KU*G[O#MQ:W%G9V::JCI_Y#.&A!>G2/Z]P@I,_.Q7>08 M_"1N!H"&L,]4\9SI3@/2<D038F@)3M2PIY2&B!B?$N*?U,/ZO@4;VPZ$1_:. MYE()+)ILO:WXKU>ISJV4(E43$!_%C>]Y[)-&@.&4>-8X:^":\R'F=VQ^,RE7 M1(]"'$E#[),4A[Z3UPZJM6JQBNZ0II9YO>[`T2_G3]O^%-]T=M):URA0%%"G M=Z6;4+;*SW@:]RT#V%O71V<#B111V6K3NQW9MAQV8VN.-EQD!/[F4P9*X;-F M6`1R1O"MJAUE^+G%\:K^K^(`AX/P\>D^V?AB2GYX]/7"YWX:*3V(O'FL*U:6 M.2U:Y)$_O2OA'IEU`>>\?X2]<E`A>^L))NLX`/VU_KG\09A?G`T_&_ZU`QB] M#PGA'CW_JT\4<5#)2;TBW+>1X>"VX_4<RT?M=V1)Q!IXDVKG[1&4%F"DTI0" M2DEAE0F$2(1E74(3*B0,(2GCAV!=;A-L6!8[E3('0NW$H$2._PK70:((B460 M`=I=UU(5*%)49%?0=A\41?&$+XHQ:/MPU4M^3Y-37&3>NNONMXAL^&8_S/E* M-#`?K>6=/AQ20#?1?E6I5[)^()T0A^'U/BBJI2TYF&?X9S-Z^:\1'UU$8^B4 M()>JE\+42BSI)T$B(!U5A#>D(YD.&(R6!TZ#MT=&V3FQP'=D2K5,6M)5-"]' MI$+JB8MT&!C!M42)*:04P27$1<$Q$`Q!%E$A&1!848`R4$[S`_P5W*6<,3P8 MP6R36NNWE4;XVQ,AJ(9E8,Z;+$"0R<Y*N3)!U!9*RA14)*.\S'G9NCE!/D[J MR3`PF:S)-++7G;2]2LOF;JJD#..[H<D--RM0;4;2KMA$%V;Q0EC%$*F)NG$- MA6E%A5.(Y)IW90PE`)U"^.'*W2D6)*E06IX3!$8B!VCS&-I2I02H<\=&T<GH M+&W@;S1<F=3KMU066#&*>`$A):T<.NFXWHI$IA$/+E%0QTS:8/^K5#_F9UT4 MNAXTC;;9:HKF998QVM[[[8Q)QN98=:,.4+$4-H(CIF(-;4F[/!-CJ8RH/+3) M-7)+:#N!)!U%(44+@C@+#+)1PG&)H"!VH\BZ0-,MT##8ZB)L&P"=^1T0="\* MW`]<TAI\B5I5=)#MS)U.827<<2'1OL<S;@;LL8S$F!U0PT42:Z*:8>$@G`V[ M5VI#B\B2$$RF9DF;DBP9#+%6PR/#.SND"]$5PTOHU]?>IM4*VPR5$&(L*?H5 M9R$^CK=[M('1&=(<9"98>BV6MZT;AR2J1QP?ATP/Z"E`NXGW9BZ]OP]MK=YS M%V"?<+((.R8*$A'8)+[4`'!#H(CD#2"C]*@B$BB=@#Z_;X:*#6B*HJO;&MF3 MBAT3`7]4R/H?C_6%DBBTSY`A\`A)!YB/[#0";?CZO>2">]L&?C(,#Y0JDEI( M(R2A"8(BB?3_O(3!33Z+_+)I"3\;=@!34:0]#R#\9F*%"#24#DQ9I2EL4VEK MJFUV35#`0J8OI%D?AI1]24'P)$.BGD(OF,#XX6V?H:E"BBT9FY?8&#%-RY<0 M=EC.9)J]R(^8[,4QY,->)"_!*2B1\>WI$/`TC7C9Y(S&I0Q"^W4.3["3@@3Y M!.1`^S]_[D^MP_5MG7X4P/Q_5_7GK$]/P]QH4?CU36P?\<^]!4E%W6V/Y#/M MT>]\69O2I9F-4^*MML9N*<6OEHCQ1^4\B+8$'V(M!0'S2.#*-**4"5*.GS$E M\CH]5/`BDY442$`?`805/E&4AI%K5IJFQ1&B6K2:VFFUB&3"#&+,\+4S5_'H M[<X!V/!)G0I:(30DA60'O??;[C4E*"(LAF"^Q]H#!+W!$1XNG-(2<UL'1&"I M(F`#EMEA7`_[0/MD'S*(@A=-Y"_\'3\T?EWR*(!&`5&H%B!38`VX6<.WJ[QT M!CU2OM70@H3!B@BD!@HYLWH`73'1QP:`1R!:%0NA+LM'SH1R0@O/004QS7^K ML+)=TZI;'B?7L5KA`'(DF"27(<,4L\YW1I;1VR+XUZ+<I02303KD#;'U4+)> M<FZ)P[S!(JB>+S=K.5==X::=.=BBLI%-8*^-5B>;32TA7-T5HJJ6]`:WT12I M&K('#*;TC4B>=90R<"X+X&G!TN9N-JGE4='P$M'"FHUM!X&,!LRT0M#NCHY: M75<%EA2XKE<ISGQQKFN+XYV-0A(8D($B%=]8'2X%F_-7"J/$#=DV#0S"^0Z: M1>GH)84BRK%DKY9UP:03*,LKJ`G@9@O:2&4TS(%2>&VM854Z<.G9<GALCSM> M>1*QB9E0[4R#0=\=5EO"NE[7E(Z25%*A:D8=&1-&FEYAB=%*F%(G8.P&\PX7 M!'2F*Q&.:G3#02"UEW5VL)::;15W=77<EP::*'(0(>%=N.HQ@HPP)P(CHN.@ M!E"BT&%&#*SF;O$S`198V(XC$(**6=WLYH%I#6@UA1O:]=,LRD5ARC>X,Y"< M39.0='IT36TQ2'MXFD>\96>:DQ%[`3)%:0H(`YUBXZ1QN&Q<-(8R#*XB-E(# M>\"6MZ26`MG1X-X`(LX#E7WS1!`C=\].T7P4C193$KMC<>R($:Z2JNXCJ3H. M60XDU9K9O=*&H:`=DLF:81U:Q8X>+LR3A>ZG>G6&\Y=1"UH@ADS0:SUTVEH; M,F]I`,9AS)!"V&A/)PB0T&2T@G,UVE4HAXV,EI.MX,[D!*,I&D1.LEKC2T[Q M!6T&B+Q<2T25TTT,&#DX0,8AK2(8B`=<[Q&F;=+D(TMHR[D<71?63-N96RS@ M5*B(@VMV%=Y$P?-7KO:B92D2U5\D[>4;'`K7`/O<P5]:HAFB^4<^@/7@7`3@ MV<WMV)AIK9,>%UH>L/!ERW4T#X57T&H,-F9*JFG5T6!SCY*H\G:I`WHPZ`@7 M1LG4[-3:P<VC8BKVVJ2#`Z.P+HAHR#5G!0H&!R0.QCPLX-9`#3(44,V,*+&* M$-'1?"<<]CCA-F3))PZ,&S<6HLZER#!F&'1,,1A8=MP`FSFC'9Q@U5"W6&=J MBWRHZ#BV%X7TQA09IU>#X@)^EL2&MC+.>NJS-0J9A@I2YI!0`I?!G(;*814; M)7VBNQE>:TNF7B47(-;:%,ITK62G.R1FTGT>%&X%*UX]*-/L?+%QK,*JR@'Q M./+=\:MYK`/!$TF/5&66N7+\AUT+FUYP'1Y9@M56V/IP0=^<[\:VZ'W<LN%& M2J\O%,N&9MFD@GJ*MA&8F-Z%0K0616<[60V%!!A;/0PLQ%)T%17RU:!L7CS% MAOHO>[[-_(7M6"RF3>"5DB:FW.].57&LA'Z2VMY)3U?AY<S([2K=2C3*='!B M[>L`=LRF5`@_262O796O-'$-<74RC+O)PLLU!9-4&:5*Z-7,\!J!2M(!F0H& MLFB:$P3GDP4T.*[$B#3C@2+DJB*_+\'?+\47XA54=61--L12M:+5\CPTJ!:$ M2,\F,8_%0WC33;%V#&-+Q+21FM[-FC"M;H.NGTEQ"X5R&V-H9W$/=)G<AF%T M0Q(K#SZ<</",2*0K@02WJ"@=!&:NRETM^.$DN#I:9XM1%@)A95T.)T4,*8<6 M6GW5\Y+XWGA<"*%DZ9RN3Q>\B)L,D(#`"1=)(S#V(20IBG99;3S-&8>F=72+ MA3:",BV.-Y2!MY6,EB6^]%V"2WL;!-COC!P:NEQ&S*AK>/1%!Z(JPH`Z];US M'EU.>%"@S0=A9&E8G>52C328:E-,E#"Q)43SYSLVMH39RRA@V>P2#G%;NCGG M(M.%+8567BT-.WIY,IWZ<Z)OQFSLT>DSH])&C;4VBMT4ANVEGCH87XT=G3U7 M6SB-8['R^.CC*-NJI^W5F^<%H(="XKPNS`PJP886#I):R]YDQT-/9ND<C0-, MML$8018B1"'4FVM*=00HBAB1NQXMZX90S'SKA=Y3><TJ'R2+AD;.6JT4(=7@ M'C@JCBALTRID@ZNH#$6XGKFJY?6<.RO'9Z=\'1WX\=3)PLX*[)6!QUAP\:\' M3<<@Z9'D)*:+#4EDI(B"%*.13"=*)LM&WBHUX[[=>H='IZCQNE]3*BC1!+;* M-LEA=@V%E$NIC!:4$B*(P2^?1T!NNG2L"E94JJQ99CD.K+TZACV'`X&PS;3' M`G\/A(7W>79).P3A.,@CM2J(\DLQ.)DGEG16Y*../&=YW&)YQM.4660.@EAV M&02QU]&JE4F!79MMC;*B1=:V#2YHF9&P\E(,HR)ALJ8"9D\K$Q.%2>9&!+XY M`IY1*K.!Y4$7HM!Q6)3$HAY`CG=$TQU;NL"K8)L;>!R)\I3^DRWP8@X&*`;; M7?I%F)4F[*R91DG9<S<"C0U;)!OK`@&PN9:989F2(IDPE;3LZ;7MP#M,'GT2 MK+55H<9CJ)P,Z3JXO7$.E`B<%2>_S>/&4ZW<D<X10'<*:V:-,=$CO>X%P>QR MZ!V&WIY>.4F%$*\R>!.)Q7COCI(<O`RQ1!5"^6%#`D!RLS6'J3P[*ODOGR4= M$8(UK5&J-4:HUKL]>[6\]TMDS5ED6(%$V#:HJ-N,,,)#"%4F04S4JFB"&:)F M4HBI&5[5VN%5#MZZF,NV<FFEW3=>\5BHIBTRF`Q@,8X8&2$!+D9X+WG>E*0] M12;M'3$V1]D^)`GZ0D(2?RRJ*F(C_K%D0ZJ)051$,$C`B.DC(HW(%A/Y5/<B M^<BR'(`GRIB?ZQ]Z;0UD'E!/1[*>H9[G\!QUALR3(>*<'ML2&Y'_)_=X,)DE M*OWU%C<UGM0&`>;79?A?HVR$]CFZB8"J?[?<%##0DPL4402*453-45$=`V_G M^?^WTWD\?-Z3O/G]1MGJ$J!7PDD(6T>`4/B*F&ZN'X;_#`2\0H6TUTP]Z5(0 MV.RR"DXJ%<]D$BR_!TT0C-B$&+1./GZ+SV6LVD=-=,\:_*:&WW$L]/220ZCT MFDG(FHF)7'AK2<3T+MISA$D.J8)'CLE:U$0<]:I*`YLC"#VLKA-(&Q4]!_[W MTO@>!)PP"`^]E07`,`P5<599&F1JVR"TA;!.E0^\3B9U@A\=[^/E#LB&X0G0 M)//MLDG*R2/5$3[R=DZ3(5ZY)'#3??W*N+&'@TN(Q(:4NAM]@OFZ"8HJ\`?6 M%$_>D'@\".L$WPD2Q.\.K:1XIT34/.\$Y_OOX?B^H%_.I$@T4:/R73I-VM.J MFAE$%40-:)@4MMHED0DPAJ1EE,NGIY17CX%2617B04R#))[CX&DI"C2?\JRR MVLA.""@_VA%-,O;^]"?T?\Y+[A[*!W$(+[U!9]V6?@K)6IB/.AM8))JPHPD` M['N814TIXC];$$"1()!"$C*I"$BKW'.@3'Y>A^<P.IN!@<0?D#74Y#D??[MC MM8EAD#SA0>F4;/NW70K@HP6RQ`8,LAE*MDJQMBLQU=>XW:J%40OWV:"_OW5& M?[U?OT28^I'M?^82Y[I(3L1[2^4UL%_`?0)S-*LN$&04,D0X_6#A"P0MC4`: MD0-"R*RBZ#%$^&+]QALBI9(WY/L\^=98S18"PP#U0TFE[/[OXI7^$?IIZOU* ML;!\T<A:I@?E^L10&(5O%%4="B4N`^CX>R#-(32>!.^F:*)$XC#^G@<%="/* M*8#SW&(4[I%DC<;=S!^I#ZHVL/\LI[E-/R.C$U>T1/[H+"PZDCM(FI],^R7Y M_+\('>^-9+1<.?X?JK!/K#-:4XS6^7H_K.0Z.C-F&1!HAH3J:PVHR+M44H$> M78B6&^-%JS.*&4C_!EF*A(X)$$9&05E)$0Y8'1K?..P[A92PJC$6M\<V?J?" M:V^6<2XG3I!?,A>X^)9LRDR+FDE0TBAQIAMEP)UB1VT88W]X50\-;4ZHLMI7 MLT,=4EG+Y==U:U#6Z@L5E6.9O-IM]:8VQ9QL%C:5HK#`[$X+$K(.L,WQH%>D M@!J$6T"T;DV$E)$6)U&]T<LIJ7^NK&KL"0$&221!)NR6Z"@\E\]3P]#NJXZ9 M5%]Y:L&6,H8DC>3L)6G@]IJR;[M'BZS=#1M(8T+B`8HAL3`6)H:H$)II"`F$ M.][P-A_N'3L[=L%[!WO8'JZQF&:".0Y*IHDB)8@FIBHBL#2/.=P9H(SG?!.\ MAPDCP(TAN9#$>":>Q]*ONG[:N-+?BUJ5K3:M&I\5,?ESO:JEHZO&(AV`:":2 M)85`PE1`PEED%("%2AH64(#`D7!!@*04C*DF`J25"@L`)1"`0@%PDI$B<8%F M$95(!4O`?(90`-(^$7]WQT.9556O;,704]HB_2!V1X.!?2EW$#`6!B!(1^9= MZ7P)*OP]I]G.,MP_)S]9)'V;R-BC?11\=>G/2J`1ZA`'&&E:4#"5.C[?E>)\ MR*\+B\9]WZ?SX34OP2GCYD@LG.N.1JP9<(N<.3U48,8-MT=)+>*]<&K\;PAQ MSVN%^\+LQ!!<-(\@IR"B'^ZP9$@];J@4H5,B)`DK#U`G5`3U('%<41"@']`; M(*9*=J_:B=B:F)*[@>T3X+#AP``0`,/88$&%D`29AE49!A!ZIR-$ED8_YK#( MRS;6238R&Z>C*AILR4LR]6G\3=5O7O.*>*G"8A(G8'`"&&@1@A3YES,U(1HK M4FJ4M4EM*4ELEI;-:-4R2M"AMJ3(;-I4:TRRF2R4%R,XL<KF>*`V$)HS(#)( M#'#O(RJB*B*H#8JW?=!$%2]@:-0T0!,2,Q)HS6:[P\%]7?X%DD`>L$ZK$A%X M@^,`*'JT$\N(3*9%)\MFF0P"=8)8X#2V>T7%$V'^"\8)_Q>&M$OV?EK797W* MZ-'=.'TYJ0#[+Y&SW&>R/WS6M&%EW992.1"_>:1DX-DE&8(!U5#N21A(6B2E M:"`:9)&9<!>5!\%3F4<4&5,E'"*E!E3)%.G7_3K]$:L)_PQ_S3S+S/_)/<T0 MAUGND#4)J1_XI],'3G%XD.LADKDH9#04@T*](6D7("J0H=6^,`./D\<<P<CX M/YQ'\%`(@@:$1KXI13%`9J?T?[1^D]OY_VGU_^7S^6H2U]:_OUM9SC/3V??> MW^W[,:TIMG#;U=:[8EME6[RUUVVVM*(C>&^!F93*3;KQ.6O''$L<8VSQ*(R) M3G:U2F>6,[9USOD.'#T,S?6V^I<<IQ2F85.#Z\O[&V\$1!*4ISE*HLS,YK@G MC^?=]/#[D`OM&@$I@THT(4J"]8!<$F`('"%'"PE*'2PRIM.4^>.\TGCK2V2$ M:)2"<NFDFH@-UD1F[;5A\^JC28U@J215H98!1AVJ365L*T]_/`Z]WN#JFF%2 ME@I12DVYIW'0/GH1Y.,#^'U9IVLX=Q+DC(1!*2*L4?OW#^))B9#7>7C#.]Q& M]:G;2DR7$'^8!(8>0NU=0)+#7/D=Q`B2!H2>$."I%%2A89Y?K_.QF,9<MH3J M*KZG`\WZ?N_0NTV<?OSY;((:(J4C^C#%%X!?)5/$>\>K_>_JZ%!T"@+W?17< M?2<?P)>P0?<$,$THB<*(02HR*NIX.AX'BO_Q']!B^T^E^ES0F_L,)2A(@FI# MY!060`([^F'I\>4%Y1<B26[-T'`>*\U-B:[$X(R<2D;_>Q4DQ-;:2F@T>@NV M]O\P\9QAP<;%8M7R3I@^=1/M6XM-;H6K2Q&3]8/E+)@Z$MBAI&BAIQ!]$BE* ML0J3**$0O[)[ZA0.DJ@1"J4C1PR`9"!0`4K$@@8PBBXPA$"8RJH%(KD$PIT7 M6(IF7W(^OQ:8FHD_Y..Q\IXFA[D3H@4\YKYW>7-QEM9?HD/L?-KWG5>8D'K2 MM;>LS1;8U:6S8HC1,E5DUOZWNM<G2[62QH*ZW<-&R>Y;30M%EI5;V@;YL'U' MR>#U^Y\+E"C01$BKJZ%*?%^!XDI01&W0&P_D5VPIFS9)156=A5>Q7B/L+5$O MW2&!]@J23#U]6N/^)V.VK5JT*M4+2>!8Q9BL5%/MUC^?;4U."M1X/F)]3\6_ MZ+?<D/:>`XR?*#9C?2YQ##$H'[+^E_%_:?D.'ZW\M^O^SITW_K/`#XPT^UF? M5I]/S`<`3,SR448LH!^I;"?'5L!8$E\L!\W%7VSG"'3$XY]_8$SBV]WY=4=I M,E]G@8[9!-H?@?,&G784\^$%V[BVA]HHDH'*"S]E'\<D?=UT'7JL1%/),D#Z M/\%BIV>!@3L&#@]_[/P(/'$!RQA0?Y9$\D)*!40TK`*R2J$%U@^N>8RB%_-` M!_`2/(A'1)@<7T0IB.CNET4,FDS#\D4#T^@VX$\,>>/7>D;6;/U4ZO/SS+I3 M%2UC%QE3('0,DB2P`$CY,AH*.[J];2#61J`-D0%"122PD!['!?1(0G=B,D"[ M&]:>#Z<#N8^7PWJQU9JQDXDX519H-182&"O!__N2$D+"FS/\.$LA*(ZLBK45 M&5&&1"H9$I,]&(TY.CKR0\))+:E5;!9(4Z.Y_ABB,\-\!QN52C"V%.&*BQJ, M([.T#X!7[8@P'YOFQWQ@.]XZBC]DO,)IH:0E?GN)%YS-G;`#L8AD/N"<$G*/ M1?/E9P@@'&:25H0K,&H3QRZQE"+/%/3%S>Q4]0F83R$W<H:LC7B^5N3=^]PW M98TRH]\?60CW5(]C4VX]L(3B4)+!M'>?T\N.AYZ&N_BMG8D%A8!18E8A7XM( M=Z#^^)=IC\@=_=5+0$E&]20^T7<222-OY^B2J>20<XK]VDR]1BT?-[!!^!'C M4)\0F*@T"<;!?O?$K90513$4?;KK&Y,B+2*6%E0H*:R!JPU<,,`)QR/0J*!K M4.I*F&))J(YLF9)KMJNRM7=NZ:N[(7=B*ZZZJQ=M+9+:7,1=)"?KS:H$(0[Q MU&$:0I0+`*,<@Q<D"P0(89&48",(<<Y`#_KP65E.17QO$P(L4="FZ>,11%W\ M1Y@A0A0A['W;[*?SG;-9%@$B]\*)W*+L]9I`RNZ5,@V'3H*'H2W_'X9._.8B MBB@JO8/FKP;[CT"00Q1+/84$[*JG7B8BBB@JL7%>\5ZF"*>6MB:R3H&@_XPE M50/8(_":**H*62E2&!31Z)"2*GH2#5H1\F7Z#\"4H(CR\V0A1TA34)C\,=28 MZQ0T$@&_<[-`S#P0G$)0&B!J)*,@2"%_LT><\!*GBBHW/*!A(E$A_4X?G&]K M''<F*5+WUD[SW5^N2(P/>5"4L$?ID-H_YXD)421/(>E&)\'2$+=7[E?AZ]\] M#338U*A3,J4DMF-I4DRHFI9MLVM"(D8:)$J1)224`_P;-S3Q]>.4A)FN2.%. M($9SQ_BDE<IX"1UCQ(L6(L([?WI)U=X[I(.(?``W"DD#*(+83V:,'MJ6QA(1 MHP5-&(:836,!*Z)@GRV-E6@_MI,#!''IJ?W]R2^)4K/)R@`7L=HZNP``^H$/ M>JH>\1T:47TAZJOVQ,`?I/B![GVWQ(/@?0?Z%S!MB_>C7XAB8?GZ-/UQ`EY8 MJ(2B)3^/DY,==:&$@_6&ZE0:U!8LHPH,OUM.WD#E+DM*0I79W1[>]@VGKM5T MLNNJ[KNZ5U))J39W6NF%&5$12C-K!G[$UEEN$$$&*!Q68Q8@L7Q<=G:-)U%> M^A04,TTV5!U2@]AH*;)3]Y#BB/E.F4II-2OIU].J45.NDR0R;PT:+68GW$M9 M[I(1Y'M?J3Y>QI]?O'V89N/W+(JPH4A2I9+)"1^*QJFS#$H',PB4>PO^@NB* M\,B"M`E>22G\'B>:-'<'ZD?,"CQ/2(>F2XE$J)#,BTE,2EP%"1>`/EQ%"GZ3 MK[KW5]8=D]"+Z#]3YKT/%4\WC%%.53T@;^\JB:KNT!Y/T?H0^OZ^)J(G-$CQ MMI#EG0;>6.&D9=63XU'\CT3'#T,D=)H]QD]1Y?H06$.!_'(1#L]"><[0G)9$ MKXKDDCP8*?9[^21^CRD))/2*(YA)W2<?C;;X^\[R$/@K]+H,B$JI(>_3]/CK M9^$%4CPR*=*(PJ#`D7&%K",XC%B4/^-)>%.1QW@+UTP'@="P/>/.1[2"-CS^ ME/W69;;;IF;&HB>81M["?Q(1W'\LY")9(<*D+8'M*&E66/T5D5(R*3)F`&DH M*6E/S"^K;RR![P,?D)PPP7\7\D?H9_<G'\L?Q_Z_]M)'\M-[Z:`F)K7F@P'W M#1]LQ4^WS`9+[H8U*MD_DL.V7KH01-]E[/I1I!0JL+(!UMX!C:IP%/8E18B- M]?/?69W'/D;5%&Q:OZ+4)D*?8+BOZH1_,PN%_&3^Z'QC/X<!?H&#'32R"I[H M\L06%:U:TVU6[F/0Q59K)!2D.J!P;Z67LO5$.MURD]50U$)Y3S/$(89SFD>L MKW2KH)(LZ8=)F07]=@QPA9<$TR"#)T)RE."5%"LW@O,E&"H\&(5I90HA8*2A M:JDL5,)!=+6RX^#;EYAD9F$J!*DA6$BBJ"P`4A%)%DA::FF@QFD3!CS1Q)U& MX3`N9W&@@DJ:=X8)9"I26I1*%A2V4"VUE-43-TF(T<$)4%G!*H@:(M0I!+$$ M8/+4;9#15=2QE*76VPHA6L%`=+"4<PE2EE);M)Y,J'.5UUO33DA8<HM$*$02 MI&!1PW6B@PD1K?:3^W<?`^\#@0/_0&;M9F6E:&O.T-MS.J7=3_S_YKV?@$58 MCN4YZ@;TVVM>=<W'Q:7V'&KUA^W_"?+X8G7_&R#W`*]1_JT+GZG>@[)+@?L_ M2*H\_2A\Z^U?XANKQ?M.:9B2B;,M)%K]V&NFN6Z6A*00AFKI;<QL6R8VC)M@ M:%6D)D1F!E&00#O`.&>_$5_;+Z.$3_?8THPK6R_"B*V:U9UFM'8,^$5FC[MD M>`>;,B=XPA^]Z=/MJ_7YKR'0Y'H'5$/2_W*&66(59%4_N`(@O\BB(G\Z?Q#! M*02G;"Q3+_&2(9ZCS#\[Z\X5`XG(I4Q#VNR!>+DO'WL,0GVJ4S)I$F$@^XOV MGX`/,"`0BH1H0$I4?,Y_3>%?T(=/G-\7%>M!/[U0,"ERY[%2A%)G^4&&0EE< M15V,$"P$!%*B6$PT5?ZPD_;\'1EF=269D+12E6!^.C2-!V3V870O0?`DP/UA MSK7YJI`6HUR.:JT@+$*L+#<E"E3T+P_H"8FY,*YAUT"@Q6,5MBJ@1/]HF,0Q M-),@!CG91(_6"^L8AP%$DDQC,!QQ".?DOJE/TV'/TS$P9](1-552.XABMKA] MXM#S(B%LXE!'N=7OG5UQ#_4R9F1]O63)3+TY)?>JDM4^]]<*C9F99NK@EAAB M6`,QQP94Z;'MV`/6[:KLMOYE=<!H`K*5EH@FMODOV;,I5O(_J^3X:B[N'$^O M#$1.O7/XI"<3-[`Q4PO6X3_%8PDBR#QKWD>^2H]\0/M?L5/R5@588CGT;?C2 MIF54/F:*29L!&59D`:[GJ?4&?4]Q#D$Y+(Y?DF$'%;+</Y,$N636I1(W]`^! M]XIY,:`_L4A-*AW!-"@?N4(%B4')1*:$F$E@(8EB@(@!<5@$H$F!<091%"0$ M@0[_7$D2%#2Q)`E$4^RJJ[CZ3ZC'>ZQ.,F9\`A/._:,(-8VW_A)X]P3,2(EM M!:]O<\%=5!0=#\7C59:#S5<'+:+%%A$004@D`3`&Y#(.W&#O88K)`TKM0-2F MZ!H6%$I1E!J4KU&M0ID%@4EI#JKK"DG)P+[@L$:(ZIRG2Q6*5`@$NU!O&H)B M#2S0E,21U2N8A!&=#%SC:FF\\,I5#:F$S0O*2)-'B^_M(>$^,WJ0\:BJ,3^I M<L3G8?:&L(%B/E)'(D`]3_.15S>8:G()GT/FE,2H<VCF_1,0+T%^"1V+-"7G M_?SR^X)=NE?Z?*UG.--O+WWM]7UXUI3+9PWK%:[8EME4OEKKMMM641'2&_B9 MD"RJX;KQ*>O''$L<8VQG*JZ)<WO1G?7/>^];[ZING6`SP=GKYX]?)L<NLSV/ MGS\>GK15422[D_LGS/!1WZY\A]RHW.5KCXA]**)_TR&/[)15!@2BSI="^Q>1 M9MG58*4<+WO*'1ZO@Z>HSB8P.GAVX]^SN!'J0AK'%)/&.QH^'O]7'!Q.*@4I M"C((3!2D($K(P(D@*1",02R$C*D(`0)"H!G3#5[TX;ERXX$=P>,KSA95C`8, M@J*DPI5"*Z"@^F*0X8H:+"".&-MA,P7$2&&270M(P"@D@VP1+C%9+D;<;T\; MBX*R<Y$A.@_S$_/G9NNZLJJO3,)WO?'Y^[:'%&SJPB3C/%T2P?!"(121222# MD"%"\)(O;`G+I,&<Q7%PQ$,0D36&DT'NITE2X.$&0AK)3PTT`HH%>&&"FG)P M7%)ASG`UXIX^D`#XQ7Q8'^E")UZ&\QP8B02>B(.DH@,RJ"^H)08D$(A!I1I% M7:B@/K!\51?(T@4J_A*F'<>;7K%'6X=WG.6DG:I6,C%JVY5Q&FB7(4I`%))@ MGZ'CZOC9>C3J`66=&.H]SU'>D@++`MD23&"1,4$AA*%Q/!D3#`PQ`7)-$MTV MDTVWO7MTW,QAU8Q7UYPYA18<+:,"W*X+$D)..(\K2`L3R%87@38*$!G%@]`W MBNH<P'G'0U)%CJG21[)(=T/YO'RKM#:1X^QP#[^F(CTCVPOY,:T8J8S,`?_` M.X&A%]WHN'A(82'\F'!>Z4#[?K=<EPX8\)D4CQAA2[>F@,T4>WNS(U+S'5@U M+$N,!R:\+\/_(Y_EP[=`>[A3!$*")2AB`'N;4.K)SI].GQ-AVD[O8I@.B?SY M8)18Y9C5!MC]2G0\B>6.1@XBYXUGXF)U?L#YA3ZI)^?03ON]2$RE(#\XJX!] M7=D'`<<`R`PS"42IUV]S]65557`!YH=:5('W!U.@GYT5'WHJ,/P%13R`'Z7Z MD.\Q='V^%_V/!WBGDGM(3O^N6GS#VJ"/YB4$"".'#O,+2N$D)E2&/H14>>3R M^Y1C"/>Z2.OSR1TC7OJU_78V'"3]YKBJ+XZ(H`MIP^D9#[3C`]GLB%0/>)\@ M?`^6S`BQD!,;?=J,;%0R3K.2[XB-:1)<#C1I7HLTB$()(DTTPT@0(-`T(H2B M,58,D6E5J2JRRLS6T51(%0U#P?(.'8.K[7FS'6#JU]R'@:)EC=U[P0?P/@GP MA!'7X22$[M`H'L.H=PFD51SX=_RZ+.VS-\Y6,SF!0I9&THC9+^I-A>A3TNGC MOV<G._FWX#Y*2'\I)15-PA)15:%Z)@`?87>C19=PA)"JQ0D@N$E\%0&D@7X# M2!,32MOQLIHML:M+9L41HE""2`3I()_Q,JFB8?OQ`PD(I!8'0@(@*2%(JN5E MW;=,?'7B;2AD?%@F3Y@_4^[Y`%?)"78GO,XK^7KDKK+;7BL?H/HQ.OP09/%U MVF&8PA-V0A222^A.)4B!D433WABZ->2(B$`*OT2A#(D`PBA0AU4Y3G[1]"&P M^:%^U3@Z$)O.R1TBVOT:/EJQ?'%"&A2E8SM!'"G-*BF6@N00<7"7^^/Z$?W; MB4%[Y\.31!$-/0]"WCWA01AZ'.*"&)&FE"ZX>GEMW%I3]`NWJ6(G20IMCK9! M$DYTZ'%Z'59JF2QI"0HFYI=(;91E:N1[#"-D'GM-9SPS(.>#M(JE9L'L%`M[ M-JD1@7E"M\7PD9B18(7YQ<"9P,"Z*!V/1`/3YAJ`\VBPNBQX:?_=<T9\?\V] MBOS)0R]/T(J/=Z]N9^S4F\?H@U8BZ6K0C5I/6Q254,4H[RRK_5954GW<`8R# MX'0_V&@_IXP\I9J*7VQK\,`\(H5=?IC]9IP]&/>7R'V'9J'YK'_H_X<?R6/" MIV(/Q^]\)]21Z5)S,%4C^%<JU1\OOF?E(3-[KI[`;D<YJ)M5KTVJ,:^S%[*X MRJY7&BL@4DH4A0E3,!V.G@?JM0)$D@&9N<`"015^ML`^OX&&2??MPZGM[=X4 M(7=D"8L8RQ'+H?]?B3EMV=WF8GYVQ'C).EAB_`E[OV+Y[KW%D;ACKA(J#`!) MML8#3/E;?@!)*`LDAYNX7`5V+[R0N2/L"J[,KC$F84U\"D!\:I*.<H5KA\U6 MVX!A/5!Z!+4%T$!/TF*HU!UD=NJEZ3J8%,&*&A?!,=LL"8(0/*0H:)0=&&4# MZS3@IX#P'&E$AE0I*`6_N&1B_;+L"'9(M.=$=*J)F!**`\L'Q%DAB18-R,)* MD>#(A6@!Z4'Z`E-*>!/L(_&?J9UV5X^0/7\>@;';><T".K$$F!&YLQ<,,U(; M;&WN<R3_F^Q>-<6YCT$D/L]_O_)>9\#E!Z#RP&$CA/9CA-!(4&`ZUBKA)$S* M%`1S+QC!$:5W)1##*DP@6@DT2F"X!B11-/G:2:<`HX1@*;U=\>=T+-G-'IC< M&FI8:[KKHO=TLI2692G2OVVU];(-&W,*8QD)8BKL[^S3NBI8[U!3DD&E:4*$ M`*043M4*K8DC*"%5)%I;`\*)$Q,6[./&N73@<E!__4,VP&@CE%U!Q.0%HU^) MAL6"!$MED^,/&E^*Y"%YJ5CC"*YY#%Z2;(.XA@\H:.E`B36%,J`;IEFS MW]U.#@PT,LQ9"(P84UB[YD"MSH31?-Q3I'I5%+U$*1!G+"G+1(DF37329A,- M6VNMZM8BTQDX</7P:*HHLF^-8>J42E*UDJ11G,8LK#2:$];/N=]>SP!?"=E< M*R;4%1M*%@XNT&RS:HB",:+;%@D8P=J!3T;^E3`NV3(MTR===.+C$O09>K(= MF\,3E@(GAS+RPFB"#P:T%LJ(BB#$1`8C:-*6V(G`\WLZ);7U?50D)A$WJ7:^ MWV]>I,XV=&N,623H'Q$K5L.='48!1"_$X:AZ.UZ#Z#!V4FH8,%G@T(X&T'9) MV..)S*DQ3.MR-==:=5R89BP&"I*THD>&(2AI?TY@9X`+"'3/3JCWV66F6X8U M.91(K3;0PJF,@PQDHRB><2X?AL,&Z-5*#>F1\O%WIABFF6`F[F9@7$6"\B8A M%B,HQ+#O&H6)"9"6&3#VR"/YTXZ;%+4LB=I.C#QO=DC,X&1:7>XF-*5WZ":7 M@;:JU8JJ-A9,85VEH]1!0YUCBF^TYHZ*`<`=99N%5#D(1G^0X[?.W414A/(? MPLZ8%FYM&0L:J!S'.7#3XHSK"*?+J%_S'VGT?>>LB(CGQ[S_,2`>RIBJB*(1 MEF24FLTFP@(VJ/;KD2,!ZC/%.A!/J,R:"41A594BI326UIEM1MFV2P5:5EE: MFHSI-VVMUM+4JQ(!*NNB(B'&W6@=3BH&D2_HX,C0NUIB66&(DVZN=+2#L(-P MKQ*HR0C$FC`,#'9.(B1F&P-PH801%'HH41B"B]<G4I;*RE)320X<@3@<F;4G M1F.$AL2P2HX*28F9N$W)9,E<!`T3J5EJLC:5#!L&2617_M%E+*E2H4*H;:_J MY)W1I!V(X;BP"<[:)-1)$K4(3K46>SR?K;:L1!L6%L)2Q9*^Y44?\W/%WM#W MOP0)8#J*/;N8D))I2CY9%P%]STZC^`:=8ZQS%^/O;ZM,R?;PXQ/*`$=.FM:U MKT2B;"$*HU2)MCH3;1*Z\),463A+,OY>U-*KS!O,1#&_35?)Y?%\59A$34QC M^%I_#\USJY>^&0P?);8B:7ZJ1)B0D@JLJ0"$A`A!!"#3HM8M4I6YMMBK;I6C M2`HL"RDG:3F(GF5H^$D)HEWC,`6`!F`!E\M^QZA]'#PH<BB8LB&*()V(4PE4 M"UCD2U$-*R(E9TK,(@\/$M:ICR.#DT*"NV%D\NZVB[L>!3P-/*#ALMXY/%D/ M(?EGWZ7ATI\4@@FK;NXJ(G+I'&I-NN?>U@6>HK.R'[?7M1XD>W(">GH%"0)) M`BH2*[>R(R5([H/2D9SN2$FVY%(A.A)@G`D(FXB5$"I%DG!'X)O4!D-AG+(G M-L61&6+K(DDJ]>DN[;JRLFV9%E>O5(ZD1I*`!I$56F,6DU3E#-&(AH:70PJ" ME)6C98UBZ-%C"F(9`X"2!(ZD(D,A`%86@9,&L"R!8%&B6(,F9:HRBLEA)IQ5 MK8J93"3]D0.`'5K;)%@#$>4Q@JJP8VB2PKHD9#@,-6H-F(:-"MP%)(8J<`;0 M7.Y1V$R#"K?31(+2:99AEDRR$Z!F2([#O5II=/<=0,'3,M`OHED.!1,ZPGX] M?3FD-DONY2>>;T6R,UGWSL$I$EB9@*AW8$>8]_D$*H]P^>;7R%,0KZJ1+Y/7 MD83\_V+L*K]HEQK@QT;J[%HE*L(86U^=Q8MU8IVL,QBX5F+_N#_Q_SI%4@I: M$JO$T9T%S[P.%=,.H]ZB^@NB?0.]`"#<KT%3R3;\EPS,IVD;(D2-43_.5!$H ME`$P&O3\S_@L_8'5^)8C^WH,2J[93V89$L!`PR$2J?3O!73`1;`#6*FI5(E* M#4$,PP(8@8***+%A)*!PH%80LA\>E+?)*42]EC%DC57"#!_F.()=`;S#Q(CG M%6E2,55W(]5<>`_T(*`'^H/E?\8?Q44)(P-(D,@-('M'H^E0([@@EP15(BT8 MN%*DJ:-'547^GQ(*JB5W2'DI86JTDG,CK#AUJ=3_>U("D@9!-#'<!/Z>7O%^ M0ZOK.KDV@0BV.Z868:K)1HJ^+<[>V*A)/%04@I9%6*(J*L6Q"--JS5-H3*_D M5\S6)0S%)22/R0HX2&1D%)D@X3+)&8F$H1)Z(#"JA$8@5]<K*D&TP9*&%R!= MCK<5-,DF2%8)14TO*H/L'U04?Q,^D4=H8`JA$+RITA"*)*-[$%5?^WRB4*6D M#Z<P7,,0R0\D-L$PS*DI,D+/38>*&@^@!4?Z`LMIYD\4D=A)X9/:[S4IBN+A M/49K6*2P(X<DG)`&T\X4AT=2?3/MSYL;`D#\_ZL?UQG0R#>]&RI2E5_0F9-0 MT(_C5,F0KT$,<2AHITAEUK,-T)E7X,;&O0J*I%_$3E35$`GH/`/1UV>%\FM( M9KS11#TG6Z1]$IK,1[B(M$;D]H"Z#,4:!)RR(&!XD.T\"LR!""B:A&E$-A:2 M2@B!3B"D*WK"()B6H,`@L)(752$R0*V*2):0(UI,D2-S6&]M-0@U+$*$2@1( M+42`'K%/P5/?T$^@N"'O0$VBKBZ=LD!WAWOP7Y`#NZ+#P).3ILDNCYM)1*0\ M]/M9]F0@8(/FX`8*DQR@B/*#WI\Y,V$LML66(\7J'7VC6F@941,F*8%41`(4 M"(>HA3%1A2E)-)4,5XR45I'M];"&Q(5&]A0@?/,0&^0BR6.SPG(;(&>+;\(! M0Q4:2<DPU?XN-EQD1!N-$/Z9?,?)#L?%ZOR]>D'XUJQ5)5V_8XR#VC$1+!QZ M>S44$`V0<,"0,A[806#O\TMQ"0+X(?XOFOE\[1RJ.8;!1AVF\2$"/6D3Y4DF MY(Z#Y_.IU.A2BK8+:*1"U0*$B$)(0J<_D=9!HGHTK\?YWP?18VXJ:IZO%&(U M4>[TCX'9M+_[B_>R>7D),4`4+UT=517VAZADA(6Q7C9=)Y;(:L;5,]K20X!K M@#IARHA^71A^3T?P/]?^:H,!L:V>2<0V>STZDM4*C8)?G+/!`7JRF3)H8%58 MJF"A]7T$:'17)/6?5L#`8I$GIOJ9VC0892-#!S901^^XH5M$XL5#$=H@RQ$^ MP(W*7<;3ID3L40AF(!G(=<)LHKAE-LF(8ZEUKYV&6ZT40XQI2UT9#=AHJ-3K M+IO(2J54.;.%L:5B8H4J3(J;-XU<J=4*%(,6)V0:%[\T+?6$%&*E_$5PT7%, M:V:LY#:`;2L&%[6#@:<9E:E0>(R3:0?CVY-/"/-D+2,^9W^+T.[B`Y`:16C> M7C:"90%Y2^2E`%MMM`Q@-@$FJGZAQ6$(#)@`KKS'RV^$'&$BURP/`PJ'SP53 M`@-!&)Y."Z&U)&&)BNL>G9Y-`AS*M((\N8FN,^?3=//H+NX%>A"(X!A%76+, MW_E`C\'33L78N_!M]HP(S[5T':3(44,H**2327""@2&+!6O)('*'\V5SHDJB M57$.%!%1SA;.O!P\4\09!D)V(-^%_I\&1]?3ND=.\(C4[<CX1&IG,-RA@F#. MQT1R.A35";QL-J\!@Q(B49&2LI-WUZUENWK^79K=YX5-7YS%H*B!H4GW:$-8 M_7)A=29UC'E\2S(BUH$>%*J1(Q`<C#!,Q,)V@%][C@#J<`C!7(.P89C"3$'B ME5`CSE:B]N4,..57_"D"'KJ!1!J@4&D53L)\$T'O"&=@BH;[@Z<"[$5.%7C3 M@U)`NU/[5$-"J#KD4VG(O3ZFJJ#0#GNGQ>D"R33WSA([7N;L+57QT3:4>@P< ME@]T'7O\&JJ&&9]JH=#@Q^H0^8_]![%%`?!Y9(E!F\'0J'IBGG&X\4AMSR?3 MGB2/AT</UT^_]+(=4L\QC)BRI/UZ'Y,?W?LX]_O]W]\\B)Y?UXITD_A@X^<P M+'Z12/WI[B0GQ<ZD_9^PZ:&VGV.4/,7%-/DD6?L:=O@FTJ?I^UQ)K@X@XWBP M4:3!,_F-(<_3OH\O[F9Y3##L+PO9_I.';I&(PM.,,%BS,6<LF35R43J4LDC2 MV")"F>C&Q7@<-)#B26+O:5696*=:F%+>:Y764PG*-3147]K48^ZQPJ_[YM%. MB-DAVI2'!*&$B'WN/C;/R!^'/_*0^LUF&9^_\H_:RY#'XL('ZP0_.!D1%_E3 MIKP?G7_8.]'RXY=TB)Z!TSZ73K]J%@)[/TN*\32;.W\V!T\.!TO!PC'U:E6@ M?9(F/RR4(?H?O?/YQ42`?V)]9SDWWSWD]A"B)(GFK]*S-8VR,A]PJRO1)PD_ MOU/M'M<`>1.?%`]I4$55$8,&#)$T&,?.E%TB%57UZL#Y;.*BN"RM$E:`AW/' MWTGR4I$/7!%S(8<U$)#A,]$"N*[$C]*_`_E_GG'_9%*2D&N@H.SR.S<W7Y*Z M\,``2RFRV^K`TX/]U<X]8>SZ-B<_#X8!T96A/I!8^H8@A%>!$H422)/A\^@0 MR`*D2V-/L_#ZH\-P_!TS]FOVQMO^>FF9RE'/..6QW4W3;WI?5,MDLI(E+!*J M@R"0R)0R$A(,0M-38M:I:-E,JVT$ELTC!;8S)_:=N30JDV]WS6ZWDE>3$UEN M->I(S14XJVWB</B?3\2A2J!0A0Q2R(OX%Z1Y!F0DH0O?TJ[")F@;:*=22H"@ M(BI!4E",U^)AEL6O9B3J_!R,E)IDB62D(E2C.F86G"9,1:7R_J?;Q&<&%<9& M_GD36T+Y#S7-&!UT&I%<NZ7($=$N!F!F.G1`A<N`&B!*1$@E8IO5U9='9K8V M[JZ:%&EG+8E"0`2I#*D#,D0A,H9"EAQ&9QAADYII2JKR>..'J\\CH;93Q+1( MI-(3:818)I7K3%CWZC@X`D#ASA<-,7$.:(L,F)<1]"KLLV39M%LA386Q2@S( M)"R"2"0!(2LK!,4LJFR4U\NZ2F2V$VI:EE+3(8M-E12DF-EE2:@ME-F%3-A+ M18Q9E2-,RWG;-;2TJ;1)*--FU*U2*VDM9M6F!FQ3)E4M>FVDW(8C+&,J(B=: M3%D-.(L$,DTBS)0,J)##*D,&9MC1$KH,#%S(;XM<]K2+=;IR+W=L:[L':$"8 MTS0$0:,,(G8YB)*QH-%D*4-S"<#D*(!<P94Q-E8(*2$L&69*D'NTQ5942@VY MIT2[P,"B2)FF4F6!%C`3AD<`8Y9T:6"*,J$L8Z<R9CQS!A#EY#"C.NL=C/)% MQD16>S%E941@AU\$24]0<A@R))1K4]DV/@Y46!YVR:-1%!4N.<Y*+ROX5>Y* M1(]/@_+6*U,M>"`9`D0QL%U`,2,;W@T50)0$M4K#HQ&B@Q-#=0TH;MU+D4E; M&%-8OAIU1O,;*8VTM=-,L:-AF-#2UBUF@*`IHH&AHI',-!U\!-AQ<V3IA[G2 M=-!DJ%#CHX,`XA'NA.4ZR/T=@-CW"PWGG%!5)31=HR62ALGC(1#40AV1ME<+ MDLPZ6USFT>1<+F"#:6NZ$08V>O2.V$NJ<Q530=)Z6HPGOQ,YG(=J(1&.?@=^ MGUWR[=+%^'6BW+"Q)*9H'1(&$^!;3GCAV)F);=9&D!(E3H!C`RF(X&$.!)"K M2X8N`9@F#@8R8%"[D`ES$'K=9JEVV*DE$392VE0:395,IF8M#:Q-E+-C3%+2 M=>N\R1+(R7J3(H&(I3G9F+AIT4`R$"3I54DR:(FU*6J;2S4U$05B2D;C24JW MMH1N2*$I0D+2(L"RXDFG2866$PI(H18L!O*/*5)2*XA5*90*@?.DJ0D0"!.^ M0.4V(SEP2QIRQQY!4V*<Z-"!5"4LPA$H,@2H0C`5ID"93,-)P`?2A+\X+!P3 MR@O<.(HAU14>54X$#E?\$*>?EY@1IQ^W+N_80(JY2K6MPLQ'ZOZOIC^O]7[/ MVV%N#Q[R0T60GOA(]\'Q2/5$!)M[9/E$Z?ZKN0E)^ZS^`[H\2)VPGV1`?.1W MT&`!X,HDDA0!2"(TJP20Z.IHC]J3B(9&L9Q8%%*J!.DD$J&$TB,2@$"(S+(C M,,Y)C](</@%$F*CB8Y$,RA426(8F&6-?AA@M*)I2PB1'4H2V30Q`/O22@3)' MZS9]<LI^?PDD(_-$'O?]LR6\'(YEM_/#2'U@Y]R*I_FV7M#:`>O#>@QQ,!F% M<<)BIT<*]>I)^O49LAP4)_!)Z**P01)#(@3(I`!*B0^('H#M.B>7K[_TW9)[ M(N*VK*EBHJ6L4R>ERHI_@;]]_!WO@;W=^U.TFC&=?T_=^;KGW_U='XE;]RA^ MU_<SXL#@Z`F6<`?@[)IL"-W`7L<3#I3GX!@Z)].ZH'W#P!]O*>R,?H]M:'<? M,H`$#[IY#[@_,A!"%,$P0E*%(H0DH1!$)#+PCU'T<\DF/<8.>3CA#^,(15]T M><&V^@%TYU,^E]9OZTS/"&_;CRH7WH=3#PMD/K@RNG0@AP-88ZL"_,'F4?$& M%8+6E`7V$Q`@D2JAU#J,$^^.&/A%"16G$#XYU+ZY7)6D'3`9+$D3$!L`BX(5 M":8!!HM,NZ/O5H*69A$B)ADE%`8&82825%`IP1+60R%G=G5KJ5&E_NW5NNEU MD@FJR6E$I$I1$$$G(R4H6%5DF#!0Q&$6&CC!1@("K`H(DAS%P.%#>S9L94DE MV&#Q(&),3AQ`4E$"W^.<(:(0Z&)*#LC&'(!^2`-$1)0ER1$6<9.AS,@@[G+` M8"!@"C).,UZ):8W=7F\J66UQI5>Z%/!:;%)PUDJ-I#A2DDL0"KI@TADA4%BD M4C$DIB6`422D&'7]]XS%$]=W:5.T3JF&(B"0?@L\SX*/CAH.@4$8)1,0$L$U MZ<%+,HU^CN:2:KRT_9M]_4/E'XV9F1%@.3W13@`?)_0)\Z0I,H22#2I2%`A# MZ7CP71R(LH\,@[$?G$*78'1!"!BA4#P0<.BO7Y\`#I'RR/WPG=NQS>#2N5`G MDZ[(B'<D**Q*+))$C\./8.9F9\AH78_2<GE_2CPK*,2'9=M#1!_Y9]']O:6* MB2U"\?LL>Y4HE!U.'DBO4^R>PT-+-N)'GT0<*0:((^J5"Q%DBDD%E"T$2842 M1E4B%$H51@0I%K86:U1MJ;6U"F4`L`0JR2K0`$A*A`0P61%2BHB@E#DX(Q', M_`QWFWS]11T`THIT`7U'54C8W)L[ZI)H'%4,Q/YP/D1C$[D!.$DF&9")JF42 M`@)4E91^U4%.H*'3P?=`=#U(\>:H:':?\LLRT\!'TK%?@N#6#9"74*7&@0#Q MX(#^T1"2\-_W/;;=.FQ2#)`T5JZ"G!,4B6("($EB00QQEA:(,,%PADLDIB9, M#$B&5<0,'%&!P<)FA#!P&3`T;JV+I5D3#52CPH'*B(D@*NO#.\\.IVH(F!.P M@"\22@3O8%L/8518C$1&CO'#^CV\N/Z/Y?&8;C#M%!#[AE\PH6<&>N<P,`78 M4I59H&I?PC@'0\&")+HOX9%&EGIRVGSJQT-R:,[T)QBB`C:%^^%#G!5B8G11 MKO"RH!B\`+IQPNMW2/*1-B*J>#*"(]82D4LKSJ3%18J-SM62S3,5*4!28$]V MHK$LP'0.*^N^Z"KL];7U_QG[."X?7$G?KG?Z3QXWY=9SO=81K^NR=&HD',6N M^_;ZQ6VS9EIRS--$=XS4R@D3Z2`'/SA#)0QMN3#Q[:(E^F!!6S\"USI`56<S M`U-35J!";38MPJ)3:;>Q3?7$JO$AZS)WG:Q3P2,R@<E.[RA=+OA13DZC2PB! MHBEI[R&/OGL,J,)ZEW1TM515D=,NV@Y;]S70S9D!31+,!80`I0EM:"A#232[ M8P^12\^>^KZ0DI`.;4)-6LC%!,1-C6G=OX7H9#8W@B&VS]R@,/(-K>K6PU)X M=\F_,MK)($20I[,`DI#81<@@70.XK;76HJYHT&`I(CKS$'9XE_#:W/ONW\+\ M9.O?S^.+`;:8/AK;CVRI,NG*F09FA329$?621N38=JQ#`!I#4A8-4U`:0PPJ M"KP#U`1VNP%C!CB8.AM-A@X0>OATDL))(DI-";%RM/ENLLR=NX[W0XHJUS:N MT;@$_2)=*UVPZ>V=ULB:$WVQ'W^"K<PB!1`FVZ+OO25J5&F`VVQS4+2N]Z%N M=TN%7EWX+F>.)\GGN'%AX.(D]:R0\^,(U8?/C'DP[XC.4%DAIB$(+B_N'ABU M1-B#^?45AIEB9$8^D3'0+@^'BG'AY-!RFN[QYX3B3/NHP-O"$Z(;.M<=OKS5 M618FUG9.6EFFR:8UK%@ZDAXV-3AXG,D?V!6?4/P:1^W\O8M(C135DH7O-2@U M2*0M:\M&W94NX^?_+X#]`=/T'-Y>H^/C\]555=!;[[?Y)WK\[?KOW]GV^`3: M,D.H@ICX3V>PCAQ/$^+$QRY;DQ8(I\DX!05*'E&%`H$DL?)"&IVI>[77NKTH MULLBEEMO36UN.Z#(8$@61AF#B`V0H:&DI%@EDDF8""'`@70CP3+B:TU"*6(- M1D)9-PGYNSP%7J'Z"::&U,!?F2E`)1#P2++<<9%^@+1QL!VA:YI,9]_508$; MH5'.H$)4YJWZ4),G_Q@]K\>+Y<)@=?0@C*0@S`,32A0KZQ3?F##YGXV7H[SN M^'^GWFC7[M=1A2AVDAD?8F!@4II3P@#5W8+B!R0<I*Z?'*/<_<9N@;03[/>/ MN(F/?NJKJAXA'QG$1YG#VN\Q$X>`/9@J,D2130@)@Y@@R@$,8!Q"^A#$]U=X M8"%F8,ATLM7.Z8BS_DKXMFACN/C4%/)T?8?!5,#M\,#KM!SUOJW`!S#E2TUD M"U2E6`6>%1J!I4%I&E"D`X`ZFL'Z)MN1<$1=#5'$`?H-+.C-%`Q,(/UFQ%'F M#WR'ESIZ?]*OUE>/'*YR>0YT@>N2=T%(TEY9E%&*/Q`*'@J'Z?1=$/&KVE1, M"$0GO!;XW9A\6.G"+"+TF:92DGN==*7&;NR[G>(R#4E&$V)9"<-`9B\DJ<0: MHG(3DT8L7PE0PD)DYG9//X8&2=E4GE?*_=Z[-$4IZI`/`W[;7SV?W=]#GTA) MX%508AYT/C$G$G(?AI_([4KH,9B-<=N=\3T;<(:9@@.LH8!"()`I?J$!ACA2 M=>C0TM"G)1_O5/[<UHH9OU88/&.*0F,`/8DU*2&35%LFTII*I:[K?C[LF9&+ MA)*>#W'AM.DGU0\QUCZI#_J/^XPGY[^,(/C/-J_>GZ%42OQ)=_BYGY=8A-,8 M5-_A^I#^?PWUB6VLS$)]V1W:*2/H/9ZO0\[3@[T0DC=^HG1"J803)"]/[Q!; MF"X0(D*H3^B]`27SDUS_&\DJ:A87/U;H_)^P^[G[P_.:UAF*/M'S4$0GJFCV M15]&)H#6(-D>7R2D`H@T@`R\R@J4KL_O["64!T`G(&_/P4]\2/]5B3W-]=68 M9J`TLL2ZL@:)71!I(5+%#)0#-AF@=.&3V,%,)$D1)0I1$PR4$-U"!9J%'99` MQH4%7<*JFM:!MH&2&:+_L5?O4)`XV&^AH,#2S,DDR86HA3?>S[JWE,S:]4KM M;);1FBEI+4T4D6W,5<QKYUNR1B0I:39EH03"I*4%I5^BZ4[IVB-)44FDVT:, MRDU)I$I-4*:4MOI=,DEI,D8E&9B0I1*B,8RD9)9MBRV469;62M:52;2UIMHB MJ+/3;LJ9++1*RU&UL;:LR:IK6;,R-EC8K%I8)&C8K)8J5-NZV-T$/FE5=5DE MLI;*DR693&BF2+8VH#))2TRVT4U*LUE*6E*3:R22EB)4VLFHJ9;(34:F6R8( MS&+2R#9DF6BLTPJ*BMBM#26;5$)$D22P<?ID%W*@5:"EPREWSUJ2*NFMTN7G MB%M%*:]-NLV31)5$WJZW+';+:YL&(V#21U;M5=F$]`PP$(9(PVJFF4(V, M"=-=*FQ4]6IHDP:3A"6R6VHK32LV5LVWOO(2`!%MMK0)9QX^2*I%^"IGX5]^ MB?-HB>R*+W$BA*!WF@3&&EB6A'B')*1(@/MPP$F2D#4J)_*D)D!/OV$W"P@_ MY&H1/U_U'U&D0X9'YK]ZGN%GPO/+71OY[CG5WCE4VZP2R3ZZC)48(HB2'V-= M:-DUF(:0LIC$3ACBF2&0)F(;(/G)SVLGN]0[-@?+!R==U+,Q5#F92F-ADU<@ MV2T;6[.NV[)&ZOV-,EVGV$"O<GOWH379?@B?M^-38H<D$)_&D1$G#@@B'$P! M*?^+5OC6ZHO/L2RG].HMD(+)I"&@8CV+E5*8DEZQS_41CX+W?C>B*>R/3ZP> M$YV?C1K>$_9F;S,+Z90Q6U@&#)#:$1HW!70D5Z-4%^Y[HY$1YQI*Z9AKA0;S MW'QU+&G$N$45D0!"S6EE22*`0ZEPZ[M8QTY*0I-*[[[WB`_=_#^/WW\C_LYD MTE$\0LISFP"REB(E*`55I;;'9VSP`9[Q:LB)8B+2=?:5\[M`=LJ4`'2:]]S] M&LDAM"G=`'*3C,?#[3UAKRMW:O%1"<KZKJZ&Y+&MC5I;9:D+;[B4A]UPH?%_ MEIA)&0-Z4W^VE`$Q2L9[AE#(EK$212+J_>YS@)Y4.DF@P\W:E9TQ!KU@OC44 M($(:]^GZ&'XL%\_L&Y2R$))>I%^=?=989.HP;&2DVR/E!;$/IZRT?<)5[.:, M"A)@9>-L1F4OW$'F$1^#1X!44NLJ#^OVI/[TC\V6Y'N9]^[^?NVZ]`$?M'3T MFRK0LL%8,!PX\4C6);9#D]N#W,/.L'-*H1!@R"[R;R-*#K"'!G6C7>P@V(0F M@)1W_C+1Q2A6,"FNJJJWL2&-#6#-P7)870*O"_;]XVW>>0\*TK!"!$G<:[PU M<X^4'A#EU/`+QOLL8,Z$E1Q@FI'=E@]@&-`V4@F`O';D\!79F%LEP0B(L+`$ M12"#`Q9,/GLI7G.PMZ.:=2K:WM+1D\`=&1B0ZL!)1$^1QB&A&*8R.B7,@:)Y M)%<UB1QK?!?6FZ:X!M=NYKSD(PY8;'L='CNGV,MJ,'7CLR<T)F`TD0T4DJ5Y MU0CSG,X&%;LS2K4Q(T&E!;$!4,#@!LK0&C`,L!BM44>)8Q,UEG%#2'@+3I[( M2`G,F#"CP.CU>GHO!2H6NURN,%93N.C7=(8>:`LY`TO`;%K5&I0T46%I(.&S M18W3INC@W67D[L`*6#I(H8BO!X)X."@Q9*@$9!A$TA)^755"XL5"T&!@$$$$ MK@I'(:.C-D;6%4LLF&,D"7<7$U$U!;J28(R0K$K$F#1K#2HN=K2TFQ9UVHJ2 M-:]*X32;2C75W2V++-8K>=:4S.UKMT,M+2JZ1-N[L""(00'8A<1*-*62^N@8 M@X+,'(0CQAU-&R5U.0;B`D`Q8F$X03#`B1A)O#+0`8<XPSB;QOAAP2D:J;L- M)`5QMD5AC@&FG3.KWAK12'8,$[$*=4)3G1S@F+6B0[I.!X#(H.CR:4YZ3P)I MH6A#;!DB2R"4$2,FLT+6DJC%YO7KK5]/BDT^=KNNWK[*I)-2H)=7-F!I3F@! M:B)!&".&&.QDI.<E`Z$X'22YBG3P!#IS(VG0<2;6P*8YN26&3<!HIVXTYK7& M;7CC)BLKR<Y-V3L[#)T5>L9.:=1OLU-6K&YF&ML0X%A:%5Q4R5,P<0F#=$+% MA>I*IA/(1,%PP.='5Z84!SLX8Y8@P6&32D)$FZHN[;(PM@P8A<.*34DH4&XH MV*32%L`R:9`930%DB"])V+#O69&^,>!8H(5,"7"08YC'C`.86@W`E(%#I"'( M0M2['%0=;(!G&/_/))#H?DA$1P*PXZ@T6$HFPW<IXJ]N3K6=I0)M;X/))2B- MYEGHC@,:,ABYT%#D]=WEM4E:;+PR""!5P$$U3?!>Y%J!E2"A#7&FE1PVU-NM M&]U>CP6;-A8%`T"P:095(#(8'+XV6$%1K)G`8,484"**NM\C;GE>&S9)RL+' M"N-!G/-*4*P8%L8W2WAX\'9UTJ\+=V3GI"NX<I=ZZ&VGJFDFL#;Y;YIWPB(T MDE"+X;==6LTZS'@,8Y'!125+++*J0!PWEH0HC`C9M-&IK20*K0E-JDXFUO,< MMX/"\\L+2YEZYXJ[TG&XFZDX8/AR^_ZI*M7EG#4H#EF)!8E0#86BALAX.R"X M0S1M,1H8IL\5!=MLI)K*4'G1I4S$X%D'EAYIYL"U6P#C%$$8*3HQO'LO`\)K MG6>Q)X\ZLDIK;C"U@Z0E\IU%7?W!H,;9KG)L'KK4**S+J#4=QHG%YDUC,RUD M2OF%9APCGJ%FMQ:Y-E66PTJMK;#0770PL-J][RL#SH6#.#1,I!9Y&EIT!7&& M8/8^Z#9+W69B\3&&=)>MAP&%!1$4AIMC:.%TNUQP8NY2R0XZ/!R;#*/'1N0Z MI95),:&U84VE74&&P(N%QSQ-S>SSTRN"38>09T[\.KU9Q\9[XR0"A,+&T;;I MN:(L:-DC6-;$>4N121!0<DN0&\P`JLZ8'@R%;$FT"]**#;6F6RY"*&I`L8%N MGOYP#00Q`#2`MT5RB(YESDP-R+D@80U3HD<B)#GJ9$$:J[R0S,,4=U$-K"2E M@CE6*E%4;8EL2,+,LG$ITNS66F[#"J60XI:JI.Q@TT8T@M@1I@PR^EI/889R M3A>`1A@^&#<V!J/9-C)@V'\6LJXU*S!YAN&FJG6TUUQG7B)&QK>!P%([OP-7 MD+%T`M@,T<(<^6&9YZ'6J+!#,+%',*O,9Z`O(Q);%ZLHJ4`=%"2Z\^6V<P[W MDI\PIF.I<=%-P>P09WND@]"F;!`=0=`IY:R$:LQ2$>:J\!H:D58JP)N!H7L! M()AHQ1YSDT"A0JN$&Y34:)5U(G`Z\(HB$#9TX[YBB+ZP$;0(H%D@8-(+ST6V MTAY`(AH#IP+NW&VM(X*5=U6Q`'DG%6-\:W.:YLUU'O4*:-P'!*=YM*=R1)VF M'F.$AU<21R-!!ED5DVSH:T'!H@$;Z.82Z;IYW04+H837)LT*JV4%,RK,L-*( M.##(+62`:'+N8,+)=!A9U12T&M95:$ZQ)248,%R/EH@Z9>J2VU;,:;6948@X M.%"):NF^[.%`,&&-,9VX=F!!ZI59W#:7(Z5.FVC8\&*BKC6,\-E%E$((;B,F M7A-LG$#,H(8TF4Z3+,A&U2&N6E?3Y\Z+NY1UY<FP0=L&S9YZM[X0^$[PA;B7 M+H?`(Y`30A,#-^=>=`MN(.UYD8J�T--'(40@EN%DJO&]#LLJ#<.P-(,(BD MCE"<!Q).HT2813)9(B'1-1#)$.LVDY:55<-3EF\1-A.6QF1'@N]#U%-HIX:` MQV/*,R!G<#N3#98-.J+%IAIVF1VUCESU:351X'N4,.G8[#&M0'(+`G="T\(] M'5K4D\N[RU.AX#:I2CE-K9)4>(4C.ZU5*P.6DL,,CNN9&0IT.'>]K6&G`-0Z M8&+0A(&Q`T3T2EY/$VAPL!RK'?VQV"QU+N#D<75HGIQB&R::"((=&6:%>VRT MMOGXR2OO]?H*`0@`;[T=.2*)RYQ)>$,DQ9._?(Y3U'$\0-J^'4B1*)25P84. M>-GEWCSWFQO>MKZ5%OMA+/(K?G>A(KL+D*&QM`^81*-2DVJ"HM)+P=06SGC2 M=`@[I`[>7`Z89(9Z"+WR@46K4$\>W>1GC`Y^=C(AR3NG*21XH$KK<!T^^D?! MCZ*$A8`$(](&ZU@AQ6!Y1>/-1<[47:]0"R?+]`?H8Y(2$/3(IX"5*$)$,@*_ MQ(2/Q!)W8^F#V87HM9)JCU3C<QR\`P"Q(PDMZM#X^6=.@HKAF('KZG4EXA<) M:,-1'WZD`FI5D*DFYME12K%C&PRMJ-QLUKFM]FZ2@(T."(8$Q+!(BXAM=H(: M303%+4L6(3FTT(2P*2P$DQ@>4DA\),\G::B0IR>*(<$DL21!!F*8D?;R`/2? MI^3Y*>WW(;/Q=G\S";$@^6V2(%,I#:Q&@6J%,2I@C,F$LC[>6&U6M4RR#=MD M&76WTMJ]2J\OLKDI1JDL9%(6YP6EI>,P3@<QH#C,3),6UY?YBM;S5^TU^-GH M%F$%F(O":F,#/U6#Z%/E!?>'QZ!`O;_4I2_89M0]YPAKWW`;8,`.1B54&DB6 MD89!:!9(@CEA)R1$P#!H@3)7'F/C#DR9OCWT-Y7*9`XW@FJM"VTA:21QN:XW M$D!97=$M0D,4Y)`,@JR$0#RX6V@=="8"O")2($*T#,031,UF6VS99MJR52%% M4:2J-4RM31FMJ9JK(`@625%@%B$:E"`B`:)(U$Y;2O&>-\_N_5Z((CI(>%CZ M$.DZ_M3B0/.Z.U6.,9V*UD?NUBYJ,B#?/TGJ>^;"]8_:>GF7\$#9&C#W]U5F MO[Z:W[S6,9E?@[FAG+IF=;A<4XR-\FJ5NQ6)@%RQ!!4T/[!8*E.1I)Z^1XI" MR3S/7/\GK29=%RLS!6CZD-$I0Z!3(4?H[D#R0_'Q\1-$D"V0[,DG\U1V7<L, M(0[V0\OHR!N-)^KP?%)9`>H`^/+I:J*7!T,%4D)821[!]^/7Y\HS4WU0)E[W M(LET91Q,1$2$A7`>Y/,^!X^R[LW#J<0U;,,&JFHA0C<B8:K00HE45319A9,* MBO9N31"JB36]`KFAC0HZ`G0S&Q7%%3:(=%TB=QZ4V=.3%3,?(?2='F;#!'0H M/<?B'>!IZ>*#Z]_H]941$3$14T17D)^0P*0RD,*&P](6/C"O6!+P+8'BGFWK MWITU0U2<Z^NP]"^?HZ:!!WP['$&SH<',1(,L1$3!$-%6VL5J+:ILMM%;21K2 M5*RMBML;45:+%%1293:UH2$DT&M$4H$@2!!2J,L(E!*$I$`TT4,0H"RI*H)L M$'$G'$,SI<:?P\'?<*>2>RD0W#VRVI(/];B&*22S"^($S+E*P2N$0B#2UTM& MVDKE1B)K,!DD621)DF%;`P30:,,!3)_,`=3O)Q[!K13"J'.37SU;'SKZXLC, M9Q`F\(8_<N<8R+5_4Q=5DT2DZ)#PB%21'\:18"DH&Y(B4\80]3`&Y);1=62: MC6UC5%45LIK*%M4B%&LII4UJRFKYK">@Q`A8%0>C]WZ?)T2QGEA0&,"19`DI M5D(-4EJ4/+P,Q@-KNA;8@[&VU>"$6HM0?5*)+F$)]BX%.0>%@,AKD'I@JZ#Y M%X!!V*(?!1$3GETD"`J2>1@^`$)U?BEB)"IBEJ224TJ@?/**+XDB@GVR@="5 M&AH.FQP0.+;UP1RR`M2*H;<765<-?>HFY))/8^E/K)^]PE.,XM++'YW^2DW+ MRWJ0"<H`W#DG$J$CK+^^AQ*P^YT7)VR=J$A!1*$I`!M2!2DB$Q/\,/_"$T22 M&Y4P_;UT*O_F(_.04809(J_V]F]+`I:<(!F2ELHR%8*0_/?2^V"J/4?GW[SZ MOH^P/L%A9"1P?'_?W=3:/[]:J626DJO\*/X$R"(D(G[$3ZOL%_%E^\107[14 M4Z;=Z).]#N'_B3[X1#M$1#_?_2P1Y*C=5F22?I363!BB-I94D1&%$:4BI98% M^TU\1DUMDFRJS9HHC4S--JVO?$6ZU;R,III#2FR)8"3*>]LK+6]MXI8(PD++ M(0C@HD$C)0(EDMA4B6TL8!8*(W!#_QT)8*4J(I52AH&4E0/T$[^S$$T[;;V8 MC/W2/8?:+Z%J$6?L./2J+W0J$R`L2*L@D`!T5>G0`_U0AH6,DI;,%$P"#R.( M;VB.CDV^`'^B$[WTDH/E`OB&)35(FM1,T][3_D4"^I))&W"DR(9GYOJ^S?H> M$3+[S`@_3^6G/[+BT\21F/=L"DVO8I;#CNN!EC=]3AP_&VV4@(B(6?&>MIE3 MU&QX8B@HHJ?3_:;TGF?>'VD@H&<NH89&.C14(4H#/LE!45"\S*I*"]0P@1)` M'L12(HH=1F)*2Z/1SFWJG`[G4L:(C'"5@H=.6<M:HC#9[%!?$/I,^,]Z8A^\ M.")/NATCFD^8<[]_"/NZ8[,(B#^6_`/C,DX?RB2T254EH*5)8@/PC,[)V>PI M213!10JP!@("IM4/]34RS54\GA.PJ\.I]T(]I2/Y/;CHX.LSH'T]1FF)0#8: M0^!X_L41#]/X#_L7J\#U,E,E"LBEN*4PQA#,E@8Q2S)"219)2I`A)*PDA<!B MAK[T$,5/]@;H0F03.$A)?^E564,7]#S%001!4"1$(PCZT%/2*H_I)/X2P?J] M1]7L0QEV$CB'Z=Z-Q04N]ZU\V]#0O_:3\D5V*K?*%#WOWG;DV#T(;Z\`Z0-% M*%()25DZ+<N3L_=B>1KC2(^1!:S&;,/G<Q2*8I`6KNS6YJN5BW-K0Q2I-,6_ M:HQ?J7%)@0P5WCE\^:V;$H/M#[P[I'V?U?Y?ZE-?ZQV^M?OD%D9F9KKJH1`_ MOM`^T`.J7R!`/C?IJ0MI]`93,MLS:71:#060$,A1*:74V;`=C0&6(8AI=&@P MT!&B)N3NO\D/X.8G8^F)J\U^&SI-!\*"(G9]2GY>/\@'SK`).>A[S2H!Z4], M+V-G\CM43A!-_^?@#HJ*\>H]?M#HD@(7JQ4B$&9*"&"8PD,1D$2A`7'(]+$0 M5"3$%$C)3!*ECE7Q^L+-6C/XXYE,`P9$076QD4@+RP*(FVQ%+2JP9)RO9D89 MTP6$(,&1')+*6B)DI3XD]BE,*R&$)DBF85@8I8"Q"E`V+1"C!9*Y)DF-<AF5 M`6!6+D-#:0T,"`C!0&6L8&8IM>;934&-J+W:W>=0WIMBYLFKRW*-G=N&MU-O M-KR,R!DPFU@%=\W)I`Y.@DTT!H'S;3:4%:2OD$\P/,-D`R2JEY#ZG#\ZFS]0 M/J70#*`AZUCC@;_3LW`D*1-;X!@R.Z%=^LMCP/&!2`;$VY`R2JXR*3&$!D(A M\_JQ9&TSMY_\/!._TX8\I(/[Z#Y0B)8L)(_V"SH_LGV+3_,S(;7^IQW%[DR\ MA"-B1+S#(.1L!_K=FV8TM`3%4#2T&'QX"854D13%ZK<,ACU<4^BG'Z]\S*S@ M_I/=OBYVZ-G[/?KK^DLD"\),EB$J*&=B@27(.0)MH/M`D'MZMPK!S/8<U*PC M#LZ>?!BQ2RRK7EB895ID7N>GT0ZS[IR)'-TO^%4/$D;&3:5*L3_8&!B4$3J# M00#Z78OUNE?=:A&)?6A_O0[P_S!L?!YM4NLC!3<!N4(,,6)=ZP71FU#G,03N M9`4R"@H)"12`@5?!@F%2&`'<*A&Y2)J%W.^/$Z-M*L26HJHJE6(=)4API%4A MQ$WD@U(\[P9D%V0B!>.`G<*H]C_(@/$S2""RPY&K`M7"X!`4]\@0:(@B6DI2 M\LQ`UG@(1HE8PDT:4=`F@276`\P+U$=<>/\_`O:(5ZCU$Z'V<*[7\A)*A),_ M/),4T=A]0N*),B@=!/D2#U)_YTQ0D^83.DO=.$$-T!%1]#.M_)XNXCXO@_)D M..DDXD%.!R;D-0\8=YDCEPP:[;TH<DC!+\4)HZT3`\8J=P=4[1W1H<VTFF1" MC33%!V]K!&UEV$'R\<1G/+?7GI3%(Y:QJJMF*,DJ6+AAO3$DM2;H96F-S23$ MI,*"E0A@FU0[3JRD0;'?!A#&EF7I<&0(8[&PDE87)=?3<1`\6L@<()+C"JFN M`TVE.+C:XB&\F2"(BB@L1`S\9B!7@AXD+?7MP7VC'<.$[#!)]WBJOG`:K0'1 MGR:AZJ[V=90KKO$,UW6?T<9S0WJ=-SM!1(ZD,G+S\W=:0\N4CI)(HU$9*=U= M?!#GF(,U-SB.VQCOF,V3D=HL@].%Z:.$[E.#'!0QA^7,X#L+&G%.\'#H_(>? M/Z-*:U7>?[6%"A50:4`H$&A56(05'_"#UW>?0`LH@T8&PLH"?K":0Q6+!P_S M@OO3$C]BZ*P<?5U-)!,-$!99CEA+[](&HB70CD@JH=#R7T%Q9\!]8RH/S/\) M@)WPTJ+1H,</SCBL5^,F-,<8.3NK$E5:$*$5I1I4&)HI-JOK*MBK)216-&E* MF;;5PU234LLI:2DVIIF*DHBS--FEDVS-OKNVE%D,242D6:%DV3;$DD%$I-8@ MV)1(*(B#6DB620C(J126&S"Q&2H+&T&*QF*8Q*HU)"PDRDJ&T4DTDLB2"F@A M2KRP4#"A2(:0XDJZ:BM5]?7=+G2E2B*2#,SKK74R:WLMO/+Y=VF&H37Q=EBV M2WKM;N^=O-*A;1K<VN)5=-=-25KW=M)K2528VHV]E6[4BK%E35-I>B5N%BHJ M35[*ZVE))-E)6-6[*JYE-*D35!_$42/]A*.M9"63P]/%]T_X)XK\W1$.\?,< M\O`V>3(FT/]N.%)#+*B&&8LJBVOW?EW\U57S>;&KE6BS8V^G+EG3J[NYHUQ, M$]28$4JT,S222$TG$T8)0&1DJE!"<0ZP<XE]1(AL&^-C<KXKIJ/,:W-;LM:Y ML&MOK%!JDI]LC?'-\"HLS%=B`9(I_60ZA`92$%DS66"=,82L`H=L#TP0G-Q# M$Y:W35O$TE32[;W6N:+S8L.FREB*#2$(<!G5B7O/Y=*;":2434MI+1%JDVTR MJONM<MHM<9;;BR+<YBK0DD26BNS)5*2)JM84R-`$A"=972(4:,9Z8G<+-YT` M[>),G;`@C,F>F]4R29Z1I7<`[C:H\<9A3<F:M$X6SG;D5>I3INSNVYKIG2)_ M3[FJB.$@NSTWN3G!?'KGH^OA>53<!SF(!0HT@]]1$8]O\V:-2H4'?:JYL"4Y MD`,E2@)_SG/U\<<8D9&$8<1^O2'8D!H:!(_GLR/9!^YDW';C%R=&X)!__B[D (BG"A((@>!(8` ` end >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From martin@loewis.home.cs.tu-berlin.de Mon Mar 06 01:26:00 2000 From: "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> To: gcc-gnats@sourceware.cygnus.com Subject: c/85: Re: casting const aways shouldn't be an error even with -pedantic-errors Date: Mon, 06 Mar 2000 01:26:00 -0000 Message-id: <200003060918.KAA01047@loewis.home.cs.tu-berlin.de> References: <4.2.0.58.19991125150800.00b1ac70@mail1> <4.2.2.20000306082844.00a8b540@mail1> X-SW-Source: 2000-q1/msg00081.html Content-length: 1193 >Number: 85 >Category: c >Synopsis: casting const aways shouldn't be an error even with -pedantic-errors >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Mar 06 01:26:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: scott douglass <sdouglass@arm.com> >Release: 2.95.2 >Organization: >Environment: >Description: Original-Message-Id: <4.2.2.20000306082844.00a8b540@mail1> Date: Mon, 06 Mar 2000 08:33:03 +0000 My apologies: when I wrote '-Wconst-qual' I should have written '-Wcast-qual'. Please let me try again: int *f(const int *p) { return (int*)p; } /* (errror) cast discards `const' from pointer target type */ The proper command line is: gcc -c -Wcast-qual -pedantic-errors bug.c I believe that the error should only be a warning even with '-pedantic-errors'. gcc -v produces: Reading specs from /eda/tools/gnu/tools/gcc-2.95.2/sunos5.7/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs gcc version 2.95.2 19991024 (release) Thanks. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >From nathan@gcc.gnu.org Mon Mar 06 02:06:00 2000 From: nathan@gcc.gnu.org To: nathan@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: c++/17 Date: Mon, 06 Mar 2000 02:06:00 -0000 Message-id: <20000306100600.20511.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00082.html Content-length: 503 The following reply was made to PR c++/17; it has been noted by GNATS. From: nathan@gcc.gnu.org To: gcc-gnats@gcc.gnu.org, nathan@codesourcery.com, nathan@gcc.gnu.org Cc: Subject: Re: c++/17 Date: 6 Mar 2000 09:57:47 -0000 Synopsis: __PRETTY_FUNCTION__ et al have wrong type State-Changed-From-To: open->analyzed State-Changed-By: nathan State-Changed-When: Mon Mar 6 01:57:47 2000 State-Changed-Why: patch produced http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=17&database=gcc >From David.Billinghurst@riotinto.com.au Mon Mar 06 20:56:00 2000 From: David.Billinghurst@riotinto.com.au To: gcc-gnats@gcc.gnu.org Subject: fortran/86: Wrong number of loop iterations Date: Mon, 06 Mar 2000 20:56:00 -0000 Message-id: <20000307045407.23327.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00083.html Content-length: 1778 >Number: 86 >Category: fortran >Synopsis: Wrong number of loop iterations >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Mar 06 20:56:00 PST 2000 >Closed-Date: >Last-Modified: >Originator: David Billinghurst >Release: g77 version 2.96 20000221 (experimental) >Organization: >Environment: Irix 6.5.3m >Description: This program gives the wrong answer. The number of loop iterations is wrong. Fails with -O0, -O1, -O2 and -O3 Is OK with g77 2.95.2 and Irix cc 7.2.1 (see http://gcc.gnu.org/ml/gcc-bugs/2000-02/msg00727.html ) Toon Moene (toon@moene.indiv.nluug.nl) reports "Fails identically on i686-pc-linux-gnu" >How-To-Repeat: g77 -O -o labug5 labug.f ./labug5 >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/plain; name="labug5.f" Content-Disposition: inline; filename="labug5.f" program labug5 * This program gives the wrong answer on mips-sgi-irix6.5 * when compiled with g77 from egcs-20000221. The number of * loop iterations is wrong. * * Works with * - g77 from gcc-2.95.2 * - Irix MipsPro Fortran 77 7.2.1 * * Originally derived from LAPACK 3.0 test suite failure. * * David Billinghurst, (David.Billinghurst@riotinto.com.au) * 23 February 2000 * INTEGER N, I, SLASQX N = 20 I = SLASQX( N ) IF ( I .NE. 2*N ) THEN WRITE(6,*) 'I = ', I, ' but should be ', 2*N CALL ABORT() END IF END INTEGER FUNCTION SLASQX( N ) INTEGER N, I0, I, K I0 = 1 DO I = 4*I0, 2*( I0+N-1 ), 4 K = I END DO SLASQX = K RETURN END
next reply other threads:[~2000-02-10 13:46 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2000-02-10 13:46 jsm [this message] 2002-11-21 6:52 neil 2002-11-21 13:26 billingd 2002-11-21 13:46 Daniel Berlin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20000210213849.8395.qmail@sourceware.cygnus.com \ --to=jsm@cygnus.com \ --cc=gcc-gnats@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).