From owner-freebsd-current@FreeBSD.ORG Sat Nov 17 16:15:25 2007 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 46E5716A417 for ; Sat, 17 Nov 2007 16:15:25 +0000 (UTC) (envelope-from arno@heho.snv.jussieu.fr) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by mx1.freebsd.org (Postfix) with ESMTP id 6F68413C469 for ; Sat, 17 Nov 2007 16:15:22 +0000 (UTC) (envelope-from arno@heho.snv.jussieu.fr) Received: from heho.snv.jussieu.fr (heho.snv.jussieu.fr [134.157.184.22]) by shiva.jussieu.fr (8.13.8/jtpda-5.4) with ESMTP id lAHGFEkQ024390 ; Sat, 17 Nov 2007 17:15:14 +0100 (CET) X-Ids: 166 Received: from heho.snv.jussieu.fr (localhost [127.0.0.1]) by heho.snv.jussieu.fr (8.13.3/jtpda-5.2) with ESMTP id lAHGFCaq001591 ; Sat, 17 Nov 2007 17:15:12 +0100 (MET) Received: (from arno@localhost) by heho.snv.jussieu.fr (8.13.3/8.13.1/Submit) id lAHGFC2r001588; Sat, 17 Nov 2007 17:15:12 +0100 (MET) (envelope-from arno) To: java@freebsd.org From: "Arno J. Klaassen" Date: 17 Nov 2007 17:15:12 +0100 Message-ID: Lines: 64 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-3.0 (shiva.jussieu.fr [134.157.0.166]); Sat, 17 Nov 2007 17:15:14 +0100 (CET) X-Virus-Scanned: ClamAV 0.88.7/4824/Sat Nov 17 15:14:09 2007 on shiva.jussieu.fr X-Virus-Status: Clean X-Miltered: at shiva.jussieu.fr with ID 473F1392.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! Cc: current@freebsd.org Subject: mutex-bug in recent releng_[67]? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Nov 2007 16:15:25 -0000 --=-=-= Hello, I have serious problems with " Runtime.getRuntime ().exec ()" : either it hangs or gives a spinning mutex running at 99% cpu. Attached is a simple code-example which shows the problem : it basically just launces in iterations a process doing "/bin/ls -lRr /var/" (the command seems to be important : e.g. ps(1) works fine, ls(1), tar(1), cpio(1) (all doing fileio ...) fail more or less easiliy) and then waits for it to exit. This works OK with linux-sun-jdk15, it fails (most often just hang, something process ends with exit code 127) on all boxes I could test on : i686-releng_6-UP / jdk-1.5.0.13p7,1 i686-releng_7-UP / jdk-1.5.0.12p6_2,1 amd64-releng_6-SMP / jdk-1.5.0.12p6_2,1 and jdk-1.5.0.13p7,1 amd64-releng_7-SMP / jdk-1.5.0.13p7,1 I somehow doubt this is really (only) a jdk-problem : it fails (hangs) as well if I compile it with gcj to an executable (tested both on i686-releng_6-UP and amd64-releng_7-SMP). Attached a gdb-log (for releng_7) with shows three threads, two of them blocking in _umtx_op () (from pthread_cond_init () ), the third in sigsuspend () (from pthread_getprio () ?). If I create a core-dump with "gcore -s" all sixteen threads block in (log attached for the two first threads ) : #0 0x00000008008cabfc in wait4 () from /lib/libc.so.7 #1 0x000000080075616e in waitpid () from /lib/libthr.so.3 #2 0x0000000801e43030 in Java_java_lang_UNIXProcess_waitForProcessExit ( env=0x82c1a2998, junk=0x7ffffeef1798, pid=906) I hope someone can help me for this, or should I write a PR? Thanx very much in adavance. Arno --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=Test_proc.java final class Test_proc { Test_proc() { for (int i= 0; i < 2; i++) { System.out.println("test <" + i + ">: retval is <" + fork_shell() + ">"); } } private long fork_shell() { long ret = -1; int exit_value = 0; final String[] cmd = new String[3]; final Process proc; cmd[0] = "/bin/sh"; cmd[1] = "-c"; cmd[2] = "/bin/ls -lRr /var/"; try { proc = Runtime.getRuntime ().exec (cmd); proc.waitFor (); if ( (exit_value = proc.exitValue ()) != 0) { System.err.println ("ERROR: proc exit value" + exit_value + "!"); } else ret=0; } catch (Exception ex) { ret = -2; ex.printStackTrace(System.err); } return ret; } public static void main (String[] args) throws Exception { new Test_proc (); } } --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=gdb.log Script started on Sat Nov 17 16:22:55 2007 ivo@push ~/.scito/tmp [49908] > LD_LIBRARY_PATH=/usr/opt/scito/gcc-4.2.2/lib gdb ./Test_proc.exe GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... (gdb) handle SIGSEGV SIGBUS nostop noprint Signal Stop Print Pass to program Description SIGBUS No No Yes Bus error SIGSEGV No No Yes Segmentation fault (gdb) r Starting program: /files/home/ivo/.scito/tmp/Test_proc.exe [New LWP 100094] [New Thread 0x803901120 (LWP 100094)] [New Thread 0x803901290 (LWP 100127)] [New Thread 0x803901400 (LWP 100132)] ^C Program received signal SIGINT, Interrupt. [Switching to Thread 0x803901400 (LWP 100132)] 0x00000008036e6c7c in sigsuspend () from /lib/libc.so.7 (gdb) info thr * 4 Thread 0x803901400 (LWP 100132) 0x00000008036e6c7c in sigsuspend () from /lib/libc.so.7 3 Thread 0x803901290 (LWP 100127) 0x00000008036e60fc in _umtx_op () from /lib/libc.so.7 2 Thread 0x803901120 (LWP 100094) 0x00000008036e60fc in _umtx_op () from /lib/libc.so.7 (gdb) thr 4 [Switching to thread 4 (Thread 0x803901400 (LWP 100132))]#0 0x00000008036e6c7c in sigsuspend () from /lib/libc.so.7 (gdb) where #0 0x00000008036e6c7c in sigsuspend () from /lib/libc.so.7 #1 0x0000000803371c6a in sigsuspend () from /lib/libthr.so.3 #2 0x0000000801ce8d16 in java::lang::ConcreteProcess$ProcessManager::waitForSignal (this=Variable "this" is not available. ) at java/lang/natConcreteProcess.cc:142 #3 0x000000080202025d in _ZN4java4lang30ConcreteProcess$ProcessManager3runEJvv (this=0x599e60) at ConcreteProcess.java:167 #4 0x0000000801cee6a8 in _Jv_ThreadRun (thread=0x599e60) at ../../../../gcc/libjava/java/lang/natThread.cc:302 #5 0x0000000801cf4b37 in really_start (x=0x5265a0) at ../../../../gcc/libjava/posix-threads.cc:445 #6 0x00000008024da163 in GC_start_routine (arg=Variable "arg" is not available. ) at ../../../../gcc/boehm-gc/pthread_support.c:1301 #7 0x000000080336fa76 in pthread_getprio () from /lib/libthr.so.3 #8 0x0000000000000000 in ?? () Error accessing memory address 0x7fffff9fe000: Bad address. (gdb) thr 3 [Switching to thread 3 (Thread 0x803901290 (LWP 100127))]#0 0x00000008036e60fc in _umtx_op () from /lib/libc.so.7 (gdb) where #0 0x00000008036e60fc in _umtx_op () from /lib/libc.so.7 #1 0x0000000803377049 in pthread_cleanup_push () from /lib/libthr.so.3 #2 0x0000000803375a55 in pthread_cond_init () from /lib/libthr.so.3 #3 0x0000000801cf4ff2 in _Jv_CondWait (cv=0x8031da088, mu=0x8031da070, millis=Variable "millis" is not available. ) at ../../../../gcc/libjava/posix-threads.cc:179 #4 0x0000000801cdfd45 in gnu::gcj::runtime::FinalizerThread::run (this=Variable "this" is not available. ) at ../../../../gcc/libjava/gnu/gcj/runtime/natFinalizerThread.cc:57 #5 0x0000000801cee6a8 in _Jv_ThreadRun (thread=0x561e00) at ../../../../gcc/libjava/java/lang/natThread.cc:302 #6 0x0000000801cf4b37 in really_start (x=0x526720) at ../../../../gcc/libjava/posix-threads.cc:445 #7 0x00000008024da163 in GC_start_routine (arg=Variable "arg" is not available. ) at ../../../../gcc/boehm-gc/pthread_support.c:1301 #8 0x000000080336fa76 in pthread_getprio () from /lib/libthr.so.3 #9 0x0000000000000000 in ?? () Error accessing memory address 0x7fffffbff000: Bad address. (gdb) thr 2 [Switching to thread 2 (Thread 0x803901120 (LWP 100094))]#0 0x00000008036e60fc in _umtx_op () from /lib/libc.so.7 (gdb) where #0 0x00000008036e60fc in _umtx_op () from /lib/libc.so.7 #1 0x0000000803377049 in pthread_cleanup_push () from /lib/libthr.so.3 #2 0x0000000803375a55 in pthread_cond_init () from /lib/libthr.so.3 #3 0x0000000801cf4ff2 in _Jv_CondWait (cv=0x578cb0, mu=0x578cb8, millis=Variable "millis" is not available. ) at ../../../../gcc/libjava/posix-threads.cc:179 #4 0x0000000801ceab37 in java::lang::Object::wait (this=0x1, timeout=0, nanos=0) at ../../../../gcc/libjava/java/lang/natObject.cc:1333 #5 0x00000008020206d8 in _ZN4java4lang15ConcreteProcess7waitForEJiv ( this=0x59af60) at ConcreteProcess.java:324 #6 0x0000000000401771 in _ZN9Test_proc10fork_shellEJxv (this=0x54ade0) at Test_proc.java:29 #7 0x0000000000401467 in Test_proc.Test_proc() (this=0x54ade0) at Test_proc.java:10 #8 0x0000000000401982 in _ZN9Test_proc4mainEJvP6JArrayIPN4java4lang6StringEE ( args=0x52af70) at Test_proc.java:49 #9 0x0000000801ce03c3 in gnu::java::lang::MainThread::call_main ( this=0x599f00) at ../../../../gcc/libjava/gnu/java/lang/natMainThread.cc:50 #10 0x0000000801cee6a8 in _Jv_ThreadRun (thread=0x599f00) at ../../../../gcc/libjava/java/lang/natThread.cc:302 #11 0x0000000801cb1259 in _Jv_RunMain (vm_args=Variable "vm_args" is not available. ) at ../../../../gcc/libjava/prims.cc:1574 #12 0x000000000040139a in main (argc=1, argv=0x7fffffffead8) at /var/tmp//ccGmt6ri.i:11 (gdb) quit The program is running. Exit anyway? (y or n) y --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=jdk-gcore.log Content-Transfer-Encoding: base64 U2NyaXB0IHN0YXJ0ZWQgb24gU2F0IE5vdiAxNyAxNzowMDo0NiAyMDA3Cml2b0BwdXNoIH4vLnNj aXRvL3RtcCBbNDk5MDldID4gZ2RiIC1jb3JlIGNvcmUuOTA1IC91c3IvbG9jYWwvamRrMS41LjAv YmluL2phdmFfZyBHTlUgZ2RiIDYuMS4xIFtGcmVlQlNEXQpDb3B5cmlnaHQgMjAwNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KR0RCIGlzIGZyZWUgc29mdHdhcmUsIGNvdmVyZWQgYnkg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhbmQgeW91IGFyZQp3ZWxjb21lIHRvIGNo YW5nZSBpdCBhbmQvb3IgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgaXQgdW5kZXIgY2VydGFpbiBjb25k aXRpb25zLgpUeXBlICJzaG93IGNvcHlpbmciIHRvIHNlZSB0aGUgY29uZGl0aW9ucy4KVGhlcmUg aXMgYWJzb2x1dGVseSBubyB3YXJyYW50eSBmb3IgR0RCLiAgVHlwZSAic2hvdyB3YXJyYW50eSIg Zm9yIGRldGFpbHMuClRoaXMgR0RCIHdhcyBjb25maWd1cmVkIGFzICJhbWQ2NC1tYXJjZWwtZnJl ZWJzZCIuLi4KQ29yZSB3YXMgZ2VuZXJhdGVkIGJ5IGBqYXZhX2cnLgpSZWFkaW5nIHN5bWJvbHMg ZnJvbSAvbGliL2xpYnouc28uNC4uLmRvbmUuCkxvYWRlZCBzeW1ib2xzIGZvciAvbGliL2xpYnou c28uNApSZWFkaW5nIHN5bWJvbHMgZnJvbSAvbGliL2xpYnRoci5zby4zLi4uZG9uZS4KTG9hZGVk IHN5bWJvbHMgZm9yIC9saWIvbGlidGhyLnNvLjMKUmVhZGluZyBzeW1ib2xzIGZyb20gL2xpYi9s aWJjLnNvLjcuLi5kb25lLgpMb2FkZWQgc3ltYm9scyBmb3IgL2xpYi9saWJjLnNvLjcKUmVhZGlu ZyBzeW1ib2xzIGZyb20gL3Vzci9sb2NhbC9qZGsxLjUuMC9qcmUvbGliL2FtZDY0L3NlcnZlci9s aWJqdm1fZy5zby4uLmRvbmUuCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL2xvY2FsL2pkazEuNS4w L2pyZS9saWIvYW1kNjQvc2VydmVyL2xpYmp2bV9nLnNvClJlYWRpbmcgc3ltYm9scyBmcm9tIC91 c3IvbGliL2xpYnN0ZGMrKy5zby42Li4uZG9uZS4KTG9hZGVkIHN5bWJvbHMgZm9yIC91c3IvbGli L2xpYnN0ZGMrKy5zby42ClJlYWRpbmcgc3ltYm9scyBmcm9tIC9saWIvbGlibS5zby41Li4uZG9u ZS4KTG9hZGVkIHN5bWJvbHMgZm9yIC9saWIvbGlibS5zby41ClJlYWRpbmcgc3ltYm9scyBmcm9t IC9saWIvbGliZ2NjX3Muc28uMS4uLmRvbmUuCkxvYWRlZCBzeW1ib2xzIGZvciAvbGliL2xpYmdj Y19zLnNvLjEKUmVhZGluZyBzeW1ib2xzIGZyb20gL3Vzci9sb2NhbC9qZGsxLjUuMC9qcmUvbGli L2FtZDY0L25hdGl2ZV90aHJlYWRzL2xpYmhwaV9nLnNvLi4uZG9uZS4KTG9hZGVkIHN5bWJvbHMg Zm9yIC91c3IvbG9jYWwvamRrMS41LjAvanJlL2xpYi9hbWQ2NC9uYXRpdmVfdGhyZWFkcy9saWJo cGlfZy5zbwpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xvY2FsL2pkazEuNS4wL2pyZS9saWIv YW1kNjQvbGlidmVyaWZ5X2cuc28uLi5kb25lLgpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9sb2Nh bC9qZGsxLjUuMC9qcmUvbGliL2FtZDY0L2xpYnZlcmlmeV9nLnNvClJlYWRpbmcgc3ltYm9scyBm cm9tIC91c3IvbG9jYWwvamRrMS41LjAvanJlL2xpYi9hbWQ2NC9saWJqYXZhX2cuc28uLi5kb25l LgpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9sb2NhbC9qZGsxLjUuMC9qcmUvbGliL2FtZDY0L2xp YmphdmFfZy5zbwpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL2xvY2FsL2pkazEuNS4wL2pyZS9s aWIvYW1kNjQvbGliemlwX2cuc28uLi5kb25lLgpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9sb2Nh bC9qZGsxLjUuMC9qcmUvbGliL2FtZDY0L2xpYnppcF9nLnNvClJlYWRpbmcgc3ltYm9scyBmcm9t IC9saWJleGVjL2xkLWVsZi5zby4xLi4uZG9uZS4KTG9hZGVkIHN5bWJvbHMgZm9yIC9saWJleGVj L2xkLWVsZi5zby4xCiMwICAweDAwMDAwMDA4MDA4Y2FiZmMgaW4gd2FpdDQgKCkgZnJvbSAvbGli L2xpYmMuc28uNwpbTmV3IFRocmVhZCAweDgwMGIwNGQ4MCAoTFdQIDEwMDE0NSldCltOZXcgVGhy ZWFkIDB4ODAwYjA0YzEwIChMV1AgMTAwMTQ0KV0KW05ldyBUaHJlYWQgMHg4MDBiMDRhYTAgKExX UCAxMDAxNDMpXQpbTmV3IFRocmVhZCAweDgwMGIwNDkzMCAoTFdQIDEwMDE0MildCltOZXcgVGhy ZWFkIDB4ODAwYjA0N2MwIChMV1AgMTAwMTQxKV0KW05ldyBUaHJlYWQgMHg4MDBiMDQ2NTAgKExX UCAxMDAxNDApXQpbTmV3IFRocmVhZCAweDgwMGIwNDRlMCAoTFdQIDEwMDEzOSldCltOZXcgVGhy ZWFkIDB4ODAwYjAzZjIwIChMV1AgMTAwMTM4KV0KW05ldyBUaHJlYWQgMHg4MDBiMDNkYjAgKExX UCAxMDAxMzcpXQpbTmV3IFRocmVhZCAweDgwMGIwMzNhMCAoTFdQIDEwMDEzNildCltOZXcgVGhy ZWFkIDB4ODAwYjAxODUwIChMV1AgMTAwMTM1KV0KW05ldyBUaHJlYWQgMHg4MDBiMDE2ZTAgKExX UCAxMDAxMzQpXQpbTmV3IFRocmVhZCAweDgwMGIwMTU3MCAoTFdQIDEwMDEyNyldCltOZXcgVGhy ZWFkIDB4ODAwYjAxNDAwIChMV1AgMTAwMDk0KV0KW05ldyBUaHJlYWQgMHg4MDBiMDExMjAgKExX UCAxMDAwNTQpXQpbTmV3IExXUCA5MDVdCihnZGIpIGluZm8gdGhyCiogMTYgTFdQIDkwNSAgMHgw MDAwMDAwODAwOGNhYmZjIGluIHdhaXQ0ICgpIGZyb20gL2xpYi9saWJjLnNvLjcKICAxNSBUaHJl YWQgMHg4MDBiMDExMjAgKExXUCAxMDAwNTQpICB3YXJuaW5nOiBDb3VsZG4ndCBmaW5kIGdlbmVy YWwtcHVycG9zZSByZWdpc3RlcnMgaW4gY29yZSBmaWxlLgoKMHgwMDAwMDAwODAwOGNhYmZjIGlu IHdhaXQ0ICgpCiAgIGZyb20gL2xpYi9saWJjLnNvLjcKICAxNCBUaHJlYWQgMHg4MDBiMDE0MDAg KExXUCAxMDAwOTQpICB3YXJuaW5nOiBDb3VsZG4ndCBmaW5kIGdlbmVyYWwtcHVycG9zZSByZWdp c3RlcnMgaW4gY29yZSBmaWxlLgoKMHgwMDAwMDAwODAwOGNhYmZjIGluIHdhaXQ0ICgpCiAgIGZy b20gL2xpYi9saWJjLnNvLjcKICAxMyBUaHJlYWQgMHg4MDBiMDE1NzAgKExXUCAxMDAxMjcpICB3 YXJuaW5nOiBDb3VsZG4ndCBmaW5kIGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgaW4gY29yZSBm aWxlLgoKMHgwMDAwMDAwODAwOGNhYmZjIGluIHdhaXQ0ICgpCiAgIGZyb20gL2xpYi9saWJjLnNv LjcKICAxMiBUaHJlYWQgMHg4MDBiMDE2ZTAgKExXUCAxMDAxMzQpICB3YXJuaW5nOiBDb3VsZG4n dCBmaW5kIGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgaW4gY29yZSBmaWxlLgoKMHgwMDAwMDAw ODAwOGNhYmZjIGluIHdhaXQ0ICgpCiAgIGZyb20gL2xpYi9saWJjLnNvLjcKICAxMSBUaHJlYWQg MHg4MDBiMDE4NTAgKExXUCAxMDAxMzUpICB3YXJuaW5nOiBDb3VsZG4ndCBmaW5kIGdlbmVyYWwt cHVycG9zZSByZWdpc3RlcnMgaW4gY29yZSBmaWxlLgoKMHgwMDAwMDAwODAwOGNhYmZjIGluIHdh aXQ0ICgpCiAgIGZyb20gL2xpYi9saWJjLnNvLjcKICAxMCBUaHJlYWQgMHg4MDBiMDMzYTAgKExX UCAxMDAxMzYpICB3YXJuaW5nOiBDb3VsZG4ndCBmaW5kIGdlbmVyYWwtcHVycG9zZSByZWdpc3Rl cnMgaW4gY29yZSBmaWxlLgoKMHgwMDAwMDAwODAwOGNhYmZjIGluIHdhaXQ0ICgpCiAgIGZyb20g L2xpYi9saWJjLnNvLjcKICA5IFRocmVhZCAweDgwMGIwM2RiMCAoTFdQIDEwMDEzNykgIHdhcm5p bmc6IENvdWxkbid0IGZpbmQgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycyBpbiBjb3JlIGZpbGUu CgoweDAwMDAwMDA4MDA4Y2FiZmMgaW4gd2FpdDQgKCkKICAgZnJvbSAvbGliL2xpYmMuc28uNwog IDggVGhyZWFkIDB4ODAwYjAzZjIwIChMV1AgMTAwMTM4KSAgd2FybmluZzogQ291bGRuJ3QgZmlu ZCBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGluIGNvcmUgZmlsZS4KCjB4MDAwMDAwMDgwMDhj YWJmYyBpbiB3YWl0NCAoKQogICBmcm9tIC9saWIvbGliYy5zby43CiAgNyBUaHJlYWQgMHg4MDBi MDQ0ZTAgKExXUCAxMDAxMzkpICB3YXJuaW5nOiBDb3VsZG4ndCBmaW5kIGdlbmVyYWwtcHVycG9z ZSByZWdpc3RlcnMgaW4gY29yZSBmaWxlLgoKMHgwMDAwMDAwODAwOGNhYmZjIGluIHdhaXQ0ICgp CiAgIGZyb20gL2xpYi9saWJjLnNvLjcKICA2IFRocmVhZCAweDgwMGIwNDY1MCAoTFdQIDEwMDE0 MCkgIHdhcm5pbmc6IENvdWxkbid0IGZpbmQgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycyBpbiBj b3JlIGZpbGUuCgoweDAwMDAwMDA4MDA4Y2FiZmMgaW4gd2FpdDQgKCkKICAgZnJvbSAvbGliL2xp YmMuc28uNwogIDUgVGhyZWFkIDB4ODAwYjA0N2MwIChMV1AgMTAwMTQxKSAgd2FybmluZzogQ291 bGRuJ3QgZmluZCBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGluIGNvcmUgZmlsZS4KCjB4MDAw MDAwMDgwMDhjYWJmYyBpbiB3YWl0NCAoKQogICBmcm9tIC9saWIvbGliYy5zby43CiAgNCBUaHJl YWQgMHg4MDBiMDQ5MzAgKExXUCAxMDAxNDIpICB3YXJuaW5nOiBDb3VsZG4ndCBmaW5kIGdlbmVy YWwtcHVycG9zZSByZWdpc3RlcnMgaW4gY29yZSBmaWxlLgoKMHgwMDAwMDAwODAwOGNhYmZjIGlu IHdhaXQ0ICgpCiAgIGZyb20gL2xpYi9saWJjLnNvLjcKICAzIFRocmVhZCAweDgwMGIwNGFhMCAo TFdQIDEwMDE0MykgIHdhcm5pbmc6IENvdWxkbid0IGZpbmQgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lz dGVycyBpbiBjb3JlIGZpbGUuCgoweDAwMDAwMDA4MDA4Y2FiZmMgaW4gd2FpdDQgKCkKICAgZnJv bSAvbGliL2xpYmMuc28uNwogIDIgVGhyZWFkIDB4ODAwYjA0YzEwIChMV1AgMTAwMTQ0KSAgd2Fy bmluZzogQ291bGRuJ3QgZmluZCBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGluIGNvcmUgZmls ZS4KCjB4MDAwMDAwMDgwMDhjYWJmYyBpbiB3YWl0NCAoKQogICBmcm9tIC9saWIvbGliYy5zby43 CiAgMSBUaHJlYWQgMHg4MDBiMDRkODAgKExXUCAxMDAxNDUpICB3YXJuaW5nOiBDb3VsZG4ndCBm aW5kIGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgaW4gY29yZSBmaWxlLgoKMHgwMDAwMDAwODAw OGNhYmZjIGluIHdhaXQ0ICgpCiAgIGZyb20gL2xpYi9saWJjLnNvLjcKKGdkYikgd2hlcmUIIAgI IAgIIAgIIAgIIAgHBwcHBwcHB3RociAxNgpbU3dpdGNoaW5nIHRvIHRocmVhZCAxNiAoTFdQIDkw NSldIzAgIDB4MDAwMDAwMDgwMDhjYWJmYyBpbiB3YWl0NCAoKQogICBmcm9tIC9saWIvbGliYy5z by43CihnZGIpIHdoZXJlCiMwICAweDAwMDAwMDA4MDA4Y2FiZmMgaW4gd2FpdDQgKCkgZnJvbSAv bGliL2xpYmMuc28uNwojMSAgMHgwMDAwMDAwODAwNzU2MTZlIGluIHdhaXRwaWQgKCkgZnJvbSAv bGliL2xpYnRoci5zby4zCiMyICAweDAwMDAwMDA4MDFlNDMwMzAgaW4gSmF2YV9qYXZhX2xhbmdf VU5JWFByb2Nlc3Nfd2FpdEZvclByb2Nlc3NFeGl0ICgKICAgIGVudj0weDgyYzFhMjk5OCwganVu az0weDdmZmZmZWVmMTc5OCwgcGlkPTkwNikKICAgIGF0IC4uLy4uLy4uL3NyYy9zb2xhcmlzL25h dGl2ZS9qYXZhL2xhbmcvVU5JWFByb2Nlc3NfbWQuYzozMDMKIzMgIDB4MDAwMDAwMDgwNGYxZGJl MCBpbiA/PyAoKQojNCAgMHgwMDAwMDAwODAxNjY5ZjUwIGluIHZ0YWJsZSBmb3IgVGhyZWFkSW5W TWZyb21KYXZhTm9Bc3luY0V4Y2VwdGlvbiAoKQogICBmcm9tIC91c3IvbG9jYWwvamRrMS41LjAv anJlL2xpYi9hbWQ2NC9zZXJ2ZXIvbGlianZtX2cuc28KIzUgIDB4MDAwMDAwMDgwNGYzMDhiZiBp biA/PyAoKQojNiAgMHgwMDAwN2ZmZmZlZWYxNjIwIGluID8/ICgpCiM3ICAweDAwMDA3ZmZmZmVl ZjE3MzggaW4gPz8gKCkKIzggIDB4MDAwMDAwMDgwODFlZmY0OCBpbiA/PyAoKQojOSAgMHgwMDAw N2ZmZmZlZWYxNzk4IGluID8/ICgpCiMxMCAweDAwMDAwMDA4MDgxZjFkYzAgaW4gPz8gKCkKIzEx IDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAoKQojMTIgMHgwMDAwMDAwODA4MWVmZjQ4IGluID8/ ICgpCiMxMyAweDAwMDA3ZmZmZmVlZjE3OTAgaW4gPz8gKCkKIzE0IDB4MDAwMDdmZmZmZWVmMTdk OCBpbiA/PyAoKQojMTUgMHgwMDAwMDAwODA0ZjA4ZTFhIGluID8/ICgpCiMxNiAweDAwMDAwMDAw MDAwMDAwMDAgaW4gPz8gKCkKIzE3IDB4MDAwMDAwMDgwNGYxNTRkNiBpbiA/PyAoKQojMTggMHgw MDAwMDAwMDAwMDAwMzhhIGluID8/ICgpCiMxOSAweDAwMDAwMDA4MjE3ZmI0MTAgaW4gPz8gKCkK IzIwIDB4MDAwMDdmZmZmZWVmMTdhMCBpbiA/PyAoKQojMjEgMHgwMDAwMDAwODA4MWYwZWIyIGlu ID8/ICgpCiMyMiAweDAwMDA3ZmZmZmVlZjE3ZjAgaW4gPz8gKCkKIzIzIDB4MDAwMDAwMDgwODFm MWRjMCBpbiA/PyAoKQojMjQgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCiMyNSAweDAwMDAw MDA4MDgxZjBlYzAgaW4gPz8gKCkKIzI2IDB4MDAwMDdmZmZmZWVmMTdlOCBpbiA/PyAoKQojMjcg MHgwMDAwN2ZmZmZlZWYxODMwIGluID8/ICgpCiMyOCAweDAwMDAwMDA4MDRmMDhlMWEgaW4gPz8g KCkKIzI5IDB4MDAwMDAwMDAwMDAwMDM4YSBpbiA/PyAoKQojMzAgMHgwMDAwMDAwODIxN2ZiNDEw IGluID8/ICgpCiMzMSAweDAwMDA3ZmZmZmVlZjE3ZjggaW4gPz8gKCkKIzMyIDB4MDAwMDAwMDgw ODFmNDE1NSBpbiA/PyAoKQojMzMgMHgwMDAwN2ZmZmZlZWYxODU4IGluID8/ICgpCiMzNCAweDAw MDAwMDA4MDgxZjQ2MDggaW4gPz8gKCkKIzM1IDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAoKQoj MzYgMHgwMDAwMDAwODA4MWY0MWIwIGluID8/ICgpCiMzNyAweDAwMDA3ZmZmZmVlZjE4NTggaW4g Pz8gKCkKIzM4IDB4MDAwMDdmZmZmZWVmMThjMCBpbiA/PyAoKQojMzkgMHgwMDAwMDAwODA0ZjA2 NGFlIGluID8/ICgpCiM0MCAweDAwMDAwMDAwMDAwMDAwMDAgaW4gPz8gKCkKIzQxIDB4MDAwMDAw MDAwMDAwMDAwMCBpbiA/PyAoKQojNDIgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCiM0MyAw eDAwMDAwMDA4MjE3ZmI1YzggaW4gPz8gKCkKIzQ0IDB4MDAwMDdmZmYwMDAwMWZhMCBpbiA/PyAo KQojNDUgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCiM0NiAweDAwMDAwMDAwMDAwMDAwMDEg aW4gPz8gKCkKIzQ3IDB4MDAwMDdmZmZmZWVmMWJjMCBpbiA/PyAoKQojNDggMHgwMDAwMDAwMDAw MDAwMDAxIGluID8/ICgpCiM0OSAweDAwMDAwMDA4MDRmMDYzYTggaW4gPz8gKCkKIzUwIDB4MDAw MDdmZmZmZWVmMTkxMCBpbiA/PyAoKQojNTEgMHgwMDAwN2ZmZmZlZWYxY2I4IGluID8/ICgpCiM1 MiAweDAwMDA3ZmZmMDAwMDAwMGEgaW4gPz8gKCkKIzUzIDB4MDAwMDAwMDgwODFmNDFiMCBpbiA/ PyAoKQojNTQgMHgwMDAwMDAwODA0ZjE4ZTYwIGluID8/ICgpCiM1NSAweDAwMDA3ZmZmZmVlZjFi YzAgaW4gPz8gKCkKIzU2IDB4MDAwMDdmZmZmZWVmMWEyMCBpbiA/PyAoKQojNTcgMHgwMDAwMDAw ODAxMGEyZGM0IGluIEphdmFDYWxsczo6Y2FsbF9oZWxwZXIgKHJlc3VsdD0weDNkOCwgbT0weGZm ZmZmZmY4LCAKICAgIGFyZ3M9MHhlLCBfX3RoZV90aHJlYWRfXz0weDgwMTJkMTQxMCkKICAgIGF0 IC9maWxlcy9ic2QvcG9ydHMvamF2YS9qZGsxNS93b3JrL2hvdHNwb3Qvc3JjL3NoYXJlL3ZtL3J1 bnRpbWUvamF2YUNhbGxzLmNwcDozNzMKUHJldmlvdXMgZnJhbWUgaW5uZXIgdG8gdGhpcyBmcmFt ZSAoY29ycnVwdCBzdGFjaz8pCihnZGIpIHdoZXJlCAgICAh0aHIgMTYIIAg1Cndhcm5pbmc6IENv dWxkbid0IGZpbmQgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycyBpbiBjb3JlIGZpbGUuCgpbU3dp dGNoaW5nIHRvIHRocmVhZCAxNSAoVGhyZWFkIDB4ODAwYjAxMTIwIChMV1AgMTAwMDU0KSldIzAg IDB4MDAwMDAwMDgwMDhjYWJmYyBpbiB3YWl0NCAoKSBmcm9tIC9saWIvbGliYy5zby43CihnZGIp IHRociAxNQgICAgICBtbMVB3aGVyZQojMCAgMHgwMDAwMDAwODAwOGNhYmZjIGluIHdhaXQ0ICgp IGZyb20gL2xpYi9saWJjLnNvLjcKIzEgIDB4MDAwMDAwMDgwMDc1NjE2ZSBpbiB3YWl0cGlkICgp IGZyb20gL2xpYi9saWJ0aHIuc28uMwojMiAgMHgwMDAwMDAwODAxZTQzMDMwIGluIEphdmFfamF2 YV9sYW5nX1VOSVhQcm9jZXNzX3dhaXRGb3JQcm9jZXNzRXhpdCAoCiAgICBlbnY9MHg4MmMxYTI5 OTgsIGp1bms9MHg3ZmZmZmVlZjE3OTgsIHBpZD05MDYpCiAgICBhdCAuLi8uLi8uLi9zcmMvc29s YXJpcy9uYXRpdmUvamF2YS9sYW5nL1VOSVhQcm9jZXNzX21kLmM6MzAzCiMzICAweDAwMDAwMDA4 MDRmMWRiZTAgaW4gPz8gKCkKIzQgIDB4MDAwMDAwMDgwMTY2OWY1MCBpbiB2dGFibGUgZm9yIFRo cmVhZEluVk1mcm9tSmF2YU5vQXN5bmNFeGNlcHRpb24gKCkKICAgZnJvbSAvdXNyL2xvY2FsL2pk azEuNS4wL2pyZS9saWIvYW1kNjQvc2VydmVyL2xpYmp2bV9nLnNvCiM1ICAweDAwMDAwMDA4MDRm MzA4YmYgaW4gPz8gKCkKIzYgIDB4MDAwMDdmZmZmZWVmMTYyMCBpbiA/PyAoKQojNyAgMHgwMDAw N2ZmZmZlZWYxNzM4IGluID8/ICgpCiM4ICAweDAwMDAwMDA4MDgxZWZmNDggaW4gPz8gKCkKIzkg IDB4MDAwMDdmZmZmZWVmMTc5OCBpbiA/PyAoKQojMTAgMHgwMDAwMDAwODA4MWYxZGMwIGluID8/ ICgpCiMxMSAweDAwMDAwMDAwMDAwMDAwMDAgaW4gPz8gKCkKIzEyIDB4MDAwMDAwMDgwODFlZmY0 OCBpbiA/PyAoKQojMTMgMHgwMDAwN2ZmZmZlZWYxNzkwIGluID8/ICgpCiMxNCAweDAwMDA3ZmZm ZmVlZjE3ZDggaW4gPz8gKCkKIzE1IDB4MDAwMDAwMDgwNGYwOGUxYSBpbiA/PyAoKQojMTYgMHgw MDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCiMxNyAweDAwMDAwMDA4MDRmMTU0ZDYgaW4gPz8gKCkK IzE4IDB4MDAwMDAwMDAwMDAwMDM4YSBpbiA/PyAoKQojMTkgMHgwMDAwMDAwODIxN2ZiNDEwIGlu ID8/ICgpCiMyMCAweDAwMDA3ZmZmZmVlZjE3YTAgaW4gPz8gKCkKIzIxIDB4MDAwMDAwMDgwODFm MGViMiBpbiA/PyAoKQojMjIgMHgwMDAwN2ZmZmZlZWYxN2YwIGluID8/ICgpCiMyMyAweDAwMDAw MDA4MDgxZjFkYzAgaW4gPz8gKCkKIzI0IDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAoKQojMjUg MHgwMDAwMDAwODA4MWYwZWMwIGluID8/ICgpCiMyNiAweDAwMDA3ZmZmZmVlZjE3ZTggaW4gPz8g KCkKIzI3IDB4MDAwMDdmZmZmZWVmMTgzMCBpbiA/PyAoKQojMjggMHgwMDAwMDAwODA0ZjA4ZTFh IGluID8/ICgpCiMyOSAweDAwMDAwMDAwMDAwMDAzOGEgaW4gPz8gKCkKIzMwIDB4MDAwMDAwMDgy MTdmYjQxMCBpbiA/PyAoKQojMzEgMHgwMDAwN2ZmZmZlZWYxN2Y4IGluID8/ICgpCiMzMiAweDAw MDAwMDA4MDgxZjQxNTUgaW4gPz8gKCkKIzMzIDB4MDAwMDdmZmZmZWVmMTg1OCBpbiA/PyAoKQoj MzQgMHgwMDAwMDAwODA4MWY0NjA4IGluID8/ICgpCiMzNSAweDAwMDAwMDAwMDAwMDAwMDAgaW4g Pz8gKCkKIzM2IDB4MDAwMDAwMDgwODFmNDFiMCBpbiA/PyAoKQojMzcgMHgwMDAwN2ZmZmZlZWYx ODU4IGluID8/ICgpCiMzOCAweDAwMDA3ZmZmZmVlZjE4YzAgaW4gPz8gKCkKIzM5IDB4MDAwMDAw MDgwNGYwNjRhZSBpbiA/PyAoKQojNDAgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCiM0MSAw eDAwMDAwMDAwMDAwMDAwMDAgaW4gPz8gKCkKIzQyIDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAo KQojNDMgMHgwMDAwMDAwODIxN2ZiNWM4IGluID8/ICgpCiM0NCAweDAwMDA3ZmZmMDAwMDFmYTAg aW4gPz8gKCkKIzQ1IDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAoKQojNDYgMHgwMDAwMDAwMDAw MDAwMDAxIGluID8/ICgpCiM0NyAweDAwMDA3ZmZmZmVlZjFiYzAgaW4gPz8gKCkKIzQ4IDB4MDAw MDAwMDAwMDAwMDAwMSBpbiA/PyAoKQojNDkgMHgwMDAwMDAwODA0ZjA2M2E4IGluID8/ICgpCiM1 MCAweDAwMDA3ZmZmZmVlZjE5MTAgaW4gPz8gKCkKIzUxIDB4MDAwMDdmZmZmZWVmMWNiOCBpbiA/ PyAoKQojNTIgMHgwMDAwN2ZmZjAwMDAwMDBhIGluID8/ICgpCiM1MyAweDAwMDAwMDA4MDgxZjQx YjAgaW4gPz8gKCkKIzU0IDB4MDAwMDAwMDgwNGYxOGU2MCBpbiA/PyAoKQojNTUgMHgwMDAwN2Zm ZmZlZWYxYmMwIGluID8/ICgpCiM1NiAweDAwMDA3ZmZmZmVlZjFhMjAgaW4gPz8gKCkKIzU3IDB4 MDAwMDAwMDgwMTBhMmRjNCBpbiBKYXZhQ2FsbHM6OmNhbGxfaGVscGVyIChyZXN1bHQ9MHgzZDgs IG09MHhmZmZmZmZmOCwgCiAgICBhcmdzPTB4ZSwgX190aGVfdGhyZWFkX189MHg4MDEyZDE0MTAp CiAgICBhdCAvZmlsZXMvYnNkL3BvcnRzL2phdmEvamRrMTUvd29yay9ob3RzcG90L3NyYy9zaGFy ZS92bS9ydW50aW1lL2phdmFDYWxscy5jcHA6MzczClByZXZpb3VzIGZyYW1lIGlubmVyIHRvIHRo aXMgZnJhbWUgKGNvcnJ1cHQgc3RhY2s/KQoKWyBpZGVtIGFsbCB0aHJlYWRzIF0K --=-=-= -- Arno J. Klaassen SCITO S.A. 8 rue des Haies F-75020 Paris, France http://scito.com --=-=-=--