]> matita.cs.unibo.it Git - helm.git/commitdiff
This commit was manufactured by cvs2svn to create branch 'helm'.
authorno author <no.author@nowhere.it>
Fri, 17 Nov 2000 09:57:35 +0000 (09:57 +0000)
committerno author <no.author@nowhere.it>
Fri, 17 Nov 2000 09:57:35 +0000 (09:57 +0000)
387 files changed:
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.i386.rpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.spec [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.src.rpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0.tar.gz [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/.cvsignore [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/CHANGES [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/COPYING [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile.nt [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/README [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/.cvsignore [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/Makefile [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/README [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/TODO [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/editor.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/file.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/lexical.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/list2.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/shell.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/text.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/widgets.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/.cvsignore [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/CHANGES [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/Makefile [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/README [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/aspectframe.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/button.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/checkbutton.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/clist.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/colorselection.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/combo.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/common.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/entry.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/eventbox.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/fixed.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/frame.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gToolbar2.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.c [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.h [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.c [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.h [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/handlebox.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbox.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbuttonbox.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hseparator.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/label.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_parser.mly [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/main.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/ml_gtk2.c [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/notebook.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/pixmap.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/radiobutton.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/scrolledwindow.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/spinbutton.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/statusbar.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBase.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBin.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiButton.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiContainer.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiEdit.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiList.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiMisc.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiPack.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWidget.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWindow.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/togglebutton.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/toolbar.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_minus.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_plus.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/utils.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbox.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbuttonbox.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/viewport.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vseparator.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/window.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/.cvsignore [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/README [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/uigtk.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/config.make.nt [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/configure.mk [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/formula.eps [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/lablgtk.mgp [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/morph3d.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/planet.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/simple.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/README [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/buttons.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calc.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calendar.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/clist.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/combo.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/csview.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/dcalendar.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/drawing.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/editor.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/entry.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/events.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fifteen.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixed_editor.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixpoint.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/hello.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image256x256.rgb [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/kaimono.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/label.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/lissajous.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/nihongo.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/fixpoint.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/hello.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/progressbar.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/pousse.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/progressbar.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/radiobuttons.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/rpn.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/scrolledwin.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/socket.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/test.xpm [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testdnd.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testgtk.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testinput.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tictactoe.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tron.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/xmhtml/test.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gHtml.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMain.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gaux.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkEvent.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkKeysyms.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk_tags.var [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glib.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gpointer.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkArgv.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBase.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBin.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkButton.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkData.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkEdit.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkInit.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkList.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMain.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMenu.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMisc.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkNew.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkPack.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThInit.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThread.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkTree.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkWindow.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkXmHTML.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk_tags.var [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkgl_tags.var [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkxmhtml_tags.var [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgl.patch [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgtk.in [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.c [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.h [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.c [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.h [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.c [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.h [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkgl.c [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkxmhtml.c [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2conv.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2def.ml [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.c [deleted file]
helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.h [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.i386.rpm [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.spec [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.src.rpm [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/.depend [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/COPYING [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/Makefile [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/config.make [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/configure.mk [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gMathView.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtkMathView.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtk_mathview.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/ml_gtk_mathview.c [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/Makefile [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.xml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0-1.spec [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0.tar.gz [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/.cvsignore [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/.depend [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/COPYING [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/Makefile [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/config.make [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/configure.mk [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gMathView.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtkMathView.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtk_mathview.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/.cvsignore [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/Makefile [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.mli [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.c [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.h [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.xml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/ml_gtk_mathview.c [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/.cvsignore [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/Makefile [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/t1.config [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.ml [deleted file]
helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.xml [deleted file]
helm/configuration/install [deleted file]
helm/configuration/local/etc/helm/configuration.dtd [deleted file]
helm/configuration/local/etc/helm/configuration.xml [deleted file]
helm/configuration/local/lib/helm/configuration.pl [deleted file]
helm/interface/.cvsignore [deleted file]
helm/interface/.depend [deleted file]
helm/interface/ISTRUZIONI [deleted file]
helm/interface/Makefile [deleted file]
helm/interface/NON_VA [deleted file]
helm/interface/PER_FARLO_ANDARE [deleted file]
helm/interface/PER_FARLO_ANDARE_TCSH [deleted file]
helm/interface/PER_FARLO_ANDARE_TCSH_D01 [deleted file]
helm/interface/README [deleted file]
helm/interface/TEMPI [deleted file]
helm/interface/WGET [deleted file]
helm/interface/annotation2Xml.ml [deleted file]
helm/interface/annotationParser.ml [deleted file]
helm/interface/annotationParser2.ml [deleted file]
helm/interface/cadet [deleted file]
helm/interface/cic.ml [deleted file]
helm/interface/cic2Xml.ml [deleted file]
helm/interface/cicAnnotationHinter.ml [deleted file]
helm/interface/cicCache.ml [deleted file]
helm/interface/cicCache.mli [deleted file]
helm/interface/cicCooking.ml [deleted file]
helm/interface/cicCooking.mli [deleted file]
helm/interface/cicFindParameters.ml [deleted file]
helm/interface/cicParser.ml [deleted file]
helm/interface/cicParser.mli [deleted file]
helm/interface/cicParser2.ml [deleted file]
helm/interface/cicParser2.mli [deleted file]
helm/interface/cicParser3.ml [deleted file]
helm/interface/cicParser3.mli [deleted file]
helm/interface/cicPp.ml [deleted file]
helm/interface/cicPp.mli [deleted file]
helm/interface/cicReduction.ml [deleted file]
helm/interface/cicReduction.mli [deleted file]
helm/interface/cicSubstitution.ml [deleted file]
helm/interface/cicSubstitution.mli [deleted file]
helm/interface/cicTypeChecker.ml [deleted file]
helm/interface/cicTypeChecker.mli [deleted file]
helm/interface/cicXPath.ml [deleted file]
helm/interface/cicXPath.prima_degli_identificatori.ml [deleted file]
helm/interface/configuration.ml [deleted file]
helm/interface/deannotate.ml [deleted file]
helm/interface/experiment.ml [deleted file]
helm/interface/fix_params.ml [deleted file]
helm/interface/getter.ml [deleted file]
helm/interface/getter.mli [deleted file]
helm/interface/gmon.out [deleted file]
helm/interface/http_getter/http_getter.pl [deleted file]
helm/interface/isterix [deleted file]
helm/interface/javacore15005.txt [deleted file]
helm/interface/javacore15021.txt [deleted file]
helm/interface/latinize.pl [deleted file]
helm/interface/mkindex.sh [deleted file]
helm/interface/mml.dtd [deleted file]
helm/interface/mml.ml [deleted file]
helm/interface/mmlinterface.ml [deleted file]
helm/interface/mmlinterface.opt.saved [deleted file]
helm/interface/pxpUriResolver.ml [deleted file]
helm/interface/reduction.ml [deleted file]
helm/interface/servers.txt.example [deleted file]
helm/interface/t1.config [deleted file]
helm/interface/theory.ml [deleted file]
helm/interface/theoryCache.ml [deleted file]
helm/interface/theoryParser.ml [deleted file]
helm/interface/theoryParser2.ml [deleted file]
helm/interface/theoryTypeChecker.ml [deleted file]
helm/interface/toglie_helm_xref.pl [deleted file]
helm/interface/toglie_helm_xref.sh [deleted file]
helm/interface/uriManager.ml [deleted file]
helm/interface/uriManager.ml.implementazione_banale [deleted file]
helm/interface/uriManager.ml.implementazione_doppia [deleted file]
helm/interface/uriManager.ml.implementazione_semplice [deleted file]
helm/interface/uriManager.mli [deleted file]
helm/interface/uris_of_filenames.pl [deleted file]
helm/interface/xaland-cpp/xaland.cpp [deleted file]
helm/interface/xaland-java/rompi.class [deleted file]
helm/interface/xaland-java/rompi.java [deleted file]
helm/interface/xaland-java/sped.class [deleted file]
helm/interface/xaland-java/sped.java [deleted file]
helm/interface/xaland-java/xaland.class [deleted file]
helm/interface/xaland-java/xaland.java [deleted file]
helm/interface/xaland-java/xaland.java.prima_del_loro_baco [deleted file]
helm/interface/xaland-java/xaland.java.prima_del_loro_baco_ma_dopo_i_reset [deleted file]
helm/interface/xaland-java2/xaland2.class [deleted file]
helm/interface/xaland-java2/xaland2.java [deleted file]
helm/interface/xaland.class [deleted file]
helm/interface/xaland2.class [deleted file]
helm/interface/xml.ml [deleted file]
helm/interface/xml.mli [deleted file]
helm/interface/xsltProcessor.ml [deleted file]
helm/style/annotatedcont.xsl [deleted file]
helm/style/annotatedpres.xsl [deleted file]
helm/style/basic.xsl [deleted file]
helm/style/content.xsl [deleted file]
helm/style/content_to_html.xsl [deleted file]
helm/style/html_init.xsl [deleted file]
helm/style/html_reals.xsl [deleted file]
helm/style/html_set.xsl [deleted file]
helm/style/mml2mmlv1_0.xsl [deleted file]
helm/style/mmlextension.xsl [deleted file]
helm/style/objcontent.xsl [deleted file]
helm/style/params.xsl [deleted file]
helm/style/proofs.xsl [deleted file]
helm/style/reals.xsl [deleted file]
helm/style/ricerca.xsl [deleted file]
helm/style/rootcontent.xsl [deleted file]
helm/style/roottheory.xsl [deleted file]
helm/style/set.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/annotatedcont.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/annotatedpres.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/basic.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/content.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/content_to_html.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/html_init.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/html_reals.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/html_set.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/mml2mmlv1_0.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/mml2mmlv1_0_original.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/mmlextension.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/objcontent.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/params.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/reals.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/ricerca.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/rootcontent.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/roottheory.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/set.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/theory_content.xsl [deleted file]
helm/style/style_prima_del_linguaggio_naturale/theory_pres.xsl [deleted file]
helm/style/theory_content.xsl [deleted file]
helm/style/theory_pres.xsl [deleted file]

diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.i386.rpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.i386.rpm
deleted file mode 100644 (file)
index 78f0a3b..0000000
Binary files a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.i386.rpm and /dev/null differ
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.spec b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.spec
deleted file mode 100644 (file)
index 4b579e8..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Summary: LablGTK : an interface to the GIMP Tool Kit for OCaml
-Name: lablgtk_20000829
-Version: 0.1.0
-Release: 1
-Copyright: LGPL
-Group: Development/Libraries
-Source: ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/olabl/lablgtk-20000829.tar.gz
-%description
-LablGTK is an interface to the GIMP Tool Kit for OCaml.
-
-%prep
-%setup
-
-%build
-make configure
-make
-make opt
-
-%install
-make install
-
-%files
-%doc CHANGES COPYING README doc
-
-/usr/lib/ocaml/lablgtk/
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.src.rpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.src.rpm
deleted file mode 100644 (file)
index 7ebeed1..0000000
Binary files a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0-1.src.rpm and /dev/null differ
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0.tar.gz b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0.tar.gz
deleted file mode 100644 (file)
index ba7056f..0000000
Binary files a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0.tar.gz and /dev/null differ
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/.cvsignore
deleted file mode 100644 (file)
index da3c3c5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.depend
-config.make
-var2conv
-var2def
-lablgtk
-lablgtktop
-lablgtktop_t
-lablgtkrun
-*_tags.c
-*_tags.h
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/CHANGES b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/CHANGES
deleted file mode 100644 (file)
index f5afeef..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-$Id$
-
-2000.8.29
-  * bugs in color selection reported by Nicolas George
-  * changed the license
-
-2000.8.21
-  * correct GtkStyle.set_font bug reported by Patrick Doane
-
-2000.7.27
-  * changed GUtil.signal and GUtil.variable for better usability
-  * suppressed obsolete color settings in tooltips
-
-2000.6.19
-  * patch by Michael Welsh for Gdk regions
-
-2000.6.15
-  * add CList.set_cell_style/set_row_style
-  * change set_usize/set_uposition into set_geometry
-  * return an option rather than raise an exception for null pointers
-  * map empty strings to NULL when meaningful
-  * Gdk.Font.get_type/ascent/descent
-
-2000.6.14
-  * add GDraw.optcolor for functions with a default (Jerome suggested)
-
-2000.6.8
-  * apply Jerome Vouillon's patch
-  * changes in GtkSignal and GtkArgv.ml
-
-2000.6.7
-  * create #misc#connect for widget generic signals
-
-2000.6.6
-  * move notebook from GMisc to GPack
-  * #connect#event, #add_event, #misc#event, #misc#set_events_extension
-    transferred to #event su-bobject.
-  * #connect#drag -> #drag#connect.
-  * #get_type, #connect#disconnect, #connect#stop_emit transferred to #misc.
-
-2000.5.25
-  * split misc.ml into gaux.ml and gpointer.ml
-
-2000.5.23
-  * add GMisc.notebook#get_{tab,menu}_label. Rename nth_page to get_nth_page.
-  * modified ML signals in GUtil, to allow signals without widget.
-
-2000.5.22
-  * Incompatible!: Change default for ~expand in Box.pack,
-    Pack.build_options, Table.build_options. Now defaults to false/`NONE.
-    This means that all options default to false/`NONE, except ~show
-    (true for all widgets except windows) and ~fill (always true but
-    effect controlled by ~expand).
-  * add GtkArgv.get_nativeint and GtkArgv.set_nativeint.
-  * make offset and length optional in GtkArgv.string_at_pointer.
-
-2000.5.10
-  * rename GtkFrame to GtkBin and GFrame to GBin
-  * move socket to GBin
-
-2000.5.9
-  * add arrow and image classes to GMisc
-  * add list and set_item_string methods to GEdit.combo
-  * add socket and plug classes to GContainer and GWindow
-  * two new examples: combo.ml and socket.ml
-
-2000.4.28
-  * add GUtil.variable
-
-2000.4.27
-  * add GtkXmHTML widget
-
-2000.4.26
-  * release 1.00
-
-2000.4.24
-  * merge in changes for ocaml 3.00: label and syntax changes, autolink
-  * added better visual and colormap handling to Gdk
-  * GdkObj renamed to GDraw, GtkPixmap moved to GMisc
-  * Initialize Gtk in gtkInit.cmo/cmx, start a thread in gtkInitThread.cmo.
-    These are only included in toplevels, link them explicitely or call
-    GMain.Main.init and GtkThread.start otherwise.
-  * install to caml standard library
-  * many other forgotten changes...
-
-2000.3.02
-  * move locale setting inside GtkMain.init, since it requires an
-    X display
-
-2000.2.24
-  * add checks in add methods, to avoid critical errors
-
-2000.2.23
-  * add dcalendar.ml (submitted by Ken Wakita) and csview.ml
-  * correct bug in GdkObj.pixmap#line
-
-1999.12.19
-  * release lablGTK beta2
-
-1999.12.16
-  * upgraded unison to version 1.169
-  * radio groups are of type {radio_menu_item,radio_button} obj option,
-    otherwise you could not use them several times
-
-1999.12.13
-  * added GtkEdit::{insert_text,delete_text} signals
-  * better syntax highlighting and ergonomy in the browser's shell
-
-1999.11...
-  * switched to Objective Caml 3
-  * constructors are no longer classes, but simple functions
-
-1999.10.29
-  * changed GtkArgv.get_{string,pointer,object} to return option types
-
-1999.10.27
-  * added radtest/CHANGES for cooperative editing on radtest
-
-1999.10.21
-  * added a UI for unison
-    (ask bcpierce@saul.cis.upenn.edu about how to get unison)
-
-1999.10.20
-  * corrected CList signals
-  * moved initialization out of the library, in gtkInit.cmo
-
-1999.10.15
-  * release lablGTK beta1
-
-1999.10.13
-  * improved gtkThread.ml (no timer)
-  * modify Sys.argv in place (gtkMain.ml)
-  * add set_row_data and get_row_data for GtkCList
-
-1999.10.11
-  * bugfixes in Makefile, radtest and lv
-
-1999.10.6
-  * added Gdk.X.flush and Gdk.X.beep 
-  * Gdk.X.flush is exported in GtkMain.Main
-
-1999.9.9
-  * added font selection dialog
-
-1999.8.25
-  * re-added connect#draw
-
-1999.8.10
-  * reduced the number of methods in widget
-  * moved disconnect and stop_emit to object_signals
-  * moved ?:after to each signal
-  * more functions in applications/browser
-
-1999.8.9
-  * Major change: created one set_param method by parameter,
-    rather than grouping them and using options.
-    You can get previous versions with tag "changing_set"
-  * corrected examples, radtest and browser for these changes
-  * a bit of clean-up in radtest (treew.ml and Makefile)
-
-1999.8.5
-  * corrected a bad bug with indirected pointers in caml heap
-
-1999.7.15
-  * add GdkKeysyms for exotic keysyms
-
-1999.7.14
-  * moved Truecolor inside Gdk
-  * added COPYING
-  * prepared for release
-
-1999.7.12
-  * clean up drag-and-drop
-
-1999.7.9
-  * corrected bug in Container.children
-  * added ML signal support in GUtil
-
-1999.7.6
-  * added DnD, improved radtest (Hubert)
-  * small corrections (Jacques)
-
-1999.7.1
-  * added some gdk functions related window and ximage
-  * also added applications/lv, "labl image viewer" with
-    the camlimage library.
-  (JPF)
-
-1999.7.1
-  * added applications/lablglade (Koji)
-
-1999.6.28
-  * added applications/radtest (Hubert)
-
-1999.6.23
-  * improved variant conversions for space.
-
-1999.6.22
-  * updated olabl.patch. With this new version you can access fields
-    of records without opening modules.  You can also use several times
-    the same label in one module.
-  * examples/GL/morph3d.ml uses it.
-
-1999.6.21
-  * moved event functions to GdkEvent
-
-1999.6.20
-  * new example: radtest.ml (Hubert)
-
-1999.6.18
-  * added GL extension
-
-1999.6.15
-  * grouped set methods into set_<keyword>
-  * added width and height option to all classes
-  * windows not shown are automatically destroyed by the GC
-
-1999.6.14
-  * added GPack.layout, GPack.packer, GPack.paned, GMisc.notebook,
-    GRange.scale, GMisc.calendar
-  * added 3 examples
-  * #add_events only available on windowed widgets
-
-1999.6.11
-  * added CList widget in GList module, and examples/clist.ml
-  * improved pixmap abstraction in GdkObj / GPix
-
-1999.6.10
-  * suppressed almost all raw pointers from the code. Pointers are now
-    either boxed (second field of an abstract block) or marked (lowest
-    bit set to 1).
-
-1999.6.9
-  * added GtkBase.Object.get_id and GObj.gtkobj#get_id to get an
-    unique identifier to gtk objects. Nice for hash-tables, etc...
-  * GUtil.memo is such an hash-table, allowing you to recover an
-    object's wrapper.
-  * added a show option to all classes, commanding whether the widget
-    should be shown immediately.  It is by default true on all widgets
-    except in module GWindow.
-  * moved non-OO examples to examples/old. Do "cvs update -d old" to
-    get them.
-  * changes in Gdk/GtkData/GObj about styles.
-
-1999.6.8
-  * updated olabl.patch
-
-1999.6.7
-  * split gtk.ml into gtk*.ml
-
-1999.6.5
-  * grouped Container focus operations in a "focus" subwidget
-
-1999.6.4
-  * slightly reorganized widget grouping
-
-1999.6.3
-  * disabled gtk_caller
-  * subtle hack to have GTree get the right interface
-  * switched completely to the new widget scheme (including examples)
-  * added olabl.patch to apply to olabl-2.02 to compile new sources
-
-1999.6.2
-  * integrated changes from Hubert in Gtk, GtkObj and testgtk.ml
-  * added G* modules to replace GtkObj. "make lablgtk2" for it
-
-1999.6.1
-  * added experimental GtkMenu for a cleaner approach to OO (Jacques)
-
-1999.5.31
-  * GtkObj: list, tree and menu_shell inherit from item_container (Jacques)
-  * Argv.get_{string,pointer,object} may raise Null_pointer (Jacques)
-  * Support for creating new widgets (Hubert)
-
-1999.5.28
-  * a few stylistic corrections
-  * added Packer in gtk.ml
-
-1999.5.27
-  * new Gtk.Main.main Gtk.Main.quit and GtkThread.main (for modal windows)
-  * added x: and y: to Window.setter
-  * new methods: object#get_type widget#misc#lock_accelerators
-    widget#misc#visible widget#misc#parent container#set_focus#vadjustment
-    container#set_focus#hadjustment (could be container#set_focus#adjustment with a dir param)
-    window#set_modal window#set_position window#set_default_size
-    window#set_transient_for
-    menu#set_accel_group
-  * new classes: handle_box_skel handle_box_signals handle_box
-    bbox color_selection color_selection_dialog toolbar
-    and the corresponding modules in gtk.ml
-    new class type: is_window and method as_window
-  * new param tearoff: in new_menu_item
-    new param x: and y: modal: in Window.setter
-  * Widget.event and Widget.activate return bool
-  * new example: examples/testgtk.ml and test.xpm
-  (Hubert)
-
-1999.5.25
-  * upgraded to gtk+-1.2.3 (all examples work)
-  * suppressed deprecated function calls and corrected examples
-  * added a patch to use toplevel threads in olabl-2.02
-
-1998.12.13
-  * upgraded to olabl-2.01
-
-1998.12.9
-  * replicated Main, Timeout and Grab to GtkObj (no need to open Gtk anymore)
-  * moved some non standard classes to GtkExt
-
-1998.12.8
-  * added the first application, xxaplay, Playstation audio track 
-    player for linux. (How architecture specific!) (Furuse)
-
-1998.12.8
-  * more widgets in GtkObj
-  * refined memory management
-  * all variants in upper case
-
-1998.12.7
-  * after deeper thought, re-introduced the connect sub-object
-  * simplified GtkObj: use simple inheritance and allow easy subtyping
-  * updated olabl.diffs for bugs in class functions parsing and printing
-  * add ThreadObj for concurrent object programming
-  (Jacques)
-
-1998.12.3
-  * pousse.ml is now a reversi game (idea for strategy ?)
-  * solved startup bug (a value checker for ocaml is now available)
-  (Jacques)
-
-1998.12.2
-  * added GdkObj for high level drawing primitives (Jacques)
-
-1998.11.30
-  * removed cast checking for NULL valued widgets (ml_gtk.[ch])
-  * module Arg is renamed as GtkArg because of the name corrision with
-       the module Arg in the standard library
-  * Makefile : native code compilation added
-  (Furuse)
-1998.11.29
-  * renamed widget_ops sub-object to misc
-  * various improvements of set functions
-  (Jacques)
-
-1998.11.28
-  * switched to object-oriented model. GtkObj is now the standard way
-    to access the library, but not all objects are ready (see README)
-  * removed inheritance in gtk.ml
-  (Jacques)
-
-1998.11.24
-  * added inheritance in gtk.ml
-
-1998.11.22
-  * added gtkObj.ml and examples/*_obj.ml
-  * various modifications in gtk.ml
-                                  
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/COPYING b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/COPYING
deleted file mode 100644 (file)
index d417b8b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-This library is made available under the LGPL.
-You should have got a copy of the LGPL with Objective Caml.
-The LGPL applies to all the files in this directory, but not in
-subdirectories.
-
-For the examples subdirectory, there is no specific licensing policy,
-but you may freely take inspiration from the code, and copy parts of
-it in your application.
-
-For the applications subdirectory, stricter rules apply:
-
-* You are free to do anything you want with this code as long as it is
-  for personal use.
-
-* Redistribution can only be "as is".  Binary distribution and bug
-  fixes are allowed, but you cannot extensively modify the code
-  without asking the authors.
-
-The authors may choose to remove any of the above restrictions on a
-per request basis.
-
-Authors:
-       Jacques Garrigue <garrigue@kurims.kyoto-u.ac.jp>
-       Hubert Fauque  <hubert.fauque@wanadoo.fr>
-       Jun Furuse     <Jun.Furuse@inria.fr>
-       Koji Kagawa    <kagawa@eng.kagawa-u.ac.jp>
-
-$Id$
\ No newline at end of file
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile
deleted file mode 100644 (file)
index 23157f2..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-# $Id$
-# Makefile for lablgtk.
-
-TARGETS = var2conv var2def lablgtktop lablgtktop_t lablgtkrun lablgtk
-
-all: $(TARGETS)
-
-opt: lablgtkopt
-
-configure:
-       @rm -f config.make
-       @$(MAKE) --no-print-directory -f configure.mk
-
-depend:
-       @rm -f .depend
-       @$(MAKE) --no-print-directory -f configure.mk .depend
-
-.depend config.make:
-       @$(MAKE) --no-print-directory -f configure.mk
-
-COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c
-LINKER = $(CAMLC) $(MLFLAGS)
-COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c
-LINKOPT = $(CAMLOPT) $(MLFLAGS)
-TOPLEVEL = ocamlmktop $(MLFLAGS)
-
-include config.make
-
-INSTALLDIR = $(LIBDIR)/lablgtk
-LABLGLDIR = $(LIBDIR)/lablGL
-
-MLLIBS = lablgtk.cma
-CLIBS = liblablgtk.a
-MLLINK = unix.cma str.cma
-
-ifdef DEBUG
-CFLAGS = -g $(GTKCFLAGS)
-MLLINK += -cclib -lcamlrund
-MLFLAGS = -g
-else
-CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS)
-endif
-
-THFLAGS = -thread
-THLINK = unix.cma threads.cma
-
-ifdef USE_CC
-CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS)
-else
-CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)"
-endif
-
-ifdef USE_GL
-MLFLAGS += -I $(LABLGLDIR)
-MLLINK += lablgl.cma
-MLLIBS += lablgtkgl.cma
-CLIBS += liblablgtkgl.a
-GLLINK = -cclib -llablgtkgl -cclib -lgtkgl
-GLMLOBJS = glGtk.cmo
-GLCOBJS = ml_gtkgl.o
-
-endif
-
-ifdef USE_GNOME
-MLLIBS += lablgnome.cma
-CLIBS += liblablgnome.a
-GNOMEMLOBJS = gtkXmHTML.cmo gHtml.cmo
-GNOMECOBJS = ml_gtkxmhtml.o
-endif
-
-# Rules
-.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def
-.c.o:
-       $(CCOMPILER) $<
-.ml.cmo:
-       $(COMPILER) $<
-.mli.cmi:
-       $(COMPILER) $<
-.ml.cmx:
-       $(COMPOPT) $<
-.var.h:
-       ./var2def < $< > $@
-.var.c:
-       ./var2conv < $< > $@
-
-# Targets
-COBJS = ml_gtk.o ml_gdk.o ml_glib.o wrappers.o
-MLOBJS = gaux.cmo gpointer.cmo glib.cmo gdk.cmo gdkEvent.cmo gdkKeysyms.cmo \
-       gtk.cmo gtkArgv.cmo gtkSignal.cmo \
-       gtkData.cmo gtkBase.cmo gtkPack.cmo gtkButton.cmo \
-       gtkMenu.cmo gtkMisc.cmo gtkWindow.cmo gtkTree.cmo gtkList.cmo \
-       gtkBin.cmo gtkEdit.cmo gtkRange.cmo gtkMain.cmo gtkNew.cmo \
-       gDraw.cmo \
-       gObj.cmo gMain.cmo gData.cmo gContainer.cmo gPack.cmo gButton.cmo \
-       gMenu.cmo gMisc.cmo gWindow.cmo gTree.cmo gList.cmo gBin.cmo \
-       gEdit.cmo gRange.cmo gUtil.cmo
-THOBJS = gtkThread.cmo
-INITOBJS = gtkInit.cmo
-THINITOBJS = gtkThInit.cmo
-ALLOBJS = $(MLOBJS) $(GLMLOBJS) $(GNOMEMLOBJS) $(THOBJS) \
-       $(INITOBJS) $(THINITOBJS)
-
-lablgtktop: $(CLIBS) $(MLLIBS) $(INITOBJS)
-       $(TOPLEVEL) -o $@ $(MLLINK) -ccopt -L. $(MLLIBS) $(INITOBJS)
-
-lablgtktop_t: $(CLIBS) $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS)
-       $(TOPLEVEL) $(THFLAGS) -o $@ $(THLINK) $(MLLINK) \
-          -ccopt -L. $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS)
-
-lablgtk: Makefile config.make lablgtk.in
-       sed -e "s|@INSTALLDIR@|$(INSTALLDIR)|g" \
-           -e "s|@LABLGLDIR@|$(LABLGLDIR)|g" \
-           -e "s|@LIBDIR@|$(LIBDIR)|g" \
-           < lablgtk.in > $@
-       chmod 755 $@
-
-lablgtkrun: $(CLIBS) $(MLLIBS)
-       $(LINKER) -o $@ -make-runtime $(MLLINK) -ccopt -L. $(MLLIBS)
-
-lablgtkopt: $(CLIBS) $(MLLIBS:.cma=.cmxa) $(INITOBJS:.cmo=.cmx) \
-       $(THOBJS:.cmo=.cmx)
-
-install:
-       if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi
-       cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR)
-       cp *.mli $(INSTALLDIR)
-       cp *.h $(INSTALLDIR)
-       cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR)
-       cp $(MLLIBS) $(THOBJS) $(INITOBJS) $(THINITOBJS) $(INSTALLDIR)
-       cp $(CLIBS) $(INSTALLDIR)
-       cp lablgtktop  lablgtktop_t $(INSTALLDIR)
-       cp lablgtk lablgtkrun $(BINDIR)
-       if test -f lablgtk.cmxa; then \
-          cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \
-             $(INITOBJS:.cmo=.cmx) $(INITOBJS:.cmo=.o) $(INSTALLDIR); fi
-       if test -f gtkThread.cmx; then \
-          cp $(THOBJS:.cmo=.cmx) $(THOBJS:.cmo=.o) $(INSTALLDIR); fi
-
-liblablgtk.a: $(COBJS)
-       ar rc $@ $(COBJS)
-       $(RANLIB) $@
-lablgtk.cma: $(MLOBJS)
-       $(LINKER) -a -custom -o $@ $(MLOBJS) \
-         -cclib -llablgtk $(GTKLIBS)
-lablgtk.cmxa: $(MLOBJS:.cmo=.cmx)
-       $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) \
-         -cclib -llablgtk $(GTKLIBS)
-
-liblablgtkgl.a: $(GLCOBJS)
-       ar rc $@ $(GLCOBJS)
-       $(RANLIB) $@
-lablgtkgl.cma: $(GLMLOBJS)
-       $(LINKER) -a -custom -o $@ $(GLLINK) $(GLMLOBJS)
-lablgtkgl.cmxa: $(GLMLOBJS:.cmo=.cmx)
-       $(LINKOPT) -a -o $@ $(GLLINK) $(GLMLOBJS:.cmo=.cmx)
-
-liblablgnome.a: $(GNOMECOBJS)
-       ar rc $@ $(GNOMECOBJS)
-       $(RANLIB) $@
-lablgnome.cma: $(GNOMEMLOBJS)
-       $(LINKER) -a -custom -o $@ $(GNOMEMLOBJS) \
-         -cclib -llablgnome $(GNOMELIBS)
-lablgnome.cmxa: $(GNOMEMLOBJS:.cmo=.cmx)
-       $(LINKOPT) -a -o $@ $(GNOMEMLOBJS:.cmo=.cmx) \
-         -cclib -llablgnome $(GNOMELIBS)
-
-gtkThread.cmo: gtkThread.ml
-       $(COMPILER) $(THFLAGS) gtkThread.ml
-
-gtkThread.cmx: gtkThread.ml
-       if test -f $(LIBDIR)/libthreadsnat.a; then \
-          $(COMPOPT) $(THFLAGS) gtkThread.ml; fi
-
-var2conv: var2conv.cmo
-       $(LINKER) -o $@ var2conv.cmo
-       rm -f *_tags.c
-
-var2def: var2def.cmo
-       $(LINKER) -o $@ var2def.cmo
-       rm -f *_tags.h
-
-clean:
-       rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS)
-
-ml_gtk.o: gtk_tags.c gtk_tags.h ml_gtk.h ml_gdk.h wrappers.h
-ml_gdk.o: gdk_tags.c gdk_tags.h ml_gdk.h wrappers.h
-ml_gtkgl.o: gtkgl_tags.c gtkgl_tags.h ml_gtk.h ml_gdk.h wrappers.h
-ml_gtkxmhtml.o: gtkxmhtml_tags.c gtkxmhtml_tags.h ml_gtk.h ml_gdk.h wrappers.h
-
-include .depend
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile.nt b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/Makefile.nt
deleted file mode 100644 (file)
index bdf5b6c..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-# $Id$
-# Makefile for lablgtk.
-
-EXE = .exe
-TARGETS = var2conv var2def lablgtk$(EXE) lablgtk_t$(EXE) \
-       lablgtkrun$(EXE) config.make
-
-all: $(TARGETS)
-
-opt: lablgtkopt
-
-CAMLC = ocamlc
-CAMLOPT = ocamlopt
-COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c
-LINKER = $(CAMLC) $(MLFLAGS)
-COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c
-LINKOPT = $(CAMLOPT) $(MLFLAGS)
-
-TOPLEVEL = ocamlmktop $(MLFLAGS)
-### How to invoke the librarian
-MKLIB=lib /nologo /debugtype:CV /out:
-
-!include config.make.nt
-
-INSTALLDIR = $(LIBDIR:/=\)\lablgtk
-BINDIR = $(LIBDIR:/=\)\..\bin
-LABLGLDIR = $(LIBDIR)/lablGL
-
-CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS)
-LDFLAGS = $(GTKLIBS)
-
-THFLAGS = -thread
-THLIBS = unix.cma threads.cma
-
-!if $(USE_CC) == 1
-CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS)
-!else
-CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)"
-!endif
-
-!if $(USE_GL) == 1
-MLFLAGS = $(MLFLAGS) -I $(LIBDIR)/lablGL
-GLLINK = -I $(LABLGLDIR) lablgl.cma -cclib -lgtkgl
-GLMLOBJS = glGtk.cmo
-GLCOBJS = ml_gtkgl.o
-!endif
-
-# Rules
-.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .obj .var .h .opt .def
-.c.obj:
-       $(CCOMPILER) $<
-.ml.cmo:
-       $(COMPILER) $<
-.mli.cmi:
-       $(COMPILER) $<
-.ml.cmx:
-       $(COMPOPT) $<
-.var.h:
-       ocamlrun ./var2def < $< > $@
-.var.c:
-       ocamlrun ./var2conv < $< > $@
-
-# Targets
-COBJS = ml_gtk.obj ml_gdk.obj ml_glib.obj wrappers.obj $(GLCOBJS)
-OLDMLOBJS = misc.cmo glib.cmo gdk.cmo gtk.cmo gdkObj.cmo gtkObj.cmo gtkExt.cmo
-MLOBJS = misc.cmo glib.cmo gdk.cmo gdkEvent.cmo gdkKeysyms.cmo \
-       gtk.cmo gtkArgv.cmo gtkSignal.cmo \
-       gtkData.cmo gtkBase.cmo gtkPack.cmo gtkButton.cmo \
-       gtkMenu.cmo gtkMisc.cmo gtkWindow.cmo gtkTree.cmo gtkList.cmo \
-       gtkFrame.cmo gtkEdit.cmo gtkRange.cmo gtkMain.cmo gtkNew.cmo \
-       gDraw.cmo \
-       gObj.cmo gMain.cmo gData.cmo gContainer.cmo gPack.cmo gButton.cmo \
-       gMenu.cmo gMisc.cmo gWindow.cmo gTree.cmo gList.cmo gFrame.cmo \
-       gEdit.cmo gRange.cmo gUtil.cmo $(GLMLOBJS)
-THOBJS = gtkThread.cmo threadObj.cmo
-INITOBJS = gtkInit.cmo
-THINITOBJS = gtkThInit.cmo
-ALLOBJS = $(MLOBJS) $(THOBJS) $(INITOBJS) $(THINITOBJS)
-
-lablgtk$(EXE): liblablgtk.lib lablgtk.cma $(INITOBJS)
-       $(TOPLEVEL) -custom -o $@ unix.cma str.cma $(GLLINK) \
-           lablgtk.cma $(INITOBJS)
-
-lablgtk_t$(EXE): liblablgtk.lib lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS)
-       $(TOPLEVEL) -custom $(THFLAGS) -o $@ $(THLIBS) str.cma $(GLLINK) \
-           lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS)
-
-lablgtkrun$(EXE): liblablgtk.lib lablgtk.cma
-       $(LINKER) -o $@ -make-runtime $(GLLINK) lablgtk.cma
-
-lablgtkopt: liblablgtk.lib lablgtk.cmxa gtkInit.cmx
-
-install:
-       if not exist $(INSTALLDIR) mkdir $(INSTALLDIR)
-       cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR)
-       cp *.mli $(INSTALLDIR)
-       cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR)
-       cp lablgtk.cma $(THOBJS) $(INITOBJS) $(THINITOBJS) $(INSTALLDIR)
-       cp liblablgtk.lib $(INSTALLDIR)
-       cp lablgtk$(EXE) lablgtk_t$(EXE) lablgtkrun$(EXE) $(BINDIR)
-       if exist lablgtk.cmxa cp lablgtk.cmxa lablgtk.lib gtkInit.cmx gtkInit.obj $(INSTALLDIR)
-
-liblablgtk.lib: $(COBJS)
-       $(MKLIB)$@ $(COBJS)
-
-lablgtk.cma: $(MLOBJS)
-       $(LINKER) -a -custom -o $@ $(MLOBJS) \
-         -cclib -llablgtk $(GTKLIBS)
-
-lablgtk.cmxa: $(MLOBJS:.cmo=.cmx)
-       $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) \
-         -cclib -llablgtk $(GTKLIBS)
-
-gtkThread.cmo: gtkThread.ml
-       $(COMPILER) $(THFLAGS) gtkThread.ml
-
-threadObj.cmo: threadObj.ml
-       $(COMPILER) $(THFLAGS) threadObj.ml
-
-gtkThread.cmx: gtkThread.ml
-       $(COMPOPT) $(THFLAGS) gtkThread.ml
-
-threadObj.cmx: threadObj.ml
-       $(COMPOPT) $(THFLAGS) threadObj.ml
-
-var2conv: var2conv.cmo
-       $(LINKER) -o $@ var2conv.cmo
-       rm -f *_tags.c
-
-var2def: var2def.cmo
-       $(LINKER) -o $@ var2def.cmo
-       rm -f *_tags.h
-
-clean:
-       rm -f *.cm* *.obj *.lib *_tags.[ch] $(TARGETS)
-
-config.make: config.make.nt
-       cp config.make.nt config.make
-
-depend .depend:
-       ocamldep *.ml *.mli > .depend
-
-ml_gtk.obj: gtk_tags.c gtk_tags.h ml_gtk.h ml_gdk.h wrappers.h
-ml_gdk.obj: gdk_tags.c gdk_tags.h ml_gdk.h wrappers.h
-ml_gtkgl.obj: gtkgl_tags.c gtkgl_tags.h ml_gtk.h ml_gdk.h wrappers.h
-
-!include .depend
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/README
deleted file mode 100644 (file)
index eabc247..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-
-               LablGTK : an interface to the GIMP Tool Kit
-
-
-Needed:
-       ocaml-3.00
-       gtk-1.2.x
-       gmake (there is no standard for conditionals)
-
-How to compile:
-
-       You should normally not need to modify Makefiles.
-       First type "make configure <options>".
-       Options are
-               USE_CC=1        to use $(CC) rather than gcc
-               USE_GL=1        to compile with OpenGL support (see lower)
-
-       Then just type "make" to build the library and toplevels.
-
-       On FreeBSD, you need to link with libxpg4.so for Japanese
-       output.
-
-Contents:
-
-       gdk.ml          low-level interface to the General Drawing Kit
-       gtk.ml          low-level interface to the GIMP Tool Kit
-       gtkThread.ml    main loop for threaded version
-       g[A-Z]*.ml      object-oriented interface to GTK
-       gdkObj.ml       object-oriented interface to GDK
-
-       lablgtk         toplevel
-
-       examples/*.ml   various examples
-       applications/*  applications using the library
-               radtest         a very experimental RAD for lablgtk
-                               (by Hubert Fauque)
-               browser         the begin of a port of OCamlBrowser
-                               (by Jacques Garrigue)
-                unison          a frontend for the Unison file synchronizer
-                                see the README for details.
-
-Upgrading from lablgtk-1.00:
-  There are a few incompatibilities between this version and the
-  previous release. We do not describe them all, since usually a type
-  error message will inform you.
-  * all signals are no longer under #connect. #connect#event changed
-    to #event#connect, and some signals are under #misc#connect or
-    #grab#connect. See lower for a description of the new widget
-    structure.
-  * some defaults changed. In particular GPack.box#pack have now all
-    its parameter defaulting to false rather than true. See lower for
-    the new default policy. Beware that this does not cause type
-    errors, just changes in the aspect.
-
-How to run the examples:
-  In the examples directory just type:
-       lablgtk -labels examples/???.ml
-
-  Before installing lablgtk you have to be more explicit:
-       ../lablgtktop -labels -w s -I .. ???.ml
-
-How to link them:
-  lablgtktop contains an extra module GtkInit, whose only contents is:
-        let locale = GtkMain.Main.init ()
-  You must either add this line, or add this module to your link,
-  before calling any Gtk function.
-  ocamlc -I CAMLLIB/lablgtk -labels -w s lablgtk.cma gtkInit.cmo ???.ml -o ???
-
-How to use the threaded toplevel:
-
-       % lablgtk -thread           (or lablgtktop_t before installing)
-               Objective Caml version 3.00
-       
-       # let w = GWindow.window ~show:true ();;
-
-  You should at once see a window appear.
-  The GTK main loop is running in a separate thread. Any command
-  is immediately reflected by the system.
-  Beware that you cannot switch threads within a callback, that is the
-  only thread related command you may use in a callback is
-  Thread.create. On the other hand, all newly created threads will be
-  run directly by the caml main loop, so they can use all thread
-  operations.
-
-Structure of the (raw) Gtk* modules:
-
-  These modules are composed of one submodule for each class.
-  Signals specific to a widget are in a Signals inner module.
-  A setter function is defined to give access to set_param functions.
-
-Structure of the G[A-Z]* modules:
-
-  These modules provide classes to wrap the raw function calls.
-  Here are the widget classes contained in each module:
-
-  GDraw         Gdk pixmaps, etc...
-  GObj         gtkobj, widget, style
-  GData                data, adjustment, tooltips
-  GContainer   container, item_container
-  GWindow      window, dialog, color_selection_dialog, file_selection, plug
-  GPack                box, button_box, table, fixed, layout, packer, paned, notebook
-  GBin         scrolled_window, event_box, handle_box, frame,
-               aspect_frame, viewport, socket
-  GButton      button, toggle_button, check_button, radio_button, toolbar
-  GMenu                menu_item, tearoff_item, check_menu_item, radio_menu_item,
-               menu_shell, menu, option_menu, menu_bar, factory
-  GMisc                separator, statusbar, calendar, drawing_area,
-               misc, arrow, image, pixmap, label, tips_query,
-                color_selection, font_selection
-  GTree                tree_item, tree
-  GList                list_item, liste, clist
-  GEdit                editable, entry, spin_button, combo, text
-  GRange       progress, progress_bar, range, scale, scrollbar
-
-  While subtyping follows the Gtk widget hierarchy, you cannot always
-  use width subtyping (i.e. #super is not unifiable with all the
-  subclasses of super). Still, it works for some classes, like
-  #widget and #container, and allows subtyping without coercion towards
-  these classes (cf. #container in pousse.ml for instance).
-
-  Practically, each widget class is composed of:
-  * a coerce method, returning the object coerced to the type widget.
-  * an as_widget method, returning the raw Gtk widget used for packing, etc...
-  * a connect sub-object, allowing one to widget specific
-    signals (this is what prevents width subtyping in subclasses.)
-  * a misc sub-object, giving access to miscellanous functionality of
-    the basic gtkwidget class, and a misc#connect sub-object.
-  * an event sub-object, for Xevent related functions (only if the widget
-    has an Xwindow), and an event#connect sub-object.
-  * a grab sub-object, containing drag and drop functions,
-    and a grab#connect sub-object.
-  * widget specific methods.
-
-  Here is a diagram of the structure (- for methods, + for sub-objects)
-        - coerce : widget
-        - as_widget : Gtk.widget obj
-        - destroy : unit -> unit
-        - ...
-        + connect : mywidget_signals
-        |   - after
-        |   - signal_name : callback:(... -> ...) -> GtkSignal.id
-        + misc : misc_ops
-        |   - show, hide, disconnect, ...
-        |   + connect : misc_signals
-        + event : event_ops
-        |   - add, ...
-        |   + connect : event_signals
-        + grab : grab_ops
-        |   - ...
-        |   + connect : grab_signals
-
-  You create a widget by [<Module>.<widget name> options ... ()].
-  Many optional arguments are admitted. The last two of them, packing:
-  and show:, allow you respectively to call a function on your newly
-  created widget, and to decide wether to show it immediately or not.
-  By default all widgets except toplevel windows (GWindow module) are
-  shown immediately.
-
-Default arguments:
-  For many constructor or method arguments, default values are provided.
-  Generally, this default value is defined by GTK, and you must refer
-  to GTK's documentation.
-  For ML defined defaults, usually default values are either false, 0, None
-  or `NONE, according to the expected type.
-  Important exceptions are ~show, which default to true in all widgets
-  except those in GWindow, and ~fill, which defaults to true or `BOTH.
-
-Note about unit as method argument:
-
-  O'Caml introduces no distinction between methods having side-effects
-  and methods simply returning a value. In practice, this is
-  confusing, and awkward when used as callbacks. For this reason all
-  methods having noticeable side-effects should take arguments, and
-  unit if they have no argument.
-
-Memory management:
-
-  Important efforts have been dedicated to cooperate with Gtk's
-  reference counting mechanism. As a result you should generally be
-  able to use Gdk/Gtk data structures without caring about memory
-  management. They will be freed when nobody points to them any more.
-  This also means that you do not need to pay too much attention to
-  whether a data structure is still alive or not. If it is not, you
-  should get an error rather than a core dump.
-  The case of Gtk objects deserves special care. Since they are
-  interactive, we cannot just destroy them when they are no longer
-  referenced. They have to be explicitely destroyed. If a widget was
-  added to a container widget, it will automatically be destroyed when
-  its last container is destroyed. For this reason you need only
-  destroy toplevel widgets.
-
-GL extension
-
-  You can use lablgtk in combination with LablGL
-
-  * get and install lablGL 0.94 from
-    http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgl.html
-  * get and install gtkglarea-1.2.x.tar.gz from
-    http://www.student.oulu.fi/~jlof/gtkglarea/index.html
-  * reconfigure: "make configure USE_GL=1"
-
-  You can then use the widget GlGtk.gl_area as an OpenGL window.
-  Some examples are in examples/GL, but basically any LablGL example
-  can be easily ported.
-
-Windows port
-
-  A Win32 port is provided. In order to compile it, you will need to
-  get and unpack glib-dev-????.zip and gtk+-dev-????.zip from
-        http://www.gimp.org/~tml/gimp/win32/
-  Do not forget to get also extralibs-dev-????.zip, since you will
-  need some of the DLLs.
-
-  Edit config.make.nt, then, using Visual C++,
-        nmake -f Makefile.nt
-        nmake -f Makefile.nt opt        (if you have an MS Assembler)
-  Then install with
-        nmake -f Makefile.nt install
-
-  Since the link is dynamic you will also need to have in your path:
-  gnu-intl.dll (extralibs), glib-1.3.dll, module-1.3.dll and
-  gthread-1.3.dll (glib), gdk-1.3.dll and gtk-1.3.dll (gtk+).
-
-  I checked with the 2000-02-02 version of these libraries.
-  Currently threads do not seem to work, but otherwise everything
-  seems OK. In particular, you can run all examples, and build
-  applications\unison as usual.
-
-Authors:
-       Jacques Garrigue <garrigue@kurims.kyoto-u.ac.jp>
-       Hubert Fauque  <hubert.fauque@wanadoo.fr>
-       Jun Furuse     <Jun.Furuse@inria.fr>
-       Koji Kagawa    <kagawa@eng.kagawa-u.ac.jp>
-                                  
-Bug reports:
-       Jacques Garrigue <garrigue@kurims.kyoto-u.ac.jp>
-
-$Id$
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/.cvsignore
deleted file mode 100644 (file)
index bc09d74..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-olabl-src
-browser
-.depend
\ No newline at end of file
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/Makefile b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/Makefile
deleted file mode 100644 (file)
index 8822e47..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id$
-# Makefile for lablgtk.
-
-all: browser
-
-CAMLC = ocamlc
-CAMLOPT = ocamlopt
-COMPILER = $(CAMLC) $(MLFLAGS) -labels -w s -c
-LINKER = $(CAMLC) $(MLFLAGS)
-COMPOPT = $(CAMLOPT) $(MLFLAGS) -labels -w s -c
-LINKOPT = $(CAMLOPT) $(MLFLAGS)
-
-RANLIB = ranlib
-
-include ../../config.make
-
-MLFLAGS = -I ../.. -I ocaml-src/utils -I ocaml-src/parsing
-
-# Rules
-.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def
-.ml.cmo:
-       $(COMPILER) $<
-.mli.cmi:
-       $(COMPILER) $<
-.ml.cmx:
-       $(COMPOPT) $<
-
-# Targets
-MLOBJS = text.cmo file.cmo lexical.cmo shell.cmo editor.cmo
-
-browser: $(MLOBJS)
-       $(LINKER) -o $@ toplevellib.cma str.cma unix.cma \
-           lablgtk.cma $(MLOBJS) 
-
-clean:
-       rm -f *.cm* browser
-
-.depend:
-       ocamldep *.ml *.mli > .depend
-
-include .depend
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/README
deleted file mode 100644 (file)
index a6f01ce..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-       Browser: the beginning of a port of the LablBrowser
-
-Installation:
-
-* make a link from a directory where the O'Labl distribution is
-  compiled to olabl-src
-       ln -s /path/to/olabl/ocaml-2.02 olabl-src
-  (actually only the directory parsing needs to be compiled)
-
-* just type "make"
-
-Use:
-
-When you run browser, you just get a customized editor with lexical
-coloring. Nothing very fancy.
-In the file menu you can open a shell, running olabl as subprocess.
-
-Jacques Garrigue
\ No newline at end of file
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/TODO b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/TODO
deleted file mode 100644 (file)
index 0c8bb53..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-* lexical coloring (done)
-* hyperlinks (call signal with position)
-* keyboard popup
-* protection
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/editor.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/editor.ml
deleted file mode 100644 (file)
index d4adbfb..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-class editor ?packing ?show () =
-  let text = GEdit.text ~editable:true ?packing ?show () in
-object (self)
-  inherit GObj.widget text#as_widget
-
-  val mutable filename = None
-
-  method text = text
-
-  method load_file name =
-    try
-      let ic = open_in name in
-      filename <- Some name;
-      text#freeze ();
-      text#delete_text ~start:0 ~stop:text#length;
-      let buf = String.create 1024 and len = ref 0 in
-      while len := input ic ~buf ~pos:0 ~len:1024; !len > 0 do
-       if !len = 1024 then text#insert buf
-       else text#insert (String.sub buf ~pos:0 ~len:!len)
-      done;
-      text#set_point 0;
-      text#thaw ();
-      close_in ic
-    with _ -> ()
-
-  method open_file () = File.dialog ~title:"Open" ~callback:self#load_file ()
-
-  method save_file () =
-    File.dialog ~title:"Save" ?filename () ~callback:
-      begin fun name ->
-       try
-         if Sys.file_exists name then Sys.rename ~src:name ~dst:(name ^ "~");
-         let oc = open_out name in
-         output_string oc (text#get_chars ~start:0 ~stop:text#length);
-         close_out oc
-       with _ -> prerr_endline "Save failed"
-      end
-end
-
-open GdkKeysyms
-
-class editor_window ?(show=false) () =
-  let window = GWindow.window ~width:500 ~height:300
-      ~title:"Program Editor" () in
-  let vbox = GPack.vbox ~packing:window#add () in
-
-  let menubar = GMenu.menu_bar ~packing:vbox#pack () in
-  let factory = new GMenu.factory menubar in
-  let accel_group = factory#accel_group
-  and file_menu = factory#add_submenu "File"
-  and edit_menu = factory#add_submenu "Edit"
-  and comp_menu = factory#add_submenu "Compiler" in
-
-  let hbox = GPack.hbox ~packing:vbox#add () in
-  let scrollbar =
-    GRange.scrollbar `VERTICAL ~packing:(hbox#pack ~from:`END) ()
-  and editor = new editor ~packing:hbox#add () in
-object (self)
-  inherit GObj.widget window#as_widget
-
-  method window = window
-  method editor = editor
-  method show = window#show
-
-  initializer
-    window#connect#destroy ~callback:Main.quit;
-    let factory = new GMenu.factory file_menu ~accel_group in
-    factory#add_item "Open..." ~key:_O ~callback:editor#open_file;
-    factory#add_item "Save..." ~key:_S ~callback:editor#save_file;
-    factory#add_item "Shell"
-      ~callback:(fun () -> Shell.f ~prog:"ocaml" ~title:"Objective Caml Shell");
-    factory#add_separator ();
-    factory#add_item "Quit" ~key:_Q ~callback:window#destroy;
-    let factory = new GMenu.factory edit_menu ~accel_group in
-    factory#add_item "Copy" ~key:_C ~callback:editor#text#copy_clipboard;
-    factory#add_item "Cut" ~key:_X ~callback:editor#text#cut_clipboard;
-    factory#add_item "Paste" ~key:_V ~callback:editor#text#paste_clipboard;
-    factory#add_separator ();
-    factory#add_check_item "Word wrap" ~active:false
-      ~callback:editor#text#set_word_wrap;
-    factory#add_check_item "Read only" ~active:false
-      ~callback:(fun b -> editor#text#set_editable (not b));
-    let factory = new GMenu.factory comp_menu ~accel_group in
-    factory#add_item "Lex" ~key:_L
-      ~callback:(fun () -> Lexical.tag editor#text);
-    window#add_accel_group accel_group;
-    editor#text#set_vadjustment scrollbar#adjustment;
-    if show then self#show ()
-end
-
-let _ =
-  Main.init ();
-  if Array.length Sys.argv >= 2 && Sys.argv.(1) = "-shell" then
-    Shell.f ~prog:"ocaml" ~title:"Objective Caml Shell"
-  else
-    ignore (new editor_window ~show:true ());
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/file.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/file.ml
deleted file mode 100644 (file)
index e9c0cf3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-(* $Id$ *)
-
-let dialog ~title ~callback ?filename () =
-  let sel =
-    GWindow.file_selection ~title ~modal:true ?filename () in
-  sel#cancel_button#connect#clicked ~callback:sel#destroy;
-  sel#ok_button#connect#clicked ~callback:
-    begin fun () ->
-      let name = sel#get_filename in
-      sel#destroy ();
-      callback name
-    end;
-  sel#show ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/lexical.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/lexical.ml
deleted file mode 100644 (file)
index 9acb9c0..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-(* $Id$ *)
-
-open Parser
-
-type tags = [`none|`control|`define|`structure|`char|`infix|`label|`uident]
-
-let colors : (tags * GDraw.color) list Lazy.t =
-  lazy
-    (List.map ~f:(fun (tag,col) -> tag, `COLOR (GDraw.color (`NAME col)))
-       [ `control, "blue";
-        `define, "forestgreen";
-        `structure, "purple";
-        `char, "gray40";
-        `infix, "indianred4";
-        `label, "brown";
-        `uident, "midnightblue";
-         `none, "black" ])
-
-let tag ?(start=0) ?stop:pend (tw : GEdit.text) =
-  let pend = Gaux.default tw#length ~opt:pend in
-  let colors = Lazy.force colors in
-  tw#freeze ();
-  let position = tw#position
-  and text = tw#get_chars ~start ~stop:pend in
-  let replace ~start:pstart ~stop:pend ~tag =
-    if pend > pstart then begin
-      tw#delete_text ~start:(start+pstart) ~stop:(start+pend);
-      tw#set_point (start+pstart);
-      tw#insert ~foreground:(List.assoc tag colors)
-       (String.sub text ~pos:pstart ~len:(pend-pstart));
-    end
-  and next_lf = ref (-1) in
-  let colorize ~start:rstart ~stop:rend ~tag =
-    let rstart = ref rstart in
-    while !rstart < rend do
-      if !next_lf < !rstart then begin
-       try next_lf := String.index_from text !rstart '\n'
-       with Not_found -> next_lf := pend-start
-      end;
-      replace ~start:!rstart ~stop:(min !next_lf rend) ~tag;
-      rstart := !next_lf + 1
-    done
-  in
-  let buffer = Lexing.from_string text
-  and last = ref (EOF, 0, 0)
-  and last_pos = ref 0 in
-  try
-    while true do
-    let token = Lexer.token buffer
-    and start = Lexing.lexeme_start buffer
-    and stop = Lexing.lexeme_end buffer in
-    let tag =
-      match token with
-        AMPERAMPER
-      | AMPERSAND
-      | BARBAR
-      | DO | DONE
-      | DOWNTO
-      | ELSE
-      | FOR
-      | IF
-      | LAZY
-      | MATCH
-      | OR
-      | THEN
-      | TO
-      | TRY
-      | WHEN
-      | WHILE
-      | WITH
-          -> `control
-      | AND
-      | AS
-      | BAR
-      | CLASS
-      | CONSTRAINT
-      | EXCEPTION
-      | EXTERNAL
-      | FUN
-      | FUNCTION
-      | FUNCTOR
-      | IN
-      | INHERIT
-      | INITIALIZER
-      | LET
-      | METHOD
-      | MODULE
-      | MUTABLE
-      | NEW
-      | OF
-      | PARSER
-      | PRIVATE
-      | REC
-      | TYPE
-      | VAL
-      | VIRTUAL
-          -> `define
-      | BEGIN
-      | END
-      | INCLUDE
-      | OBJECT
-      | OPEN
-      | SIG
-      | STRUCT
-          -> `structure
-      | CHAR _
-      | STRING _
-          -> `char
-      | BACKQUOTE
-      | INFIXOP1 _
-      | INFIXOP2 _
-      | INFIXOP3 _
-      | INFIXOP4 _
-      | PREFIXOP _
-      | QUESTION2
-      | SHARP
-          -> `infix
-      | LABEL _
-      | OPTLABEL _
-      | QUESTION
-      | TILDE
-          -> `label
-      | UIDENT _ -> `uident
-      | LIDENT _ ->
-          begin match !last with
-            (QUESTION | TILDE), _, _ -> `label
-          | _ -> `none
-          end
-      | COLON ->
-          begin match !last with
-            LIDENT _, lstart, lstop when lstop = start ->
-              colorize ~tag:`none ~start:!last_pos ~stop:lstart;
-              colorize ~tag:`label ~start:lstart ~stop;
-              last_pos := stop;
-              `none
-          | _ -> `none
-          end
-      | EOF -> raise End_of_file
-      | _ -> `none
-    in
-    if tag <> `none then begin
-      colorize ~tag:`none ~start:!last_pos ~stop:start;
-      colorize ~tag ~start ~stop;
-      last_pos := stop
-    end;
-    last := (token, start, stop)
-    done
-  with exn ->
-    colorize ~tag:`none ~start:!last_pos ~stop:(pend-start);
-    tw#thaw ();
-    tw#set_position position;
-    tw#set_point position;
-    match exn with
-      End_of_file | Lexer.Error _ -> ()
-    | _ -> raise exn
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/list2.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/list2.ml
deleted file mode 100644 (file)
index 0d7798a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-(* $Id$ *)
-
-let rec cut l ~len =
-  if len <= 0 then [], l else
-  match l with
-    a::l ->
-      let l1, l2 = cut l ~len:(len-1) in
-      a::l1, l2
-  | [] ->
-      invalid_arg "cut_list"
-
-let rec chop l ~len =
-  if l = [] then [] else
-  let l1, l2 =
-    try cut_list l ~len
-    with Invalid_argument _ -> l, []
-  in
-  l1 :: chop l2 ~len
-
-
-let rec iteri_aux ~f:f ~i = function
-    [] -> ()
-  | a::l -> f ~i a; iteri_aux ~f:f ~i:(i+1) l
-
-let iteri = iteri_aux ~i:0
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/shell.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/shell.ml
deleted file mode 100644 (file)
index fbe0f92..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-(* $Id$ *)
-
-open GdkKeysyms
-open Printf
-
-(* Nice history class. May reuse *)
-
-class ['a] history () = object
-  val mutable history = ([] : 'a list)
-  val mutable count = 0
-  method empty = history = []
-  method add s = count <- 0; history <- s :: history
-  method previous =
-    let s = List.nth history count in
-    count <- (count + 1) mod List.length history;
-    s
-  method next =
-    let l = List.length history in
-    count <- (l + count - 1) mod l;
-    List.nth history ((l + count - 1) mod l)
-end
-
-(* The shell class. Now encapsulated *)
-
-let protect f x = try f x with _ -> ()
-
-class shell ~prog ~args ~env ?packing ?show () =
-  let (in2,out1) = Unix.pipe ()
-  and (in1,out2) = Unix.pipe ()
-  and (err1,err2) = Unix.pipe () in
-  let _ = List.iter ~f:Unix.set_nonblock [out1;in1;err1] in
-object (self)
-  val textw = GEdit.text ~editable:true ?packing ?show ()
-  val pid = Unix.create_process_env
-      ~prog ~args ~env ~stdin:in2 ~stdout:out2 ~stderr:err2
-  val out = Unix.out_channel_of_descr out1
-  val h = new history ()
-  val mutable alive = true
-  val mutable reading = false
-  val mutable input_start = 0
-  method text = textw
-  method alive = alive
-  method kill () =
-    textw#set_editable false;
-    if alive then begin
-      alive <- false;
-      protect close_out out;
-      List.iter ~f:(protect Unix.close) [in1; err1; in2; out2; err2];
-      try
-       Unix.kill ~pid ~signal:Sys.sigkill;
-       Unix.waitpid pid ~mode:[]; ()
-      with _ -> ()
-    end
-  method interrupt () =
-    if alive then try
-      reading <- false;
-      Unix.kill ~pid ~signal:Sys.sigint
-    with Unix.Unix_error _ -> ()
-  method send s =
-    if alive then try
-      output_string out s;
-      flush out
-    with Sys_error _ -> ()
-  method private read ~fd ~len =
-    try
-      let buf = String.create len in
-      let len = Unix.read fd ~buf ~pos:0 ~len in
-      if len > 0 then begin
-       textw#set_position textw#length;
-       self#insert (String.sub buf ~pos:0 ~len);
-       input_start <- textw#position;
-      end;
-      len
-    with Unix.Unix_error _ -> 0
-  method history (dir : [`next|`previous]) =
-    if not h#empty then begin
-      if reading then begin
-       textw#delete_text ~start:input_start ~stop:textw#position;
-      end else begin
-       reading <- true;
-       input_start <- textw#position
-      end;
-      self#insert (if dir = `previous then h#previous else h#next);
-    end
-  val mutable lexing = false
-  method private lex ~start ~stop:e =
-    if not lexing && start < e then begin
-      lexing <- true;
-      Lexical.tag textw ~start ~stop:e;
-      lexing <- false
-    end
-  method insert ?(lex=true) text =
-    let start = Text.line_start textw in
-    textw#insert text;
-    if lex then self#lex ~start ~stop:(Text.line_end textw)
-  method private keypress c =
-    if not reading & c > " " then begin
-      reading <- true;
-      input_start <- textw#position
-    end
-  method private return () =
-    if reading then reading <- false
-    else input_start <- textw#position;
-    textw#set_position (Text.line_end textw);
-    let s = textw#get_chars ~start:input_start ~stop:textw#position in
-    h#add s;
-    self#send s;
-    self#send "\n"
-  method private paste () =
-    if not reading then begin
-      reading <- true;
-      input_start <- textw#position;
-    end
-  initializer
-    textw#event#connect#key_press ~callback:
-      begin fun ev ->
-       if GdkEvent.Key.keyval ev = _Return && GdkEvent.Key.state ev = []
-       then self#return ()
-       else self#keypress (GdkEvent.Key.string ev);
-        false
-      end;
-    textw#connect#after#insert_text ~callback:
-      begin fun s ~pos ->
-        if not lexing then
-          self#lex ~start:(Text.line_start textw ~pos:(pos - String.length s))
-            ~stop:(Text.line_end textw ~pos)
-      end;
-    textw#connect#after#delete_text ~callback:
-      begin fun ~start:pos ~stop ->
-        if not lexing then
-          self#lex ~start:(Text.line_start textw ~pos)
-            ~stop:(Text.line_end textw ~pos)
-      end;
-    textw#event#connect#button_press ~callback:
-      begin fun ev ->
-       if GdkEvent.Button.button ev = 2 then self#paste ();
-       false
-      end;
-    textw#connect#destroy ~callback:self#kill;
-    GMain.Timeout.add ~ms:100 ~callback:
-      begin fun () ->
-       if alive then begin
-         List.iter [err1;in1]
-           ~f:(fun fd -> while self#read ~fd ~len:1024 = 1024 do () done);
-         true
-       end else false
-      end;
-    ()
-end
-
-(* Specific use of shell, for LablBrowser *)
-
-let shells : (string * shell) list ref = ref []
-
-(* Called before exiting *)
-let kill_all () =
-  List.iter !shells ~f:(fun (_,sh) -> if sh#alive then sh#kill ());
-  shells := []
-let _ = at_exit kill_all
-
-let get_all () =
-  let all = List.filter !shells ~f:(fun (_,sh) -> sh#alive) in
-  shells := all;
-  all
-
-let may_exec prog =
-  try Unix.access prog ~perm:[Unix.X_OK]; true
-  with Unix.Unix_error _ -> false
-
-let f ~prog ~title =
-  let progargs =
-    List.filter ~f:((<>) "") (Str.split ~sep:(Str.regexp " ") prog) in
-  if progargs = [] then () else
-  let prog = List.hd progargs in
-  let path = try Sys.getenv "PATH" with Not_found -> "/bin:/usr/bin" in
-  let exec_path = Str.split ~sep:(Str.regexp":") path in
-  let prog =
-    if not (Filename.is_implicit prog) then
-      if may_exec prog then prog else ""
-    else
-      List.fold_left exec_path ~init:"" ~f:
-       begin fun acc dir ->
-         if acc <> "" then acc else
-         let prog = Filename.concat dir prog in
-         if may_exec prog then prog else acc
-       end
-  in
-  if prog = "" then () else
-  let reg = Str.regexp "TERM=" in
-  let env = Array.map (Unix.environment ()) ~f:
-      begin fun s ->
-       if Str.string_match ~pat:reg s ~pos:0 then "TERM=dumb" else s
-      end in
-  let load_path =
-    List.flatten (List.map !Config.load_path ~f:(fun dir -> ["-I"; dir])) in
-  let args = Array.of_list (progargs @ load_path) in
-  let current_dir = ref (Unix.getcwd ()) in
-
-  let tl = GWindow.window ~title ~width:500 ~height:300 () in
-  let vbox = GPack.vbox ~packing:tl#add () in
-  let menus = GMenu.menu_bar ~packing:vbox#pack () in
-  let f = new GMenu.factory menus in
-  let accel_group = f#accel_group in
-  let file_menu = f#add_submenu "File"
-  and history_menu = f#add_submenu "History"
-  and signal_menu = f#add_submenu "Signal" in
-
-  let hbox = GPack.hbox ~packing:vbox#add () in
-  let sh = new shell ~prog ~env ~args ~packing:hbox#add () in
-  let sb =
-    GRange.scrollbar `VERTICAL ~adjustment:sh#text#vadjustment
-      ~packing:hbox#pack ()
-  in
-
-  let f = new GMenu.factory file_menu ~accel_group in
-  f#add_item "Use..." ~callback:
-    begin fun () ->
-      File.dialog ~title:"Use File" ~filename:(!current_dir ^ "/") () ~callback:
-       begin fun name ->
-         current_dir := Filename.dirname name;
-         if Filename.check_suffix name ".ml" then
-           let cmd = "#use \"" ^ name ^ "\";;\n" in
-           sh#insert cmd;
-           sh#send cmd
-       end
-    end;
-  f#add_item "Load..." ~callback:
-    begin fun () ->
-      File.dialog ~title:"Load File" ~filename:(!current_dir ^ "/") () ~callback:
-       begin fun name ->
-         current_dir := Filename.dirname name;
-         if Filename.check_suffix name ".cmo" or
-           Filename.check_suffix name ".cma"
-         then
-           let cmd = Printf.sprintf "#load \"%s\";;\n" name in
-           sh#insert cmd;
-           sh#send cmd
-       end
-    end;
-  f#add_item "Import path" ~callback:
-    begin fun () ->
-      List.iter (List.rev !Config.load_path)
-       ~f:(fun dir -> sh#send (sprintf "#directory \"%s\";;\n" dir))
-    end;
-  f#add_item "Close" ~key:_W ~callback:tl#destroy;
-
-  let h = new GMenu.factory history_menu ~accel_group ~accel_modi:[`MOD1] in
-  h#add_item "Previous" ~key:_P ~callback:(fun () -> sh#history `previous);
-  h#add_item "Next" ~key:_N ~callback:(fun () -> sh#history `next);
-  let s = new GMenu.factory signal_menu ~accel_group in
-  s#add_item "Interrupt" ~key:_G ~callback:sh#interrupt;
-  s#add_item "Kill" ~callback:sh#kill;
-  shells := (title, sh) :: !shells;
-  tl#add_accel_group accel_group;
-  tl#show ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/text.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/text.ml
deleted file mode 100644 (file)
index 729f310..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-(* $Id$ *)
-
-open GEdit
-
-let line_start ?pos (text : GEdit.text) =
-  let pos = Gaux.default text#position ~opt:pos in
-  if pos = 0 then 0 else
-  let start = max 0 (pos-256) in
-  let buffer = text#get_chars ~start ~stop:pos in
-  try start + String.rindex buffer '\n' with Not_found -> 0
-
-let line_end ?pos (text : GEdit.text) =
-  let pos = Gaux.default text#position ~opt:pos in
-  if pos = text#length then text#length else
-  let buffer = text#get_chars ~start:pos ~stop:(min text#length (pos+256)) in
-  try pos + String.index buffer '\n' with Not_found -> text#length
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/useunix.ml
deleted file mode 100644 (file)
index c4860a8..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-(* $Id$ *)
-
-open Unix
-
-let get_files_in_directory dir =
-  try
-  let dirh = opendir dir in
-  let rec get_them () =
-    try
-      let x = readdir dirh in
-      x :: get_them ()
-    with
-      _ -> closedir dirh; [] 
-  in
-    Sort.list ~order:(<) (get_them ())
-  with Unix_error _ -> []
-
-let is_directory name =
-  try
-    (stat name).st_kind = S_DIR
-  with _ -> false
-
-let get_directories_in_files ~path =
-  List.filter ~pred:(fun x -> is_directory  (path ^ "/" ^ x))
-
-(************************************************** Subshell call *)
-let subshell ~cmd =
-  let rc = open_process_in ~cmd in
-  let rec it () =
-    try 
-      let x = input_line rc in x :: it ()
-    with _ -> []
-  in 
-  let answer = it () in
-  close_process_in rc;
-  answer
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/widgets.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/widgets.ml
deleted file mode 100644 (file)
index c27ca9f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-(* $Id$ *)
-
-open GObj
-
-class multibox ~rows ~columns ?(row_view = rows) ?(col_view = columns)
-    ?packing ?show () =
-  let sw =
-    GBin.scrolled_window ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC
-      ?show ?packing () in
-  let vp = GBin.viewport ~shadow_type:`NONE ~packing:sw#add in
-  let table =
-    GPack.table ~columns ~rows ~homogeneous:true ~packing:vp#add () in
-  let buttons =
-    Array.init ~len:columns
-      ~f:(fun left -> Array.init ~len:rows
-         ~f:(fun top -> GButton.button
-              ~packing:(table#attach ~top ~left ~expand:`BOTH)))
-  in
-  object (self)
-    inherit widget sw#as_widget
-    method cell ~col ~row = buttons.(col).(row)
-    initializer
-      let id = ref None in
-      id := Some
-         (sw#event#connect#expose ~after:true ~callback:
-            begin fun _ ->
-              may !id ~f:sw#connect#disconnect;
-              let height = table#misc#allocation.height * row_view / rows
-              and width = table#misc#allocation.width * col_view / columns in
-              vp#misc#set_size ~height ~width;
-              false
-            end);
-      table#focus#set_vadjustment vp#vadjustment
-  end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/.cvsignore
deleted file mode 100644 (file)
index a2d75da..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.depend radtest
-*_parser.ml *_parser.mli
-*_lexer.ml
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/CHANGES b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/CHANGES
deleted file mode 100644 (file)
index e87fc0a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-$Id$
-
-2000.05.15
-  * suppressed treew.ml; replaced by ti*.ml
-  * new widgets
-  * less known bugs  (Hubert)
-1999.10.28
-  * re-objectified property.ml
-  * split it into common.mli/property.ml/propwin.ml
-  * undo is back
-  * restructure menu code in main.ml
-
-1999.10.27
-  * simplified property.ml, and corrected treew.ml accordingly.
-    undo is temporarily disabled.
-    (Jacques)
\ No newline at end of file
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/Makefile b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/Makefile
deleted file mode 100644 (file)
index 175eca9..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-# $Id$
-# Makefile for lablgtk.
-
-all: radtest
-
-CAMLC = ocamlc
-CAMLOPT = ocamlopt
-COMPILER = $(CAMLC) $(MLFLAGS) -c
-LINKER = $(CAMLC) $(MLFLAGS)
-COMPOPT = $(CAMLOPT) $(MLFLAGS) -c
-LINKOPT = $(CAMLOPT) $(MLFLAGS)
-
-RANLIB = ranlib
-
-include ../../config.make
-
-MLFLAGS = -I ../.. -w s -labels
-
-ifdef DEBUG
-CFLAGS = -g $(GTKCFLAGS)
-MLFLAGS += -g
-else
-CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS)
-endif
-
-ifdef USE_CC
-CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS)
-else
-CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)"
-endif
-
-
-# Rules
-.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def
-.c.o:
-       $(CCOMPILER) $<
-.ml.cmo:
-       $(COMPILER) $<
-.mli.cmi:
-       $(COMPILER) $<
-.ml.cmx:
-       $(COMPOPT) $<
-
-# Targets
-MLOBJS = utils.cmo property.cmo propwin.cmo \
-       load_parser.cmo load_lexer.cmo tiBase.cmo tiContainer.cmo tiBin.cmo \
-       tiButton.cmo tiEdit.cmo tiList.cmo tiMisc.cmo tiPack.cmo tiWindow.cmo \
-       tiWidget.cmo main.cmo
-
-MLSRC = common.mli utils.ml property.mli property.ml propwin.mli \
-       propwin.ml \
-       load_parser.ml load_lexer.ml tiBase.ml tiContainer.ml tiBin.ml \
-       tiButton.ml tiEdit.ml tiList.ml tiMisc.ml tiPack.ml tiWindow.ml \
-       tiWidget.ml main.ml
-
-radtest: $(MLOBJS)  libgtk2.a gtk2.cma
-       $(LINKER) -o $@ lablgtk.cma gtkInit.cmo -I . gtk2.cma \
-           $(MLOBJS)
-
-radtestopt: $(MLOBJS:.cmo=.cmx) libgtk2.a gtk2.cmxa
-       $(LINKOPT) -o $@ lablgtk.cmxa gtkInit.cmx -I . gtk2.cmxa \
-           $(MLOBJS:.cmo=.cmx)
-
-%.mli %.ml: %.mly
-       ocamlyacc $<
-
-%.ml: %.mll
-       ocamllex $<
-
-libgtk2.a: gtktree2.o gtktreeitem2.o ml_gtk2.o
-       ar rc $@ gtktree2.o gtktreeitem2.o ml_gtk2.o
-       $(RANLIB) $@
-
-gtk2.cma: gtkTree2.cmo gTree2.cmo gToolbar2.cmo libgtk2.a
-       $(LINKER) -a -o $@ gtkTree2.cmo gTree2.cmo gToolbar2.cmo -cclib -lgtk2
-
-gtk2.cmxa: gtkTree2.cmx gTree2.cmx gToolbar2.cmx libgtk2.a
-       $(LINKOPT) -a -o $@ gtkTree2.cmx gTree2.cmx gToolbar2.cmx -cclib -lgtk2
-
-clean:
-       rm -f *.cm* *.o *.a radtest *_parser.ml *_parser.mli *_lexer.ml
-
-.depend: $(MLSRC) load_parser.ml load_lexer.ml
-       ocamldep $(MLSRC) load_parser.ml* load_lexer.ml* > .depend
-
-include .depend
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/README
deleted file mode 100644 (file)
index aedd81f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-       Lablgtk RADTEST
-
-Author: Hubert Fauque, hubert.fauque@inria.fr
-
-This is an experimental R.A.D. for Lablgtk.
-You can compile it simply by make.
-
-
-When radtest starts a new empty project is open;
-you can add new windows to this project by clicking on
-the window icon at the top of the icons window;
-
-by clicking on an item in the tree window with the third button
-you can add or remove widgets;
-you can also drag widgets from the icons window and drop them
-on the tree;
-
-when a widget is selected (click on it in the tree) you can
-move it up or down (if its parent is a box) with CTRL-up_arrow
-or CTRL-down_arrow; with up_arrow and down_arrow you select
-the widget which is above or below the currently selected widget;
-
-Save the project by Project->Save, and load an already existing
-project by Project->Open.
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/aspectframe.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/aspectframe.xpm
deleted file mode 100644 (file)
index 66b9ca1..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *aspectframe_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++   + +++++++++++",
-"+...X X X   X......O+",
-"+.OOX   X X XOOOOO.O+",
-"+.OXX X X   XXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXX.XXXXXXX.O+",
-"+.OXXXXXX...XXXXXX.O+",
-"+.OXXXXX.X.X.XXXXX.O+",
-"+.OXXXXXXX.XXXXXXX.O+",
-"+.OXX.XXXX.XXXX.XX.O+",
-"+.OX.XXXXX.XXXXX.X.O+",
-"+.O................O+",
-"+.OX.XXXXX.XXXXX.X.O+",
-"+.OXX.XXXX.XXXX.XX.O+",
-"+.OXXXXX.X.X.XXXXX.O+",
-"+.OXXXXXX...XXXXXX.O+",
-"+.OXXXXXXX.XXXXXXX.O+",
-"+..................O+",
-"+OOOOOOOOOOOOOOOOOOO+",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/button.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/button.xpm
deleted file mode 100644 (file)
index 62ebc30..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *button_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+OOOOOOOOOOOOOOOOOO +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXX   XXX XXX XX. +",
-"+OXX XXX XX XX XXX. +",
-"+OXX XXX XX X XXXX. +",
-"+OXX XXX XX  XXXXX. +",
-"+OXX XXX XX X XXXX. +",
-"+OXX XXX XX XX XXX. +",
-"+OXXX   XXX XXX XX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+O................. +",
-"+                   +",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/checkbutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/checkbutton.xpm
deleted file mode 100644 (file)
index 314ba97..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *checkbutton_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++OOOOOOOOOOO+++++",
-"+++++OXXXXXXXXX +++++",
-"+++++OXXXXXXXX. +++++",
-"+++++OXXXXXXXX. +++++",
-"+++++OXXXXXXXX. +++++",
-"+++++OXXXXXXXX. +++++",
-"+++++OXXXXXXXX. +++++",
-"+++++OXXXXXXXX. +++++",
-"+++++OXXXXXXXX. +++++",
-"+++++OX........ +++++",
-"+++++O          +++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/clist.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/clist.xpm
deleted file mode 100644 (file)
index 2dd61e7..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* XPM */
-static char *clist_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 3 1",
-"  c Gray0",
-". c Gray87",
-"X c Gray100",
-/* pixels */
-"                     ",
-" ...... ...... ..... ",
-" ...... ...... ..... ",
-" ...... ...... ..... ",
-"                     ",
-" XXXXXX XXXXXX XXXXX ",
-" XXXXXX XXXXXX XXXXX ",
-" XXXXXX XXXXXX XXXXX ",
-"                     ",
-" XXXXXX XXXXXX XXXXX ",
-" XXXXXX XXXXXX XXXXX ",
-" XXXXXX XXXXXX XXXXX ",
-"                     ",
-" XXXXXX XXXXXX XXXXX ",
-" XXXXXX XXXXXX XXXXX ",
-" XXXXXX XXXXXX XXXXX ",
-"                     ",
-" XXXXXX XXXXXX XXXXX ",
-" XXXXXX XXXXXX XXXXX ",
-" XXXXXX XXXXXX XXXXX ",
-"                     "
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/colorselection.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/colorselection.xpm
deleted file mode 100644 (file)
index 0bb0914..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* XPM */
-static char *colorselection_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 8 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c Blue",
-"o c Green",
-"O c Red",
-"+ c #b3cece",
-"@ c Gray100",
-"# c None",
-/* pixels */
-"#####################",
-"#####################",
-"#####################",
-"#####################",
-"#####################",
-"##................###",
-"##.@@@@@@@@@@@@@@. ##",
-"##.@@@@@@@@@@@@@@. ##",
-"##.@@@@@@@@@@@@@@. ##",
-"##.@@OOOoooXXX@@@. ##",
-"##.@@OOOoooXXX@@@. ##",
-"##.@@OOOoooXXX@@@. ##",
-"##.@@OOOoooXXX@@@. ##",
-"##.@@@@@@@@@@@@@@. ##",
-"##.@@@@@@@@@@@@@@. ##",
-"##.@@@@@@@@@@@@@@. ##",
-"##................ ##",
-"###                ##",
-"#####################",
-"#####################",
-"#####################"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/combo.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/combo.xpm
deleted file mode 100644 (file)
index 3b4055b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* XPM */
-static char *combo_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 7 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray87",
-"+ c Gray100",
-"@ c None",
-/* pixels */
-"@@@@@@@@@@@@@@@@@@@@@",
-"                     ",
-" +++++++++++++ OOOOO ",
-" +++++++++++++  OOO  ",
-" +++++++++++++   O   ",
-"                     ",
-" +++++++++++++ ++++++",
-" +++++++++++++ XXXXX ",
-" +.........+++ XX XX ",
-" +++++++++++++ X   X ",
-" +++++++++++++ XXXXX ",
-" +...........+       ",
-" +++++++++++++ +++++ ",
-" +++++++++++++ +XXXX ",
-" +..........++ ..... ",
-" +++++++++++++ +++++ ",
-" +++++++++++++ XXXXX ",
-" +...........+ X   X ",
-" +++++++++++++ XX XX ",
-" +++++++++++++ XXXXX ",
-"                     "
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/common.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/common.mli
deleted file mode 100644 (file)
index 7050f9f..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-(* $Id$ *)
-
-type range =
-  |  String
-  | Int
-  | Float of float * float
-  | Enum of string list
-  | Enum_string of string list
-  | Adjust
-  | CList_titles
-  | File
-
-class type prop =
-  object
-    method name : string       (* name of the property *)
-    method range : range       (* range of its values *)
-    method get : string                (* current value *)
-    method set : string -> unit        (* change value *)
-    method modified : bool     (* value differs from default *)
-    method code : string       (* encoded value for the ml code *)
-    method save_code : string   (* encoded value for saving *)
-  end
-
-class type tiwidget_base = object
-  method name : string
-  method proplist : (string * prop) list
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/entry.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/entry.xpm
deleted file mode 100644 (file)
index cb90041..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *entry_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"....................O",
-".                  XO",
-". OOOOOOOOOOOOOOOOOXO",
-". OOOOOOOOOOOOOOO OXO",
-". OOOOOOOO OOOOOO OXO",
-". OOOOOOOO OOOOOO OXO",
-". OOO   OO X  OOO OXO",
-". OO XOX O  O. OO OXO",
-". OOOOOO O OOO OO OXO",
-". OOO    O OOO OO OXO",
-". OO XOO O OOO OO OXO",
-". OO XOO O OO. OO OXO",
-". OOO    O    OOO OXO",
-". OOOOOOOOOOOOOOO OXO",
-". OOOOOOOOOOOOOOOOOXO",
-".XXXXXXXXXXXXXXXXXXXO",
-"OOOOOOOOOOOOOOOOOOOOO",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/eventbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/eventbox.xpm
deleted file mode 100644 (file)
index 73da445..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* XPM */
-static char *eventbox_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 7 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c Blue",
-"o c #d6d6d6",
-"O c #b3cece",
-"+ c Gray100",
-"@ c None",
-/* pixels */
-"@@@@@@@@@@X+@@@@@@@@@",
-"@@@@@@@@@XX+@@@@@@@@@",
-"@@@@@@@@XX+@@@@@@@@@@",
-"@@@@@@@XX+@@@@@@@@@@@",
-"@@@@@@@@XX+@@@@@@@@@@",
-"@@@@@@@@@XX+@@@@@@@@@",
-"@@@@@@@@@@XX+@@@@@@@@",
-"@@@++++++XX++++++ @@@",
-"@@@+ooooXX+ooooo. @@@",
-"@@@+oooXX+oooooo. @@@",
-"@@@+ooooXX+ooooo. @@@",
-"@@@+oooooXX+oooo. @@@",
-"@@@+ooooooXX+ooo. @@@",
-"@@@+oooooooooooo. @@@",
-"@@@+oooooooooooo. @@@",
-"@@@+oooooooooooo. @@@",
-"@@@+............. @@@",
-"@@@               @@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/fixed.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/fixed.xpm
deleted file mode 100644 (file)
index 2e04815..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* XPM */
-static char *fixed_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 4 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c Gray100",
-/* pixels */
-"oooooooooooooooooooo ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXooooo XXXXXXXXXXX. ",
-"oXoXXX. XXXXXXXXXXX. ",
-"oXoXXX. XXXXooooo X. ",
-"oXo.... XXXXoXXX. X. ",
-"oX      XXXXoXXX. X. ",
-"oXXXXXXXXXXXo.... X. ",
-"oXXXXXXXXXXX      X. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXooooo XXXXXXXX. ",
-"oXXXXoXXX. XXXXXXXX. ",
-"oXXXXoXXX. XXXXXXXX. ",
-"oXXXXo.... XXXXXXXX. ",
-"oXXXX      XXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"o................... ",
-"                     "
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/frame.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/frame.xpm
deleted file mode 100644 (file)
index c8c8b57..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *frame_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++   + +++++++++++",
-"+...X X X   X......O+",
-"+.OOX   X X XOOOOO.O+",
-"+.OXX X X   XXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+.OXXXXXXXXXXXXXXX.O+",
-"+..................O+",
-"+OOOOOOOOOOOOOOOOOOO+",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gToolbar2.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gToolbar2.ml
deleted file mode 100644 (file)
index c2ad0a8..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkButton
-open GObj
-open GContainer
-open GButton
-
-module Toolbar2 = struct
-  external set_text : [>`toolbar] obj -> string -> int -> unit =
-    "ml_gtk_toolbar2_set_text"
-  external set_icon : [>`toolbar] obj -> [>`widget] obj -> int -> unit =
-    "ml_gtk_toolbar2_set_icon"
-end
-
-class toolbar2 obj = object
-  inherit container_full (obj : Gtk.toolbar obj)
-  method insert_widget ?tooltip ?tooltip_private ?pos w =
-    Toolbar.insert_widget obj (as_widget w) ?tooltip ?tooltip_private ?pos
-
-  method insert_button ?text ?tooltip ?tooltip_private ?icon
-      ?pos ?callback () =
-    let icon = may_map icon ~f:as_widget in
-    new button
-      (Toolbar.insert_button obj ~kind:`BUTTON ?icon ?text
-        ?tooltip ?tooltip_private ?pos ?callback ())
-
-  method insert_toggle_button ?text ?tooltip ?tooltip_private ?icon
-      ?pos ?callback () =
-    let icon = may_map icon ~f:as_widget in
-    new toggle_button
-      (ToggleButton.cast
-        (Toolbar.insert_button obj ~kind:`TOGGLEBUTTON ?icon ?text
-           ?tooltip ?tooltip_private ?pos ?callback ()))
-
-  method insert_radio_button ?text ?tooltip ?tooltip_private ?icon
-      ?pos ?callback () =
-    let icon = may_map icon ~f:as_widget in
-    new radio_button
-      (RadioButton.cast
-        (Toolbar.insert_button obj ~kind:`RADIOBUTTON ?icon ?text
-           ?tooltip ?tooltip_private ?pos ?callback ()))
-
-  method insert_space = Toolbar.insert_space obj
-
-  method set_orientation = Toolbar.set_orientation obj
-  method set_style = Toolbar.set_style obj
-  method set_space_size = Toolbar.set_space_size obj
-  method set_space_style = Toolbar.set_space_style obj
-  method set_tooltips = Toolbar.set_tooltips obj
-  method set_button_relief = Toolbar.set_button_relief obj
-  method button_relief = Toolbar.get_button_relief obj
-  method set_text = Toolbar2.set_text obj
-  method set_icon (icon : widget) = Toolbar2.set_icon obj icon#as_widget
-end
-
-let toolbar2 ?(orientation=`HORIZONTAL) ?style
-    ?space_size ?space_style ?tooltips ?button_relief
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Toolbar.create orientation ?style () in
-  Toolbar.set w ?space_size ?space_style ?tooltips ?button_relief;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new toolbar2 w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.ml
deleted file mode 100644 (file)
index 62c38ac..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkTree2
-open GObj
-open GContainer
-
-class tree_item_signals obj = object
-  inherit item_signals obj
-  method expand = GtkSignal.connect obj ~sgn:TreeItem.Signals.expand ~after
-  method collapse = GtkSignal.connect obj ~sgn:TreeItem.Signals.collapse ~after
-end
-
-class tree_item obj = object
-  inherit container obj
-  method event = new GObj.event_ops obj
-  method as_item : Gtk.tree_item obj = obj
-  method connect = new tree_item_signals obj
-  method set_subtree (w : tree) = TreeItem.set_subtree obj w#as_tree
-  method remove_subtree () = TreeItem.remove_subtree obj
-  method expand () = TreeItem.expand obj
-  method collapse () = TreeItem.collapse obj
-  method subtree =
-    try Some(new tree (TreeItem.subtree obj)) with Gpointer.Null -> None
-end
-
-and tree_signals obj = object
-  inherit container_signals obj
-  method selection_changed =
-    GtkSignal.connect obj ~sgn:Tree.Signals.selection_changed ~after
-  method select_child ~callback =
-    GtkSignal.connect obj ~sgn:Tree.Signals.select_child ~after
-      ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) 
-  method unselect_child ~callback =
-    GtkSignal.connect obj ~sgn:Tree.Signals.unselect_child ~after
-      ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) 
-end
-
-and tree obj = object (self)
-  inherit [tree_item] item_container obj
-  method event = new GObj.event_ops obj
-  method as_tree = Tree.coerce obj
-  method insert w ~pos = Tree.insert obj w#as_item ~pos
-  method connect = new tree_signals obj
-  method clear_items = Tree.clear_items obj
-  method select_item = Tree.select_item obj
-  method unselect_item = Tree.unselect_item obj
-  method child_position (w : tree_item) = Tree.child_position obj w#as_item
-  method remove_items items =
-    Tree.remove_items obj
-      (List.map ~f:(fun (t : tree_item) -> t#as_item) items)
-(*  method set_selection_mode = Tree.set_selection_mode obj
-  method set_view_mode = Tree.set_view_mode obj *)
-  method set_view_lines = Tree.set_view_lines obj
-  method selection =
-    List.map ~f:(fun w -> self#wrap (Widget.coerce w)) (Tree.selection obj)
-  method item_up ~pos =
-    Tree.item_up obj pos
-  method private wrap w =
-    new tree_item (TreeItem.cast w)
-end
-
-let tree_item ?label ?border_width ?width ?height ?packing ?show () =
-  let w = TreeItem.create ?label () in
-  Container.set w ?border_width ?width ?height;
-  let self = new tree_item w in
-  may packing ~f:(fun f -> (f self : unit));
-  if show <> Some false then self#misc#show ();
-  self
-
-let tree ?selection_mode ?view_mode ?view_lines
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Tree.create () in
-  Tree.set w ?selection_mode ?view_mode ?view_lines;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new tree w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gTree2.mli
deleted file mode 100644 (file)
index c288e15..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-open GContainer
-
-class tree_item_signals : 'a obj ->
-  object
-    inherit item_signals
-    constraint 'a = [>`treeitem|`container|`item|`widget]
-    val obj : 'a obj
-    method collapse : callback:(unit -> unit) -> GtkSignal.id
-    method expand : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class tree_item : Gtk.tree_item obj ->
-  object
-    inherit GContainer.container
-    val obj : Gtk.tree_item obj
-    method event : event_ops
-    method as_item : Gtk.tree_item obj
-    method collapse : unit -> unit
-    method connect : tree_item_signals
-    method expand : unit -> unit
-    method remove_subtree : unit -> unit
-    method set_subtree : tree -> unit
-    method subtree : tree option
-  end
-
-and tree_signals : Gtk.tree obj ->
-  object
-    inherit container_signals
-    val obj : Gtk.tree obj
-    method select_child : callback:(tree_item -> unit) -> GtkSignal.id
-    method selection_changed : callback:(unit -> unit) -> GtkSignal.id
-    method unselect_child : callback:(tree_item -> unit) -> GtkSignal.id
-  end
-
-and tree : Gtk.tree obj ->
-  object
-    inherit [tree_item] item_container
-    val obj : Gtk.tree obj
-    method event : event_ops
-    method as_tree : Gtk.tree obj
-    method child_position : tree_item -> int
-    method clear_items : start:int -> stop:int -> unit
-    method connect : tree_signals
-    method insert : tree_item -> pos:int -> unit
-    method item_up : pos:int -> unit
-    method remove_items : tree_item list -> unit
-    method select_item : pos:int -> unit
-    method selection : tree_item list
-(*    method set_selection_mode : Tags.selection_mode -> unit *)
-    method set_view_lines : bool -> unit
-(*    method set_view_mode : [`LINE|`ITEM] -> unit *)
-    method unselect_item : pos:int -> unit
-    method private wrap : Gtk.widget obj -> tree_item
-  end
-
-val tree_item :
-  ?label:string ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(tree_item -> unit) -> ?show:bool -> unit -> tree_item
-
-val tree :
-  ?selection_mode:Tags.selection_mode ->
-  ?view_mode:[`LINE|`ITEM] ->
-  ?view_lines:bool ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int -> ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> tree
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml
deleted file mode 100644 (file)
index 46d1e02..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module TreeItem = struct
-  let cast w : tree_item obj =
-    if Object.is_a w "GtkTreeItem" then Obj.magic w
-    else invalid_arg "Gtk.TreeItem.cast"
-  external create : unit -> tree_item obj = "ml_gtk_tree_item2_new"
-  external create_with_label : string -> tree_item obj
-      = "ml_gtk_tree_item2_new_with_label"
-  let create ?label () =
-    match label with None -> create ()
-    | Some label -> create_with_label label
-  external set_subtree : [>`treeitem] obj -> [>`widget] obj -> unit
-      = "ml_gtk_tree_item2_set_subtree"
-  external remove_subtree : [>`treeitem] obj -> unit
-      = "ml_gtk_tree_item2_remove_subtree"
-  external expand : [>`treeitem] obj -> unit
-      = "ml_gtk_tree_item2_expand"
-  external collapse : [>`treeitem] obj -> unit
-      = "ml_gtk_tree_item2_collapse"
-  external subtree : [>`treeitem] obj -> tree obj
-      = "ml_GTK_TREE_ITEM2_SUBTREE"
-  let subtree t = try subtree t with Gpointer.Null -> raise Not_found
-  module Signals = struct
-    open GtkSignal
-    let expand : ([>`treeitem],_) t =
-      { name = "expand"; marshaller = marshal_unit }
-    let collapse : ([>`treeitem],_) t =
-      { name = "collapse"; marshaller = marshal_unit }
-  end
-end
-
-module Tree = struct
-  let cast w : tree obj =
-    if Object.is_a w "GtkTree" then Obj.magic w
-    else invalid_arg "Gtk.Tree.cast"
-  external coerce : [>`tree] obj -> tree obj = "%identity"
-  external create : unit -> tree obj = "ml_gtk_tree2_new"
-  external insert : [>`tree] obj -> [>`treeitem] obj -> pos:int -> unit
-      = "ml_gtk_tree2_insert"
-  external remove_items : [>`tree] obj -> [>`treeitem] obj list -> unit
-      = "ml_gtk_tree2_remove_items"
-  external clear_items : [>`tree] obj -> start:int -> stop:int -> unit
-      = "ml_gtk_tree2_clear_items"
-  external select_item : [>`tree] obj -> pos:int -> unit
-      = "ml_gtk_tree2_select_item"
-  external unselect_item : [>`tree] obj -> pos:int -> unit
-      = "ml_gtk_tree2_unselect_item"
-  external child_position : [>`tree] obj -> [>`treeitem] obj -> int
-      = "ml_gtk_tree2_child_position"
-(*  external set_selection_mode : [>`tree] obj -> selection_mode -> unit
-      = "ml_gtk_tree2_set_selection_mode"
-  external set_view_mode : [>`tree] obj -> [`LINE|`ITEM] -> unit
-      = "ml_gtk_tree2_set_view_mode"
-*)
-  external set_view_lines : [>`tree] obj -> bool -> unit
-      = "ml_gtk_tree2_set_view_lines"
-  external selection : [>`tree] obj -> tree_item obj list =
-    "ml_gtk_tree2_selection"
-  external item_up : [>`tree] obj -> int -> unit =
-    "ml_gtk_tree2_item_up"
-
-  let set ?selection_mode ?view_mode ?view_lines w =
-    let may_set f = may ~f:(f w) in
-(*    may_set set_selection_mode selection_mode;
-    may_set set_view_mode view_mode; *)
-    may_set set_view_lines view_lines
-  module Signals = struct
-    open GtkSignal
-    let selection_changed : ([>`tree],_) t =
-      { name = "selection_changed"; marshaller = marshal_unit }
-    let select_child : ([>`tree],_) t =
-      { name = "select_child"; marshaller = Widget.Signals.marshal }
-    let unselect_child : ([>`tree],_) t =
-      { name = "unselect_child"; marshaller = Widget.Signals.marshal }
-  end
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.c
deleted file mode 100644 (file)
index db37a1f..0000000
+++ /dev/null
@@ -1,1385 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#include "gtktree2.h"
-#include "gtktreeitem2.h"
-
-#include <gtk/gtkmain.h>
-#include <gtk/gtksignal.h>
-#include <gtk/gtklist.h>
-
-enum {
-  SELECTION_CHANGED,
-  SELECT_CHILD,
-  UNSELECT_CHILD,
-  LAST_SIGNAL
-};
-
-static void gtk_tree2_class_init      (GtkTree2Class   *klass);
-static void gtk_tree2_init            (GtkTree2        *tree);
-static void gtk_tree2_destroy         (GtkObject      *object);
-static void gtk_tree2_map             (GtkWidget      *widget);
-static void gtk_tree2_unmap           (GtkWidget      *widget);
-static void gtk_tree2_realize         (GtkWidget      *widget);
-static void gtk_tree2_draw            (GtkWidget      *widget,
-                                     GdkRectangle   *area);
-static gint gtk_tree2_expose          (GtkWidget      *widget,
-                                     GdkEventExpose *event);
-static gint gtk_tree2_motion_notify   (GtkWidget      *widget,
-                                     GdkEventMotion *event);
-static gint gtk_tree2_button_press    (GtkWidget      *widget,
-                                     GdkEventButton *event);
-static gint gtk_tree2_button_release  (GtkWidget      *widget,
-                                     GdkEventButton *event);
-static void gtk_tree2_size_request    (GtkWidget      *widget,
-                                     GtkRequisition *requisition);
-static void gtk_tree2_size_allocate   (GtkWidget      *widget,
-                                     GtkAllocation  *allocation);
-static void gtk_tree2_add             (GtkContainer   *container,
-                                     GtkWidget      *widget);
-static void gtk_tree2_forall          (GtkContainer   *container,
-                                     gboolean        include_internals,
-                                     GtkCallback     callback,
-                                     gpointer        callback_data);
-
-static void gtk_real_tree2_select_child   (GtkTree2       *tree,
-                                         GtkWidget     *child);
-static void gtk_real_tree2_unselect_child (GtkTree2       *tree,
-                                         GtkWidget     *child);
-
-static GtkType gtk_tree2_child_type  (GtkContainer   *container);
-
-static GtkContainerClass *parent_class = NULL;
-static guint tree_signals[LAST_SIGNAL] = { 0 };
-
-GtkType
-gtk_tree2_get_type (void)
-{
-  static GtkType tree_type = 0;
-  
-  if (!tree_type)
-    {
-      static const GtkTypeInfo tree_info =
-      {
-       "GtkTree2",
-       sizeof (GtkTree2),
-       sizeof (GtkTree2Class),
-       (GtkClassInitFunc) gtk_tree2_class_init,
-       (GtkObjectInitFunc) gtk_tree2_init,
-       /* reserved_1 */ NULL,
-        /* reserved_2 */ NULL,
-        (GtkClassInitFunc) NULL,
-      };
-      
-      tree_type = gtk_type_unique (gtk_container_get_type (), &tree_info);
-    }
-  
-  return tree_type;
-}
-
-static void
-gtk_tree2_class_init (GtkTree2Class *class)
-{
-  GtkObjectClass *object_class;
-  GtkWidgetClass *widget_class;
-  GtkContainerClass *container_class;
-  
-  object_class = (GtkObjectClass*) class;
-  widget_class = (GtkWidgetClass*) class;
-  container_class = (GtkContainerClass*) class;
-  
-  parent_class = gtk_type_class (gtk_container_get_type ());
-  
-  tree_signals[SELECTION_CHANGED] =
-    gtk_signal_new ("selection_changed",
-                   GTK_RUN_FIRST,
-                   object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkTree2Class, selection_changed),
-                   gtk_marshal_NONE__NONE,
-                   GTK_TYPE_NONE, 0);
-  tree_signals[SELECT_CHILD] =
-    gtk_signal_new ("select_child",
-                   GTK_RUN_FIRST,
-                   object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkTree2Class, select_child),
-                   gtk_marshal_NONE__POINTER,
-                   GTK_TYPE_NONE, 1,
-                   GTK_TYPE_WIDGET);
-  tree_signals[UNSELECT_CHILD] =
-    gtk_signal_new ("unselect_child",
-                   GTK_RUN_FIRST,
-                   object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkTree2Class, unselect_child),
-                   gtk_marshal_NONE__POINTER,
-                   GTK_TYPE_NONE, 1,
-                   GTK_TYPE_WIDGET);
-  
-  gtk_object_class_add_signals (object_class, tree_signals, LAST_SIGNAL);
-  
-  object_class->destroy = gtk_tree2_destroy;
-  
-  widget_class->map = gtk_tree2_map;
-  widget_class->unmap = gtk_tree2_unmap;
-  widget_class->realize = gtk_tree2_realize;
-  widget_class->draw = gtk_tree2_draw;
-  widget_class->expose_event = gtk_tree2_expose;
-  widget_class->motion_notify_event = gtk_tree2_motion_notify;
-  widget_class->button_press_event = gtk_tree2_button_press;
-  widget_class->button_release_event = gtk_tree2_button_release;
-  widget_class->size_request = gtk_tree2_size_request;
-  widget_class->size_allocate = gtk_tree2_size_allocate;
-  
-  container_class->add = gtk_tree2_add;
-  container_class->remove = 
-    (void (*)(GtkContainer *, GtkWidget *)) gtk_tree2_remove_item;
-  container_class->forall = gtk_tree2_forall;
-  container_class->child_type = gtk_tree2_child_type;
-  
-  class->selection_changed = NULL;
-  class->select_child = gtk_real_tree2_select_child;
-  class->unselect_child = gtk_real_tree2_unselect_child;
-}
-
-static GtkType
-gtk_tree2_child_type (GtkContainer     *container)
-{
-  return GTK_TYPE_TREE_ITEM2;
-}
-
-static void
-gtk_tree2_init (GtkTree2 *tree)
-{
-  tree->children = NULL;
-  tree->root_tree = NULL;
-  tree->selection = NULL;
-  tree->tree_owner = NULL;
-  tree->selection_mode = GTK_SELECTION_SINGLE;
-  tree->indent_value = 9;
-  tree->current_indent = 0;
-  tree->level = 0;
-  tree->view_mode = GTK_TREE2_VIEW_LINE;
-  tree->view_line = 1;
-}
-
-GtkWidget*
-gtk_tree2_new (void)
-{
-  return GTK_WIDGET (gtk_type_new (gtk_tree2_get_type ()));
-}
-
-void
-gtk_tree2_append (GtkTree2   *tree,
-                GtkWidget *tree_item)
-{
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  
-  gtk_tree2_insert (tree, tree_item, -1);
-}
-
-void
-gtk_tree2_prepend (GtkTree2   *tree,
-                 GtkWidget *tree_item)
-{
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  
-  gtk_tree2_insert (tree, tree_item, 0);
-}
-
-void
-gtk_tree2_insert (GtkTree2   *tree,
-                GtkWidget *tree_item,
-                gint       position)
-{
-  gint nchildren;
-  
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  
-  nchildren = g_list_length (tree->children);
-  
-  if ((position < 0) || (position > nchildren))
-    position = nchildren;
-  
-  if (position == nchildren)
-    tree->children = g_list_append (tree->children, tree_item);
-  else
-    tree->children = g_list_insert (tree->children, tree_item, position);
-  
-  gtk_widget_set_parent (tree_item, GTK_WIDGET (tree));
-  
-  if (GTK_WIDGET_REALIZED (tree_item->parent))
-    gtk_widget_realize (tree_item);
-
-  if (GTK_WIDGET_VISIBLE (tree_item->parent) && GTK_WIDGET_VISIBLE (tree_item))
-    {
-      if (GTK_WIDGET_MAPPED (tree_item->parent))
-       gtk_widget_map (tree_item);
-
-      gtk_widget_queue_resize (tree_item);
-    }
-}
-
-/* moves the pos child up in the tree */
-void
-gtk_tree2_item_up (GtkTree2   *tree,
-                gint       position)
-{
-  gint nchildren, i;
-  GList *children, *tmp;
-  
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  
-  children = (tree->children);
-  nchildren = g_list_length (tree->children);
-  
-  if ((position < 1) || (position >= nchildren))
-    return;
-  
-  for (i=1; i < position; i++)
-    children = (children->next);
-
-  tmp = children->next;
-  if (position == 1)
-    {
-      tree->children = children->next;
-      children->next->prev = NULL;
-    }
-  else
-    {
-      children->prev->next = children->next;
-      children->next->prev = children->prev;
-    }
-  children->next = tmp->next;
-  children->prev = tmp;
-  if (tmp->next)
-      tmp->next->prev = children;
-  tmp->next = children;
-  
-  if (GTK_WIDGET_VISIBLE (tree))
-    {
-/*      if (GTK_WIDGET_VISIBLE (GTK_WIDGET(children->data)))
-       gtk_widget_queue_resize (GTK_WIDGET(children->data));
-      if (GTK_WIDGET_VISIBLE (GTK_WIDGET(tmp->data)))
-       gtk_widget_queue_resize (GTK_WIDGET(tmp->data));
-*/
-      gtk_widget_queue_resize (GTK_WIDGET(tree));
-    }
-}
-
-static void
-gtk_tree2_add (GtkContainer *container,
-             GtkWidget    *child)
-{
-  GtkTree2 *tree;
-  
-  g_return_if_fail (container != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (container));
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (child));
-  
-  tree = GTK_TREE2 (container);
-  
-  tree->children = g_list_append (tree->children, child);
-  
-  gtk_widget_set_parent (child, GTK_WIDGET (container));
-  
-  if (GTK_WIDGET_REALIZED (child->parent))
-    gtk_widget_realize (child);
-
-  if (GTK_WIDGET_VISIBLE (child->parent) && GTK_WIDGET_VISIBLE (child))
-    {
-      if (GTK_WIDGET_MAPPED (child->parent))
-       gtk_widget_map (child);
-
-      gtk_widget_queue_resize (child);
-    }
-  
-  if (!tree->selection && (tree->selection_mode == GTK_SELECTION_BROWSE))
-    gtk_tree2_select_child (tree, child);
-}
-
-static gint
-gtk_tree2_button_press (GtkWidget      *widget,
-                      GdkEventButton *event)
-{
-  GtkTree2 *tree;
-  GtkWidget *item;
-  
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-  
-  tree = GTK_TREE2 (widget);
-  item = gtk_get_event_widget ((GdkEvent*) event);
-  
-  while (item && !GTK_IS_TREE_ITEM2 (item))
-    item = item->parent;
-  
-  if (!item || (item->parent != widget))
-    return FALSE;
-  
-  switch(event->button) 
-    {
-    case 1:
-      gtk_tree2_select_child (tree, item);
-      break;
-    case 2:
-      if(GTK_TREE_ITEM2(item)->subtree) gtk_tree_item2_expand(GTK_TREE_ITEM2(item));
-      break;
-    case 3:
-      if(GTK_TREE_ITEM2(item)->subtree) gtk_tree_item2_collapse(GTK_TREE_ITEM2(item));
-      break;
-    }
-  
-  return TRUE;
-}
-
-static gint
-gtk_tree2_button_release (GtkWidget      *widget,
-                        GdkEventButton *event)
-{
-  GtkTree2 *tree;
-  GtkWidget *item;
-  
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-  
-  tree = GTK_TREE2 (widget);
-  item = gtk_get_event_widget ((GdkEvent*) event);
-  
-  return TRUE;
-}
-
-gint
-gtk_tree2_child_position (GtkTree2   *tree,
-                        GtkWidget *child)
-{
-  GList *children;
-  gint pos;
-  
-  
-  g_return_val_if_fail (tree != NULL, -1);
-  g_return_val_if_fail (GTK_IS_TREE2 (tree), -1);
-  g_return_val_if_fail (child != NULL, -1);
-  
-  pos = 0;
-  children = tree->children;
-  
-  while (children)
-    {
-      if (child == GTK_WIDGET (children->data)) 
-       return pos;
-      
-      pos += 1;
-      children = children->next;
-    }
-  
-  
-  return -1;
-}
-
-void
-gtk_tree2_clear_items (GtkTree2 *tree,
-                     gint     start,
-                     gint     end)
-{
-  GtkWidget *widget;
-  GList *clear_list;
-  GList *tmp_list;
-  guint nchildren;
-  guint index;
-  
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  
-  nchildren = g_list_length (tree->children);
-  
-  if (nchildren > 0)
-    {
-      if ((end < 0) || (end > nchildren))
-       end = nchildren;
-      
-      if (start >= end)
-       return;
-      
-      tmp_list = g_list_nth (tree->children, start);
-      clear_list = NULL;
-      index = start;
-      while (tmp_list && index <= end)
-       {
-         widget = tmp_list->data;
-         tmp_list = tmp_list->next;
-         index++;
-         
-         clear_list = g_list_prepend (clear_list, widget);
-       }
-      
-      gtk_tree2_remove_items (tree, clear_list);
-    }
-}
-
-static void
-gtk_tree2_destroy (GtkObject *object)
-{
-  GtkTree2 *tree;
-  GtkWidget *child;
-  GList *children;
-  
-  g_return_if_fail (object != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (object));
-  
-  tree = GTK_TREE2 (object);
-  
-  children = tree->children;
-  while (children)
-    {
-      child = children->data;
-      children = children->next;
-      
-      gtk_widget_ref (child);
-      gtk_widget_unparent (child);
-      gtk_widget_destroy (child);
-      gtk_widget_unref (child);
-    }
-  
-  g_list_free (tree->children);
-  tree->children = NULL;
-  
-  if (tree->root_tree == tree)
-    {
-      GList *node;
-      for (node = tree->selection; node; node = node->next)
-       gtk_widget_unref ((GtkWidget *)node->data);
-      g_list_free (tree->selection);
-      tree->selection = NULL;
-    }
-  
-  if (GTK_OBJECT_CLASS (parent_class)->destroy)
-    (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-static void
-gtk_tree2_draw (GtkWidget    *widget,
-              GdkRectangle *area)
-{
-  GtkTree2 *tree;
-  GtkWidget *subtree;
-  GtkWidget *child;
-  GdkRectangle child_area;
-  GList *children;
-  
-  
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (widget));
-  g_return_if_fail (area != NULL);
-  
-  if (GTK_WIDGET_DRAWABLE (widget))
-    {
-      tree = GTK_TREE2 (widget);
-      
-      children = tree->children;
-      while (children)
-       {
-         child = children->data;
-         children = children->next;
-         
-         if (gtk_widget_intersect (child, area, &child_area))
-           gtk_widget_draw (child, &child_area);
-         
-         if((subtree = GTK_TREE_ITEM2(child)->subtree) &&
-            GTK_WIDGET_VISIBLE(subtree) &&
-            gtk_widget_intersect (subtree, area, &child_area))
-           gtk_widget_draw (subtree, &child_area);
-       }
-    }
-  
-}
-
-static gint
-gtk_tree2_expose (GtkWidget      *widget,
-                GdkEventExpose *event)
-{
-  GtkTree2 *tree;
-  GtkWidget *child;
-  GdkEventExpose child_event;
-  GList *children;
-  
-  
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-  
-  if (GTK_WIDGET_DRAWABLE (widget))
-    {
-      tree = GTK_TREE2 (widget);
-      
-      child_event = *event;
-      
-      children = tree->children;
-      while (children)
-       {
-         child = children->data;
-         children = children->next;
-         
-         if (GTK_WIDGET_NO_WINDOW (child) &&
-             gtk_widget_intersect (child, &event->area, &child_event.area))
-           gtk_widget_event (child, (GdkEvent*) &child_event);
-       }
-    }
-  
-  
-  return FALSE;
-}
-
-static void
-gtk_tree2_forall (GtkContainer *container,
-                gboolean      include_internals,
-                GtkCallback   callback,
-                gpointer      callback_data)
-{
-  GtkTree2 *tree;
-  GtkWidget *child;
-  GList *children;
-  
-  
-  g_return_if_fail (container != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (container));
-  g_return_if_fail (callback != NULL);
-  
-  tree = GTK_TREE2 (container);
-  children = tree->children;
-  
-  while (children)
-    {
-      child = children->data;
-      children = children->next;
-
-      (* callback) (child, callback_data);
-
-      if (include_internals && GTK_TREE_ITEM2(child)->subtree)
-      (* callback) (GTK_TREE_ITEM2(child)->subtree, callback_data);
-    }
-}
-
-static void
-gtk_tree2_map (GtkWidget *widget)
-{
-  GtkTree2 *tree;
-  GtkWidget *child;
-  GList *children;
-  
-  
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (widget));
-  
-  GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
-  tree = GTK_TREE2 (widget);
-  
-  if(GTK_IS_TREE2(widget->parent)) 
-    {
-      /* set root tree for this tree */
-      tree->root_tree = GTK_TREE2(widget->parent)->root_tree;
-      
-      tree->level = GTK_TREE2(GTK_WIDGET(tree)->parent)->level+1;
-      tree->indent_value = GTK_TREE2(GTK_WIDGET(tree)->parent)->indent_value;
-      tree->current_indent = GTK_TREE2(GTK_WIDGET(tree)->parent)->current_indent + 
-       tree->indent_value;
-      tree->view_mode = GTK_TREE2(GTK_WIDGET(tree)->parent)->view_mode;
-      tree->view_line = GTK_TREE2(GTK_WIDGET(tree)->parent)->view_line;
-    } 
-  else
-    tree->root_tree = tree;
-  
-  children = tree->children;
-  while (children)
-    {
-      child = children->data;
-      children = children->next;
-      
-      if (GTK_WIDGET_VISIBLE (child) &&
-         !GTK_WIDGET_MAPPED (child))
-       gtk_widget_map (child);
-      
-      if (GTK_TREE_ITEM2 (child)->subtree)
-       {
-         child = GTK_WIDGET (GTK_TREE_ITEM2 (child)->subtree);
-         
-         if (GTK_WIDGET_VISIBLE (child) && !GTK_WIDGET_MAPPED (child))
-           gtk_widget_map (child);
-       }
-    }
-
-  gdk_window_show (widget->window);
-}
-
-static gint
-gtk_tree2_motion_notify (GtkWidget      *widget,
-                       GdkEventMotion *event)
-{
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE2 (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-  
-#ifdef TREE_DEBUG
-  g_message("gtk_tree2_motion_notify\n");
-#endif /* TREE_DEBUG */
-  
-  return FALSE;
-}
-
-static void
-gtk_tree2_realize (GtkWidget *widget)
-{
-  GdkWindowAttr attributes;
-  gint attributes_mask;
-  
-  
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (widget));
-  
-  GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
-  
-  attributes.window_type = GDK_WINDOW_CHILD;
-  attributes.x = widget->allocation.x;
-  attributes.y = widget->allocation.y;
-  attributes.width = widget->allocation.width;
-  attributes.height = widget->allocation.height;
-  attributes.wclass = GDK_INPUT_OUTPUT;
-  attributes.visual = gtk_widget_get_visual (widget);
-  attributes.colormap = gtk_widget_get_colormap (widget);
-  attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
-  
-  attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
-  
-  widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
-  gdk_window_set_user_data (widget->window, widget);
-  
-  widget->style = gtk_style_attach (widget->style, widget->window);
-  gdk_window_set_background (widget->window, 
-                            &widget->style->base[GTK_STATE_NORMAL]);
-}
-
-void
-gtk_tree2_remove_item (GtkTree2      *container,
-                     GtkWidget    *widget)
-{
-  GList *item_list;
-  
-  g_return_if_fail (container != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (container));
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (container == GTK_TREE2 (widget->parent));
-  
-  item_list = g_list_append (NULL, widget);
-  
-  gtk_tree2_remove_items (GTK_TREE2 (container), item_list);
-  
-  g_list_free (item_list);
-}
-
-/* used by gtk_tree2_remove_items to make the function independant of
-   order in list of items to remove.
-   Sort item bu depth in tree */
-static gint 
-gtk_tree2_sort_item_by_depth(GtkWidget* a, GtkWidget* b)
-{
-  if((GTK_TREE2(a->parent)->level) < (GTK_TREE2(b->parent)->level))
-    return 1;
-  if((GTK_TREE2(a->parent)->level) > (GTK_TREE2(b->parent)->level))
-    return -1;
-  
-  return 0;
-}
-
-void
-gtk_tree2_remove_items (GtkTree2 *tree,
-                      GList   *items)
-{
-  GtkWidget *widget;
-  GList *selected_widgets;
-  GList *tmp_list;
-  GList *sorted_list;
-  GtkTree2 *real_tree;
-  GtkTree2 *root_tree;
-  
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  
-#ifdef TREE_DEBUG
-  g_message("+ gtk_tree2_remove_items [ tree %#x items list %#x ]\n", (int)tree, (int)items);
-#endif /* TREE_DEBUG */
-  
-  /* We may not yet be mapped, so we actively have to find our
-   * root tree
-   */
-  if (tree->root_tree)
-    root_tree = tree->root_tree;
-  else
-    {
-      GtkWidget *tmp = GTK_WIDGET (tree);
-      while (tmp->parent && GTK_IS_TREE2 (tmp->parent))
-       tmp = tmp->parent;
-      
-      root_tree = GTK_TREE2 (tmp);
-    }
-  
-  tmp_list = items;
-  selected_widgets = NULL;
-  sorted_list = NULL;
-  widget = NULL;
-  
-#ifdef TREE_DEBUG
-  g_message("* sort list by depth\n");
-#endif /* TREE_DEBUG */
-  
-  while (tmp_list)
-    {
-      
-#ifdef TREE_DEBUG
-      g_message ("* item [%#x] depth [%d]\n", 
-                (int)tmp_list->data,
-                (int)GTK_TREE2(GTK_WIDGET(tmp_list->data)->parent)->level);
-#endif /* TREE_DEBUG */
-      
-      sorted_list = g_list_insert_sorted(sorted_list,
-                                        tmp_list->data,
-                                        (GCompareFunc)gtk_tree2_sort_item_by_depth);
-      tmp_list = g_list_next(tmp_list);
-    }
-  
-#ifdef TREE_DEBUG
-  /* print sorted list */
-  g_message("* sorted list result\n");
-  tmp_list = sorted_list;
-  while(tmp_list)
-    {
-      g_message("* item [%#x] depth [%d]\n", 
-               (int)tmp_list->data,
-               (int)GTK_TREE2(GTK_WIDGET(tmp_list->data)->parent)->level);
-      tmp_list = g_list_next(tmp_list);
-    }
-#endif /* TREE_DEBUG */
-  
-#ifdef TREE_DEBUG
-  g_message("* scan sorted list\n");
-#endif /* TREE_DEBUG */
-  
-  tmp_list = sorted_list;
-  while (tmp_list)
-    {
-      widget = tmp_list->data;
-      tmp_list = tmp_list->next;
-      
-#ifdef TREE_DEBUG
-      g_message("* item [%#x] subtree [%#x]\n", 
-               (int)widget, (int)GTK_TREE_ITEM2_SUBTREE(widget));
-#endif /* TREE_DEBUG */
-      
-      /* get real owner of this widget */
-      real_tree = GTK_TREE2(widget->parent);
-#ifdef TREE_DEBUG
-      g_message("* subtree having this widget [%#x]\n", (int)real_tree);
-#endif /* TREE_DEBUG */
-      
-      
-      if (widget->state == GTK_STATE_SELECTED)
-       {
-         selected_widgets = g_list_prepend (selected_widgets, widget);
-#ifdef TREE_DEBUG
-         g_message("* selected widget - adding it in selected list [%#x]\n",
-                   (int)selected_widgets);
-#endif /* TREE_DEBUG */
-       }
-      
-      /* remove this item from its real parent */
-#ifdef TREE_DEBUG
-      g_message("* remove widget from its owner tree\n");
-#endif /* TREE_DEBUG */
-      real_tree->children = g_list_remove (real_tree->children, widget);
-      
-      /* remove subtree associate at this item if it exist */      
-      if(GTK_TREE_ITEM2(widget)->subtree) 
-       {
-#ifdef TREE_DEBUG
-         g_message("* remove subtree associate at this item [%#x]\n",
-                   (int) GTK_TREE_ITEM2(widget)->subtree);
-#endif /* TREE_DEBUG */
-         if (GTK_WIDGET_MAPPED (GTK_TREE_ITEM2(widget)->subtree))
-           gtk_widget_unmap (GTK_TREE_ITEM2(widget)->subtree);
-         
-         gtk_widget_unparent (GTK_TREE_ITEM2(widget)->subtree);
-         GTK_TREE_ITEM2(widget)->subtree = NULL;
-       }
-      
-      /* really remove widget for this item */
-#ifdef TREE_DEBUG
-      g_message("* unmap and unparent widget [%#x]\n", (int)widget);
-#endif /* TREE_DEBUG */
-      if (GTK_WIDGET_MAPPED (widget))
-       gtk_widget_unmap (widget);
-      
-      gtk_widget_unparent (widget);
-      
-      /* delete subtree if there is no children in it */
-/* HF supprime */
-/*       if(real_tree->children == NULL && 
-        real_tree != root_tree)
-       {
-*/
-#ifdef TREE_DEBUG
-         g_message("* owner tree don't have children ... destroy it\n");
-#endif /* TREE_DEBUG */
-/*
-         gtk_tree_item2_remove_subtree(GTK_TREE_ITEM2(real_tree->tree_owner));
-       }
-*/      
-#ifdef TREE_DEBUG
-      g_message("* next item in list\n");
-#endif /* TREE_DEBUG */
-    }
-  
-  if (selected_widgets)
-    {
-#ifdef TREE_DEBUG
-      g_message("* scan selected item list\n");
-#endif /* TREE_DEBUG */
-      tmp_list = selected_widgets;
-      while (tmp_list)
-       {
-         widget = tmp_list->data;
-         tmp_list = tmp_list->next;
-         
-#ifdef TREE_DEBUG
-         g_message("* widget [%#x] subtree [%#x]\n", 
-                   (int)widget, (int)GTK_TREE_ITEM2_SUBTREE(widget));
-#endif /* TREE_DEBUG */
-         
-         /* remove widget of selection */
-         root_tree->selection = g_list_remove (root_tree->selection, widget);
-         
-         /* unref it to authorize is destruction */
-         gtk_widget_unref (widget);
-       }
-      
-      /* emit only one selection_changed signal */
-      gtk_signal_emit (GTK_OBJECT (root_tree), 
-                      tree_signals[SELECTION_CHANGED]);
-    }
-  
-#ifdef TREE_DEBUG
-  g_message("* free selected_widgets list\n");
-#endif /* TREE_DEBUG */
-  g_list_free (selected_widgets);
-  g_list_free (sorted_list);
-  
-  if (root_tree->children && !root_tree->selection &&
-      (root_tree->selection_mode == GTK_SELECTION_BROWSE))
-    {
-#ifdef TREE_DEBUG
-      g_message("* BROWSE mode, select another item\n");
-#endif /* TREE_DEBUG */
-      widget = root_tree->children->data;
-      gtk_tree2_select_child (root_tree, widget);
-    }
-  
-  if (GTK_WIDGET_VISIBLE (root_tree))
-    {
-#ifdef TREE_DEBUG
-      g_message("* query queue resizing for root_tree\n");
-#endif /* TREE_DEBUG */      
-      gtk_widget_queue_resize (GTK_WIDGET (root_tree));
-    }
-}
-
-void
-gtk_tree2_select_child (GtkTree2   *tree,
-                      GtkWidget *tree_item)
-{
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  
-  gtk_signal_emit (GTK_OBJECT (tree), tree_signals[SELECT_CHILD], tree_item);
-}
-
-void
-gtk_tree2_select_next_child (GtkTree2   *tree,
-                      GtkWidget *tree_item, gboolean descend)
-{
-  GList *children;
-
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  
-  if (descend && GTK_TREE2(GTK_TREE_ITEM2(tree_item)->subtree)->children)
-    {
-      gtk_signal_emit (GTK_OBJECT (GTK_TREE_ITEM2(tree_item)->subtree), tree_signals[SELECT_CHILD], GTK_TREE2(GTK_TREE_ITEM2(tree_item)->subtree)->children->data);
-      return;
-    }
-
-  children = tree->children;
-  while (children)
-    {
-      if (tree_item == GTK_WIDGET (children->data)) 
-       break;
-      
-      children = children->next;
-    }
-  if (!children) return;
-  
-  if (children->next)
-    gtk_signal_emit (GTK_OBJECT (tree), tree_signals[SELECT_CHILD], children->next->data);
-  else if (tree != tree->root_tree)
-    {
-      children = GTK_TREE2(GTK_WIDGET(tree)->parent)->children;
-       gtk_tree2_select_next_child (GTK_TREE2(GTK_WIDGET(tree)->parent), tree->tree_owner, FALSE);
-    }
-
-}
-
-/* we know that tree is not the roor_tree and that
-   tree_items always have subtrees */
-void
-gtk_tree2_select_prev_child (GtkTree2   *tree,
-                      GtkWidget *tree_item)
-{
-  GList *children;
-  GtkTreeItem2 *tree_item2;
-
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  
-
-  children = tree->children;
-  while (children)
-    {
-      if (tree_item == GTK_WIDGET (children->data)) 
-       break;
-      
-      children = children->next;
-    }
-  if (!children) return;
-  
-  if (children = children->prev)
-    {
-      tree_item2 = GTK_TREE_ITEM2(children->data);
-      while (GTK_TREE2(tree_item2->subtree)->children)
-       {
-         children = GTK_TREE2(tree_item2->subtree)->children;
-         while (children->next)
-           children = children->next;
-         tree_item2 = GTK_TREE_ITEM2(children->data);
-       }
-    gtk_signal_emit (GTK_OBJECT (GTK_WIDGET(tree_item2)->parent), tree_signals[SELECT_CHILD], tree_item2);
-    }
-  else
-    {
-      gtk_signal_emit (GTK_OBJECT (GTK_WIDGET(tree)->parent), tree_signals[SELECT_CHILD], tree->tree_owner);
-    }
-
-}
-
-void
-gtk_tree2_select_item (GtkTree2   *tree,
-                     gint       item)
-{
-  GList *tmp_list;
-  
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  
-  tmp_list = g_list_nth (tree->children, item);
-  if (tmp_list)
-    gtk_tree2_select_child (tree, GTK_WIDGET (tmp_list->data));
-  
-}
-
-static void
-gtk_tree2_size_allocate (GtkWidget     *widget,
-                       GtkAllocation *allocation)
-{
-  GtkTree2 *tree;
-  GtkWidget *child, *subtree;
-  GtkAllocation child_allocation;
-  GList *children;
-  
-  
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (widget));
-  g_return_if_fail (allocation != NULL);
-  
-  tree = GTK_TREE2 (widget);
-  
-  widget->allocation = *allocation;
-  if (GTK_WIDGET_REALIZED (widget))
-    gdk_window_move_resize (widget->window,
-                           allocation->x, allocation->y,
-                           allocation->width, allocation->height);
-  
-  if (tree->children)
-    {
-      child_allocation.x = GTK_CONTAINER (tree)->border_width;
-      child_allocation.y = GTK_CONTAINER (tree)->border_width;
-      child_allocation.width = MAX (1, (gint)allocation->width - child_allocation.x * 2);
-      
-      children = tree->children;
-      
-      while (children)
-       {
-         child = children->data;
-         children = children->next;
-         
-         if (GTK_WIDGET_VISIBLE (child))
-           {
-             GtkRequisition child_requisition;
-             gtk_widget_get_child_requisition (child, &child_requisition);
-             
-             child_allocation.height = child_requisition.height;
-             
-             gtk_widget_size_allocate (child, &child_allocation);
-             
-             child_allocation.y += child_allocation.height;
-             
-             if((subtree = GTK_TREE_ITEM2(child)->subtree))
-               if(GTK_WIDGET_VISIBLE (subtree))
-                 {
-                   child_allocation.height = subtree->requisition.height;
-                   gtk_widget_size_allocate (subtree, &child_allocation);
-                   child_allocation.y += child_allocation.height;
-                 }
-           }
-       }
-    }
-  
-}
-
-static void
-gtk_tree2_size_request (GtkWidget      *widget,
-                      GtkRequisition *requisition)
-{
-  GtkTree2 *tree;
-  GtkWidget *child, *subtree;
-  GList *children;
-  GtkRequisition child_requisition;
-  
-  
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (widget));
-  g_return_if_fail (requisition != NULL);
-  
-  tree = GTK_TREE2 (widget);
-  requisition->width = 0;
-  requisition->height = 0;
-  
-  children = tree->children;
-  while (children)
-    {
-      child = children->data;
-      children = children->next;
-      
-      if (GTK_WIDGET_VISIBLE (child))
-       {
-         gtk_widget_size_request (child, &child_requisition);
-         
-         requisition->width = MAX (requisition->width, child_requisition.width);
-         requisition->height += child_requisition.height;
-         
-         if((subtree = GTK_TREE_ITEM2(child)->subtree) &&
-            GTK_WIDGET_VISIBLE (subtree))
-           {
-             gtk_widget_size_request (subtree, &child_requisition);
-             
-             requisition->width = MAX (requisition->width, 
-                                       child_requisition.width);
-             
-             requisition->height += child_requisition.height;
-           }
-       }
-    }
-  
-  requisition->width += GTK_CONTAINER (tree)->border_width * 2;
-  requisition->height += GTK_CONTAINER (tree)->border_width * 2;
-  
-  requisition->width = MAX (requisition->width, 1);
-  requisition->height = MAX (requisition->height, 1);
-  
-}
-
-static void
-gtk_tree2_unmap (GtkWidget *widget)
-{
-  
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (widget));
-  
-  GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
-  gdk_window_hide (widget->window);
-  
-}
-
-void
-gtk_tree2_unselect_child (GtkTree2   *tree,
-                        GtkWidget *tree_item)
-{
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  
-  gtk_signal_emit (GTK_OBJECT (tree), tree_signals[UNSELECT_CHILD], tree_item);
-}
-
-void
-gtk_tree2_unselect_item (GtkTree2 *tree,
-                       gint     item)
-{
-  GList *tmp_list;
-  
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  
-  tmp_list = g_list_nth (tree->children, item);
-  if (tmp_list)
-    gtk_tree2_unselect_child (tree, GTK_WIDGET (tmp_list->data));
-  
-}
-
-static void
-gtk_real_tree2_select_child (GtkTree2   *tree,
-                           GtkWidget *child)
-{
-  GList *selection, *root_selection;
-  GList *tmp_list;
-  GtkWidget *tmp_item;
-  
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  g_return_if_fail (child != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (child));
-  
-  root_selection = tree->root_tree->selection;
-  
-  switch (tree->root_tree->selection_mode)
-    {
-    case GTK_SELECTION_SINGLE:
-      
-      selection = root_selection;
-      
-      /* remove old selection list */
-      while (selection)
-       {
-         tmp_item = selection->data;
-         
-         if (tmp_item != child)
-           {
-             gtk_tree_item2_deselect (GTK_TREE_ITEM2 (tmp_item));
-             
-             tmp_list = selection;
-             selection = selection->next;
-             
-             root_selection = g_list_remove_link (root_selection, tmp_list);
-             gtk_widget_unref (tmp_item);
-             
-             g_list_free (tmp_list);
-           }
-         else
-           selection = selection->next;
-       }
-      
-      if (child->state == GTK_STATE_NORMAL)
-       {
-         gtk_tree_item2_select (GTK_TREE_ITEM2 (child));
-         root_selection = g_list_prepend (root_selection, child);
-         gtk_widget_ref (child);
-       }
-      else if (child->state == GTK_STATE_SELECTED)
-       {
-         gtk_tree_item2_deselect (GTK_TREE_ITEM2 (child));
-         root_selection = g_list_remove (root_selection, child);
-         gtk_widget_unref (child);
-       }
-      
-      tree->root_tree->selection = root_selection;
-      
-      gtk_signal_emit (GTK_OBJECT (tree->root_tree), 
-                      tree_signals[SELECTION_CHANGED]);
-      break;
-      
-      
-    case GTK_SELECTION_BROWSE:
-      selection = root_selection;
-      
-      while (selection)
-       {
-         tmp_item = selection->data;
-         
-         if (tmp_item != child)
-           {
-             gtk_tree_item2_deselect (GTK_TREE_ITEM2 (tmp_item));
-             
-             tmp_list = selection;
-             selection = selection->next;
-             
-             root_selection = g_list_remove_link (root_selection, tmp_list);
-             gtk_widget_unref (tmp_item);
-             
-             g_list_free (tmp_list);
-           }
-         else
-           selection = selection->next;
-       }
-      
-      tree->root_tree->selection = root_selection;
-      
-      if (child->state == GTK_STATE_NORMAL)
-       {
-         gtk_tree_item2_select (GTK_TREE_ITEM2 (child));
-         root_selection = g_list_prepend (root_selection, child);
-         gtk_widget_ref (child);
-         tree->root_tree->selection = root_selection;
-         gtk_signal_emit (GTK_OBJECT (tree->root_tree), 
-                          tree_signals[SELECTION_CHANGED]);
-       }
-      break;
-      
-    case GTK_SELECTION_MULTIPLE:
-      if (child->state == GTK_STATE_NORMAL)
-       {
-         gtk_tree_item2_select (GTK_TREE_ITEM2 (child));
-         root_selection = g_list_prepend (root_selection, child);
-         gtk_widget_ref (child);
-         tree->root_tree->selection = root_selection;
-         gtk_signal_emit (GTK_OBJECT (tree->root_tree), 
-                          tree_signals[SELECTION_CHANGED]);
-       }
-      else if (child->state == GTK_STATE_SELECTED)
-       {
-         gtk_tree_item2_deselect (GTK_TREE_ITEM2 (child));
-         root_selection = g_list_remove (root_selection, child);
-         gtk_widget_unref (child);
-         tree->root_tree->selection = root_selection;
-         gtk_signal_emit (GTK_OBJECT (tree->root_tree), 
-                          tree_signals[SELECTION_CHANGED]);
-       }
-      break;
-      
-    case GTK_SELECTION_EXTENDED:
-      break;
-    }
-}
-
-static void
-gtk_real_tree2_unselect_child (GtkTree2   *tree,
-                             GtkWidget *child)
-{
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  g_return_if_fail (child != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (child));
-  
-  switch (tree->selection_mode)
-    {
-    case GTK_SELECTION_SINGLE:
-    case GTK_SELECTION_MULTIPLE:
-    case GTK_SELECTION_BROWSE:
-      if (child->state == GTK_STATE_SELECTED)
-       {
-         GtkTree2* root_tree = GTK_TREE2_ROOT_TREE(tree);
-         gtk_tree_item2_deselect (GTK_TREE_ITEM2 (child));
-         root_tree->selection = g_list_remove (root_tree->selection, child);
-         gtk_widget_unref (child);
-         gtk_signal_emit (GTK_OBJECT (tree->root_tree), 
-                          tree_signals[SELECTION_CHANGED]);
-       }
-      break;
-      
-    case GTK_SELECTION_EXTENDED:
-      break;
-    }
-}
-
-void
-gtk_tree2_set_selection_mode (GtkTree2       *tree,
-                            GtkSelectionMode mode) 
-{
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  
-  tree->selection_mode = mode;
-}
-
-void
-gtk_tree2_set_view_mode (GtkTree2       *tree,
-                       GtkTree2ViewMode mode) 
-{
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  
-  tree->view_mode = mode;
-}
-
-void
-gtk_tree2_set_view_lines (GtkTree2       *tree,
-                        guint          flag) 
-{
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  
-  tree->view_line = flag;
-}
-
-void 
-gtk_tree2_item_up_1 (GtkTree2       *tree,
-                  guint pos)
-{
-  GList *tmp;
-  guint length;
-  gpointer data;
-
-  g_return_if_fail (tree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (tree));
-  
-  tmp = tree->children;
-  length = g_list_length (tmp);
-  if (pos <= 0 || pos >= length) { return; }
-  data = g_list_nth_data (tree->children, pos);
-  g_list_remove (tree->children, data);
-  tree->children = g_list_insert (tree->children, data, pos-1);
-}
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktree2.h
deleted file mode 100644 (file)
index 291a1d1..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#ifndef __GTK_TREE2_H__
-#define __GTK_TREE2_H__
-
-/* set this flag to enable tree debugging output */
-/* #define TREE_DEBUG */
-
-#include <gdk/gdk.h>
-#include <gtk/gtkcontainer.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#define GTK_TYPE_TREE2                  (gtk_tree2_get_type ())
-#define GTK_TREE2(obj)                  (GTK_CHECK_CAST ((obj), GTK_TYPE_TREE2, GtkTree2))
-#define GTK_TREE2_CLASS(klass)          (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE2, GtkTree2Class))
-#define GTK_IS_TREE2(obj)               (GTK_CHECK_TYPE ((obj), GTK_TYPE_TREE2))
-#define GTK_IS_TREE2_CLASS(klass)       (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE2))
-
-#define GTK_IS_ROOT_TREE2(obj)   ((GtkObject*) GTK_TREE2(obj)->root_tree == (GtkObject*)obj)
-#define GTK_TREE2_ROOT_TREE(obj) (GTK_TREE2(obj)->root_tree ? GTK_TREE2(obj)->root_tree : GTK_TREE2(obj))
-#define GTK_TREE2_SELECTION(obj) (GTK_TREE2_ROOT_TREE(obj)->selection)
-
-typedef enum 
-{
-  GTK_TREE2_VIEW_LINE,  /* default view mode */
-  GTK_TREE2_VIEW_ITEM
-} GtkTree2ViewMode;
-
-typedef struct _GtkTree2       GtkTree2;
-typedef struct _GtkTree2Class  GtkTree2Class;
-
-struct _GtkTree2
-{
-  GtkContainer container;
-  
-  GList *children;
-  
-  GtkTree2* root_tree; /* owner of selection list */
-  GtkWidget* tree_owner;
-  GList *selection;
-  guint level;
-  guint indent_value;
-  guint current_indent;
-  guint selection_mode : 2;
-  guint view_mode : 1;
-  guint view_line : 1;
-};
-
-struct _GtkTree2Class
-{
-  GtkContainerClass parent_class;
-  
-  void (* selection_changed) (GtkTree2   *tree);
-  void (* select_child)      (GtkTree2   *tree,
-                             GtkWidget *child);
-  void (* unselect_child)    (GtkTree2   *tree,
-                             GtkWidget *child);
-};
-
-
-GtkType    gtk_tree2_get_type           (void);
-GtkWidget* gtk_tree2_new                (void);
-void       gtk_tree2_append             (GtkTree2          *tree,
-                                       GtkWidget        *tree_item);
-void       gtk_tree2_prepend            (GtkTree2          *tree,
-                                       GtkWidget        *tree_item);
-void       gtk_tree2_insert             (GtkTree2          *tree,
-                                       GtkWidget        *tree_item,
-                                       gint              position);
-void       gtk_tree2_remove_items       (GtkTree2          *tree,
-                                       GList            *items);
-void       gtk_tree2_clear_items        (GtkTree2          *tree,
-                                       gint              start,
-                                       gint              end);
-void       gtk_tree2_select_item        (GtkTree2          *tree,
-                                       gint              item);
-void       gtk_tree2_unselect_item      (GtkTree2          *tree,
-                                       gint              item);
-void       gtk_tree2_select_child       (GtkTree2          *tree,
-                                       GtkWidget        *tree_item);
-void       gtk_tree2_unselect_child     (GtkTree2          *tree,
-                                       GtkWidget        *tree_item);
-gint       gtk_tree2_child_position     (GtkTree2          *tree,
-                                       GtkWidget        *child);
-void       gtk_tree2_set_selection_mode (GtkTree2          *tree,
-                                       GtkSelectionMode  mode);
-void       gtk_tree2_set_view_mode      (GtkTree2          *tree,
-                                       GtkTree2ViewMode   mode); 
-void       gtk_tree2_set_view_lines     (GtkTree2          *tree,
-                                       guint            flag);
-
-/* deprecated function, use gtk_container_remove instead.
- */
-void       gtk_tree2_remove_item        (GtkTree2          *tree,
-                                       GtkWidget        *child);
-void       gtk_tree2_item_up             (GtkTree2   *tree,
-                                        gint       position);
-
-void gtk_tree2_select_next_child (GtkTree2   *tree,
-                                 GtkWidget *tree_item, gboolean descend);
-
-void gtk_tree2_select_prev_child (GtkTree2   *tree,
-                                 GtkWidget *tree_item);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
-#endif /* __GTK_TREE2_H__ */
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.c
deleted file mode 100644 (file)
index 7e6f811..0000000
+++ /dev/null
@@ -1,1110 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#include <gtk/gtklabel.h>
-#include "gtktree2.h"
-#include "gtktreeitem2.h"
-#include <gtk/gtkeventbox.h>
-#include <gtk/gtkpixmap.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtksignal.h>
-
-#include "tree_plus.xpm"
-#include "tree_minus.xpm"
-
-#define DEFAULT_DELTA 9
-
-enum {
-  COLLAPSE_TREE,
-  EXPAND_TREE,
-  LAST_SIGNAL
-};
-
-typedef struct _GtkTree2Pixmaps GtkTree2Pixmaps;
-
-struct _GtkTree2Pixmaps {
-  gint refcount;
-  GdkColormap *colormap;
-  
-  GdkPixmap *pixmap_plus;
-  GdkPixmap *pixmap_minus;
-  GdkBitmap *mask_plus;
-  GdkBitmap *mask_minus;
-};
-
-static GList *pixmaps = NULL;
-
-static void gtk_tree_item2_class_init (GtkTreeItem2Class *klass);
-static void gtk_tree_item2_init       (GtkTreeItem2      *tree_item);
-static void gtk_tree_item2_realize       (GtkWidget        *widget);
-static void gtk_tree_item2_size_request  (GtkWidget        *widget,
-                                        GtkRequisition   *requisition);
-static void gtk_tree_item2_size_allocate (GtkWidget        *widget,
-                                        GtkAllocation    *allocation);
-static void gtk_tree_item2_draw          (GtkWidget        *widget,
-                                        GdkRectangle     *area);
-static void gtk_tree_item2_draw_focus    (GtkWidget        *widget);
-static void gtk_tree_item2_paint         (GtkWidget        *widget,
-                                        GdkRectangle     *area);
-static gint gtk_tree_item2_button_press  (GtkWidget        *widget,
-                                        GdkEventButton   *event);
-static gint gtk_tree_item2_expose        (GtkWidget        *widget,
-                                        GdkEventExpose   *event);
-static gint gtk_tree_item2_focus_in      (GtkWidget        *widget,
-                                        GdkEventFocus    *event);
-static gint gtk_tree_item2_focus_out     (GtkWidget        *widget,
-                                        GdkEventFocus    *event);
-static void gtk_tree_item2_forall        (GtkContainer    *container,
-                                        gboolean         include_internals,
-                                        GtkCallback      callback,
-                                        gpointer         callback_data);
-
-static void gtk_real_tree_item2_select   (GtkItem          *item);
-static void gtk_real_tree_item2_deselect (GtkItem          *item);
-static void gtk_real_tree_item2_toggle   (GtkItem          *item);
-static void gtk_real_tree_item2_expand   (GtkTreeItem2      *item);
-static void gtk_real_tree_item2_collapse (GtkTreeItem2      *item);
-static void gtk_real_tree_item2_expand   (GtkTreeItem2      *item);
-static void gtk_real_tree_item2_collapse (GtkTreeItem2      *item);
-static void gtk_tree_item2_destroy        (GtkObject *object);
-static void gtk_tree_item2_subtree_button_click (GtkWidget *widget);
-static void gtk_tree_item2_subtree_button_changed_state (GtkWidget *widget);
-
-static void gtk_tree_item2_map(GtkWidget*);
-static void gtk_tree_item2_unmap(GtkWidget*);
-
-static void gtk_tree_item2_add_pixmaps    (GtkTreeItem2       *tree_item);
-static void gtk_tree_item2_remove_pixmaps (GtkTreeItem2       *tree_item);
-
-static GtkItemClass *parent_class = NULL;
-static guint tree_item_signals[LAST_SIGNAL] = { 0 };
-
-GtkType
-gtk_tree_item2_get_type (void)
-{
-  static GtkType tree_item_type = 0;
-
-  if (!tree_item_type)
-    {
-      static const GtkTypeInfo tree_item_info =
-      {
-       "GtkTreeItem",
-       sizeof (GtkTreeItem2),
-       sizeof (GtkTreeItem2Class),
-       (GtkClassInitFunc) gtk_tree_item2_class_init,
-       (GtkObjectInitFunc) gtk_tree_item2_init,
-       /* reserved_1 */ NULL,
-        /* reserved_2 */ NULL,
-        (GtkClassInitFunc) NULL,
-      };
-
-      tree_item_type = gtk_type_unique (gtk_item_get_type (), &tree_item_info);
-    }
-
-  return tree_item_type;
-}
-
-static void
-gtk_tree_item2_class_init (GtkTreeItem2Class *class)
-{
-  GtkObjectClass *object_class;
-  GtkWidgetClass *widget_class;
-  GtkContainerClass *container_class;
-  GtkItemClass *item_class;
-
-  object_class = (GtkObjectClass*) class;
-  widget_class = (GtkWidgetClass*) class;
-  item_class = (GtkItemClass*) class;
-  container_class = (GtkContainerClass*) class;
-
-  parent_class = gtk_type_class (gtk_item_get_type ());
-  
-  tree_item_signals[EXPAND_TREE] =
-    gtk_signal_new ("expand",
-                   GTK_RUN_FIRST,
-                   object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkTreeItem2Class, expand),
-                   gtk_marshal_NONE__NONE,
-                   GTK_TYPE_NONE, 0);
-  tree_item_signals[COLLAPSE_TREE] =
-    gtk_signal_new ("collapse",
-                   GTK_RUN_FIRST,
-                   object_class->type,
-                   GTK_SIGNAL_OFFSET (GtkTreeItem2Class, collapse),
-                   gtk_marshal_NONE__NONE,
-                   GTK_TYPE_NONE, 0);
-
-  gtk_object_class_add_signals (object_class, tree_item_signals, LAST_SIGNAL);
-
-  object_class->destroy = gtk_tree_item2_destroy;
-
-  widget_class->realize = gtk_tree_item2_realize;
-  widget_class->size_request = gtk_tree_item2_size_request;
-  widget_class->size_allocate = gtk_tree_item2_size_allocate;
-  widget_class->draw = gtk_tree_item2_draw;
-  widget_class->draw_focus = gtk_tree_item2_draw_focus;
-  widget_class->button_press_event = gtk_tree_item2_button_press;
-  widget_class->expose_event = gtk_tree_item2_expose;
-  widget_class->focus_in_event = gtk_tree_item2_focus_in;
-  widget_class->focus_out_event = gtk_tree_item2_focus_out;
-  widget_class->map = gtk_tree_item2_map;
-  widget_class->unmap = gtk_tree_item2_unmap;
-
-  container_class->forall = gtk_tree_item2_forall;
-
-  item_class->select = gtk_real_tree_item2_select;
-  item_class->deselect = gtk_real_tree_item2_deselect;
-  item_class->toggle = gtk_real_tree_item2_toggle;
-
-  class->expand = gtk_real_tree_item2_expand;
-  class->collapse = gtk_real_tree_item2_collapse;
-}
-
-/* callback for event box mouse event */
-static void 
-gtk_tree_item2_subtree_button_click (GtkWidget *widget)
-{
-  GtkTreeItem2* item;
-  
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_EVENT_BOX (widget));
-  
-  item = (GtkTreeItem2*) gtk_object_get_user_data (GTK_OBJECT (widget));
-  if (!GTK_WIDGET_IS_SENSITIVE (item))
-    return;
-  
-  if (item->expanded)
-    gtk_tree_item2_collapse (item);
-  else
-    gtk_tree_item2_expand (item);
-}
-
-/* callback for event box state changed */
-static void
-gtk_tree_item2_subtree_button_changed_state (GtkWidget *widget)
-{
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_EVENT_BOX (widget));
-  
-  if (GTK_WIDGET_VISIBLE (widget))
-    {
-      
-      if (widget->state == GTK_STATE_NORMAL)
-       gdk_window_set_background (widget->window, &widget->style->base[widget->state]);
-      else
-       gdk_window_set_background (widget->window, &widget->style->bg[widget->state]);
-      
-      if (GTK_WIDGET_DRAWABLE (widget))
-       gdk_window_clear_area (widget->window, 0, 0, 
-                              widget->allocation.width, widget->allocation.height);
-    }
-}
-
-static void
-gtk_tree_item2_init (GtkTreeItem2 *tree_item)
-{
-  GtkWidget *eventbox, *pixmapwid;
-  
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-
-  tree_item->expanded = FALSE;
-  tree_item->subtree = NULL;
-  GTK_WIDGET_SET_FLAGS (tree_item, GTK_CAN_FOCUS);
-  
-  /* create an event box containing one pixmaps */
-  eventbox = gtk_event_box_new();
-  gtk_widget_set_events (eventbox, GDK_BUTTON_PRESS_MASK);
-  gtk_signal_connect(GTK_OBJECT(eventbox), "state_changed",
-                    (GtkSignalFunc)gtk_tree_item2_subtree_button_changed_state, 
-                    (gpointer)NULL);
-  gtk_signal_connect(GTK_OBJECT(eventbox), "realize",
-                    (GtkSignalFunc)gtk_tree_item2_subtree_button_changed_state, 
-                    (gpointer)NULL);
-/* HF inutile
-  gtk_signal_connect(GTK_OBJECT(eventbox), "button_press_event",
-                    (GtkSignalFunc)gtk_tree_item2_subtree_button_click,
-                    (gpointer)NULL);
-*/
-  gtk_object_set_user_data(GTK_OBJECT(eventbox), tree_item);
-  tree_item->pixmaps_box = eventbox;
-
-  /* create pixmap for button '+' */
-  pixmapwid = gtk_type_new (gtk_pixmap_get_type ());
-  if (!tree_item->expanded) 
-    gtk_container_add (GTK_CONTAINER (eventbox), pixmapwid);
-  gtk_widget_show (pixmapwid);
-  tree_item->plus_pix_widget = pixmapwid;
-  gtk_widget_ref (tree_item->plus_pix_widget);
-  gtk_object_sink (GTK_OBJECT (tree_item->plus_pix_widget));
-  
-  /* create pixmap for button '-' */
-  pixmapwid = gtk_type_new (gtk_pixmap_get_type ());
-  if (tree_item->expanded) 
-    gtk_container_add (GTK_CONTAINER (eventbox), pixmapwid);
-  gtk_widget_show (pixmapwid);
-  tree_item->minus_pix_widget = pixmapwid;
-  gtk_widget_ref (tree_item->minus_pix_widget);
-  gtk_object_sink (GTK_OBJECT (tree_item->minus_pix_widget));
-  
-  gtk_widget_set_parent (eventbox, GTK_WIDGET (tree_item));
-}
-
-
-GtkWidget*
-gtk_tree_item2_new (void)
-{
-  GtkWidget *tree_item;
-
-  tree_item = GTK_WIDGET (gtk_type_new (gtk_tree_item2_get_type ()));
-
-  return tree_item;
-}
-
-GtkWidget*
-gtk_tree_item2_new_with_label (gchar *label)
-{
-  GtkWidget *tree_item;
-  GtkWidget *label_widget;
-
-  tree_item = gtk_tree_item2_new ();
-  label_widget = gtk_label_new (label);
-  gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5);
-
-  gtk_container_add (GTK_CONTAINER (tree_item), label_widget);
-  gtk_widget_show (label_widget);
-
-
-  return tree_item;
-}
-
-void
-gtk_tree_item2_set_subtree (GtkTreeItem2 *tree_item,
-                          GtkWidget   *subtree)
-{
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  g_return_if_fail (subtree != NULL);
-  g_return_if_fail (GTK_IS_TREE2 (subtree));
-
-  if (tree_item->subtree)
-    {
-      g_warning("there is already a subtree for this tree item\n");
-      return;
-    }
-
-  tree_item->subtree = subtree; 
-  GTK_TREE2 (subtree)->tree_owner = GTK_WIDGET (tree_item);
-
-  /* show subtree button */
-  if (tree_item->pixmaps_box)
-    gtk_widget_show (tree_item->pixmaps_box);
-
-  if (tree_item->expanded)
-    gtk_widget_show (subtree);
-  else
-    gtk_widget_hide (subtree);
-
-  gtk_widget_set_parent (subtree, GTK_WIDGET (tree_item)->parent);
-
-  if (GTK_WIDGET_REALIZED (subtree->parent))
-    gtk_widget_realize (subtree);
-
-  if (GTK_WIDGET_VISIBLE (subtree->parent) && GTK_WIDGET_VISIBLE (subtree))
-    {
-      if (GTK_WIDGET_MAPPED (subtree->parent))
-       gtk_widget_map (subtree);
-
-      gtk_widget_queue_resize (subtree);
-    }
-}
-
-void
-gtk_tree_item2_select (GtkTreeItem2 *tree_item)
-{
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-
-  gtk_item_select (GTK_ITEM (tree_item));
-}
-
-void
-gtk_tree_item2_deselect (GtkTreeItem2 *tree_item)
-{
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-
-  gtk_item_deselect (GTK_ITEM (tree_item));
-}
-
-void
-gtk_tree_item2_expand (GtkTreeItem2 *tree_item)
-{
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-
-  gtk_signal_emit (GTK_OBJECT (tree_item), tree_item_signals[EXPAND_TREE], NULL);
-}
-
-void
-gtk_tree_item2_collapse (GtkTreeItem2 *tree_item)
-{
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-
-  gtk_signal_emit (GTK_OBJECT (tree_item), tree_item_signals[COLLAPSE_TREE], NULL);
-}
-
-static void
-gtk_tree_item2_add_pixmaps (GtkTreeItem2 *tree_item)
-{
-  GList *tmp_list;
-  GdkColormap *colormap;
-  GtkTree2Pixmaps *pixmap_node = NULL;
-
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-
-  if (tree_item->pixmaps)
-    return;
-
-  colormap = gtk_widget_get_colormap (GTK_WIDGET (tree_item));
-
-  tmp_list = pixmaps;
-  while (tmp_list)
-    {
-      pixmap_node = (GtkTree2Pixmaps *)tmp_list->data;
-
-      if (pixmap_node->colormap == colormap)
-       break;
-      
-      tmp_list = tmp_list->next;
-    }
-
-  if (tmp_list)
-    {
-      pixmap_node->refcount++;
-      tree_item->pixmaps = tmp_list;
-    }
-  else
-    {
-      pixmap_node = g_new (GtkTree2Pixmaps, 1);
-
-      pixmap_node->colormap = colormap;
-      gdk_colormap_ref (colormap);
-
-      pixmap_node->refcount = 1;
-
-      /* create pixmaps for plus icon */
-      pixmap_node->pixmap_plus = 
-       gdk_pixmap_create_from_xpm_d (GTK_WIDGET (tree_item)->window,
-                                     &pixmap_node->mask_plus,
-                                     NULL,
-                                     tree_plus);
-      
-      /* create pixmaps for minus icon */
-      pixmap_node->pixmap_minus = 
-       gdk_pixmap_create_from_xpm_d (GTK_WIDGET (tree_item)->window,
-                                     &pixmap_node->mask_minus,
-                                     NULL,
-                                     tree_minus);
-
-      tree_item->pixmaps = pixmaps = g_list_prepend (pixmaps, pixmap_node);
-    }
-  
-  gtk_pixmap_set (GTK_PIXMAP (tree_item->plus_pix_widget), 
-                 pixmap_node->pixmap_plus, pixmap_node->mask_plus);
-  gtk_pixmap_set (GTK_PIXMAP (tree_item->minus_pix_widget), 
-                 pixmap_node->pixmap_minus, pixmap_node->mask_minus);
-}
-
-static void
-gtk_tree_item2_remove_pixmaps (GtkTreeItem2 *tree_item)
-{
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-
-  if (tree_item->pixmaps)
-    {
-      GtkTree2Pixmaps *pixmap_node = (GtkTree2Pixmaps *)tree_item->pixmaps->data;
-      
-      g_assert (pixmap_node->refcount > 0);
-      
-      if (--pixmap_node->refcount == 0)
-       {
-         gdk_colormap_unref (pixmap_node->colormap);
-         gdk_pixmap_unref (pixmap_node->pixmap_plus);
-         gdk_bitmap_unref (pixmap_node->mask_plus);
-         gdk_pixmap_unref (pixmap_node->pixmap_minus);
-         gdk_bitmap_unref (pixmap_node->mask_minus);
-         
-         pixmaps = g_list_remove_link (pixmaps, tree_item->pixmaps);
-         g_list_free_1 (tree_item->pixmaps);
-         g_free (pixmap_node);
-       }
-
-      tree_item->pixmaps = NULL;
-    }
-}
-
-static void
-gtk_tree_item2_realize (GtkWidget *widget)
-{    
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (widget));
-
-  if (GTK_WIDGET_CLASS (parent_class)->realize)
-    (* GTK_WIDGET_CLASS (parent_class)->realize) (widget);
-  
-  gdk_window_set_background (widget->window, 
-                            &widget->style->base[GTK_STATE_NORMAL]);
-
-  gtk_tree_item2_add_pixmaps (GTK_TREE_ITEM2 (widget));
-}
-
-static void
-gtk_tree_item2_size_request (GtkWidget      *widget,
-                           GtkRequisition *requisition)
-{
-  GtkBin *bin;
-  GtkTreeItem2* item;
-  GtkRequisition child_requisition;
-
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (widget));
-  g_return_if_fail (requisition != NULL);
-
-  bin = GTK_BIN (widget);
-  item = GTK_TREE_ITEM2(widget);
-
-  requisition->width = (GTK_CONTAINER (widget)->border_width +
-                       widget->style->klass->xthickness) * 2;
-  requisition->height = GTK_CONTAINER (widget)->border_width * 2;
-
-  if (bin->child && GTK_WIDGET_VISIBLE (bin->child))
-    {
-      GtkRequisition pix_requisition;
-      
-      gtk_widget_size_request (bin->child, &child_requisition);
-
-      requisition->width += child_requisition.width;
-
-      gtk_widget_size_request (item->pixmaps_box, 
-                              &pix_requisition);
-      requisition->width += pix_requisition.width + DEFAULT_DELTA + 
-       GTK_TREE2 (widget->parent)->current_indent;
-
-      requisition->height += MAX (child_requisition.height,
-                                 pix_requisition.height);
-    }
-}
-
-static void
-gtk_tree_item2_size_allocate (GtkWidget     *widget,
-                            GtkAllocation *allocation)
-{
-  GtkBin *bin;
-  GtkTreeItem2* item;
-  GtkAllocation child_allocation;
-  guint border_width;
-  int temp;
-
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (widget));
-  g_return_if_fail (allocation != NULL);
-
-  widget->allocation = *allocation;
-  if (GTK_WIDGET_REALIZED (widget))
-    gdk_window_move_resize (widget->window,
-                           allocation->x, allocation->y,
-                           allocation->width, allocation->height);
-
-  bin = GTK_BIN (widget);
-  item = GTK_TREE_ITEM2(widget);
-
-  if (bin->child)
-    {
-      border_width = (GTK_CONTAINER (widget)->border_width +
-                     widget->style->klass->xthickness);
-
-      child_allocation.x = border_width + GTK_TREE2(widget->parent)->current_indent;
-      child_allocation.y = GTK_CONTAINER (widget)->border_width;
-
-      child_allocation.width = item->pixmaps_box->requisition.width;
-      child_allocation.height = item->pixmaps_box->requisition.height;
-      
-      temp = allocation->height - child_allocation.height;
-      child_allocation.y += ( temp / 2 ) + ( temp % 2 );
-
-      gtk_widget_size_allocate (item->pixmaps_box, &child_allocation);
-
-      child_allocation.y = GTK_CONTAINER (widget)->border_width;
-      child_allocation.height = MAX (1, (gint)allocation->height - child_allocation.y * 2);
-      child_allocation.x += item->pixmaps_box->requisition.width+DEFAULT_DELTA;
-
-      child_allocation.width = 
-       MAX (1, (gint)allocation->width - ((gint)child_allocation.x + border_width));
-
-      gtk_widget_size_allocate (bin->child, &child_allocation);
-    }
-}
-
-static void 
-gtk_tree_item2_draw_lines (GtkWidget *widget) 
-{
-  GtkTreeItem2* item;
-  GtkTree2* tree;
-  guint lx1, ly1, lx2, ly2;
-
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (widget));
-
-  item = GTK_TREE_ITEM2(widget);
-  tree = GTK_TREE2(widget->parent);
-
-  /* draw vertical line */
-  lx1 = item->pixmaps_box->allocation.width;
-  lx1 = lx2 = ((lx1 / 2) + (lx1 % 2) + 
-              GTK_CONTAINER (widget)->border_width + 1 + tree->current_indent);
-  ly1 = 0;
-  ly2 = widget->allocation.height;
-
-  if (g_list_last (tree->children)->data == widget)
-    ly2 = (ly2 / 2) + (ly2 % 2);
-
-  if (tree != tree->root_tree)
-    gdk_draw_line (widget->window, widget->style->black_gc, lx1, ly1, lx2, ly2);
-
-  /* draw vertical line for subtree connecting */
-  if(g_list_last(tree->children)->data != (gpointer)widget)
-    ly2 = (ly2 / 2) + (ly2 % 2);
-  
-  lx2 += DEFAULT_DELTA;
-
-  if (item->subtree && item->expanded)
-    gdk_draw_line (widget->window, widget->style->black_gc,
-                  lx2, ly2, lx2, widget->allocation.height);
-
-  /* draw horizontal line */
-  ly1 = ly2;
-  lx2 += 2;
-
-  gdk_draw_line (widget->window, widget->style->black_gc,
-                lx1, ly1, lx2, ly2);
-
-  lx2 -= DEFAULT_DELTA+2;
-  ly1 = 0;
-  ly2 = widget->allocation.height;
-
-  if (tree != tree->root_tree)
-    {
-      item = GTK_TREE_ITEM2 (tree->tree_owner);
-      tree = GTK_TREE2 (GTK_WIDGET (tree)->parent);
-      while (tree != tree->root_tree)
-       {
-         lx1 = lx2 -= tree->indent_value;
-         
-         if (g_list_last (tree->children)->data != item)
-           gdk_draw_line (widget->window, widget->style->black_gc, lx1, ly1, lx2, ly2);
-         item = GTK_TREE_ITEM2 (tree->tree_owner);
-         tree = GTK_TREE2 (GTK_WIDGET (tree)->parent);
-       } 
-    }
-}
-
-static void
-gtk_tree_item2_paint (GtkWidget    *widget,
-                    GdkRectangle *area)
-{
-  GtkBin *bin;
-  GdkRectangle child_area, item_area;
-  GtkTreeItem2* tree_item;
-
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (widget));
-  g_return_if_fail (area != NULL);
-
-  if (GTK_WIDGET_DRAWABLE (widget))
-    {
-      bin = GTK_BIN (widget);
-      tree_item = GTK_TREE_ITEM2(widget);
-
-      if (widget->state == GTK_STATE_NORMAL)
-       {
-         gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
-         gdk_window_clear_area (widget->window, area->x, area->y, area->width, area->height);
-       }
-      else 
-       {
-         if (!GTK_WIDGET_IS_SENSITIVE (widget)) 
-           gtk_paint_flat_box(widget->style, widget->window,
-                              widget->state, GTK_STATE_INSENSITIVE,
-                              area, widget, "treeitem",
-                              0, 0, -1, -1);
-         else
-           gtk_paint_flat_box(widget->style, widget->window,
-                              widget->state, GTK_SHADOW_ETCHED_OUT,
-                              area, widget, "treeitem",
-                              0, 0, -1, -1);
-       }
-
-      /* draw left size of tree item */
-      item_area.x = 0;
-      item_area.y = 0;
-      item_area.width = (tree_item->pixmaps_box->allocation.width + DEFAULT_DELTA +
-                        GTK_TREE2 (widget->parent)->current_indent + 2);
-      item_area.height = widget->allocation.height;
-
-
-      if (gdk_rectangle_intersect(&item_area, area, &child_area)) 
-       {
-         
-         gtk_tree_item2_draw_lines(widget);
-
-         if (tree_item->pixmaps_box && 
-             GTK_WIDGET_VISIBLE(tree_item->pixmaps_box) &&
-             gtk_widget_intersect (tree_item->pixmaps_box, area, &child_area))
-           gtk_widget_draw (tree_item->pixmaps_box, &child_area);
-       }
-
-      if (GTK_WIDGET_HAS_FOCUS (widget))
-       gtk_paint_focus (widget->style, widget->window,
-                        NULL, widget, "treeitem",
-                        0, 0,
-                        widget->allocation.width - 1,
-                        widget->allocation.height - 1);
-      
-    }
-}
-
-static void
-gtk_tree_item2_draw (GtkWidget    *widget,
-                   GdkRectangle *area)
-{
-  GtkBin *bin;
-  GdkRectangle child_area;
-
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (widget));
-  g_return_if_fail (area != NULL);
-
-  if (GTK_WIDGET_DRAWABLE (widget))
-    {
-      bin = GTK_BIN (widget);
-
-      gtk_tree_item2_paint (widget, area);
-     
-      if (bin->child && 
-         gtk_widget_intersect (bin->child, area, &child_area))
-       gtk_widget_draw (bin->child, &child_area);
-
-    }
-}
-
-static void
-gtk_tree_item2_draw_focus (GtkWidget *widget)
-{
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (widget));
-
-  gtk_widget_draw(widget, NULL);
-}
-
-static gint
-gtk_tree_item2_button_press (GtkWidget      *widget,
-                           GdkEventButton *event)
-{
-/* HF
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
-  if (event->type == GDK_BUTTON_PRESS
-       && GTK_WIDGET_IS_SENSITIVE(widget)
-       && !GTK_WIDGET_HAS_FOCUS (widget))
-      gtk_widget_grab_focus (widget);
-
-  return FALSE;
-
-*/
-}
-
-static gint
-gtk_tree_item2_expose (GtkWidget      *widget,
-                     GdkEventExpose *event)
-{
-  GdkEventExpose child_event;
-  GtkBin *bin;
-
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
-  if (GTK_WIDGET_DRAWABLE (widget))
-    {
-      bin = GTK_BIN (widget);
-      
-      gtk_tree_item2_paint (widget, &event->area);
-
-      child_event = *event;
-      if (bin->child && GTK_WIDGET_NO_WINDOW (bin->child) &&
-         gtk_widget_intersect (bin->child, &event->area, &child_event.area))
-       gtk_widget_event (bin->child, (GdkEvent*) &child_event);
-   }
-
-  return FALSE;
-}
-
-static gint
-gtk_tree_item2_focus_in (GtkWidget     *widget,
-                       GdkEventFocus *event)
-{
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
-  GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
-  gtk_widget_draw_focus (widget);
-
-
-  return FALSE;
-}
-
-static gint
-gtk_tree_item2_focus_out (GtkWidget     *widget,
-                        GdkEventFocus *event)
-{
-  g_return_val_if_fail (widget != NULL, FALSE);
-  g_return_val_if_fail (GTK_IS_TREE_ITEM2 (widget), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
-
-  GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS);
-  gtk_widget_draw_focus (widget);
-
-
-  return FALSE;
-}
-
-static void
-gtk_real_tree_item2_select (GtkItem *item)
-{    
-  GtkTreeItem2 *tree_item;
-  GtkWidget *widget;
-
-  g_return_if_fail (item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (item));
-
-  tree_item = GTK_TREE_ITEM2 (item);
-  widget = GTK_WIDGET (item);
-
-  gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_SELECTED);
-
-  if (!widget->parent || GTK_TREE2 (widget->parent)->view_mode == GTK_TREE2_VIEW_LINE)
-    gtk_widget_set_state (GTK_TREE_ITEM2 (item)->pixmaps_box, GTK_STATE_SELECTED);
-}
-
-static void
-gtk_real_tree_item2_deselect (GtkItem *item)
-{
-  GtkTreeItem2 *tree_item;
-  GtkWidget *widget;
-
-  g_return_if_fail (item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (item));
-
-  tree_item = GTK_TREE_ITEM2 (item);
-  widget = GTK_WIDGET (item);
-
-  gtk_widget_set_state (widget, GTK_STATE_NORMAL);
-
-  if (!widget->parent || GTK_TREE2 (widget->parent)->view_mode == GTK_TREE2_VIEW_LINE)
-    gtk_widget_set_state (tree_item->pixmaps_box, GTK_STATE_NORMAL);
-}
-
-static void
-gtk_real_tree_item2_toggle (GtkItem *item)
-{
-  g_return_if_fail (item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (item));
-
-  if(!GTK_WIDGET_IS_SENSITIVE(item))
-    return;
-
-  if (GTK_WIDGET (item)->parent && GTK_IS_TREE2 (GTK_WIDGET (item)->parent))
-    gtk_tree2_select_child (GTK_TREE2 (GTK_WIDGET (item)->parent),
-                          GTK_WIDGET (item));
-  else
-    {
-      /* Should we really bother with this bit? A listitem not in a list?
-       * -Johannes Keukelaar
-       * yes, always be on the safe side!
-       * -timj
-       */
-      if (GTK_WIDGET (item)->state == GTK_STATE_SELECTED)
-       gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_NORMAL);
-      else
-       gtk_widget_set_state (GTK_WIDGET (item), GTK_STATE_SELECTED);
-    }
-}
-
-static void
-gtk_real_tree_item2_expand (GtkTreeItem2 *tree_item)
-{
-  GtkTree2* tree;
-  
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  
-  if (tree_item->subtree && !tree_item->expanded)
-    {
-      tree = GTK_TREE2 (GTK_WIDGET (tree_item)->parent); 
-      
-      /* hide subtree widget */
-      gtk_widget_show (tree_item->subtree);
-      
-      /* hide button '+' and show button '-' */
-      if (tree_item->pixmaps_box)
-       {
-         gtk_container_remove (GTK_CONTAINER (tree_item->pixmaps_box), 
-                               tree_item->plus_pix_widget);
-         gtk_container_add (GTK_CONTAINER (tree_item->pixmaps_box), 
-                            tree_item->minus_pix_widget);
-       }
-      if (tree->root_tree)
-       gtk_widget_queue_resize (GTK_WIDGET (tree->root_tree));
-      tree_item->expanded = TRUE;
-    }
-}
-
-static void
-gtk_real_tree_item2_collapse (GtkTreeItem2 *tree_item)
-{
-  GtkTree2* tree;
-  
-  g_return_if_fail (tree_item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (tree_item));
-  
-  if (tree_item->subtree && tree_item->expanded) 
-    {
-      tree = GTK_TREE2 (GTK_WIDGET (tree_item)->parent);
-      
-      /* hide subtree widget */
-      gtk_widget_hide (tree_item->subtree);
-      
-      /* hide button '-' and show button '+' */
-      if (tree_item->pixmaps_box)
-       {
-         gtk_container_remove (GTK_CONTAINER (tree_item->pixmaps_box), 
-                               tree_item->minus_pix_widget);
-         gtk_container_add (GTK_CONTAINER (tree_item->pixmaps_box), 
-                            tree_item->plus_pix_widget);
-       }
-      if (tree->root_tree)
-       gtk_widget_queue_resize (GTK_WIDGET (tree->root_tree));
-      tree_item->expanded = FALSE;
-    }
-}
-
-static void
-gtk_tree_item2_destroy (GtkObject *object)
-{
-  GtkTreeItem2* item;
-  GtkWidget* child;
-
-  g_return_if_fail (object != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (object));
-
-#ifdef TREE_DEBUG
-  g_message("+ gtk_tree_item2_destroy [object %#x]\n", (int)object);
-#endif /* TREE_DEBUG */
-
-  item = GTK_TREE_ITEM2(object);
-
-  /* free sub tree if it exist */
-  child = item->subtree;
-  if (child)
-    {
-      gtk_widget_ref (child);
-      gtk_widget_unparent (child);
-      gtk_widget_destroy (child);
-      gtk_widget_unref (child);
-      item->subtree = NULL;
-    }
-  
-  /* free pixmaps box */
-  child = item->pixmaps_box;
-  if (child)
-    {
-      gtk_widget_ref (child);
-      gtk_widget_unparent (child);
-      gtk_widget_destroy (child);
-      gtk_widget_unref (child);
-      item->pixmaps_box = NULL;
-    }
-  
-  
-  /* destroy plus pixmap */
-  if (item->plus_pix_widget)
-    {
-      gtk_widget_destroy (item->plus_pix_widget);
-      gtk_widget_unref (item->plus_pix_widget);
-      item->plus_pix_widget = NULL;
-    }
-  
-  /* destroy minus pixmap */
-  if (item->minus_pix_widget)
-    {
-      gtk_widget_destroy (item->minus_pix_widget);
-      gtk_widget_unref (item->minus_pix_widget);
-      item->minus_pix_widget = NULL;
-    }
-  
-  /* By removing the pixmaps here, and not in unrealize, we depend on
-   * the fact that a widget can never change colormap or visual.
-   */
-  gtk_tree_item2_remove_pixmaps (item);
-  
-  GTK_OBJECT_CLASS (parent_class)->destroy (object);
-  
-#ifdef TREE_DEBUG
-  g_message("- gtk_tree_item2_destroy\n");
-#endif /* TREE_DEBUG */
-}
-
-void
-gtk_tree_item2_remove_subtree (GtkTreeItem2* item) 
-{
-  g_return_if_fail (item != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2(item));
-  g_return_if_fail (item->subtree != NULL);
-  
-  if (GTK_TREE2 (item->subtree)->children)
-    {
-      /* The following call will remove the children and call
-       * gtk_tree_item2_remove_subtree() again. So we are done.
-       */
-      gtk_tree2_remove_items (GTK_TREE2 (item->subtree), 
-                            GTK_TREE2 (item->subtree)->children);
-      return;
-    }
-
-  if (GTK_WIDGET_MAPPED (item->subtree))
-    gtk_widget_unmap (item->subtree);
-      
-  gtk_widget_unparent (item->subtree);
-  
-  if (item->pixmaps_box)
-    gtk_widget_hide (item->pixmaps_box);
-  
-  item->subtree = NULL;
-
-  if (item->expanded)
-    {
-      item->expanded = FALSE;
-      if (item->pixmaps_box)
-       {
-         gtk_container_remove (GTK_CONTAINER (item->pixmaps_box), 
-                               item->minus_pix_widget);
-         gtk_container_add (GTK_CONTAINER (item->pixmaps_box), 
-                            item->plus_pix_widget);
-       }
-    }
-}
-
-static void
-gtk_tree_item2_map (GtkWidget *widget)
-{
-  GtkBin *bin;
-  GtkTreeItem2* item;
-
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (widget));
-
-  bin = GTK_BIN (widget);
-  item = GTK_TREE_ITEM2(widget);
-
-  GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
-
-  if(item->pixmaps_box &&
-     GTK_WIDGET_VISIBLE (item->pixmaps_box) &&
-     !GTK_WIDGET_MAPPED (item->pixmaps_box))
-    gtk_widget_map (item->pixmaps_box);
-
-  if (bin->child &&
-      GTK_WIDGET_VISIBLE (bin->child) &&
-      !GTK_WIDGET_MAPPED (bin->child))
-    gtk_widget_map (bin->child);
-
-  gdk_window_show (widget->window);
-}
-
-static void
-gtk_tree_item2_unmap (GtkWidget *widget)
-{
-  GtkBin *bin;
-  GtkTreeItem2* item;
-
-  g_return_if_fail (widget != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (widget));
-
-  GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
-  bin = GTK_BIN (widget);
-  item = GTK_TREE_ITEM2(widget);
-
-  gdk_window_hide (widget->window);
-
-  if(item->pixmaps_box &&
-     GTK_WIDGET_VISIBLE (item->pixmaps_box) &&
-     GTK_WIDGET_MAPPED (item->pixmaps_box))
-    gtk_widget_unmap (bin->child);
-
-  if (bin->child &&
-      GTK_WIDGET_VISIBLE (bin->child) &&
-      GTK_WIDGET_MAPPED (bin->child))
-    gtk_widget_unmap (bin->child);
-}
-
-static void
-gtk_tree_item2_forall (GtkContainer *container,
-                     gboolean      include_internals,
-                     GtkCallback   callback,
-                     gpointer      callback_data)
-{
-  GtkBin *bin;
-  GtkTreeItem2 *tree_item;
-
-  g_return_if_fail (container != NULL);
-  g_return_if_fail (GTK_IS_TREE_ITEM2 (container));
-  g_return_if_fail (callback != NULL);
-
-  bin = GTK_BIN (container);
-  tree_item = GTK_TREE_ITEM2 (container);
-
-  if (bin->child)
-    (* callback) (bin->child, callback_data);
-/*  if (include_internals && tree_item->subtree)
-    (* callback) (tree_item->subtree, callback_data); */
-}
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtktreeitem2.h
deleted file mode 100644 (file)
index bbbb364..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/*
- * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
- * file for a list of people on the GTK+ Team.  See the ChangeLog
- * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
- */
-
-#ifndef __GTK_TREE_ITEM2_H__
-#define __GTK_TREE_ITEM2_H__
-
-
-#include <gdk/gdk.h>
-#include <gtk/gtkitem.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#define GTK_TYPE_TREE_ITEM2              (gtk_tree_item2_get_type ())
-#define GTK_TREE_ITEM2(obj)              (GTK_CHECK_CAST ((obj), GTK_TYPE_TREE_ITEM2, GtkTreeItem2))
-#define GTK_TREE_ITEM2_CLASS(klass)      (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_ITEM2, GtkTreeItem2Class))
-#define GTK_IS_TREE_ITEM2(obj)           (GTK_CHECK_TYPE ((obj), GTK_TYPE_TREE_ITEM2))
-#define GTK_IS_TREE_ITEM2_CLASS(klass)   (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_ITEM2))
-
-#define GTK_TREE_ITEM2_SUBTREE(obj)      (GTK_TREE_ITEM2(obj)->subtree)
-
-
-typedef struct _GtkTreeItem2       GtkTreeItem2;
-typedef struct _GtkTreeItem2Class  GtkTreeItem2Class;
-
-struct _GtkTreeItem2
-{
-  GtkItem item;
-
-  GtkWidget *subtree;
-  GtkWidget *pixmaps_box;
-  GtkWidget *plus_pix_widget, *minus_pix_widget;
-
-  GList *pixmaps;              /* pixmap node for this items color depth */
-
-  guint expanded : 1;
-};
-
-struct _GtkTreeItem2Class
-{
-  GtkItemClass parent_class;
-
-  void (* expand)   (GtkTreeItem2 *tree_item);
-  void (* collapse) (GtkTreeItem2 *tree_item);
-};
-
-
-GtkType    gtk_tree_item2_get_type       (void);
-GtkWidget* gtk_tree_item2_new            (void);
-GtkWidget* gtk_tree_item2_new_with_label (gchar       *label);
-void       gtk_tree_item2_set_subtree    (GtkTreeItem2 *tree_item,
-                                        GtkWidget   *subtree);
-void       gtk_tree_item2_remove_subtree (GtkTreeItem2 *tree_item);
-void       gtk_tree_item2_select         (GtkTreeItem2 *tree_item);
-void       gtk_tree_item2_deselect       (GtkTreeItem2 *tree_item);
-void       gtk_tree_item2_expand         (GtkTreeItem2 *tree_item);
-void       gtk_tree_item2_collapse       (GtkTreeItem2 *tree_item);
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-
-#endif /* __GTK_TREE_ITEM2_H__ */
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/handlebox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/handlebox.xpm
deleted file mode 100644 (file)
index e4d792c..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* XPM */
-static char *handlebox_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 7 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray87",
-"+ c Gray100",
-"@ c None",
-/* pixels */
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@++++++++++++++++++ @",
-"@+OOOO.XXXXXXXXXXX. @",
-"@++OOO.XXXXXXXXXXX. @",
-"@+O.+O.XXXXXXXXXXX. @",
-"@+OOO..XXXXXXXXXXX. @",
-"@++OOO.XXXXXXXXXXX. @",
-"@+O.+O.XXXXXXXXXXX. @",
-"@+OOO..XXXXXXXXXXX. @",
-"@++OOO.XXXXXXXXXXX. @",
-"@+O.+O.XXXXXXXXXXX. @",
-"@+OOO..XXXXXXXXXXX. @",
-"@+................. @",
-"@                   @",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbox.xpm
deleted file mode 100644 (file)
index 7363317..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* XPM */
-static char *hbox_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 4 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c Gray100",
-/* pixels */
-"oooooo oooooo oooooo ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"oXXXX. oXXXX. oXXXX. ",
-"o..... o..... o..... ",
-"                     "
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbuttonbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hbuttonbox.xpm
deleted file mode 100644 (file)
index 77d73dc..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *hbuttonbox_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+OOOOO +OOOOO +OOOOO ",
-"+OXXX. +OXXX. +OXXX. ",
-"+OXXX. +OXXX. +OXXX. ",
-"+O.... +O.... +O.... ",
-"+      +      +      ",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hseparator.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/hseparator.xpm
deleted file mode 100644 (file)
index 41ad8aa..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* XPM */
-static char *hseparator_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 4 1",
-"  c #7b7b7b",
-". c #b3cece",
-"X c Gray100",
-"o c None",
-/* pixels */
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"o                   o",
-"oXXXXXXXXXXXXXXXXXXXo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo",
-"ooooooooooooooooooooo"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/label.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/label.xpm
deleted file mode 100644 (file)
index 013e13a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* XPM */
-static char *label_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 3 1",
-"  c Gray0",
-". c #b3cece",
-"X c None",
-/* pixels */
-"XXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXX  XXXXXXXXX",
-"XXXXXXXXX   XXXXXXXXX",
-"XXXXXXXXX   XXXXXXXXX",
-"XXXXXXXX     XXXXXXXX",
-"XXXXXXXX     XXXXXXXX",
-"XXXXXXXX      XXXXXXX",
-"XXXXXXX  X    XXXXXXX",
-"XXXXXXX  X     XXXXXX",
-"XXXXXX  XX     XXXXXX",
-"XXXXXX          XXXXX",
-"XXXXX           XXXXX",
-"XXXXX  XXXXX    XXXXX",
-"XXXX   XXXXX     XXXX",
-"XXX    XXXXX      XXX",
-"XXX     XXX       XXX",
-"XXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXX"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_lexer.mll
deleted file mode 100644 (file)
index 46aa5ac..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-open Load_parser
-} 
-
-rule token = parse
-  [ ' ' '\t' '\n']+     { token lexbuf }
-| "<window"             { WINDOW_START }
-| "</window>"           { WINDOW_END }
-| "name"                { NAME }
-|  '='                  { EQUAL }
-|  '>'                  { SUP }
-
-| "<" ['A'-'Z' 'a'-'z' '0'-'9' '_']+
-  {
-    let l = Lexing.lexeme lexbuf in
-    let s = String.sub l ~pos:1 ~len:(String.length l - 1) in
-    WIDGET_START s
-  }
-
-| "</" ['A'-'Z' 'a'-'z' '0'-'9' '_']+ '>'
-  {
-    let l = Lexing.lexeme lexbuf in
-    let s = String.sub l ~pos:2 ~len:(String.length l - 3) in
-    WIDGET_END s
-  }
-
-| '"' [^ '"']* '"'
-  {
-    let l = Lexing.lexeme lexbuf in
-    let s = String.sub l ~pos:1 ~len:(String.length l - 2) in
-    IDENT s
-  }
-
-| '\'' [^ '\'']* '\''
-  {
-    let l = Lexing.lexeme lexbuf in
-    let s = String.sub l ~pos:1 ~len:(String.length l - 2) in
-    IDENT s
-  }
-
-| ['A'-'Z' 'a'-'z' '0'-'9' '_' '.']+
-  {
-    let s = Lexing.lexeme lexbuf in IDENT s
-  }
-
-| eof               { EOF }
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_parser.mly b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/load_parser.mly
deleted file mode 100644 (file)
index 09c7b7b..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-%{
-open Utils
-%}
-
-%token EOF NAME EQUAL SUP WINDOW_START WINDOW_END
-%token <string> WIDGET_START WIDGET_END IDENT
-
-%type <string> window_start
-%type <string * string> property widget_start
-%type <(string * string) list> property_list
-%type <Utils.yywidget_tree> widget window
-%type <Utils.yywidget_tree list> children window_list project
-
-%start project
-%start window
-%start widget
-
-%%
-
-project : window_list EOF        { List.rev $1 }
-
-window_list :                    { [] }
-            | window_list window { $2 :: $1 }
-; 
-
-window : window_start property_list children WINDOW_END 
-  { 
-    Node (("window", $1, List.rev $2), $3)
-  } 
-;
-
-window_start : WINDOW_START NAME EQUAL IDENT SUP   { $4 }
-;
-
-children  :                  { [] }
-         | children widget   { $2 :: $1 }
-;
-
-widget : widget_start property_list children WIDGET_END
-  { 
-    let classe, name = $1 in
-    if classe <> $4 then raise Parsing.Parse_error;
-    Node ((classe, name, List.rev $2), $3)
-  } 
-;
-
-widget_start  : WIDGET_START NAME EQUAL IDENT SUP   { $1, $4 }
-;
-
-property_list :                         { [] }
-              | property_list property  { $2 :: $1 }
-;
-
-property      : IDENT EQUAL IDENT       { $1, $3 }
-;
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/main.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/main.ml
deleted file mode 100644 (file)
index cb150e0..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-(* $Id$ *)
-
-open GdkKeysyms
-open Gtk
-open GObj
-
-open Utils
-open TiBase
-
-let main_project_modify = ref false
-
-let main_window  = GWindow.window ~title:"ZOOM" ~x:10 ~y:10 ()
-let main_vbox    = GPack.vbox ~packing:main_window#add ()
-let main_menu    = GMenu.menu_bar ~packing:(main_vbox#pack ~expand:false) ()
-
-let can_copy = ref (fun _ -> assert false)
-let can_paste = ref (fun _ -> assert false)
-
-class project () =
-  let project_box = GPack.vbox ~packing:main_vbox#pack () in
-  let project_tree = GTree2.tree ~packing:project_box#pack () in
-  object(self)
-    val mutable window_list = []
-
-(* the selected window *)
-    val mutable selected = (None : window_and_tree option)
-
-    method change_selected sel =
-      match selected with
-      |        None ->
-         selected <- Some sel;
-         sel#project_tree_item#misc#set_state `SELECTED;
-         !can_copy true
-      |        Some old_sel ->
-         if sel = old_sel then begin
-           selected <- None;
-           sel#project_tree_item#misc#set_state `NORMAL;
-           !can_copy false
-         end else begin
-           old_sel#project_tree_item#misc#set_state `NORMAL;
-           selected <- Some sel;
-           sel#project_tree_item#misc#set_state `SELECTED;
-           !can_copy true
-         end
-
-    val mutable filename = ""
-    val mutable dirname = ""
-
-    method set_filename f =
-      let dir, file = split_filename f ~ext:".rad" in
-      filename <- file;
-      dirname <- dir
-
-    method get_filename () =
-      get_filename ~callback:self#set_filename ~dir:dirname ()
-
-    method dirname = dirname
-
-(*    method set_dirname f = dirname <- f *)
-
-    method add_window ~name ?tree:wt () =
-      let wt = match wt with
-      |        None -> new window_and_tree ~name
-      |        Some wt -> wt in
-      let tiwin = wt#tiwin and tw=wt#tree_window in
-      let project_tree_item = wt#project_tree_item in
-      project_tree#append project_tree_item;
-      let show = ref true in
-      project_tree_item#event#connect#button_press ~callback:
-       (fun ev ->
-       match GdkEvent.get_type ev with
-       | `BUTTON_PRESS ->
-           if GdkEvent.Button.button ev = 1 then begin
-             self#change_selected wt
-           end else
-           if GdkEvent.Button.button ev = 3 then begin
-             let menu = GMenu.menu () in
-             let name = wt#tiwin#name in
-             let mi_remove = GMenu.menu_item ~label:("delete " ^ name)
-                 ~packing:menu#append ()
-             and mi_copy = GMenu.menu_item ~label:("copy " ^ name)
-                 ~packing:menu#append ()      
-             and mi_cut = GMenu.menu_item ~label:("cut " ^ name)
-                 ~packing:menu#append () in
-             mi_remove#connect#activate
-               ~callback:(fun () -> self#delete_window wt);
-             mi_copy#connect#activate
-               ~callback:(fun () -> self#copy_wt wt);
-             mi_cut#connect#activate
-               ~callback:(fun () -> self#cut_wt wt);
-             menu#popup ~button:3 ~time:(GdkEvent.Button.time ev)
-           end;
-            GtkSignal.stop_emit ();
-            true
-       | `TWO_BUTTON_PRESS ->
-           if GdkEvent.Button.button ev = 1 then begin
-             if !show then begin
-               show := false;
-               tiwin#widget#misc#hide ();
-               tw#misc#hide ()
-             end
-             else begin
-               show := true;
-               tiwin#widget#misc#show ();
-               tw#misc#show ()
-             end
-           end;
-           true
-       | _ -> false);
-      tiwin#connect_event#delete ~callback:
-       (fun _ -> show := false; tiwin#widget#misc#hide (); true);
-      tw#event#connect#delete ~callback:
-       (fun _ -> show := false; tw#misc#hide (); true);
-      window_list <- wt :: window_list;
-      add_undo (Remove_window name);
-      main_window#misc#set_can_focus false;
-      main_window#misc#grab_focus ()
-
-      
-    method add_window_by_node
-       (Node ((classe, name, proplist), children)) =
-      if classe <> "window"
-      then failwith "add_window_by_node: class <> \"window\"";
-      let name = change_name name in  (* for paste *)
-      let wt = new window_and_tree ~name in
-      let tiwin = wt#tiwin in
-      List.iter proplist ~f:(fun (n,v) -> tiwin#set_property n v);
-      begin match children with
-      | [] -> ()
-      | [ ch ] -> tiwin#add_children_wo_undo ch; ()
-      | _ -> failwith "add_window_by_node: more than one child"
-      end;
-      self#add_window ~name ~tree:wt ()
-
-    method delete_window (wt : window_and_tree) =
-      let tiwin = wt#tiwin in
-      project_tree#remove wt#project_tree_item;
-      tiwin#remove_me ();
-      wt#tree_window#destroy ();
-      window_list <- list_remove ~f:(fun w -> w = wt) window_list
-
-    method delete_window_by_name ~name =
-      let wt = List.find window_list ~f:(fun wt -> wt#tiwin#name = name) in
-      self#delete_window wt
-      
-    method delete () =
-      List.iter window_list
-       ~f:(fun wt -> self#delete_window wt);
-      main_vbox#remove project_box#coerce;
-(* remove after test *)
-      if !name_list <> [] then failwith "name_list not empty"
-
-    method save_as () = if self#get_filename () then self#save ()
-
-    method save () =
-      if filename = "" then self#save_as ()
-      else begin
-       let outch = open_out (dirname ^ filename ^ ".rad") in
-       let f = Format.formatter_of_out_channel outch in
-       List.iter window_list ~f:(fun wt -> wt#tiwin#save f);
-       close_out outch;
-       main_project_modify := false
-      end
-
-    method copy_wt (wt : window_and_tree) =
-      wt#tiwin#copy ();
-      !can_paste true
-
-    method cut_wt (wt : window_and_tree) =
-      self#copy_wt wt;
-      self#delete_window wt
-
-    method copy () =
-      match selected with
-      |        None -> failwith "main_project copy"
-      |        Some sel -> self#copy_wt sel
-
-    method cut () =
-      match selected with
-      |        None -> failwith "main_project cut"
-      |        Some sel -> self#cut_wt sel
-
-    method paste () =
-      let lexbuf = Lexing.from_string !window_selection in
-      let node = Load_parser.window Load_lexer.token lexbuf in
-      self#add_window_by_node node
-
-    method emit () =
-      let outc = open_out (dirname ^ filename ^ ".ml") in
-      let f = Format.formatter_of_out_channel outc in
-      List.iter window_list ~f:(fun wt -> wt#emit f);
-      Format.fprintf f "let main () =@\n";
-(* this is just for demo *)
-      List.iter window_list ~f:
-       begin fun wt ->
-         let name = wt#tiwin#name in
-         Format.fprintf f "  let %s = new %s () in %s#show ();@\n"
-           name name name
-       end;
-      Format.fprintf f
-       "  GMain.Main.main ()@\n@\nlet _ = main ()@\n";
-      close_out outc
-
-  end
-
-
-let main_project = ref (new project ())
-
-let load () =
-  let filename = ref "" in
-  get_filename ~callback:(fun f -> filename := f) ~dir:!main_project#dirname ();
-  if !filename <> "" then begin
-    !main_project#delete ();
-    main_project := new project ();
-    let inch = open_in !filename in
-    let lexbuf = Lexing.from_channel inch in
-    let project_list = Load_parser.project Load_lexer.token lexbuf in
-    close_in inch;
-    List.iter project_list
-      ~f:(fun node -> !main_project#add_window_by_node node);
-    !main_project#set_filename !filename
-  end
-
-
-let interpret_undo = function
-  | Add (parent_name, node, pos) ->
-      let parent = Hashtbl.find widget_map parent_name in
-      parent#add_children node ~pos
-  | Remove child_name ->
-      let child  = Hashtbl.find widget_map child_name in
-      child#remove_me ()
-  | Property (property, value_string) ->
-      property#set value_string
-  | Add_window node -> !main_project#add_window_by_node node
-  | Remove_window name -> !main_project#delete_window_by_name ~name
-
-let undo () =
-  if !last_action_was_undo then begin
-    match !next_undo_info with
-    | hd :: tl -> interpret_undo hd; next_undo_info := tl
-    | [] -> message "no more undo info"
-  end
-  else begin
-    match !undo_info with
-    | hd :: tl -> interpret_undo hd; next_undo_info := tl
-    | [] -> message "no undo info"
-  end;
-  last_action_was_undo := true
-
-
-let targets = [  { target = "STRING"; flags = []; info = 0}  ]
-
-let xpm_window () =
-  let source_drag_data_get classe _ (data : selection_data) ~info ~time =
-    data#set ~typ:data#target ~format:0 ~data:classe in
-  let window = GWindow.window ~title:"icons" ~x:250 ~y:10 () in
-  window#misc#realize ();
-  let vbox = GPack.vbox ~packing:window#add () in
-  let table = GPack.table ~rows:1 ~columns:5 ~border_width:20
-      ~packing:vbox#pack () in
-  let tooltips = GData.tooltips () in
-  let add_xpm ~file ~left ~top ~tip =
-    let gdk_pix = GDraw.pixmap_from_xpm ~file ~window () in
-    let ev = GBin.event_box ~packing:(table#attach ~left ~top) () in
-    let pix = GMisc.pixmap gdk_pix ~packing:ev#add () in
-    ev#event#connect#button_press ~callback:
-      (fun ev -> match GdkEvent.get_type ev with
-       | `BUTTON_PRESS ->
-           if GdkEvent.Button.button ev = 1 then begin
-             !main_project#add_window ~name:(make_new_name "window") ()
-           end;
-           true
-       | _ -> false);
-    tooltips#set_tip ev#coerce ~text:tip
-  in
-  add_xpm ~file:"window.xpm" ~left:0 ~top:0 ~tip:"window";
-  GMisc.separator `HORIZONTAL ~packing:vbox#pack ();
-  let table = GPack.table ~rows:6 ~columns:6 ~packing:vbox#pack
-      ~row_spacings:20 ~col_spacings:20 ~border_width:20 () in
-  let add_xpm file ~left ~top ~classe =
-    let gdk_pix = GDraw.pixmap_from_xpm ~file ~window () in
-    let ev = GBin.event_box ~packing:(table#attach ~left ~top) () in
-    let pix = GMisc.pixmap gdk_pix ~packing:ev#add () in
-    ev#drag#source_set ~modi:[`BUTTON1] targets ~actions:[`COPY];
-    ev#drag#source_set_icon ~colormap:window#misc#style#colormap 
-      gdk_pix; 
-    ev#drag#connect#data_get ~callback:(source_drag_data_get classe);
-    tooltips#set_tip ev#coerce ~text:classe
-  in
-  
-  add_xpm "button.xpm"         ~left:0 ~top:0 ~classe:"button";
-  add_xpm "togglebutton.xpm"   ~left:1 ~top:0 ~classe:"toggle_button";
-  add_xpm "checkbutton.xpm"    ~left:2 ~top:0 ~classe:"check_button";
-  add_xpm "radiobutton.xpm"    ~left:3 ~top:0 ~classe:"radio_button";
-  add_xpm "toolbar.xpm"        ~left:4 ~top:0 ~classe:"toolbar";
-  add_xpm "hbox.xpm"           ~left:0 ~top:1 ~classe:"hbox";
-  add_xpm "vbox.xpm"           ~left:1 ~top:1 ~classe:"vbox";
-  add_xpm "hbuttonbox.xpm"     ~left:2 ~top:1 ~classe:"hbutton_box";
-  add_xpm "vbuttonbox.xpm"     ~left:3 ~top:1 ~classe:"vbutton_box";
-  add_xpm "fixed.xpm"          ~left:4 ~top:1 ~classe:"fixed";
-  add_xpm "frame.xpm"          ~left:0 ~top:2 ~classe:"frame";
-  add_xpm "aspectframe.xpm"    ~left:1 ~top:2 ~classe:"aspect_frame";
-  add_xpm "scrolledwindow.xpm" ~left:2 ~top:2 ~classe:"scrolled_window";
-  add_xpm "eventbox.xpm"       ~left:3 ~top:2 ~classe:"event_box";
-  add_xpm "handlebox.xpm"      ~left:4 ~top:2 ~classe:"handle_box";
-  add_xpm "viewport.xpm"       ~left:5 ~top:2 ~classe:"viewport";
-  add_xpm "hseparator.xpm"     ~left:0 ~top:3 ~classe:"hseparator";
-  add_xpm "vseparator.xpm"     ~left:1 ~top:3 ~classe:"vseparator";
-  add_xpm "clist.xpm"          ~left:2 ~top:3 ~classe:"clist";
-  add_xpm "label.xpm"          ~left:0 ~top:4 ~classe:"label";
-  add_xpm "statusbar.xpm"      ~left:1 ~top:4 ~classe:"statusbar";
-  add_xpm "notebook.xpm"       ~left:2 ~top:4 ~classe:"notebook";
-  add_xpm "colorselection.xpm" ~left:3 ~top:4 ~classe:"color_selection";
-  add_xpm "pixmap.xpm"         ~left:4 ~top:4 ~classe:"pixmap";
-  add_xpm "entry.xpm"          ~left:0 ~top:5 ~classe:"entry";
-  add_xpm "spinbutton.xpm"     ~left:1 ~top:5 ~classe:"spin_button";
-  add_xpm "combo.xpm"          ~left:2 ~top:5 ~classe:"combo";
-
-  window#show ();
-  window
-
-
-let main () =
-  let _ = GMain.Main.init () in
-  let prop_win = Propwin.init () in
-  let palette = xpm_window () in
-  main_window#show ();
-  main_window#connect#destroy ~callback:GMain.Main.quit;
-
-  let mp = main_project in
-  let f = new GMenu.factory main_menu in
-  let accel_group  = f#accel_group in
-  main_window#add_accel_group accel_group;
-  prop_win#add_accel_group accel_group;
-  palette#add_accel_group accel_group;
-
-  let file_menu    = new GMenu.factory (f#add_submenu "File") ~accel_group
-  and edit_menu    = new GMenu.factory (f#add_submenu "Edit") ~accel_group
-  and view_menu    = new GMenu.factory (f#add_submenu "View") ~accel_group
-  and project_menu = new GMenu.factory (f#add_submenu "Project") ~accel_group
-  in
-
-  file_menu#add_item "Quit" ~key:_Q ~callback:GMain.Main.quit;
-
-  project_menu#add_item "New" ~key:_N
-    ~callback:(fun () -> !mp#delete (); mp := new project ());
-  project_menu#add_item "Open..." ~key:_O ~callback:load;
-  project_menu#add_item "Save" ~key:_S ~callback:(fun () -> !mp#save ());
-  project_menu#add_item "Save as..." ~callback:(fun () -> !mp#save_as ());
-  project_menu#add_separator ();
-  project_menu#add_item "Emit code" ~callback:(fun () -> !mp#emit ());
-
-  let copy_item =
-    edit_menu#add_item "Copy" ~key:_C ~callback:(fun () -> !mp#copy ())
-  and cut_item =
-    edit_menu#add_item "Cut" ~key:_X ~callback:(fun () -> !mp#cut ())
-  and paste_item =
-    edit_menu#add_item "Paste" ~key:_V ~callback:(fun () -> !mp#paste ())
-  in
-  can_copy :=
-    (fun b -> copy_item#misc#set_sensitive b; cut_item#misc#set_sensitive b);
-  can_paste := paste_item#misc#set_sensitive;
-  !can_copy false; !can_paste false;
-  edit_menu#add_item "Undo" ~key:_Z ~callback:undo;
-
-  let palette_visible = ref true in
-  palette#event#connect#delete ~callback:
-    (fun _ -> palette_visible := false; palette#misc#hide (); true);
-  view_menu#add_item "Palette"
-    ~callback:(fun () ->
-      if !palette_visible then begin
-       palette#misc#hide ();
-       palette_visible := false
-      end else begin
-       palette#misc#show ();
-       palette_visible := true
-      end);
-  let prop_win_visible = ref true in
-  prop_win#event#connect#delete ~callback:
-    (fun _ -> prop_win_visible := false; prop_win#misc#hide (); true);
-  view_menu#add_item "Properties window"
-    ~callback:(fun () ->
-      if !prop_win_visible then begin
-       prop_win#misc#hide ();
-       prop_win_visible := false
-      end else begin
-       prop_win#misc#show ();
-       prop_win_visible := true
-      end);
-
-  GMain.Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/ml_gtk2.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/ml_gtk2.c
deleted file mode 100644 (file)
index 49ce27b..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/* $Id$ */
-
-#include <gtk/gtk.h>
-#include <caml/mlvalues.h>
-#include <caml/alloc.h>
-#include <caml/memory.h>
-#include <caml/callback.h>
-#include <caml/fail.h>
-
-#include "../../wrappers.h"
-#include "../../ml_glib.h"
-#include "../../ml_gdk.h"
-#include "../../ml_gtk.h"
-#include "../../gtk_tags.h"
-
-#include "gtktree2.h"
-#include "gtktreeitem2.h"
-
-#include <stdio.h>
-
-value Val_GtkObject_sink (GtkObject *);
-
-#define Val_GtkAny(w) Val_GtkObject((GtkObject*)w)
-#define Val_GtkAny_sink(w) Val_GtkObject_sink((GtkObject*)w)
-
-#define GtkWidget_val(val) check_cast(GTK_WIDGET,val)
-
-/* gtkwidget.h */
-
-
-#define Val_GtkWidget Val_GtkAny
-#define Val_GtkWidget_sink Val_GtkAny_sink
-
-
-/* gtktreeitem2.h */
-
-#define GtkTreeItem2_val(val) check_cast(GTK_TREE_ITEM2,val)
-ML_0 (gtk_tree_item2_new, Val_GtkWidget_sink)
-ML_1 (gtk_tree_item2_new_with_label, String_val, Val_GtkWidget_sink)
-ML_2 (gtk_tree_item2_set_subtree, GtkTreeItem2_val, GtkWidget_val, Unit)
-ML_1 (gtk_tree_item2_remove_subtree, GtkTreeItem2_val, Unit)
-ML_1 (gtk_tree_item2_expand, GtkTreeItem2_val, Unit)
-ML_1 (gtk_tree_item2_collapse, GtkTreeItem2_val, Unit)
-ML_1 (GTK_TREE_ITEM2_SUBTREE, GtkTreeItem2_val, Val_GtkWidget)
-
-/* gtktree2.h */
-
-#define GtkTree2_val(val) check_cast(GTK_TREE2,val)
-ML_0 (gtk_tree2_new, Val_GtkWidget_sink)
-ML_3 (gtk_tree2_insert, GtkTree2_val, GtkWidget_val, Int_val, Unit)
-ML_3 (gtk_tree2_clear_items, GtkTree2_val, Int_val, Int_val, Unit)
-ML_2 (gtk_tree2_select_item, GtkTree2_val, Int_val, Unit)
-ML_2 (gtk_tree2_unselect_item, GtkTree2_val, Int_val, Unit)
-ML_2 (gtk_tree2_select_child, GtkTree2_val, GtkWidget_val, Unit)
-ML_2 (gtk_tree2_unselect_child, GtkTree2_val, GtkWidget_val, Unit)
-ML_2 (gtk_tree2_child_position, GtkTree2_val, GtkWidget_val, Val_int)
-
-/*
-ML_2 (gtk_tree2_set_selection_mode, GtkTree2_val, Selection_mode_val, Unit)
-ML_2 (gtk_tree2_set_view_mode, GtkTree2_val, Tree_view_mode_val, Unit)
-*/
-
-ML_2 (gtk_tree2_set_view_lines, GtkTree2_val, Bool_val, Unit)
-ML_2 (gtk_tree2_item_up, GtkTree2_val, Int_val, Unit)
-ML_3 (gtk_tree2_select_next_child, GtkTree2_val, GtkWidget_val, Bool_val, Unit)
-ML_2 (gtk_tree2_select_prev_child, GtkTree2_val, GtkWidget_val, Unit)
-
-static value val_gtkany (gpointer p) { return Val_GtkAny(p); }
-value ml_gtk_tree2_selection (value tree)
-{
-  GList *selection = GTK_TREE2_SELECTION(GtkTree2_val(tree));
-  return Val_GList(selection, val_gtkany);
-}
-static gpointer gtkobject_val (value val) { return GtkObject_val(val); }
-value ml_gtk_tree2_remove_items (value tree, value items)
-{
-  GList *items_list = GList_val (items, gtkobject_val);
-  gtk_tree2_remove_items (GtkTree2_val(tree), items_list);
-  return Val_unit;
-}
-
-value ml_gtk_tree2_children (value tree)
-{
-  GList *children = (GtkTree2_val(tree))->children;
-  return Val_GList(children, val_gtkany);
-}
-
-
-
-#define GtkToolbar_val(val) check_cast(GTK_TOOLBAR,val)
-/* sets the text of the label of a button; creates the label
-   if necessary */
-value ml_gtk_toolbar2_set_text (value toolbar, value text, value pos)
-{
-  GtkToolbar *t = GtkToolbar_val(toolbar);
-  GtkToolbarChild *ch = (GtkToolbarChild *)g_list_nth_data (t->children, Int_val(pos));
-  GtkWidget *label = ch->label;
-
-  if (label)
-    gtk_label_set_text (GTK_LABEL(label), String_val(text));
-  else {
-    label = ch->label = gtk_label_new (String_val(text));
-    gtk_box_pack_end (GTK_BOX (GTK_BIN(ch->widget)->child), label, FALSE, FALSE, 0);
-    if (t->style != GTK_TOOLBAR_ICONS)
-      gtk_widget_show (label);
-  }
-
-  return Val_unit;
-}
-
-value ml_gtk_toolbar2_set_icon (value toolbar, value icon, value pos)
-{
-  GtkToolbar *t = GtkToolbar_val(toolbar);
-  GtkToolbarChild * ch =
-    (GtkToolbarChild *)g_list_nth_data (t->children, Int_val(pos));
-  GtkWidget *vbox = GTK_BIN(ch->widget)->child;
-  gtk_container_remove (GTK_CONTAINER(vbox), ch->icon);
-  ch->icon = GtkWidget_val(icon);
-  gtk_box_pack_end (GTK_BOX (vbox), ch->icon, FALSE, FALSE, 0);
-  if (t->style != GTK_TOOLBAR_TEXT)
-    gtk_widget_show (ch->icon);
-  
-  return Val_unit;
-}
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/notebook.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/notebook.xpm
deleted file mode 100644 (file)
index 77ac20d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *notebook_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+OOOOOO.OOOO.OOOO.+++",
-"+OXXXXX.X.X..X.X..+++",
-"+OXXXXX..X.X..X.X.+++",
-"+OXXXXX.X.X..X.X..+++",
-"+OXXXXX.OOOOOOOOOOO +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+OXXXXXXXXXXXXXXXX. +",
-"+O................. +",
-"+                   +",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/pixmap.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/pixmap.xpm
deleted file mode 100644 (file)
index d76a5ec..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/* XPM */
-static char *pixmap_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 12 1",
-"  c Gray0",
-". c #007b00",
-"X c #7b7b7b",
-"o c Blue",
-"O c Green",
-"+ c Cyan",
-"@ c Yellow",
-"# c #d6d6d6",
-"$ c #b3cece",
-"% c Gray87",
-"& c Gray100",
-"* c None",
-/* pixels */
-"*********************",
-"*********************",
-"*********************",
-"*                    ",
-"* +++++%%%&+++++++++ ",
-"* +&&&++%%++&+++XX++ ",
-"* +++++++%+++++X@@X+ ",
-"* ++&&++++XX+++X@@X+ ",
-"* +++++++ XXX&++XX++ ",
-"* &+++++XXXXXX++++&+ ",
-"* +++++        +++++ ",
-"* +++++ ###### +++++ ",
-"* +++++ #o##o# +++++ ",
-"* ..... ###### ..... ",
-"* OOOOO ##oo## OOOOO ",
-"* OOOOO ##oo## OOOOO ",
-"* OOOOO        OOOOO ",
-"* OOOOOOOOOOOOOOOOOO ",
-"*                    ",
-"*********************",
-"*********************"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.ml
deleted file mode 100644 (file)
index 829e40b..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-open GEdit
-open GData
-open GPack
-open GMisc
-open GWindow
-
-open Common
-open Utils
-
-(* external id : 'a -> 'a = "%identity" *)
-
-class virtual vprop ~name ~init ~set =
-  object (self)
-    val mutable s : string = init
-    val name : string = name
-    method private virtual parse : string -> 'a
-    method get = s
-    method set s' =
-      if s' <> s then begin
-       let v = self#parse s' in
-       if (set v) then begin
-         add_undo (Property ((self :> prop), s));
-         s <- s'
-       end
-      end
-    method modified = s <> init
-    method name = name
-    method code = s
-    method virtual range : range
-    method save_code = self#code
-  end
-
-let invalid_prop kind name s =
-  invalid_arg (Printf.sprintf "Property.%s(%s) <- %s" kind name s)
-
-class prop_enum ~values ~name ~init ~set =
-  object (self)
-    inherit vprop ~name ~init ~set
-    method private parse s =
-      try List.assoc s values
-      with Not_found -> invalid_prop "enum" name s
-    method range = Enum (List.map ~f:fst values)
-  end
-
-(* used for radio_button groups; there is nothing to do
-  in radtest when setting a radio_button group, only when writing
-  code or saving *)
-class prop_enum_dyn ~values ~name ~init ~set =
-  object (self)
-    inherit vprop ~name ~init ~set
-    method private parse s = ()
-    method range = Enum (values ())
-  end
-
-let bool_values =
-  [ "true", true; "false", false ]
-
-let shadow_type_values : (string * Tags.shadow_type) list =
-  [ "NONE", `NONE; "IN", `IN; "OUT", `OUT;
-    "ETCHED_IN", `ETCHED_IN; "ETCHED_OUT", `ETCHED_OUT ]
-
-let policy_type_values : (string * Tags.policy_type) list =
-  [ "ALWAYS", `ALWAYS; "AUTOMATIC", `AUTOMATIC ]
-
-let orientation_values : (string * Tags.orientation) list =
-  [ "HORIZONTAL", `HORIZONTAL; "VERTICAL", `VERTICAL ]
-
-let toolbar_style_values : (string * Tags.toolbar_style) list =
-  [ "ICONS", `ICONS; "TEXT", `TEXT; "BOTH", `BOTH ]
-
-let toolbar_space_style_values : (string * [`EMPTY | `LINE]) list =
-  [ "EMPTY", `EMPTY; "LINE", `LINE ]
-
-let relief_style_values : (string * Tags.relief_style) list =
-  [ "NORMAL", `NORMAL; "HALF", `HALF; "NONE", `NONE ]
-
-let position_values : (string * Tags.position) list =
-  [ "LEFT", `LEFT; "RIGHT", `RIGHT; "TOP", `TOP; "BOTTOM", `BOTTOM ]
-
-let combo_use_arrows_values : (string * [ `NEVER | `DEFAULT | `ALWAYS ]) list =
-[ "NEVER", `NEVER; "DEFAULT", `DEFAULT; "ALWAYS", `ALWAYS ] 
-
-let spin_button_update_policy_values :
-    (string * Tags. spin_button_update_policy) list =
-  [ "ALWAYS", `ALWAYS; "IF_VALID", `IF_VALID ]
-
-let button_box_style_values : (string * Tags.button_box_style) list =
-  [ "DEFAULT_STYLE", `DEFAULT_STYLE; "SPREAD", `SPREAD; "EDGE", `EDGE;
-    "START", `START; "END", `END ]
-
-let update_type_values : (string * Tags.update_type) list =
-  [ "CONTINUOUS", `CONTINUOUS; "DISCONTINUOUS", `DISCONTINUOUS;
-    "DELAYED", `DELAYED ]
-
-
-class prop_bool = prop_enum ~values:bool_values
-
-(*
-class prop_variant ~values ~name ~init ~set : prop =
-  object
-    inherit prop_enum ~values ~name ~init ~set
-    method code = "`" ^ s
-  end
-*)
-
-class prop_shadow = prop_enum ~values:shadow_type_values
-class prop_policy = prop_enum ~values:policy_type_values
-class prop_orientation = prop_enum ~values:orientation_values
-class prop_toolbar_style = prop_enum ~values:toolbar_style_values
-class prop_toolbar_space_style = prop_enum ~values:toolbar_space_style_values
-class prop_relief_style = prop_enum ~values:relief_style_values
-class prop_position = prop_enum ~values:position_values
-class prop_combo_use_arrows = prop_enum ~values:combo_use_arrows_values
-class prop_spin_button_update_policy = prop_enum
-    ~values:spin_button_update_policy_values
-class prop_button_box_style = prop_enum ~values:button_box_style_values
-class prop_update_type = prop_enum ~values:update_type_values
-
-class prop_int ~name ~init ~set : prop =
-  object
-    inherit vprop ~name ~init ~set
-    method private parse s =
-      try int_of_string s with _ -> invalid_prop "int" name s
-    method range = Int
-  end
-
-(* NB: float_of_string doesn't raise an exception in case of error *)
-class prop_float ~name ~init ~min ~max ~set : prop =
-  object
-    inherit vprop ~name ~init ~set
-    method private parse s =
-      try float_of_string s with _ -> invalid_prop "float" name s
-    method code =
-      if String.contains s '.' || String.contains s 'e' then s
-      else s ^ ".0"
-    method range = Float(min,max)
-  end
-
-class prop_string ~name ~init ~set : prop =
-  object
-    inherit vprop ~name ~init ~set
-    method private parse s = s
-    method range = String
-    method code = "\"" ^ String.escaped s ^ "\""
-  end
-
-class prop_adjustment ~name ~init ~set : prop =
-  object
-    inherit vprop ~name ~init ~set
-    method private parse = get5floats_from_string
-    method range = Adjust
-  end
-
-class prop_clist_titles ~name ~init ~set : prop =
-  object
-    inherit vprop ~name ~init ~set
-    method private parse = split_string ~sep:' '
-    method range = CList_titles
-    method code = "[ \"" ^
-      String.concat ~sep:"\"; \"" (split_string ~sep:' ' s) ^ "\" ]"
-    method save_code = "\"" ^ s ^ "\""
-  end
-
-class prop_file ~name ~init ~set : prop =
-  object
-    inherit vprop ~name ~init ~set
-    method private parse s = s
-    method range = File
-    method code = "\"" ^ String.escaped s ^ "\""
-  end
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/property.mli
deleted file mode 100644 (file)
index ccf2650..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-(* $Id$ *)
-
-open Gtk.Tags
-open Common
-
-class virtual vprop :
-  name:string ->               (* property's name *)
-  init:string ->               (* default value *)
-  set:('a -> bool) ->
-  object
-    val name : string
-    val mutable s : string
-    method code : string       (* encoded value *)
-    method get : string
-    method modified : bool
-    method name : string
-    method private virtual parse : string -> 'a
-    method virtual range : range
-    method save_code : string
-    method set : string -> unit
-  end
-
-class prop_int :
-  name:string -> init:string -> set:(int -> bool) -> prop
-
-class prop_float :
-  name:string ->
-  init:string -> min:float -> max:float -> set:(float -> bool) -> prop
-
-class prop_string :
-  name:string -> init:string -> set:(string -> bool) -> prop
-
-class prop_bool :
-  name:string -> init:string -> set:(bool -> bool) -> prop
-(*
-class prop_variant :
-  values:(string * 'a) list ->
-  name:string -> init:string -> set:('a -> bool) -> prop
-*)
-class prop_shadow :
-  name:string -> init:string -> set:(shadow_type -> bool) -> prop
-
-class prop_policy :
-  name:string -> init:string -> set:(policy_type -> bool) -> prop
-
-class prop_orientation :
-  name:string ->
-  init:string -> set:(Gtk.Tags.orientation -> bool) -> prop
-
-class prop_toolbar_style :
-  name:string ->
-  init:string -> set:(Gtk.Tags.toolbar_style -> bool) -> prop
-
-class prop_toolbar_space_style :
-  name:string -> init:string -> set:([ `EMPTY | `LINE] -> bool) -> prop
-
-class prop_relief_style :
-  name:string ->
-  init:string -> set:(Gtk.Tags.relief_style -> bool) -> prop
-
-class prop_position :
-  name:string ->
-  init:string -> set:(Gtk.Tags.position -> bool) -> prop
-
-class prop_combo_use_arrows :
-  name:string ->
-  init:string -> set:([ `NEVER | `DEFAULT | `ALWAYS] -> bool) -> prop
-
-class prop_spin_button_update_policy :
-  name:string ->
-  init:string -> set:(Gtk.Tags.spin_button_update_policy -> bool) -> prop
-
-class prop_button_box_style :
-  name:string ->
-  init:string -> set:(Gtk.Tags.button_box_style -> bool) -> prop
-
-class prop_update_type :
-  name:string ->
-  init:string -> set:(Gtk.Tags.update_type -> bool) -> prop
-
-class prop_enum_dyn :
-  values:(unit -> string list) -> name:string ->
-  init:string -> set:(unit -> bool) -> prop
-
-class prop_adjustment :
-  name:string -> init:string ->
-    set:(float * float * float * float * float -> bool) -> prop
-
-class prop_clist_titles :
-  name:string -> init:string ->
-    set:(string list -> bool) -> prop
-
-class prop_file :
-  name:string -> init:string -> set:(string -> bool) -> prop
-
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.ml
deleted file mode 100644 (file)
index 2f8b291..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-(* $Id$ *)
-
-open GObj
-
-open Common
-open Utils
-
-class type tiwidget_base = object
-  method name : string
-  method proplist : (string * prop) list
-end
-
-let prop_widget (prop : prop) =
-  match prop#range with
-    Enum l ->
-      let w = GEdit.combo ~popdown_strings:l ~use_arrows:`ALWAYS () in
-      w#entry#connect#changed ~callback:(fun () -> prop#set w#entry#text);
-      w#entry#set_editable false;
-      w#entry#set_text prop#get;
-      w#coerce
-  | String ->
-      let w = GEdit.entry ~text:prop#get () in
-      w#connect#activate ~callback:(fun () -> prop#set w#text);
-      w#coerce
-  | File ->
-      let w = GPack.hbox () in
-      let e = GEdit.entry ~text:prop#get ~editable:false ~packing:w#pack () in
-      let b = GButton.button ~label:"..." ~packing:w#pack () in
-      b#connect#clicked
-       ~callback:(fun () -> get_filename
-           ~callback:(fun name -> e#set_text name; prop#set name) (); ());
-      w#coerce
-  | Int ->
-      let adjustment =
-       GData.adjustment ~value:(float_of_string prop#get)
-         ~lower:(-2.) ~upper:5000. ~step_incr:1. ~page_incr:10. ~page_size:0. ()
-      in
-      let w = GEdit.spin_button ~rate:0.5 ~digits:0 ~adjustment () in
-      w#connect#activate
-       ~callback:(fun () -> prop#set (string_of_int w#value_as_int));
-      w#coerce
-  | Float (lower, upper) ->
-(*      let adjustment =
-       GData.adjustment ~value:(float_of_string prop#get)
-         ~lower ~upper ~step_incr:((upper-.lower)/.100.)
-         ~page_incr:((upper-.lower)/.10.) ~page_size:0. ()
-      in
-      let w = GEdit.spin_button ~rate:0.5 ~digits:2 ~adjustment () in
-      w#connect#activate
-       ~callback:(fun () -> prop#set (string_of_float w#value));
-      w#coerce
-*)
-      let w = entry_float ~init:(float_of_string prop#get) () in
-      w#connect#activate
-       ~callback:(fun () -> prop#set (string_of_float w#value));
-      w#coerce
-(*  | Adjust ->
-      let wpop = GWindow.window ~title:"Adjustment values" () in
-      let vb = GPack.vbox ~packing:wpop#add()  in
-      let hb1 = GPack.hbox ~packing:vb#pack () in
-      let l1 = GMisc.label ~text:"lower" ~packing:hb1#pack () in
-      let e1 = entry_float ~packing:hb1#pack
-         ~init:(float_of_string prop#get) ~set:prop#set in
-*)    
-  | CList_titles ->
-      let wpop = GWindow.window ~title:"titles of the columns" () in
-      let vb = GPack.vbox ~packing:wpop#add () in
-      let titles = split_string prop#get ~sep:' ' in
-      let n = List.length titles in
-      let rtitles = ref titles in
-      let rget = ref [] and rset = ref [] in
-      for i = 1 to n do
-       match !rtitles with
-       | hd::tl ->
-           let hb = GPack.hbox ~packing:vb#pack () in
-           let _ = GMisc.label ~text:("column" ^ (string_of_int i))
-               ~packing:hb#pack () in
-           let e = GEdit.entry ~text:hd ~packing:hb#pack () in
-           rtitles := tl;
-           rget := (fun () -> e#text) :: !rget;
-           rset := e#set_text :: !rset;
-       | _ -> failwith "CList_titles: this cannot happen!!"
-      done;
-      rtitles := titles;
-      rget := List.rev !rget;
-      rset := List.rev !rset;
-      let hb = GPack.hbox ~packing:vb#pack () in
-      let ok = GButton.button ~label:"OK" ~packing:hb#pack () in
-      let cancel = GButton.button ~label:"Cancel" ~packing:hb#pack () in
-      ok#connect#pressed
-       ~callback:(fun () ->
-         let tit = List.map ~f:(fun f -> f ()) !rget in
-         prop#set (String.concat ~sep:" " tit);
-         rtitles := tit;
-         wpop#misc#hide ());
-      cancel#connect#pressed
-       ~callback:(fun () ->
-         wpop#misc#hide ();
-         List.iter2 ~f:(fun f v -> f v) !rset !rtitles);
-      let e = GEdit.entry ~text:"double click here" ~editable:false () in
-      e#event#connect#button_press ~callback:
-       (fun ev -> 
-          GdkEvent.get_type ev = `TWO_BUTTON_PRESS &&
-         GdkEvent.Button.button ev = 1 &&
-          begin
-           wpop#misc#show ();
-            GtkSignal.stop_emit ();
-            true
-         end);
-      e#coerce
-
-let prop_box list =
-  let vbox = GPack.vbox () in
-  List.iter list ~f:
-    begin fun (name, prop) ->
-      let hbox =
-       GPack.hbox ~homogeneous:true ~packing:(vbox#pack ~expand:false) () in
-      GMisc.label ~text:name ~packing:hbox#pack ();
-      hbox#pack ~fill:true (prop_widget prop);
-      GMisc.separator `HORIZONTAL ~packing:(vbox#pack ~expand:false) ();
-      ()
-    end;
-  vbox
-
-class ['a] frozen lz = object
-  method get : 'a = Lazy.force lz
-end
-
-let vbox =
-  new frozen (lazy (GWindow.window ~show:true ~title:"Properties" ()))
-
-let init () = vbox#get
-
-let widget_pool = Hashtbl.create 7
-
-let boxref = ref None
-let shown_widget = ref ""
-
-let show_prop_box vb =
-  Gaux.may !boxref ~f:vbox#get#remove;
-  vbox#get#add vb#coerce;
-  boxref := Some vb#coerce
-
-let show (w : #tiwidget_base) =
-  let name = w#name in
-  let vb =
-    try
-      Hashtbl.find widget_pool name
-    with Not_found ->
-      let vb = prop_box w#proplist in
-      Hashtbl.add widget_pool ~key:name ~data:vb;
-      vb
-  in
-  show_prop_box vb;
-  shown_widget := name
-
-let add (w : #tiwidget_base) =
-  let vb = prop_box w#proplist in
-  Hashtbl.add widget_pool ~key:w#name ~data:vb
-
-
-let remove name =
-  Hashtbl.remove widget_pool name;
-  if !shown_widget = name then begin
-    shown_widget := "";
-    show_prop_box (GMisc.label ~text:"No widget selected" ())
-  end
-
-(*
-let change_name oldname newname =
-  let vb = Hashtbl.find widget_pool oldname in
-  Hashtbl.remove widget_pool oldname;
-  Hashtbl.add widget_pool ~key:newname ~data:vb
-*)
-
-let update (w : #tiwidget_base) show_modif =
-  let vb = prop_box w#proplist in
-  Hashtbl.remove widget_pool w#name;
-  Hashtbl.add widget_pool ~key:w#name ~data:vb;
-  if show_modif && !shown_widget = w#name then show_prop_box vb
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/propwin.mli
deleted file mode 100644 (file)
index 6636a4f..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-(* $Id$ *)
-
-open Common
-
-val init : unit -> GWindow.window
-val show : #tiwidget_base -> unit
-val add : #tiwidget_base -> unit
-val remove : string -> unit
-(* val change_name : string -> string -> unit *)
-val update : #tiwidget_base -> bool -> unit
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/radiobutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/radiobutton.xpm
deleted file mode 100644 (file)
index 0f5fbbd..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *radiobutton_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"++++++++++.++++++++++",
-"+++++++++...+++++++++",
-"++++++++.. ..++++++++",
-"+++++++.. X ..+++++++",
-"++++++.. XXX ..++++++",
-"+++++.. XXXXX ..+++++",
-"++++++OOXXXXXOO++++++",
-"+++++++OOXXXOO+++++++",
-"++++++++OOXOO++++++++",
-"+++++++++OOO+++++++++",
-"++++++++++O++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/scrolledwindow.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/scrolledwindow.xpm
deleted file mode 100644 (file)
index 44e59f6..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* XPM */
-static char *scrolledwindow_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 3 1",
-"  c Gray0",
-". c #d6d6d6",
-"X c Gray100",
-/* pixels */
-"XXXXXXXXXXXXXXXXXXXXX",
-"X.............X..... ",
-"X.............X.. .. ",
-"X.............X.   . ",
-"X.............X..... ",
-"X.............X      ",
-"X.............XXXXXX ",
-"X.............XX.... ",
-"X.............XX.... ",
-"X.............XXXXXX ",
-"X.............X..... ",
-"X.............X.   . ",
-"X.............X.. .. ",
-"X.............X..... ",
-"XXXXXXXXXXXXXXX      ",
-"X.... XXX .... ......",
-"X.. . X.. . .. ......",
-"X.  . X.. .  . ......",
-"X.. . X.. . .. ......",
-"X.... X.. .... ......",
-"X              ......"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/spinbutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/spinbutton.xpm
deleted file mode 100644 (file)
index f3a313b..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *spinbutton_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+                   +",
-"+ OOOOOOOOOOO OOOOO +",
-"+ OOOOOOOOOOO OX X. +",
-"+ OOOOOOOOOOO O   . +",
-"+ OOOOOOOOOOO OOOOO +",
-"+ OOOOOOOOOOO O   . +",
-"+ OOOOOOOOOOO OX X. +",
-"+ OOOOOOOOOOO ..... +",
-"+                   +",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/statusbar.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/statusbar.xpm
deleted file mode 100644 (file)
index 8576d88..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* XPM */
-static char *statusbar_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 7 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray87",
-"+ c Gray100",
-"@ c None",
-/* pixels */
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@+XX.@@@@@@@@@@@@@@",
-"@@@+XX.@@@@@@@@@@@@@@",
-"@@@+XX.@@@@@@@@@@@@@@",
-"@@@+XX.@@@@@@@@@@@@@@",
-"@@@+XX++++++++++++@@@",
-"@@@+XXXXXXXXXXXXXX@@@",
-"@@@+XXXXXXXXXXXXXX@@@",
-"@@@+XX............@@@",
-"@@@+XX.OOOOOOOOOOO@@@",
-"@@@+XX.OOOOOOOOOOO@@@",
-"@@@+XX.OOOOOOOOOOO@@@",
-"@@@+XX++++++++++++@@@",
-"@@@+XXXXXXXXXXXXXX@@@",
-"@@@+XXXXXXXXXXXXXX@@@",
-"@@@               @@@",
-"@@@@@@@@@@@@@@@@@@@@@",
-"@@@@@@@@@@@@@@@@@@@@@"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBase.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBase.ml
deleted file mode 100644 (file)
index 3907493..0000000
+++ /dev/null
@@ -1,671 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GObj
-open GContainer
-
-open Utils
-open Common
-open Property
-
-(* possible children; used to make the menus *)
-let widget_add_list =
-  [ "vbox"; "hbox"; "vbutton_box"; "hbutton_box"; "fixed";
-    "frame"; "aspect_frame"; "handle_box"; "event_box";
-    "hseparator"; "vseparator"; "statusbar"; "label"; "notebook";
-    "color_selection";
-    "button";
-    "toggle_button"; "check_button"; "radio_button"; "scrolled_window";
-
-    "entry"; "spin_button"; "combo"; "clist"; "toolbar"]
-
-
-(*********** selection ***********)
-
-let selection = ref ""
-let window_selection = ref ""
-
-
-(**************** signals class ***************)
-
-class tiwidget_signals ~signals =
-  let name_changed : string signal = signals in
-  object
-    val after = false
-    method after = {< after = true >}
-    method name_changed = name_changed#connect ~after
-  end
-
-
-(************* class type ***************)
-(* the ti<gtkwidget> classes encapsulate the corresponding gtk
-   widget which will be in the gtk-window and a tree item
-   labelled with the name of the widget which will be in the
-   tree-window.
-   all these classes have the same following interface *)
-
-class virtual tiwidget0 = object
-  method virtual widget : GObj.widget
-  method virtual connect_event : GObj.event_signals
-  method virtual parent : tiwidget0 option
-  method virtual set_parent : tiwidget0 -> unit
-  method virtual base : GObj.widget
-  method virtual tree_item : GTree2.tree_item
-  method virtual tree : GTree2.tree
-  method virtual children : (tiwidget0 * Gtk.Tags.pack_type) list
-  method virtual name : string
-  method virtual proplist : (string * prop) list
-  method virtual add_to_proplist : (string * prop) list -> unit
-  method virtual change_name_in_proplist : string -> string -> unit
-  method virtual set_property : string -> string -> unit
-  method virtual forall :  callback:(tiwidget0 -> unit) -> unit
-  method virtual remove : tiwidget0 -> unit
-(*  method virtual add_child_with_name : string -> string -> pos:int -> tiwidget0 *)
-  method virtual add_children : ?pos:int -> yywidget_tree -> unit
-  method virtual add_children_wo_undo : ?pos:int -> yywidget_tree -> string
-  method virtual remove_me  : unit -> unit
-  method virtual remove_me_without_undo  : unit -> unit
-  method virtual emit_code : Format.formatter -> char list -> unit
-  method virtual emit_init_code : Format.formatter -> packing:string -> unit
-  method virtual emit_method_code : Format.formatter -> unit
-  method virtual emit_initializer_code : Format.formatter -> unit
-  method virtual save : Format.formatter -> unit
-  method virtual copy : unit -> unit
-  method virtual connect : tiwidget_signals
-  method virtual disconnect : GtkSignal.id -> bool
-  method virtual child_up : tiwidget0 -> unit
-  method virtual up : unit -> unit
-  method virtual child_down : tiwidget0 -> unit
-  method virtual down : unit -> unit
-  method virtual next : tiwidget0
-  method virtual next_child : tiwidget0 -> tiwidget0
-  method virtual last : tiwidget0
-  method virtual prev : tiwidget0
-  method virtual set_full_menu : bool -> unit
-end
-
-class virtual window_and_tree0 = object
-  method virtual tiwin : tiwidget0
-(*  method virtual tree_window : window *)
-  method virtual change_selected : tiwidget0 -> unit
-  method virtual remove_sel : tiwidget0 -> unit
-  method virtual add_param : char
-  method virtual remove_param : char -> unit
-(*  method virtual emit : unit -> unit *)
-end
-
-(* forward declaration of function new_widget *)
-let new_tiwidget :
-    (classe:string -> ?pos:int -> name:string ->parent_tree:GTree2.tree ->
-      ?insert_evbox:bool -> ?listprop:(string * string) list -> window_and_tree0 -> tiwidget0) ref =
-  ref (fun ~classe ?pos ~name ~parent_tree ?insert_evbox ?listprop w -> failwith "new_tiwidget")
-
-
-let widget_map = Hashtbl.create 17
-
-(* list of names of radio_buttons (for groups) *)
-let radio_button_pool = ref []
-
-
-(************* window creation class *************)
-(* an instance of this class is created for each window opened
-   in radtest. It contains the tree window and the gtk window (tiwin) *)
-
-class window_and_tree ~name =
-  let tree_window = GWindow.window ~show:true ~title:(name ^ "-Tree") () in
-  let vbox = GPack.vbox ~spacing:2 ~packing:tree_window#add () in
-  let root_tree = GTree2.tree ~packing:vbox#pack ~selection_mode:`EXTENDED () in
-  let project_tree_item = GTree2.tree_item () in
-  let label = GMisc.label ~text:name ~xalign:0. ~yalign:0.5
-      ~packing:project_tree_item#add () in
-
-  object(self)
-
-    inherit window_and_tree0
-
-(* the params of the window class; because the class clist needs a param
-   I suppose there will be no more than 26 clists in a single window    *)
-    val param_list = Array.create 26 false
-
-    method add_param =
-      let i = ref 0 in
-      while param_list.(!i) do incr i done;
-      param_list.(!i) <- true;
-      char_of_int (97 + !i)
-
-    method remove_param c =
-      param_list.(int_of_char c - 97) <- false
-
-    method private param_list =
-      let r = ref [] in
-      for i = 25 downto 0 do
-       if Array.unsafe_get param_list i then r := (char_of_int (i+97)) :: !r
-      done;
-      !r
-
-(* I use magic here because the real initialization is done
-   below in the initializer part. It can't be done here because
-   of the call to self *)
-    val mutable tiwin = (Obj.magic 0 : tiwidget0)
-
-    method tiwin = tiwin
-    method tree_window = tree_window
-
-    method project_tree_item = project_tree_item
-
-(* the selected item in this window *)
-    val mutable selected = (None : tiwidget0 option)
-
-(* what to do when a new item is selected.
-   this method is passed to all the tiwidgets (by the select_fun
-   parameter) and they will call it when they are clicked on;
-   she is also called when changing the selection the arrow keys
-   (see in the initializer part) *)
-    method change_selected sel =
-      match selected with
-      |        None ->
-         selected <- Some sel;
-         sel#tree_item#misc#set_state `SELECTED;
-         sel#base#misc#set_state `SELECTED;
-         Propwin.show sel
-      |        Some old_sel ->
-         if sel = old_sel then begin
-           selected <- None;
-           sel#base#misc#set_state `NORMAL;
-           sel#tree_item#misc#set_state `NORMAL
-         end else begin
-           old_sel#tree_item#misc#set_state `NORMAL;
-           old_sel#base#misc#set_state `NORMAL;
-           selected <- Some sel;
-           sel#tree_item#misc#set_state `SELECTED;
-           sel#base#misc#set_state `SELECTED;
-           Propwin.show sel
-         end
-
-(* the tiwidget tiw is being removed; if it was selected,
-   put the selection to None *)
-    method remove_sel tiw =
-      match selected with
-      |        Some sel when sel = tiw -> selected <- None
-      |        _ -> ()
-
-(* emits the code corresponding to this window *)
-    method emit c = tiwin#emit_code c self#param_list;
-
-    method delete () =
-      tiwin#remove_me_without_undo ();
-      tree_window#destroy ();
-
-    initializer
-      tiwin <- !new_tiwidget ~classe:"window" ~name ~parent_tree:root_tree
-         (self : #window_and_tree0 :> window_and_tree0);
-
-      tiwin#connect#name_changed ~callback:
-         (fun n -> label#set_text n; tree_window#set_title (n ^ "-Tree"));
-
-      Propwin.show tiwin;
-
-      tree_window#event#connect#key_press ~callback:
-       begin fun ev ->
-         let state = GdkEvent.Key.state ev in
-         let keyval = GdkEvent.Key.keyval ev in
-         if keyval = GdkKeysyms._Up then begin
-           match selected with
-           | None -> ()
-           | Some t -> 
-               if List.mem `CONTROL state then t#up ()
-               else try
-                 self#change_selected t#prev
-               with Not_found -> ()
-         end
-         else if keyval = GdkKeysyms._Down then begin
-           match selected with
-           | None -> ()
-           | Some t -> 
-               if List.mem `CONTROL state then t#down ()
-               else try
-                 self#change_selected t#next
-               with Not_found -> ()
-         end;
-         GtkSignal.stop_emit ();
-          true
-       end;
-      ()
-  end
-
-
-
-(***************** class implementation *****************)
-(* this is the base class of the ti<gtkwidget> hierarchy.
-   all these classes will inherit from tiwidget, but without
-   adding new methods. In this way all the classes have the
-   same interface and we can use them in lists, pass them to
-   functions without caring on the type.
-   All methods needed by any of the classes are defined in
-   tiwidget but if a method is not pertinent in tiwidget
-   it has for implementation:
-      failwith "<name of the method>"
-   the real implementation of the method is done in the
-   class (or classes) in which it is needed (or sometimes
-   in tiwidget anyway).
-   Additionally, to workaround some problem with recursive types
-   the type of the (public) methods of tiwidget is defined in
-   tiwidget0 of which tiwidget inherits.
-   The parent_tree parameter is the tree in which the
-   tiwidget#tree_item will be inserted at position :pos.
-*)
-
-class virtual tiwidget ~name ~parent_tree:(parent_tree : GTree2.tree) ~pos
-    ~widget ?(insert_evbox=true) (parent_window : window_and_tree0) =
-object(self)
-
-  inherit tiwidget0
-  inherit has_ml_signals
-
-  val evbox =
-    if insert_evbox then
-      let ev = GBin.event_box () in ev#add widget#coerce; Some ev
-    else None
-
-(* used only for windows delete_event *)
-  method connect_event = failwith "tiwidget::connect_event"
-
-  val widget = widget#coerce
-  method widget = widget
-
-  val mutable parent = None
-  method set_parent p = parent <- Some p
-  method parent =  parent
-  method private sure_parent =
-    match parent with
-    | None -> failwith "sure_parent"
-    | Some p -> p
-
-  method base =
-    match evbox with
-    | None -> widget#coerce
-    | Some ev -> ev#coerce
-
-(* this is the name used in new_tiwidget for the creation
-   of an object of this class *)
-  val mutable classe = ""
-
-  val tree_item = GTree2.tree_item ()
-  method tree_item = tree_item
-
-  val mutable stree = GTree2.tree ()
-  method tree = stree
-
-  val label = GMisc.label ~text:name ~xalign:0. ~yalign:0.5 ()
-
-  val mutable name : string = name
-  method name = name
-
-(* this is the complete name for the creation of the widget
-   in lablgtk e.g. GPack.vbox; used in emit_init_code *)
-  method private class_name = ""
-
-  val mutable proplist : (string * prop) list = []
-  method proplist = proplist
-  method private get_mandatory_props = []
-
-  method add_to_proplist plist = proplist <- proplist @ plist
-
-(* for children of a box *)
-  method change_name_in_proplist : string -> string -> unit =
-    fun _ _ -> ()
-  method set_property name value_string = try
-    (List.assoc name proplist)#set value_string
-  with Not_found -> Printf.printf "Property not_found %s, %s\n" name value_string;
-    flush stdout
-
-  method private get_property name =
-    (List.assoc name proplist)#get
-
-
-(* the proplist with some items removed e.g. the expand... in a box
-   used for saving and emitting code *)
-  method private emit_clean_proplist =
-    List.fold_left ~f:(fun l p -> List.remove_assoc p l)
-      ~init:proplist
-      ([ "name"; "expand"; "fill"; "padding" ] @ self#get_mandatory_props)
-(*  method private emit_clean_proplist plist =
-    List.fold_left ~init:plist ~f:
-      (fun pl propname -> List.remove_assoc propname pl)
-       [ "name"; "expand"; "fill"; "padding" ]
-*)
-
-  method private save_clean_proplist =
-    List.fold_left ~f:(fun l p -> List.remove_assoc p l)
-      ~init:proplist ("name" :: self#get_mandatory_props)
-(*  method private save_clean_proplist =
-    List.remove_assoc "name" proplist *)
-
-  val mutable children : (tiwidget0 * Gtk.Tags.pack_type) list = []
-  method children = children
-  method forall =
-    fun ~callback -> List.iter (List.map children ~f:fst) ~f:callback
-
-(* encapsulate container#add and container#remove 
-   they are here because they depend on the type of the widget:
-   e.g.: gtkbin->add scrolled_window->add_with_viewport box->pack *)
-  method private add = failwith (name ^ "::add")
-  method remove = failwith (name ^ "::remove")
-
-
-(* removes self from his parent;
-   will be different for a window *)
-  method remove_me () =
-    let sref = ref "" in
-    self#save_to_string sref;
-    let pos = list_pos ~item:(self : #tiwidget0 :> tiwidget0)
-       (List.map self#sure_parent#children ~f:fst) in
-    let lexbuf = Lexing.from_string !sref in
-    let node = Load_parser.widget Load_lexer.token lexbuf in
-    add_undo (Add (self#sure_parent#name, node, pos));
-    self#remove_me_without_undo ()
-
-  method remove_me_without_undo () =
-(* it should be enough to only recursively remove the children from the
-   name_list and do the tip#remove and tip#tree#remove
-   only for self *)
-    self#forall ~callback:(fun tiw -> tiw#remove_me_without_undo ());
-    parent_window#remove_sel (self : #tiwidget0 :> tiwidget0);
-    match parent with
-    | None -> failwith "remove without parent"
-    | Some (tip : #tiwidget0) ->
-       tip#tree#remove tree_item;
-       tip#remove (self : #tiwidget0 :> tiwidget0);
-       name_list := list_remove !name_list ~f:(fun n -> n=name);
-       Hashtbl.remove widget_map name;
-       Propwin.remove name
-
-(* used for undo *)
-  method private remove_child_by_name name () =
-    let child = fst (List.find children
-       ~f:(fun (ch, _) -> ch#name = name)) in
-    child#remove_me ()
-
-(* for most widgets we make a child with new_tiwidget and then add it
-   to self; for toolbars we use toolbar#insert_button...     *)
-      method private make_child = !new_tiwidget
-
-(* adds a child and shows his properties;
-   used when adding a child by the menu or DnD *)
-  method private add_child classe ?name ?(undo = true) ?(affich = true) ?(pos = -1) ?(listprop = []) () =
-    let name = match name with
-    | None -> make_new_name classe
-    | Some n -> n in
-    let child = self#make_child ~classe ~name ~parent_tree:stree parent_window ~pos ~listprop in
-    child#set_parent (self : #tiwidget0 :> tiwidget0);
-    self#add child ~pos;
-    if affich then Propwin.show child;
-    if undo then add_undo (Remove name);
-    child
-
-
-(* adds the subtree saved in the Node *)
-  method add_children ?(pos = -1) node =
-    let child_name = self#add_children_wo_undo node ~pos in
-    add_undo (Remove child_name)
-
-  method add_children_wo_undo ?(pos = -1) (Node (child, children)) =
-    let classe, name, property_list = child in
-    let rname = change_name name in
-    let tc = self#add_child classe ~name:rname ~undo:false ~affich:false ~pos ~listprop:property_list () in
-    List.iter (List.rev children)
-      ~f:(fun c -> tc#add_children_wo_undo c; ());
-    List.iter property_list ~f:(fun (n,v) -> tc#set_property n v);
-    rname
-
-(* only a tiwindow can emit code *)
-  method emit_code = failwith "emit_code"
-
-(* some methods for emitting code *)
-(* this one calculates the expand, fill and padding parameters
-   of a box child *)
-  method private get_packing packing =
-    let aux name =
-      let prop  = List.assoc name proplist in
-      if prop#modified then " ~" ^ name ^ ":" ^ prop#code else ""
-    in
-    let efp = try
-      (aux "expand") ^ (aux "fill") ^ (aux "padding")
-    with Not_found -> "" in
-    if efp = "" then ("~packing:" ^ packing)
-    else ("~packing:(" ^ packing ^ efp ^ ")")
-
-(* this one emits the declaration code of the widget *)
-  method emit_init_code formatter ~packing =
-    Format.fprintf formatter "@ @[<hv 2>let %s =@ @[<hov 2>%s"
-      name self#class_name;
-    List.iter self#get_mandatory_props
-      ~f:begin fun name ->
-       Format.fprintf formatter "@ ~%s:%s" name
-         (List.assoc name proplist)#code
-      end;
-    let packing = self#get_packing packing in
-    if packing <> "" then Format.fprintf formatter "@ %s" packing;
-    self#emit_prop_code formatter;
-    Format.fprintf formatter "@ ()@ in@]@]"
-
-(* this one emits the properties which do not have their
-   default value; used by emit_init_code *)
-  method private emit_prop_code formatter =
-    let mandatory = self#get_mandatory_props in
-    List.iter self#emit_clean_proplist ~f:
-      begin  fun (name, prop) ->
-       if List.mem name mandatory then () else
-       if prop#modified then
-         Format.fprintf formatter "@ ~%s:%s" prop#name prop#code
-      end
-
-(* this one emits the method returning this widget *)
-  method emit_method_code formatter =
-    Format.fprintf formatter "@ method %s = %s" name name;
-
-(* emits the code in the initializer part for this widget *)
-  method emit_initializer_code _ = ()
-
-(* for saving the project to a file. Used also by copy and cut *)
-  method private save_start formatter =
-    Format.fprintf formatter "@\n@[<2><%s name=%s>" classe name;
-    List.iter
-      ~f:(fun p -> Format.fprintf formatter 
-         "@\n%s=\"%s\"" p (List.assoc p proplist)#get)
-      self#get_mandatory_props
-      
-
-  method private save_end formatter =
-    Format.fprintf formatter "@]@\n</%s>" classe
-
-  method save formatter =
-    self#save_start formatter;
-    List.iter self#save_clean_proplist ~f:
-      (fun (name, prop) ->
-       if prop#modified then
-         Format.fprintf formatter "@\n%s=%s" name prop#save_code);
-    self#forall ~callback:(fun w -> w#save formatter);
-    self#save_end formatter
-
-
-  method private save_to_string string_ref =
-    let b = Buffer.create 80 in
-    let f = Format.formatter_of_buffer b in
-    self#save f;
-    Format.pp_print_flush f ();
-    string_ref := Buffer.contents b
-
-  method private copy_to_sel selection = self#save_to_string selection
-
-  method copy () = self#copy_to_sel selection
-
-  method private cut () =
-    self#copy ();
-    self#remove_me ()
-
-  method private paste () =
-    let lexbuf = Lexing.from_string !selection in
-    let node = Load_parser.widget Load_lexer.token lexbuf in
-    self#add_children node
-    
-
-(* ML signal used when the name of the widget is changed *)
-  val name_changed : string signal = new signal
-  method connect = new tiwidget_signals ~signals:name_changed
-  method private call_name_changed = name_changed#call
-
-
-(* this is necessary because gtk_tree#remove deletes the tree
-   when removing the last item  *)
-(* suppressed this in gtktree2 
-  method new_tree () =
-    stree <- GTree2.tree;
-    tree_item#set_subtree stree;
-    tree_item#expand ()
-*)
-
-(* when full_menu is true we use the menu else the restricted menu *)
-  val mutable full_menu  = true
-  method set_full_menu b = full_menu <- b
-
-(* the menu for this widget 
-   This menu is recalculated when one clicks on the 3rd button.
-   There is nothing to do e.g. when the name of the widget changes,
-   it will change in the menu the next time. *)
-  method private menu ~time = self#restricted_menu ~time
-
-(* the restricted menu for this widget 
-   used for containers when they are full *)
-  method private restricted_menu ~time =
-    let menu = GMenu.menu () in
-    let mi_remove = GMenu.menu_item ~packing:menu#append       ~label:"remove" ()
-    and mi_cut  = GMenu.menu_item ~packing:menu#append ~label:"Cut" ()
-    and mi_copy = GMenu.menu_item ~packing:menu#append ~label:"Copy" () in
-    mi_remove#connect#activate ~callback:self#remove_me;
-    mi_copy#connect#activate ~callback:self#copy;
-    mi_cut#connect#activate ~callback:self#cut;
-    menu#popup ~button:3 ~time
-
-(* changes all that depends on the name *)
-  method private set_new_name new_name =
-    if test_unique new_name then begin
-      Hashtbl.remove widget_map name;
-      Hashtbl.add widget_map ~key:new_name
-       ~data:(self : #tiwidget0 :> tiwidget0);
-      if (classe = "radio_button") then begin
-       radio_button_pool := new_name ::
-         (list_remove !radio_button_pool ~f:(fun x -> x = name));
-       List.iter
-         ~f:(fun x -> Propwin.update (Hashtbl.find widget_map x) false)
-         !radio_button_pool
-      end;
-      label#set_text new_name;
-      let old_name = name in
-      name <- new_name;
-(*      Propwin.change_name old_name new_name; *)
-      name_list :=
-       new_name :: (list_remove !name_list ~f:(fun n -> n=old_name));
-      begin match self#parent with
-      | None -> ()
-      | Some p -> p#change_name_in_proplist old_name new_name
-      end;
-      self#call_name_changed new_name;
-      true
-    end
-    else begin
-      message_name ();
-      Propwin.update self true;
-      false
-    end
-
-
-(* moves the present tiw up in his parents' children list *)
-(* does something only when the parent is a box *)
-  method child_up = fun _ -> ()
-
-  method up () = match parent with
-  | None -> ()
-  | Some t -> t#child_up (self : #tiwidget0 :> tiwidget0)
-
-  method child_down = fun _ -> ()
-
-  method down () = match parent with
-  | None -> ()
-  | Some t -> t#child_down (self : #tiwidget0 :> tiwidget0)
-
-
-(* get the next tiwidget in the tree (used with Down arrow) *)
-  method next =
-    if children <> [] then fst (List.hd children)
-    else begin
-      match parent with
-      |        None -> raise Not_found
-      |        Some p -> p#next_child (self : #tiwidget0 :> tiwidget0)
-    end
-
-  method next_child child =
-    let _, tl = cut_list ~item:child (List.map ~f:fst children) in
-    match tl with
-    | ch :: next :: _ -> next
-    | ch :: [] -> begin
-       match parent with
-       | None -> raise Not_found
-       | Some p -> p#next_child (self : #tiwidget0 :> tiwidget0)
-    end
-    | _ -> failwith "next_child"
-
-(* get the last child of the last child ... of our last child.
-   Used by prev. *)
-  method last =
-    if children = [] then (self : #tiwidget0 :> tiwidget0)
-    else (fst (List.hd (List.rev children)))#last
-
-(* get the previous tiwidget in the tree (used with Up arrow) *)
-  method prev =
-    match parent with
-    | None -> raise Not_found
-    | Some p ->
-       let hd, _ = cut_list ~item:(self : #tiwidget0 :> tiwidget0)
-           (List.map ~f:fst p#children) in
-       match hd with
-       | [] -> p
-       | h :: _ -> h#last
-
-  initializer
-    Hashtbl.add widget_map ~key:name ~data:(self : #tiwidget0 :> tiwidget0);
-    name_list := name :: !name_list;
-    parent_tree#insert tree_item ~pos;
-    tree_item#set_subtree stree;
-    tree_item#add label#coerce;
-    tree_item#expand ();
-
-    proplist <-  proplist @
-      [ "name",
-        new prop_string ~name:"name" ~init:name ~set:self#set_new_name; 
-        "width", new prop_int ~name:"width" ~init:"-2"
-         ~set:(fun v -> widget#misc#set_geometry ~width:v (); true);
-        "height", new prop_int ~name:"height" ~init:"-2"
-         ~set:(fun v -> widget#misc#set_geometry ~height:v (); true) ];
-
-    self#add_signal name_changed;
-
-    tree_item#event#connect#button_press ~callback:
-      (fun ev -> match GdkEvent.get_type ev with
-      | `BUTTON_PRESS ->
-         if GdkEvent.Button.button ev = 1 then begin
-           parent_window#change_selected
-             (self : #tiwidget0 :> tiwidget0);
-         end
-         else if GdkEvent.Button.button ev = 3 then begin
-           if full_menu
-           then self#menu ~time:(GdkEvent.Button.time ev)
-           else self#restricted_menu ~time:(GdkEvent.Button.time ev);
-         end;
-         GtkSignal.stop_emit ();
-          true
-      | _ -> false);
-    ()
-end
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiBin.ml
deleted file mode 100644 (file)
index 5ebcb3e..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-open Gtk
-
-open Utils
-open Property
-
-open TiContainer
-
-class tiframe ~(widget : GBin.frame) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object
-  val frame = widget
-  inherit ticontainer ~name ~widget ~parent_tree ~pos
-      ~insert_evbox parent_window as container
-
-  method private class_name = "GBin.frame"
-
-  method private get_mandatory_props = [ "label" ]
-
-  initializer
-    classe <- "frame";
-    frame#set_label name;
-    proplist <- proplist @
-      [ "label",
-       new prop_string ~name:"label" ~init:name ~set:(ftrue frame#set_label);
-       "label_xalign",
-       new prop_float ~name:"label_xalign" ~init:"0.0" ~min:0. ~max:1.
-            ~set:(fun x -> frame#set_label_align ~x (); true);
-       "shadow_type",
-       new prop_shadow ~name:"shadow_type" ~init:"ETCHED_IN"
-         ~set:(ftrue frame#set_shadow_type) ]
-end
-
-let new_tiframe ~name ?(listprop = []) =
-  new tiframe ~widget:(GBin.frame ()) ~name
-
-
-
-
-class tiaspect_frame ~(widget : GBin.aspect_frame) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object
-  val aspect_frame = widget
-  inherit tiframe ~name ~widget:(widget :> GBin.frame) ~parent_tree ~pos
-      ~insert_evbox parent_window
-
-  method private class_name = "GBin.aspect_frame"
-
-  initializer
-    classe <- "aspect_frame";
-    frame#set_label name;
-    proplist <- proplist @
-      [ "obey_child",
-       new prop_bool ~name:"obey_child" ~init:"true"
-         ~set:(ftrue aspect_frame#set_obey_child);
-       "ratio",
-       new prop_float ~name:"ratio" ~init:"1.0" ~min:0. ~max:1.
-            ~set:(ftrue aspect_frame#set_ratio)
-      ]        
-end
-
-let new_tiaspect_frame ~name ?(listprop = []) =
-  new tiaspect_frame ~widget:(GBin.aspect_frame ()) ~name
-
-
-
-
-class tievent_box ~(widget : GBin.event_box) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object
-  val event_box = widget
-  inherit ticontainer ~name ~widget ~parent_tree ~pos
-      ~insert_evbox parent_window
-
-  method private class_name = "GBin.event_box"
-  initializer
-    classe <- "event_box"
-end
-
-let new_event_box ~name ?(listprop = []) =
-  new tievent_box ~widget:(GBin.event_box ()) ~name
-
-
-
-
-class tihandle_box ~(widget : GBin.handle_box) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object
-  val handle_box = widget
-  inherit ticontainer ~name ~widget ~parent_tree ~pos
-      ~insert_evbox parent_window
-
-  method private class_name = "GBin.handle_box"
-
-  initializer
-    classe <- "handle_box";
-    proplist <- proplist @
-      [ "shadow_type",
-       new prop_shadow ~name:"shadow_type" ~init:"OUT"
-         ~set:(ftrue handle_box#set_shadow_type);
-       "handle_position",
-       new prop_position ~name:"handle_position" ~init:"LEFT"
-         ~set:(ftrue handle_box#set_handle_position);
-       "snap_edge",
-       new prop_position ~name:"snap_edge" ~init:"TOP"
-         ~set:(ftrue handle_box#set_snap_edge)
-      ]
-end
-
-let new_handle_box ~name ?(listprop = []) =
-  new tihandle_box ~widget:(GBin.handle_box ()) ~name
-
-
-
-
-
-class tiviewport ~(widget : GBin.handle_box) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object
-  val viewport = widget
-  inherit ticontainer ~name ~widget ~parent_tree ~pos
-      ~insert_evbox parent_window
-
-  method private class_name = "GBin.viewport"
-
-  initializer
-    classe <- "viewport";
-    proplist <- proplist @
-      [ "shadow_type",
-       new prop_shadow ~name:"shadow_type" ~init:"OUT"
-         ~set:(ftrue viewport#set_shadow_type)
-      ]
-end
-
-let new_viewport ~name ?(listprop = []) =
-  new tiviewport ~widget:(GBin.handle_box ()) ~name
-
-
-
-
-
-class tiscrolled_window ~(widget : GBin.scrolled_window)
-    ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window =
-  object(self)
-    val scrolled_window = widget
-    inherit ticontainer ~name ~insert_evbox
-       ~parent_tree ~pos ~widget parent_window
-
-    method private class_name = "GBin.scrolled_window"
-    method private name_of_add_method = "#add_with_viewport"
-
-    method private add rw ~pos =
-      scrolled_window#add_with_viewport (rw#base);
-      children <- [ rw, `START];
-      self#set_full_menu false;
-      tree_item#drag#dest_unset ()
-
-(* we must remove the child from the viewport,
-   not from the scrolled_window;
-   it is not mandatory to remove the viewport
-   from the scrolled_window *)
-    method remove child =
-      let viewport = (new GContainer.container (GtkBase.Container.cast (List.hd scrolled_window#children)#as_widget)) in
-      viewport#remove child#base;
-(*      scrolled_window#remove (List.hd scrolled_window#children); *)
-      children <- [ ];
-      self#set_full_menu true;
-      tree_item#drag#dest_set ~actions:[`COPY]
-       [ { target = "STRING"; flags = []; info = 0} ]
-
-
-    initializer
-      classe <- "scrolled_window";
-      proplist <- proplist @
-       [ "hscrollbar_policy",
-         new prop_policy ~name:"hscrollbar_policy" ~init:"ALWAYS"
-           ~set:(ftrue scrolled_window#set_hpolicy);
-         "vscrollbar_policy",
-         new prop_policy ~name:"vscrollbar_policy" ~init:"ALWAYS"
-           ~set:(ftrue scrolled_window#set_vpolicy) ]
-end
-
-let new_tiscrolled_window ~name ?(listprop = []) =
-  new tiscrolled_window ~widget:(GBin.scrolled_window ()) ~name
-
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiButton.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiButton.ml
deleted file mode 100644 (file)
index 174c6eb..0000000
+++ /dev/null
@@ -1,372 +0,0 @@
-open Utils
-open Property
-
-open TiBase
-open TiContainer
-
-(* the button inherits from widget because it can't accept
-   a child; 
-   needs to add the border_width property *)
-class tibutton ~(widget : #GButton.button) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object(self)
-  val button = widget
-  inherit tiwidget ~name ~widget ~parent_tree ~pos ~insert_evbox
-       parent_window as widget
-
-  method private class_name = "GButton.button"
-
-  method private get_mandatory_props = [ "label" ]
-
-  initializer
-    classe <- "button";
-    proplist <-  proplist @
-      [ "border_width",        new prop_int ~name:"border_width" ~init:"0"
-                         ~set:(ftrue button#set_border_width);
-       "label",
-       new prop_string ~name:"label" ~init:name ~set:
-         begin fun v ->
-           button#remove (List.hd button#children)#coerce;
-           GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add ();
-           true
-         end ]
-end
-
-let new_tibutton ~name ?(listprop = []) =
-  let b = GButton.button ~label:name () in
-  b#event#connect#enter_notify
-    ~callback:(fun _ -> GtkSignal.stop_emit (); true);
-  b#event#connect#leave_notify
-    ~callback:(fun _ -> GtkSignal.stop_emit (); true);
-  new tibutton ~widget:b ~name
-
-
-class ticheck_button ~(widget : #GButton.toggle_button) ~name
-    ~parent_tree ~pos ?(insert_evbox=true) parent_window =
-object(self)
-  val button = widget
-  inherit tiwidget ~name ~widget ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-
-  method private class_name = "GButton.check_button"
-
-  method private get_mandatory_props = [ "label" ]
-
-  initializer
-    classe <- "check_button";
-    proplist <-  proplist @
-      [ "border_width",        new prop_int ~name:"border_width" ~init:"0"
-                        ~set:(ftrue button#set_border_width);
-       "label",
-       new prop_string ~name:"label" ~init:name ~set:
-         begin fun v ->
-           button#remove (List.hd button#children)#coerce;
-           GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add ();
-           true
-         end
-      ]
-end
-
-let new_ticheck_button ~name ?(listprop = []) =
-  new ticheck_button ~widget:(GButton.check_button ~label:name ()) ~name
-
-
-
-class titoggle_button ~(widget : #GButton.toggle_button) ~name
-    ~parent_tree ~pos ?(insert_evbox=true) parent_window =
-object(self)
-  val button = widget
-  inherit tiwidget ~name ~widget ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-  method private class_name = "GButton.toggle_button"
-
-  method private get_mandatory_props = [ "label" ]
-
-  initializer
-    classe <- "toggle_button";
-    proplist <-  proplist @
-      [ "border width",        new prop_int ~name:"border_width" ~init:"0"
-                         ~set:(ftrue button#set_border_width);
-       "label",
-       new prop_string ~name:"label" ~init:name ~set:
-         begin fun v ->
-           button#remove (List.hd button#children)#coerce;
-           GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add ();
-           true
-         end ]
-end
-
-let new_titoggle_button ~name ?(listprop = []) =
-  let b = GButton.toggle_button ~label:name () in
-(*  b#connect#event#enter_notify
-    ~callback:(fun _ -> GtkSignal.stop_emit ());
-  b#connect#event#leave_notify
-    ~callback:(fun _ -> GtkSignal.stop_emit ());
-*)
-  new titoggle_button ~name ~widget:b
-
-
-class tiradio_button ~(widget : #GButton.radio_button) ~name:nname
-    ~parent_tree ~pos ?(insert_evbox=true) parent_window =
-object(self)
-  val button = widget
-  inherit tiwidget ~name:nname ~widget ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-  val group_prop =
-    new prop_enum_dyn ~values:(fun () -> !radio_button_pool) ~name:"group"
-      ~set:(fun () -> true) ~init:nname
-
-
-  method private class_name = "GButton.radio_button"
-
-  method remove_me_without_undo () =
-    radio_button_pool := list_remove !radio_button_pool
-       ~f:(fun x -> x = name);
-    widget#remove_me_without_undo ()
-
-  method private get_mandatory_props = [ "label" ]
-
-  method private emit_clean_proplist =
-    List.remove_assoc "group" widget#emit_clean_proplist
-
-  method emit_initializer_code formatter =
-    let groupname = group_prop#get in
-    if name <> groupname then
-      Format.fprintf formatter "@ %s#set_group %s#group;" name groupname
-
-  initializer
-    classe <- "radio_button";
-    radio_button_pool := name :: !radio_button_pool;
-    List.iter
-      ~f:(fun x -> Propwin.update (Hashtbl.find widget_map x) true)
-      (List.tl !radio_button_pool);
-
-    proplist <-  proplist @
-      [ "border_width",        new prop_int ~name:"border_width" ~init:"0"
-                         ~set:(ftrue button#set_border_width);
-       "label",
-       new prop_string ~name:"label" ~init:name ~set:
-         begin fun v ->
-           button#remove (List.hd button#children)#coerce;
-           GMisc.label ~text:v ~xalign:0.5 ~yalign:0.5 ~packing:button#add ();
-           true
-         end ;
-       "group", group_prop
-      ]
-end
-
-let new_tiradio_button ~name ?(listprop = []) =
-  let b = GButton.radio_button ~label:name () in
-  (*
-  b#event#connect#enter_notify
-    ~callback:(fun _ -> b#misc#stop_emit ~name:"enter_notify_event"; true);
-  b#event#connect#leave_notify
-    ~callback:(fun _ -> b#misc#stop_emit ~name:"leave_notify_event"; true);
-  *)
-  new tiradio_button ~name ~widget:b
-
-
-
-
-class tibutton_toolbar ~(widget : #GButton.button) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window ~toolbar =
-object(self)
-  val button = widget
-  inherit tibutton ~name ~widget ~parent_tree ~pos ~insert_evbox
-       parent_window as button
-
-  method private get_mandatory_props =
-    [ "text"; "tooltip"; "tooltip_private" ]
-
-  method emit_init_code formatter ~packing =
-    Format.fprintf formatter "@ @[<hv 2>let %s =@ @[<hov 2>%s#insert_button"
-      name toolbar#name;
-    List.iter self#get_mandatory_props ~f:
-      begin fun name ->
-       Format.fprintf formatter "@ ~%s:%s" name
-         (List.assoc name proplist)#code
-      end;
-    Format.fprintf formatter "@ ()@ in@]@]"
-
-  initializer
-    proplist <- List.remove_assoc "label" proplist
-end
-
-
-class titoggle_button_toolbar ~(widget : #GButton.toggle_button) ~name
-    ~parent_tree ~pos ?(insert_evbox=true) parent_window ~toolbar =
-object(self)
-  val button = widget
-  inherit titoggle_button ~name ~widget ~parent_tree ~pos ~insert_evbox
-       parent_window as button
-
-  method private get_mandatory_props =
-    [ "text"; "tooltip"; "tooltip_private" ]
-
-  method emit_init_code formatter ~packing =
-    Format.fprintf formatter
-      "@ @[<hv 2>let %s =@ @[<hov 2>%s#insert_toggle_button"
-      name toolbar#name;
-    List.iter self#get_mandatory_props ~f:
-      begin fun name ->
-       Format.fprintf formatter "@ ~%s:%s" name
-         (List.assoc name proplist)#code
-      end;
-    Format.fprintf formatter "@ ()@ in@]@]"
-
-  initializer
-    proplist <- List.remove_assoc "label" proplist
-end
-
-
-class tiradio_button_toolbar ~(widget : #GButton.radio_button) ~name
-    ~parent_tree ~pos ?(insert_evbox=true) parent_window ~toolbar =
-object(self)
-  val button = widget
-  inherit tiradio_button ~name ~widget ~parent_tree ~pos ~insert_evbox
-       parent_window as button
-
-  method private get_mandatory_props =
-    [ "text"; "tooltip"; "tooltip_private" ]
-
-  method emit_init_code formatter ~packing =
-    Format.fprintf formatter
-      "@ @[<hv 2>let %s =@ @[<hov 2>%s#insert_radio_button"
-      name toolbar#name;
-    List.iter self#get_mandatory_props ~f:
-      begin fun name ->
-       Format.fprintf formatter "@ ~%s:%s" name
-         (List.assoc name proplist)#code
-      end;
-    Format.fprintf formatter "@ ()@ in@]@]"
-
-  initializer
-    proplist <- List.remove_assoc "label" proplist
-end
-
-
-
-
-class titoolbar ~(widget : GToolbar2.toolbar2) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object(self)
-  val toolbar = widget
-  inherit ticontainer ~name ~widget ~parent_tree ~pos
-    ~insert_evbox parent_window
-
-  method private class_name = "GButton.toolbar"
-
-  method private add child ~pos =
-    children <- children @ [child, `START]
-
-  method private get_pos child =
-    let rec aux n = function
-      |        [] -> failwith "toolbar::get_pos"
-      |        (hd, _)::tl -> if hd = child then n else aux (n+1) tl in
-    aux 0 children
-
-  method private make_child ~classe ?(pos = -1) ~name ~parent_tree
-      ?(insert_evbox = true) ?(listprop = []) parent_window =
-    match classe with
-    | "button" ->
-       let t = try List.assoc "text" listprop with Not_found -> "" in
-       let tt = try List.assoc "tooltip" listprop with Not_found -> "" in
-       let ptt = try List.assoc "tooltip_private" listprop
-       with Not_found -> "" in
-       let listp = List.fold_left ~f:(fun l p -> List.remove_assoc p l)
-           ~init:listprop
-           [ "text"; "tooltip"; "tooltip_private" ] in
-       let b = toolbar#insert_button ~text:t ~tooltip:tt
-           ~tooltip_private:ptt () in
-       let child = new tibutton_toolbar ~name ~widget:b ~pos:(-1)
-             ~insert_evbox:false ~parent_tree:stree parent_window ~toolbar:self in
-       let tp = new prop_string ~name:"text" ~init:t
-           ~set:(fun v -> 
-             toolbar#set_text v (self#get_pos child); true)
-       and ttp = new prop_string ~name:"tooltip" ~init:tt
-           ~set:(fun _ -> true)
-       and pttp = new prop_string ~name:"tooltip_private" ~init:ptt
-           ~set:(fun _ -> true) in
-       child#add_to_proplist
-         [ "text", tp; "tooltip", ttp; "tooltip_private", pttp ];
-       child
-    | "toggle_button" ->
-       let t = try List.assoc "text" listprop with Not_found -> "" in
-       let tt = try List.assoc "tooltip" listprop with Not_found -> "" in
-       let ptt = try List.assoc "tooltip_private" listprop
-       with Not_found -> "" in
-       let listp = List.fold_left ~f:(fun l p -> List.remove_assoc p l)
-           ~init:listprop
-           [ "text"; "tooltip"; "tooltip_private" ] in
-       let b = toolbar#insert_toggle_button ~text:t ~tooltip:tt
-           ~tooltip_private:ptt () in
-       let child = new titoggle_button_toolbar ~name ~widget:b ~pos:(-1)
-             ~insert_evbox:false ~parent_tree:stree parent_window ~toolbar:self in
-       let tp = new prop_string ~name:"text" ~init:t
-           ~set:(fun v -> toolbar#set_text v (self#get_pos child); true)
-       and ttp = new prop_string ~name:"tooltip" ~init:tt
-           ~set:(fun _ -> true)
-       and pttp = new prop_string ~name:"tooltip_private" ~init:ptt
-           ~set:(fun _ -> true) in
-       child#add_to_proplist
-         [ "text", tp; "tooltip", ttp; "tooltip_private", pttp ];
-       child
-    | "radio_button" ->
-       let t = try List.assoc "text" listprop with Not_found -> "" in
-       let tt = try List.assoc "tooltip" listprop with Not_found -> "" in
-       let ptt = try List.assoc "tooltip_private" listprop
-       with Not_found -> "" in
-       let listp = List.fold_left ~f:(fun l p -> List.remove_assoc p l)
-           ~init:listprop
-           [ "text"; "tooltip"; "tooltip_private" ] in
-       let b = toolbar#insert_radio_button ~text:t ~tooltip:tt
-           ~tooltip_private:ptt () in
-       let child = new tiradio_button_toolbar ~name ~widget:b ~pos:(-1)
-             ~insert_evbox:false ~parent_tree:stree parent_window ~toolbar:self in
-       let tp = new prop_string ~name:"text" ~init:t
-           ~set:(fun v -> toolbar#set_text v (self#get_pos child); true)
-       and ttp = new prop_string ~name:"tooltip" ~init:tt
-           ~set:(fun _ -> true)
-       and pttp = new prop_string ~name:"tooltip_private" ~init:ptt
-           ~set:(fun _ -> true) in
-       child#add_to_proplist
-         [ "text", tp; "tooltip", ttp; "tooltip_private", pttp ];
-       child
-    | _ -> failwith "toolbar"
-
-
-
-  method remove child =
-    toolbar#remove (child#base);
-    children <- list_remove ~f:(fun (ch, _) -> ch = child) children;
-
-  initializer
-    classe <- "toolbar";
-    proplist <- proplist @
-      [ "orientation",
-       new prop_orientation ~name:"orientation" ~init:"HORIZONTAL"
-         ~set:(ftrue toolbar#set_orientation);
-       "style",
-       new prop_toolbar_style ~name:"style" ~init:"BOTH"
-         ~set:(ftrue toolbar#set_style);
-       "space_size",
-       new prop_int ~name:"space_size" ~init:"5"
-         ~set:(ftrue toolbar#set_space_size);
-       "space_style",
-       new prop_toolbar_space_style ~name:"space_style" ~init:"EMPTY"
-         ~set:(ftrue toolbar#set_space_style);
-       "tooltips",
-       new prop_bool ~name:"tooltips" ~init:"true"
-         ~set:(ftrue toolbar#set_tooltips);
-       "button_relief",
-       new prop_relief_style ~name:"button_relief" ~init:"NORMAL"
-         ~set:(ftrue toolbar#set_button_relief)
-      ]
-end
-
-let new_toolbar ~name ?(listprop = []) =
-  new titoolbar ~name ~widget:(GToolbar2.toolbar2 ())
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiContainer.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiContainer.ml
deleted file mode 100644 (file)
index ddf04d3..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-
-open Gtk
-open GObj
-open GContainer
-
-open Utils
-open Property
-
-open TiBase
-
-(* for containers being able to have at least one child;
-   not for buttons (can't have children) *)
-
-class virtual ticontainer ~widget ~name
-    ?(insert_evbox=true) ~parent_tree ~pos parent_window =
-object(self)
-
-  val container = (widget : #container :> container)
-
-  inherit tiwidget ~name ~widget ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-(* name of the add method: add for most bin widgets,
-   pack for boxes, add_with_viewport for scrolled windows... *)
-  method private name_of_add_method = "#add"
-
-  method private add child ~pos =
-    container#add child#base;
-    children <- [child, `START];
-    self#set_full_menu false;
-    tree_item#drag#dest_unset ()
-
-  method remove child =
-    container#remove child#base;
-    children <- [];
-    self#set_full_menu true;
-    tree_item#drag#dest_set ~actions:[`COPY]
-      [ { target = "STRING"; flags = []; info = 0} ]
-
-  method private menu ~time =
-    let menu = GMenu.menu () and menu_add = GMenu.menu () in
-    List.iter
-      ~f:(fun n ->
-       let mi = GMenu.menu_item ~packing:menu_add#append ~label:n ()
-       in mi#connect#activate
-         ~callback:(fun () -> self#add_child n ();()); ())
-      widget_add_list;      
-    let mi_add = GMenu.menu_item ~packing:menu#append
-       ~label:("add to " ^ name) ()
-    and mi_remove = GMenu.menu_item ~packing:menu#append
-       ~label:("remove " ^ name) ()
-    and mi_cut  = GMenu.menu_item ~packing:menu#append ~label:"Cut" ()
-    and mi_copy = GMenu.menu_item ~packing:menu#append ~label:"Copy" ()
-    and mi_paste = GMenu.menu_item ~packing:menu#append ~label:"Paste" () in
-    mi_remove#connect#activate ~callback:self#remove_me;
-    mi_add#set_submenu menu_add;
-    mi_copy#connect#activate ~callback:self#copy;
-    mi_cut#connect#activate ~callback:self#cut;
-    if !selection <> ""
-    then begin mi_paste#connect#activate ~callback:self#paste; () end
-    else mi_paste#misc#set_sensitive false;
-    menu#popup ~button:3 ~time
-
-  method emit_init_code c ~packing =
-    widget#emit_init_code c ~packing;
-    self#forall ~callback:(fun child -> child#emit_init_code c
-       ~packing:(name ^ self#name_of_add_method))
-
-  method emit_method_code c =
-    widget#emit_method_code c;
-    self#forall ~callback:(fun child -> child#emit_method_code c)
-
-  method emit_initializer_code c =
-    widget#emit_initializer_code c;
-    self#forall ~callback:(fun child -> child#emit_initializer_code c)
-
-
-  initializer
-    proplist <-  proplist @
-      [ "border_width",        new prop_int ~name:"border_width" ~init:"0"
-                         ~set:(ftrue container#set_border_width) ];
-
-    tree_item#drag#dest_set ~actions:[`COPY]
-      [ { target = "STRING"; flags = []; info = 0} ];
-    tree_item#drag#connect#data_received ~callback:
-      begin fun (context : drag_context) ~x ~y
-         (data : selection_data) ~info ~time ->
-           self#add_child data#data ();
-           context#finish ~success:true ~del:false ~time
-      end;()
-end
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiEdit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiEdit.ml
deleted file mode 100644 (file)
index 4b0977b..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-open Utils
-open Property
-
-open TiBase
-
-
-
-class tientry ~(widget : GEdit.entry) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object
-  val entry = widget
-  inherit tiwidget ~name ~widget ~parent_tree ~pos
-      ~insert_evbox parent_window
-
-  method private class_name = "GEdit.entry"
-  initializer
-    classe <- "entry";
-      proplist <- proplist @
-      [ "visibility",
-       new prop_bool ~name:"visibility" ~init:"true"
-                    ~set:(ftrue entry#set_visibility);
-       "editable",
-       new prop_bool ~name:"editable" ~init:"true"
-                    ~set:(ftrue entry#set_editable)
-      ]
-end
-
-let new_tientry ~name ?(listprop = []) =
-  new tientry ~name ~widget:(GEdit.entry ())
-
-
-class tispin_button ~(widget : GEdit.spin_button) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object
-    val spin_button = widget
-  inherit tientry ~widget:(widget :> GEdit.entry) ~name ~parent_tree ~pos
-      ~insert_evbox parent_window
-
-  method private class_name = "GEdit.spin_button"
-  initializer
-    classe <- "spin_button";
-      proplist <- proplist @
-      [ "digits",
-       new prop_int ~name:"digits" ~init:"0"
-                    ~set:(ftrue spin_button#set_digits);
-       "update_policy",
-       new prop_spin_button_update_policy ~name:"update_policy"
-         ~init:"ALWAYS"
-         ~set:(ftrue spin_button#set_update_policy);
-       "numeric",
-       new prop_bool ~name:"numeric" ~init:"false"
-         ~set:(ftrue spin_button#set_numeric);
-       "wrap",
-       new prop_bool ~name:"wrap" ~init:"false"
-         ~set:(ftrue spin_button#set_wrap);
-       "shadow_type",
-       new prop_shadow ~name:"shadow_type" ~init:"NONE"
-         ~set:(ftrue spin_button#set_shadow_type);
-       "snap_to_ticks",
-       new prop_bool ~name:"snap_to_ticks" ~init:"false"
-         ~set:(ftrue spin_button#set_snap_to_ticks)
-      ]
-    
-end
-
-
-let get_adjustment () =
-  let rv = ref 0. and rl = ref 0. and ru = ref 100. and rsi = ref 1.
-      and rpi = ref 10. and rps = ref 10. in
-  let w  = GWindow.window ~modal:true () in
-  let v  = GPack.vbox  ~packing:w#add () in
-  let l  = GMisc.label ~text:"adjustment properties" ~packing:v#pack () in
-  let h1 = GPack.hbox ~packing:v#pack () in
-  let l1 = GMisc.label ~text:"value" ~packing:h1#pack () in
-  let e1 = GEdit.entry ~text:"0." ~packing:h1#pack () in
-  let h2 = GPack.hbox ~packing:v#pack () in
-  let l2 = GMisc.label ~text:"lower" ~packing:h2#pack () in
-  let e2 = GEdit.entry ~text:"0." ~packing:h2#pack () in
-  let h3 = GPack.hbox ~packing:v#pack () in
-  let l3 = GMisc.label ~text:"upper" ~packing:h3#pack () in
-  let e3 = GEdit.entry ~text:"100." ~packing:h3#pack () in
-  let h4 = GPack.hbox ~packing:v#pack () in
-  let l4 = GMisc.label ~text:"step_incr" ~packing:h4#pack () in
-  let e4 = GEdit.entry ~text:"1." ~packing:h4#pack () in
-  let h5 = GPack.hbox ~packing:v#pack () in
-  let l5 = GMisc.label ~text:"page_incr" ~packing:h5#pack () in
-  let e5 = GEdit.entry ~text:"10." ~packing:h5#pack () in
-  let h6 = GPack.hbox ~packing:v#pack () in
-  let l6 = GMisc.label ~text:"page_size" ~packing:h6#pack () in
-  let e6 = GEdit.entry ~text:"10." ~packing:h6#pack () in
-  let h7 = GPack.hbox ~packing:v#pack () in
-  let b1 = GButton.button ~label:"OK" ~packing:h7#pack () in
-  let b2 = GButton.button ~label:"Cancel" ~packing:h7#pack () in
-  w#show ();
-  b1#connect#clicked
-    ~callback:(fun () ->
-      begin
-       try rv  := float_of_string e1#text with _ ->
-       try rv  := float_of_int (int_of_string e1#text) with _ -> () end;
-      begin
-       try rl  := float_of_string e2#text with _ ->
-       try rl  := float_of_int (int_of_string e2#text) with _ -> () end;
-      begin
-       try ru  := float_of_string e3#text with _ ->
-       try ru  := float_of_int (int_of_string e3#text) with _ -> () end;
-      begin
-       try rsi := float_of_string e4#text with _ ->
-       try rsi := float_of_int (int_of_string e4#text) with _ -> () end;
-      begin
-       try rpi := float_of_string e5#text with _ ->
-       try rpi := float_of_int (int_of_string e5#text) with _ -> () end;
-      begin
-       try rps := float_of_string e6#text with _ ->
-       try rps := float_of_int (int_of_string e6#text) with _ -> () end;
-      w#destroy ());
-  b2#connect#clicked ~callback:w#destroy;
-  w#connect#destroy ~callback:GMain.Main.quit;
-  GMain.Main.main ();
-  !rv, !rl, !ru, !rsi, !rpi, !rps
-
-let new_tispin_button ~name ?(listprop = []) =
-  let v, l, u, si, pi, ps = get_adjustment () in
-  new tispin_button ~name
-    ~widget:(GEdit.spin_button ~adjustment:
-              (GData.adjustment ~value:v ~lower:l ~upper:u
-                 ~step_incr:si ~page_incr:pi ~page_size:ps ()) ())
-
-
-class ticombo ~(widget : GEdit.combo) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object
-  val combo = widget
-  inherit tiwidget ~name ~widget ~parent_tree ~pos
-      ~insert_evbox parent_window
-
-  method private class_name = "GEdit.combo"
-  initializer
-    classe <- "combo";
-      proplist <- proplist @
-      [ "use_arrows",
-       new prop_combo_use_arrows ~name:"use_arrows" ~init:"true"
-                    ~set:(ftrue combo#set_use_arrows);
-       "case_sensitive",
-       new prop_bool ~name:"case_sensitive" ~init:"false"
-                    ~set:(ftrue combo#set_case_sensitive)
-      ]
-end
-
-let new_ticombo ~name ?(listprop = []) =
-  new ticombo ~name ~widget:(GEdit.combo ())
-
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiList.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiList.ml
deleted file mode 100644 (file)
index 770e19b..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-
-open Utils
-open Property
-
-open TiBase
-
-class ticlist ~(widget : 'a GList.clist) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window ~columns ~titles =
-  object(self)
-    val clist = widget
-    inherit tiwidget ~name ~widget ~parent_tree ~pos
-       ~insert_evbox parent_window as widget
-
-    val param = parent_window#add_param
-
-    method private class_name = "GList.clist"
-
-    method private get_mandatory_props = [ "columns" ]
-
-    method remove_me_without_undo () =
-      parent_window#remove_param param;
-      widget#remove_me_without_undo ()
-
-    method emit_init_code formatter ~packing =
-      Format.fprintf formatter 
-       "@ @[<hv 2>let (%s : '%c GList.clist) =@ @[<hov 2>GList.clist"
-       name param;
-      List.iter self#get_mandatory_props ~f:
-       begin fun name ->
-         Format.fprintf formatter "@ ~%s:%s" name
-           (List.assoc name proplist)#code
-       end;
-      let packing = self#get_packing packing in
-      if packing <> "" then Format.fprintf formatter "@ %s" packing;
-      self#emit_prop_code formatter;
-      Format.fprintf formatter "@ ()@ in@]@]"
-
-
-    initializer
-      classe <- "clist";
-      proplist <- proplist @
-      [ "columns",
-       new prop_int ~name:"columns" ~init:(string_of_int columns)
-         ~set:(fun _ -> true);
-       "titles",
-       new prop_clist_titles ~name:"titles" ~init:(String.concat ~sep:" " titles)
-         ~set:(fun v ->
-           let v = Array.of_list v in
-           for i = 0 to Array.length v - 1 do
-             clist#set_column i ~title:v.(i)
-           done;
-           true)
-      ]
-end
-
-let new_clist ~name ?(listprop = []) =
-  let c, lp = match listprop with
-  | [] -> (get_a_number "number of columns" 3), []
-  | ("columns", n)::tl -> (int_of_string n), tl
-  | _ -> failwith "new_clist"
-  in
-  let rtitles = ref [] in
-  for i = c downto 1 do rtitles := ("column" ^(string_of_int i)):: !rtitles done;
-  new ticlist ~name ~widget:(GList.clist ~columns:c ~titles: !rtitles ()) ~columns:c ~titles: !rtitles
-    
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiMisc.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiMisc.ml
deleted file mode 100644 (file)
index f4f435a..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-
-open Utils
-open Property
-
-open TiBase
-open TiContainer
-
-
-class tiseparator ~(dir : Gtk.Tags.orientation) ~(widget : GObj.widget_full)
-    ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window =
-object
-  val separator = widget
-  inherit tiwidget ~name ~widget ~parent_tree ~pos parent_window ~insert_evbox
-
-  method private class_name =
-    match dir with `VERTICAL -> "GMisc.separator `VERTICAL"
-    | `HORIZONTAL -> "GMisc.separator `HORIZONTAL"
-  initializer
-    classe <-
-    (match dir with `VERTICAL -> "vseparator" | `HORIZONTAL -> "hseparator")
-
-end
-
-let new_tihseparator ~name ?(listprop = []) =
-  new tiseparator ~dir: `HORIZONTAL ~name
-    ~widget:(GMisc.separator `HORIZONTAL ())
-let new_tivseparator ~name ?(listprop = []) = 
-  new tiseparator ~dir: `VERTICAL ~name
-    ~widget:(GMisc.separator `VERTICAL ())
-
-
-
-
-class tistatusbar ~(widget : GMisc.statusbar) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object(self)
-  val statusbar = widget
-  inherit ticontainer ~name ~widget ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-  method private class_name = "GMisc.statusbar"
-
-  initializer
-    classe <- "statusbar"
-end
-
-let new_tistatusbar ~name ?(listprop = []) =
-  new tistatusbar ~widget:(GMisc.statusbar ()) ~name
-
-
-
-class timisc ~(widget : GMisc.misc) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object(self)
-  val misc = widget
-  inherit tiwidget ~name ~widget ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-  method private class_name = failwith "timisc::class_name"
-
-  initializer
-    proplist <- proplist @
-      [ "x_alignment",
-       new prop_float ~name:"x alignment" ~init:"0.5" ~min:0. ~max:1.
-         ~set:(fun v -> misc#set_alignment ~x:v (); true);
-       "y_alignment",
-       new prop_float ~name:"y alignment" ~init:"0.5" ~min:0. ~max:1.
-         ~set:(fun v -> misc#set_alignment ~y:v (); true);
-       "x_padding",
-       new prop_int ~name:"x padding" ~init:"0.5"
-         ~set:(fun v -> misc#set_padding ~x:v (); true);
-       "y_padding",
-       new prop_int ~name:"y padding" ~init:"0.5"
-         ~set:(fun v -> misc#set_padding ~y:v (); true)
-
-      ]
-end
-
-
-class tiarrow ~(widget : GMisc.arrow) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object(self)
-  val arrow = widget
-  inherit timisc ~name ~widget:(widget :> GMisc.misc) ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-  method private class_name = "GMisc.arrow"
-  initializer
-    classe <- "arrow";
-end
-
-
-(* TODO   fenetre demandant kind et shadow 
-let new_tiarrow ~name = new tiarrow ~widget:(GMisc.arrow ()) ~name
-*)
-
-
-class tilabel ~(widget : GMisc.label) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object(self)
-  val labelw = widget
-  inherit timisc ~name ~widget:(widget :> GMisc.misc) ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-  method private class_name = "GMisc.label"
-
-  method private get_mandatory_props = [ "text" ]
-
-  initializer
-    classe <- "label";
-    proplist <-  proplist @
-      [ "text",
-       new prop_string ~name:"text" ~init:name ~set:(ftrue labelw#set_text);
-       "line_wrap",
-       new prop_bool ~name:"line_wrap" ~init:"true"
-         ~set:(ftrue labelw#set_line_wrap)
-      ]
-end
-
-let new_tilabel ~name ?(listprop = []) =
-  new tilabel ~widget:(GMisc.label ~text:name ()) ~name
-
-
-
-
-
-class ticolor_selection ~(widget : GMisc.color_selection) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object(self)
-  val color_selection = widget
-  inherit tiwidget ~name ~widget ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-  method private class_name = "GMisc.color_selection"
-
-  initializer
-    classe <- "color_selection";
-    proplist <-  proplist @
-      [ "use_opacity",
-       new prop_bool ~name:"use_opacity" ~init:"false"
-         ~set:(ftrue color_selection#set_opacity);
-       "update_policy",
-       new prop_update_type ~name:"update_policy" ~init:"CONTINUOUS"
-         ~set:(ftrue color_selection#set_update_policy)
-      ]
-end
-
-let new_ticolor_selection ~name ?(listprop = []) =
-  new ticolor_selection ~widget:(GMisc.color_selection ()) ~name
-
-
-class tipixmap ~(widget : GMisc.pixmap) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object(self)
-  val pixmap = widget
-  inherit timisc ~name ~widget:(widget :> GMisc.misc) ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-  method private class_name = "GMisc.pixmap"
-  initializer
-    classe <- "pixmap";
-    proplist <- proplist @
-      [ "file",
-       new prop_file ~name:"file" ~init:""
-         ~set:(fun v ->
-           pixmap#set_pixmap
-             (GDraw.pixmap_from_xpm ~window:parent_window#tiwin#widget
-                ~file:v ());
-           true)
-      ]
-end
-
-let new_tipixmap ~name ?(listprop = []) ~parent_tree ~pos ?(insert_evbox=true) (parent_window : window_and_tree0) =
-  new tipixmap ~widget:(GMisc.pixmap (GDraw.pixmap_from_xpm 
-   ~window:parent_window#tiwin#widget ~file:"pixmap.xpm" ()) ()) ~name
-    ~parent_tree ~pos ~insert_evbox parent_window
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiPack.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiPack.ml
deleted file mode 100644 (file)
index 291eec9..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-
-open Utils
-open Property
-
-open TiContainer
-
-class tibox ~(dir : Gtk.Tags.orientation) ~(widget : GPack.box)
-    ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window =
-  let class_name =
-    match dir with `VERTICAL -> "GPack.vbox" | _ -> "GPack.hbox" in
-object(self)
-  val box = widget
-  inherit ticontainer ~name ~widget ~parent_tree ~pos ~insert_evbox
-      parent_window as container
-
-  method private class_name = class_name
-
-  method private name_of_add_method = "#pack"
-
-(* removes the ::expand ::fill ::padding in the proplist of a box
-   assumes that these are the only properties with a :: in the name *)
-  method private save_clean_proplist =
-    List.filter container#save_clean_proplist
-      ~f:(fun (n,p) ->
-       try
-         let i = String.index n ':' in
-         i = String.length n || n.[i+1] <> ':'
-       with Not_found -> true)
-
-  method private emit_clean_proplist =
-    List.filter container#emit_clean_proplist
-      ~f:(fun (n,p) ->
-       try
-         let i = String.index n ':' in
-         i = String.length n || n.[i+1] <> ':'
-       with Not_found -> true)
-
-  method change_name_in_proplist oldn newn =
-    proplist <- List.fold_left ~init:proplist ~f:
-       (fun pl propname ->
-         change_property_name (oldn ^ propname) (newn ^ propname) pl)
-       [ "::expand"; "::fill"; "::padding" ];
-    Propwin.update self false
-
-  method child_up child =
-    let pos = list_pos ~item:child (List.map ~f:fst children) in
-    if pos > 0 then begin
-      box#reorder_child child#base ~pos:(pos-1);
-      children <- list_reorder_up children ~pos;
-      stree#item_up ~pos
-    end
-           
-  method child_down child =
-    let pos = list_pos ~item:child (List.map ~f:fst children) in
-    if pos < (List.length children - 1) then begin
-      box#reorder_child child#base ~pos:(pos+1);
-      children <- list_reorder_down children ~pos;
-      stree#item_up ~pos:(pos+1)
-    end
-           
-  method private add child ~pos =
-    box#pack  child#base;
-    if pos < 0 then begin
-      children <-  children @ [(child, `START)]
-    end
-    else begin
-      children <- list_insert ~item:(child, `START) children ~pos;
-      box#reorder_child child#base ~pos
-    end;
-    let n = child#name in
-    let expand =
-      new prop_bool ~name:"expand" ~init:"false" ~set:
-       begin fun v ->
-         box#set_child_packing (child#base) ~expand:v;
-         Propwin.update child false;
-         Propwin.update self false; true
-       end
-    and fill =
-      new prop_bool ~name:"fill" ~init:"true" ~set:
-       begin fun v ->
-         box#set_child_packing (child#base) ~fill:v;
-         Propwin.update child false;
-         Propwin.update self false; true
-       end
-    and padding =
-      new prop_int ~name:"padding" ~init:"0" ~set:
-       begin fun v ->
-         box#set_child_packing (child#base) ~padding:v;
-         Propwin.update child false;
-         Propwin.update self false; true
-       end
-    in
-    proplist <-  proplist @ 
-      [ (n ^ "::expand"),  expand;
-       (n ^ "::fill"),    fill;
-        (n ^ "::padding"), padding ];
-    child#add_to_proplist
-      [ "expand", expand; "fill", fill; "padding", padding ];
-    Propwin.update self true
-         
-
-  method remove child =
-    box#remove (child#base);
-    children <- list_remove ~f:(fun (ch, _) -> ch = child) children;
-    let n = child#name in
-    proplist <-  List.fold_left ~init:proplist
-       ~f:(fun acc n -> List.remove_assoc n acc)
-       [ (n ^ "::expand"); (n ^ "::fill"); (n ^ "::padding") ];
-    Propwin.update self true
-
-  initializer
-    classe <- (match dir with `VERTICAL -> "vbox" | _ -> "hbox");
-    proplist <-  proplist @
-      [ "homogeneous",
-       new prop_bool ~name:"homogeneous" ~init:"false"
-         ~set:(ftrue box#set_homogeneous);
-       "spacing",
-       new prop_int ~name:"spacing" ~init:"0"
-         ~set:(ftrue box#set_spacing)
-      ]
-end
-
-class tihbox = tibox ~dir:`HORIZONTAL
-class tivbox = tibox ~dir:`VERTICAL
-
-let new_tihbox ~name ?(listprop = []) = new tihbox ~widget:(GPack.hbox ()) ~name
-let new_tivbox ~name ?(listprop = []) = new tivbox ~widget:(GPack.vbox ()) ~name
-
-
-
-
-class tibbox ~(dir : Gtk.Tags.orientation) ~(widget : GPack.button_box)
-    ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window =
-  let class_name =
-    match dir with `VERTICAL -> "GPack.button_box `VERTICAL"
-    | _ -> "GPack.button_box `HORIZONTAL" in
-object(self)
-  val bbox = widget
-  inherit tibox ~dir ~widget:(widget :> GPack.box)
-    ~name ~parent_tree ~pos ~insert_evbox parent_window
-
-  method private class_name = class_name
-
-initializer
-    classe <- (match dir with `VERTICAL -> "vbutton_box" | _ -> "hbutton_box");
-    proplist <-  proplist @
-      [ "layout",
-       new prop_button_box_style ~name:"layout" ~init:"DEFAULT_STYLE"
-         ~set:(ftrue bbox#set_layout);
-       "spacing",
-       new prop_int ~name:"spacing"
-         ~init:(match dir with `VERTICAL -> "10" | _ -> "30")
-(*  donne -1 (defaut)  
-(GtkPack.BBox.get_spacing bbox#as_button_box) *)
-         ~set:(fun v -> bbox#set_spacing v;
-           GtkBase.Widget.queue_resize bbox#as_widget; true);
-       "child_width",
-       new prop_int ~name:"child_width" ~init:"85"
-         ~set:(fun v ->
-           bbox#set_child_size ~width:v
-             ~height:(int_of_string (self#get_property "child_height")) ();
-           GtkBase.Widget.queue_resize bbox#as_widget; true);
-       "child_height",
-       new prop_int ~name:"child_height" ~init:"27"
-         ~set:(fun v ->
-           bbox#set_child_size ~height:v
-             ~width:(int_of_string (self#get_property "child_width")) (); 
-           GtkBase.Widget.queue_resize bbox#as_widget; true);
-       "child_ipad_x",
-       new prop_int ~name:"child_ipad_x" ~init:"7"
-         ~set:(fun v ->
-           bbox#set_child_ipadding ~x:v
-             ~y:(int_of_string (self#get_property "child_ipad_y")) ();
-           GtkBase.Widget.queue_resize bbox#as_widget; true);
-       "child_ipad_y",
-       new prop_int ~name:"child_ipad_y" ~init:"0"
-         ~set:(fun v ->
-           bbox#set_child_ipadding ~y:v
-             ~x:(int_of_string (self#get_property "child_ipad_x")) (); 
-           GtkBase.Widget.queue_resize bbox#as_widget; true);
-      ]
-end
-
-
-(* TODO:  pour proplist/spacing il faudrait implementer
-          les fonctions get_spacing ... (voir dans gtkPack) *)
-
-class tihbutton_box = tibbox ~dir:`HORIZONTAL
-class tivbutton_box = tibbox ~dir:`VERTICAL
-
-let new_tihbutton_box ~name ?(listprop = []) =
-  new tihbutton_box ~widget:(GPack.button_box `HORIZONTAL ()) ~name
-
-let new_tivbutton_box ~name ?(listprop = []) =
-  new tivbutton_box ~widget:(GPack.button_box `VERTICAL ()) ~name
-
-
-
-
-let get_fixed_pos () =
-  let rx = ref 0 and ry = ref 0 in
-  let w  = GWindow.window ~modal:true () in
-  let v  = GPack.vbox  ~packing:w#add () in
-  let l  = GMisc.label ~text:"Enter position for child" ~packing:v#pack () in
-  let h1 = GPack.hbox ~packing:v#pack () in
-  let l1 = GMisc.label ~text:"x:" ~packing:h1#pack () in
-  let e1 = GEdit.entry ~text:"0" ~packing:h1#pack () in
-  let h2 = GPack.hbox ~packing:v#pack () in
-  let l2 = GMisc.label ~text:"y" ~packing:h2#pack () in
-  let e2 = GEdit.entry ~text:"0" ~packing:h2#pack () in
-  let h7 = GPack.hbox ~packing:v#pack () in
-  let b1 = GButton.button ~label:"OK" ~packing:h7#pack () in
-  let b2 = GButton.button ~label:"Cancel" ~packing:h7#pack () in
-  w#show ();
-  b1#connect#clicked
-    ~callback:(fun () ->
-      begin
-       try rx  := int_of_string e1#text with _ -> () end;
-      begin
-       try ry  := int_of_string e2#text with _ -> () end;
-      w#destroy ());
-  b2#connect#clicked ~callback:w#destroy;
-  w#connect#destroy ~callback:GMain.Main.quit;
-  GMain.Main.main ();
-  !rx, !ry
-
-
-class tifixed ~(widget : GPack.fixed)
-    ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window =
-object(self)
-  val fixed = widget
-  inherit ticontainer ~widget
-    ~name ~parent_tree ~pos ~insert_evbox parent_window
-
-  method private class_name = "GPack.fixed"
-
-  method private add child ~pos =
-    let x, y = get_fixed_pos () in
-    fixed#put child#base ~x ~y;
-    children <-  children @ [(child, `START)]
-  initializer
-    classe <- "fixed"
-end
-
-let new_tifixed ~name ?(listprop = []) =
-  new tifixed ~widget:(GPack.fixed ()) ~name
-
-
-
-
-
-class tinotebook ~(widget : GPack.notebook) ~name ~parent_tree ~pos
-    ?(insert_evbox=true) parent_window =
-object(self)
-  val notebook = widget
-  inherit ticontainer ~name ~widget ~insert_evbox
-      ~parent_tree ~pos parent_window as widget
-
-  method private class_name = "GPack.notebook"
-
-  method private add child ~pos =
-    children <- children @ [child, `START];
-    notebook#insert_page child#base ~pos;
-    child#add_to_proplist
-      [ "tab_label",
-       new prop_string ~name:"tab_label" ~init:""
-         ~set:(fun v -> notebook#set_page
-             ~tab_label:((GMisc.label ~text:v())#coerce) child#base; true)
-      ]
-
-
-  initializer
-    classe <- "notebook";
-    proplist <-  proplist @
-      [ "tab_pos",
-       new prop_position ~name:"tab_ pos" ~init:"TOP"
-         ~set:(ftrue notebook#set_tab_pos);
-       "show_tabs",
-       new prop_bool ~name:"show_tabs" ~init:"true"
-         ~set:(ftrue notebook#set_show_tabs);
-       "homogeneous_tabs",
-       new prop_bool ~name:"homogeneous_tabs" ~init:"true"
-         ~set:(ftrue notebook#set_homogeneous_tabs);
-       "show_border",
-       new prop_bool ~name:"show_border" ~init:"true"
-         ~set:(ftrue notebook#set_show_border);
-       "scrollable",
-       new prop_bool ~name:"scrollable" ~init:"false"
-         ~set:(ftrue notebook#set_scrollable);
-       "tab_border",
-       new prop_int ~name:"tab_border" ~init:"2"
-         ~set:(ftrue notebook#set_tab_border);
-       "popup_enable",
-       new prop_bool ~name:"popup_enable" ~init:"false"
-         ~set:(ftrue notebook#set_popup)
-      ]
-end
-
-let new_tinotebook ~name ?(listprop = []) =
-  new tinotebook ~widget:(GPack.notebook ()) ~name
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWidget.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWidget.ml
deleted file mode 100644 (file)
index 5a6e3ac..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-
-let new_class_list (* :
-  (string *
-  (name:string -> ?listprop:string list ->
-   parent_tree:GTree2.tree -> pos:int ->
-   ?insert_evbox:bool ->
-   
-   TiBase.window_and_tree0 -> TiBase.tiwidget0)) list *)
-= [
-  "window",          TiWindow.new_tiwindow;
-  "hbox",            TiPack.new_tihbox;
-  "vbox",            TiPack.new_tivbox;
-  "hbutton_box",     TiPack.new_tihbutton_box;
-  "vbutton_box",     TiPack.new_tivbutton_box;
-  "fixed",           TiPack.new_tifixed;
-  "notebook",        TiPack.new_tinotebook;
-  "button",          TiButton.new_tibutton;
-  "check_button",    TiButton.new_ticheck_button;
-  "toggle_button",   TiButton.new_titoggle_button;
-  "radio_button",    TiButton.new_tiradio_button;
-  "toolbar",         TiButton.new_toolbar;
-  "hseparator",      TiMisc.new_tihseparator;
-  "vseparator",      TiMisc.new_tivseparator;
-  "statusbar",       TiMisc.new_tistatusbar;
-  "label",           TiMisc.new_tilabel;
-  "color_selection", TiMisc.new_ticolor_selection;
-  "pixmap",          TiMisc.new_tipixmap;
-  "frame",           TiBin.new_tiframe;
-  "aspect_frame",    TiBin.new_tiaspect_frame;
-  "handle_box",      TiBin.new_handle_box;
-  "viewport",        TiBin.new_viewport;
-  "event_box",       TiBin.new_event_box;
-  "scrolled_window", TiBin.new_tiscrolled_window;
-  "entry",           TiEdit.new_tientry;
-  "spin_button",     TiEdit.new_tispin_button;
-  "combo",           TiEdit.new_ticombo;
-  "clist",           TiList.new_clist
-]
-
-let _ =
-  TiBase.new_tiwidget :=
-    (fun ~classe ?(pos = -1) ~name ~parent_tree ?insert_evbox ?(listprop = []) -> (List.assoc classe new_class_list) ~pos ~name ~parent_tree ?insert_evbox ~listprop)
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWindow.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tiWindow.ml
deleted file mode 100644 (file)
index b44b4d4..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-
-open Utils
-open Property
-
-open TiBase
-open TiContainer
-
-
-class tiwindow ~widget ~name ~parent_tree ~pos ?(insert_evbox=true)
-    parent_window =
-object(self)
-  val window = widget
-  inherit ticontainer ~name ~widget
-      ~insert_evbox:false ~parent_tree ~pos parent_window as container
-
-  method connect_event = window#event#connect
-
-  method private class_name = "GWindow.window"
-
-  method private get_mandatory_props = [ "title" ]
-
-(*  method private save_clean_proplist =
-    List.remove_assoc "title" container#save_clean_proplist
-
-  method private emit_clean_proplist plist =
-    List.remove_assoc "title" (container#emit_clean_proplist plist)
-*)
-  method remove_me () =
-    let sref = ref "" in
-    self#save_to_string sref;
-    let lexbuf = Lexing.from_string !sref in
-    let node = Load_parser.window Load_lexer.token lexbuf in
-    add_undo (Add_window node);
-    self#remove_me_without_undo ()
-
-  method copy () = self#copy_to_sel window_selection
-
-  method remove_me_without_undo () =
-    self#forall ~callback:(fun tiw -> tiw#remove_me_without_undo ());
-    parent_window#remove_sel (self : #tiwidget0 :> tiwidget0);
-    name_list := list_remove !name_list ~f:(fun n -> n=name);
-    Hashtbl.remove widget_map name;
-    Propwin.remove name;
-    widget#destroy ()
-
-  method private get_packing packing = ""
-
-  method emit_code f param_list =
-    let param_string =
-      match param_list with
-      |         [] -> ""
-      |        _ -> "['" ^
-         (String.concat ~sep:", '"
-            (List.map ~f:(fun c -> (String.make 1 c)) param_list)) ^
-         "] " in
-    Format.fprintf f "(* Code for %s *)@\n@\n@[<hv 2>class %s%s () ="
-      name param_string name;
-    self#emit_init_code f ~packing:"";
-    Format.fprintf f "@]@\n@[<hv 2>object (self)";
-    self#emit_method_code f;
-    Format.fprintf f "@ method show () = %s#show ()" name;
-    Format.fprintf f "@ @[<v 2>initializer";
-    self#emit_initializer_code f;
-    Format.fprintf f "@ ()@]@]@ end@\n@\n"
-
-(*  method private save_start formatter =
-    Format.fprintf formatter "@[<0>@\n@[<2><window name=%s>" name;
-    Format.fprintf formatter "@\ntitle=\"%s\""
-      (List.assoc "title" proplist)#get
-*)
-  method private save_end formatter =
-    Format.fprintf formatter "@]@\n</window>@\n@]"
-
-  method private menu ~time =
-    let menu = GMenu.menu () and menu_add = GMenu.menu () in
-    List.iter
-      ~f:(fun n ->
-       let mi = GMenu.menu_item ~packing:menu_add#append ~label:n ()
-       in mi#connect#activate
-         ~callback:(fun () -> self#add_child n (); ()); ())
-      widget_add_list;      
-    let mi_add = GMenu.menu_item ~packing:menu#append ~label:("add to "^ name) ()
-    and mi_paste = GMenu.menu_item ~packing:menu#append ~label:"Paste" ()
-    in
-    mi_add#set_submenu menu_add;
-    if !selection <> ""
-    then begin mi_paste#connect#activate ~callback:self#paste; () end
-    else mi_paste#misc#set_sensitive false;
-    menu#popup ~button:3 ~time
-
-
-  initializer
-    classe <- "window";
-    window#set_title name;
-    proplist <-        proplist @
-      [ "title",
-       new prop_string ~name:"title" ~init:name ~set:(ftrue window#set_title);
-       "allow_shrink", new prop_bool ~name:"allow_shrink" ~init:"false"
-                         ~set:(ftrue window#set_allow_shrink);
-       "allow_grow", new prop_bool ~name:"allow_grow" ~init:"true"
-                       ~set:(ftrue window#set_allow_grow);
-       "auto_shrink", new prop_bool ~name:"auto_shrink" ~init:"false"
-                        ~set:(ftrue window#set_auto_shrink);
-       "x position", new prop_int ~name:"x" ~init:"-2"
-         ~set:(fun x -> window#misc#set_geometry ~x (); true);
-       "y position", new prop_int ~name:"y" ~init:"-2"
-         ~set:(fun y -> window#misc#set_geometry ~y (); true) ]
-end
-
-let new_tiwindow ~name ?(listprop = []) =
-  let w = GWindow.window ~show:true () in
-  w#misc#set_can_focus false;
-  w#misc#set_can_default false;
-  new tiwindow ~widget:w ~name
-
-
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/togglebutton.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/togglebutton.xpm
deleted file mode 100644 (file)
index f29d769..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *togglebutton_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+..................O+",
-"+.                 O+",
-"+. XXXXXXXXXXXXXXXXO+",
-"+. XXXXXXXXXXXXXXXXO+",
-"+. XXX   XXX XXX XXO+",
-"+. XX XXX XX  XX XXO+",
-"+. XX XXX XX  XX XXO+",
-"+. XX XXX XX X X XXO+",
-"+. XX XXX XX XX  XXO+",
-"+. XX XXX XX XX  XXO+",
-"+. XXX   XXX XXX XXO+",
-"+. XXXXXXXXXXXXXXXXO+",
-"+. XXXXXXXXXXXXXXXXO+",
-"+. XXXXXXXXXXXXXXXXO+",
-"+OOOOOOOOOOOOOOOOOOO+",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/toolbar.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/toolbar.xpm
deleted file mode 100644 (file)
index d9a5217..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *toolbar_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+OOOOOOOOOOOOOOOOOOO ",
-"+OXXXXXXXXXXXXXXXXX. ",
-"+OXOOOO OOOO OOOO X. ",
-"+OXOXXX OXXX OXXX X. ",
-"+OXOXXX OXXX OXXX X. ",
-"+OXO    O    O    X. ",
-"+OXXXXXXXXXXXXXXXXX. ",
-"+O.................. ",
-"+                    ",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_minus.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_minus.xpm
deleted file mode 100644 (file)
index cce0679..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* XPM */
-static char *tree_minus[] = {
-/* width height num_colors chars_per_pixel */
-"     9     9        2            1",
-/* colors */
-". c #000000",
-"# c #f8fcf8",
-/* pixels */
-".........",
-".#######.",
-".#######.",
-".#######.",
-".#.....#.",
-".#######.",
-".#######.",
-".#######.",
-"........."
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_plus.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/tree_plus.xpm
deleted file mode 100644 (file)
index d0ba80c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* XPM */
-static char *tree_plus[] = {
-/* width height num_colors chars_per_pixel */
-"     9     9        2            1",
-/* colors */
-". c #000000",
-"# c #f8fcf8",
-/* pixels */
-".........",
-".#######.",
-".###.###.",
-".###.###.",
-".#.....#.",
-".###.###.",
-".###.###.",
-".#######.",
-"........."
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/utils.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/utils.ml
deleted file mode 100644 (file)
index 0b37975..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-(* $Id$ *)
-
-open GObj
-
-open Common
-
-external test_modifier : Gdk.Tags.modifier -> int -> bool
-    = "ml_test_GdkModifier_val"
-
-
-(************* types *************)
-(* used in the load_parser and for the selection *)
-
-(* widget: class * name * property list
-   where property = name * value_string *)
-type yywidget = string * string * (string * string) list
-type yywidget_tree = Node of yywidget * yywidget_tree list
-
-
-(*********** some utility functions **************)
-let rec list_remove ~f = function
-  | [] -> []
-  | hd :: tl -> if f hd then tl else hd :: (list_remove ~f tl)
-
-
-(* cut the list at the element elt; elt stays in tail;
-   hd stays in reverse order *)
-let cut_list ~item l =
-  let rec aux h t = match t with
-  | hd :: tl -> if hd = item then h, t
-       else aux (hd :: h) tl
-  | [] -> failwith "cut_list"
-  in aux [] l
-
-let list_pos ~item l =
-  let rec aux pos = function
-    | [] -> raise Not_found
-    | hd :: tl -> if hd = item then pos else aux (pos+1) tl
-  in aux 0 l
-
-(* moves the pos element up; pos is >= 1;
-   the first element is numbered 0 *)
-let rec list_reorder_up ~pos = function
-    | hd1 :: hd2 :: tl when pos = 1 -> hd2 :: hd1 :: tl
-    | hd :: tl when pos > 1 -> hd :: (list_reorder_up ~pos:(pos-1) tl)
-    | _ -> failwith "list_reorder"
-
-(* moves the pos element down; pos is < length of l - 1;
-   the first element is numbered 0 *)
-let rec list_reorder_down ~pos = 
-  list_reorder_up ~pos:(pos+1)
-
-
-let rec list_insert ~item l ~pos =
-  if pos=0 then item :: l
-  else
-    match l with
-    | [] ->  failwith "list_insert"
-    | hd :: tl -> hd :: (list_insert ~item tl ~pos:(pos-1))
-
-
-let rec change_property_name oldname newname = function
-  | (n, p) :: tl when oldname = n -> (newname, p) :: tl
-  | (n, p) :: tl -> (n, p) :: change_property_name oldname newname tl
-  | [] -> failwith "change_property_name: name not found"
-
-
-
-(* contains the list of names of widgets in the current project;
-   used to test if a name is already used;
-   a name is added to the list when a tiwrapper is created (in
-   the initilizer part of tiwrapper,
-   it is removed when the widget is removed from his parent,
-   in method remove_me of tiwrapper *)
-let name_list = ref ([] : string list)
-
-let split name =
-  let l = String.length name in
-  let i = ref (l-1) in
-  while !i >= 0 && name.[!i] >= '0' && name.[!i] <= '9' do decr i done;
-  if !i = l-1 then
-    name, (-1)
-  else
-    (String.sub name ~pos:0 ~len:(!i+1)),
-    int_of_string (String.sub name ~pos:(!i+1) ~len:(l- !i-1))
-
-let test_unique name = not (List.mem name !name_list)
-
-let make_new_name ?(index=1) base =
-  let index, name =
-    if index = -1 then ref 1, ref base
-    else ref index, ref (base ^ (string_of_int index)) in
-  while not (test_unique !name) do
-    incr index;
-    name := base ^ (string_of_int !index)
-  done;
-  !name
-
-let change_name name =
-  let base, index = split name in make_new_name base ~index
-
-let message s =
-  let w = GWindow.window ~show:true ~modal:true () in
-  let v = GPack.vbox ~packing:w#add () in
-  let l = GMisc.label ~text:s ~packing:v#add () in
-  let b = GButton. button ~label:"OK" ~packing:v#add () in
-  b#connect#clicked ~callback:w#destroy;
-  w#connect#destroy ~callback:GMain.Main.quit;
-  GMain.Main.main ()
-
-let message_name () = message "name already in use\npick a new name"
-
-(* better: use a spin button *)
-let get_a_number s default=
-  let res = ref default in
-  let w = GWindow.window ~show:true ~modal:true () in
-  let v = GPack.vbox ~packing:w#add () in
-  let l = GMisc.label ~text:s ~packing:v#add () in
-  let e = GEdit.entry ~text:(string_of_int default) ~packing:v#add () in
-  let b = GButton. button ~label:"OK" ~packing:v#add () in
-  b#connect#clicked ~callback:(fun () ->
-    begin try res := int_of_string e#text with Failure _ -> () end;
-    w#destroy ());
-  w#connect#destroy ~callback:GMain.Main.quit;
-  GMain.Main.main ();
-  !res
-
-
-(*************** file selection *****************)
-
-let get_filename ~callback:set_filename ?(dir="") () =
-  let res = ref false in
-  let file_selection = GWindow.file_selection ~modal:true () in
-  if dir <> "" then file_selection#set_filename dir;
-  file_selection#show ();
-  file_selection#ok_button#connect#clicked
-    ~callback:(fun () -> set_filename file_selection#get_filename;
-      res := true;
-      file_selection#destroy ());
-  file_selection#cancel_button#connect#clicked
-    ~callback:file_selection#destroy;
-  file_selection#connect#destroy ~callback:GMain.Main.quit;
-  GMain.Main.main ();
-  !res
-
-(* returns the directory and the file name (without the extension) *)
-let split_filename filename ~ext =
-  let lext = String.length ext in
-  let l = String.length filename in
-  let filename, l =
-    if (l > lext) && (String.sub filename ~pos:(l - lext) ~len:lext = ext)
-    then (String.sub filename ~pos:0 ~len:(l-lext)), l-lext
-    else filename, l in
-  let i = 1 + (String.rindex filename '/') in
-  String.sub filename ~pos:0 ~len:i,
-  String.sub filename ~pos:i ~len:(l-i)
-
-
-(******************  ML signals *****************)
-let signal_id = ref 0
-
-let next_callback_id () : GtkSignal.id =
-  decr signal_id; Obj.magic (!signal_id : int)
-
-class ['a] signal = object
-  val mutable callbacks : (GtkSignal.id * ('a -> unit)) list = []
-  method connect ~callback ~after =
-    let id = next_callback_id () in
-    callbacks <-
-      if after then callbacks @ [id,callback] else (id,callback)::callbacks;
-    id
-  method call arg =
-    List.iter callbacks ~f:(fun (_,f) -> f arg)
-  method disconnect id =
-    List.mem_assoc id callbacks &&
-    (callbacks <- List.remove_assoc id callbacks; true)
-  method reset () = callbacks <- []
-end
-
-class type disconnector =
-  object
-    method disconnect : GtkSignal.id -> bool
-    method reset : unit -> unit
-  end
-
-class has_ml_signals = object
-  val mutable disconnectors = []
-  method private add_signal (sgn : 'a signal) =
-    disconnectors <- (sgn :> disconnector) :: disconnectors
-
-  method disconnect id =
-    List.exists disconnectors ~f:(fun d -> d#disconnect id)
-end
-
-
-(****************** undo information ********************)
-
-type undo_action =
-  | Add of string * yywidget_tree * int
-  | Remove of string
-  | Property of prop * string
-  | Add_window of yywidget_tree
-  | Remove_window of string
-
-let undo_info = ref ([] : undo_action list)
-let next_undo_info = ref ([] : undo_action list)
-let last_action_was_undo = ref false
-
-let add_undo f =
-  undo_info := f :: !undo_info;
-  last_action_was_undo := false
-
-
-(**********************************************************)
-let ftrue f = fun x -> f x; true
-
-
-(**********************************************************)
-
-let toolbar_child_prop kind =
-  let rt = ref "" and rtt = ref "" and rptt = ref "" and ok = ref false in
-  let w  = GWindow.window ~modal:true () in
-  let v  = GPack.vbox ~packing:w#add () in
-  let h1 = GPack.hbox ~packing:v#pack () in
-  let h2 = GPack.hbox ~packing:v#pack () in
-  let h3 = GPack.hbox ~packing:v#pack () in
-  let h4 = GPack.hbox ~packing:v#pack () in
-  let l1 = GMisc.label ~text:"text" ~packing:h1#pack () in
-  let e1 = GEdit.entry ~packing:h1#pack () in
-  let l2 = GMisc.label ~text:"tooltip_text" ~packing:h2#pack () in
-  let e2 = GEdit.entry ~packing:h2#pack () in
-  let l3 = GMisc.label ~text:"private_text" ~packing:h3#pack () in
-  let e3 = GEdit.entry ~packing:h3#pack () in
-  let b1 = GButton.button ~label:"OK" ~packing:h4#pack () in
-  let b2 = GButton.button ~label:"Cancel" ~packing:h4#pack () in
-  w#show ();
-  b1#connect#clicked
-    ~callback:(fun () -> rt := e1#text; rtt := e2#text;
-      rptt := e3#text; ok := true;
-      w#destroy ());
-  b2#connect#clicked ~callback:w#destroy;
-  w#connect#destroy ~callback:GMain.Main.quit;
-  GMain.Main.main ();
-  !ok, !rt, !rtt, !rptt
-
-
-
-(**********************************************************)
-
-let get5floats_from_string s =
-  try
-    let n1 = String.index s ' ' in
-    let f1 = float_of_string (String.sub s ~pos:0 ~len:(n1-1)) in
-    let n2 = String.index_from s (n1+1) ' ' in
-    let f2 = float_of_string (String.sub s ~pos:(n1+1) ~len:(n2-1)) in
-    let n3 = String.index_from s (n2+1) ' ' in
-    let f3 = float_of_string (String.sub s ~pos:(n2+1) ~len:(n3-1)) in
-    let n4 = String.index_from s (n3+1) ' ' in
-    let f4 = float_of_string (String.sub s ~pos:(n3+1) ~len:(n4-1)) in
-    let f5 = float_of_string (String.sub s ~pos:(n4+1) ~len:
-                               ((String.length s) -1)) in
-    f1, f2, f3, f4, f5
-  with _ -> failwith "get5floats_of_string"
-
-
-
-(**********************************************************)
-
-exception Float_of_string
-let my_float_of_string s =
-  let l = String.length s in
-  if l=0 then raise Float_of_string;
-  let sign, d = match s.[0] with
-  | '+' ->  1, 1
-  | '-' -> -1, 1
-  | _   ->  1, 0 in
-  let m, p =
-    let p = 
-      try
-       String.index s '.'
-      with Not_found -> l in
-    if p=d then 0, p
-    else
-      try int_of_string (String.sub s ~pos:d ~len:(p-d)), p
-      with Failure "int_of_string" -> raise Float_of_string
-  in
-  if p=l then float_of_int m
-  else begin
-    let f = ref 0. and r = ref 0.1 in
-    for i = p+1 to l-1 do
-      let k = (int_of_char s.[i]) - 48 in
-      if k > 9 || k < 0 then raise Float_of_string;
-      f := !f +. (float_of_int k) *. !r;
-      r := !r *. 0.1
-    done;
-    !f +. (float_of_int m)
-  end
-
-    
-  
-
-class entry_float obj ~init = let rv = ref init in
-object
-  inherit GEdit.entry obj as entry
-  method value =
-    try 
-      let v = my_float_of_string entry#text in
-      rv := v;
-      v
-    with Float_of_string ->
-      let pop = GWindow.window ~title:"error" ~modal:true () in
-      let vb = GPack.vbox ~packing:pop#add () in
-      let l = GMisc.label ~text:"value must be a float" ~packing:vb#pack () in
-      let b = GButton.button ~label:"OK" ~packing:vb#pack () in
-      b#connect#clicked ~callback:pop#destroy;
-      pop#event#connect#delete ~callback:(fun _ -> pop#destroy (); true);
-      pop#connect#destroy ~callback:GtkMain.Main.quit;
-      pop#show ();
-      GtkMain.Main.main ();
-      entry#set_text (string_of_float !rv);
-      !rv
-end
-
-
-let set_editable ?editable ?(width = -2) ?(height = -2) w =
-  Gaux.may editable ~f:(GtkEdit.Editable.set_editable w);
-  if width <> -2 || height <> -2 then GtkBase.Widget.set_usize w ~width ~height
-
-
-let entry_float ~init ?max_length ?visibility ?editable
-    ?width ?height ?packing ?show () = 
-  let w = GtkEdit.Entry.create ?max_length () in
-  GtkEdit.Entry.set w ~text:(string_of_float init) ?visibility;
-  set_editable w ?editable ?width ?height;
-  pack_return (new entry_float w ~init) ~packing ~show
-
-
-(*************************************************************)
-
-
-let split_string s ~sep =
-  let l = String.length s in
-  let r = ref [] in
-  let j = ref 0 in
-  for i = 0 to l-1 do
-    if String.unsafe_get s i = sep then begin
-      r := (String.sub s ~pos:!j ~len:(i - !j)) :: !r;
-      j := i + 1
-    end
-  done;
-  List.rev ((String.sub s ~pos:!j ~len:(l - !j)) :: !r)
-
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbox.xpm
deleted file mode 100644 (file)
index 1c557b0..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* XPM */
-static char *vbox_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 4 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c Gray100",
-/* pixels */
-"oooooooooooooooooooo ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"o................... ",
-"                     ",
-"oooooooooooooooooooo ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"o................... ",
-"                     ",
-"oooooooooooooooooooo ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"oXXXXXXXXXXXXXXXXXX. ",
-"o................... ",
-"                     "
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbuttonbox.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vbuttonbox.xpm
deleted file mode 100644 (file)
index 0c2bc95..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* XPM */
-static char *vbuttonbox_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 6 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray100",
-"+ c None",
-/* pixels */
-"+++++++++++++++++++++",
-"+++++++++++++++++++++",
-"++++++++OOOOO +++++++",
-"++++++++OXXX. +++++++",
-"++++++++OXXX. +++++++",
-"++++++++O.... +++++++",
-"++++++++      +++++++",
-"+++++++++++++++++++++",
-"++++++++OOOOO +++++++",
-"++++++++OXXX. +++++++",
-"++++++++OXXX. +++++++",
-"++++++++O.... +++++++",
-"++++++++      +++++++",
-"+++++++++++++++++++++",
-"++++++++OOOOO +++++++",
-"++++++++OXXX. +++++++",
-"++++++++OXXX. +++++++",
-"++++++++O.... +++++++",
-"++++++++      +++++++",
-"+++++++++++++++++++++",
-"+++++++++++++++++++++"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/viewport.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/viewport.xpm
deleted file mode 100644 (file)
index 71e5e80..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* XPM */
-static char *viewport_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 7 1",
-"  c Gray0",
-". c #7b7b7b",
-"X c #d6d6d6",
-"o c #b3cece",
-"O c Gray87",
-"+ c Gray100",
-"@ c None",
-/* pixels */
-"@@@@@@@@@@@@@@@@@@@@@",
-"@...................@",
-"@.                +O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@. XXXXXXXXXXXXXXX+O@",
-"@.+++++++++++++++++O@",
-"@.OOOOOOOOOOOOOOOOOO@",
-"@@@@@@@@@@@@@@@@@@@@@"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vseparator.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/vseparator.xpm
deleted file mode 100644 (file)
index 3455f74..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* XPM */
-static char *vseparator_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 4 1",
-"  c #7b7b7b",
-". c #b3cece",
-"X c Gray100",
-"o c None",
-/* pixels */
-"ooooooooooooooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"oooooooooo Xooooooooo",
-"ooooooooooooooooooooo"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/window.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/window.xpm
deleted file mode 100644 (file)
index 8407e28..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char *window_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"21 21 11 1",
-"  c Gray0",
-". c #00007b",
-"X c #7b7b7b",
-"o c Green",
-"O c Cyan",
-"+ c Red",
-"@ c Yellow",
-"# c #d6d6d6",
-"$ c #b3cece",
-"% c Gray100",
-"& c None",
-/* pixels */
-"&&&&&&&&&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&&&&&&&&&",
-"XXXXXXXXXXXXXXXXXXXX&",
-"X.+@...............X ",
-"X.Oo.%%%.%%.....# #X ",
-"XXXXXXXXXXXXXXXXXXXX ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"X#%%%%%%%%%%%%%%%%%X ",
-"XXXXXXXXXXXXXXXXXXXX ",
-"&                    ",
-"&&&&&&&&&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&&&&&&&&&"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/.cvsignore b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/.cvsignore
deleted file mode 100644 (file)
index 31706ab..0000000
+++ /dev/null
@@ -1 +0,0 @@
-unison-*
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/README
deleted file mode 100644 (file)
index 73bcc25..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-       A GUI for Unison
-
-Here is a lablGTK port of Unison's GUI.
-Or rather was, since this is now the standard GUI for unison.
-
-Unison is a file synchronization software developped by Benjamin
-Pierce, Trevor Jim, and others.
-
-As of version 2.3.12, unison is based on LablGTK 1.00.
-To use it with the current version, you must:
- * get unison-2.3.12/src.tar.gz from http://www.cis.upenn.edu/~bcpierce/unison/
- * untar it in this directory
- * copy or make links for uigtk.ml here inside unison-2.3.12
-        ln -fs ../uigtk.ml .
- * make and follow instructions in INSTALL.txt
-
-Jacques Garrigue
-
-$Id$
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/uigtk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/unison/uigtk.ml
deleted file mode 100644 (file)
index 6efacd6..0000000
+++ /dev/null
@@ -1,1434 +0,0 @@
-(* $Id$ *)
-
-open Util
-open Os
-open Common
-open Uicommon
-open Printf
-open Trace
-
-(**********************************************************************)
-(*                           GRAPHICAL INTERFACE                      *)
-(**********************************************************************)
-
-module Private : Uicommon.UI = struct
-
-open GMain
-open GdkKeysyms
-
-let debugprogress = Trace.debug "progress"
-
-(**********************************************************************)
-(* UI preferences                                                     *)
-(**********************************************************************)
-
-let fontMonospaceMedium =
-  if Sys.os_type = "Win32" then
-    lazy (Gdk.Font.load "-*-Courier New-Medium-R-Normal--*-110-*-*-*-*-*-*")
-  else
-    lazy (Gdk.Font.load "-*-Clean-Medium-R-Normal--*-130-*-*-*-*-*-*")
-let fontMonospaceBold =
-  if Sys.os_type = "Win32" then
-    lazy (Gdk.Font.load "-*-Courier New-Bold-R-Normal--*-110-*-*-*-*-*-*")
-  else
-    lazy (Gdk.Font.load "-*-Courier-Bold-R-Normal--*-120-*-*-*-*-*-*")
-
-(**********************************************************************)
-(* UI state variables                                                 *)
-(**********************************************************************)
-
-type stateItem = { ri : reconItem;
-                   mutable bytesTransferred : int;
-                   mutable whatHappened : unit confirmation option }
-let theState = ref [||]
-
-let current = ref None
-
-let currentWindow = ref None
-let grabFocus t =
-  match !currentWindow with
-    Some w -> t#set_transient_for w;
-              w#misc#set_sensitive false
-  | None   -> ()
-let releaseFocus () =
-  begin match !currentWindow with
-    Some w -> w#misc#set_sensitive true
-  | None   -> ()
-  end
-
-(**********************************************************************)
-(*                         Lock management                            *)
-(**********************************************************************)
-
-let busy = ref false
-
-let getLock f =
-  if !busy then
-    Trace.message "Synchronizer is busy, please wait..\n"
-  else begin
-    busy := true; f (); busy := false
-  end
-
-(**********************************************************************)
-(* Some widgets                                                              *)
-(**********************************************************************)
-
-class scrolled_text ?editable ?word_wrap ?width ?height ?packing ?show
-    () =
-  let sw =
-    GBin.scrolled_window ?width ?height ?packing ~show:false
-      ~hpolicy:`NEVER ~vpolicy:`AUTOMATIC ()
-  in
-  let text = GEdit.text ?editable ?word_wrap ~packing:sw#add () in
-  object
-    inherit GObj.widget_full sw#as_widget
-    method text = text
-    method insert ?(font=fontMonospaceMedium) s =
-      text#freeze ();
-      text#delete_text ~start:0 ~stop:text#length;
-      text#insert ~font:(Lazy.force font) s;
-      text#thaw ()
-    method show () = sw#misc#show ()
-    initializer
-      if show <> Some false then sw#misc#show ()
-  end
-
-let gtk_sync () = while Glib.Main.iteration false do () done
-
-(**********************************************************************)
-(*                           YES OR NO FUNCTION                       *)
-(**********************************************************************)
-(* val yesOrNo : string -> string -> (unit -> unit) -> (unit -> unit) *)
-(*                      -> unit                                       *)
-(* Displays a window with two buttons : YES and NO                    *)
-(* yesOrNo title message yesFunction noFunction open the title        *)
-(* window in which is displayed message. yesFunction and noFunctions  *)
-(* are the functions associated two the two buttons                   *)
-(**********************************************************************)
-let yesOrNo ~title ~message ~yes:yesFunction ~no:noFunction =
-  let t = GWindow.dialog ~title ~wm_name:title ~modal:true ~position:`CENTER () in
-  grabFocus t;
-  let theLabel = GMisc.label ~text:message
-      ~packing:(t#vbox#pack ~padding:4) () in
-  let yes = GButton.button ~label:"Yes" ~packing:t#action_area#add ()
-  and no = GButton.button ~label:"No" ~packing:t#action_area#add () in
-  no#grab_default ();
-  ignore
-    (yes#connect#clicked ~callback:(fun () -> t#destroy (); yesFunction ()));
-  ignore
-    (no#connect#clicked  ~callback:(fun () -> t#destroy (); noFunction ()));
-  t#show ();
-  ignore (t#connect#destroy ~callback:Main.quit);
-  Main.main ();
-  releaseFocus ()
-
-(**********************************************************************)
-(*                         SAFE EXIT FUNCTION                         *)
-(**********************************************************************)
-
-(* Avoid recursive invocations of the function below
-   (a window receives delete events even when it is not sensitive) *)
-let inExit = ref false
-
-let safeExit () =
-  if not !inExit then begin
-    inExit := true;
-    if not !busy then exit 0 else
-    yesOrNo ~title:"Premature exit"
-      ~message:"Unison is working, exit anyway ?"
-      ~yes:(fun () -> exit 0) ~no:(fun () -> ());
-    inExit := false
-  end
-
-(**********************************************************************)
-(* okBox: Display a message in a window and wait for the user         *)
-(* to hit the "OK" button.                                            *)
-(**********************************************************************)
-let okBox ~title ~message =
-  let t = GWindow.dialog ~title ~wm_name:title ~modal:true ~position:`CENTER () in
-  grabFocus t;
-  let theLabel = GMisc.label ~text:message
-      ~packing:(t#vbox#pack ~padding:4) () in
-  let ok = GButton.button ~label:"OK" ~packing:t#action_area#add () in
-  ok#grab_default ();
-  ignore (ok#connect#clicked ~callback:(fun () -> t#destroy()));
-  t#show ();
-  (* Do nothing until user destroys window *)
-  ignore (t#connect#destroy ~callback:Main.quit);
-  Main.main ();
-  releaseFocus ()
-
-(**********************************************************************)
-(* warnBox: Display a warning message in a window and wait for the    *)
-(* user to hit "OK" or "Exit".                                        *)
-(**********************************************************************)
-let warnBox ~title ~message =
-  inExit := true;
-  let t = GWindow.dialog ~title ~wm_name:title ~modal:true ~position:`CENTER () in
-  grabFocus t;
-  let theLabel =
-    GMisc.label ~text:message
-      ~packing:(t#vbox#pack ~padding:4) () in
-  let ok = GButton.button ~label:"OK" ~packing:t#action_area#add () in
-  ok#grab_default ();
-  ignore (ok#connect#clicked ~callback:(fun () -> t#destroy()));
-  let exi = GButton.button ~label:"Exit" ~packing:t#action_area#add () in
-  ignore (exi#connect#clicked ~callback:(fun () -> exit 0));
-  t#show ();
-  (* Do nothing until user destroys window *)
-  ignore (t#connect#destroy ~callback:Main.quit);
-  Main.main ();
-  releaseFocus ();
-  inExit := false
-
-(**********************************************************************)
-(* Standard file dialog                                               *)
-(**********************************************************************)
-let file_dialog ~title ~callback ?filename () =
-  let sel = GWindow.file_selection ~title ~modal:true ?filename () in
-  grabFocus sel;
-  ignore (sel#cancel_button#connect#clicked ~callback:sel#destroy);
-  ignore (sel#ok_button#connect#clicked ~callback:
-            (fun () ->
-               let name = sel#get_filename in
-               sel#destroy ();
-               callback name));
-  sel#show ();
-  Main.main ();
-  releaseFocus ()
-
-(**********************************************************************)
-(* The root selection dialog                                          *)
-(**********************************************************************)
-let rootSelect cont =
-  let t = GWindow.dialog ~title:"Root selection" ~wm_name:"Root selection"
-      ~modal:true ~allow_grow:true () in
-  t#misc#grab_focus ();
-  
-  let makeGetRoot title =
-    let fr =
-      GBin.frame ~label:title ~border_width:2 ~packing:(t#vbox#add) () in
-
-    let vb = GPack.vbox ~border_width:4 ~packing:fr#add () in
-  
-    let f = GPack.vbox ~packing:(vb#add) () in
-    let f0 = GPack.hbox ~spacing:4 ~packing:f#add () in
-    ignore (GMisc.label ~text:"Host:" ~packing:f0#pack ());
-    let localB = GButton.radio_button ~packing:f0#pack
-        ~label:"Local" () in
-    let remoteB = GButton.radio_button ~group:localB#group
-        ~packing:f0#pack ~label:"Remote" () in
-    let hostE = GEdit.entry ~packing:f0#add () in
-    let f1 = GPack.hbox ~spacing:4 ~packing:f#add () in
-    ignore (GMisc.label ~text:"File:" ~packing:f1#pack ());
-    let fileE = GEdit.entry ~packing:f1#add () in
-    let browseCommand() =
-      file_dialog ~title:"Select a local file"
-        ~callback:(fun file -> fileE#set_text file) ~filename:fileE#text ()
-    in
-    let b = GButton.button ~label:"Browse"
-        ~packing:f1#pack () in
-    ignore (b#connect#clicked ~callback:browseCommand);
-    let varLocalRemote = ref (`Local : [`Local|`Remote]) in
-    let localState() =
-      varLocalRemote := `Local;
-      hostE#misc#set_sensitive false;
-      b#misc#set_sensitive true
-    in
-    let remoteState() =
-      varLocalRemote := `Remote;
-      hostE#misc#set_sensitive true;
-      b#misc#set_sensitive false
-    in
-    ignore (localB#connect#clicked ~callback:localState);
-    ignore (remoteB#connect#clicked ~callback:remoteState);
-    localState();
-    let getRoot() =
-      let filePart = fileE#text in
-      let remoteHost = hostE#text in
-      (* FIX: should do sanity checking here *)
-      match !varLocalRemote with
-        `Local -> filePart
-      | `Remote -> "//"^remoteHost^"/"^filePart in
-    getRoot
-  in
-  
-  let getRoot1 = makeGetRoot "Root 1" in
-  let getRoot2 = makeGetRoot "Root 2" in
-  
-  let f3 = t#action_area in
-  let okCommand() =
-    let root1 = getRoot1() in
-    let root2 = getRoot2() in
-    Prefs.setPref Uicommon.roots Prefs.TempSetting [root1;root2];
-    t#destroy ();
-    cont ()
-  in
-  let okButton = GButton.button ~label:"OK" ~packing:f3#add () in
-  ignore (okButton#connect#clicked ~callback:okCommand);
-  okButton#grab_default ();
-  let cancelButton = GButton.button ~label:"Cancel" ~packing:f3#add () in
-  ignore (cancelButton#connect#clicked ~callback:safeExit);
-  
-  (* The profile editing dialog has been installed into the Gtk
-     main interaction loop; wait until it completes. *)
-  t#show ();
-  ignore (t#connect#destroy ~callback:Main.quit);
-  Main.main ()
-
-(**********************************************************************)
-(* The root selection dialog                                          *)
-(**********************************************************************)
-let editProfile prof =
-  (* FIX:
-     Scan the profile (if it is defined)
-     Extract the roots
-     Modifications
-     Save with new roots *)
-  let t = GWindow.dialog ~title:"Edit profile" ~wm_name:"Edit profile"
-      ~modal:true ~allow_grow:true () in
-  t#misc#grab_focus ();
-  
-  let vb = GPack.vbox ~border_width:4 ~packing:t#vbox#add () in
-  
-  let makeGetRoot() =
-    let f = GPack.vbox ~packing:(vb#pack ~expand:true ~padding:4) () in
-    let f0 = GPack.hbox ~spacing:4 ~packing:f#add () in
-    ignore (GMisc.label ~text:"Host:" ~packing:f0#pack ());
-    let localB = GButton.radio_button ~packing:f0#pack ~label:"Local" () in
-    let remoteB = GButton.radio_button ~group:localB#group
-        ~packing:f0#pack ~label:"Remote" () in
-    let hostE = GEdit.entry ~packing:f0#add () in
-    let f1 = GPack.hbox ~spacing:4 ~packing:f#add () in
-    ignore (GMisc.label ~text:"File:" ~packing:f1#pack ());
-    let fileE = GEdit.entry ~packing:f1#add () in
-    let browseCommand() =
-      file_dialog ~title:"Select a local file"
-        ~callback:(fun file -> fileE#set_text file) ()
-    in
-    let b = GButton.button ~label:"Browse" ~packing:f1#pack () in
-    ignore (b#connect#clicked ~callback:browseCommand);
-    let varLocalRemote = ref (`Local : [`Local|`Remote]) in
-    let localState() =
-      varLocalRemote := `Local;
-      hostE#set_editable false;
-      b#misc#set_state `NORMAL
-    in
-    let remoteState() =
-      varLocalRemote := `Remote;
-      hostE#set_editable true;
-      b#misc#set_state `INSENSITIVE
-    in
-    ignore (localB#connect#clicked ~callback:localState);
-    ignore (remoteB#connect#clicked ~callback:remoteState);
-    localState();
-    let getRoot() =
-      let filePart = fileE#text in
-      let remoteHost = hostE#text in
-      (* FIX: should do sanity checking here *)
-      match !varLocalRemote with
-        `Local -> filePart
-      | `Remote -> "//"^remoteHost^"/"^filePart in
-    getRoot
-  in
-  
-  
-  ignore (GMisc.label ~text:"Root 1:" ~xalign:0.
-            ~packing:(vb#pack ~expand:true ~padding:4) ());
-  let getRoot1 = makeGetRoot() in
-  
-  ignore (GMisc.label ~text:"Root 2:" ~xalign:0.
-            ~packing:(vb#pack ~expand:true ~padding:4) ());
-  let getRoot2 = makeGetRoot() in
-  
-  let f3 = t#action_area in
-  let okCommand() =
-    let root1 = getRoot1() in
-    let root2 = getRoot2() in
-    Prefs.setPref Uicommon.roots Prefs.PermanentSetting [root1;root2];
-    Globals.savePrefs();
-    t#destroy () in
-  let okButton = GButton.button ~label:"OK" ~packing:f3#add () in
-  ignore (okButton#connect#clicked ~callback:okCommand);
-  let cancelCommand() =
-    t#destroy ()
-  in
-  let cancelButton = GButton.button ~label:"Cancel" ~packing:f3#add () in
-  ignore (cancelButton#connect#clicked ~callback:cancelCommand);
-  
-  (* The profile editing dialog has been installed into the Gtk
-     main interaction loop; wait until it completes. *)
-  t#show ();
-  ignore (t#connect#destroy ~callback:Main.quit);
-  Main.main ()
-
-(**********************************************************************)
-(*                        Documentation window                        *)
-(**********************************************************************)
-let documentation sect =
-  let title = "Documentation" in
-  let t = GWindow.dialog ~title ~wm_name:title () in
-  let t_dismiss =
-    GButton.button ~label:"dismiss" ~packing:t#action_area#add () in
-  t_dismiss#grab_default ();
-  let dismiss () = t#destroy () in
-  ignore (t_dismiss#connect#clicked ~callback:dismiss);
-  ignore (t#event#connect#delete ~callback:(fun _ -> dismiss (); true));
-
-  let (name, docstr) = List.assoc sect Strings.docs in
-  let hb = GPack.hbox ~packing:(t#vbox#pack ~expand:false ~padding:2) () in
-  let optionmenu =
-    GMenu.option_menu ~packing:(hb#pack ~fill:false) () in
-
-  let charW = Gdk.Font.char_width (Lazy.force fontMonospaceMedium) 'M' in
-  let charH = 16 in
-  let t_text =
-    new scrolled_text ~editable:false
-      ~width:(charW * 80) ~height:(charH * 20) ~packing:t#vbox#add ()
-  in
-  t_text#insert docstr;
-
-  let sect_idx = ref 0 in
-  let idx = ref 0 in
-  let menu = GMenu.menu () in
-  let addDocSection (shortname, (name, docstr)) =
-    if shortname <> "" && name <> "" then begin
-      if shortname = sect then sect_idx := !idx;
-      incr idx;
-      let item = GMenu.menu_item ~label:name ~packing:menu#append () in
-      ignore
-        (item#connect#activate ~callback:(fun () -> t_text#insert docstr))
-    end
-  in
-  Safelist.iter addDocSection Strings.docs;
-  optionmenu#set_menu menu;
-  optionmenu#set_history !sect_idx;
-
-  t#show ()
-
-(**********************************************************************)
-(* The profile selection dialog                                       *)
-(**********************************************************************)
-let profileSelect cont =
-(* FIX:
-  - Choix du profil par defaut
-*)
-  let profilesAndRoots =
-    ref
-      (Safelist.map
-         (fun f ->
-            let filename = fspath2string (Os.fileInUnisonDir f) in
-            let roots =
-              Safelist.map snd
-                (Safelist.filter (fun (n, v) -> n = "root")
-                   (Prefs.scanPreferencesFile filename))
-            in
-            (Filename.chop_suffix f ".prf", roots))
-         (Files.ls (fspath2string Os.synchronizerFspath) "*.prf")) in
-
-  (* The selected profile *)
-  let selection = ref None in
-  
-  (* Build the dialog *)
-  let t = GWindow.dialog ~title:"Profiles" ~wm_name:"Profiles" () in
-  
-  let okCommand() =
-    match !selection with
-      Some profile ->
-        Globals.prefsFileName := profile ^ ".prf";
-        currentWindow := None;
-        t#destroy ();
-        cont ()
-    | _ ->
-        ()
-  in
-  let okButton = GButton.button ~label:"OK" ~packing:t#action_area#add () in
-  ignore (okButton#connect#clicked ~callback:okCommand);
-  okButton#misc#set_sensitive false;
-  okButton#grab_default ();
-  let cancelCommand() = t#destroy (); Main.quit () in
-  let cancelButton = GButton.button ~label:"Cancel"
-      ~packing:t#action_area#add () in
-  ignore (cancelButton#connect#clicked ~callback:cancelCommand);
-  cancelButton#misc#set_can_default true;
-  
-  let vb = t#vbox in
-  
-  ignore (GMisc.label
-            ~text:"Select an existing profile or create a new one"
-            ~xpad:2 ~ypad:2 ~packing:vb#pack ());
-  
-  let sw =
-    GBin.scrolled_window ~packing:vb#add ~height:100
-      ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC ()
-  in
-  let lst = GList.clist ~selection_mode:`BROWSE ~packing:(sw#add) () in
-  let fillLst default =
-    lst#freeze ();
-    lst#clear ();
-    let selRow = ref 0 in
-    let i = ref 0 in (* FIX: Work around a lablgtk bug *)
-    Safelist.iter
-      (fun (profile, roots) ->
-         ignore (lst#append [profile]);
-         if profile = default then selRow := !i;
-         lst#set_row_data !i (profile, roots);
-         incr i)
-      (List.sort (fun (p, _) (p', _) -> compare p p') !profilesAndRoots);
-    let r = lst#rows in
-    let p = if r < 2 then 0. else float !selRow /. float (r - 1) in
-    lst#scroll_vertical `JUMP p;
-    lst#thaw ()
-  in
-  let tbl =
-    GPack.table ~rows:2 ~columns:2 ~packing:vb#pack ()
-  in
-  tbl#misc#set_sensitive false;
-  ignore (GMisc.label ~text:"Root 1:" ~xpad:2
-            ~packing:(tbl#attach ~left:0 ~top:0 ~expand:`NONE) ());
-  ignore (GMisc.label ~text:"Root 2:" ~xpad:2
-            ~packing:(tbl#attach ~left:0 ~top:1 ~expand:`NONE) ());
-  let root1 =
-    GEdit.entry ~packing:(tbl#attach ~left:1 ~top:0) ~editable:false () in
-  let root2 =
-    GEdit.entry ~packing:(tbl#attach ~left:1 ~top:1) ~editable:false () in
-  root1#misc#set_can_focus false;
-  root2#misc#set_can_focus false;
-  let hb =
-    GPack.hbox ~border_width:2 ~spacing:2 ~packing:(vb#pack ~expand:false) ()
-  in
-  let nw =
-    GButton.button ~label:"Create new profile"
-      ~packing:hb#pack () in
-  ignore (nw#connect#clicked ~callback:(fun () ->
-    let t =
-      GWindow.dialog ~title:"New profile" ~wm_name:"New profile" ~modal:true ()
-    in
-    let vb = GPack.vbox ~border_width:4 ~packing:t#vbox#add () in
-    let f = GPack.vbox ~packing:(vb#pack ~expand:true ~padding:4) () in
-    let f0 = GPack.hbox ~spacing:4 ~packing:f#add () in
-    ignore (GMisc.label ~text:"Profile name:"
-              ~packing:f0#pack ());
-    let prof = GEdit.entry ~packing:f0#add () in
-    prof#misc#grab_focus ();
-
-    let exit () = t#destroy (); Main.quit () in
-    ignore (t#event#connect#delete ~callback:(fun _ -> exit (); true));
-
-    let f3 = t#action_area in
-    let okCommand () =
-      let profile = prof#text in
-      if profile <> "" then
-        let file = profile ^ ".prf" in
-        let fspath = Os.fileInUnisonDir file in
-        let filename = fspath2string fspath in
-        if Sys.file_exists filename then
-          okBox (myName ^ " error")
-            ("Profile \""
-             ^ profile
-             ^ "\" already exists!\nPlease select another name.")
-        else
-          (* Make an empty file *)
-          let ch =
-            open_out_gen
-              [Open_wronly; Open_creat; Open_trunc] 0o600 filename in
-          close_out ch;
-          profilesAndRoots := (profile, [])::!profilesAndRoots;
-          fillLst profile;
-          exit ()
-    in
-    let okButton = GButton.button ~label:"OK" ~packing:f3#add () in
-    ignore (okButton#connect#clicked ~callback:okCommand);
-    okButton#grab_default ();
-    let cancelButton = GButton.button ~label:"Cancel" ~packing:f3#add () in
-    ignore (cancelButton#connect#clicked ~callback:exit);
-
-    t#show ();
-    grabFocus t;
-    Main.main ();
-    releaseFocus ()));
-  let ed =
-    GButton.button ~label:"Edit" (*~packing:(hb#pack ~expand:false)*) () in
-  let sd =
-    GButton.button ~label:"Set default" (*~packing:(hb#pack ~expand:false)*) ()
-  in
-  let hlp =
-    GButton.button ~label:"Help"
-      ~packing:(hb#pack ~expand:false ~from:`END) () in
-  ignore (hlp#connect#clicked ~callback:(fun () -> documentation "tutorial"));
-
-  ignore (lst#connect#unselect_row ~callback:(fun _ _ _ ->
-    root1#set_text ""; root2#set_text "";
-    selection := None;
-    tbl#misc#set_sensitive false;
-    okButton#misc#set_sensitive false;
-    ed#misc#set_sensitive false;
-    sd#misc#set_sensitive false));
-  ignore (lst#connect#select_row ~callback:(fun i _ _ ->
-    (* Inserting the first row trigger the signal, even before the row
-       data is set. So, we need to catch the corresponding exception *)
-    try
-      let (profile, roots) = lst#get_row_data i in
-      selection := Some profile;
-      begin match roots with
-        [r1; r2] -> root1#set_text r1; root2#set_text r2;
-                    tbl#misc#set_sensitive true
-      | _        -> root1#set_text ""; root2#set_text "";
-                    tbl#misc#set_sensitive false
-      end;
-      okButton#misc#set_sensitive true;
-      ed#misc#set_sensitive true;
-      sd#misc#set_sensitive true
-    with Gpointer.Null -> ()));
-  ignore (lst#event#connect#button_press ~callback:(fun ev ->
-    match GdkEvent.get_type ev with
-      `TWO_BUTTON_PRESS ->
-        okCommand ();
-        true
-    | _ ->
-        false));
-  fillLst "default";
-  lst#misc#grab_focus ();
-  currentWindow := Some (t :> GWindow.window);
-  ignore (t#event#connect#delete ~callback:(fun _ -> Main.quit (); true));
-  t#show ()
-
-(**********************************************************************)
-(* Function to display a message in a new window                      *)
-(**********************************************************************)
-let messageBox ~title ?(label = "Dismiss") ?(action = fun t -> t#destroy)
-    ?(modal = false) message =
-  let t = GWindow.dialog ~title ~wm_name:title ~modal ~position:`CENTER () in
-  let t_dismiss = GButton.button ~label ~packing:t#action_area#add () in
-  t_dismiss#grab_default ();
-  ignore (t_dismiss#connect#clicked ~callback:(action t));
-  let charW = Gdk.Font.char_width (Lazy.force fontMonospaceMedium) 'M' in
-  let charH = 16 in
-  let t_text =
-    new scrolled_text ~editable:false
-      ~width:(charW * 80) ~height:(charH * 20) ~packing:t#vbox#add ()
-  in
-  t_text#insert message;
-  ignore (t#event#connect#delete ~callback:(fun _ -> action t (); true));
-  t#show ();
-  if modal then begin
-    grabFocus t;
-    Main.main ();
-    releaseFocus ()
-  end
-
-(**********************************************************************)
-(* Fatal error handling                                               *)
-(**********************************************************************)
-let fatalError =
-  messageBox ~title:"Fatal Error" ~label:"Exit" ~modal:true
-    ~action:(fun t () -> exit 1)
-
-
-(**********************************************************************)
-(*                      Toplevel window                               *)
-(**********************************************************************)
-let createToplevelWindow () =
-  let toplevelWindow = GWindow.window ~wm_name:myName () in
-  let toplevelVBox = GPack.vbox ~packing:toplevelWindow#add () in
-
-  (**********************************************************************)
-  (* Groups of same sensitivity                                         *)
-  (**********************************************************************)
-  let grAction = ref [] in
-  let grDiff = ref [] in
-  let grProceed = ref [] in
-  let grRestart = ref [] in
-  let grAdd gr w = gr := w#misc::!gr in
-  let grSet gr st = List.iter (fun x -> x#set_sensitive st) !gr in
-
-  (**********************************************************************)
-  (* Create the menu bar                                                *)
-  (**********************************************************************)
-  let menuBar =
-    GMenu.menu_bar ~border_width:2 ~packing:toplevelVBox#pack ()
-  in
-  let menus = new GMenu.factory ~accel_modi:[] menuBar in
-  let accel_group = menus#accel_group in
-  toplevelWindow#add_accel_group accel_group;
-  let add_submenu ?(modi=[]) ~label () =
-    new GMenu.factory ~accel_group ~accel_modi:modi (menus#add_submenu label)
-  in
-  
-  (**********************************************************************)
-  (* Create the menus                                                   *)
-  (**********************************************************************)
-  let fileMenu = add_submenu ~label:"Synchronization" ()
-  and actionsMenu = add_submenu ~label:"Actions" ()
-  and ignoreMenu = add_submenu ~modi:[`SHIFT] ~label:"Ignore" ()
-  and helpMenu = add_submenu ~label:"Help" () in
-
-  (**********************************************************************)
-  (* Create the main window                                             *)
-  (**********************************************************************)
-  let mainWindow =
-    let sw =
-      GBin.scrolled_window ~packing:(toplevelVBox#add)
-        ~height:(Prefs.readPref mainWindowHeight * 12)
-        ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC ()
-    in
-    GList.clist
-      ~columns:5 ~titles_show:true ~selection_mode:`BROWSE ~packing:sw#add ()
-  in
-  mainWindow#misc#grab_focus ();
-  (* FIX: roots2string should return a pair *)
-  let s = roots2string () in
-  Array.iteri
-    (fun i data ->
-       mainWindow#set_column
-         ~title_active:false ~auto_resize:true ~title:data i)
-    [| " " ^ String.sub s ~pos:0 ~len:12 ^ " "; "  Action  ";
-       " " ^ String.sub s ~pos:15 ~len:12 ^ " "; "  Status  "; " Path" |];
-  let status_width =
-    let font = mainWindow#misc#style#font in
-    4 + max (Gdk.Font.string_width font "working")
-            (Gdk.Font.string_width font "skipped")
-  in
-  mainWindow#set_column ~justification:`CENTER 1;
-  mainWindow#set_column
-    ~justification:`CENTER ~auto_resize:false ~width:status_width 3;
-
-  (**********************************************************************)
-  (* Create the details window                                          *)
-  (**********************************************************************)
-
-  let charW = Gdk.Font.char_width (Lazy.force fontMonospaceMedium) 'M' in
-  let charH = if Sys.os_type = "Win32" then 20 else 16 in
-
-  let detailsWindow =
-    let sw =
-      GBin.scrolled_window ~packing:(toplevelVBox#pack ~expand:false)
-        ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC ()
-    in
-    GEdit.text ~editable:false ~height:(3 * charH) ~width: (96 * charW)
-      ~line_wrap:false ~packing:sw#add () in
-  detailsWindow#misc#set_can_focus false;
-  let style = detailsWindow#misc#style#copy in
-  style#set_font (Lazy.force fontMonospaceMedium);
-  detailsWindow#misc#set_style style;
-  let updateButtons () =
-    match !current with
-      None ->
-        grSet grAction false;
-        grSet grDiff false
-    | Some row ->
-        let (activate1, activate2) =
-          match !theState.(row).whatHappened, !theState.(row).ri.replicas with
-            Some _, _                                    -> (false, false)
-          | None,   Different((FILE,_, _),(FILE,_, _),_) -> (true, true)
-          | None,   _                                    -> (true, false)
-        in
-        grSet grAction activate1;
-        grSet grDiff activate2
-  in
-
-  let makeRowVisible row =
-    if mainWindow#row_is_visible row <> `FULL then begin
-      let adj = mainWindow#vadjustment in
-      let current = adj#value
-      and upper = adj#upper and lower = adj#lower in
-      let v =
-        float row /. float (mainWindow#rows + 1) *. (upper-.lower) +. lower
-      in
-      adj#set_value (min v (upper -. adj#page_size))
-    end
-  in
-
-  let updateDetails () =
-    detailsWindow#freeze ();
-    detailsWindow#delete_text ~start:0 ~stop:detailsWindow#length;
-    begin match !current with
-      None ->
-        ()
-    | Some row ->
-        makeRowVisible row;
-        let details =
-          match !theState.(row).whatHappened with
-            None -> details2string !theState.(row).ri "  "
-          | Some(Succeeded(_)) -> details2string !theState.(row).ri "  "
-          | Some(Failed(s)) -> s in
-        detailsWindow#insert (path2string !theState.(row).ri.path);
-        detailsWindow#insert "\n";
-        detailsWindow#insert details
-    end;
-    (* Display text *)
-    detailsWindow#thaw ();
-    updateButtons ()
-  in
-
-  (**********************************************************************)
-  (*                       CREATE THE STATUS WINDOW                     *)
-  (**********************************************************************)
-
-  let statusWindow =
-    GMisc.statusbar ~packing:toplevelVBox#pack () in
-  let statusContext = statusWindow#new_context ~name:"status" in
-  ignore (statusContext#push "");
-
-  let displayStatus s1 s2 =
-    Threads.do_on_main_thread (fun () ->
-      (* Concatenate the new message *)
-      let m =
-        s1 ^ (String.make (max 2 (30 - String.length s1)) ' ') ^ s2 in
-      statusContext#pop ();
-      ignore (statusContext#push m);
-      (* Force message to be displayed immediately *)
-      gtk_sync ())
-  in
-
-  (* Tell the Trace module about the status printer *)
-  Trace.statusPrinter := Some displayStatus;
-
-  (**********************************************************************)
-  (*            FUNCTIONS USED TO PRINT IN THE MAIN WINDOW              *)
-  (**********************************************************************)
-
-  let select i =
-    let r = mainWindow#rows in
-    let p = if r < 2 then 0. else (float i +. 0.5) /. float (r - 1) in
-    mainWindow#scroll_vertical `JUMP (min p 1.)
-  in
-
-  ignore (mainWindow#connect#unselect_row ~callback:
-      (fun ~row ~column ~event -> current := None; updateDetails ()));
-  ignore (mainWindow#connect#select_row ~callback:
-      (fun ~row ~column ~event -> current := Some row; updateDetails ()));
-
-  let nextInteresting () =
-    let l = Array.length !theState in
-    let start = match !current with Some i -> i + 1 | None -> 0 in
-    let rec loop i =
-      if i < l then
-        match !theState.(i).ri.replicas with
-          Different (_, _, dir)
-              when not (Prefs.readPref auto) || !dir = Conflict ->
-            select i
-        | _ ->
-            loop (i + 1)
-    in
-    loop start
-  in
-  let selectSomethingIfPossible () =
-    if !current=None then nextInteresting ()
-  in
-
-  let columnsOf i =
-    let oldPath = if i = 0 then emptypath else !theState.(i-1).ri.path in
-    let status =
-      match !theState.(i).whatHappened with
-        None -> "      "
-      | Some conf ->
-          match !theState.(i).ri.replicas with
-            Different(_,_,{contents=Conflict}) | Problem _ ->
-              "      "
-          | _ ->
-              match conf with
-                Succeeded _ -> "done  "
-              | Failed _    -> "failed"
-    in
-    let s = reconItem2string oldPath !theState.(i).ri status in
-    (* FIX: This is ugly *)
-    (String.sub s ~pos:0 ~len:8,
-     String.sub s ~pos:9 ~len:5,
-     String.sub s ~pos:15 ~len:8,
-     String.sub s ~pos:25 ~len:6,
-     String.sub s ~pos:32 ~len:(String.length s - 32))
-  in
-
-  let rightArrow =
-    GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.copyAB () in
-  let leftArrow =
-    GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.copyBA () in
-  let rightArrowBlack =
-    GDraw.pixmap_from_xpm_d
-      ~window:toplevelWindow ~data:Pixmaps.copyABblack () in
-  let leftArrowBlack =
-    GDraw.pixmap_from_xpm_d
-      ~window:toplevelWindow ~data:Pixmaps.copyBAblack () in
-  let ignoreAct =
-    GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.ignore () in
-  let doneIcon = 
-    GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.success () in
-  let failedIcon = 
-    GDraw.pixmap_from_xpm_d ~window:toplevelWindow ~data:Pixmaps.failure () in
-
-  let displayArrow i action =
-    match action with
-      "<-?->" -> mainWindow#set_cell ~pixmap:ignoreAct i 1
-    | "---->" -> mainWindow#set_cell ~pixmap:rightArrow i 1
-    | "<----" -> mainWindow#set_cell ~pixmap:leftArrow i 1
-    | "error" -> mainWindow#set_cell ~pixmap:failedIcon i 1
-    |    _    -> assert false
-  in
-
-  let displayStatusIcon i status =
-    match status with
-    | "failed" -> mainWindow#set_cell ~pixmap:failedIcon i 3
-    | "done  " -> mainWindow#set_cell ~pixmap:doneIcon i 3
-    | _        -> mainWindow#set_cell ~text:status i 3
-  in
-
-  let displayMain() =
-    mainWindow#freeze ();
-    mainWindow#clear ();
-    for i = 0 to Array.length !theState - 1 do
-      let (r1, action, r2, status, path) = columnsOf i in
-      ignore (mainWindow#append [ r1; ""; r2; status; path ]);
-      displayArrow i action
-    done;
-    selectSomethingIfPossible ();
-    begin match !current with Some idx -> select idx | None -> () end;
-    mainWindow#thaw ();
-    updateDetails ()
-  in
-
-  let redisplay i =
-    let (r1, action, r2, status, path) = columnsOf i in
-    mainWindow#freeze ();
-    mainWindow#set_cell ~text:r1     i 0;
-    displayArrow i action;
-    mainWindow#set_cell ~text:r2     i 2;
-    displayStatusIcon i status;
-    mainWindow#set_cell ~text:path   i 4;
-    if status = " failed " then mainWindow#set_row ~foreground:(`NAME"red") i;
-    mainWindow#thaw ();
-    if !current = Some i then updateDetails ();
-    updateButtons ()
-  in
-
-  let showProgress i bytes =
-    !theState.(i).bytesTransferred <- !theState.(i).bytesTransferred + bytes;
-    let b = !theState.(i).bytesTransferred in
-    let len = Common.riLength !theState.(i).ri in
-    let newstatus =
-      if b=0 || len = 0 then "working "
-      else if len = 0 then sprintf "%8d" b 
-      else
-        let percentage = (int_of_float ((float b) *. 100.0 /. (float len))) in
-        if percentage > 100 then
-          debugprogress (fun() -> errmsg "Progress amount miscalculated for %s\n"
-                                    (path2string (!theState.(i).ri.path)));
-        sprintf "  %3d%%  " (max 100 percentage) in
-    Threads.do_on_main_thread (fun () ->
-      mainWindow#set_cell ~text:newstatus i 3;
-      gtk_sync ())
-  in
-
-  (* Install showProgress so that we get called back by low-level
-     file transfer stuff *)
-  Util.progressPrinter := Some(showProgress);
-
-  (* Apply new ignore patterns to the current state, expecting that the
-     number of reconitems will grow smaller. Adjust the display, being
-     careful to keep the cursor as near as possible to its position
-     before the new ignore patterns take effect. *)
-  let ignoreAndRedisplay () =
-    let lst = Array.to_list !theState in
-    (* FIX: we should actually test whether any prefix is now ignored *)
-    let keep sI = not (Pred.test Globals.ignore (path2string sI.ri.path)) in
-    begin match !current with
-      None ->
-        theState := Array.of_list (Safelist.filter keep lst)
-    | Some index ->
-        let i = ref index in
-        let l = ref [] in
-        Array.iteri
-          (fun j sI -> if keep sI then l := sI::!l
-                       else if j < !i then decr i)
-          !theState;
-        current := if !l = [] then None else Some !i;
-        theState := Array.of_list (Safelist.rev !l)
-    end;
-    displayMain();
-  in
-  
-  (**********************************************************************)
-  (*                         FUNCTION DETECT UPDATES                    *)
-  (**********************************************************************)
-
-  let detectUpdatesAndReconcile () =
-    grSet grAction false;
-    grSet grDiff false;
-    grSet grProceed false;
-    grSet grRestart false;
-
-    let (r1,r2) = Globals.getReplicaRoots () in
-    let t = Trace.startTimer "Checking for updates" in
-    let findUpdates () =
-      let updates = Update.findUpdates () in
-      Trace.showTimer t;
-      updates
-    in
-    let reconcile updates =
-      let t = Trace.startTimer "Reconciling" in
-      Recon.reconcileAll updates
-    in
-    let reconItemList = reconcile (findUpdates ()) in
-    Trace.showTimer t;
-    if reconItemList = [] then
-      Trace.status "Everything is up to date"
-    else
-      Trace.status ("Check and/or adjust selected actions; "
-                    ^ "then press Proceed");
-    theState :=
-      Array.of_list
-         (Safelist.map
-            (fun ri -> { ri = ri; bytesTransferred = 0; whatHappened = None })
-            reconItemList);
-    current := None;
-    displayMain();
-    grSet grProceed (Array.length !theState > 0);
-    grSet grRestart true
-  in
-
-  (**********************************************************************)
-  (* The ignore dialog                                                  *)
-  (**********************************************************************)
-
-  let ignoreDialog () =
-    let t = GWindow.dialog ~title: "Ignore" ~wm_name: "Ignore" () in
-    let hbox = GPack.hbox ~packing:t#vbox#add () in
-    let sb = GRange.scrollbar `VERTICAL
-        ~packing:(hbox#pack ~from:`END) () in
-    let regExpWindow =
-      GList.clist ~columns:1 ~titles_show:false ~packing:hbox#add
-        ~vadjustment:sb#adjustment ~width:400 ~height:150 () in
-    
-    (* Local copy of the regular expressions; the global copy will
-       not be changed until the Apply button is pressed *)
-    let theRegexps = Pred.extern Globals.ignore in
-    Safelist.iter (fun r -> ignore (regExpWindow#append [r])) theRegexps;
-    let maybeGettingBigger = ref false in
-    let maybeGettingSmaller = ref false in
-    let selectedRow = ref None in
-    ignore
-      (regExpWindow#connect#select_row ~callback:
-         (fun ~row ~column ~event -> selectedRow := Some row));
-    ignore
-      (regExpWindow#connect#unselect_row ~callback:
-         (fun ~row ~column ~event -> selectedRow := None));
-    
-    (* Configure the add frame *)
-    let hbox = GPack.hbox ~spacing:4 ~packing:t#vbox#pack () in
-    ignore (GMisc.label ~text: "Regular expression:"
-              ~packing:(hbox#pack ~padding:2) ());
-    let entry = GEdit.entry ~packing:hbox#add () in
-    let add () =
-      let theRegExp = entry#text in
-      if theRegExp<>"" then begin
-        entry#set_text "";
-        regExpWindow#unselect_all ();
-        ignore (regExpWindow#append [theRegExp]);
-        maybeGettingSmaller := true
-      end
-    in
-    let addButton = GButton.button ~label:"Add"
-        ~packing:hbox#pack () in
-    ignore (addButton#connect#clicked ~callback:add);
-    ignore (entry#connect#activate ~callback:add);
-    entry#misc#grab_focus ();
-    
-    (* Configure the delete button *)
-    let delete () =
-      match !selectedRow with
-        Some x ->
-          (* After a deletion, updates must be detected again *)
-          maybeGettingBigger := true;
-          (* Delete xth regexp *)
-          regExpWindow#unselect_all ();
-          regExpWindow#remove ~row:x
-      | None ->
-          ()
-    in
-    let deleteButton = GButton.button ~label:"Delete"
-        ~packing:hbox#pack () in
-    ignore (deleteButton#connect#clicked ~callback:delete);
-    
-    ignore
-      (regExpWindow#event#connect#after#key_press ~callback:
-         begin fun ev ->
-           let key = GdkEvent.Key.keyval ev in
-           if key = _Up || key = _Down || key = _Prior || key = _Next ||
-           key = _Page_Up || key = _Page_Down then begin
-             regExpWindow#select (regExpWindow#focus_row) 0;
-             true
-           end else if key = _Delete then begin
-             delete (); true
-           end else
-             false
-         end);
-    
-    (* A function to refresh the state and ignore list *)
-    let refresh () =
-      let theRegexps = ref [] in
-      for i = regExpWindow#rows - 1 downto 0 do
-        theRegexps := regExpWindow#cell_text i 0 :: !theRegexps
-      done;
-      Pred.intern Globals.ignore (!theRegexps);
-      if !maybeGettingBigger || !maybeGettingSmaller then begin
-        Globals.savePrefs();
-        Globals.propagatePrefs()
-      end;
-      if !maybeGettingBigger then detectUpdatesAndReconcile ()
-      else if !maybeGettingSmaller then ignoreAndRedisplay();
-      maybeGettingBigger := false;
-      maybeGettingSmaller := false;
-    in
-    
-    (* Install the main buttons *)
-    let applyButton =
-      GButton.button ~label:"Apply" ~packing:t#action_area#add () in
-    ignore (applyButton#connect#clicked ~callback:refresh);
-    let cancelButton =
-      GButton.button ~label:"Cancel" ~packing:t#action_area#add () in
-    ignore (cancelButton#connect#clicked ~callback:(t#destroy));
-    let okButton =
-      GButton.button ~label:"OK" ~packing:t#action_area#add () in
-    ignore
-      (okButton#connect#clicked
-         ~callback:(fun () -> refresh (); t#destroy ()));
-    ignore (t#connect#destroy ~callback:Main.quit);
-    grabFocus t;
-    t#show ();
-    Main.main ();
-    releaseFocus ()
-  in
-
-  (**********************************************************************)
-  (* Add entries to the Help menu                                       *)
-  (**********************************************************************)
-  let addDocSection (shortname, (name, docstr)) =
-    if shortname <> "" && name <> "" then
-      ignore (helpMenu#add_item
-               ~callback:(fun () -> documentation shortname)
-                name)
-  in
-  Safelist.iter addDocSection Strings.docs;
-
-  (**********************************************************************)
-  (* Add entries to the Ignore menu                                     *)
-  (**********************************************************************)
-  let addRegExpByPath pathfunc =
-    match !current with
-      Some i ->
-        addIgnorePattern (pathfunc !theState.(i).ri.path);
-        ignoreAndRedisplay ()
-    | None ->
-        ()
-  in
-  grAdd grAction
-    (ignoreMenu#add_item ~key:_i
-       ~callback:(fun () -> getLock (fun () -> addRegExpByPath ignorePath))
-       "Ignore this file permanently");
-  grAdd grAction
-    (ignoreMenu#add_item ~key:_E
-       ~callback:(fun () -> getLock (fun () -> addRegExpByPath ignoreExt))
-       "Ignore files with this extension");
-  grAdd grAction
-    (ignoreMenu#add_item ~key:_N
-       ~callback:(fun () -> getLock (fun () -> addRegExpByPath ignoreName))
-       "Ignore files with this name");
-
-(*
-  grAdd grRestart
-    (ignoreMenu#add_item ~callback:
-       (fun () -> getLock ignoreDialog) "Edit ignore patterns");
-*)
-
-  (**********************************************************************)
-  (*                       MAIN FUNCTION : SYNCHRONIZE                  *)
-  (**********************************************************************)
-  let synchronize () =
-    if Array.length !theState = 0 then
-      Trace.status "Nothing to synchronize"
-    else begin
-      grSet grAction false;
-      grSet grDiff false;
-      grSet grProceed false;
-      grSet grRestart false;
-
-      Trace.status "Propagating changes";
-      let t = Trace.startTimer "Propagating changes" in
-      let (start, wait) = Threads.thread_maker () in
-      let background = let i = 55000 in `RGB (i, i, i) in
-      let finish i =
-        redisplay i;
-        mainWindow#set_row ~background:`WHITE i;
-        gtk_sync ()
-      in
-      for i = 0 to Array.length !theState - 1 do
-        let theSI = !theState.(i) in
-        assert (theSI.whatHappened = None);
-        start
-          (fun () ->
-             Threads.do_on_main_thread (fun () ->
-               mainWindow#set_row ~background i;
-               makeRowVisible i);
-             theSI.whatHappened <- Some (Transport.transportItem theSI.ri i);
-             i)
-          finish
-      done;
-      wait finish;
-      
-      Trace.showTimer t;
-      Trace.status "Updating synchronizer state";
-      let t = Trace.startTimer "Updating synchronizer state" in
-      Update.commitUpdates();
-      Trace.showTimer t;
-      Trace.status "Synchronization complete";
-
-      grSet grRestart true
-    end
-  in
-
-  (**********************************************************************)
-  (*                  CREATE THE ACTION BAR                             *)
-  (**********************************************************************)
-  let actionBar =
-    GButton.toolbar
-      ~orientation:`HORIZONTAL ~tooltips:true ~space_size:10
-      ~packing:toplevelVBox#pack () in
-
-  (**********************************************************************)
-  (*         CREATE AND CONFIGURE THE QUIT BUTTON                       *)
-  (**********************************************************************)
-  actionBar#insert_space ();
-  ignore (actionBar#insert_button ~text:"Quit" ~callback:safeExit ());
-
-  (**********************************************************************)
-  (*         CREATE AND CONFIGURE THE PROCEED BUTTON                    *)
-  (**********************************************************************)
-  actionBar#insert_space ();
-  grAdd grProceed
-    (actionBar#insert_button ~text:"Proceed"
-       (* tooltip:"Proceed with displayed actions" *)
-       ~callback:(fun () ->
-                    getLock synchronize) ());
-
-  (**********************************************************************)
-  (*           CREATE AND CONFIGURE THE RESCAN BUTTON                   *)
-  (**********************************************************************)
-  let detectCmdName = "Restart" in
-  let detectCmd () =
-    getLock detectUpdatesAndReconcile;
-    if Prefs.readPref batch then begin
-      Prefs.setPref batch Prefs.TempSetting false; synchronize()
-    end
-  in
-  actionBar#insert_space ();
-  grAdd grRestart
-    (actionBar#insert_button ~text:detectCmdName ~callback:detectCmd ());
-
-  (**********************************************************************)
-  (* Buttons for <--, -->, Skip                                         *)
-  (**********************************************************************)
-  let doAction f =
-    match !current with
-      Some i ->
-        let theSI = !theState.(i) in
-        begin match theSI.whatHappened, theSI.ri.replicas with
-          None, Different(_, _, dir) ->
-            f dir;
-            redisplay i;
-            nextInteresting ()
-        | _ ->
-            ()
-        end
-    | None ->
-        ()
-  in
-  let leftAction     _ = doAction (fun dir -> dir := Replica2ToReplica1) in
-  let rightAction    _ = doAction (fun dir -> dir := Replica1ToReplica2) in
-  let questionAction _ = doAction (fun dir -> dir := Conflict) in
-
-  (**********************************************************************)
-  (*             CREATE AND CONFIGURE THE DIFF BUTTON and KEY           *)
-  (**********************************************************************)
-  let diffCmd () =
-    match !current with
-      Some i ->
-        getLock (fun () ->
-          showDiffs !theState.(i).ri
-            (fun title text -> messageBox ~title text)
-            Trace.status i)
-    | None ->
-        ()
-  in
-
-  actionBar#insert_space ();
-  grAdd grAction
-    (actionBar#insert_button
-       ~icon:((GMisc.pixmap leftArrowBlack ())#coerce)
-       ~callback:leftAction ());
-  actionBar#insert_space ();
-  grAdd grAction
-    (actionBar#insert_button
-       ~icon:((GMisc.pixmap rightArrowBlack ())#coerce)
-       ~callback:rightAction ());
-  actionBar#insert_space ();
-  grAdd grAction
-    (actionBar#insert_button ~text:"Skip" ~callback:questionAction ());
-  actionBar#insert_space ();
-  grAdd grDiff (actionBar#insert_button ~text:"Diff" ~callback:diffCmd ());
-
-  (**********************************************************************)
-  (* Configure keyboard commands                                        *)
-  (**********************************************************************)
-  ignore
-    (mainWindow#event#connect#key_press ~callback:
-       begin fun ev ->
-         let key = GdkEvent.Key.keyval ev in
-         if key = _Left then begin
-           leftAction (); GtkSignal.stop_emit (); true
-         end else if key = _Right then begin
-           rightAction (); GtkSignal.stop_emit (); true
-         end else
-           false
-       end);
-
-  (**********************************************************************)
-  (* Add entries to the Action menu                                     *)
-  (**********************************************************************)
-  let (root1,root2) = Globals.getReplicaRoots () in
-  let loc1 = root2hostname root1 in
-  let loc2 = root2hostname root2 in
-  let descr =
-    if loc1 = loc2 then "left to right" else
-    Printf.sprintf "from %s to %s" loc1 loc2
-  in
-  let left =
-    actionsMenu#add_item ~key:_greater ~callback:rightAction
-      ("Propagate " ^ descr) in
-  grAdd grAction left;
-  left#add_accelerator ~group:accel_group ~modi:[`SHIFT] _greater;
-  
-  let descl =
-    if loc1 = loc2 then "right to left" else
-    Printf.sprintf "from %s to %s" loc2 loc1
-  in
-  let right =
-    actionsMenu#add_item ~key:_less ~callback:leftAction
-      ("Propagate " ^ descl) in
-  grAdd grAction right;
-  right#add_accelerator ~group:accel_group ~modi:[`SHIFT] _less;
-  grAdd grAction
-    (actionsMenu#add_item ~key:_slash ~callback:questionAction
-       "Do not propagate changes");
-
-  ignore (actionsMenu#add_separator ());
-  grAdd grDiff (actionsMenu#add_item ~key:_d ~callback:diffCmd "Show diffs");
-
-  (**********************************************************************)
-  (* Add commands to the Synchronization menu                           *)
-  (**********************************************************************)
-  grAdd grProceed
-    (fileMenu#add_item ~key:_g
-       ~callback:(fun () ->
-                    getLock synchronize)
-       "Proceed");
-  grAdd grRestart (fileMenu#add_item ~key:_r ~callback:detectCmd detectCmdName);
-  grAdd grRestart
-    (fileMenu#add_item ~key:_a
-       ~callback:(fun () ->
-                    getLock detectUpdatesAndReconcile; 
-                    getLock synchronize)
-       "Atomically detect updates and proceed");
-  ignore (fileMenu#add_separator ());
-  let cm =
-    fileMenu#add_check_item ~active:(Prefs.readPref Transport.backups)
-      ~callback:(fun b -> Prefs.setPref Transport.backups Prefs.TempSetting b)
-      "Make backups"
-  in
-  cm#set_show_toggle true;
-  grAdd grRestart cm;
-  ignore (fileMenu#add_separator ());
-  ignore (fileMenu#add_item ~key:_q ~callback:safeExit "Quit");
-
-  grSet grAction false;
-  grSet grDiff false;
-  grSet grProceed false;
-  grSet grRestart false;
-
-  ignore (toplevelWindow#event#connect#delete ~callback:
-            (fun _ -> safeExit (); true));
-  toplevelWindow#show ();
-  currentWindow := Some toplevelWindow;
-  detectCmd ()
-
-(**********************************************************************)
-(* Starting up...                                                     *)
-(**********************************************************************)
-let start _ =
-  begin try
-    (* Initialize the library *)
-    ignore (Main.init ());
-
-    Util.warnPrinter := Some (warnBox "Warning");
-    (* Ask the Remote module to call us back at regular intervals during
-       long network operations. *)
-    Threads.tickProc := Some gtk_sync;
-
-    (**********************************************************************)
-    (* Set things up to initialize the client/server connection and       *)
-    (* detect updates after the ui is displayed.                          *)
-    (* This makes a difference when the replicas are large and it takes   *)
-    (* a lot of time to detect updates.                                   *)
-    (**********************************************************************)
-    let msg = ref None in
-    Uicommon.uiInit
-      profileSelect
-      rootSelect
-      (fun () ->
-         let w =
-           GWindow.window ~kind:`TOPLEVEL ~position:`CENTER
-             ~wm_name:"Unison" ~border_width:16 () in
-         ignore (GMisc.label ~text: "Contacting server..."
-                   ~packing:(w#add) ());
-         w#show ();
-         ignore (w#event#connect#delete ~callback:(fun _ -> exit 0));
-         msg := Some w)
-      (fun () ->
-         begin match !msg with
-           None   -> ()
-         | Some w -> w#destroy ()
-         end;
-         createToplevelWindow ());
-
-    (**********************************************************************)
-    (* Display the ui                                                     *)
-    (**********************************************************************)
-    ignore (Timeout.add 500 (fun _ -> true));
-              (* Hack: this allows signals such as SIGINT to be
-                 handled even when Gtk is waiting for events *)
-    Main.main ()
-  with exn ->
-    fatalError (exn2string exn)
-  end
-
-end (* module Private *)
-
-(**********************************************************************)
-(*                               MODULE MAIN                          *)
-(**********************************************************************)
-
-module Body : Uicommon.UI = struct
-
-let start = function
-    Text -> Uitext.Body.start Text
-  | Graphic -> Private.start Graphic
-
-end (* module Body *)
-
-(*
-FIX:
-- Édition (minimale) et création des profiles
-- Profile par défaut
-- Sanity checks pour "Root selection"
-- Edition du filtrage
-*)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/config.make.nt b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/config.make.nt
deleted file mode 100644 (file)
index 3fe6b56..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-LIBDIR=c:/Home/garrigue/ocaml/lib
-GTKCFLAGS=-I../glib -I../gtk+
-GTKSRC=c:\Home\garrigue
-GTKLIBS=$(GTKSRC)/glib/gmodule-1.3.lib $(GTKSRC)/glib/glib-1.3.lib $(GTKSRC)/gtk+/gdk/gdk-1.3.lib $(GTKSRC)/gtk+/gtk/gtk-1.3.lib
-USE_GL=0
-USE_CC=0
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/configure.mk b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/configure.mk
deleted file mode 100644 (file)
index 49b3d70..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-# makefile for configuring lablGTK
-
-# Default compilers
-CAMLC = ocamlc
-CAMLOPT = ocamlopt
-
-# Default installation directories
-BINDIR = `$(GETBINDIR)`
-INSTALLDIR = $(LIBDIR)/lablgtk
-
-# Autoconf
-GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//'
-LIBDIR = `$(GETLIBDIR)`
-GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|'
-GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/'
-
-ifdef USE_GNOME
-GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir
-GNOMELIBS = `gnome-config --libs gtkxmhtml`
-else
-GTKGETCFLAGS = gtk-config --cflags
-endif
-
-GTKGETLIBS = gtk-config --libs
-
-configure: .depend config.make
-
-.depend:
-       ocamldep *.ml *.mli > .depend
-
-config.make:
-       @echo CAMLC=$(CAMLC) > config.make
-       @echo CAMLOPT=$(CAMLOPT) >> config.make
-       @echo USE_GL=$(USE_GL) >> config.make
-       @echo USE_GNOME=$(USE_GNOME) >> config.make
-       @echo USE_CC=$(USE_CC) >> config.make
-       @echo DEBUG=$(DEBUG) >> config.make
-       @echo CC=$(CC) >> config.make
-       @echo RANLIB=`$(GETRANLIB)` >> config.make
-       @echo LIBDIR=$(LIBDIR) >> config.make
-       @echo BINDIR=`$(GETBINDIR)` >> config.make
-       @echo INSTALLDIR=$(INSTALLDIR) >> config.make
-       @echo GTKCFLAGS=`$(GTKGETCFLAGS)` >> config.make
-       @echo GTKLIBS=`$(GTKGETLIBS)` | \
-         sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \
-         >> config.make
-       @echo GNOMELIBS=$(GNOMELIBS) | \
-         sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \
-         >> config.make
-       cat config.make
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/formula.eps b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/formula.eps
deleted file mode 100644 (file)
index 31ddafc..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Creator: dvipsk 5.78 p1.4c Copyright 1996-99 ASCII Corp.(www-ptex@ascii.co.jp)
-%%dvipsk 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com)
-%%Title: formula.dvi
-%%BoundingBox: 71 318 395 524
-%%DocumentFonts: Symbol Times-Italic Times-Roman Helvetica
-%%EndComments
-%DVIPSCommandLine: dvips -E -o formula.eps formula
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource:  TeX output 1999.08.19:0906
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
-isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
-hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
-TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
-forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
-/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
-/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
-/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
-string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
-end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
-/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
-N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
-/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
-/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
-known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
-/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn
-put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /dir 0 def
-/dyy{/dir 0 def}B /dyt{/dir 1 def}B /dty{/dir 2 def}B /dtt{/dir 3 def}B
-/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
-rotate}{show}ifelse}ifelse}B /RMat[1 0 0 -1 0 0]N /BDot 260 string N
-/rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V{}B /RV statusdict
-begin /product where{pop false[(Display)(NeXT)(LaserWriter 16/600)]{dup
-length product length le{dup length product exch 0 exch getinterval eq{
-pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1
-TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR
--.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}
-ifelse B /QV{gsave newpath transform round exch round exch itransform
-moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill
-grestore}B /a{moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p
-delta add tail}B /b{S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B
-/g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B
-/m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{
-p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS
-restore}B end
-
-%%EndProcSet
-%%BeginProcSet: 8r.enc
-% @@psencodingfile@{
-%   author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
-%   version = "0.6",
-%   date = "22 June 1996",
-%   filename = "8r.enc",
-%   email = "kb@@mail.tug.org",
-%   address = "135 Center Hill Rd. // Plymouth, MA 02360",
-%   codetable = "ISO/ASCII",
-%   checksum = "119     662    4424",
-%   docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX."
-% @}
-% 
-% Idea is to have all the characters normally included in Type 1 fonts
-% available for typesetting. This is effectively the characters in Adobe
-% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
-% 
-% Character code assignments were made as follows:
-% 
-% (1) the Windows ANSI characters are almost all in their Windows ANSI
-% positions, because some Windows users cannot easily reencode the
-% fonts, and it makes no difference on other systems. The only Windows
-% ANSI characters not available are those that make no sense for
-% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
-% (173). quotesingle and grave are moved just because it's such an
-% irritation not having them in TeX positions.
-% 
-% (2) Remaining characters are assigned arbitrarily to the lower part
-% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
-% 
-% (3) Y&Y Lucida Bright includes some extra text characters; in the
-% hopes that other PostScript fonts, perhaps created for public
-% consumption, will include them, they are included starting at 0x12.
-% 
-% (4) Remaining positions left undefined are for use in (hopefully)
-% upward-compatible revisions, if someday more characters are generally
-% available.
-% 
-% (5) hyphen appears twice for compatibility with both ASCII and Windows.
-% 
-/TeXBase1Encoding [
-% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
-  /.notdef /dotaccent /fi /fl
-  /fraction /hungarumlaut /Lslash /lslash
-  /ogonek /ring /.notdef
-  /breve /minus /.notdef 
-% These are the only two remaining unencoded characters, so may as
-% well include them.
-  /Zcaron /zcaron 
-% 0x10
- /caron /dotlessi 
-% (unusual TeX characters available in, e.g., Lucida Bright)
- /dotlessj /ff /ffi /ffl 
- /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef
- % very contentious; it's so painful not having quoteleft and quoteright
- % at 96 and 145 that we move the things normally found there down to here.
- /grave /quotesingle 
-% 0x20 (ASCII begins)
- /space /exclam /quotedbl /numbersign
- /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
-% 0x30
- /zero /one /two /three /four /five /six /seven
- /eight /nine /colon /semicolon /less /equal /greater /question
-% 0x40
- /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
-% 0x50
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
-% 0x60
- /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
-% 0x70
- /p /q /r /s /t /u /v /w
- /x /y /z /braceleft /bar /braceright /asciitilde
- /.notdef % rubout; ASCII ends
-% 0x80
- /.notdef /.notdef /quotesinglbase /florin
- /quotedblbase /ellipsis /dagger /daggerdbl
- /circumflex /perthousand /Scaron /guilsinglleft
- /OE /.notdef /.notdef /.notdef
-% 0x90
- /.notdef /.notdef /.notdef /quotedblleft
- /quotedblright /bullet /endash /emdash
- /tilde /trademark /scaron /guilsinglright
- /oe /.notdef /.notdef /Ydieresis
-% 0xA0
- /.notdef % nobreakspace
- /exclamdown /cent /sterling
- /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft
- /logicalnot
- /hyphen % Y&Y (also at 45); Windows' softhyphen
- /registered
- /macron
-% 0xD0
- /degree /plusminus /twosuperior /threesuperior
- /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright
- /onequarter /onehalf /threequarters /questiondown
-% 0xC0
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis
- /Igrave /Iacute /Icircumflex /Idieresis
-% 0xD0
- /Eth /Ntilde /Ograve /Oacute
- /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex
- /Udieresis /Yacute /Thorn /germandbls
-% 0xE0
- /agrave /aacute /acircumflex /atilde
- /adieresis /aring /ae /ccedilla
- /egrave /eacute /ecircumflex /edieresis
- /igrave /iacute /icircumflex /idieresis
-% 0xF0
- /eth /ntilde /ograve /oacute
- /ocircumflex /otilde /odieresis /divide
- /oslash /ugrave /uacute /ucircumflex
- /udieresis /yacute /thorn /ydieresis
-] def
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
-index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
-exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
-exch def dict begin 0 1 255{exch dup type /integertype ne{pop pop 1 sub
-dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
-ifelse}for Metrics /Metrics currentdict end def[2 index currentdict end
-definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant{
-dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1
-roll mul exch}def /ReEncodeFont{/Encoding exch def}def end
-
-%%EndProcSet
-%%BeginProcSet: special.pro
-%!
-TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
-/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
-false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
-/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
-div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
-/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
-10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
-/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
-true def end /@MacSetUp{userdict /md known{userdict /md get type
-/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
-length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
-N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
-clippath mark{transform{itransform moveto}}{transform{itransform lineto}
-}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
-itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
-closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
-0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
-/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
-scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
-ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
-not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
-TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
-pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
--1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
-TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
-sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
-0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
-2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
-{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
-div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
-N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
-maxlength dict begin /magscale true def normalscale currentpoint TR
-/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
-/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
-psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
-scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
-/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
-psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
-roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
-moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
-begin /SpecialSave save N gsave normalscale currentpoint TR
-@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
-{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
-closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
-sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
-}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
-CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
-lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
-}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
-end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
-N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
-/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
-SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
-/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
-yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
-
-%%EndProcSet
-%%BeginProcSet: color.pro
-%!
-TeXDict begin /setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
-setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
-}repeat setrgbcolor pop}ifelse}B}ifelse /TeXcolorcmyk{setcmykcolor}def
-/TeXcolorrgb{setrgbcolor}def /TeXcolorgrey{setgray}def /TeXcolorgray{
-setgray}def /TeXcolorhsb{sethsbcolor}def /currentcmykcolor where{pop}{
-/currentcmykcolor{currentrgbcolor 10}B}ifelse /DC{exch dup userdict exch
-known{pop pop}{X}ifelse}B /GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
-/Yellow{0 0 1 0 setcmykcolor}DC /Goldenrod{0 0.10 0.84 0 setcmykcolor}
-DC /Dandelion{0 0.29 0.84 0 setcmykcolor}DC /Apricot{0 0.32 0.52 0
-setcmykcolor}DC /Peach{0 0.50 0.70 0 setcmykcolor}DC /Melon{0 0.46 0.50
-0 setcmykcolor}DC /YellowOrange{0 0.42 1 0 setcmykcolor}DC /Orange{0
-0.61 0.87 0 setcmykcolor}DC /BurntOrange{0 0.51 1 0 setcmykcolor}DC
-/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC /RedOrange{0 0.77 0.87 0
-setcmykcolor}DC /Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC /Maroon{0
-0.87 0.68 0.32 setcmykcolor}DC /BrickRed{0 0.89 0.94 0.28 setcmykcolor}
-DC /Red{0 1 1 0 setcmykcolor}DC /OrangeRed{0 1 0.50 0 setcmykcolor}DC
-/RubineRed{0 1 0.13 0 setcmykcolor}DC /WildStrawberry{0 0.96 0.39 0
-setcmykcolor}DC /Salmon{0 0.53 0.38 0 setcmykcolor}DC /CarnationPink{0
-0.63 0 0 setcmykcolor}DC /Magenta{0 1 0 0 setcmykcolor}DC /VioletRed{0
-0.81 0 0 setcmykcolor}DC /Rhodamine{0 0.82 0 0 setcmykcolor}DC /Mulberry
-{0.34 0.90 0 0.02 setcmykcolor}DC /RedViolet{0.07 0.90 0 0.34
-setcmykcolor}DC /Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC /Lavender{0
-0.48 0 0 setcmykcolor}DC /Thistle{0.12 0.59 0 0 setcmykcolor}DC /Orchid{
-0.32 0.64 0 0 setcmykcolor}DC /DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}
-DC /Purple{0.45 0.86 0 0 setcmykcolor}DC /Plum{0.50 1 0 0 setcmykcolor}
-DC /Violet{0.79 0.88 0 0 setcmykcolor}DC /RoyalPurple{0.75 0.90 0 0
-setcmykcolor}DC /BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC /Periwinkle
-{0.57 0.55 0 0 setcmykcolor}DC /CadetBlue{0.62 0.57 0.23 0 setcmykcolor}
-DC /CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC /MidnightBlue{0.98 0.13
-0 0.43 setcmykcolor}DC /NavyBlue{0.94 0.54 0 0 setcmykcolor}DC
-/RoyalBlue{1 0.50 0 0 setcmykcolor}DC /Blue{1 1 0 0 setcmykcolor}DC
-/Cerulean{0.94 0.11 0 0 setcmykcolor}DC /Cyan{1 0 0 0 setcmykcolor}DC
-/ProcessBlue{0.96 0 0 0 setcmykcolor}DC /SkyBlue{0.62 0 0.12 0
-setcmykcolor}DC /Turquoise{0.85 0 0.20 0 setcmykcolor}DC /TealBlue{0.86
-0 0.34 0.02 setcmykcolor}DC /Aquamarine{0.82 0 0.30 0 setcmykcolor}DC
-/BlueGreen{0.85 0 0.33 0 setcmykcolor}DC /Emerald{1 0 0.50 0
-setcmykcolor}DC /JungleGreen{0.99 0 0.52 0 setcmykcolor}DC /SeaGreen{
-0.69 0 0.50 0 setcmykcolor}DC /Green{1 0 1 0 setcmykcolor}DC
-/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC /PineGreen{0.92 0 0.59
-0.25 setcmykcolor}DC /LimeGreen{0.50 0 1 0 setcmykcolor}DC /YellowGreen{
-0.44 0 0.74 0 setcmykcolor}DC /SpringGreen{0.26 0 0.76 0 setcmykcolor}
-DC /OliveGreen{0.64 0 0.95 0.40 setcmykcolor}DC /RawSienna{0 0.72 1 0.45
-setcmykcolor}DC /Sepia{0 0.83 1 0.70 setcmykcolor}DC /Brown{0 0.81 1
-0.60 setcmykcolor}DC /Tan{0.14 0.42 0.56 0 setcmykcolor}DC /Gray{0 0 0
-0.50 setcmykcolor}DC /Black{0 0 0 1 setcmykcolor}DC /White{0 0 0 0
-setcmykcolor}DC end
-
-%%EndProcSet
-TeXDict begin 40258437 52099154 1000 300 300 (formula.dvi)
-@start /Fa 134[ 41 5[ 41 3[ 46 46 1[ 18 6[ 46 15[ 60
-4[ 55 14[ 55 23[ 28 28 40[{  TeXBase1Encoding ReEncodeFont } 11
-82.6359 /Helvetica rf /Fb 205[ 34 34 49[{
- TeXBase1Encoding ReEncodeFont } 2 68.8667 /Times-Roman
-rf /Fc 154[ 30 101[{ } 1 68.8667 /Symbol rf
-%DVIPSBitmapFont: Fd cmr10 19.907 4
-/Fd 4 94 df<146014E0EB01C0EB0380EB0700130E5B133C13385B13F05B1201485AA248
-5AA348C7FCA25A121EA2123EA2123CA2127CA5127812F8B01278127CA5123CA2123EA212
-1EA2121F7EA26C7EA36C7EA26C7E12007F13707F133C131C7F7FEB0380EB01C0EB00E014
-60135278BD20> 40 D<7E7E7E12707E7E7E120F7E6C7E7F12017F6C7EA21378A37FA213
-3E131EA2131FA27FA21480A5130714C0B01480130FA51400A25BA2131EA2133E133CA25B
-A35BA2485A5B12035B48C7FC5A120E5A5A5A5A5A5A12527BBD20> I<EAFFF8A4EAF000B3
-B3B3B3A3EAFFF8A40D5378BD17> 91 D<EAFFF8A4EA0078B3B3B3B3A3EAFFF8A40D537F
-BD17> 93 D E
-%EndDVIPSBitmapFont
-/Fe 197[ 23 58[{  TeXBase1Encoding ReEncodeFont } 1 82.6359
-/Times-Roman rf
-%DVIPSBitmapFont: Ff cmsy10 19.907 4
-/Ff 4 106 df<0060161800F0163CA26C167C00781678007C16F8003C16F0A2003E1501
-001E16E0A2001F15036C16C06D140700071680A26D140F000316006D5C6CB612FEA36C5D
-01F8C7127C01781478A2017C14F8013C5CA2013E1301011E5C011F13036D5CA2EC800701
-075CECC00F010391C7FCA26E5A0101131EECF03E0100133CA2ECF87CEC7878A2EC7CF8EC
-3CF0143F6E5AA36E5AA26E5AA26EC8FC2E3A80B82F> 56 D<126012F0B3A7B8FC1780A3
-00F0CAFCB3A8126029397CB832> 96 D<14C0EB01E0A2130314C013071480A2130F1400
-A25B131E133E133CA2137C137813F85BA212015BA212035B12075BA2120F90C7FC5A121E
-A2123E123CA2127C127812F85AA27E1278127C123CA2123E121EA2121F7E7F1207A27F12
-037F1201A27F1200A27F1378137C133CA2133E131E131F7FA214801307A214C0130314E0
-1301A2EB00C0135278BD20> 104 D<126012F0A27E1278127C123CA2123E121EA2121F7E
-7F1207A27F12037F1201A27F1200A27F1378137C133CA2133E131E131F7FA214801307A2
-14C0130314E01301A2130314C013071480A2130F1400A25B131E133E133CA2137C137813
-F85BA212015BA212035B12075BA2120F90C7FC5A121EA2123E123CA2127C127812F85AA2
-126013527CBD20> I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmmi10 19.907 1
-/Fg 1 59 df<121C123E127FEAFF80A3EA7F00123E121C0909798817> 58
-D E
-%EndDVIPSBitmapFont
-/Fh 158[ 41 31[ 50 65[{  TeXBase1Encoding ReEncodeFont } 2
-82.6359 /Times-Italic rf /Fi 139[ 36 50 13[ 36 101[{ } 3
-82.6359 /Symbol rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-
-%%EndSetup
-0 0 bop Black Black 0 0.7 0 TeXcolorrgb Fh 567 883 a(A) p
-Ff 636 883 a(`) p Fh 705 883 a(a) p Fe 765 883 a(:) p
-0 0 1 TeXcolorrgb Fi 806 883 a(t) p Fb 842 900 a(1) p
-0 0.7 0 TeXcolorrgb Fd 948 883 a(\() p 0 0 1 TeXcolorrgb
-Fi(t) p Fb 1016 900 a(1) p 0 0.7 0 TeXcolorrgb Fe 1071
-883 a(:) p 0 0 1 TeXcolorrgb Fi 1112 883 a(t) p 0 0.7 0
-TeXcolorrgb Fe 1167 883 a(:) p 0 0 1 TeXcolorrgb Fi 1208
-883 a(t) p Fb 1244 900 a(2) p 0 0.7 0 TeXcolorrgb Fd
-1281 883 a(\)) p 567 920 746 4 v Fh 704 995 a(A) p Ff
-773 995 a(`) p Fd 842 995 a(\() p Fh(a) p Fe 934 995
-a(:) p 0 0 1 TeXcolorrgb Fi 975 995 a(t) p 0 0.7 0 TeXcolorrgb
-Fd(\)) p Fe 1062 995 a(:) p 0 0 1 TeXcolorrgb Fi 1103
-995 a(t) p Fb 1139 1012 a(2) p 0 0.7 0 TeXcolorrgb Black
-Fa 2 939 a(\(Ann\)) p 0 0.7 0 TeXcolorrgb Black 0 0.7 0
-TeXcolorrgb Fh 540 1208 a(A) p Ff 609 1208 a(`) p Fh
-678 1208 a(a) p Fe 738 1208 a(:) p 0 0 1 TeXcolorrgb
-Fi 779 1208 a(s) p Fb 829 1225 a(1) p 0 0.7 0 TeXcolorrgb
-Fd 934 1208 a(\() p 0 0 1 TeXcolorrgb Fi(s) p Fb 1016
-1225 a(1) p 0 0.7 0 TeXcolorrgb Fe 1071 1208 a(:) p 0 0 1
-TeXcolorrgb Fi 1112 1208 a(s) p 0 0.7 0 TeXcolorrgb Fe
-1180 1208 a(:) p 0 0 1 TeXcolorrgb Fi 1222 1208 a(s) p
-Fb 1272 1225 a(2) p 0 0.7 0 TeXcolorrgb Fd 1308 1208
-a(\)) p 540 1245 801 4 v Fh 661 1321 a(A) p Ff 730 1321
-a(`) p Fd 799 1321 a([) p Fh(a) p Fe 881 1321 a(:) p
-0 0 1 TeXcolorrgb Fi 923 1321 a(s) p 0 0.7 0 TeXcolorrgb
-Fd 972 1321 a(]) p Fe 1014 1321 a(:) p 0 0 1 TeXcolorrgb
-Fd 1055 1321 a([) p Fi(s) p Fb 1128 1338 a(2) p Fd 1164
-1321 a(]) p Fc 1187 1297 a(e) p 0 0.7 0 TeXcolorrgb Black
-Fa 2 1264 a(\(P) l(oly\)) p 0 0.7 0 TeXcolorrgb Black
-0 0.7 0 TeXcolorrgb Fh 704 1537 a(A) p Ff 773 1537 a(`) p
-Fh 842 1537 a(a) p Fe 902 1537 a(:) p 0 0 1 TeXcolorrgb
-Ff 943 1537 a(8) p Fi(e) p Fg(:) p Fd([) p Fi(s) p Fd(]) p
-Fc 1145 1507 a(e) p 0 0.7 0 TeXcolorrgb 704 1573 472
-4 v Fh 764 1649 a(A) p Ff 833 1649 a(`) p 902 1649 a(h) p
-Fh(a) p Ff(i) p Fe 1025 1649 a(:) p 0 0 1 TeXcolorrgb
-Fi 1067 1649 a(s) p 0 0.7 0 TeXcolorrgb Black Fa 2 1592
-a(\(Use\)) p 0 0.7 0 TeXcolorrgb Black Black Black 90 rotate
-dyy eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/lablgtk.mgp b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/doc/lablgtk.mgp
deleted file mode 100644 (file)
index 3eac793..0000000
+++ /dev/null
@@ -1,558 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%deffont "code" xfont "itc avant garde gothic-demi-r", tfont "verdana.ttf"
-%deffont "code-bold" xfont "terminal-bold-r", tfont "verdanab.ttf"
-%deffont "sans" xfont "helvetica-medium-r", tfont "comic.ttf"
-%deffont "sans-bold" xfont "helvetica-bold-r", tfont "comicbd.ttf"
-%deffont "sansit" xfont "helvetica-medium-i", tfont "marlett.ttf"
-%deffont "title" xfont "times-medium-r", tfont "times.ttf"
-%deffont "title-bold" xfont "times-bold-r", tfont "timesbd.ttf"
-%default 1 right, size 2, fore "white", bgrad
-%default 1 vfont "goth", font "sans-bold", vgap 100
-%default 2 leftfill, size 8, vgap 60, prefix " ", font "sans"
-%default 3 size 4, bar "beige", vgap 10
-%default 4 size 5, fore "white", vgap 20, prefix " "
-%tab 1 size 5, vgap 40, prefix "  ", icon box "green" 50
-%tab 2 size 5, vgap 40, prefix "      ", icon arc "yellow" 50
-%tab 3 size 5, vgap 40, prefix "            ", icon arc "white" 40
-%tab com1      size 4, prefix "     "
-%tab com2      size 4, prefix "          "
-%tab com3      size 4, prefix "             "
-%tab txt       font "sans", size 5, fore "white", prefix " "
-%tab vspace    size 2
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-%nodefault
-%size 9, font "title-bold"
-%fore "beige", back "navyblue", vgap 20
-%center
-
-
-A Type System in Action:
-
-the LablGTK Interface
-
-
-%size 7, font "title"
-Jacques Garrigue
-Kyoto University
-%size 6, font "code"
-garrigue@kurims.kyoto-u.ac.jp
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-2
-Synopsis
-
-       Objective Label introduction
-%size 2
-
-       Why GTK+?
-       GTK+/LablGTK structure
-%size 2
-
-       Low Level
-               Type encoding with variants
-               Labeled parameters
-%size 2
-
-       High Level
-               Object-orientation
-               Optional arguments
-               Polymorphic methods
-%size 2
-
-       Conclusion
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-3
-Objective Label
-
-       Based on Objective Caml
-               ML syntax and type inference
-               Class-based object system
-
-       Several extensions
-               Labeled and optional parameters
-               Polymorphic variants
-               Polymorphic methods
-
-       Tools
-               Type-based browser
-               GUI and 3D graphics
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-4
-Labels and optionals
-
-%font "code", size 4, prefix "    ", fore "yellow"
-let rec map fun:f = function
-    [] -> []
-  | x :: l -> f x :: map fun:f l
-%fore "lightpink"
-val map : fun:('a -> 'b) -> 'a list -> 'b list
-
-%pause, fore "yellow", font "code"
-let f = map [1;2;3]
-%fore "lightpink"
-val f : fun:(int -> 'a) -> 'a list
-%fore "yellow"
-f fun:(fun x -> 2*x)
-%fore "lightpink"
-- : int list = [2; 3; 4]
-
-%pause, fore "yellow", font "code"
-let f x ?incr:y [< 1 >] = x + y
-%fore "lightpink"
-val f : int -> ?incr:int -> int
-%fore "yellow"
-f 1
-%fore "lightpink"
-- : int = 2
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-5
-Polymorphic variants
-
-
-%font "code", size 4, prefix "    ", fore "yellow"
-[`on; `off]
-%fore "lightpink"
-- : [> off on] list = [`on; `off]
-
-%pause, fore "yellow", font "code"
-`number 1;;
-%fore "lightpink"
-- : [> number(int)] = `number 1
-
-%pause, fore "yellow", font "code"
-let f = function `on -> 1 | `off -> 0 | `number n -> n
-%fore "lightpink"
-val f : [< number(int) off on] -> int
-
-%pause, fore "yellow", font "code"
-type t = [on off number(int)]
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-6
-Polymorphic methods
-
-Not allowed in Objective Caml
-%size 2
-
-%font "code", size 4, prefix "    ", fore "yellow"
-class c = object method m x = x end
-%fore "red"
-Some type variables are unbound in this type:
-  class c : object method m : 'a -> 'a end
-The method m has type 'a -> 'a where 'a is unbound
-
-%pause, font "sans", size 5, prefix " ", fore "white"
-Need explicit annotation in O'Labl
-%size 2
-
-%font "code", size 4, prefix "    ", fore "yellow"
-class c = object
-    method m : 'a. 'a -> 'a = fun x -> x
-end
-%fore "lightpink"
-class c : object method m : 'a -> 'a end
-%fore "yellow"
-let o = new c
-%fore "lightpink"
-val o : c = <obj>
-%fore "yellow"
-o#m 1, o#m true
-%fore "lightpink"
-- : int * bool = 1, true
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-7
-Why GTK+ ?
-
-Why use the GIMP Tool Kit?
-%size 3
-
-       Widely used in free software
-
-       Easy to interface
-               Written in C (QT uses C++)
-               Memory management
-
-Drawbacks
-%size 3
-
-       Design lacks uniformity
-       Extensive use of dynamic typing
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-8
-GTK+ Structure
-
-Class hierarchy based on GtkObject
-%size 2
-
-       Single inheritance
-&com1 New widgets may redefine methods
-%size 2
-
-       Dynamically checked
-&com1 Casting necessay both up and down
-%size 2
-
-       Developper-side hierarchy
-&com1 Inheritance is not always meaningful to the user
-%size 2
-
-%size 5
-Signal-based callback mechanism
-%size 2
-
-       May use multiple callbacks
-%size 2
-
-       Signals are polymorphic
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-9
-LablGTK structure
-
-Typed at all levels
-
-       Low-level interface
-%size 2
-
-               C stub functions -- typechecked by C
-
-               ML type declarations -- ML abstract types
-
-       High-level interface
-%size 2
-
-               ML class wrappers -- ML concrete types
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-10
-Low Level Interface
-
-Goals
-
-       Strongly typed interface
-&com1 heavy use of advanced typing techniques
-
-       Very little ML code
-&com1 C-stubs and external declarations
-
-       Safe memory management
-&com1 have the library cooperate with the GC
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-11
-Low level encoding (I)
-
-
-How to represent widget subtyping in ML?
-
-       Example: buttons' hierarchy
-%size 2
-
-%font "code", size 5, prefix "      ", fore "yellow"
-GtkObject
-    GtkWidget
-        GtkContainer
-            GtkButton
-                GtkToggleButton
-                    GtkRadioButton
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-12
-Variants as set constraints
-
-
-Variants can be seen as sets of possible values:
-
-       [tag1 ... tagn] = {tag1,...,tagn}
-
-
-Polymorphic variants introduce constraints
-
-       \e$B&A\e(B[> tag1 ... tagn] \e$B"N\e(B \e$B&A\e(B \e$B"?\e(B {tag1,...,tagn}
-       \e$B&A\e(B[< tag1 ... tagn] \e$B"N\e(B \e$B&A\e(B \e$B">\e(B {tag1,...,tagn}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-13
-Encoding hierarchies
-
-Define an abstract type
-&vspace
-%font "code", fore "yellow", size 5
-      type 'a obj
-
-&txt Use tags to represent properties
-&vspace
-%font "code", fore "yellow", size 5
-      type t = [class1 ... classn] obj
-
-&txt Functions check properties
-&vspace
-%font "code", fore "yellow", size 5
-      val f : [> class1 ... classn] obj -> ...
-&txt
-       Subsumes Haskell type classes
-&vspace
-       Allows multiple inheritance
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-14
-Low level encoding (II)
-
-Example: buttons' hierarchy
-%size 2
-
-%font "code", size 4, prefix "    ", fore "yellow"
-type 'a obj
-type widget = [widget] obj
-type container = [widget container] obj
-type button = [widget container button] obj
-type toggle_button = [widget ... togglebutton] obj
-type radio_button = [widget ... radiobutton] obj
-type state_type = [ NORMAL
-     ACTIVE PRELIGHT SELECTED INSENSITIVE ] 
-val set_state : [> widget] obj -> state_type -> unit
-val children : [> container] obj -> [widget] obj list
-val clicked : [> button] obj -> unit
-val set_group : [> radiobutton] obj -> group -> unit
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-15
-Alternate encoding
-
-Use only standard ML features
-%size 2
-
-%font "code", size 4, prefix "  ", fore "yellow", vgap 50
-type 'a obj
-type 'a widget
-...
-type 'a radio
-type state_type = NORMAL | ACTIVE | ... | INSENSITIVE
-val set_state : 'a widget obj -> state_type -> unit
-val children :
-    'a container widget obj -> unit widget obj list
-val clicked : 'a button container widget obj -> unit
-
-&txt Weaknesses
-       No multiple inheritance
-       Not very intuitive for the user
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-16
-Low level encoding (III)
-
-Use of labeled parameters
-%size 2
-
-%font "code", size 4, prefix "  ", fore "yellow", vgap 50
-val adjustment_new :
-    value:float -> lower:float -> upper:float ->
-    step_incr:float -> page_incr:float ->
-    page_size:float -> adjustment obj
-
-&txt Signals
-%size 2
-
-%font "code", size 4, prefix "  ", fore "yellow", vgap 50
-type ('a,'b) signal =
-    { name: string; marshaller: 'b -> GtkArgv.t -> unit }
-val connect : 'a obj -> sig:('a,'b) signal ->
-               callback:'b -> ?after:bool -> id
-val button_clicked : ([> button], unit -> unit) signal
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-17
-High-Level Interface
-
-Problems with GTK+
-%size 2
-
-       Name space is scattered
-&com1 One has to know in which superclass a function is defined
-       Developper oriented design
-&com1 There is no clear distinction between public and private definitions
-
-&txt LablGTK design
-%size 2
-
-       OCaml classes to reunify name space
-       Omit developper-oriented methods
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-18
-High-level classes
-
-%font "code", size 4, prefix "  ", fore "yellow"
-class button :
-%fore "lightgreen"
-  ?label:string ->
-%fore "lightpink"
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-%fore "lightgray"
-  ?packing:(GButton.button -> unit) ->
-  ?show:bool ->
-%fore "yellow"
-  object
-%fore "lightgray"
-    method destroy : unit -> unit
-    method as_widget : Gtk.widget obj
-    method misc : GObj.widget_misc
-%fore "lightpink"
-    method add : #is_widget -> unit
-    method set_border_width : int -> unit
-%fore "lightgreen"
-    method clicked : unit -> unit
-    method connect : GButton.button_signals
-    method grab_default : unit -> unit
-%fore "yellow"
-  end
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-19
-High-level features
-
-       Objective Caml classes
-&com1 allow collecting methods from different modules
-
-       Use optionals in class constructors
-&com1 makes widget creation much easier
-
-       Polymorphic methods
-&com1 needed for container widgets
-%size 2
-
-%font "code", size 4, fore "yellow", vgap 50
-        method add : 'a. (#is_widget as 'a) -> unit
-
-%fore "white", font "sans"
-       Polymorphic variants
-&com1 for C-style enumeration types, avoid name-space dependancies
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-20
-Polymorphic methods (I)
-
-       Instance of first-class polymorphism
-%size 2
-
-               first-class polytypes cannot be inferred
-               they are propagated by the definition flow
-
-       Technically
-%size 2
-
-               use polymorphism to track available information
-               type system excludes derivations based on "guessed" information
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-21
-First class polymorphism
-
-%prefix "            "
-%image "formula.eps" 512x384
-%size 2
-
-%prefix " ", size 5, fore "lightblue"
-  (\e$B&R\e(B1 : \e$B&R\e(B : \e$B&R\e(B2) \e$B"N\e(B \e$B&R\e(B1 = \e$B&H\e(B(\e$B&Q\e(B1(\e$B&R\e(B)) \e$B"J\e(B \e$B&R\e(B2 = \e$B&H\e(B(\e$B&Q\e(B2(\e$B&R\e(B))
-%fore "white"
-where \e$B&H\e(B instantiates free variables, and \e$B&Q\e(B1,\e$B&Q\e(B2 rename free labels of \e$B&R\e(B.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-22
-Polymorphic methods (II)
-
-Definitions
-%size 2
-
-%font "code", size 4, prefix "    ", fore "yellow", vgap 50
-type is_widget = < as_widget : widget obj >
-type #is_widget = < as_widget : widget obj; .. >
-type container =
-    < ... ; add : 'a. (#as_widget as 'a) -> unit; ... >
-
-%pause
-&txt Propagation
-%size 2
-
-%font "code", size 4, prefix "    ", fore "lightgreen", vgap 50
-fun (cont : container) -> cont#add widget
-
-%pause
-let button = new button in button#add widget
-
-%pause, fore "red"
-fun cont -> cont#add widget
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-23
-Programming example
-
-Hello World
-%size 2
-
-%font "code", size 4, prefix "    ", fore "yellow"
-open GMain
-
-let window =
-    new GWindow.window border_width: 10
-
-let button =
-    new GButton.button
-        label: "Hello World" packing: window#add
-
-let _ =
-  window#connect#destroy callback: Main.quit;
-  button#connect#clicked callback: window#destroy;
-  window#show ();
-  Main.main ()
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%page
-24
-Conclusion
-
-       Results
-%size 2
-
-               Could build a strongly typed interface
-
-               It is easier to use than the C API
-
-               Makes effective use of extensions to the type system
-
-       Comments
-%size 2
-
-               Still difficulties with the Caml object system 
-&com2 class recursion, method type refinement, etc...
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/morph3d.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/morph3d.ml
deleted file mode 100644 (file)
index a08726e..0000000
+++ /dev/null
@@ -1,607 +0,0 @@
-(* $Id$ *)
-
-(*-
- * morph3d.c - Shows 3D morphing objects (TK Version)
- *
- * This program was inspired on a WindowsNT(R)'s screen saver. It was written 
- * from scratch and it was not based on any other source code. 
- * 
- * Porting it to xlock (the final objective of this code since the moment I
- * decided to create it) was possible by comparing the original Mesa's gear
- * demo with it's ported version, so thanks for Danny Sung for his indirect
- * help (look at gear.c in xlock source tree). NOTE: At the moment this code
- * was sent to Brian Paul for package inclusion, the XLock Version was not
- * available. In fact, I'll wait it to appear on the next Mesa release (If you
- * are reading this, it means THIS release) to send it for xlock package 
- * inclusion). It will probably there be a GLUT version too.
- *
- * Thanks goes also to Brian Paul for making it possible and inexpensive
- * to use OpenGL at home.
- *
- * Since I'm not a native english speaker, my apologies for any gramatical
- * mistake.
- *
- * My e-mail addresses are
- *
- * vianna@cat.cbpf.br 
- *         and
- * marcelo@venus.rdc.puc-rio.br
- *
- * Marcelo F. Vianna (Feb-13-1997)
- *)
-
-(*
-This document is VERY incomplete, but tries to describe the mathematics used
-in the program. At this moment it just describes how the polyhedra are 
-generated. On futhurer versions, this document will be probabbly improved.
-
-Since I'm not a native english speaker, my apologies for any gramatical
-mistake.
-
-Marcelo Fernandes Vianna 
-- Undergraduate in Computer Engeneering at Catholic Pontifical University
-- of Rio de Janeiro (PUC-Rio) Brasil.
-- e-mail: vianna@cat.cbpf.br or marcelo@venus.rdc.puc-rio.br
-- Feb-13-1997
-
-POLYHEDRA GENERATION
-
-For the purpose of this program it's not sufficient to know the polyhedra
-vertexes coordinates. Since the morphing algorithm applies a nonlinear 
-transformation over the surfaces (faces) of the polyhedron, each face has
-to be divided into smaller ones. The morphing algorithm needs to transform 
-each vertex of these smaller faces individually. It's a very time consoming
-task.
-
-In order to reduce calculation overload, and since all the macro faces of
-the polyhedron are transformed by the same way, the generation is made by 
-creating only one face of the polyhedron, morphing it and then rotating it
-around the polyhedron center. 
-
-What we need to know is the face radius of the polyhedron (the radius of 
-the inscribed sphere) and the angle between the center of two adjacent 
-faces using the center of the sphere as the angle's vertex.
-
-The face radius of the regular polyhedra are known values which I decided
-to not waste my time calculating. Following is a table of face radius for
-the regular polyhedra with edge length = 1:
-
-    TETRAHEDRON  : 1/(2*sqrt(2))/sqrt(3)
-    CUBE        : 1/2
-    OCTAHEDRON   : 1/sqrt(6)
-    DODECAHEDRON : T^2 * sqrt((T+2)/5) / 2     -> where T=(sqrt(5)+1)/2
-    ICOSAHEDRON  : (3*sqrt(3)+sqrt(15))/12
-
-I've not found any reference about the mentioned angles, so I needed to
-calculate them, not a trivial task until I figured out how :)
-Curiously these angles are the same for the tetrahedron and octahedron.
-A way to obtain this value is inscribing the tetrahedron inside the cube
-by matching their vertexes. So you'll notice that the remaining unmatched
-vertexes are in the same straight line starting in the cube/tetrahedron
-center and crossing the center of each tetrahedron's face. At this point
-it's easy to obtain the bigger angle of the isosceles triangle formed by
-the center of the cube and two opposite vertexes on the same cube face.
-The edges of this triangle have the following lenghts: sqrt(2) for the base
-and sqrt(3)/2 for the other two other edges. So the angle we want is:
-     +-----------------------------------------------------------+
-     | 2*ARCSIN(sqrt(2)/sqrt(3)) = 109.47122063449069174 degrees |
-     +-----------------------------------------------------------+
-For the cube this angle is obvious, but just for formality it can be
-easily obtained because we also know it's isosceles edge lenghts:
-sqrt(2)/2 for the base and 1/2 for the other two edges. So the angle we 
-want is:
-     +-----------------------------------------------------------+
-     | 2*ARCSIN((sqrt(2)/2)/1)   = 90.000000000000000000 degrees |
-     +-----------------------------------------------------------+
-For the octahedron we use the same idea used for the tetrahedron, but now
-we inscribe the cube inside the octahedron so that all cubes's vertexes
-matches excatly the center of each octahedron's face. It's now clear that
-this angle is the same of the thetrahedron one:
-     +-----------------------------------------------------------+
-     | 2*ARCSIN(sqrt(2)/sqrt(3)) = 109.47122063449069174 degrees |
-     +-----------------------------------------------------------+
-For the dodecahedron it's a little bit harder because it's only relationship
-with the cube is useless to us. So we need to solve the problem by another
-way. The concept of Face radius also exists on 2D polygons with the name
-Edge radius:
-  Edge Radius For Pentagon (ERp)
-  ERp = (1/2)/TAN(36 degrees) * VRp = 0.6881909602355867905
-  (VRp is the pentagon's vertex radio).
-  Face Radius For Dodecahedron
-  FRd = T^2 * sqrt((T+2)/5) / 2 = 1.1135163644116068404
-Why we need ERp? Well, ERp and FRd segments forms a 90 degrees angle, 
-completing this triangle, the lesser angle is a half of the angle we are 
-looking for, so this angle is:
-     +-----------------------------------------------------------+
-     | 2*ARCTAN(ERp/FRd)        = 63.434948822922009981 degrees |
-     +-----------------------------------------------------------+
-For the icosahedron we can use the same method used for dodecahedron (well
-the method used for dodecahedron may be used for all regular polyhedra)
-  Edge Radius For Triangle (this one is well known: 1/3 of the triangle height)
-  ERt = sin(60)/3 = sqrt(3)/6 = 0.2886751345948128655
-  Face Radius For Icosahedron
-  FRi= (3*sqrt(3)+sqrt(15))/12 = 0.7557613140761707538
-So the angle is:
-     +-----------------------------------------------------------+
-     | 2*ARCTAN(ERt/FRi)        = 41.810314895778596167 degrees |
-     +-----------------------------------------------------------+
-
-*)
-
-
-let scale = 0.3
-
-let vect_mul (x1,y1,z1) (x2,y2,z2) =
-  (y1 *. z2 -. z1 *. y2, z1 *. x2 -. x1 *. z2, x1 *. y2 -. y1 *. x2)
-
-let sqr a = a *. a
-
-(* Increasing this values produces better image quality, the price is speed. *)
-(* Very low values produces erroneous/incorrect plotting *)
-let tetradivisions =            23
-let cubedivisions =             20
-let octadivisions =             21
-let dodecadivisions =           10
-let icodivisions =              15
-
-let tetraangle =                109.47122063449069174
-let cubeangle =                 90.000000000000000000
-let octaangle =                 109.47122063449069174
-let dodecaangle =               63.434948822922009981
-let icoangle =                  41.810314895778596167
-
-let pi = acos (-1.)
-let sqrt2 = sqrt 2.
-let sqrt3 = sqrt 3.
-let sqrt5 = sqrt 5.
-let sqrt6 = sqrt 6.
-let sqrt15 = sqrt 15.
-let cossec36_2 = 0.8506508083520399322
-let cosd x =  cos (float x /. 180. *. pi)
-let sind x =  sin (float x /. 180. *. pi)
-let cos72 = cosd 72
-let sin72 = sind 72
-let cos36 = cosd 36
-let sin36 = sind 36
-
-(*************************************************************************)
-
-let front_shininess =   60.0
-let front_specular  =   0.7, 0.7, 0.7, 1.0
-let ambient         =   0.0, 0.0, 0.0, 1.0
-let diffuse         =   1.0, 1.0, 1.0, 1.0
-let position0       =   1.0, 1.0, 1.0, 0.0
-let position1       =   -1.0,-1.0, 1.0, 0.0
-let lmodel_ambient  =   0.5, 0.5, 0.5, 1.0
-let lmodel_twoside  =   true
-
-let materialRed     =   0.7, 0.0, 0.0, 1.0
-let materialGreen   =   0.1, 0.5, 0.2, 1.0
-let materialBlue    =   0.0, 0.0, 0.7, 1.0
-let materialCyan    =   0.2, 0.5, 0.7, 1.0
-let materialYellow  =   0.7, 0.7, 0.0, 1.0
-let materialMagenta =   0.6, 0.2, 0.5, 1.0
-let materialWhite   =   0.7, 0.7, 0.7, 1.0
-let materialGray    =   0.2, 0.2, 0.2, 1.0
-let all_gray = Array.create 20 materialGray
-
-let vertex ~xf ~yf ~zf ~ampvr2 =
-  let xa = xf +. 0.01 and yb = yf +. 0.01 in
-  let xf2 = sqr xf and yf2 = sqr yf in
-  let factor = 1. -. (xf2 +. yf2) *. ampvr2
-  and factor1 = 1. -. (sqr xa +. yf2) *. ampvr2
-  and factor2 = 1. -. (xf2 +. sqr yb) *. ampvr2 in
-  let vertx = factor *. xf and verty = factor *. yf
-  and vertz = factor *. zf in
-  let neiax = factor1 *. xa -. vertx and neiay = factor1 *. yf -. verty
-  and neiaz = factor1 *. zf -. vertz and neibx = factor2 *. xf -. vertx
-  and neiby = factor2 *. yb -. verty and neibz = factor2 *. zf -. vertz in
-  GlDraw.normal3 (vect_mul (neiax, neiay, neiaz) (neibx, neiby, neibz));
-  GlDraw.vertex3 (vertx, verty, vertz)
-
-let triangle ~edge ~amp ~divisions ~z =
-  let divi = float divisions in
-  let vr = edge *. sqrt3 /. 3. in
-  let ampvr2 = amp /. sqr vr
-  and zf = edge *. z in
-  let ax = edge *. (0.5 /. divi)
-  and ay = edge *. (-0.5 *. sqrt3 /. divi)
-  and bx = edge *. (-0.5 /. divi) in
-  for ri = 1 to divisions do
-    GlDraw.begins `triangle_strip;
-    for ti = 0 to ri - 1 do
-      vertex ~zf ~ampvr2
-       ~xf:(float (ri-ti) *. ax +. float ti *. bx)
-       ~yf:(vr +. float (ri-ti) *. ay +. float ti *. ay);
-      vertex ~zf ~ampvr2
-       ~xf:(float (ri-ti-1) *. ax +. float ti *. bx)
-       ~yf:(vr +. float (ri-ti-1) *. ay +. float ti *. ay)
-    done;
-    vertex ~xf:(float ri *. bx) ~yf:(vr +. float ri *. ay) ~zf ~ampvr2;
-    GlDraw.ends ()
-  done
-
-let square ~edge ~amp ~divisions ~z =
-  let divi = float divisions in
-  let zf = edge *. z
-  and ampvr2 = amp /. sqr (edge *. sqrt2 /. 2.) in
-  for yi = 0 to divisions - 1 do
-    let yf = edge *. (-0.5 +. float yi /. divi) in
-    let yf2 = sqr yf in
-    let y = yf +. 1.0 /. divi *. edge in
-    let y2 = sqr y in
-    GlDraw.begins `quad_strip;
-    for xi = 0 to divisions do
-      let xf = edge *. (-0.5 +. float xi /. divi) in
-      vertex ~xf ~yf:y ~zf ~ampvr2;
-      vertex ~xf ~yf ~zf ~ampvr2
-    done;
-    GlDraw.ends ()
-  done
-
-let pentagon ~edge ~amp ~divisions ~z =
-  let divi = float divisions in
-  let zf = edge *. z
-  and ampvr2 = amp /. sqr(edge *. cossec36_2) in
-  let x =
-    Array.init 6
-      ~f:(fun fi -> -. cos (float fi *. 2. *. pi /. 5. +. pi /. 10.)
-                    /. divi *. cossec36_2 *. edge)
-  and y =
-    Array.init 6
-      ~f:(fun fi -> sin (float fi *. 2. *. pi /. 5. +. pi /. 10.)
-                    /. divi *. cossec36_2 *. edge)
-  in
-  for ri = 1 to divisions do
-    for fi = 0 to 4 do
-      GlDraw.begins `triangle_strip;
-      for ti = 0 to ri-1 do
-       vertex ~zf ~ampvr2
-         ~xf:(float(ri-ti) *. x.(fi) +. float ti *. x.(fi+1))
-         ~yf:(float(ri-ti) *. y.(fi) +. float ti *. y.(fi+1));
-       vertex ~zf ~ampvr2
-         ~xf:(float(ri-ti-1) *. x.(fi) +. float ti *. x.(fi+1))
-         ~yf:(float(ri-ti-1) *. y.(fi) +. float ti *. y.(fi+1))
-      done;
-      vertex ~xf:(float ri *. x.(fi+1)) ~yf:(float ri *. y.(fi+1)) ~zf ~ampvr2;
-      GlDraw.ends ()
-    done
-  done
-
-let call_list list color =
-  GlLight.material ~face:`both (`diffuse color);
-  GlList.call list
-
-let draw_tetra ~amp ~divisions ~color =
-  let list = GlList.create `compile in
-  triangle ~edge:2.0 ~amp ~divisions ~z:(0.5 /. sqrt6);
-  GlList.ends();
-
-  call_list list color.(0);
-  GlMat.push();
-  GlMat.rotate ~angle:180.0 ~z:1.0 ();
-  GlMat.rotate ~angle:(-.tetraangle) ~x:1.0 ();
-  call_list list color.(1);
-  GlMat.pop();
-  GlMat.push();
-  GlMat.rotate ~angle:180.0 ~y:1.0 ();
-  GlMat.rotate ~angle:(-180.0 +. tetraangle) ~x:0.5 ~y:(sqrt3 /. 2.) ();
-  call_list list color.(2);
-  GlMat.pop();
-  GlMat.rotate ~angle:180.0 ~y:1.0 ();
-  GlMat.rotate ~angle:(-180.0 +. tetraangle) ~x:0.5 ~y:(-.sqrt3 /. 2.) ();
-  call_list list color.(3);
-
-  GlList.delete list
-
-let draw_cube ~amp ~divisions ~color =
-  let list = GlList.create `compile in
-  square ~edge:2.0 ~amp ~divisions ~z:0.5;
-  GlList.ends ();
-
-  call_list list color.(0);
-  for i = 1 to 3 do
-    GlMat.rotate ~angle:cubeangle ~x:1.0 ();
-    call_list list color.(i)
-  done;
-  GlMat.rotate ~angle:cubeangle ~y:1.0 ();
-  call_list list color.(4);
-  GlMat.rotate ~angle:(2.0 *. cubeangle) ~y:1.0 ();
-  call_list list color.(5);
-
-  GlList.delete list
-
-let draw_octa ~amp ~divisions ~color =
-  let list = GlList.create `compile in
-  triangle ~edge:2.0 ~amp ~divisions ~z:(1.0 /. sqrt6);
-  GlList.ends ();
-
-  let do_list (i,y) =
-    GlMat.push();
-    GlMat.rotate ~angle:180.0 ~y:1.0 ();
-    GlMat.rotate ~angle:(-.octaangle) ~x:0.5 ~y ();
-    call_list list color.(i);
-    GlMat.pop()
-  in
-  call_list list color.(0);
-  GlMat.push();
-  GlMat.rotate ~angle:180.0 ~z:1.0 ();
-  GlMat.rotate ~angle:(-180.0 +. octaangle) ~x:1.0 ();
-  call_list list color.(1);
-  GlMat.pop();
-  List.iter [2, sqrt3 /. 2.0; 3, -.sqrt3 /. 2.0] ~f:do_list;
-  GlMat.rotate ~angle:180.0 ~x:1.0 ();
-  GlLight.material ~face:`both (`diffuse color.(4));
-  GlList.call list;
-  GlMat.push();
-  GlMat.rotate ~angle:180.0 ~z:1.0 ();
-  GlMat.rotate ~angle:(-180.0 +. octaangle) ~x:1.0 ();
-  GlLight.material ~face:`both (`diffuse color.(5));
-  GlList.call list;
-  GlMat.pop();
-  List.iter [6, sqrt3 /. 2.0; 7, -.sqrt3 /. 2.0] ~f:do_list;
-
-  GlList.delete list
-
-let draw_dodeca ~amp ~divisions ~color =
-  let tau = (sqrt5 +. 1.0) /. 2.0 in
-  let list = GlList.create `compile in
-  pentagon ~edge:2.0 ~amp ~divisions
-    ~z:(sqr(tau) *. sqrt ((tau+.2.0)/.5.0) /. 2.0);
-  GlList.ends ();
-
-  let do_list (i,angle,x,y) =
-    GlMat.push();
-    GlMat.rotate ~angle:angle ~x ~y ();
-    call_list list color.(i);
-    GlMat.pop();
-  in
-  GlMat.push ();
-  call_list list color.(0);
-  GlMat.rotate ~angle:180.0 ~z:1.0 ();
-  List.iter ~f:do_list
-    [ 1, -.dodecaangle, 1.0, 0.0;
-      2, -.dodecaangle, cos72, sin72;
-      3, -.dodecaangle, cos72, -.sin72;
-      4, dodecaangle, cos36, -.sin36;
-      5, dodecaangle, cos36, sin36 ];
-  GlMat.pop ();
-  GlMat.rotate ~angle:180.0 ~x:1.0 ();
-  call_list list color.(6);
-  GlMat.rotate ~angle:180.0 ~z:1.0 ();
-  List.iter ~f:do_list
-    [ 7, -.dodecaangle, 1.0, 0.0;
-      8, -.dodecaangle, cos72, sin72;
-      9, -.dodecaangle, cos72, -.sin72;
-      10, dodecaangle, cos36, -.sin36 ];
-  GlMat.rotate ~angle:dodecaangle ~x:cos36 ~y:sin36 ();
-  call_list list color.(11);
-
-  GlList.delete list
-
-let draw_ico ~amp ~divisions ~color =
-  let list = GlList.create `compile in
-  triangle ~edge:1.5 ~amp ~divisions
-    ~z:((3.0 *. sqrt3 +. sqrt15) /. 12.0);
-  GlList.ends ();
-
-  let do_list1 i =
-    GlMat.rotate ~angle:180.0 ~y:1.0 ();
-    GlMat.rotate ~angle:(-180.0 +. icoangle) ~x:0.5 ~y:(sqrt3/.2.0) ();
-    call_list list color.(i)
-  and do_list2 i =
-    GlMat.rotate ~angle:180.0 ~y:1.0 ();
-    GlMat.rotate ~angle:(-180.0 +. icoangle) ~x:0.5 ~y:(-.sqrt3/.2.0) ();
-    call_list list color.(i)
-  and do_list3 i =
-    GlMat.rotate ~angle:180.0 ~z:1.0 ();
-    GlMat.rotate ~angle:(-.icoangle) ~x:1.0 ();
-    call_list list color.(i)
-  in
-  GlMat.push ();
-  call_list list color.(0);
-  GlMat.push ();
-  do_list3 1;
-  GlMat.push ();
-  do_list1 2;
-  GlMat.pop ();
-  do_list2 3;
-  GlMat.pop ();
-  GlMat.push ();
-  do_list1 4;
-  GlMat.push ();
-  do_list1 5;
-  GlMat.pop();
-  do_list3 6;
-  GlMat.pop ();
-  do_list2 7;
-  GlMat.push ();
-  do_list2 8;
-  GlMat.pop ();
-  do_list3 9;
-  GlMat.pop ();
-  GlMat.rotate ~angle:180.0 ~x:1.0 ();
-  call_list list color.(10);
-  GlMat.push ();
-  do_list3 11;
-  GlMat.push ();
-  do_list1 12;
-  GlMat.pop ();
-  do_list2 13;
-  GlMat.pop ();
-  GlMat.push ();
-  do_list1 14;
-  GlMat.push ();
-  do_list1 15;
-  GlMat.pop ();
-  do_list3 16;
-  GlMat.pop ();
-  do_list2 17;
-  GlMat.push ();
-  do_list2 18;
-  GlMat.pop ();
-  do_list3 19;
-
-  GlList.delete list
-
-class view area = object (self)
-  val area : GlGtk.area = area
-  val mutable smooth = true
-  val mutable step = 0.
-  val mutable obj = 1
-  val mutable draw_object = fun ~amp -> ()
-  val mutable magnitude = 0.
-
-  method width =  area#misc#allocation.Gtk.width
-  method height = area#misc#allocation.Gtk.height
-
-  method draw () =
-    let ratio = float self#height /. float self#width in
-    GlClear.clear [`color;`depth];
-    GlMat.push();
-    GlMat.translate ~z:(-10.0) ();
-    GlMat.scale ~x:(scale *. ratio) ~y:scale ~z:scale ();
-    GlMat.translate ()
-      ~x:(2.5 *. ratio *. sin (step *. 1.11))
-      ~y:(2.5 *. cos (step *. 1.25 *. 1.11));
-    GlMat.rotate ~angle:(step *. 100.) ~x:1.0 ();
-    GlMat.rotate ~angle:(step *. 95.) ~y:1.0 ();
-    GlMat.rotate ~angle:(step *. 90.) ~z:1.0 ();
-    draw_object ~amp:((sin step +. 1.0/.3.0) *. (4.0/.5.0) *. magnitude);
-    GlMat.pop();
-    Gl.flush();
-    area#swap_buffers ();
-    step <- step +. 0.05
-
-  method reshape ~width ~height =
-    GlDraw.viewport ~x:0 ~y:0 ~w:width ~h:height;
-    GlMat.mode `projection;
-    GlMat.load_identity();
-    GlMat.frustum ~x:(-1.0, 1.0) ~y:(-1.0, 1.0) ~z:(5.0, 15.0);
-    GlMat.mode `modelview
-
-  method key sym =
-    begin match sym with
-      "1" -> obj <- 1
-    | "2" -> obj <- 2
-    | "3" -> obj <- 3
-    | "4" -> obj <- 4
-    | "5" -> obj <- 5
-    | "\r" -> smooth <- not smooth
-    | "\027" -> area#misc#toplevel#destroy (); exit 0
-    | _ -> ()
-    end;
-    self#pinit
-
-  method pinit =
-    begin match obj with
-      1 ->
-       draw_object <- draw_tetra
-            ~divisions:tetradivisions
-            ~color:[|materialRed;  materialGreen;
-                    materialBlue; materialWhite|];
-       magnitude <- 2.5
-    | 2 ->
-       draw_object <- draw_cube
-            ~divisions:cubedivisions
-            ~color:[|materialRed; materialGreen; materialCyan;
-                    materialMagenta; materialYellow; materialBlue|];
-       magnitude <- 2.0
-    | 3 ->
-       draw_object <- draw_octa
-            ~divisions:octadivisions
-            ~color:[|materialRed; materialGreen; materialBlue;
-                    materialWhite; materialCyan; materialMagenta;
-                    materialGray; materialYellow|];
-       magnitude <- 2.5
-    | 4 ->
-      draw_object <- draw_dodeca
-          ~divisions:dodecadivisions
-          ~color:[|materialRed; materialGreen; materialCyan;
-                  materialBlue; materialMagenta; materialYellow;
-                  materialGreen; materialCyan; materialRed;
-                  materialMagenta; materialBlue; materialYellow|];
-      magnitude <- 2.0
-    | 5 ->
-       draw_object <- draw_ico
-            ~divisions:icodivisions
-            ~color:[|materialRed; materialGreen; materialBlue;
-                    materialCyan; materialYellow; materialMagenta;
-                    materialRed; materialGreen; materialBlue;
-                    materialWhite; materialCyan; materialYellow;
-                    materialMagenta; materialRed; materialGreen;
-                    materialBlue; materialCyan; materialYellow;
-                    materialMagenta; materialGray|];
-       magnitude <- 3.5
-    | _ -> ()
-    end;
-    GlDraw.shade_model (if smooth then `smooth else `flat)
-  initializer
-    area#connect#display ~callback:self#draw;
-    area#connect#reshape ~callback:self#reshape;
-    ()
-end
-
-open GMain
-
-let main () =
-  List.iter ~f:print_string
-    [ "Morph 3D - Shows morphing platonic polyhedra\n";
-      "Author: Marcelo Fernandes Vianna (vianna@cat.cbpf.br)\n";
-      "Ported to LablGL by Jacques Garrigue\n\n";
-      "  [1]    - Tetrahedron\n";
-      "  [2]    - Hexahedron (Cube)\n";
-      "  [3]    - Octahedron\n";
-      "  [4]    - Dodecahedron\n";
-      "  [5]    - Icosahedron\n";
-      "[RETURN] - Toggle smooth/flat shading\n";
-      " [ESC]   - Quit\n" ];
-  flush stdout;
-
-  let window =
-    GWindow.window ~title:"Morph 3D - Shows morphing platonic polyhedra" ()
-  in
-  window#connect#destroy ~callback:Main.quit;
-  window#set_resize_mode `IMMEDIATE;
-
-  let area = GlGtk.area [`DEPTH_SIZE 1;`RGBA;`DOUBLEBUFFER]
-      ~width:640 ~height:480 ~packing:window#add () in
-
-  let view = new view area in
-
-  area#connect#realize ~callback:
-    begin fun () ->
-      view#pinit;
-      GlClear.depth 1.0;
-      GlClear.color (0.0, 0.0, 0.0);
-      GlDraw.color (1.0, 1.0, 1.0);
-
-      GlClear.clear [`color;`depth];
-      Gl.flush();
-
-      List.iter ~f:(GlLight.light ~num:0)
-       [`ambient ambient; `diffuse diffuse; `position position0];
-      List.iter ~f:(GlLight.light ~num:1)
-       [`ambient ambient; `diffuse diffuse; `position position1];
-      GlLight.light_model (`ambient lmodel_ambient);
-      GlLight.light_model (`two_side lmodel_twoside);
-      List.iter ~f:Gl.enable
-       [`lighting;`light0;`light1;`depth_test;`normalize];
-
-      GlLight.material ~face:`both (`shininess front_shininess);
-      GlLight.material ~face:`both (`specular front_specular);
-
-      GlMisc.hint `fog `fastest;
-      GlMisc.hint `perspective_correction `fastest;
-      GlMisc.hint `polygon_smooth `fastest
-    end;
-
-  window#event#connect#key_press
-    ~callback:(fun ev -> view#key (GdkEvent.Key.string ev); true);
-
-  Timeout.add ~ms:20
-    ~callback:(fun _ -> if area#misc#visible then view#draw (); true);
-  window#show ();
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/planet.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/planet.ml
deleted file mode 100644 (file)
index 51f947c..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-(* $Id$ *)
-
-class planet area = object (self)
-  val area : GlGtk.area = area
-  val mutable year = 0.0
-  val mutable day = 0.0
-  val mutable eye = 0.0
-  val mutable time = 0.0
-
-  method tick new_time =
-    if time = 0. then time <- new_time else
-    let diff = new_time -. time in
-    time <- new_time;
-    day <- mod_float (day +. diff *. 200.) 360.0;
-    year <- mod_float (year +. diff *. 20.) 360.0
-  method day_add () =
-    day <- mod_float (day +. 10.0) 360.0
-  method day_subtract () =
-    day <- mod_float (day -. 10.0) 360.0
-  method year_add () =
-    year <- mod_float (year +. 5.0) 360.0
-  method year_subtract () =
-    year <- mod_float (year -. 5.0) 360.0
-  method eye x =
-    eye <- x; self#display ()
-
-  method display () =
-    GlClear.clear [`color;`depth];
-
-    GlDraw.color (1.0, 1.0, 1.0);
-    GlMat.push();
-    GlMat.rotate ~angle:eye ~x:1. ();
-(*     draw sun        *)
-    GlLight.material ~face:`front (`specular (1.0,1.0,0.0,1.0));
-    GlLight.material ~face:`front (`shininess 5.0);
-    GluQuadric.sphere ~radius:1.0 ~slices:32 ~stacks:32 ();
-(*     draw smaller planet     *)
-    GlMat.rotate ~angle:year ~y:1.0 ();
-    GlMat.translate ~x:3.0 ();
-    GlMat.rotate ~angle:day ~y:1.0 ();
-    GlDraw.color (0.0, 1.0, 1.0);
-    GlDraw.shade_model `flat;
-    GlLight.material ~face:`front(`shininess 128.0);
-    GluQuadric.sphere ~radius:0.2 ~slices:10 ~stacks:10 ();
-    GlDraw.shade_model `smooth;
-    GlMat.pop ();
-    Gl.flush ();
-    area#swap_buffers ()
-end
-
-let myinit () =
-  let light_ambient = 0.5, 0.5, 0.5, 1.0
-  and light_diffuse = 1.0, 0.8, 0.2, 1.0
-  and light_specular = 1.0, 1.0, 1.0, 1.0
-  (*  light_position is NOT default value      *)
-  and light_position = 1.0, 1.0, 1.0, 0.0
-  in
-  List.iter ~f:(GlLight.light ~num:0)
-    [ `ambient light_ambient; `diffuse light_diffuse;
-      `specular light_specular; `position light_position ];
-  GlFunc.depth_func `less;
-  List.iter ~f:Gl.enable [`lighting; `light0; `depth_test];
-  GlDraw.shade_model `smooth
-
-
-let my_reshape ~width:w ~height:h =
-  GlDraw.viewport ~x:0 ~y:0 ~w ~h;
-  GlMat.mode `projection;
-  GlMat.load_identity();
-  GluMat.perspective ~fovy:60.0 ~aspect:(float w /. float h) ~z:(1.0,20.0);
-  GlMat.mode `modelview;
-  GlMat.load_identity();
-  GlMat.translate ~z:(-5.0) ()
-
-(*  Main Loop
- *  Open window with initial window size, title bar, 
- *  RGBA display mode, and handle input events.
- *)
-open GMain
-open GdkKeysyms
-
-let main () =
-  let w = GWindow.window ~title:"Planet" () in
-  w#connect#destroy ~callback:(fun () -> Main.quit (); exit 0);
-  w#set_resize_mode `IMMEDIATE;
-  let hb = GPack.hbox ~packing:w#add () in
-  let area = GlGtk.area [`DOUBLEBUFFER;`RGBA;`DEPTH_SIZE 1]
-      ~width:700 ~height:500 ~packing:hb#add () in
-  area#event#add [`KEY_PRESS];
-
-  let planet = new planet area in
-  let adjustment = GData.adjustment ~value:0. ~lower:(-90.) ~upper:90.
-      ~step_incr:1. ~page_incr:5. ~page_size:5. () in
-  let scale = GRange.scale `VERTICAL ~adjustment ~draw_value:false
-      ~packing:hb#pack () in
-  adjustment#connect#value_changed
-    ~callback:(fun () -> planet#eye adjustment#value);
-  w#event#connect#key_press ~callback:
-    begin fun ev ->
-      let key = GdkEvent.Key.keyval ev in
-      if key = _Left then planet#year_subtract () else
-      if key = _Right then planet#year_add () else
-      if key = _Up then planet#day_add () else
-      if key = _Down then planet#day_subtract () else
-      if key = _Escape then w#destroy ();
-      planet#display ();
-      true
-    end;
-  
-  Timeout.add ~ms:20 ~callback:
-    begin fun () ->
-      planet#tick (Sys.time ()); planet#display (); true
-    end;
-  area#connect#display ~callback:planet#display;
-  area#connect#reshape ~callback:my_reshape;
-
-  area#connect#realize ~callback:
-    begin fun () ->
-      myinit ();
-      my_reshape ~width:700 ~height:500
-    end;
-  w#show ();
-  Main.main ()
-
-let _ = Printexc.print main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/simple.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/GL/simple.ml
deleted file mode 100644 (file)
index ea6ebde..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let main () =
-  let w = GWindow.window ~title:"LablGL/Gtk" () in
-  w#connect#destroy ~callback:Main.quit;
-  let area =
-    GlGtk.area [`RGBA;`DEPTH_SIZE 1] ~width:500 ~height:500 ~packing:w#add () in
-  area#connect#realize ~callback:
-    begin fun () ->
-      GlMat.mode `projection;
-      GlMat.load_identity ();
-      GlMat.ortho ~x:(-1.0,1.0) ~y:(-1.0,1.0) ~z:(-1.0,1.0);
-    end;
-  area#connect#display ~callback:
-    begin fun () ->
-      GlClear.color (0.0, 0.0, 0.0);
-      GlClear.clear [`color];
-      GlDraw.color (1.0, 1.0, 1.0);
-      GlDraw.begins `polygon;
-      GlDraw.vertex ~x:(-0.5) ~y:(-0.5) ();
-      GlDraw.vertex ~x:(-0.5) ~y:(0.5) ();
-      GlDraw.vertex ~x:(0.5) ~y:(0.5) ();
-      GlDraw.vertex ~x:(0.5) ~y:(-0.5) ();
-      GlDraw.ends ();
-      Gl.flush ()
-    end;
-  Timeout.add ~ms:10000 ~callback:(fun () -> w#destroy ();false);
-  w#show ();
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/README b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/README
deleted file mode 100644 (file)
index 6cbb5b6..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Since this library was written in commuting label mode, examples were
-also written in this mode.
-Still, the following examples also compile in classic mode without
-any modification.
-
-* calendar.ml
-* clist.ml
-* drawing.ml
-* entry.ml
-* events.ml
-* fifteen.ml
-* hello.ml
-* image.ml
-* radiobuttons.ml
-* rpn.ml
-* scrolledwin.ml
-* testinput.ml
\ No newline at end of file
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/buttons.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/buttons.ml
deleted file mode 100644 (file)
index 78eebb0..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let xpm_label_box ~(window : #GContainer.container)
-    ~file ~text ?packing ?(show=true) () =
-  if not (Sys.file_exists file) then failwith (file ^ " does not exist");
-  let box = GPack.hbox ~border_width: 2 ?packing ~show:false () in
-  let pixmap = GDraw.pixmap_from_xpm ~file ~window () in
-  GMisc.pixmap pixmap ~packing:(box#pack ~padding:3) ();
-  GMisc.label ~text ~packing:(box#pack ~padding:3) ();
-  if show then box#misc#show ();
-  new GObj.widget_full box#as_widget
-
-let main () =
-  let window = GWindow.window ~title:"Pixmap'd Buttons!" ~border_width:10 () in
-  window#connect#destroy ~callback:Main.quit;
-  let button = GButton.button ~packing:window#add () in
-  button#connect#clicked ~callback:
-    (fun () -> prerr_endline "Hello again - cool button was pressed");
-  xpm_label_box ~window ~file:"test.xpm" ~text:"cool button"
-    ~packing:button#add ();
-  window#show ();
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calc.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calc.ml
deleted file mode 100644 (file)
index 405d1bf..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-(* $Id$ *)
-
-(* A simple calculator ported from LablTk to LablGtk *)
-
-let mem_string ~char s =
-  try
-    for i = 0 to String.length s -1 do
-      if s.[i] = char then raise Exit
-    done; false
-  with Exit -> true
-
-let ops = ['+',(+.); '-',(-.); '*',( *.); '/',(/.)]
-
-(* The abstract calculator class. Does not use Gtk *)
-
-class virtual calc = object (calc)
-  val mutable x = 0.0
-  val mutable op = None
-  val mutable displaying = true
-
-  method virtual set : string -> unit
-  method virtual get : string
-  method virtual quit : unit -> unit
-  method insert s = calc#set (calc#get ^ s)
-  method get_float = float_of_string (calc#get)
-
-  initializer calc#set "0"
-
-  method command s =
-    if s <> "" then match s.[0] with
-      '0'..'9' ->
-       if displaying then (calc#set ""; displaying <- false);
-       calc#insert s
-    | '.' ->
-       if displaying then
-         (calc#set "0."; displaying <- false)
-       else
-         if not (mem_string ~char:'.' calc#get) then calc#insert s
-    | '+'|'-'|'*'|'/' as c ->
-       displaying <- true;
-       begin match op with
-         None ->
-           x <- calc#get_float;
-           op <- Some (List.assoc c ops)
-       | Some f ->
-           x <- f x (calc#get_float);
-           op <- Some (List.assoc c ops);
-           calc#set (string_of_float x)
-       end
-    | '='|'\n'|'\r' ->
-       displaying <- true;
-       begin match op with
-         None -> ()
-       | Some f ->
-           x <- f x (calc#get_float);
-           op <- None;
-           calc#set (string_of_float x)
-       end
-    | 'q' -> calc#quit ()
-    | _ -> ()
-end
-
-(* Buttons for the calculator *)
-
-let m =
-  [|[|"7";"8";"9";"+"|];
-    [|"4";"5";"6";"-"|];
-    [|"1";"2";"3";"*"|];
-    [|"0";".";"=";"/"|]|]
-
-(* The physical calculator. Inherits from the abstract one *)
-
-open GMain
-
-class calculator ?packing ?show () =
-  let table = GPack.table ~rows:5 ~columns:4 ~homogeneous:true ~show:false () in
-  object (calc)
-    inherit calc
-
-    val label =
-      let frame = GBin.frame ~shadow_type:`IN ()
-       ~packing:(table#attach ~left:0 ~top:0 ~right:4 ~expand:`BOTH) in
-      let evbox = GBin.event_box ~packing:frame#add () in
-      evbox#misc#set_style evbox#misc#style#copy;
-      evbox#misc#style#set_bg [`NORMAL,`WHITE];
-      GMisc.label ~justify:`RIGHT ~xalign:0.95 ~packing:evbox#add ()
-    val table = table
-
-    method set = label#set_text
-    method get = label#text
-    method quit = Main.quit
-
-    initializer
-      for i = 0 to 3 do for j = 0 to 3 do
-       let button =
-         GButton.button ~label:("  " ^ m.(i).(j) ^ "  ")
-           ~packing:(table#attach ~top:(i+1) ~left:j ~expand:`BOTH) () in
-       button#connect#clicked ~callback:(fun () -> calc#command m.(i).(j));
-      done done;
-      ignore (GObj.pack_return table ~packing ~show)
-  end
-
-(* Finally start everything *)
-
-let w = GWindow.window ~auto_shrink:true ()
-
-let applet = new calculator ~packing: w#add ()
-
-let _ =
-  w#connect#destroy ~callback: Main.quit;
-  w#event#connect#key_press
-    ~callback:(fun ev -> applet#command (GdkEvent.Key.string ev); true);
-  w#show ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calendar.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/calendar.ml
deleted file mode 100644 (file)
index 233c744..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let main () =
-  let window = GWindow.window () in
-  window#connect#destroy ~callback:Main.quit;
-
-  let calendar = GMisc.calendar ~packing:window#add () in
-  calendar#connect#day_selected ~callback:
-    begin fun () ->
-      let (year,month,day) = calendar#date in
-      Printf.printf "You selected %d/%d/%02d.\n"
-       day (month+1) (year mod 100);
-      flush stdout
-    end;
-
-  window#show ();
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/clist.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/clist.ml
deleted file mode 100644 (file)
index f900f17..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let main () =
-  let window = GWindow.window ~title:"CList example" ~width:300 ~height:150 () in
-  window#connect#destroy ~callback:Main.quit;
-
-  let vbox = GPack.vbox ~border_width:5 ~packing:window#add () in
-
-  let hbox = GPack.hbox ~packing:vbox#add () in
-  let sb =
-    GRange.scrollbar `VERTICAL ~packing:(hbox#pack ~from:`END) () in
-  let clist =
-    GList.clist ~titles:["Ingredients";"Amount"] ~shadow_type:`OUT
-      ~packing:hbox#add ~vadjustment:sb#adjustment () in
-  clist#connect#select_row ~callback:
-    begin fun ~row ~column ~event ->
-      let text = clist#cell_text row column in
-      Printf.printf "You selected row %d. More specifically you clicked in column %d, and the text in this cell is %s\n\n" row column text;
-      flush stdout
-    end;
-
-  let hbox = GPack.hbox ~packing:vbox#pack () in
-
-  let button_add = GButton.button ~label:"Add List" ~packing:hbox#add () in
-  button_add#connect#clicked ~callback:
-    begin fun () ->
-      List.iter ~f:(fun t -> ignore (clist#append t))
-       [ ["Milk"; "3 Oz"];
-         ["Water"; "6 l"];
-         ["Carrots"; "2"];
-         ["Snakes"; "55"] ]
-    end;
-
-  let button_clear = GButton.button ~label:"Clear List" ~packing:hbox#add () in
-  button_clear#connect#clicked ~callback:clist#clear;
-
-  let button_hide_show =
-    GButton.button ~label:"Hide/Show titles" ~packing:hbox#add () in
-  let flag = ref false in
-  button_hide_show#connect#clicked ~callback:
-    begin fun () ->
-      clist#set_titles_show !flag;
-      flag := not !flag
-    end;
-
-  window#show ();
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/combo.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/combo.ml
deleted file mode 100644 (file)
index 9aff1b3..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let make_arrow_label combo ~label ~string =
-  let item = GList.list_item () in (* no packing here, it blocks GTK *)
-  let hbox = GPack.hbox ~spacing:3 ~packing:item#add () in
-  GMisc.arrow ~kind:`RIGHT ~shadow:`OUT ~packing:hbox#pack ();
-  GMisc.label ~text:label ~packing:hbox#pack ();
-  combo#set_item_string item string;
-  combo#list#add item;
-  item
-
-let main () =
-  let window = GWindow.window ~border_width:10 () in
-  window#connect#destroy ~callback:Main.quit;
-  let combo = GEdit.combo ~packing:window#add () in
-  make_arrow_label combo ~label:"First item" ~string:"1st item";
-  make_arrow_label combo ~label:"Second item" ~string:"2nd item";
-  window#show ();
-  Main.main ()
-  
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/csview.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/csview.ml
deleted file mode 100644 (file)
index eaf8de1..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-(* $Id$ *)
-
-(* A simple CSV data viewer *)
-
-type data =
-    { fields : string list;
-      titles : string list;
-      data : string list list }
-
-let mem_string ~char s =
-  try
-    for i = 0 to String.length s - 1 do
-      if s.[i] = char then raise Exit
-    done;
-    false
-  with Exit -> true
-
-let rec until ~chars ?(escapes="") ?(buf = Buffer.create 80) s =
-  match Stream.peek s with
-    Some c ->
-      if mem_string ~char:c escapes then begin
-        Stream.junk s;
-        Buffer.add_char buf (Stream.next s);
-        until ~chars ~escapes ~buf s
-      end else if mem_string ~char:c chars then
-        Buffer.contents buf
-      else begin
-        Buffer.add_char buf c;
-        Stream.junk s;
-        until ~chars ~escapes ~buf s
-      end
-  | None ->
-      if Buffer.length buf > 0 then raise (Stream.Error "until")
-      else raise Stream.Failure
-
-let rec ignores ?(chars = " \t") s =
-  match Stream.peek s with
-    Some c when mem_string ~char:c chars ->
-      Stream.junk s; ignores ~chars s
-  | _ -> ()
-
-let parse_field = parser
-    [< ''"'; f = until ~chars:"\"" ~escapes:"\\"; ''"'; _ = ignores >] ->
-      for i = 0 to String.length f - 1 do
-        if f.[i] = '\031' then f.[i] <- '\n'
-      done;
-      f
-  | [< f = until ~chars:",\n\r" >] -> f
-  | [< >] -> ""
-
-let comma = parser [< '','; _ = ignores >] -> ()
-
-let rec parse_list ~item ~sep = parser
-    [< i = item; s >] ->
-      begin match s with parser
-        [< _ = sep; l = parse_list ~item ~sep >] -> i :: l
-      | [< >] -> [i]
-      end
-  | [< >] -> []
-
-let parse_one = parse_list ~item:parse_field ~sep:comma
-
-let lf = parser [< ''\n'|'\r'; _ = ignores ~chars:"\n\r"; _ = ignores >] -> ()
-
-let parse_all = parse_list ~item:parse_one ~sep:lf
-
-let read_file file =
-  let ic = open_in file in
-  let s = Stream.of_channel ic in
-  let data = parse_all s in
-  close_in ic;
-  match data with
-    ("i"::fields) :: ("T"::titles) :: data ->
-      {fields=fields; titles=titles; data=List.map ~f:List.tl data}
-  | titles :: data ->
-      {fields=titles; titles=titles; data=data}
-  | _ -> failwith "Insufficient data"
-
-let print_string s =
-  Format.print_char '"';
-  for i = 0 to String.length s - 1 do
-    match s.[i] with
-      '\'' -> Format.print_char '\''
-    | '"' -> Format.print_string "\\\""
-    | '\160'..'\255' as c -> Format.print_char c
-    | c -> Format.print_string (Char.escaped c)
-  done;
-  Format.print_char '"'  
-
-(*
-#install_printer print_string;;
-*)
-
-open GMain
-
-let field_widths =
-  [ "i", 0;
-    "ATTR", 0;
-    "NAME", 17;
-    "NAPR", 8;
-    "TEL1", 14;
-    "ZIPC", 12;
-    "ADR1", 40;
-    "BRTH", 10;
-    "RMRK", 20;
-    "CHK1", 0;
-    "CHK2", 0;
-    "CHK3", 0;
-    "CHK4", 0;
-    "TIM1", 16;
-    "TIM2", 16;
-    "ALRM", 0;
-    "ATTM", 0;
-  ]
-
-let main argv =
-  if Array.length argv <> 2 then begin
-    prerr_endline "Usage: csview <csv file>";
-    exit 2
-  end;
-  let data = read_file argv.(1) in
-  let w = GWindow.window () in
-  w#misc#realize ();
-  let style = w#misc#style in
-  let font = Gdk.Font.load_fontset "-schumacher-clean-medium-r-normal--13-*-*-*-c-60-*,-mnkaname-fixed-*--12-*" in
-  let w0 = Gdk.Font.char_width font '0' in
-  style#set_font font;
-  w#connect#destroy ~callback:Main.quit;
-  let sw = GBin.scrolled_window ~width:600 ~height:300 ~packing:w#add () in
-  let cl = GList.clist ~titles:data.titles ~packing:sw#add () in
-  List.fold_left data.fields ~init:0 ~f:
-    begin fun acc f ->
-      let width = try List.assoc f field_widths with Not_found -> -1 in
-      if width = 0 then
-        cl#set_column ~visibility:false acc
-      else begin
-        if width > 0 then cl#set_column ~width:(width * w0) acc
-        else cl#set_column ~auto_resize:true acc;
-        if f = "NAPR" || f = "TIM1" || f = "CLAS" then
-          cl#set_sort ~auto:true ~column:acc ();
-        try
-          let ali = GBin.alignment_cast (cl#column_widget acc) in
-          let lbl = GMisc.label_cast (List.hd ali#children) in
-          lbl#set_alignment ~x:0. ()
-        with _ ->
-          prerr_endline ("No column widget for field " ^ f)
-      end;
-      succ acc
-    end;
-  List.iter data.data
-    ~f:(fun l -> if List.length l > 1 then ignore (cl#append l));
-  w#show ();
-  Main.main ()
-
-let _ = main Sys.argv
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/dcalendar.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/dcalendar.ml
deleted file mode 100644 (file)
index 6128506..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-(* $Id$ *)
-
-(* A small calendar *)
-(* Needs Unix module, so use with lablgtk_t *)
-
-open Printf
-
-type date = { mutable year: int; mutable mon: int; mutable mday: int }
-
-    (* Load the schedule data *)
-let calendar_file = Filename.concat (Sys.getenv "HOME") ".camlendar"
-
-let schedule =
-  try
-    let ichan = open_in calendar_file in
-    let (s : (int * int * int, string) Hashtbl.t) =
-      Marshal.from_channel ichan in
-    close_in ichan;
-    s
-  with Sys_error msg ->
-    prerr_endline msg; flush stderr;
-    Hashtbl.create 13;;
-
-    (* Saves the schedule data when the application terminates *)
-at_exit (fun () ->
-  let ochan = open_out calendar_file in
-  Marshal.to_channel ochan schedule ~mode: [];
-  close_out ochan);;
-
-    (* date: Current date initialized to "today" *)
-let date =
-  let tm = Unix.localtime (Unix.time ()) in
-  { year = 1900 + tm.Unix.tm_year; mon = tm.Unix.tm_mon; mday = 1 }
-
-
-    (* previous_month, next_month: change application status *)
-let previous_month () =
-  date.mday <- 1;
-  if date.mon = 0 then
-    (date.year <- date.year - 1; date.mon <- 11)
-  else date.mon <- date.mon - 1
-
-let next_month () =
-  date.mday <- 1;
-  if date.mon = 11 then (date.year <- date.year + 1; date.mon <- 0)
-  else date.mon <- date.mon + 1
-
-    (* leap, mon_name, wday_name: Calendar related function and data *)
-let leap year =
-  (year mod 400 = 0) or
-  (year mod 4 = 0) & (year mod 100 <> 0)
-
-let mdays_in_month = [|31; 28; 31; 30; 31; 30; 31; 31; 30; 31; 30; 31|]
-
-let mon_name =
-  [|"Jan"; "Feb"; "Mar"; "Apr"; "May"; "Jun";
-    "Jul"; "Aug"; "Sep"; "Oct"; "Nov"; "Dec"|]
-
-let wday_name =
-  [|"Sun"; "Mon"; "Tue"; "Wed"; "Thu"; "Fri"; "Sat"|]
-
-let s_normal = 0 and s_focused = 1 and s_planned = 2
-let styles =
-  let default = (Obj.magic () : GObj.style) in
-  [| default; default; default |]
-
-   (* class date_button: one button for each day in the month *)
-class date_button i (calendar : GPack.table) =
-  let mday = i + 1 in
-
-  object (self)
-    val widget = GButton.button ~label: (string_of_int mday) ~show: false ()
-    val mday = mday
-    val mutable show = false
-    val mutable have_plan = false
-
-    method widget = widget
-    method focus_on =
-      date.mday <- mday;
-      widget#misc#set_style styles.(s_focused)
-    method focus_off =
-      widget#misc#set_style styles.(if have_plan then s_planned else s_normal)
-    method set_plan =
-      have_plan <- true;
-      widget#misc#set_style styles.(s_planned)
-    method unset_plan =
-      have_plan <- false;
-      widget#misc#set_style styles.(s_normal)
-       
-    method show wday0 =
-      if not show then
-       let top = (mday + wday0) / 7 + 1
-       and left = (mday + wday0) mod 7 in
-       calendar#attach ~left ~top ~expand:`BOTH widget#coerce;
-       widget#misc#show ();
-       show <- true
-           
-    method hide =
-      if show then
-       (widget#misc#hide ();
-        calendar#remove widget#coerce;
-        show <- false)
-  end
-
-let update_calendar (calendar : GPack.table) (buttons : date_button array) =
-  let now = Unix.localtime (Unix.gettimeofday ()) in
-  let _, first = Unix.mktime { now with 
-                              Unix.tm_mday = 1;
-                              Unix.tm_mon = date.mon;
-                              Unix.tm_year = date.year - 1900 } in
-
-  (* wday0: day of the week of the zero'th day in the month *)
-  let wday0 = (first.Unix.tm_wday - 1 + 7) mod 7 in
-  
-  let ndays =
-    if date.mon = 1 & leap date.year then mdays_in_month.(date.mon) + 1
-    else mdays_in_month.(date.mon) in
-
-  Array.iter ~f: (fun button -> button#hide)
-    buttons;
-
-  for i = 0 to ndays - 1 do buttons.(i)#show wday0 done
-
-let create_GUI () =
-  
-  (* views part *)
-
-  let win =
-    GWindow.window ~title: "Camlendar" ~show: true
-      ~allow_shrink: false ~allow_grow: false () in
-  win#event#connect#delete
-    ~callback: (fun _ -> GMain.Main.quit (); exit 0; false);
-
-  let style = win#misc#style#copy in
-  styles.(s_normal) <- style;
-  
-  let style = style#copy in
-  style#set_bg [`NORMAL, `NAME "light green";
-               `PRELIGHT, `NAME "light green"];
-  styles.(s_focused) <- style;
-
-  styles.(s_focused) <- style;
-  let style = style#copy in
-  style#set_bg [`NORMAL, `NAME "sky blue";
-               `PRELIGHT, `NAME "sky blue"];
-  styles.(s_planned) <- style;
-
-  let vbox = GPack.vbox ~packing: win#add () in
-  let packing = vbox#add in
-  let toolbar = GButton.toolbar ~style: `TEXT ~packing () in
-
-  let prev =
-    toolbar#insert_button ~text: "Prev" ~tooltip: "Show previous month" () in
-  let next =
-    toolbar#insert_button ~text: "Next" ~tooltip: "Show next month" () in
-  
-  let calendar =
-    GPack.table ~homogeneous: true ~rows: 7 ~columns: 7
-      ~border_width: 10 ~row_spacings: 2 ~col_spacings: 2 ~packing () in
-
-  Array.iteri
-    ~f: (fun i wday ->
-      ignore (GButton.button ~label: wday
-               ~packing:(calendar#attach ~top: 0 ~left: i ~expand:`BOTH) ()))
-    wday_name;
-
-  let buttons =
-    Array.init 31 ~f: (fun i -> new date_button i calendar) in
-
-  let date_view = GMisc.label ~justify: `CENTER ~packing () in
-
-  let text = GEdit.text ~editable: true ~width: 70 ~height: 50 ~packing () in
-
-  (* Controls part *)
-
-  let save_text () =
-    let data = text#get_chars ~start: 0 ~stop: text#length in
-    let key = (date.year, date.mon, date.mday) in
-    Hashtbl.remove schedule key;
-    if data <> "" then
-      (Hashtbl.add schedule ~key ~data;
-       buttons.(date.mday - 1)#set_plan)
-    else buttons.(date.mday - 1)#unset_plan in
-
-  let restore_text () =
-    text#delete_text ~start: 0 ~stop: text#length;
-    try
-      text#insert_text ~pos: 0
-       (Hashtbl.find schedule (date.year, date.mon, date.mday));
-      ()
-    with Not_found -> () in
-
-  let update_date_view () =
-    date_view#set_text (sprintf "%d %s, %d\n"
-                         date.mday mon_name.(date.mon) date.year) in
-  
-  let update_view () =
-    update_calendar calendar buttons;
-    update_date_view ();
-    Array.iteri ~f: (fun i button ->
-      (try
-       Hashtbl.find schedule (date.year, date.mon, i + 1);
-       button#set_plan
-      with Not_found -> button#unset_plan);
-      button#focus_off) buttons;
-    win#set_title (sprintf "Camlendar: %s, %d"
-                    mon_name.(date.mon) date.year) in
-
-  prev#connect#clicked
-    ~callback: (fun () ->
-      save_text ();
-      previous_month ();
-      
-      update_view ();
-      restore_text ();
-      buttons.(0)#focus_on);
-  
-  next#connect#clicked
-    ~callback: (fun () ->
-      save_text ();
-      next_month ();
-      
-      update_view ();
-      restore_text ();
-      buttons.(0)#focus_on);
-  
-  Array.iteri
-    ~f: (fun i button ->
-      button#widget#connect#clicked
-       ~callback: (fun () ->
-         save_text ();
-         buttons.(date.mday - 1)#focus_off;
-
-         button#focus_on;
-         restore_text ();
-         update_date_view ());
-      ())
-    buttons;
-
-  update_view ();
-  buttons.(0)#focus_on;;
-
-GMain.Main.init ();
-print_endline (GtkMain.Main.set_locale ());
-flush stdout;
-create_GUI ();
-GMain.Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/drawing.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/drawing.ml
deleted file mode 100644 (file)
index a4623ba..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let window = GWindow.window ~show:true ()
-
-let w = window#misc#window
-let drawing = new GDraw.drawable w
-
-let redraw _ =
-  drawing#polygon ~filled:true
-    [ 10,100; 35,35; 100,10; 165,35; 190,100;
-      165,165; 100,190; 35,165; 10,100 ];
-  false
-
-let _ =
-  window#connect#destroy ~callback:Main.quit;
-  window#event#connect#after#configure ~callback:redraw;
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/editor.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/editor.ml
deleted file mode 100644 (file)
index 5e3da80..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let file_dialog ~title ~callback ?filename () =
-  let sel =
-    GWindow.file_selection ~title ~modal:true ?filename () in
-  sel#cancel_button#connect#clicked ~callback:sel#destroy;
-  sel#ok_button#connect#clicked ~callback:
-    begin fun () ->
-      let name = sel#get_filename in
-      sel#destroy ();
-      callback name
-    end;
-  sel#show ()
-
-class editor ?packing ?show () = object (self)
-  val text = GEdit.text ~editable:true ?packing ?show ()
-  val mutable filename = None
-
-  method text = text
-
-  method load_file name =
-    try
-      let ic = open_in name in
-      filename <- Some name;
-      text#freeze ();
-      text#delete_text ~start:0 ~stop:text#length;
-      let buf = String.create 1024 and len = ref 0 in
-      while len := input ic ~buf ~pos:0 ~len:1024; !len > 0 do
-       if !len = 1024 then text#insert buf
-       else text#insert (String.sub buf ~pos:0 ~len:!len)
-      done;
-      text#set_point 0;
-      text#thaw ();
-      close_in ic
-    with _ -> ()
-
-  method open_file () = file_dialog ~title:"Open" ~callback:self#load_file ()
-
-  method save_dialog () =
-    file_dialog ~title:"Save" ?filename
-      ~callback:(fun file -> self#output ~file) ()
-
-  method save_file () =
-    match filename with
-      Some file -> self#output ~file
-    | None -> self#save_dialog ()
-
-  method output ~file =
-    try
-      if Sys.file_exists file then Sys.rename ~src:file ~dst:(file ^ "~");
-      let oc = open_out file in
-      output_string oc (text#get_chars ~start:0 ~stop:text#length);
-      close_out oc;
-      filename <- Some file
-    with _ -> prerr_endline "Save failed"
-end
-
-let window = GWindow.window ~width:500 ~height:300 ~title:"editor" ()
-let vbox = GPack.vbox ~packing:window#add ()
-
-let menubar = GMenu.menu_bar ~packing:vbox#pack ()
-let factory = new GMenu.factory menubar
-let accel_group = factory#accel_group
-let file_menu = factory#add_submenu "File"
-let edit_menu = factory#add_submenu "Edit"
-
-let hbox = GPack.hbox ~packing:vbox#add ()
-let editor = new editor ~packing:hbox#add ()
-let scrollbar = GRange.scrollbar `VERTICAL ~packing:hbox#pack ()
-
-open GdkKeysyms
-
-let _ =
-  window#connect#destroy ~callback:Main.quit;
-  let factory = new GMenu.factory file_menu ~accel_group in
-  factory#add_item "Open..." ~key:_O ~callback:editor#open_file;
-  factory#add_item "Save" ~key:_S ~callback:editor#save_file;
-  factory#add_item "Save as..." ~callback:editor#save_dialog;
-  factory#add_separator ();
-  factory#add_item "Quit" ~key:_Q ~callback:window#destroy;
-  let factory = new GMenu.factory edit_menu ~accel_group in
-  factory#add_item "Copy" ~key:_C ~callback:editor#text#copy_clipboard;
-  factory#add_item "Cut" ~key:_X ~callback:editor#text#cut_clipboard;
-  factory#add_item "Paste" ~key:_V ~callback:editor#text#paste_clipboard;
-  factory#add_separator ();
-  factory#add_check_item "Word wrap" ~active:false
-    ~callback:editor#text#set_word_wrap;
-  factory#add_check_item "Read only" ~active:false
-    ~callback:(fun b -> editor#text#set_editable (not b));
-  window#add_accel_group accel_group;
-  editor#text#event#connect#button_press
-    ~callback:(fun ev ->
-      let button = GdkEvent.Button.button ev in
-      if button = 3 then begin
-       file_menu#popup ~button ~time:(GdkEvent.Button.time ev); true
-      end else false);
-  editor#text#set_vadjustment scrollbar#adjustment;
-  window#show ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/entry.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/entry.ml
deleted file mode 100644 (file)
index 30f3c3d..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-(* $Id$ *)
-
-open Printf
-open GMain
-
-let enter_callback entry =
-  printf "Entry contents: %s\n" entry#text;
-  flush stdout
-
-let entry_toggle_editable button entry =
-  entry#set_editable button#active
-
-let entry_toggle_visibility button entry =
-  entry#set_visibility button#active
-
-let main () =
-
-  let window = GWindow.window ~title: "GTK Entry" ~width: 200 ~height: 100 () in
-  window#connect#destroy ~callback:Main.quit;
-
-  let vbox = GPack.vbox ~packing: window#add () in
-
-  let entry = GEdit.entry ~max_length: 50 ~packing: vbox#add () in
-  entry#connect#activate ~callback:(fun () -> enter_callback entry);
-  entry#set_text "Hello";
-  entry#append_text " world";
-  entry#select_region ~start:0 ~stop:entry#text_length;
-
-  let hbox = GPack.hbox ~packing: vbox#add () in
-
-  let check = GButton.check_button ~label: "Editable" ~active: true
-      ~packing: hbox#add () in
-  check#connect#toggled ~callback:(fun () -> entry_toggle_editable check entry);
-
-  let check =
-    GButton.check_button ~label:"Visible" ~active:true ~packing:hbox#add () in
-  check#connect#toggled
-    ~callback:(fun () -> entry_toggle_visibility check entry);
-
-  let button = GButton.button ~label: "Close" ~packing: vbox#add () in
-  button#connect#clicked ~callback:window#destroy;
-  button#grab_default ();
-
-  window#show ();
-
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/events.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/events.ml
deleted file mode 100644 (file)
index 91a9872..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let _ =
-  let window = GWindow.window () in
-  window#connect#destroy ~callback:Main.quit;
-
-  let text = GEdit.text ~editable:true ~packing:window#add () in
-  text#event#connect#button_press ~callback:
-    begin fun ev ->
-      GdkEvent.Button.button ev = 3 &&
-      GdkEvent.get_type ev = `BUTTON_PRESS &&
-      begin
-       let pos = text#position in
-       GdkEvent.Button.set_button ev 1;
-       text#event#send (GdkEvent.coerce ev);
-       Printf.printf "Position is %d.\n" text#position;
-       flush stdout;
-       text#set_position pos;
-       true
-      end
-    end;
-  window#show ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fifteen.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fifteen.ml
deleted file mode 100644 (file)
index efdf51f..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GObj
-open GMain
-
-class position ~init_x ~init_y ~min_x ~min_y ~max_x ~max_y = object
-  val mutable x = init_x
-  val mutable y = init_y
-  method current = (x, y)
-  method up ()    = if y > min_y then y <- y-1 else (); (x, y)
-  method down ()  = if y < max_y then y <- y+1 else (); (x, y)
-  method left ()  = if x > min_x then x <- x-1 else (); (x, y)
-  method right () = if x < max_x then x <- x+1 else (); (x, y)
-end
-
-let game_init () = (* generate initial puzzle state *)
-  let rec game_aux acc rest n_invert =
-    let len = List.length rest in
-    if len=0 then
-      if n_invert mod 2 = 0 then
-       acc (* to be solvable, n_invert must be even *)
-      else
-       (List.hd (List.tl acc))::(List.hd acc)::(List.tl (List.tl acc))
-    else begin
-      let rec extract n xs =
-       if (n=0) then (List.hd xs, List.tl xs)
-       else
-         let (ans, ys) = extract (n-1) (List.tl xs) in
-          (ans, List.hd xs :: ys) in
-      let ran = Random.int len in
-      let (elm, rest1) = extract ran rest in
-      let rec count p xs = match xs with
-       [] -> 0
-      |        y :: ys -> let acc = count p ys in
-                if p y then 1+acc else acc
-      in
-      let new_n_invert = count (fun x -> elm > x) acc in
-      game_aux (elm :: acc) rest1 (n_invert+new_n_invert)
-    end in
-  let rec from n = if n=0 then [] else n :: from (n-1) in
-  game_aux [] (from 15) 0
-      
-let _ = Random.init (int_of_float (Sys.time () *. 1000.))
-let window = GWindow.window ()
-let _ = window#connect#destroy ~callback:GMain.Main.quit
-
-let tbl = GPack.table ~rows:4 ~columns:4 ~homogeneous:true ~packing:window#add ()
-let dummy = GMisc.label ~text:"" ~packing:(tbl#attach ~left:3 ~top:3) ()
-let arr = Array.create_matrix ~dimx:4 ~dimy:4 dummy
-let init = game_init ()
-let _ =
-  for i = 0 to 15 do
-    let j = i mod 4  in
-    let k = i/4 in
-    let frame =
-      GBin.frame ~shadow_type:`OUT ~width:32 ~height:32
-       ~packing:(tbl#attach ~left:j ~top:k) () in
-    if i < 15 then
-      arr.(j).(k) <-
-       GMisc.label ~text:(string_of_int (List.nth init i))
-         ~packing:frame#add ()
-  done
-let pos = new position ~init_x:3 ~init_y:3 ~min_x:0 ~min_y:0 ~max_x:3 ~max_y:3
-    
-open GdkKeysyms
-
-let _ =
-  window#event#connect#key_press ~callback:
-    begin fun ev ->
-      let (x0, y0) = pos#current in
-      let wid0 = arr.(x0).(y0) in
-      let key = GdkEvent.Key.keyval ev in
-      if key = _q || key = _Escape then (Main.quit (); exit 0) else
-      let (x1, y1) =
-       if key = _h || key = _Left then 
-          pos#right ()
-       else if key = _j || key = _Down then
-         pos#up ()
-       else if key = _k || key = _Up then
-         pos#down ()
-       else if key = _l || key = _Right then
-         pos#left ()
-       else (x0, y0)
-      in
-      let wid1 = arr.(x1).(y1) in
-      wid0#set_text (wid1#text);
-      wid1#set_text "";
-      true
-    end
-             
-let main () = 
-  window#show ();
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixed_editor.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixed_editor.ml
deleted file mode 100644 (file)
index 1cde124..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-open Gdk  
-open Gtk
-open GObj
-open GMain
-
-let dnd_source_window () =
-  let window = GWindow.window ~position:`MOUSE () in
-  let vbx = GPack.vbox ~border_width:10 ~packing:window#add ()
-  in   
-  let evb = GBin.event_box ~border_width:0 ~packing:vbx#add () in
-  let frm = GBin.frame ~shadow_type:`OUT ~packing:evb#add () in
-  let lbl = GMisc.label ~text:"hello" ~packing:frm#add () in
-  let lbl2 = GMisc.label ~text:"drag from here!" ~packing:vbx#add () in
-  let targets = [ { target = "STRING"; flags = []; info = 0} ] in
-  begin
-    window#show ();
-    evb#drag#source_set targets ~modi:[`BUTTON1] ~actions:[`COPY];
-    evb#drag#connect#data_get ~callback: begin
-      fun _ data ~info ~time:_ ->
-       data#set ~typ:data#target ~format:0 ~data:"hello! "
-    end
-  end
-
-let corner_width  = 7  
-let corner_height = 7
-
-type drag_action_type =
-    GB_DRAG_NONE
-  | GB_MIDDLE
-  | GB_TOP
-  | GB_BOTTOM
-  | GB_LEFT
-  | GB_RIGHT
-  | GB_TOP_LEFT
-  | GB_TOP_RIGHT
-  | GB_BOTTOM_LEFT
-  | GB_BOTTOM_RIGHT
-
-let get_position_in_widget w ~x ~y ~width ~height =
-  if (x <= corner_width) then
-    if (y <= corner_height) then
-      GB_TOP_LEFT
-    else if (y >= height-corner_width) then
-      GB_BOTTOM_LEFT
-    else GB_LEFT
-  else if (x >= width-corner_width) then
-    if (y <= corner_height) then
-      GB_TOP_RIGHT
-    else if (y >= height-corner_width) then
-      GB_BOTTOM_RIGHT
-    else GB_RIGHT
-  else if (y <= corner_height) then
-      GB_TOP
-    else if (y >= height-corner_width) then
-      GB_BOTTOM
-    else GB_MIDDLE
-    
-class drag_info = object
-  val mutable drag_action = GB_DRAG_NONE
-  val mutable drag_offset = (0, 0)
-  val mutable toimen      = (0, 0)
-  val mutable drag_widget = None
-  method drag_action = drag_action
-  method drag_offset = drag_offset
-  method toimen = toimen (* coord. of opposite corner *)
-  method set_drag_widget (w : GObj.widget) = begin
-    match drag_widget with
-      None -> begin
-       GMain.Grab.add w;
-       drag_widget <- Some w;
-       ()
-      end
-    | Some w -> ()
-  end
-  method unset_drag_widget () = begin
-    match drag_widget with
-      Some w -> begin
-       GMain.Grab.remove w;
-       drag_widget <- None;
-       ()
-      end
-    | None -> ()
-  end
-  method set_drag_offset ~x ~y = drag_offset <- (x, y)
-  method set_drag_action (w : Gdk.window) ~x ~y =
-    begin
-      let (x0, y0) = Window.get_position w in
-      let (width, height) = Window.get_size w in
-      drag_action <- get_position_in_widget w ~x ~y ~width ~height;
-      let (x1, y1) = (x0+width, y0+height) in
-      toimen <-
-       match drag_action with
-         GB_TOP_LEFT     -> (x1, y1)
-       | GB_BOTTOM_LEFT  -> (x1, y0)
-       | GB_TOP_RIGHT    -> (x0, y1)
-       | GB_BOTTOM_RIGHT -> (x0, y0)
-       | GB_TOP          -> (x0, y1)
-       | GB_BOTTOM       -> (x0, y0)
-       | GB_LEFT         -> (x1, y0)
-       | GB_RIGHT        -> (x0, y0)
-       |  _              -> (-1, -1) 
-    end
-  method unset_drag_action () = drag_action <- GB_DRAG_NONE
-end
-
-    
-let to_grid g x = x - (x mod g)
-  
-let to_grid2 g (x, y) = (to_grid g x, to_grid g y)
-
-class fix_editor ~width ~height ~packing =
-  let info = new drag_info in
-  let fix = GPack.fixed ~width ~height ~packing () in
-  let _ = fix#misc#realize () in
-  let fix_window = fix#misc#window in
-  let fix_drawing = new GDraw.drawable fix_window in
-
-  object (self)
-    inherit GObj.widget fix#as_widget
-    val mutable grid = 1
-    method set_grid g =
-      if (grid != g) then begin
-       let pix =
-          GDraw.pixmap ~window:fix ~width:g ~height:g ~mask:true () in
-       let c = fix#misc#style#bg `NORMAL in
-       pix#set_foreground (`COLOR c);
-       pix#rectangle ~filled:true ~x:0 ~y:0 ~width:g ~height:g ();
-       pix#set_foreground `BLACK;
-       pix#point ~x:0 ~y:0;
-       Gdk.Window.set_back_pixmap (fix#misc#window) (`PIXMAP pix#pixmap)
-      end;
-      grid <- g
-
-    method new_child ~name ~x ~y ~width ~height ~callback =
-      let evb = GBin.event_box ~border_width:0 ~packing:fix#add () in
-      let lbl = GMisc.label ~text:name ~width ~height ~packing:evb#add () in
-      evb#misc#realize ();
-      evb#misc#set_geometry ~x ~y ();
-      self#connect_signals ~ebox:evb ~widget:lbl#coerce ~callback;
-      ()
-
-    method private connect_signals
-      ~ebox:(ebox : GBin.event_box) ~widget:(widget : widget) ~callback:cbfun =
-      let drawing = new GDraw.drawable (ebox#misc#window) in
-      let draw_id = ref None in
-      let exps_id = ref None in
-      let on_paint _ =
-       let (width, height) = Window.get_size (ebox#misc#window) in begin
-         drawing#set_foreground `BLACK;
-         drawing#rectangle ~filled:true ~x:0 ~y:0
-           ~width:corner_width ~height:corner_height ();
-         drawing#rectangle ~filled:true ~x:(width-corner_width) ~y:0
-           ~width:corner_width ~height:corner_height ();
-         drawing#rectangle ~filled:true
-           ~x:(width-corner_width)
-           ~y:(height-corner_height)
-           ~width:corner_width ~height:corner_height ();
-         drawing#rectangle ~filled:true
-           ~x:0
-           ~y:(height-corner_height)
-           ~width:corner_width ~height:corner_height ();
-         drawing#rectangle ~filled:false
-           ~x:0 ~y:0 ~width:(width-1) ~height:(height-1) ();
-       end
-      in
-      ebox#event#connect#button_press ~callback:
-       begin fun ev -> 
-         let bx = int_of_float (GdkEvent.Button.x ev) in
-         let by = int_of_float (GdkEvent.Button.y ev) in
-         info#set_drag_action (ebox#misc#window) ~x:bx ~y:by;
-         info#set_drag_offset ~x:bx ~y:by;
-         true
-       end;
-      ebox#event#connect#motion_notify ~callback:
-       begin fun ev ->
-         info#set_drag_widget ebox#coerce;
-         let action = info#drag_action in
-         let (mx, my) = fix#misc#pointer in
-         let (ox, oy) = info#drag_offset in
-         begin match action with
-           GB_MIDDLE ->
-             let (nx, ny) = to_grid2 grid (mx-ox, my-oy) in
-             ebox#misc#set_geometry ~x:nx ~y:ny ();
-             if cbfun ~x:nx ~y:ny ~width:(-2) ~height:(-2) then
-               ()
-             else (* should we undo ? *) ()
-         | GB_DRAG_NONE -> () (* do nothing *)
-         | GB_TOP_LEFT | GB_BOTTOM_LEFT
-         | GB_TOP_RIGHT | GB_BOTTOM_RIGHT ->
-             let (toi_x, toi_y) =  info#toimen in
-             let (mx, my) = to_grid2 grid (mx, my) in
-             let (lx, rx) =
-               if mx<toi_x then (mx, toi_x) else (toi_x, mx) in
-             let (ty, by) =
-               if my<toi_y then (my, toi_y) else (toi_y, my) in
-             let (w, h) = (rx-lx, by-ty) in
-             ebox#misc#set_geometry ~x:lx ~y:ty ~width:w ~height:h ();
-             if cbfun ~x:lx ~y:ty ~width:w ~height:h then
-               ()
-             else (* should we undo ? *) ()
-         | GB_TOP | GB_BOTTOM ->
-             let (lx, toi_y) = info#toimen in
-             let my = to_grid grid my in
-             let (ty, by) = if my<toi_y then (my, toi_y) else (toi_y, my) in
-             let h = by-ty in
-             ebox#misc#set_geometry ~y:ty ~height:h ();
-             if cbfun ~x:lx ~y:ty ~width:(-2) ~height:h then
-               ()
-             else (* should we undo ? *) ()
-         | GB_LEFT | GB_RIGHT ->
-             let (toi_x, ty) = info#toimen in
-             let mx = to_grid grid mx in
-             let (lx, rx) = if mx<toi_x then (mx, toi_x) else (toi_x, mx) in
-             let w = rx-lx in 
-             ebox#misc#set_geometry ~x:lx ~width:w ();
-             if cbfun ~x:lx ~y:ty ~width:w ~height:(-2) then
-               ()
-             else (* should we undo ? *) ()
-         end;
-         true
-       end;
-      ebox#event#connect#button_release ~callback:
-       begin fun ev -> 
-         info#unset_drag_action ();
-         info#unset_drag_widget ();
-         true
-       end;
-      exps_id := Some (ebox#event#connect#after#expose
-                         ~callback:(fun _ -> on_paint(); false));
-      draw_id := Some (ebox#misc#connect#draw ~callback:on_paint);
-      ()
-    initializer
-      fix#drag#dest_set ~actions:[`COPY]
-       [ { target = "STRING"; flags = []; info = 0} ];
-      fix#drag#connect#data_received ~callback: begin
-       fun context ~x ~y data ~info ~time ->
-         let name = data#data in
-         let _ = self#new_child ~name ~x ~y ~width:32 ~height:32
-             ~callback:(fun ~x ~y ~width ~height -> true) in
-(*               Printf.printf "%s %d %d\n" (data#data) x y;
-                 flush stdout; *)
-         context#finish ~success:true ~del:false ~time;
-      end;
-      ()
-  end
-    
-(* the following is for test only *)
-let window1 () =    
-  let window = GWindow.window () in
-  let _ = window#connect#destroy ~callback: Main.quit in
-  let fix = new fix_editor ~width:640 ~height:480 ~packing:window#add in
-  fix#set_grid 5;
-  let setter = fix#new_child ~name:"hello" ~x:100 ~y:200 ~width:32 ~height:32
-      ~callback:begin fun ~x ~y ~width ~height ->
-       (* Printf.printf "name=%s, x=%d, y=%d, width=%d, height=%d\n"
-                     "hello" x y width height;
-       flush stdout; *)
-       true
-      end in
-   window#show ();
-  ()
-
-
-    
-let main () =
-  window1 ();
-  dnd_source_window ();
-  Main.main ()
-  
-let _ = main ()
-
-(* Todo
-   
-   change mouse cursor
-   resize fixed itself
-   remove_child
-   (drag and) drop
-   
-*)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixpoint.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/fixpoint.ml
deleted file mode 100644 (file)
index c33b74d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let rec fix ~f ~eq x =
-  let x' = f x in
-  if eq x x' then x
-  else fix ~f ~eq x'
-
-let eq_float x y = abs_float (x -. y) < 1e-13
-
-let _ =
-  let top = GWindow.window () in
-  top#connect#destroy ~callback:Main.quit;
-  let vbox = GPack.vbox ~packing: top#add () in
-  let entry = GEdit.entry ~max_length: 20 ~packing: vbox#add () in
-  let tips = GData.tooltips () in
-  tips#set_tip entry#coerce ~text:"Initial value for fix-point";
-  let result =
-    GEdit.entry ~max_length: 20 ~editable: false ~packing: vbox#add () in
-
-  entry#connect#activate ~callback:
-    begin fun () ->
-      let x = try float_of_string entry#text with _ -> 0.0 in
-      entry#set_text (string_of_float (cos x));
-      let res = fix ~f:cos ~eq:eq_float x in
-      result#set_text (string_of_float res)
-    end;
-  top#show ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/hello.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/hello.ml
deleted file mode 100644 (file)
index 15ede9a..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let window = GWindow.window ~border_width: 10 ()
-
-let button = GButton.button ~label:"Hello World" ~packing: window#add ()
-
-let main () =
-  window#event#connect#delete 
-    ~callback:(fun _ -> prerr_endline "Delete event occured"; true);
-  window#connect#destroy ~callback:Main.quit;
-  button#connect#clicked ~callback:(fun () -> prerr_endline "Hello World");
-  button#connect#clicked ~callback:window#destroy;
-  window#show ();
-  Main.main ()
-
-let _ = Printexc.print main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image.ml
deleted file mode 100644 (file)
index faf82cf..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-(* $Id$ *)
-
-open GMain
-open Gdk
-
-(* load image *)
-let buf = String.create (256*256*3)
-let ic = open_in_bin "image256x256.rgb"
-let _ = 
-  really_input ic ~buf:buf ~pos:0 ~len:(256*256*3);
-  close_in ic
-
-let rgb_at x y =
-  let offset = (y * 256 + x) * 3 in
-  (int_of_char buf.[offset  ],
-   int_of_char buf.[offset+1],
-   int_of_char buf.[offset+2])
-
-(* let id = Thread.create GtkThread.main () *)
-
-(* Choose a visual appropriate for RGB *)
-let _ =
-  Gdk.Rgb.init ();
-  GtkBase.Widget.set_default_visual (Gdk.Rgb.get_visual ());
-  GtkBase.Widget.set_default_colormap (Gdk.Rgb.get_cmap ())
-
-(* We need show: true because of the need of visual *)
-let window = GWindow.window ~show:true ~width: 256 ~height: 256 ()
-
-let visual = window#misc#visual
-
-let color_create = Truecolor.color_creator visual
-
-let w = window#misc#window
-let drawing = new GDraw.drawable w
-
-let _ =
-  window#connect#destroy ~callback:Main.quit;
-
-  let image =
-    Image.create ~kind: `FASTEST ~visual: visual ~width: 256 ~height: 256
-  in
-
-  let draw () =
-    for x = 0 to 255 do
-      for y = 0 to 255 do
-        let r,g,b = rgb_at x y in
-        Image.put_pixel image ~x: x ~y: y 
-          ~pixel: (color_create ~red: (r * 256) ~green: (g * 256) ~blue: (b * 256))
-      done
-    done 
-  in
-  let display () =
-    drawing#image image ~xsrc:0 ~ysrc:0 ~xdest:0 ~ydest:0 ~width:256 ~height:256
-  in
-
-  draw (); 
-
-  window#event#connect#after#expose ~callback:
-    begin fun _ ->
-      display (); false
-    end;
-  (* Thread.join id *)
-
-  window#show ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image256x256.rgb b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/image256x256.rgb
deleted file mode 100644 (file)
index 25d4995..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-\94·â\95ºÝ\9b±Ï\93­Ð\8f\9fÒ\9f¤Ã\9f¦Î¤¦Ûª¤ÎªªÚ¯\9eפ\95С\99Ô±¬â­©Þ®§ç\9e®Ð\9a¶É\94¸Ë¡¶¼¥®Å¢³Ó ´Îª½Æ¨¼Ó¬·Ó¶´ÏµÀÆ´°¼¬¾À·³ÄÄö¾½ÂÇÀ¼¿½·ÆĹÑÆÁÂÏ·ÃÌÅÍÉÙ¼ÍÓ¿ÊÁÆÏÇÄãÍÕßÏØÕÍÎÜÌÇãÑÑâÙÔ×ÚÈâÈÔÜÄÌØÈÒÒÇÍ×ÃÅÛÁÍáÇËàÊËêËÚð½×ïÅáíËÞõ¼ñø¿âã·Úæ¾ÜÙÈáâÅÜÙÃÖ×®Ö̳ÞȱØÉ·ÍÔ²ÑØ«ÑÑ¡ÎÍ\8eÒÜ\97ÔØ\8càÍ\91ÖÊ\8fϼ\83ɼ\88μ\88ÝÁ\90ÔËzãÇwØÉ\80ÚÆ{âÎ\7fçÓ\89Ý×\85á×\82ÖÜ\7fÓÞ\8aÙÔ\93ØØ\8cÓØ\82Îá\86ÎÒ|ÛàsÓÛzÞ×ráÙyàÔs×Üi×ØgäÆkåÑoÜÏ_áÍdàÈR߸C׸?Ö´GÙ°WÚ°Kç¸EÚ·YÜÊ]ÞÂOÕ¿;Ù½@ÞÃHâË9íÇ<éË@ðÇ8éÉAè´@æ·AòÌ9ÝÄ7é´@ܲ?Þ½Eä¯CÙ²RάLЯPÒ¡RЩ]̨RÀ¿UÀ²XÉ©FÌ´JϱPŹFËÁJÄ¿FÆÄQȼDÒ°OÔ­DدHÒ³PѵPɶYÐÄ^Ë¿WÙ¬PÎ\9e[ѧWتOˬWͨYÍ\98\9ddØ£ZÌ·XÁ°EŹPε\Ï®N½»T½³Y´ÃY¶¸N¹¶D°³S±¨Y«¨Mª¬U¦¬[§®@ª®T ¯M¥¢M£\9e\9c\91\91\8f\8c\8f\85\97E\9e\90\90\96R\9d\98X\9f\83[\91\86Q\9a\82S\9a\91R\99\87\80\80T\9c\87J¢~Q\9c~C\96tO\94iL\95rS\94tN©lPªoJ¢zT¯pB¥qI\9e[M lC«gC¤lD±cC³YTÁSI¸OQ´IBÀIE»ZK»OE¸QH°WU¬TK«QG¹VK®TGºV?¬MD¶Z[¾MGÂUK»ZK²QO½NX¸JZÁHP³KV½J[¼ESÀF]Ä@WÆ;VÆ;\\8f·à\9a´Ù\97«Ò\94¬Õ\99 Î£¥Ê¥±Ë¡­Ø¤«Ñª«Ù¬¤Ò¦\9bѯ\9aݬ ×«¦×¦§Û\9b«Ê\9e¸Å\97®Æ ²À§¾Èª¹Î±¾ÅªÀÆ£Æ˨Á͸¹Ç½¼½¾·¸®²¼½µ»½Â²¼È³ÄÄÀÍ·ÂÌ»ÀǽÀÂË¿ÁÀÃÁÃÑÌÐÍÅÐÉÈÞËËÞÀÓßËÐØÌÇäοáÔÄÕÖÒÚÑÍÐÎÑÓËËÑËÐÑÒÆÖÇÄØËÓÙÄÑÞÊÙèÉÛò½á÷ÃÛîÄãö½ëõ¶èé´ÚáÁåݸáá¾ÜØ»ÞׯÓ˳ÒƸÊɳÏÑ°ÍÈ£ÇÍ\9dÆÖ\99È×\8fÎÆ\96ÙÅ\8cÔÂ\95ÌÅ\8fÐÊ\96Ͼ\8fÌÈ\8aÚÏ\83äÉ~ÝÆxÝÆzè×\83ãÖ~ßà\85ÙÜ\81Ùß\88ÑÛ\8cÑË\8eÎ×\91Ï×\85ÎÕxÓØyÙÏ\7fÙÔzÞØnßÚmÔânÙØmÙÑfèÓpÚÕmÝÉjèÂ_ã¾Oç·Oä¹IزUÓ¯VÙºQâ»Kß½MÖÈVÓÁP×À@àÁ>ä¾=ðÀ;ñÌEîÒ8íÌ4êË@ïºDêÀCëÄ4íÄ9ÝÀ8ܹ?æ´BÝ«RݧPѲIË®SØ®QÔ¤\ϵQõUϯLÏ«PβDĵDƶ?ηHÒ±RɺKDZRÏ·K̼GЯHÒ¶HÌ®V׿\ÖÀRÛ±XѨUÐ\9f[Æ OÀ¤YɬTÒ\9d\9fSÛ§PÕ®ZÔ´WƱIʺLβZÉ»bÅ´Z»¸^±¹U¹ªHº¬D±ªAª¨I±­U°®Q­©Q \9cG¨¡Q¦¤J¤\97G\9d\98\8b\8b\8e\8a\84\8c\99\95\92\94\\9a\96Z\9b\94\8dR\99\80S\9c\81Y\9b\83\80\87R\9bzL zW¤x\¡\7fP\9cqY\9amR\9boP\9brS©oN©lI\9fvG¦oL\9faW\99]T¨fL©jD³n=¶bD²\C»^I´OR½HJ¸HH¿RFÆJG¼EV²SI«XH©TL´LO¾MBºU9ÀU@·VO¿MAÄUAÃVI·ML¼LV³H\³GZ·PTÂKZ¼IUÈMTÈ@Y½ARº9V\93°Ù¤ºÙ\91«Õ\8b©×\99\9dÐ\9f¤Í\9f¦Ñ®´Õ²¦Î¨¤Ð´¤Ô£¥Ï«£Ø©«Ø±¢Û¯¨Ð¬¹Ô¢·É¢»Å«³Ã\9bºÁ¡·Ð¦ÂÌ©ÄĨ½À©ÉÏ°Èɶ»¸³¼¸½º³³¼°¶Ã²¼Â¸¸Î»ËÇÿĺÏÅÄÃÎÁÂÀËÈÇÐÒÃÈÌÌÄÔ×¾ÇÑÀÓÛÌÊ×ÔÃÏÑ¿ÙÑÀàÓÊÙÎ×ÒÊÔÖÎÍÚÎÑÔÜÈÐÉÁÓÓÔÕÔ×èÈàæÍáêÉßô»ÚóÂÞî¶êõµçñ¸åëÅÚé´àáÀáݳÛÛ©äÙ«ÒÇ´Ôη×ĹÉ΢ÐÅ\9eÓÑ\94ØÎ\93ÏÑ\95àÐ\8cÔÂ\8aÒÂ\88ÓÆ\82ÔÀ\87ÙÄ\82ßÈzÞÉ|äÌnÛØwíàuèÚuÕêzÜâ\86ßÒ\86×Ñ\83Ñ×\91ÙÓ\89ÏÎ\8aÓÍ\87ÓÖ\83ÜÔsåÚ\80ßÏzÚÞjàÐqæâ}êÛlèÏuéÊqÝÈ[áÅ^àÊLÞÄIÞÂLÕ¿Tà­RÔ»RæÉXØ¿X×ÄIãÀFåÃJåÁJíÈIíËD÷ÉHõÈ:ëÕ9ôÂ9ö¿Fä½7îÇ7á·2áÆ?ç¾FæªKàªWÞ TÒ­VÒ­LÎ\9e\9d^Ò¨Pö^Á§O̳T϶KÏ´MʼBѼIÖ»Kʱ?̯JÕ¯?Ë­FÚ¨Kׯ?Ú¦BÜ´NݲSß°K΢IÏ¥NͪNÆ®OÒ¯JÕ¦LÙ¨IÍ­NѱRŶT·RÄ´O¾º^ǺSÁ²Zµ»Q¯²O·©@¿¡G¼¯9°¤?¨ª<²­F¯¥A² E«\96B¢ E®\95\9a\89R\9d\8b\95\91\87\92\8a\8f\90\8fX\99\8c\97N\9b\93Y\97\8a\89\8f\90X\9c\86\\9f\81Y\9c\87\83M\93zV\99}U\9cwZ\98iM\92jR¢lU dJ qV¡kP£]L\93W_£`W iLª\M´YT³\O´PQ²RSÂJJ¹DEÂGD·MT·EI²FU¦[O¤GR­BN±MHºJCºZ<°_CÄ]<ÊNBÇKEÁTK¿O[¶N\ÃLMÂGOÃGPÃDWÇJLË:YÄ8Pº4\\98²Þ\9d³Ý\99²Ô\92¢Ð\9aªÙ¡ Ûª¯Ý­±Øµ©Ì³£Ð·«Ñ®¦Ó¶¥Ù´©Ô±ºÈ±¹Ë®¸É±¶Å¨¯Í¦¹Ë\9d¶Ï\9eÁÅ¡ºÆ¢»Ä¬ÂħÇÆ«Ì»¸¿¶½»¼½¾³º½³´Â³µÌ¹»ÈµÂÑÀ¿Ì¹ÍÀ·ÎĹϼÁÓÅÍ×ÅÍÔËÌÒÍÃÍÈÄËÃÔÂÌÖÄËÖÅÛ×ÌÙÏÎÝÑÐÙÌÉÑÏÍÚÛÁ××ÍÐËÈÒÍÍ×ÔÛçÍÖðÂÝéÃáîÁáñ·Úì·áëµìè¾ìè½ãæ¸ãÛ´ÞÔµáÛ¯ÝÔªÜϯØȵÖÆ°ÎÀ´ÒȨá̦ÞÄ\92ÝÎ\8b×Ê\8bÏÏ\92ÐË\8aÖÅ\85ÕÇ\7fÐÒsØÒpæØqä×tåÑtá×vßäuÙâuÕÚnßÕwÒÚ\81ÔÑ\86ÒÌ\8bàÌ\80ä×\82ÜÑ\80åÐ\81àÓwæÍ{âÕvâÝ|ìÚ{ïßyéÛoÞÜbâÔYêË\àÅWá¿TÛÀUݶSÞ»NÜÃHÞÆS×ÉVÚÁIáÂPê¹EåÆ@ëÆHõÈN÷ÅBíËHòÐCêÓ?íÆCéÊ=å¼9æ¹5ã»Bæ°IÞ®NÔ«\Ó¤YÚ \Ó§UÌ®YΣQÒ¡^ɪ]ά_ëXŲPÉ·Jз@кDÖ³HÒ¸DÌ­>̬AÍ®:׫AÓ­7ݦ;ÚµGÙ³JÜ®RØ­IϬRÇ­RÒ«JÕ²HÒ²SÔ¨NЫKÖ«MѸWÄ·P¼ÃV¼ÄY·ÇO¾¾PĽN¸µF³­<³¡?­©:·¦9·¡:±\9e\98Aº¢7µ\93\92\93\8a\8a\8c\87\92\94\94\92\90\94Q\9e\94X\92\8cW\94\93W\95\8fT\99\84\8e\91\8bd\9e\8b\88\89O\9e\8aS\93zP\96\83P\93zQ\94sS\97jJ\8fsS\93lV\9bhW\9c\Y\97b\\9bWY\95SY\9d]R¨RT¯RU®PT´MM¶KN½DJ½GMÄFL¶MN®HF¥KOªMU¯DG§EI¤GG®NCµMI·Y=´S@¾QD¼QNÉTUÅNZÅSUÀTXÀCJÀ>IÉCPÊIYÊAQÁ4\¿.X\9e·Û ¶à\92³à\97ªÎ¡¤Ö¥¦Ó¢²Ô±¦Ó¯©Õ©°Í¢­Ô©®Õ¥£Ó§¦Õ«±Ì¯¸Ã¯»Å°ÀǬ»Ä¥®¿¦¶½¬À¾¥´É¨º½¡½Â¬Éƶ¾½ÄË®¼º­ºÊ¶»Ã´µ¿²¾¸°¹Æ·¿Ê¬¼Ë¶ÄȮøÓü˾ÇÔÏÌÜÅÅÊÊÂÃÃÆÇÐÊÏÆÒËËÒÊÏØÂØÌËÖÒÐÛÒÀÛËÊÐÐÂÈÕÎÚÑÎÞÃÏÛÌÞâÌÏçÊÙèËØñ¿ãï®ãò³àë½äá¿Þí¿ßß·äÙ±ßÙµéβÝÒ³ê̲ÞÄ­ÒÍ­ÑË\9fÙÍ¥ØÆ\9fÙÄ\92ÞÂ\95ÐÒ\8bÜÓ\88ÍÐ\90ÖÆ\89ÑÊ}ÍÖ\7fÜàqÕßtÞÙsèà|àä|åÙtÝè}àár×âvÑÚ}Ú×~ÓÔ\83àÖ\81ÞÓ}Üà\88ÔÖ}â×qá×oßÓpíâ{èãzêáwïÛlçÓaÜÖaÚÓWÒÊdÞÃ`Ó¾_áÅRãºKÖ·Kæ·UÛµGéÇGæ´Hã¹Iä¿CãÂLîÃIéÊEçÉMíÑCéÂ@èÈJí½AÝÅDâÁ<ç±JåºBÚ©DÖ²OÚ­PÞ¬[Þ«OϦSɱQÌ°Z¿¨gÀ§UDzYDzRɲKʹPÑ¿?×·?ر7ϸ?Á¡@Í¥?Í«AÕ\9e@Ôª4Õ­Iß­HÖ·CÌ´LͦQÆ®[ȪVƪFÐ\9cGʧIÓ\9eAͨHõM¿¸KÀ¶NɳMŶQ»ÄBÁ·?²µB¬­=ª¨<² ;µ£2°¤<¢:¼¥=¼\9d\9c\97\8d\96\87\95D\9e\8b\8a\96\91\92\97\98K\97\8dU\94\94W\97\93R\90\92`\97\83[\98\8f_\9e\91b\8f\93]\9a\99M\9c\86W\9f\8aT\91\88U\91yW\9dtM\90yP¡rK\9cmN£aR¡^Q\96fV `Y\9aZW\94Z]¤]Q©cL¨TU´QL·MW°QT³OF²OS³UK¿OX¼ET°JU¸HZ®JW´FY¬<S«BR­KI·F<½RJ²YHÀRQ´KOÇOV¼KKÎSTÉLN½>NÁ=FÍ:TÁBTÌ;ZÁ6[Ê4Y\91Â×\98¼Þ\9d±ä\98¦Û\97«ß\9a°Ö¢´Õ£©Û¡µÙ¢µÒ£´Ï¥¨Ë«³Ñ¡°Ó¬¸Ó·¼Ç¯·Ä¡¼Ì\9b²È\9d´Ä©±¿¨¿¹°·º©³Æ³¼º«Æµ»Å­Ãȱ»Ê«¼Æ«½ºµ³¸¶¼Á²´½³Ä®ȿ¬¾Ê±ÄÆ·Áº¹É¾ÌÖÊÒ×ÐÆËØ¿ÉÎÄØÐÅÕÅÎÕÆØÌÌÑÍÐØÆÙÏÄÞÆÇÕÂÑÌÅÐÊÕÌ×ÎÃÜÀÔß¾ÔàÌÙëÏÒíÉÜî¹Úã±âç¸Ýíµåä´àã¸êá¬èß«ïÖªéÌ«àѧçÏ©äʨÙÆ\9bÚÄ\98çË¡àÏ àÉ\91ãÎ\92ÙÍ\94ÓÔ\9bÏË\91ÏÑ\8dÓÒ\83Òá\83ÕÞ\7fÛæ\87ÞÜ\7fØá\80ÚázÞßpßìv×ëwÙÝ\85Üá\87ÓÕ~Õ×\80ÒÕ{ÔÛ\88Öç\87ÜîyÖç{åé\82æàxàäyàÞyçãyïÚqìÕnßÔlÔÈdѾcÕ¶hÔ»^Û»XÖ»SÙ¾XܱLä²Jë¿Lì´Eå¹HàºMâÌMäËQçÏIñÏPìÑHäÄMìÃAæÁ>ãÂAàÄMà¸Hå­LÙ­?à´RÕ¯XÓ®UÙ¬VÛ¦cÍ®_˹`Áµc̳`ѨKʪDиIÔ·DǵIʳIж:³C¢JÅ¡RÒ£IÕ¦Eʨ=ʬLÖ¯QѪCÆ®FÆ­DѧRÄ¥IÄ\9f\99\9a<̧CÆ­;êAɯ9ʨ7ƲF¾·MþEÀº?¶µ4º°3±§1±\9f\9c\91\97\9f\9d\9a\8c\95\95\9a\90\93\8a\88\85\85\91\98G\9d\8eN\96\94X\99\8cU\95\84P\9b\88Z\93\8dY\91\83S\8f\8fK\8a\95O\8e\94F\9b\8fM\96\84L\91zY\92yZ\9dyU\9eoW\9feW¤ZR\9f]M\9aiF\94dI\99TR\99Q[\9bRZ¦XP®^LªXM§[TµTJ±MS²UR¯\XµYW±Mb½H\¸O^µMW°?\­?R´CM¹EG¸DD¸OH¾QW´JW±PO·KWÆHNÈLNÌHH¾FSÇJWÇ@OÁ1`¼/`Â6UÌ,P\92Æá\95Èà ¿×\9a¸Ù¡¸Ú\99´ä¥²Ï¡©Ú©³Î¢¼Ò\9b³Í\9e¨Ï¡¯Ð¬´Ï¦½Ç®À˧ºÊ\9d°¿£µ¹ µ¼\9d¼½©¾½ª»Å³¯»°Æ²¬À¸À¿©»¿´Ã¿®¿À©¯¼±ªµ©³Ä¤¹Ã©¶»ªÈĢ¹¯¿½§Ì¿²Æ½¼ÖÉÊÜÐÅÏÓÆÎϹÏÅÃÞÎÃËÌÈÉÍÎÇÌÉÅÇÏÉÈÓÓÒ¿ÇØÌÒÐÍÒØÍÇÏÄÔÙÇÚÖÉÛãÀÙâÀÕÙÂØà½×è¾ßë½êݵÝÒ¹äÛ´ëà®éÓªäÄ°ìɱèȲáѧéÁ\99àÈ£îÇ\98åÖ\9eæÖ\8eæ×\93ÓÒ\90ÐÓ\93ÉÑ\8bÔË\8bÒØ\8fäÝ\8açÚ\85Ý×\82êç\83çâyëç{äé\7fäæuäã|ÙÛ\82Þâ~ÍÞz×ã\89ÑáwÐÝ\84Õå}ÒæwÕçsÛêuãåxâàpÜæsÞÖnîÕjç×màÎfáÑ_˾cÔ¼eÙ·^ܳ`Ô³Qã¶QܶNæµTåÁRè½Uõ½FëÁJêÒLðÉKòÖTòÌAáËLãÈDèÄJéÆHãÄ@àÇKÞ´Kè²Hâ´CÖªIÝ°PصTß­V͵ZÉ©dͶ`Ĺ`̳^˦SħTβN³NÀ©JÊ®D̸EÁ¢HÆ\9f>É«>É«Lϧ@¾ @ЫAÖ«DÔ·HϸOÊ­@Ò£KÍ¡D˨EÇ\96\9b7Ǫ?­8Á¥>Dz1ǵ:Á´;º¼Cº¹>Á²@²¾,µµ5·´'·¤/Ã\9d\9b8 /µ\97\98\9c\88\94\9a\97\94\89\87\83\84\90\91\89E\9d\99\92\8aV\99\83T\99\8bV\8f\87V\94|Y\88\91X\87\8eW\8f\91Y\92\89L\97\8dY\98wb\9at\\92uS\95jW§mW\95eT¢dS\8fXU\99cA\91aF\9bSH¥VV¨JM£LM³WN¯XNµK\µJKªRU¨WN»_T±]O¸LY·GVµSK½JP±HD·AH¼?E·@H¯MV°JO»TR¿JYºFN·GYËKVÇ?WÂ:ZÇFNÊ@\Ì>ZÍ/ZÉ4TÑ4Q\90ÄÞ\90Âã\90»é\9e¿ã«ÄÚ©¾à©¬Ö§ªÍ§¦Ô ²Ö\9e©Ó£°Ó¤­Êª³Â­®Â¬´Ã¡µÄ¤±¶¨«¼©³»«¾Å¥ÁÀ©Å´­»´®½¹¸È­·Å§ºÄª±Ì¢²Ê\9e´¼\9a²½§³Ä¡°¼¡ºÃ\9fÁ¾§¿½­Ç¿¦Æ½®Ð¾¸ÍdzÙʾÏÑÀÕϸÐËÁÖÉÈÙÒÅÎÉÉÑÈÕÒÃÐËÍÌÔÎÉÙÑËÒÏÏÍÑÅËÓÈÑÛÀØÜÃÞã¸Ùà½àØÀÚÖÁáâ¶ßÞºáÓ½éÒºìÓ±ìÑ®èÔ®ìǦöÊ®ðÒ®õΩíÉ¡öâðÍ\92öË\99î×\99ãÏ\99ØÒ\8eÎË\90ÓÕ\90ÜØ\99ÛÝ\93ìç\90íá\81çè\87ìâ\80ðå|ôä\83èá\7féè~àézÝßyÕØ}Îà\87Çë\82Íå\80Ïæ|Øëzæå}åàoâèqìãsíápáßoéÜgêÍiâËfãÄZßÏUÖÊ_ÜÂbÔ¿]Û½\ÞºXå»ZßÁRê·[ð·Xí¼Q÷¾QóÉNîÍWêÈTôÐQåÚAçÓBåÑDðÌLïÏLíÍHç¿?êÁDݹ<à¯?å²<æ°Dè·NÝ·Yà¶YÓ§`ʲcƬa̵R­QůLƲGÍ©DÊ©F¼²K»©D½¨9»¢;º­D§CÈ¥DÀ¨@Å¥AϱFг>Ò´FÑ·BÈ©Cë>Ǥ5ʦ8Ä\9e<º¦@¼®7©5Ç­7õ,¿®0¸¸5¸°6º¯.²¹-¶µ/¼°+¹ª/Å\9c\9f\9b2¿ 6¸\98\98\90\95\92\94\8a\8f\8b\85\86\8c\8d\8d\9a\99\91\8dH\9f\89N\99\82R\8f\86Z\84\8aS\88\8dW\90\95b\99\8f[\9f\91U\99\85Y\94{\\93zW\9fnN\9dhT\9di[\95_T\92`G\97\I\9b]G\99VF\9bSG§MR¬P\³K[¯EX¬I\¯DV¦HS°M`µZ[½RM³[J­NPµINµLD¾AF²@E³BOµ=O¬>Z¨L^²L[±DX½JQºNTÃHUÁ@P¼>ZÃE`ÆC`È=^Ï4ZÊ)`Î+[\9d¹å\94ÃÐ\92¸Ø\9e´â\99¹ß«·Ð§­Í­¬Õ©­Í\9c®Î\99·Ú¦¬Ï\9d«Î£¯Í¡²É´µÄ¬­º©¸½¥¬Ä©»µ ¿À\9e¶²§²® »´±Ã±±Ä³³¼¦¼½«´Ä¤²Á\99¨½¤«¿¦¨Á­²Á¡¿Ä£¼¾£º³¶Î·®Å»»Ò¾ÂÕ»»ÚÉÀÐȾÝЭÓÌÀÛÁÈÑÆ»ËÀÈÕÊÊÍпÊп×ÙÁÑÏÎÈ×ÎÒÊÉÁÙÄÅÙ¸Ñ߸Ëå½Ûà¸Ýá¼ÔàÈÕÖµÔî¶àÙµëÉ»äÍ·ïÌ«åÏ°îÍ«òѦ÷θëË®ñÉ\9fðÆ\99÷À\98éÏ\99çÜ\8cÞÐ\8eÖÒ\8dÞÍ\88ÑÕ\87ÖÌ\84ÞÜ\85ÞÒ\8bêÞ\80àÚwæè{äê\86ñî\86ææ|ÞÙ\84ÛÙxåæ\88ÜÜ\82Íæ\85×é\87Çâ\86Ùè{Óò{Þéx×ãvÞâjîáiéånÙÛiÛØeßØoæËkßÊ]ÖÒ[ÚÅgÛÈcѶW×¼WÕ»`ã¶Ué¾Rì¾NéµTì¾UðÁMúÇ^ïÐ`öÆSïÑMìÆBóËKóÍ@îÎCôÉEë¿Gç¾Må¸EÞÃ@ܳ>ä°Háµ<Ù®EÙº\Ó±`Ô­YÔ«^È¥eÉ¡aÁ SƦQ»·C¬HÇ\9eG½«G°£<·¡D¿\9d?¾¤9­C¾¬H»¤E»­<ŪJŬ>ų=Ê©KȬC¯A¸¢2¾ <Ç\996¾¥5Ŷ5Á±:Ť8˧1È­2½¤:¯§9´«0³´*÷$¸¸&¹¤.Â\9a)É£1Ê\99\9f\96<¿\9c\9a\8b\8e\82\84\82\8a\89I¯}F®\91\8e\96\9bU\9d\9a\8bN\92\90U\99\84H\8f\8dR\8b\85\\8f\92Q\86\8fO\90\93Y\93\87\\9a\80e\93\7fd\9c}W\9cpU\9dnb¨t_\9bo_\9cZX\97[[\98`P\9bUI\99PI¤KQ¦HZ¦U_¬Dd¨JY¦IS¦U`£UU¦W^©S[³YV°XH¯\F¨HJ¯CC¶@@°:H·?L±@PµJS­EO¯KYµH_³ATÄB]ºLZÀDZ³>VÄ:ZÀB\Ð1UÇ3SÑ(SÏ2Y\90¯Ò\95¹Í\92·Ý\9fµÞ¥±à\9f¯Ñ¢¯Ø£´Ö¨«Ø\9c«Ô¦±Ð¥­Ñ¡³É¦»Ê¨·Ñ«´È¦½Á¡´È\9b²·¤¼·\9f·»¦°³¡½µ¤º¨«¶²¨²­¶»«½Ä¯½¾\9e·¹\9e³Áª§º¤©¼±µ¼²¶Ä¯²º­Á¾ºË°»Ï²ÈÒ½ÄÌǺӿ³ÛÁ«ÓɲÊǯҺ¼Ô¼ÊÇ»Ñ̳ØмÒÒÉÊÔÄÅÏËÎÔÈÌØÆÈÒºÏÔ¶Ìã»Èß®Ñ×®Ëá¹ÐÚ¾Ûç¶Øí¾ÛÚ·ßаÜÖ©èÕ­äͲäÒ§äØ©ôÔ´ïÕ¤ñÊ¥íÌ¢ðÄ\9dåÄ\93åÒ\89âÐ\92âÄ\89àÅ\84à×\81âÖw×É}ãÊzâÖwäÜ|àÝzáß\83âì}åÝ|äÚ\7fßß\86Ûâ\8aÑà~Ðá{Îè\85Ñð\86àô\88Ýê\84ÞïzÚãréäxæäpÞäsâÓqáÔpÛÙjÝÞ\ÖÓ^ÐÍdÎË]ËÃ`×½WѵSؽ`á²]ïµ[ï­Xð²Mý·MøºOó½YðÁaðÉYãÌDçÔHñËBðÎCïÎHäÍKê»Páµ@æ¼=è·7ã½=Þ¸Dä¬CÙ­QÒ¯Uί^×¹_Ô³l˦hΪ`Ǥ^¸©O·®L¹¨H· N¸ C¯©C¶ H¾¡?´§Bº«E¹®B¼£B¿±DůE»°F·¤>³­<½¦IÀ®9·¦7¹«=Â¥A¸±7¿¬9½¤.Á«1¿ª8Ħ-½§6µ¨6º£2À¨5ʪ$ð"ɨ+¾§5»\9e\90\96\98\96\92\91\8b\86\82\8b\85?¯~C³\85\85\90\95\97S\93\9dY\91\95V\97\83S\94~G\8d\8eT\97\8cX\97\92V\95\96Q\8c\86[\90\84[\8ez[\87wa\97pb\9eta\9dq`¡wa¨wf\9ff^¦bW£gQ\99V\\9aS[\9cQ^®SX¬Qe«Id©K_\9eS[¥][°ZW©a]¬Z[¬^U·XQ°ZF¦UE­HI¤FB¥=E²BL³;S²DL¹DK³LS±MX·BZ½FQ¿DT»4X¹5Rº?[Ç9`É.fÁ0\È-^É*Z\96¼Í\95·Ô¦ªÕ¡­Ù\9b¦Ó¡±Ë¤±Ó\9f²Ù£°Ñ\94±Ë\9f±Ï\9c³¿£±Æ§¼Í¬³Ç¯ÂË­¾Ð§ÂÕ£³Ë£½·¦¹´¨±· µ±£¾³¥¼¥\9dº¤®µ¤²·¤·Á\9d¶¾©¶º§§Â\9a¬´¢½²¥¶°¶½¹³Áµ»Æ±¿É½Åʶ¿Ë²¶Ö¸°Ð¾°Î¸ѹ®Ó°ÃÚ¶³Ì»ÀÊÅÃÇƺÎÖ¿ÐÑÉÌßËÑâÍËÖÅÍáÂÑÛµÏá¼ÑÖ·ÌÜ®ÍÏ®ÞÓ¿Ùç±ÙêºãéµçܨâاÜÒ«àÙ­ëݯãÎ¥èزôÕ¤äΠçÒ\9fíΣéÁ\8fêÆ\8bèÅ\81æ¾\86ÝÉ\7fæËzÜËwÜÅtæÓ|ØØtÛÜxäÝsàà\7fàâ\82äà\85äÙ\86×á\82ÑàwßáxÌé\7fÓç\81×éwâå}æð\88êá\7fæÜläâpêßjáãpÞÛlÖÓhÙàjÚÏdÒÑYÑÌhÉËZÖÏeØÁ[æ½Và±að»_ø½U÷´Rè»Uù»V÷ÃRù¼OïÆ[éÁTáÎ?åÌ<èÑ>éÎDáÐGçÄ>æ¿Bâ»FÛ¶BêºEܼ?ë´Dá®B׫DÙ«SÓ¹OØÄXϬ`ħjÍ«fÇ£bÀ¦Z³¢L´©Qª\95W©§Dª¦L¬\9bA°¢D½©G¼«KÁ¨M¡<ű<Ç©7µ­G°§<À£I·¬O½§?®°6¸¨1´¦B´\9f2â4½¥.¾«2²§0±³-·±:°«:¯«:µ\9f3¼¨1Ç£ Ä­&¿¤5Ä\95\96\90\8d\92\8b\91\91\83\8a\89\87\8b\89\84\92\97L\9b\94Q\90\8dQ\8c\8dN\8e\89V\8f~G\92\8aL\8b\89W\8f\8dP\95\90S\94\8bI\8f\8eM\8cy[\91\80[\8at^£rd¥te¤w_§z`\9fe^¨b\\9b^a¥W_­Sa²Nd­O^¥Wd¡Vh¦V] [_¥RV\9fO^®Vb­[\±PL£RH°SO¢YD£G@¨GA²HG´QPµDF±GJ¯DQµAR¶JSÂ;V¶=QÁGPÄ<X½*TÅ9W·6a»*U¸'^Å-PÏ,Y\98­Ü¡²Ó¥§Ö¤©È¦¨Ç¨«Åª¯Ð\9e²Ì\9a¯Í\95µÅ¢ªÄ ­½\9c»¿\9d¾Ì¢¸ÕªÁѬÉÌ«ÂÓ´¿È¬ºÂ¤½¼­¸¯ªº¶¢·±\97µ¬\9d¹©¡¼\9f­¹£§·¨±·¦¬¿¨°¸\9f¼¹¥¶¯£¿´´¸®·À«Æ˯ÄÆ»ÃÌ·½Õ¬Âά·Ë°²Ï¶³Óº®Ø¶ºÐÀ¼Ð»½Î¿ºÇʼÅÊÄÊÙÇÎáËËáÇÆäÌÒßÀßä·ÚÞµÑݬÓÓ²ÔÓµßÖ±äâ­Ùè±åä§äߧÛÞ³ÜбÝÔ®éÚ®ãÔ´ëÔªåÑ¥àÒªÞÏ£åУéˤàÁ\96×Æ\88ÝÅ\80æÂzàÐqåÆråÉvßÈuÝÓsßãmãèvÝëxâÞ\82íã\84èÚ\7fèátØØt×åpØè}àè\7fÛáyÝÜ~ãè\80áâ\82ëÛtñâuåÝr×åeÖãbÓçbØÞ^Êà^ÍÑ^ÔÖcÓÓdßË\â¾[â±båµ`åÃVñÄYô¿PðÀWðÁTò½PíºZîÀ[îÆQíËIçÍBçÐAäÐ;àÆ9éÀ7é»Dß³@ß·Lå¶Dæ·Bï²@ë¯<ë¶@ܲHÙ°GÕ½SØÂX̵^ɸ`ʬ[²`¸¦Y­¨S«\9bY§¦Q¯¥H³¨A«\9d\9e\9fEº©>¸¢G»ª=¸®5¹­Dµ¨F±¯@¶­E®¨9±®9º«?³\9b5¹£7¿©)¶©)·­.®°9®¹2°¶4µ³1¹«+µ¢1¹ 5Æ¥)¾ª-½\9d3¿\9e\92\97\8b\89\87\90\8e\8b\89\89\8a\88\8b\88\84\8fI\98\8eN\8d\96P\8a\94F\90\93M\88\86S\91\86N\8e\8cX\8f\97I\91\98J\8c\94H\8e\86N\84\89S\8a~Z\8c}X\9bv`¤zd\9c{c¥sZ©t^¢sf£eb£df®`d°Zh¯Ta¤Oj¢Wf¦^b£\a\9cWZ\9dS`¡QY©TW§HP\9eHO§JF¢PK¥IF¤KC¥UH¯OGªUO¢SN¤SR§E^¸He¼;aÅ<TÁBUÆ<[½-aÂ2_¸+]º/X½$SË"\Ì#Y\95¯Î\9e¹×¢®Ï¡ªÎ\9d¤Î¦«Á µÀ\99²È\95¶Ì\99¼É¤±È\9a±º©ÁÄ©¹Î¨·Ð£Äϧ¼Ë¦¿Ò¤¾Ô¦µÏ¢³Ã²´º¥½­«¹»\9fº±\99º¢¨®®²½\9f£µ\9d©¶ ¨®\9eº½¡¯½§»ª¬½«³³¶®Å²ºÈ·½¾¿µÈ¸²Ê±·Í°ÂǬºÈ®³Öµ»Ë¾¿ËÀÃѽ»Ä»´ÎÇ·ÍȺÈÐÅÕÖËÒÛÍ×ÜÃÔÞµÌâ´ÒÒ¶ÙÝ©ßÑ¥ØÛ´Ýß´âè¨ÝèªÛì©äåªàÓ­åÞ©ïÓ¤èÓ°éÒ¥åѬäؤåÕ\9fæÙ\99àÙ£ëÔ\99ÝÃ\95ÛÅ\89ëÁ\8cëÃ\82ëÇ~äÀ~óÅsßÌ|âàzæÕvÛâyãÞ\81êèyàãvìávÝåyÚä~ÚÝ\85Üæ\81ÜäyâÞwØä{Þê\8däê|çÜuéäuÙÚpÙåpÑã]ÕÖ_Ïä_ÌÕ^×ÉeÒØ[ÓÕ^ÜÁfß¼\ê¹bë»Rî½PÝÁVð¿\ò½aíÂYâÁVîÉXíº^é¾RçÉEðÉBâÉEàÌ:ìµ?à¿Jä¿Oà²>ä·@æ¾Jí¼Bã¹=Þ¹JܱBÙ´EЬOÖµQɯU˲aÓ´bË·[¿´Z¼ªW±¥`¼¡_±©H¯¤=±\9f\96\94@¿\95\96H®¤A·¦=½«;¯©5³¡7°¡A®±=¹¬@¹­E­¨9º\9a\9d2Á®(º¨.·°2½¸&¬µ3±²/¯³-µ§+²£3¼¦0Ǥ)¿¢2Ê\93\90\96\91\89\80\80\80\88\81\8a\8d\80\8d\8d\89\8bB\99\87B\94\8cG\8d\94M\81\98C\8a\87J\87\85U\84\91X\8f\92T\8f\99R\90\99>\8d\94K\90\87E\8c\87I\91z^\90|\\8dv\\93\84l\97\82h¥|b¥{]£tc©i^¥aj\9e\o§Tc¯^g®Yc§[b¦[Y®^a \c\9c]]©YP£[L¤RN£CL\9bAZ\9bD\ªNO¤OP¬XI HM¢FM\99CS\9fDX§EY¯HV«Ea¾GRÁ>c¿:S¾)U¹.S»(]¶3^³)S½-aÌ$Y\9f¶Õ\9fµÑ£¦Ñ §×¦¦Æ¥­Å¡²Ç\99¿É¨À»§¼½§À¸\9e½¾¤µÀ¦¼Èª·Ä©·Ç¥¿Ê­·Ð§¬È\9e±Ê\9e´È¨·»¨®´¦¯´¦ª·¤³¨¡»¬¦±¢¦³£¦­\9c²¯\94¶¹\9c²·¦·¶­²­¶¼µ­²Âµ³½·¶¼¼»»²»±ºÄ­»Í²¶Ï¶³Ë½µÆĹĿÂͳ¾Èµ»Å½¹Ó¿¾ÐÈÄÌÒË×ÍÁÖÕÁÐÖ³ÍܶÕѹÚÛ³àÓ¤×Ö¦ÝÙ³ßé«åéªÚé¨ßÜ¥ëå§èÜ\9bòؤðÖ°íÍ¥àÒ¡æÖ\94ëÏ\94îÎ\90ì×\93âÍ\8déË\94ñÎ\88é¿\8aç¹\8fë½\85îÈtðÌtâ×zÞÛyÔã\80ÚÝwàèpáèxÜë|èâ~Ùí\7fÔéwÑî\83ßå\8aãè\80åã\81Ùì\81Ûå\88Öñ\89Ùí{ÓêtÞètßÝc×ÓaÚàfÐÜ^ØÔ`ÕÐcÙÇ]âÉeëÏhâÅZâ¶Wé·TéÁSØÃRâÂZê»`åÂ_ÚÅ]àÂ[Ý¿Xá¾OæËFëÈ@ëÓAåÃGèµMê±Câ²Hç®CÞ¬@å¸Dè»JØ¿R׺LÒ¸IηQØ®UÖ­LÍ¥R̪YË·YǹR«_¾¥\¿ªT¿¤UÀ©F¹\9dBº¤N­ J¹ J·\90\9aK¬ >·\9f\9f\9c,µ©0²¨<¶¦9¯°8±¨A½\9e0¹£+Ƥ3Â¥.Á¨2¯0¸°+²²%²¯!¯«)¯ª)»¡9¸\99\98\98\90\94\8b\85\864¸{:½}CÁyK¶\7f\8f\8d\82\80\7f\81G\9a{<\9e\84?\96\88>\99\8fL\8c\85G\85\8aL\83\86Q\88\8dR\8a\96E\8e\93I\8d\97C\8b\94B\8d\9cA\8b\95F\95\95F\98\85R\99\86\\8f\80`\8dwn\96~j\9c~a yf¨vd©lg£gf\9a\j­\l±Xp±Xm§\f©YY¨`W¦cUª][°[O©VL«WS LU\99?W\9dA^\9eC`¨SWªYV¡PQ\9bC]\9e@[\9dEV­CZ¯>]«=V´AZ¾F`Á>d¿2X´9Yµ1Z´&V´)^³(a¼%e\9b¯Ú¡ªË\9c²Ù\9a®Û¡µ×\9e¨Ð¤½Ì©ÃÉ\9f¸É¨´Á¤±¿¡ÁÉ\9fÃÂ\9cÄÍ«±Ä °Ã\9f´Ì¢²É\97¶Ï\9d»Æ\9c·Ã ²¼ ²¶¤«¸ª·«¡¸¢\9d½«ª±\9e©³¢¨¶ª²¹¥·¼\98»«©²²¨¹¹\9e»·¦¯´±º¸¼°¼²¾²°¸»¶Â¼±Á¿´¿¿ºÁ¼·Àº´Êijù°Ã´¶ÈǾÌɺÓÅÄÜƸÞ˵ÜÖ²ÝÔµÛ׶çß°ÜÖªåÙ ÝÎ¥àÕ¸ä×®îë¨àá¢èÜ«äá\9eâÛ\94æß õØ ç׫ëÕ\9dçÓ¦ìß\9dúÕ\96óÛ\94ìÈ\8dùÐ\85ë¾\83êÂ\8aïÄ~ü¼{ð¾\7fïÇ{ã×uïÚoæß|ÔÞu×ÞzÜè\81ÛÜ\82çëxÚê}ÏÝ\8bàæ\88áã\8eÙê\8bÜá\83ßâ\8féé\8eÙç\85ØãrÔè~ßãpÜâd×ÖYÏÓeÖÊiÜÓdãÊYæÏhçÇbÛÎcäÁ^Þ¼ZݾZßÃWÍÅOÔ¾Tæ¸^ØÀVÙÆeÖÆVÞ½SÖÄKÝÆRÝËPåÒPèÄCܬRܬFÚ²NׯCâªDÙºMæ¾Jç¾CÛÀAÒ¸TѼRÙºEß½HÒ©MÕ§TÔ±MƽXªQʯOÈ\9fIº«BĨ@½¤>·¢E¯¦Dº\99\8b\97\9e\9a3©£?µ\99\9e1´¢+²®4ºªA¸¥;°°:½ª3¶\9a\9a(¿§.Ê£0¸£$»¥/±«)´©'³\9b\9f4¹ >Å\9b\94\8e\8e\91\8e\88\83<µ|<À\89>­~F¹\8c\84\8c\86\86\86J\9b\8c<\96\84G\97\91N\91\8eQ\87\94S\85\90W\8a\90O\84\9bN\82\8cK\8d\8fQ\8f\98H\8d\8cG\94\92F\86\8dD\8c\93N\94\83X\92\89\81`\9e}k\9d\80h\91vd¤zd§vl\9cjs\9afk\90Xs\9cai [i£Qe¬]]¢][¢cR ]a«Ze¢X_©XH\97XM\9cVV\9fCV\98@h¢@Z\9fJb¦N^¥DX£>Q¤;[\9f>Y¬I]±BU±?R¬B[­?b±?n¶9`­1Z²,Y­6k±0nµ/d»,m\92©É\98«Õ¢«Ò\9c´Ý¥³Ú\9d´×\9d½Î©¿Ì£´Ê¡´¾¤¶Ã\99¹Â\9e²¿\9f»É¡ÀÐ\9f¶É\94¯Ç\96¸Ñ\9eµÔ\9d¼Ë\9f»Ê\9f°Í¦«Æ\9fµ¼¦¯®\9d·«¢¼«£·¨£º²°°«·­¤»´¤°²\99®¬\9d®¶\99³µ¤­°¦°¯²»·°¸³¹®¾À´º¸·¿¹½¾·Æ®ǾªÊIJ½½±ÃÁ¶ÃĺÈȲÕ´ÝÀ°ØͱØÚ­àÛ¬èÙ´éá®åÔ³ïÔ©èÙ±áÕ®ßקæáªãÜ­ßå¥íã¨ëë\9aõè\91îÜ\97ìÞ\99êá£üà\9fþá\9fûá\93þÒ\87ÿÇ\84ÿÆ\7fÿÐ|úÉ\83õ¾zýÄzóÄzïÃ}òÍqðÒtâÛxßÖxâàzÝáxãÝ}×â}Øé\8cÖÞ\8eÚê\86Ûí\8cÛê\89Ýì\8bÜç\92åê\8aÛá\86ÞÚxåáyÞßqåÛeÛÒ`âÉ]ØÉb×Ç]å¾[âÂ`âÄ\äÆgßÆbÖ¿[ÚÅ[ßÌNÒÂRÝÀWܼ[Ú»YÔÀbÚÃ`ÒÅWÒÌOÔÎWÖÁVáÄNá¶X×°PÙ°\á°Vé³Mß´Mâ²Iâ²Iä±JܹFÕ±EѺMÜ¿SÞ¾KܱQÙ²UÙ´M˺VʵWίPÇ©B½§?í7·¡>¶¥1¿\9d\91\94\8d\91\95\9e\9a(¹ ,°«3±«4®­8¶¯5·¡.º¤0¾ª1»\9f#¼£$¨"¨!½\9c\9c/¶ ,½¥8µ\9b<´£<À\9d\95\935¿\91\8c5À|8¿}DÃ\82\81\80\8a\82\84\84\89@\9f\88\88?\9c\95@\99\90E\8f\96P\91\93M\8c\99P\8e\97Y\91¢P\82\9bS\7f\98S\89\94K\86\8dM\8c\90F\92\8aM\91\94F\9d\8dO\99\89M\9a\8f`\9f\89d\9bzo\97vi\92x_\9awe¤ta\9dim\9e\n\94_s\97Ur\9fOn£Pr¦\d¬^]§[[¦VeªL^¡FS\9ePT LJ\95NQ\90AR\94Ca\9e@b\9bBa\9aAb HW§F_©BV¬E`ªA]±7e¦>_£9g­El©>h¬>s³@t°8f¹;o´5q±.mº#l\9a¢Ë\8e³Ì\8fªÍ\98µÐ\9a­Ü\96»Ù¨±Ð¦­Î\9f¸»\9b§¹\9f¸Á£¾»\97µÆ\9e®É£­Ã¢­Á¡ªÁ\99¶É\9f°¾\9b¶Ë\99¸È\99¶Á\99¯¸\99´°§²»¢½±­¹¦¦º§³°§±®­¸¦²¹© º¶\9c¬¬¨³±\9f²±³±±°«¦¹²§¬Ãµ¶»­µÀ®¼¸·±Ä¿²Éµ·¾½¯»Ã·Á®¶Á°ÁʳÖ̲àʹÚóÜÓ´âѱÛܬÙß­çаäÕ¯êÜ©öß«æͧàÖ¢íØ£êØ\9dèÙ\9fëÜ\9açæ\9cäâ\90çÐ\9dèà£ëè£íæ\9cëÛ\9c÷Û\90øÐ\8bòÇ\8aÿ¿~ø¼\83ù¿\81óÊ\80öË\7föË{ûÆyèËwàÖxâËqçÐvãÖsßÖsâáxÜâ\8bàé\88âì\7fßé|äó\80èò\81Üé\80äé\87àå\7fáäxäÙ{æÙkçÝfáÜgØÓcÖÍkÙÕlÜÌ[èÃUíÇZáÍUØÇT×ÉV×Á^Õ¿]Úº]Õ¸^ã¹\Ù¹XܾVÝÁdÐÅTÒÂZÜÀZ×ÌUÙÊKÜ¿UÙ¸Jå­RÞ¸Nè¬Nê¬Rì¹Ië²Mç»Iå·OÔÀMÒÃUÙ·YнOϵJÒ¬KÉ®YɧWдYɶVÅ®IÊ®C»¢E´¬D¼\9e<²¤:¾\9d\93\97\9a\98\9b\9a@³¤6«\9d/®¥0¸¬)²§2°\9d'²¤4¼¡3¶¬1¹\9d\1fº¤$¹¤"´\9e\9a\9e\9f7¾ 9¿¢>Ã\9b\97\94\96\8a\8d\83\85\8d\7f\86\84\7f\7f5¢}@\9f\84\90\85\95D\8d\88C\95\93O\95\8fR\8e\95[\92\8eQ\86\96V\86\99J\8f\96M\93\97U\82\8bH\8f\8bN\91\90T\95\8eM\95\89I\88\8dO\95\91[\9e\85Y\96\84V\9doZ\94th\96hc\90bm\95gr\97ar\8eOe\9eYl\97Hl\9fMu®fj«cf¤Rf¢Tf¬]g¢T[ªSV£T]\90O[\93Fa\9aQg Jf\99Ha¨DW CW¤BM¤HZ¨Cf©NW­?a®?[³<n¯Gv§=u³Ai¹Af°5b½8mº:k¿,f²%v\91¬Ú\90¯Í\91³Í\95¬Ì\97¯Å\9bµÍ\9d¸Ñ«©Å¦¬¿\9e§½ «Ä\9b·º\98µÉ\9f­Ç¡³½\95¨¼\9e¢¹\97¬À\96¹º\98µ¾\94¶¾\9f¯·¤¬©\99¤«¥µ­®¹º­¶®¨««©¥§¹§°³¦¥´¨ª¸¢©®­£¸°¬¶¨°°¨²·§¯¶©¸À¥²µ©¶»¯·º»ÁÀ¿¾È½¼¾°µ¿·ª·Â«¼Ï¯ÂË­ÉͳàʬÝÒ´ÞÒ¯æÖµÞÚ®ÝѳáË«âÕ¬óâ¡öÕ­ôÔ©èÝ èØ\98ãÓ¡ãÖ\98îÓ¡ðá\9dèÚ\93çÕ\93ÜÛ¡Üâ\9dÝÙ\8cáÜ\8cæÞ\96êÑ\91õÇ\90ÿÂ\83ÿ·\81ý½\81íÂ\83ìË\84ð½\82÷¾\81òÊ}áÓpìÒrëÉvâÃ}çÍsëÓzÝÛ\87ßÚwçêxãëväî\7fÛî{ãìxÛé\83Ýê|ÞïyëæmèåræÜlÕÙqÒÝiÕÚmáÕháÇhçÅVâÅUäÄXéÍXÞÍUåÎZáÁP߶`׸^Õ¹XäÅUæ½Qç»Yßµ_ÕµTÙÂX×ÄOÛµVܳOêµDæ»Hé·Cá°Eç¸>ê±Dê²Lç¼NÛÁLؼVÞ¹_Ú¼VÒ·QÍ«GÔ\9eDÉ¢QÃ¥OȪXÆ¢UɨH·¬I´®B½ 8¶\99\98\95\8d\91\96\9e@µ¢8¯¢>ª\9e\9c2²¨3µ¨,±ª)·\9c$ê,½«.¾¬*¸ &±\97\1d¸\98 ´¢*»¥*¸¢,½¢4·¡2¼\99\8e\90\87\8c\86\83\86\94\93\8c\87\87\885¦{6­\7f\8a\8e\91F\9a\8eD\92\8c<\8c\9bO\8d\98R\92\93L\91\91Q\8d\9aX\87\9bO\8f\95U\8b\8cP\8d\85V\8b\8eN\94\9aI\92\97S\86\9aU\87\93L\8c\8eF\8c\81P\94sO\93p\\8fpX\91aa\90`]\98\g\9c_k\97Pa\9cO`\9cMp¡]r¨`o¡_d£Ui\9fab£`bª[a¥TV\9fTT\9aU[\92Ud\98P[¢OS¢N[©PK¥LG£OP\9cNb¡Kc\9fIa£LV«E\¯>f«Hn²Cn¸>l·@`µ6dº=j¸2d½%dº!p\90¤É\86¥Ë\89¬Ï\86«Ã\97¨¾ ­Á\9c¯À\9c¢¾\9b«·¤ª³\97¨Á¥¬º ¦Ä\9d¤Ä\9d­¿\91­»\9f±µ\99¶¾£¨Ã ¬» «¿\9a¤¶¢¥«¢¡¤\9e©®²¯´±¥¶°£¶¹±±Á¬»¶ ©½\9b¨¹«©µ¨¤³§¬´\9b®·¦¬¿£©Á\9e¶·\9e°Ç£ºÆ¬´¹µ´Ê¹ÂÆ»Àƹ¼¼³¼µÈ·ÇɳÈƪ×ήæ̬ÛÔ³ÞÊ£èÖ²ßÍ´ìÚ²îÑ\9fåÒ¦øÞ\9eéá¡õÐ¥éÍ\9cçÞ\94íÖ\92èØ\96÷Ü\94úÜ\9dõÝ\92ðÕ\91åÓ\9açÞ\9báÒ\9dãÔ\8dêÎ\8dëÆ\97òÄ\94òÃ\92ÿÂ\7fúÈ\87ÿÀ~íÀ\81ë½\89óÃ\7fèÌ\7fèÓxéÅlëÏpêÔwÙÕkéÑtßÞ\80ßÛ|êð|æéxâìsÞæzÜê|çé{âìsâçxÞífáÞjëâbâápÝëfÓÚdÜ×pÛÍ_áÊdãÐ]ãÀUßÂLÜÒWßÄFäÁHç·NæÂPݺTéÅQê¾Zå¹\æ½Wå®TØ®YÚ¬SÜ°Hà®KÞµEé¶Qì®?Þ±Eê©=î±;é¾JæºRä³QàÁQã´OسWÒ»KγKÒ¦RͦOƧT¹±R¯K¹©Rº¯L¸¦:º©0³\98\9f\9b\9b\9a\9f\98A\9f\9cG¦¡H­¤7±\95?¨¢3¨¤0´\98\9e*¸¢-²¦-½¦/±£!¶\94\9a\1e²¥\1c·¬(®§'¾¦+¹\9f\98\99\91\90\8e\81\85\96\97\99\96\86\8a\85\84\8f\96,\9a\97\8aD\95\91C\92\8a=\8e\8eL\96\96W\8e\93G\8e¡H\92¡H\90\94O\85\91N\8b\8aT\89\8eK\91\93N\89\8cK\95\88J\88\89K\8c\93Q\83\87Y\88\86Z\93v\\91eX\88aY\99WY\95ab ]j\98Xe\9aW\\9aJl Pl\98]j©ed©dp\99Zj¤Vf£XZ¢MU®V]ªQP¡ZZ\9eNZ\94Nh\9fS^§I^¬KX«PK¡FM¨O\\98Mf\9dBm¨E]«HY°OZ©Fo¶Pf¾>e´?]·4j¿2b»7f»#l»&s~«Ê\82¢Ã|§Á\85¡Ã\96\9fÅ\99¥¸¢«¶\9a¡À\9f\9c¹ \9e¶¨\9eº£¬¾£¤Æ\97«¾\8c¦È\90¯Á\93®·¤¶·©®½¨¬¾¬«°¢ª«¦¢¨¤§­¤®µ¤§±®¢µ³¬´¾°¹·¥¶·\9d±º\9b¬¾\97®³\9e¥·\98¯¸\9eª´\9cª¹\9d²Ã¥´» »½ ·Ç¨³Î¥±Å®·¼³¹Áµ¾¸¾µ»¾²ÄͬÌͧÕΫÞÏ°ÜϯÞʦðÒ­ðÍ°ëÑ\9f÷Þ\9fêä\9bëÜ\99ëÏ\93ëÐ\9bèÓ\95òÓ\99÷Þ\9cøÛ\9aïÕ\8cõÜ\8eïÝ\8fïÒ\94íÎ\96áÒ\94êÎ\9bêÈ\94âÌ\8cæÄ\92éÈ\9aõ»\94ù»\8eÿÃ\88ÿÇ\7fûÁ\87ûÉ\82ïÈyñËxãÌqÜÇuæÍuß×{ÛÙoæÜoäÔ}éÙrïäqìÞyêáwâÛ\82àä|éÞtæàxÛìnáèoãéiåæcáíbÜédÖênÖÝfÞ×háØcâÕYåËXÝÖVßÏJÞÀKãÀHí¼?éÁGêÈVìÂUïºMê´Tæ»Vã°\ê¤Væ¥Xå¬WÙ¯L×°MÞ¬Kî«PìµEì¹Dä±@ê´K߸Eã¸EݽOá¿QÞ¹ZعTÛ¶NɧSƧJŤM´®L·¦I¶©M±«E¶¦6¶ +»\98,³£!¨\9d\95\92\9e6\9a\9fA\97\9a9¡ A¨\99\9d\9d\9b1°£-°\9b\98!µ #¯¡)¯\96\98\97\94*±¡#µ\98\9e\9f\96\8c\8d\8f\89\8a\8e\93\1c¯\94\99\95\8f\8c\86\85\86\92\989\9a\93=\9c\9aB\9b\8f\94E\9d\9aL\9a\9dD\91\9fM\96\9fR\8e\99K\93\93U\8d\97U\8e\8fY\87\94T\85\93R\8b\88R\8c\8dO\89\8bT\8b\81R\85\83Z\81{]\88jb\90ij\90^b\97^f\98Wk\8fX`\94Nd\92[n\9fWg ag\9e`i\97`s\9d]m\9e^^¬M\­W`°RU³ZO±SX\9fSf\9eTd S`\9fLU§QI¯WK¬ULªEY\9d@g\9eAk¦Bg¥G_²D[²QbµIa½I]·C]½<jÁ2lµ-m´1a¿$e~\9aÒ\85§É\88\9dÄ\8a¥º\88\9a·\93§·\89\9b\92\9f´\95¦¸¡£¾\95¡¿\98\9cÀ\98¬¶\8e«·\8b¯´\9b³Â¡¨»\9b¦»¬¦´ª§¾£«¾¢\9f®©ª¨¡£´\9d«´¬ªª®¤µ©°»¯¨¼­§»®£ª´\94¨³¢¬Á\98¡º\99°¼\97±Á\9e¯Á ¼¹¢°Âª¼Ë«¾È¯¸Á¦½¼­½È¸µÀ¹¬Â»²¼µ³ÆÈ­ÌʯÜŬä˵æÊ£ÜͧëÓ¤êÒ¨úѦ÷Ú\9bæÛ¥îÓ\9cîÎ\99ðÚ\96êÍ\95èË\97óÔ\9añÑ\91÷Ü\97üÙ\95ôÑ\88ð×\95æÊ\87ëÖ\8eçË\8fíÉ\8dã¿\8bì½\82ì»\81ñº\8böÆ\8dõÈ\87úÄ\8aü¿\84ý¾vö½~ëÎ}×Ì\80ãÓxåÓ{ÛÔ|ßÖlìÞyêÑ{íà\7féäsóéyíìyäèrÝ×wçÞkÖâqåámÛÜqâábÖçgãÞeÝç^âä]á×[ÛÒ]ÛÊVÚÊ^çÈZåÆMçÈTÙËTâÈMä»Dç·Hí¹Jê»Qê»MòµWì¸Oä«`å³Të¦]Ù«RÙªKÝ«Pß­Vç°BܵIܳ=Þ¨Dã¶Jå±>ÔºGÝÅIλJÞ²RÙ©TÍ´Jɱ>¿ªJ¾ªF±¤J­¯C¶§G¶\9eF·¢@±¥,­\93\96\9d\90\92\97C\9a\98G\9f¥:¥¥C ¡5«£:«ª;\96©6\9c\99\92\9c(¯¤(²\96\97\97\90\9a\92\9f\9e\99\9b\98\8f\86\91\8a\91\92\8e\96\95\8b\82\88\8f\86\93\8b\8fC\9f\95;\9c\97D\9f\8c\96\9f\96Q\8b\97T\95\91J\90\8fI\8a\98V\8b\98I\88\91Q\82\8aW\8c\8bR\81\8c\\8e\82L\8e\82S\93uZ\8du\\8fih\95o`\8b`o\95\j\8dQu\98Ww\92]i\91Zm\94]k\92`e¦]m\9f^l¢Oc\9eTi¨Od¬Q\­R^²PU¬Oa£QX\9eY^ Za¥QS¤]U©SI«RV±Q^£Hc\9aDf¥Bh¬Fj¯Ie¹Fh´?fÄAbÁGcÀDl·.h±$mÁ%hÆ$dx¦Î}¡Ï\80\95¼\90\98\84£·\81§¾\86¢»\93\92µ\9b\94µ\92£Ã\85£¿\89\9cÁ\8a\98»\94\9b´\8d¬»\94«½ ¦¿\9f¡¶£©½¤¡È\9b¢¾\9e¤²¤¥¹¤¡·¨£´«\9e«¦ µ°¯¶¤¢·¨ ´©¥´¸\9d¯¼\9c©À\95§Ê\93¢È\98§Î\96ªÆ\9d¸Ã¦³½¬½½³²Ê²·Æ¸»¹®¸Ê¶¯É·ª½Âº»½º¹¼»Å½¯Ï̸áÌ´áÁ¨ÝÇ¥ëϦôΰçÏ¥ëÓ¤éÒ æÊ\9díÕ\9dîÔ\96éÉ\98êÇ\8eå×\8aìÖ\8e÷É\91òÌ\93ôÈ\93ëÑ\8fåÐ\8dîÑ\83éÆ\80óÊ\8bõÊ|é¿}ôÀ\7fó»\82ùÇ|÷Ç\80ð¼\85ùÂ\7fó¾wõ½råÌyÛÊ}ÚÔtÝÔ{çØríÖzáÔ\80áÖzäÕxðÓyîÚvóêmíåfåÔnÝÒfÖÚfàßlØÕnÛÔhÔ×bÔØiÜã^åÖbáÖZ×Ö^ÙÍYäÊ^äÈYæÓ^áÌYÙËKßÄHá¼Fí·EçºVéµWæ±Mè½Tå¶WíµXí°SÞµRè´Mä¶Të¯SìµRâµTÝ¥Dã£CÙ«Hå¨Lã¯FÚ°LÓ¼TÒ¼SήKÉ´LÊ©Eɧ>¸£=²©H²¢B¬\9bE®£M½«A¨9¾\91\8b\8b\8c\93=´ <¦\999\9b\9dA\99\96\99\9e=¢¥9\97«4\95©0\99\9d2\9d\99\9e\9f1\9c\94/\9f\99$\9c\99\8f1\9c\94\90\99\922\9e\8c\8f\87\8e\95\1f©\8b\82\88\86\8c\8f\8f\8c\88+\9e\81\88\93\8f\94\93\9c\99\8b\8e\90\92R\9a\99P\8d\90U\86\8cX\8a\8fJ\8d\89V\89\83R\87\89P\87\80]\85zU\83zO\83sT\91rd\90il\93of\94dl\92go\8aau\92Rs\95Qx\94_w\97ar\8bYd\9cdm\9f]g\9bR`\9bQf\9eQe \l\9bQd§VY°OU®O[­\^\9faZ£eX¨`X§WS®SO­ST¯Pa¦Ba¦Bc²Ea±Hg¯Ol´Fc¾>eº;nÂ9e¸;j²6v·)sµ'o d\85\9cÆ\83\9d½\8d¦½\95¤¾\85\9aµ\81¡¼\87\99¼\83\9b°\90\96½\8c£À\83¡À\80\9eµ\8e\97\91\96À\9a¤Â\90¦·\95¡À¡¤¹\9e ¿¦¬Ë\95£Å\9d¬®\9a®­\9c­±¬¡¶¥\9f±­\9d«¥ª°\9e§¥\9c\97³¯\94­±\9e«¶\97£»£¨¿\9d§Ê\9c¦Í\97®Î\97¶Ë¢³»¥¶½¯¾Ã«±É§´Â¶´¾¬´Æ´®Ë¶®Á¾·¾¼¶ÄŹĮ̀ÞˬáТçÌ\9aáÇ õÔ¬ôË éÒ§éÍ\97꾦àÑ£ðÊ\9fâÉ\9aôË\8cñÐ\95éÓ\93åÂ\8fñÃ\92ðÐ\97ãÔ\8cìÊ\88òÑ}åÌ\85ôÎ\86ùÎ\88ìÅ\7fñÂsùÄvó¹\81ÿÈtù¼\80ù¼qè»z÷ÇzéÉ}ÝÐxÓÒ\80ÜÛxÚÚsï×nâÕpìØyêÏyíÜnôåvçßjìâsáÚjâÞ`ÒÚaÝÏkÕÜ^ÖÒjÚÎgÒÕ^ÞÜ]åÓVêÚ[äÏXäÐTäËNåÐ[çËLÝÌUæÆSÙ¼IåÀPàÃJîºLî°Tè¿Hò¼JçÀSðÁVï¹\ä¨Vâ®Kë¨LߪVã´Lì´Fæ§Jà¡Jß²P×·Uç³GÚ¯VоXÇ´XƯKƵAƪCÄ´=º´@®­J¸¬@®¤?¯ªR³§>Ç£3³\93\8b\97\8b\98=ª¡1¨\9a\99A ¢5¤ 4\96§7\94ª5\92®2\8e¤5\8eª.\9e 0\9b£(¢£0\9f£$\9b\99#\98\92\91\9b3\9d\95\92\94\8d\93\19®\85\8e\1d¬\8b\89 ¦\8b\8f\95\97\90\89\8e\85\89\88\8a\9b\9a\9a\99\96\94\8a\8a\84D\9a\8cQ\8a\90N\87\8fK\8e\83P\90\8aT\8d\88T\88{R\8e}Z\8a\7f\\8esO\8apb\97qe\93oa\98xc\93mi\93dl\93_o\8bYz\90_y\88Rl\8fZn\8d\h\8aas\95[g\9bR`\95Xa\9bTg\9eYg¡So¬W[²X]°Id¦Z[¯`R¬aY§gP±QK«TQ³XP²RT«KU§DZ©I[©Yg³K_¸NlÀCp»Ae¸8m¿Gb»4i³)uµ%i¿!e\8b\9aÀ\85¢º\8c ¶\8a¡¹\82¦Â\86¥À\8b¦¶~\97³\82¢¹\7f\9d½\8a\93¼\84\98´\93\9cº\94¢À\8f »\9a\9f¸¢¨¾¡ªµ\99³·\98ªÀ\95­¼\94­º\92¥¯\9e©³¤\9b±¦\9c´¦¢©¡¢¥¥\97©\9f\9a¨«\9f£¯\98­½\9e«Ã¥¤Á§®Æ\9e°À\9b±Ë\9b¬Ð£±Æ¤´¿§»Â©±Ä¶¸À±µÄº»Í±¸Å»±Íõν½Ìǵʼ®Ø½¦ÜÄ¡êÌ çÑ¥éÈ\9cêÅ çÆ\99ܾ\9dßÁ\9eݼ\9cçàäÈ\9aìÂ\8fìÅ\95ÞÄ\92ê¼\89äÂ\8dëÀ\8fãÊ\8eè¿\86ëÃ~éÀ}éÁ\83òÁ\80ûËuÿÇrÿ¼oûºvý½xö¼pëÇqñÁwçÄ}ßÄ\82ÙÊuÕÛtÚÚwßÕiåØißÒfêÛiðßoèÚgèävêàtßßläÙnØÒoÛÐ`ÒÎX×Ô_ÛÚgÖÖcÔÍ^ÚÏ`äÚ^â×TÞÛSëÙVãÎTãÐMÞÑNàÎMÛËPÛÀQÙÈTâÅNí¾Rè»Jê¿Rñ»NíÂXç¼Xè¯_ìªYí©Tæ«Oã´Nå±Sé¨Qá¤Má¬MÙ­TÚ°YݵYÓ®UÓ¸ZηZɸIÄÀPÁ¶G»®A»³E¹ºM±³J¶´F»ªFÀ¦@À¤;Â\9d\93\9b\94\98\9e5¡£2¡¡0 £5\9d\9f9\91¥4\91¤2\9c¤9\95©7\94­,\8f¤,\98¦+\9e£-\98¥*£\9f/\9e\9d2\9c\9a*\98\9b\95\92\1f¨\94\86\89\1d«\90\8e ¯\91\91\96\8b\8f"\9f\93(\9c\87\8b)\9f\8d\88\93\95\9a\99\91\90\96\8e\86\8f\8a>\9d\83C\99\87F\94\84K\8a\86H\89\84J\88\83T\8d\87O\8dzI\8bvS\85qR\8ct_\98t_\95qg\9aqb\91qf\85ai\88bj\87dl\8car\81bq\85Vj\81^t\89Yr\93\x\97Yl\99Pe\9fTb Na¢Xk®Tq«Qh¯T_±T\³aU°_SµdR¯]O®]Z©WT¤\N¥\X¯R\«U[¬ZY§X]¦S^´Gl±Fo¾<b½>dÂAeÄ;m½9w¿-rÁ.w\88\99Á\80£¶\7f\9e·\85¤º|\9b¼\8c\94°\85¢¸t\9b¾\7f¡³z\9fµ\7f ¸\89\94¯\92¢¾\8f\99Á\94\9e¼\92¡µ\94¤¾§\9fÀ\96\9e³\95©¿\99¢Ã\8e´¾\99´­¢­ª\97¦¤\9c ¨\99¨©\9a \9c\9b\99«\9c\9c§¥\96§«\98¥­¤¥¹¨­¸\97­É\99­Ä©¨Ñ\9d§Ç£´¿«½Ä¨µÌ³©Ç®¬Ç«¾Ä«¶¿¸»Ñ±´ÌůÌúÒƮϺ¨×½«ê¼¥êÅ\9bíÍ\98ðÂ\9eìÈ\92îÃ\91Û¾\95æÎ\8fçÅ\93å·\97ì»\8bìµ\84åÇ\8eãË\92éÆ\7fïÄ\80äÄ\82çË\86âÂzãÃuðÆrðÁqû¾xÿ¼vö¹{ÿ»zÿ¾tÿÀoðÆpïÉxæÀ{è¸xåÌyãÓzØØoãÓxÝÐhÞÎeáÖkÞÏvâÝoêÖqèÔuççmìÝtãÝcÞÊeáÉbØ×^×ËeáÍeÖÕ\áÏcÜÒ`ÝÏVãÓUâÍNêØYëÐWìÓSãÈVâÅUé¿VåÆUá·Jí¸MíÀVä²Gç¼Gò»Sé²RÞ°Rè¸Vê¤`ä¡Uä§KÞ¬Læ±IÛ±Hà¡FÞ­H̬XÛ«V߯Q͹QغVÕºTȶJÌ¿TÄ®N¸ª@µ°=º¹K«¬>²®@´£@¸\94\9b\8f\93\95\9b\9f\9e2£¤+¦ 7\99\950\98\9e0\99¢;\9f /\96¤7\90£6\9c\9a+\91¡1££.¨\9d\9a\99\9f\96\93\95\8c\97\8f\90\8b\96\1e«\97\98\8f,\9f\88\95\97\91\8b\8b'\9f\94\93<¢¢@£\95\95\99\88\86\92\87F£~O\9a\80@\98\7f=\99\8aN\91\7fL\97\85P\8b\8bL\90\80P\8c\84Q\84\87U\82{X\85ub\88nZ\8dpj\88wX\8ah^\95c^\88f`\87fm\91lr\93_w\87dq\81]o\92Um\92Pg\91Tj\98Oo\96Zl\9a`a\9cVm¥^g\9c[g¬Ug¯_`¥T]§bZ²gT¨XV¢_Q£aQ°RZ§TW¦XN°^b \g©]dªVg­K`­Hf®Gkµ=p½Bd½9j¾6l¼9}¹/xÊ+m\8a\93³\7f\9aµy\9c·\7f¥¯~£ª\85\94¯\7f\92®y\97¼~\9d¬w\98ªu ±\80\99­\90\9a¹\8f\95·\8e\9aµ\93¢À\90¢»\9c\9d¼\94¥¹\93£¾\9d ´\96©·\94¦­\9d²¦¥°§\9e¬¡\9f©\9a£\9f\9e©\9d¥\9d¥¨¨®°©¥«²¡´¶\9c®³¤³À\9eª¿©¦Å«³Å©´Â³¶Æ·¯Æ¶®Å²¸Ä©¼Â±À¹´Ã½¶Ó¹·ÝµªÛ¶«Ö¾ Ú´¢ßº§ëàçÁ\95åÃ\94àÀ\8cãÁ\95íÆ\8dæË\8dïÇ\83ó¸\89ñ³\87è·|à»{æÈ\85æÂzé¾wôÀyï¾\81â¾ußÄrçÇné¼pò½|ÿ½xÿ¹wÿ¾sÿÂpþ¾i÷Ãpñ¹\82ä¿\81ç¹\81àÁ\82ÜÒvÝÖuÞÛpãÓgäÓháÒvâÑrëÔmêÕmîÖmëänòáríÛgÜÉkÚÇeÛÍ]ØÐ]ÖË[ãÏ^àÕ_çËfàÉXêÉQæÇPêÏKäÖFïÎRôÉRçÉOßÉUåÀWð·QîºLó«Wí«Qê¼Uê¾JíºHæ²Lå¤UÞ¥VÞ\9e\Þ¤X×­TØ®Nã¥Xà¦PÙ¢SЭR׫VϳYɺOÔ¸JÍ·N˼V¾²S¿¯G±®@°³E«®D®­C®\9b\96\8c\8d\90\99\8d\91\97:­£1¡ /\9d\9b6\98¡6£\961\9d 5¢\99\9e5\92\9c:\9e\95:\9b\97-§£)§\9f\9d\95\8a\8f\91\89\93\8c\92\91\95\9d\9d\98\98&\9b\91*\9d\87*\9d\8c\e®\94\93\91/\9c\913\9b\94.  4\9c\9b1\9e\9e\96\8a\93\8d\8eD¡~M\9c\8aC\95\8aE\95}S\96~X\8b~R\8e\81J\93\84O\90\84T\8f\7fY\89\81M\7f\81_\84yf\89\7fg\8c|Z\8awb\94fX\85`V\87je\81qu\89ks\8fho\8e[o\91[f\8dWe\96Zc\93Oo\96Wd\9e^g\9e`f\96R`\9aJdªRi§^f¤a]°fgµde´[f¢RY X]ª]Z¦]V¨VQ¨[b¦^c²[a²Tl¦Qg«Jh®LxºGwÂGuÂ8kÉ6hÅ2vÇ)xÃ*o\84\9e¹y\9bµ|¨·\88\9e±|\9e®\81\9d°\7f\9b³}\94·x\97·r\9b«{\97¬\86\96£~\95®\8d\95«\86¢¹\88¤½\9aª´¢\9c²\9b£±\92¨­\92¤­\97£­\98§¥\97°¤¡©¬\9d¢£\9b ¤\9a¡\9c\9b\9a¯\9f\9fª¦ ¤¨¦®´\9fª®\99¦« ©²\97®±\9c­À¨®Â©²É°©Ç²¬Å³«Ë¯©Ë³®Ë¸°Ä¾«Ç´­Ï¸²Ñµ¬çº±Û­¨Ø¯\9dæ¾\9bà´\9aßµ\8fà¾\94ܾ\93áÂ\8aßÈ\8fðÍ~ã¼\85åµ{òµyñ±\80ò´|ë¿tê¾qâÁxßÆtæÃwãÂjèÅjë½tá¼\7fö½sòº\83ñ¾\7fÿÄw÷ÅpÿÃeøÇzïºxè½\80çÃzì¼\80çÄrÞÏxÔÞgØÐdÞÙdå×dÝÍfêÒlàÖfâÚoïðpéÚeçàgàÒsàÅfÞÇhØÔ`ßÖeâÊhÝÑcëÉaæÐbáÍOæÃNÜÈVìÇRðÅZñÄMïËOíÇKç¾WäµSòµRä²Jí©Nê°LéÄSæ´Nå±KߪSß²Và¦Ká\9ePÛªVâ¡UÞ£^à©XѱVÙ·QÏ®TÈ©S̯OƲIι[Ì®X͹QÁ¶FÀ«M¬µ:«­@¤¢8² ?±\9a\94\92\92\8e\9b\9b\9a;¯¡0¤¤3\99¤=\9d\9e\9f4\9e\993\9a\975\9c\92=\95\96:\98\94+\97¢'¤\95\98\93\8b\89\1f­\90\85\81\8d\8c\93\87\950´£(§¢ ¯\96&\9e\9a\8b\8d"\9b\87\1a\9d\94\97"\9c\99\9f\9e7\98¦0¢\9f\9e\8b\86\84\81\83A\9d\87D\9e\85M\9e\80H\9a\84M\90\84Z\95\82O\92~R\8a}K\89\85O\8e\8cO\85\8aP\85\80^\8f\83Z\8f\80a\87|P\8coK lS\98q^\86ug\82rm\7fet\89fm\8eYo\87aa\92\l\8cRj\92[r\96Qo\97eq\95\o\95Qj£Rc¡SiªZk¦\g§ae§as X`¡QR\9a^T¡[\¡Xb§L[\9e]`¬Tb²Qo¨HiªPl²Rl¾RiÁG}¿Mwº;zÇ;wÅ?\82Ì)tÅ!p\83\9bÀ\81\9aº\85\9b¿\83¤µ\7f\99®s\9bªn\93³s\96±}\8eº}\95²\7f\9a\82\94¨\8a\96¬\85\9c«\86£¬\88©º\98©«\97\9dª\95\95§\9a\9c¬¡\9c¬\97§®\9c©´\9aªª¨§¯¤¦ª\9a££\9b\98¢\9d\97¬¥¡²­¢¶¯¡¯¯\9d¯­\9d£¬\96¤§\9bª³\9b\9e²\9d\9eµ­ Å¯¥Ì²¬Ä¹¦À¸¤Ç°±Ò¹ªÑ´¨Ñ¶¬Ñ³§Ø±¨á±¦Ù«¤áµ\9dܸ\9bÚ°\95Ö¬\8dâ¶\8bßÁ\87äÀ\8bâÌ\81êÆ}ðÅtåµzî¶~õ¶yï¾ué½jéÇhåÂnè»oÙ¾cÝÄkâËmàËwéÅ~ï»|ð´}ì¾\86ö½~ùÂvùÄoíº{î¾zðÃwíÀ~éÉzéÃ\7fßÒ|×ØoØÓpÚÓdèÖ`åÍgâÏaßÞaçÞeèêeòÜcêÖjæËjèÏsêÉuãÓsâÐoåÑbèÕ]ã×_àÐSæÉWã»`Þ»Zá¼PêÂVíÈOåÂYâÅJì¹Jñ»Xä¶Uë¬Uâ®Oà¯Hß»KݶEݸJÛ¶Ié­Ið\9e\9eXñ `ì\9fZÛ¡dÚ«\Ý´[Ñ°[Ñ¥KΧL΢S¢W£TʱUùUÅ´L»«K¯©>²­3¥¢4¦\9a\94\91\95\8b\8e\93Eª¡@§\9f7¬¡9¥§< ¦<¦¨;\9d\9d8\96\954\96\94\96\93\940\9f\9d-\9c\9d\94\88\1e\9f\87\8e\89\86\86\8c\87\87\8a\92\9b\9e\99\1f¦\91\1f¢\8c\8f\89\92\9b\9e(\9b "\96\98-\99\9f4\9a\8e\8c\8b\8d\91\85<\9e\88\7f@\9d\829\99\80C£wO\9bzV\97zV\97\81Y\91\87N\87\83O\86\81P\8f\87L\95\81S\91\82Y\91}Y\8dlK\90pJ\9dhR\8fjW\8apa\87h^\86ne\90ln\8fYi\8f\i\86Vg\8fXg\8a\s\90Wy\9fZs\9e[s ]s¡Xg\95\l\94Uf¤Yk¯Ul¨Xo Yn\9c^\¤TT Z[§W]¢Ra¥Ve¤Vd«Vi¯Ij¯RmµNj¹Kh¼Ot¾Ky´D\81ºHzÆ>}Ì/\82Ó$u\89\9dµ|\98\81\99»\80¬¸v\9c³r¤¶w\9a´j\92ªt\9dµx\95«z\97¯\7f\8b­|\90 \84\97¡}\99¬\8c§»\8a\9e­\97§°\91¤ª\94¥¥\8a©ª\98 ¦\92««\93­­\98¨¦\99\9d¨¥\96ª\96\98\9f\9a\9d¥¡¦¨ \96®«§®£\9c°¦\9e¢¦\98®¨\95 ¬¢¥¶\9f¡´£¤¼¦®Ä¨¥¸¶«½´¦Ç­¨Ñ±§Í´ Ô²¡Ù²¦Í³\98Ò­\9fá®\97è¹\9eá³\96â¯\90ä°\92é³\81é»\84Þ¶\80åÈ\80ìÅ|ð¾~í¶wö±sòÁkñ·nå³rèÂvèÌgç¾eÖÃiáºaâÆqïÃfìÃuçµpåµ\82ò½zñÊkù½kð·n÷½mñÈvïÁwæÂ{ñÂpðÑsåÒkÞßnáØjâÑcéÕoïÒdãÕgÛÖfÚçdáðnêájàÙhæÏvíÐwêÌsåÒsñÍläÛcäÔg×Ó]åÔ_àÒLáÆRäµYãÁXñ¿LâÅLåºMà¼Zð¶Oêµ]â·T×»RÙ¬QÙ·PÔ»EáµUׯJà­Qà·Fá®OÞ¡Yã©]ß\9bSå¦_ФPܨZЮLѪTÎ¥MÓ\9c\9ePÒ«VÑ®RÌ¡VÏ¥G¼®9´°3­ ?­\9b:ª¡<­\90\9b\92>\9e\91\91\8a\91\9e7±£D²ª@ª\9bA¨§7\9d\987\9c¡,\98\974\9d\9c\97.\9a\91\97"¦ ) \93$\9b\89\1d\9c\87\87\8b\91\8f\8c\1fµ\8b\8d ¨\8e\8e*\9f\9a(\9d\91\99$\9b\91*\9b\97%\9d\8b\8a\98\9f/\9a\95#\91\93 \90\9a0\9f\94\8e\9a\8d\9b\92> }Cª\84G§yE¦|<\9cwD\91vF\9c}P\92vW\8e\8bL\84}M\8d\85Q\8a\86I\95\8aW\90\86O\8b\84Z\96\80^\8bsP\8cpP\9ecS\95hW\97v\\91sc\8egj\91mb\95[l\8e[j\7f]p\85[x\91Vr\93Yy\9fUp\9e[v¡Ms\95\u\8b^m\96Wc\99To\9d\t¥Nh¡[o¨^]§Xa\9fQe¥P\ªLl\9cJ`¡JX®Nm«Di´Rd·Gs®RtÃJr²MqµAy½F\80À;{Ê8\82Ï$|\83\93¼}\9c·\84¦À\86­¸\82¬´x¦´uª¯k\9e«i¢­o¢®j\99 t\92¡~¢ }¡¢\86\9f«~\9cµ\80«­\93«©\93¬¤\86¬«\85°¦\94¨§\8d«¥\96« \93ª \9d¥\9f\96¡\98\94\93\9c\99\9c\9b\9c\99\9a¦¡®¢\9b²« ¯¢\97¨ª\96«©\92§¬\94§¯\9d£©\99«´£§±¤ ½´¨½¬¤Ç¨©Ç² Ã¬\9bĪ Ð­ Ëµ\9eÑ·\93Ú¯\97å³\9dï­\93ê¯\86ç°}ß©\80ظ\84ܵ\86îÄ\83ïÃ\80ñ·yù²|û´nöºiò°jæ²uõ·móÇpë¸hä¹eéÆpéÂiè¿hè¶fëµiå­zéµlñÆhó¼n÷¹fï¼pôÂiöËlîÆtëÈpêÒnÝÕrÖÕsÛØjÞÔiâÕpçÐeéËjàÔpâÙiÛèsÜçtßÚnäßuãØoäÞlìÚbëÔ`îÖ[êÖaÜÄcãÆTëÊMò¾Hè½KáºNæÀMêºTâÃKÛ¿Räº\ݱXÞ±Y߯TØ·`à·WתMÛ©QÞ§Qß©GÜ°NÛ°Uã«SצUÜ¡\Ö¡[Õ\9b\96\9cMÚ¤JÙ\9b\99Q΢FÍ\99\9a\9e\9aBÁ¨7º¥3³©,®\9d4¥¤5¨\99\9b=\9d\8e\84\8b\87\8f\975¯©>¯¬B±\9e\9e\9f/®£:¨\9d\94\95\99%\99\99"\9f\95\1e\9d\99\94'\9a\91\92\91\8b\8f\89\8a ¯\8e\8b!\9d\8d+\9e\981\9b\92\8a\96"\95\98*\9d\96\91\98*\9f\96\92-\96\94-\9f\9b.\98\97'  $¥\99\94\98\8c\83\88\7fD\9a\82G\94xM\9cuN\9dyS\96wI\88\84J\8e\83K\8e\85U\84\8aZ\8b\81W\8ezQ\91\81W\8cw`\8euZ\8cn_\92gW\8amT\93j\\91rb\8cme\8bcd\91gn\94[r\88Zr\84\r\8dNu\90Xt\9e[|\94S\82\9bMz\9bIj\8ePk\8bUq\95_l¢Xg To¨_k£]a§[e¨J^¡Ae¥Fm¡H\¨O[¨Oc¤Pp­Wf©Ok´Li¼Mt¿No¼>zµ9~¿<\80Á0tÇ!u\7f\96¼\88\95·\7f\9b·\82­¶\80¥ªw\9e°n£¢p¢ªh¤\9en¥£u\9c\9an\9a¢\83\98\9d\82\9d\9d\81¤°\80\9a±\82£ \8f­¨\86°©\83¨¨\8c¥ª\99« \95\9e\9d\8e¬§\97¨\97\9f\99£¡\93\97\9c\8c¦\93\90¤\9e\9b¥\9d\93¢«¡¥¬\9d¦¢\91¯¨\96¬¤\9a¤´¡¯´\9e¤³\98ª¹§¦¹±\9c·®¥·ª\9cÁµ\9fÀ¨¡Ê¨\96Ó²¡Óµ\96Ó«\9fܸ\98Úµ\95è¯\99äµ\94è§\81ä³\8dà§|Þ¨{ä°\82ä¸\82öÃ\86îµ~ö·rþºoú´nù½oò·kë¹gùºgô¾qð­gôÀmìÄfë½cé´oè²oé¶tôºjëÃgõ¹níÄo÷ÈhúÌiøÍcéÅkçÔtæØmëÕqàÌmßÔißÕfãÓkáÜqÛÒoÝÔg×ànÝëpÚ×j×àpßÓpá×hçÔeìÝ]àÍcîÒbÝÎVßÐ]ÜÉ]ãÍJá»Tî·Ræ¾QÝÄGßÇSÙ¿TÕ¹Tè¿YÙ»bÓ¼[Ó·aÒ¸_ض^Ó²SÓ²QÖ§YÚ«VرFÞ¡Pä¦[Û\99\9bVà¤ZÒ¡YÚ£QØ\9a\9d\9a\91\9b\9a\98\97\97\9f\9d\9c\98\98\8a@\9f\93\90\8b\97\8a\89G¤£<ª\9e>¦ 5¨\9f9¤¦)²\9e/¦¡)«¨/·\9b\98/\9f\95\9f\1e¥\93#\9d\8b"\9b\95,\95\98\8b\93\90\87\8d\88\8e\87-\9d\93\95\900\96\8e/\9c\931\90\931\99\9a&\96\9e(\97\936\9f\8f*\94\8f)\96\9a'\9a\9a\98\9a\9a%\9f\9a\98\94\8b\89\7f:\99\7f<\95\82E\93|S\90\7fJ\8b~R\91{Y\97\83Z\91\85c\96wV\8e{e\8b\89U\92}Q\90z\\8bq[\8eyT\92sT\8fwO\92mV\9bf]\90k`\91j]\96ql\88ia\84\t\85Sw\89Wx\92K\7f\90]\7f\95Os\9aUy\99Uu\97Is\9eYv\97W{¡Uz¤Pi¢\i¦P`\9eRl§Da¡Ae¡En§Hc¬K[«La®Lp§Nt©Jg±DmÂF{ÅBr»=yÇ3~Ä6|Ð1zÃ.|\82\9a°\83\91²\84\93ºv£¸y«¯~¢¥r¡¥u\9c£n¢¢m\97\97q\96¢v\9a\9d\9c\83¥©\86£«\85£¤\81§¡\82\9e\9d\81¢\99\85­\9e\8f¢¡\95\9d§\93\9b£\96¡¤\9d¢\99\9c\95\9c\92\92\9f\95\90\9e\97\89ª\92\8c¥\98\89«¤\97¥ \98\9fª\8e¦¬\8b¡­\95ª¤\9d±ª\9c¨¬ ¥®§\99¶¢\95®¤\94º®\9c¾´\94Ë­\8eÒ¯\94Óµ\93×·\9cà¼\94Ü°\8fæ³\8bäº\8bñ»\82íª\8aã¦\8bãª\86Ú¢}Ý©wã±\7fë»zðµyùÀrø¹lô´jó½eó¾ló¶eôºjú®nô±oø¯gí¼jï½iíÂkç¶tì¸kî®iì²uñ¿wîÀlîÃcðÑdóÚkõÑfñÎkóÔtéÔmêÎpàÎtßÝpÙÛqÛÜnÓÖfÕÖm×ÞoßÞnåÖaÜÝdÚØ_ßÚaÚØaàØaàÑ\åÈXéÈRãÏSÜÏOãÃUêÀ[èÂRè¾SÞÁQàÁUÓ¸VϾ^ÜÄ]Ü»ZÙµUâ°`Ü·aâ¬[Û±Tã«^Ú¤Wß\9fPߣOâ©Tã¤Rç\96\97Yå [Ø\9f\9b^á ZÕ£VØ\9c\9a\8c\93\91\8c\8a\90\94\96\89\87\8b\97\95\98\9b?« B°\94E¨¡E©\9dA§ 7¤¨-¬ 3«§,µ«1¶©-¯¥)­\9e\9d ©\99\97&\9a\8d \96\88\90'\98\94,\9c\97\95\890\9d\84\8d\80\83,\9d\89/\9c\84&\9e\89/\95\94.\9d\8f-\9b\92.\91\9f&\98\9b)\9c\9f\970\97\94,\99\8e2\9e\8c\92\86\89\90\907\9b\89\87\83;\9d\889¡{D¡{@\93\85A\94\83N\9a\80U\8e|Y\8d\84[\96{`\8etg\8e~a\98\88f\98\82[\94\7f]\95v[\97pW\95uW t\\9cuR\95pX\97nW\97hZ\8bkZ\86[h\8eZm\89X~\87T}\94M~\91S|\8fG}\8bLv\93Is\97S{\9cT\80\9dO}\9eWr\9aTn\9bWh\9eHm¨Hs£Gm©Ge¤;i¥>f\9eDg§@k¨:k´>l°Ct´@q¼Gy¼DzÀ<uÈ@wË5uÓ*~Ð/\89{\87²{\8c³v\97»\81\9e¸r\9f«~\9e¤~\9d¤u\94\9fv\8d\9be\8a£p¡\94\9c\9c\89«¡\8aª\9e\84\9a\99\81\9f¤|\9d\96\9d\88 \9f\8c¦\99\8c£«\98ª\9c\97©¢\8c ¢\95\95\95\93\97\97\9c\92¢\9b\94\9d\93\9b \9c¡¥¨¥£¯\98¨«\96¯°\8d«µ\94«§\91««\94\9e±¢§®ª¡µ­\9a¨¥\91±¦\96Ŷ\94Í©\91Ω\91ϲ\9aʶ¢Ï¬\9cÖ¯\8bÙ±\91ß»\85æµ\82ê®\8aݦ\88è´\84Ú¬\83æ´vòµtõÀ{ø¸tô¹bñ»jþ¾hð¿põÃiù¸aöÂbôÁcí¼hë¼dç²kò¼oöÁdò´mñ½rð³líÀkíÁfâÄlòÊ^éÂZóÕaïÔfòÚgùÕgòËiîÃtäÔuáÒyÒànÛÖk×ÑlÚÑnØØqÖßrßßpß×bØÕjÓÑYàØWãÔbéÃVáÂVàÈYîËRèÂXà½SâÂOçÈXßÇIнJÙ»PدUÔ·X×Ádѽ]äµOÙ²Zß½aݬcâ¶VߦMÛ£Yå\9aJÝ Tè Và\99\9e\90\95\9fLݤYé WÔ\9c\96\97\85\8f\90\8c\8c\90\91\8f\8b\88\83\8c\99\9aA¢¥>°¥=£\9e\92C\9e\94F\9f\996\9b\97\9e\99'­¥(©¥"«\95$©¡%¤\93\94\96-\95\8c\1e\96\850\9e\91+\9c\93 \99\8b\8d(\9f\8f\95\8e\96\8d\1e\9f\92/\99\88\90#\96\9b$\9c\912\9a\9e(\9c\8e4\8f\9a4\9f\97\96\92)\99\89\8d(\9e\95(\99\97\95.\9e\98/\9c\8f:\92\867\9e\811\9d\821\96\85:\98{B\9ex>\8a|I\87\8bR\96~X\8bt[\99\82R yV\8d\84b\8e}b\95tQ\9a\7fT\98oW\8eka\90k]\95r\\9dp[¡sc\92iV\98sR\90fV\87b^\95hp\97fx\8cSm\81Ls\95W}\91Yz\8aV{\85U\80\8cMr\92Ku\8fM\82\95K\7f\99I{ Rx£Xj\95Tp\94Nu\94Rj\96Lf\9fCl§Gf¤Qu\9dNq¦Cy¦Ir®A\80¦M\83·C\7fºG{¹6\7f¼AuÆ8\8aÉ4\80Ñ6\8am\89«w\8d¯x\88¬}\94µq\8b³r\90ª\82\96ª\80\95«t\92©m\8d§x\97\9a\94\99\84©\99\83¡ \87¡\9d\8b¢¤\82§\9a\83£\98\88\9c\9b\90£¥\87  \86ª\96\8f¨\9d\8c£\9e\92\9f\9e\8b \9c\94\92\96\9e\95\9e\9b\9b\9e¡£ª¦¢«¬¤¥§\96ª¤\8f¡±\95\9e¬\9d¥³\9a\9a³\9b\9c¸¤ ¬¤\9b±ª\91±¥\98Á¨\8f¿­\90À³\98¿´ Î©¡Ì±\9aÛ´\93Ö·\91Ôª\86Ú±~Ù¨\85Þ³\8cÝ®\82â¬~ì¶ró¾nô½uòÁjæ½bë¹Zù¹]ÿ»e÷¶jú½k÷½còÅgë½dàµb߶oá½sî¼eñµoó¹wïÂrâÀoÜÄqßÉcèÍ]ò¿_æÄgãÏ^ìÊhñÓdôÑgïÇtëÂ}ÛÎwÚÑ{ÑÙq×ÝgÜÛgØÚdÙárÔápÐÜhÚÎfÖÎXÖÆ_çÂ\êÀXßÅJß¿KìÆOîÈUíÇVë¹VؼNÕÆKÏÇIÓÆLϳZÔ¶aÌ´`Þ¼Sà²RÒ­Rз`Ô±bç²Tá¤PÝ£Vß\9a\9e\99\94\92\99\9cGݧV× NߨEΪSÎ\9c\97\8c\91\8d\98\93\8e\92\91\8c\91\8b\8b\97\96>ª F\9f£<\9f¥A¦\9fF\9f\93\8d\95\9b\9c\9a\91\93!¯ )­¥*©\99\8a0\9d\80\7f\8e/\9e\8e\90\8d%\9e\97\8e\96\90\91 ¥\8e,\96\93\91\97'\9c\9d(\9d\9c)\97\94-\91\8d\99\9b*\99\8e$\99\92 \99\8f!\96\92,\95\9c\9a1\97\930\98\94:\95\8e:\8e\84?\93\8a7\99\849\91{D\8b}B\87yH\86\82U\93xQ\91z[\8fyW\9ayX\92z\\95{R\8d}^\8dxX\8cr`\90kX\9apZ¢qe£f_\9akf\9cu`\91rZ\97kd\8fjh\95ip\92cy\8dUv\88Rq\94Yv\95Tz\8cL{\89Oz\88R\7f\8aNw\89Pp\90Qw\9eL\80\9fNy\99Ip\97Uv\94Op\93Ug\97Dg\9dDb¦Jh¡Ou£J{\9aHy\9eF\7f¥L\7f¡J\87«M\84·K\82½9zÉ9\86Ã>\8dÇ=\84Ò<\83n|²|\8c¶x\88ª\81\9d´x\98²r\96¬\82\8a§w\92¬u\93£o\88¦p\9d\95\94\97}©¡{¤\9b\88©¤\7f§\97\87¥\9a\85\97\92\8e\9c\96\8b\92\9e\92¢£\88¡\96\93«¥\8e¢\95\92\9d\9e\9b\96¢\94\96\9d\92\9e£¡\93\9b\99¥©£¬ \9c§­£\9d§¥\9a\9e«£¡®\9d¨­ ©¬\9f¤³±¦±¦\9a´¸\99¹¶\8a±\93ê\8aµ±\92À±¢Ñ \9bƤ\94Ì¥\99Ú³\85Ö¦\88Т\8bÙ°\8cà¤~ܳ\80Ý»~óÁzî½gø¿rö¶bæ½bôº^óÀZìÂ]ú½iô»kñ¸aï³föÄmà¼fÚ¿iéÁgé·oñÃrò°vé³oãÄiêÃeàÎbëÆgîÀhãÀlàÎZßÓhß×véÔmæËußÍxÚÊjØÕtÙÙv×ÓkÜÖoØåkÒåwÓÒsÐÛoÖÐjÓÑdÙËWÜÆXèÇUÞÃMæ»GéÀKã¼[èÄ`ãÇYÖ·SÒ½LËÂFÆÄNȶ^ɶ`Ô«a×»WÓ®ZÔ©QÙªbã°Zè\9f\9c^á¦Sé¦TÛ\95\96\8f\98\9eNè¤Nè®På\9b\9c\96\98\96\94\8e\93\8a\8aK¿\8e\89\84\93\8f\8f\85\8aA¥¡B\9f >£ 7\95\9a0\96\974\9b\92-\9c\9f\9a4°¢0°\96\94\97\93\98\9c\8d\8d/ª},\9c\832\9f\89\8d\8c\8f\9b\9b\92\94\9e\19\9f\92\9f:\93\934\9c\8e6\9c\9d6\94\94.\9c\95&\93\9c-\98\98\90'\97\91"\94\90'\90\95'\96\9d&\9b\900\9f\9c*\8d\9b1\95\95>\95\88:\8ax.\9a\85=\93\7f=\9a\8dC\87\83D\88\8bH\90\81Q\94\85U\92\82S\8fyT\90vQ\96yT\98yT\8buY\8by[\95kT\98mZ\98ma\9eu_\95o`\9arW\8akg\93n]\8dhf\82hj\8a`w\8eex\90Wt\83Py\8fX~\92\q\87U\81\82Vr\84Xz\94Hx\96S{\90L\83\8cNx\9dKm\92Mx\93Vh\9aTq\8f[e\9bUc\98Ue\9fKg\9dKo\9fU\82\97H\81\9cS\82¢E\8e¬J\85´D\8b·E\7fµ<\7fÅ9\8cÁ<\8dÌ=\86Ï8~{\84¯z\82®q\91°y\97¯x\8f·\83\95²\86\8d²|\85¥u\85¦s\8d\98z\9b¢w\9e\9cz\95\98}\98\97}\97\9e\7f¤§\80«¤\80¢\99\89\9f£\8e\93\9c\87\92\93\8c\9c\98\8a\9b\95\92ª\9b\9fª\9a ¤\92\9f§\91\9e\9a\9e\93\97¢\97\96¨\93\9d¥ ¤¦\9f¢\99¢¡\9c\9f¡ª£¥§\9e«¯¦³¨¢®©®­ ¥®\96§¹\93®¼\89µ±\89½¹\96¸²\94»©\94Ƥ\9fÏ¢\99Ê\9f\8dÇ©\93ѯ\8fÛ­\94Þ§\87å¥\8fß´\89è´\83î¼që´ní±gî¹aô½\øÆXñÃYúÃXñ¸aõ±iù²gú¼kó¾læ²qå·tã½xä¿xë»m÷·sý¿yó·näµhàÂjÔ¾vÙ¼rÝ»jàÆgàÏuÙÍzØÔvàËzÞÎkÑÆmÔÐmÖÊt×ËrÊÛoÒÕuÒÜtÙÎuÙÐjØÉcÏÇbÑÊfß¿XÝÉKéÄJïÃNå»Rê¶Zç½\ì¹Nâ½MßÁLÍÁRйRϲY×·XϲXȱWÍ´ZÚ¯]تTקTå\99\99\9d\9f\9dZݤVä\99\96\9aGߧAã£LÜ¡HÑ\97\97GÑ @Ó\9d\8c\86\8d\95\8b\88\8b\8c\8b\90\88\8b\8d\9cN¥£E\99\9a>\99\990\97\930\9f\9a\9c\9a\9c\9b>µ¤A¼\9d\91\90\93\87\89\83\7f\83\91\90\99\99\9e\9b\18©\9d\18¢\9f!¥¤2¡\9e1\96¡7\8f\925\92\9b8\90\976\88\98,\8f\9a'\93\97\90+\9f\912\9a\94+\8d\91&\91\9e%\92\984\97\991\93\8f6\89\852\86\844\92z*\94\851\9b\846\9e\90:\93\8cA\8c\8fP\8a\82S\8a\84O\8f{M\92zZ\8cqY\8drN\95wR\8cqS\8dmZ\9cnU\9boY¡j]\9bmc\98jZ\91sY\8cia\8cpa\87qc\85hs\8d_x\89cy\86Zz\8cV\81\8e]}\95Tu\95Vz\8bVx\8eR~\91S\83\97[y\8dU\7f\96Sw\92Rp\9c]r\9b\h\9fbk\98Xj\9dWg\97\t\99Yt£Pt¥O|\9fW\86©P\89£O\8b«M\90ºG\8f¶F\8d¾I\8d´L\91»A\88·;\8fÀ<\8av\89«~~³|\8a®x\86¦\80\97²{\91¨\80\85³\80\8a¨v\8d\9ds\8e ~\90¤{\97\9b\98\7f¤\9d\85\9c¢\81\9b¨\86¦¥\83¤¡\85\9b\92\93\9d\9d\8e\95\8e\88£\8f\8c¨\94\97¬\94\94\9a\96\9e¢\8f\9d\9a\92\9d\97\9d\97¡\9f\92£ \9e£¢\9e¯®¢\9d\9d¡\9b\9e¢¨\9e¥\9f§²°¢¦ª£µ©£® \9d¨¨\98£³\8cµ¦\93¸­\86´«\93º¬\92¾¥\9cÄ\9b\9aé\90Â¥\95Òµ\92Э\91Ôµ\84å±\89ç­\8dÝ°\8cæ²yî½tã½uá­qí¾]ð±jé¾Zô½[ê¿_ë¹gö¸bó¨]æ³dç¼dî²të¾kçµtîÃqó¯oç´dó¾uô¿läÊiÛÄdåÀeÕ»nÞÌqÚËsâÆnÙÐs×Ó~àÖnØ×jÍÊt×ÌhÎÓoÑÖrÓØrÌÞlÓÜmÌØfÖËcÑÉjȼaØÆVÞ¾TÝÃIèºJâ¹UìµSÞ¸^ß³[â¯NØ·ZθNËÄIÌ·UѼP̲Y×®^Ú»]Ò¬PÕ­[ЮWÖ£XÛ\97\9f\9f\9fOâ¥Uê\9b\8d\94\92HØ£HÕ\9aIϤNÒ£?Ù\9dIË¢<Õ\93\8c\85\83\84\89\90\89\8c\8f\84\91\8d\8e\9b@\9e\9c\91D\9c\8d@­ ;¢\930ª =¯\99\93\98\97\99\9c\8b\90\89\85\8d\84\87\8a\89\99\9e\90\8e ¥\9e\e\99 !\96\94 \9d¡5\9c\97;\8f\8e=\90\9a3\94\933\91\947\96¥'\9d\8d,\9b\97$\9b\8c\1f\96\8b\1f\9b\9d'\94¥\18\96\9c-\97\95+\91\870\8e\81,\95~+\86x-\8f\88+\94\8a8\8axA\8e~@\92uP\8e\84Q\8e\81M\83zL\8cxY\97x[\91mX\92zc\91yZ\95wb\91t[\96dc\92r^\9fhe\99la\9bmh\98lY\8bkc\88ll\86`l\92fo\91ps\94bu\91Z\88\97_s\8bPu\87bo\8a_m\8cX}\98\\86\8dPy\8eX\80\91Y|\8dWs\97bj fc\9b_o\9dbu\98Xt¢Yp\9e^|\9cTt\97]z\9fT\85¢U\88¯O\88¶L\8b«J\92ºI\94»O\97·A\85°I\82µE\7fÌB\8er\87§v\84«v\80¤w\86¬x\83±w\88®t|±y~²{\82®~\95¥\81\98«|\91¦z \9f\81\9e\9b\88\96­\7f\97­\8a\9c£\84\99§\81\96\9b\88\9c\8d\91 \97\8d¥\8f\89¯\98\8b§\97\98\99\92\9a\96\99\9c\99\92©\9d\93¢\9e¢\9e\9f©¥¨££¨¥¥¢ª\9f\9b¢¦¡¡®\9d\9e¦£\94®®\9a´ \98¯ \94µ\9f\88®¡\8dµ¨\8d¸£\92¾¤\9aÁ£\92Ã\9d\99É\99\96Â\9a\93¼ª\94Ê®\8aÓ¼\83Ü·\84Þ©\8aÞ¦\87ç±\80ä©vá±oÚ½fä·lç¯hâ¯gëµeë¾QíÆZðÂbì³fè¬cí¶cçºeßÀmæ´në¶hì¸lð¶hã°féºuíÅ{ìÅ{äÇnÝÇmßÈjÕÁrÜÄxÕËtØÄwÝÉwãÚrÝáiÖ×oÔÖcÒ×hÏÖbÊÔhÍÝg×ÙqØÎcÈÔeÉÈ\Ò¹[ξVÔ¾WÝÀOí¿Hä¿Hã½Xç±Xâ³XÕ¸SÔ¯WͳKÌÁNÕÈCÑÀI×»YÔ¸\Óº_à¬WÚ®RÕ­Nß©NÚ¡Pá¦Hî\9e\97\9e\9f\8e\8a\96\9c\9d\95\9eJÜ£CÑ IÕ\93\8e\8e\86\8b\95\95\83\83M¿\8d\8b\8d\87<\9d\8e<\9b\88\91\92\92\91\99\95\95\8e\98\96@½ 3°\92\8a\83\89\8a\8e\8a\80\7f\8d\8c\95\90\92\8b\1d\9b\90 \9c\99#\96\920\9b\98=\96\928\8f\9c1\96\9f9\91¥4\98\9e&\98\93(\9b\8d\18\99\8f\1c\93\93!\98\9f%\8e\9c\19\88\9a\1e\8b\91'\8e\8d&\8cy0\91~;\8b\857\97\862\93\7f4\92|7\8at>\83p<\82tK~\80P\88\80O\89\82T\9avd\97zf\97sc\9d{[\92yY\91u\\8fih\9agh£ma\9bqc\9ehf\98ad\98i^\8ahe\8dej\88s{\8ep}\8aqz\97g\7f\8bf{\8f[t\93_{\89aq\96^\80\99X}\89\x\86O{\88Sz\86Yp\8daf\98_l\8fbr\97`u\9aTl¨VnªWx\9cW\80\96Y{\9fX\85§X\83°Y\90¨L\85©N\8a¯C\97±H\97°O\95³E\81¾>\86ÊB\86p|¯j{²s\85²pz³oz½z\83Àr|º||°\85\87±\87\96³z\93¨}\8c¨x\8f\9f|\95\98\82\96\9f\82\9c\9f\7f\91\9d\87\92¨\80\9c\9b\8b\92\98\92\9e\90\92\9d\94\8c\96\95\95\9d\9c\98¢\96¥\95\95£\93\8fª£\9b\9e  ©\97\9f¥\95®§§¬¤\97¡¬\9d\9c­¤£¨\9d§³¥\97´¢\97»¨\97« \97º \8aµ£\87¹ª\95¹¨\8b²®\94¯¤\90º¨\95¼\97\93¼ \91¸«\9aÀµ\8cǶ\7fÖ¶\81Ó²~à¸yê­xä¶nà¾gã»så¯nÝ«låªdä¸Té¼XêºUò´_å¹Sâ¬\íºWâ»YèÂdâ¾rå¯hð°jâºké¼mç¹mæ»mê¼pçÃxßÐ\7fåÊpåÉ{ÚËrÞÎrÙ×uâÖráÙuÖÜnÖÐ}ÒÐxÐÜdÒÔcÊÏrÒÕiÊàeÖØnÔÕqÏÆ]ÑÄXÒ»TÚÃPãÀ[ïÄJÚ½KèµTä¬Lç¬Ná±UÕ³VײQѹSÔ¶UÍÃJÙ±MÔ±NÑ«[× L×°TÙ¢FÖ®RÞªSæ\98\9c\9e\91\9a\93\9f\99\90\90\9eLÖ£OÙ¥LÜ\9a\95\8d\8a\8e\87\8f\8b\81\84\8d\87\93\909\9f\96\91\8f\94\8c\99\9c\8e\8e\95B¸¡Bº\966¶¥1¾\92\98\8e\94\8f\91\91\85\81\8b\94 ª\93\1d±\8d\9b\e\9c\96"\98\97\8c"\9a\8f(\93\958\93\929\8f\90;\9c¢:\8d\97.\93\9f0\8b\99\1e\8b\96\e\96\95\12\89\9a\17\8b\9e\19\7f\9d\e\88\99!\8d\8e#\82\83$\86\80/\92z8\8axA\92\82=\8ft6\86\81:\92u:\8ds@\8duJ\8buL\90xK\96yZ\98{f\9c}\ nc\9dra\92wg\9ejj\99po¥al¤cX¤ng\9dbd¦md\94j[\98^i\9agb\96nz\8fpy\8en\83\97q|\8agr\8d^n\95i\7f\8em{\98a}\8fc{\8dPz\8a\z\94Yy\8cVu\89Xq\92X|\95^l\9eax [w\9bV{\9dN{¡N\82¨Z\8a¥K\88©S\81²\\91³O\8b¥B\8f®P\8c¸N\94µ>\8d±G\81¼I\8d¾9\90h\83°jy¿s{Ár}½wyÉ}yÃ}\88Â}\86·~\8e±\82\8d¯x\8a·v\8a´w\8b¨\86\96¥\8d\96©\86\92¡\84\91¢}\9b\98\84\98\8d\84\97\93\91\96\93\92\91\95\98\9c\91\98\9b\99\99¤\96§ \90¡ \93£\9d\99\9f\91¡£\93¡³\92¥²\9a¨¶§¤·¢£®£ª±\9a©¹\96\9f¹\97\98´¢\94³¥\96»£\99¹©\8e»ª\89²¦\8f«¤\96¬ª\8cº­\90»¡\8c¹²\86õ\8f̶\8eɵ\7fЯ\84Ô·|Û·uÝ´tݺlÛºlà³må³méªbë¯^ä¯Vî¿Zè·Lð·Oò°Yä¶Yà´Vç¿Uï»déºfî®cê²lé¼oß¹kêÀqïÁkè½sëÆ}îÆ{ãÈ\85îÒ\83éÌ|ÞØ}áÙoÔÜkÔÕwÕÛrÊÓ|ÖÒzÕÝqÓÙm×ÙjÓÝeÌÕiÊÛnÕÐoßÅcܾcØ¿]â»XèÀWà»UåµIÜ­Hå®KÞ²KݳMܾSܾTиTÚ²UÖ¹YÖ´XÒ±QÕ¥KÖ¤Ká®Iá¨Lå§WÝ¢Pá\9c\95\99\8d\99\96\97\9e\99\92\99\9d\9a\9d\94\9b\9e\92\8f\90\95\8f\8a\88B¿\8b\93\90\902\9c\91\935\9b\8b\87\90\8e\93\8d\96\9c\99\9e\9a\98\98\99\8f\8a\8f\8c\1e±\8c\eº\8e °\96\9a ª\92\93\1d¥\9b&\99\96(\8f\90)\95\940\9d\8b.\97\8e5\99\948\96\98,\96\8d+\87\93-\81\93+\89\9c\1a\8a\91\11\89\95\14\89\91\10\81\9d\1a\82\94%\89\8b+\8b\8c-\89\7f1\8f\833\84v@\8a|F\8cz;\95wE\8euB\90vO\8czN\8f{K\8fsS\9cwT\9bta\9d}k¡ug¢|_\9etg ke¦ekªf[\9fc\\9f^g¤ge¥[c\9e_a\9eii\9agf\8cso\88qx\82ut\86ww\82w\80\8foy\8at~\91n{\99mv\91^|\93[q\99Wl\9b]s\8d[o\8bZw\9aS|\97U}¢Yw\97]\86\9aT\83 Z\7f¦S\8a¢J\85¤M\85±L\90®O\8b§M\93¦C\8a´J\8f²F\8d·K\87µC\92¸9\90Â7\8ce\81±iv®s\85¶n\8a»}~½\83\7f°zx²x{µ\85\89º\7f\88²~\8b«t\90§r\93ª\7f\9a\9by\99 \86\8c\9b\8b\97 \8c\9d\96\85\96\9f\89¤\98\90\99\96\92\91\97\8d¡\9b\99\9d\8f¡ \93\9f¤\98«\99\9f\9f¤\96\99¡\98\9d\97\9c®\94\9f¬\8c¦³£¨²\99\9f´\98¤¯\9e¢¦\9b¢¬¢ ²¢\9d¤\9a\91µ \8d´\9f~°¥\92« \95¨ \89ª£\87¾\9b\87¹£\8d¹¨\8dÄ­\81̳\84ïwÖ®\81͹t׸wâ´sÔ¬uå³lè®lã»eð½Zö°YêÀVí¶Pð´SçÀ]áÂRä³Uâ¼^çºeâÁeÜÁpà´fá¯cé±aÙ¶kè´ièÀgãÉvã¿zÞÄxݽ~×ÃzÜÐ\83ÛÓ\7fäÍyÑÌw××kÓÍ}ÆÈ{ÆÜl×änØàtÖÓmÎÙdØÙlÏÎeÒÙ_ÖÎbÖÂeãÆWåÆMÚÅUÙ½LÖ¾SØ®V׺Mß»C×ÂIݶVÌÁPDZLÕ¸[Ùµ]ͯPÒ·RÒ­FÓ\9b\9f\9e\9f\9b\94\95\9c\95\9c\95\97[Ë VÆ\94\94\9b\9cKס=Ð\97\9e\9e\9b\92\90\93G¿\91\90\8e\95\89\96\8f\9d\9e\95\8e:\9d\90\8a\96\90\8c\98D® ?·\9c\9a\8e\8a\96\93\8b\86\85\93\8c\8f\8f\9a\1f«\92\16³\99\e§\93\94\9a-\92\8e4\8d\97/\96\92)\8b\9a4\96\98/\8e $\89\90#\8f\99-\83\95\1f\8e\90%\86\91\16\90\9d\1f\88¢%\8e\9a%\8c\83%\87\8e*\82\8e/\86v/\87\7f9\91r4\8azE\93\81C\8d\82E\8ezL\87rG\89sM\99\80\\95{X§yZ©oh wl {d¨yt¤oo du\9bgf¤uW¦a_ kn¢\g¤e`\9bnn\9fin\8aio\90xv\90z\81\96rt\8eu{\8cjk\8cn~\90n{\94b\84\94cy\8b\u\9ebs\8deq\90gq\96^s§Q\82¦aw¡Pq¥Sw\9cUv£S\7f®M\8a®X\8d¤N\90«H\8dºC\86¥N\8a¤I\82³O\8c­Q\95±B\8e¶F\8d»D\91»1\8ab~¤h~ªc\83¯o\89¶n\81®x\83­n}´o\80½\81\7f±\84\8c§v\92©r\89¡s\8a\9cu\99\9bz\93¡~\8f\9f\86\93§\8b\8e£}\9e¢\7f\9f\90\87\97\8f\88\97\97\8f¨\8f¢¬\94¦­\94¤\9c\9f£§\98\9d¡\9a\9a¦§£¤¥²\9f£³\8c\9b«\9d\9b± \9fª\9c\9b«\97\99¦\96\9e¤¦ ¦\96\98¡\96\8f\9d\9b\8e£\97\7f\9b\9e\83£¥\93©§\8c³\98\88¸\9e\8eÃ\9a\94Ç¢\86½¢{¾¦|ȲzιuÒ¶qÔ·{Öºwß®så¦aÝ®]á³bâ°Zó»[ôÁVæ¶Wíº[éÀcìÁbæ¼_é¾cçºiÞ¸uÞ½që»géµjè¿fÙ¼cÛ¸pé½rëÁ\7fæ½|ÛÇxÛÃ\7fÔÎ\86ÔÎ\80ÙÅzØÆwÐÒlÐØmÍ×qÓÌvÖÝsÇÝn×ÏhÙÎhÖÏrÖÜmØÔiÓÐWÏËUÐÄcÝÊ`ÜÃOÐÈKÕÂTÚ·RÞ¶R×ÂHßÀIÛÃJÜ»MËÀJ÷OȸUÕ³TÛ­U×­RάGÔ\9b\97\9b\92\9a\94\93JÛ¤EÔ¦MÎ\9b\96ZÉ¢ŢQàDÈ\9b\91\94JÒ¢GØ\9e\9d\97\8f\93\99\95\99\90\90\9b\96\88\8f\9a6§¡7\9f\9c\92\8c\8a\96\9e\96J¹£Nµ¢Aµ\91\8f\8a\8b\8d\86@°~=ª\81\88\91\8f\91 ¹\8d\18±\92\1a¯\9d\1c²\99\94\1d«\9e\9c/\98\91)\9b\8e&\90\91.\88 0\90\9e.\96¡"\97\97$\8a\93(\8a\8c)\90\8e.\88\91)\81\9a+\8b\99#\8b\92"\89\8c\1e\8f\951\8a\8c6\86\89/\84x5\84s5\92uB\91\82O\8a\88P\89yO\90zG\91uG\9d|Tªz_©wa¨{g\9c|i§pq¥mq£ru¡sn\99qh\9dv[\9aw\\97hi\9ejk¨cc\9cmq\9coq\93mw\8apw\8at}\95|~\95pu\8fln\88l{\8ah~\85m\83\91f\85\8cj\8a\94d\86\8d\\81\8ae}\9de\86¤^~¢Vv¡Wp¬Qt¥Rs±Pv«N\81±O\89³V\8a²G\88´E\80·Oz©K\80¤S\8e¨L\91®J\96ÀG\8bÈ<\8b¾<\7ff\80ª`{±b\80°c\82¨q~§w\80«w\85µs\84°\82\84µ\85\80¦\83\94 v\8d\9b~\89\9cs\8a¦\84\88¦|\90\9b}\8b§\82\9b¢\8c\98\95\98\82\9b\95\93\97\94\96\9b\96¨ª\98\99§\96 \99\9fª\9a¥¤­\97ª¨\98¯\99\9c²\9c\9d©\91\95±\9e\95¬¢\9d®\9a\9b¤\9d\96¤\99\9c \98\92\9e\9b\93¥\9a\8f«\93\86¢\9a\81­\9f\83\9e\9e\8f°«\8f³¡|À\9c\88º£\8a¾\99\84¿¡\84È©wÒ²xˬrÕ±uܸqÕ·mÜ®kå®`ܧhá¶aêµ\ó´Vçµbð¶\ìÀ\æÀaá¹`ãÄVàÅeî·eæÁtÞ¼nç¶jß¼pؽlÓ´\ݵpê¸vèÄqßÅuéÇ\82ÔÄtÙÐ\7fÙÉrÖÒpÇÓqÓÍnØÔjÐÑiÚÛqÏÖxÐâkÓÕlÓ×_ÝÜcØÛaÖÍ`ãÍQÓÏUÍÀbÚÀTâËUá¾OÙ¹[׿QÛ´VÖ»IܺKоJ×¼QÔ®X̼NϪWשPѦ[ܯ^Ù¤WÏ\96\91FÔ AÝ\93\96\91SРFÚ£QТDÍ¢NÈ\98^ͤVˤPÒªUÅ\9a\9cHÚ¤D×\96\9d\9d\90\91A¿ DÃ\9e\97D½ G´\9e\91\94\8a\83\90\94\96\96<¤¡A©\8f\9cF\9e\93J\9e\9d\9fT§£R¶\9d\95\92\88\8e\90\85\90\88\89\9e\9d\9b\98\98!²¢\15¹£\1aª\9d$¡£$¥\99&\91\9b&\9c\923\93\9b0\90\9d6\8f\94'\92\943\96\98&\86\8a$\80\912\8c\89'\8c\8b!\8c\96*\90\97\1a\8f\90#\82\93+\87\93'\82\931\88\8c2\92\81A\8d\87F\97}:\97\81E\86\8fE\87{F\8c\80I\99\86V¡z]\9dw\¤wc§uk\9bmp£yi§rt\9fkr­nh¬wp\9em[ xo¦lr£hn¦ej§sq\92uq\97mp\93r{\92pr\9anx\93s{\90kn\94hr\92ky\97g\8b\9a`\88\98k\87\94h\8b\8cl\85\9bf}\92\\88¬U\88¥W\7f¡Os\9f^o\9e\{©Uv­S~¬O\82©I\84­P}²C\83µF}·A~¬H\86¬A\96»<\8aÄ<\81Ç6\8dÇ4\89[\8f\9f\\88¬h\89©f\82ªl\84©w\85¬y\88©t|°{{³\82\82¬\80\85\9b\81\96\9b|\8c\96\82\88¡\85\8a¦z\8f¢~\94¢\81\9a¢\82\9e\94\86¢\96\8f\99\94\93¡\96\93¦\90 ©\95\98\9e\96¡¤\9f\9c«£¢¨¡¡¥\9a«\99\96®\9d\98§\92\93©\93\9b¦\9f ¥§\9b§¥\9d¤\99\99\99\99\88\9c\9f\86\9e\94\7f« \83©\9c\99\89§§\83º«x»«{¨z¾\9b\88¼\98\91¾\95\88Π\83Σ\82Ø«uÕ«wÎ¥zÕ¯qÕ£jקcÞª]ë­]è¨eñ³^í³Sî·Yé½\è²`êÁgÞÂ\à¼dä½hãÅjâ½tÛ¹sã½pä¾sÝ»fâ¾ué¿uè¸\82ç»\7fÛÊ{ÚËtÒÐoÓÇrÔÊyÇÏqÍÖnÏÑwÇ×qÏÝmÆØjÍÖmÑÔfØÛ`ãÕYÜÒ^çÐXáÐXãÇ^Ù¿VáÅVßÂKصNÕ·RÒ¶NʲJÖ¸QÑÁUϲTÑ´RÍ·Xʱ^ΫRǬT΢_Ó¢^Ö\96\94\93\9a\92\94\96\9dNͪDȪKÅ¢PÊ©XÊ©QצXÛªYÒ¨XЩTФMÇ SÍ\97\93\96\9fNÁ¤F¸¡E´¥E´\9c\9f\9bI¿\94\87\89\8b\95\8f\9a@¢¡E  >¤\9e\98F\9c\96\99\92\98\91\8c\8d\87\92\90\8c\8a\98\9a\9b\9a\92\18¯\9b\e©§\16²¦!¤ª"\9b¦)\95¡'\98¢0\9a¤-\95\983\9a\8e3\96\91.\8c\8b(\8a\87-~\87'\82\90.\83\94.\84\94"~\9a(\83\93"\85\97\1c\89\8f'\8d\90(\84\88.\92\8d5\8e\8c<\92\8dF\98\84B\8b\81?\8e\84@\95\7fE\8c\87Q\92~X¡\83T\9c\82b§t_¤j]¥jj¨se\9eri¢w`ªvg±~l¦ul\9fzi¤rt«kv¢op xr\99pg\99xm\9fxr or£l}\9brt\94tx\98f\81\94f\82\9c`\88\97\\89\93a\83\92d\8c\9b`\87\9bg\87£`}£Z\84¡\\7f«Tt©Pv¥W\7f\9fZ{\9eSz¥EwªGy«@\82»I\85¸A\86·@\8c¾:\8c³E\89¶>\88¼8\88À?\8fÅ=\87c\8e¯`\8d¦g\88¡l\8c¥e~ªh~·ey°p{µm\8d«z\8a°s\8f\9cv\97 r\90§\80\92©s\90\9e~\8f\9c~\8d¨}\90\99\85\99\92\8b®\97\8f \8f\8a \9e\99¤\93\97\9f\97\9e\9d\94 °\97 ¡\9b\98\9b\9f« \9f©\9b\96¦¡\93²\98\96¤\9f¡¦\9f¥­\9e\95\9f \98\9b\9b\94§\9a\89¡\94\88¨\96\85\9d\9d\7f¦\92\8a\9d\99\86¬©|®¤\7fº«\86¬\9d\82³\98\84¸\9a\87½\9c\83º\9a\87Ã\9esǨ{ظnЬoÚ§vѤsà±`ã²aåµ^â·hàÁWéÀ[öÀVä²\í®fã´[á¼[àÃcÚ·nÚ¸yÞÀnæ´v×»m׸iسrçÀeçÃpâ»uä½\7fåºzÒÇ}ÛÍnØÄqÖÊjÉÇpÑÒwÕÒjÚÔmÔ×kÑÒfÎÒvÓØ`ÐÐgÓÌ_ÞÆSÔÂRäÅVÖÉLÛÀN×½PÚ¾P̾TÉÄXÊÁNÑ»PÐÄOÊÉKÛºUݱ]Ƶ`Á¨WͬZÏ´]Ö§\Í\9e\95\9b\95JТMʤFÓ\9d\9cPÉ£WÓ¡XɧEÌ\9fUÇ¢MɬNÒ¬QÈ°WÖ¦^Ï¡WÁ\9d\99\93MÈ E¼\99\9dQ¬AëOÂ\9cP¿\99L³ Mº J¬\93\98\91\92\96\98\8a\92\92?\9f\95>\98\8b?\9c\96\9f\98H­¢F§\97H\9f\97\85\87\93\89\95\92\87\8f\91\96\9d\9a\15¥ª"«®%¬§\1f¨\98\97%\95 0\99¡;\8e\9e/\87\993\89\94,\85\8c5\88\99'{\95*y\8d)\80\99*\84\96\1cz\97 }\96\1d\91\8f(\91\8f+\91\97*\8a\945\91\938\89\8e2\87\90@\98\87<\99\8fF\8f\867\91\83C\8a\92T\99\7fQª~O«wV¨tg§rl¯plªl^¢{`¡}f¤}m°to©liªugªzp¬ll¢w~\9clm¨~r\99~v\9czt\99wz\95du\99fm\98qu\99tr\9bl}\97a\88\9cf\85\92i\90\8e]\81\9eb\86\9b`\8d\9e^y\9bWv\9eW~¯_u§Z\80£U\83¤Oz¥R\82¤J\7f®L}±J}´R\90´A\86»>\92¹?\82º@\89µB\87µ:\8eËB\92Ê;\86^\88\9fS\80¥a\81¡f\89¥n\87¤ez²]}ªd\82³g\94­e\95¨h\91\9cp\91\9f|\8c§x\8d\9fu\8c y\96¡t\93\9ct\94\98\8e\8a\82¬\97\90¦\95\96\9c\98\96¡\8e\95¨\89\9cª\92£¤\92\9b\9c\8e\9a\98\91©£\9e¦\99\9e¯\98\98ª\90¡ \99\99\9b©\8e¤¬\92¥¨\93ª£\89±¦\80©\9ez\9c\97x\9e\94\84§\98|¦¦\82­\9c\86§\99\80ª\9b\83´\92\9b\83¹ª\84Ų\7fƨr˵mʶpЫtÜ­sݧpÚ¯hà¯eÝÀlâ¹`ßÂZâÅSôÃWïÆbá¹`ßÃfæ¿dÞÅiá¾påÀs߸vâ±wÖ¸qдzØ´tݼjâÈiâÅgáÅqØÀxØ¿uÚÀyÐÇlÖÆqÑÃtÜÍsÖÏlÞËhÚÊnÞØpÐØoÓÚnÌÕ_ÒÉQÏÃPÓ·]×¼XÕËTÜÈKßÉPлIÄ¿MÈÃXÄÆK̽LϾRÔÉPÙ¼]Ù¸`Ù®eȯZÙ¨YݪbÚ\98\96\93\92\9c\9a\9bOʦOÄ¢NÈ\9a\9eWÔ¬LÓ¨GÒ\9fPÒ¬YʯPÄ´U˪bȤV¾\99P¿\9b\95\9d\9cLÉ£GĬF¼®D¾\9eIÀ O¼ Eª\9f\95B\9c\95\8e\96\95\8b\8bB\9d\8fA\99\8f@\98\8c?\9c\8aB\9c\93\97\9b\9a\9e\92\93\84\92\92\8e\8a\8a\88\8e\9d,¤¨*¦¦ ¡©(§¬%§¤!ª\97.© 7¡\9a/\9d\942\8c\926\83\9b.\84\97+\87\97(} 1y\945u\99(p¢#w \1e{\9c\1c\87\91\1d\8c\97\18\8e\9e \8c\9f-\89\98+\85\91.\89\935\8a\8b;\8f\84F\8e\85>\96\8f<\94\8fD\99\8bN\9c}W¤zO®v^ªpf®q^¨m^\9bod\9asd\9dzr§vn¥zj¨og¢tp¤\7fk\9e|u¤nz©|u­|~¥rt\97wm\9fhy\97jv\94sn\8cqk\89s\80\95k\86\9fg\89\98e\87\9f]\81\99\\86\96Z\7f\9d_\83\94j{\9ceu bt£Xk©Y~¤X\82\9aP\8b\9dD\83¦G\88¬K\80¤B\83­J\8d´C\87Á@\8a»:\8dÄ=\8a½5\86½:\93Æ>\94Ì7\8bR\82ªZ\82§]\8c¨\\8bª\\81³a\7f®[\88°k\85±a\8c­e\8c¯m\97«k\96\97o\90\94f\89\91m\9a z\95\9fv\94\9b\82¡\93\85\9c\8f\86£\89\87¤\83\97\9f\91\98¨\89\9b£\91\9e¦\8a\97­\8f\98\9c\8e\9e \88«\96\8d£\98 ª\95\9c¥\9a\95¡¡\91¬\9c\9b\9c\9d\98¨«\92¬¯\85¡\9d\83ª¨\80\9f\96x\9e\93\83¡\90\8d¨\95\85© \8c¢\93\95\92\86§\8e\82µ\94\80À\9du¾ª|Æ£kÄ´hÁ°pÓ¹nݸtÜ®wÛ¸kÙ´nâºmÖ¾lÙÅcäÈ`ëÁ^ç¹Yß¼cá¸XïÂeÝÀcݵrØÀj×´oÙ°nѹmÞ¿hÙ¶mßÊjäÌcêÏhÝÃjÙ»tܺuÙÅf×ÍjÛÃyÙÇvÖÌiÞÓiØÇoâÎpÑÏjÜØlÕÒbÏÊVÑÃVÖ½QÖÂ[ÓÄPÔÅGâÍLÏÈF×ÄP×ÄJÓÆ\˽XÄÁRÓÄQÖÌPà·bܲcÚ±fÙ±_Ù¯_اiâ\9f\9c\9b\9a\9b\9c\9a\Ô®QѦVÖ\9aOÛ¬PÖ¤ZÓªJÑ\99Vؤ^˧YÈ®a΢`Á\9e\97XǤJº\9f\9cHº¢T£SÁ£E¶¤B¿£KÁ£@¶\99\93\8d9\9e\94D\98\84\87\92\93\8a:\98\8c\85\91\8e6\9d\94\91H\9e\9c\91\8c\90H\9d\8d\8e\89\8a\8b\8c\88\8b\99#¤¡ ¬\9b*ª¨$\9e\9e#§¡)§¥%¬\9f\98\986\98\99/\87\8e+\8f\93*\81¤3\82\9d*w¥*|¡*t¡/\82¦\1f\84\9a\1e\84 \e\81\94%\85\91\1c\90\96\1d\91\94\1f\86\9e"\8b\98'\92\9a.\95\97/\98\87\8f;\97\97;\9c\8f\91R\95\84L\9d~J¨|U©kb¦ma\9eka i^\94jf\9a~j¥|m¥qg©vo¡\81i¨~p¢~uªns¥tx«xt¨u}\95ty\95pu\97fu\95dz\98kt\99ky\97_\7f\9ea\82\96b\8a\99b~¢hz\9be\84£\z\9b^~\9b\s©Vo\9f^x¡P~ªR\7f\9fP\86¥I\8d¦M\8b¦T\80µF\86¸>\90®I\97¿D\8b¿D\8c½H\8d¼<\85¾;\90ËG\97Õ;\8cZ\8fªU\90«Q\85¥R\86¨^{³Y~°c\84«c\85¯^\86²]\85ªc\92¤e\98\9ck\9c\98e\90\91k\92\8cu\99\90\81\9e\8d~\9d\89\7fª\83\86ª\87\90«\88\8e¥\85\90¤\81\9d¨\8e¥ª\9a\9e \94¡¤\98§¤\90©¦\8c©\97\99°\9f\8d¨\9e\8f¬\9d\89¨¤\94¥¤\92\9c¥\86¢¬\83¤¤} ¥x¢\9b\80©\98\8f\87£\99\8a¡\91\85 \91\83¥\94{\9f\8e\87ª\98\83µ\97\9fuº¤m¹­j¾·fƵrógдjÔ¾hпvÒÀ~áÃuåÍrÞÈdâºoê¼hä½jíÁ\ê½]ê¾cÝ»mÜ·kÜ´dÛ´nÝ·jÛ´fß´kÛ¾qÜÅoèËmàÂyäÇsÝÅqÚ¿kÔÍsÒÊpϽpØÁtàÐx×Íj×ÊpÚ×dÕÙ\ÖÏ]ÕÌTÌÌNÚÄIÖÂPÜÇSÑËQÖÂOÖÀDÓ¼GÓÈJÉËGÏ¿OŵZʸ[ѵcØÁ[âÁcÛ¹[á·\Ú±aâ¤Zâ\9d\9a\9b\94\96YÒ cÒ\9b\9aaÌ¥bͯdÒ©TÓ¬XÞ­Yâ§[Ö¤WͤUÕ©cÈ«ZÆ£^É\99\9b\9cM¾£S²¤U¶ªX®¬V³¥Lº\98\9b\96\9a\99\8e\93\89\8a-\99\869\9d\92\90\867\9d\88\92\8f\96\92\8f\89H\9f\87J\9e\86A\9e\86\869¬z4°}3°\7f\89\8c\91\96\97\98\98+®¤.¨¡%«§$§¢$¨\95\94,\98\8b$\91\90+\86\960\86\9f,{¥"{\9a'\7f¥.z§(\83® \84¥(\82\9e%}\9c!~\98\1f\83\97)\90\90$\94\99!\8f\92&\8e\92)\93\948\9b\967\97\96:\9e\938\95\86@\9a\89M\93\8eF\97\83\80Z\9fvf\9ams£un\99|f\9brh sj§}b±yo©{m®}j³xm®uv¯xz±x~¬qy wu\9exu\92vy\94ix\95ho\98`s\9eet\95b|\94[\83\98_\84 ]}\9dd|\95\u\98`x\9eVo\9cWt\9e[s¨Vv¥N}©G\8a¦?\94­G\8e¯I\93¬K\91¸M\8e³=\8f´F\97µL\97ÁR\93ÆJ\8cÉK\8dÃL\88ÄB\91ÎC\93T\86¶`\8a¤[\89®Y\85£Z}£^}±`~¬g\80¬c\87¢d\90¤^\8f\9ba\96\9e]\97\97q\8f\96d\93\8cp\9b\8b\8f\89\88¡\85\89ª\87\90¥\90\98£\97\9b \93¢¥\97\99¥\90\95¤\89 \9d\8d¨ \94\9d\9d\8e \99\91\99\9e\97\9c\99\89¥\9b\8e©£\84£\9f\7f¢¥\86§¢\87©¡\86­\9f\84¨\94\8b¡\9d\85\9c\99\88¦\8d\83¤\89\81¦\86\84\9d\8e\88­\96\8b¦\9c\85³\9c\9c\9bg¹©m»¥fÀ¯v¿³mÌ®pδyÕ¾rÕÆoÕÈmÕÌnàÆlݸoß»jßÁ\ôÅeå»^â¶lçÀmÒ·gÖ´`Ý®cÖ³hâºdÓ¼qÛÀuÞ¾ráÊrãÑfãÊrã»qؼjÍÇpÇÐtÌÁqáÁ}ÚÃláÔiÙÒqáÐ_ÐÍkÊÊ]ËÒSÎÉNÒÉVݾHÔÊMÐÓQÍÌIÔ¾=×ÆOǺRÏÁG˲SκXм_ι]ܳaرVÛ°Vá¬_à¸\Û²]Û¥]Ü©^ݬ_Ú\9a\90\9e\9aSÕ Z̨`À VÒªHеQ߬SÖ¯Wͦ[×\9eSʬXê]¹\9ag¼©aƤLÁ£M²¨\³\9fMº¢V¸\9d\9fC·¦@²\98\96\9b\93\93\8b\87\85/¤~: \90\96=\9f\89\8c\86\841\96\83?\9c\86H\9d\8cN«~N \85K\9f\86<\9b\8a\8aB¨}3¥\88-\9d|,ª\82\89\8d\8f\9c\98\9d\94#²¡!©§\1f¢\9f* ¤"« *\94\98'\8a\9b+\84£"y¢*~ª0|¢"\84\9f.~¦'x£+\84\9f&\81\9d\1fu\9c&~\93&\8e\8e0\95\99-\9e  \8d\9f+\8b\918\9b\9c\8d5\9c\97=\9e\92<\9f\98\94L\90\8f\91M\95\8aS\9b{j xm£sc\95um ke\9ezf§|k­\7fi©sq¥zt²vs°wt¯v}°|q®ts\9dyp®~o¢km\93fw\92fu¤e}\92`y\90g\89\9bb\85\9d`}\9a^\7f\9fb\85\9e`\81\96[v ]| Tv§U\80´L}¨T\81¯J\8a±L\8aµR\83­L\89°@\88¶C\89·I\95¼E\8d¼D\8bÁO\87ÉX\97ÄF\84ÈF\93ÑL\95ÑE\9dSt°[{¨Y\83£V\88¨V\84£]\81¯`\7f¤`\84§^\95°Y\94¨U\88¢\\8b\9da\88\92o\8d\93r\8e\8ce\9a\90u\9b\8ft\9b\8c\84¤\91\87\9d\94\8d¨\8e\94§\98\92«\9c\96¡\99\9a\9e\93\99¤\8f\9d¡\8a¦¥\89\9b¡\92\9f\97\91\98\96\8f\95\9a\94\91\92\87\98\94\96v ¦}¢\9d\92\90\87¨\9d\86ª\96\7f©\94\84¨\8e\82¡\8b\84\88¤\8b\86¥\91\8eª\8f\86­\99\82°\9ar³ iÄ\9d\9do»£j¬iͬtίvÚ¾xÓÌjÖÈhÔÅdØÂpÖ½dàµeæ¼]é½dë¼jݹhÖ½h׳`η^Ò¹gà¿jß¼hÞÃkÍÅmÈÏsÒÊpÓÅnäÌfßÀhá¼gÎÅ`ÉÐfËÍtÞÅvåÔxàÙqÖÖqÚÅh×ÐgÄÓbÇÊ^ÑÈLÛÆRÝÃKÕÄUÇÊMÇÄPÏÂCËÂ@˳MÊ»O̶MÔ³WÕ¯RÛ»RÓµ_Ù·_Ø°Z×±Yå²^ë°eß±`Ù¨cÙ°]Ó§ZÙ\99\9dbÕ£TŨVÁ¡U¾«K±JDzJÒ¬L΢LÉ\9b\9dUȦQ¾\9cU·¢dÁ§YŨOº­V¶¡S¹\99L¯¡O³£R¶\9c\98\9e\97\9f\9e\93\8f\8d1\9e\86\82:\9d\8e\96\96\84/¤}1\9a\832\99\83B\99\89\85\7fQ\9e\84M¤zF \83\85:\97\821\9b\878\9f\8d7\98\83.\9c\831\98\932\9e\9c)\9e\9a*\9c¡&ª\97(«¡&¬\9d\1f¬¡ ¨\9f+\9e\9f#£§( °)\93ª(\8a®0y¬+\82§*\82©&\7f¬&\83\9e2\7f\9b'|\9b&{\9b\1et\95\1f\84\98 \8a\95(\8e\9a(\96\99+\98\9e.\8a\9c=\89\96C\99\8f8\97\96E\93\97A\95\93D\96\97L\98\92N\9d\93Q\9d\89`\9f\89^\98z_\95xc\99mf\9bop¥zk¦\83i£ti«se nk¦oy¨y{­xv¨}}\9fxz\9f\82\7fm\9dsq\9bgw\99s\7f\9eo~\9ak\83\97j\84\9bc{ g{¦Z\82 Z\88\9ec}\9c\y¤_{®b}«]\85µS\81¸X\81«[\8c»]\81»P\83¶H\92°D\8f¶Q\93²P\91´M\95ÂB\8b¾R\8dÆU\90¾N\90ÆM\8dÄL\89ÍN\95W}©X\80ªN\85­Z\85­[\89¦\\83­[\83«b\87§^\91©]\8d\9fW\91\9e_\87\9ce\8f¡q\93 d\93\8do\8a\98p\8a\92s\97\87{\9c\91\84\91\8f\91¢\8e\92¤\9c\8f©\9a\92°\9a\9d¡\92¡\9f\8f£\9a\94ª\9d\92\9c\8e\94\9d\94\8e\94\96\8e\95\9d\9a\9d\91\8e\94\9bx\9a\94|\9c¦v\9c£z¯\9a\90\84©\9d\86²\8f\81§\97\91\85¨\8e\95\84§\8f\87¥\91\89©\88\87°\8f\9a\9cn½¡iÂ\9dhº©h¼¦sÏ°zйwÔ·mߺhÖÂnÕºnè¼fݼdå´gå¹Yâ´eÖµ_Ú·jÙ¯]Ó«bÛ±bϵiÝÀbãÇ`ØÃaØÁgØÅ`ÑÊfÞ»`ÜÊYÛÌiϼgØÐ^ÈÌpËÄkÎÄvÛ×}ÞÜjÙÒhÍÏgÎÇ\¿ÍWÁ¾TÒºSÓÆTÔÂIÓÀDÏÄNŽCĹCϺLÉ«NÊ»K̯HÒ·XÉ«Wض[Õ²TέRѹYáµaÚ¬^׸aá´fÓ«e×°`Ú¤hÕ\98\98S×¢TÂ\9cTÁ£O·«SÈ©D½¨F½\9fA½¢QÉ\92\99\9eX¸£]¾\9bf¶¡SÆ©QÇ\9a\99\99\9b\97\9eB¬§D±\9e\9f\94\8a\89\913\98\8b6\94\843\9d\81;\94\93\9a9\97\877\9a\896\9b\83<\9b\8a\82;\95~G¤\80K\9d|R\98vP \86J\93\85\88:\90~0\93z.\9az,\91}6\8f\830\9a\8b4\93\9a-\9a\97$\9d\93+\9f\9c\96\9f\1c\9a\9d.\9e\99#\9c /\9b¢$\91¥4\90£&\81¡'y ){¢5\8c¨3\8e\9d-\88\997\88§,{\9b"\85 \1c\80¢\e\82\9d \89\953\90\94-\91\97/\89\8eB\8b\92C\8d\94<\99\8eD\97\8cA\98\98O\9b\9bR\9b\98\9eX\9d\95\8d\92\8fd\95}^¤tb\9cxr¨zj\9e|e«rbª|iµqj¬\7f\80~¥w{«\81|\9c\84\7f{°zr«q{\9bg\85¥sz£pw\99n~\94v\80\99i\85£j~¨\|¢g\80\9d^}\9e`x¥e\85¨f\83³W\84¯a\83·T\82¸Z\8e°W\88³M\82·H\83´E\93½G\85¹I\90ºK\89ËH\83ÀI\83ÄT\8c¿R\94¾M\8dÏS\94ÏR\94A\86¦J\83¯Q\88°U\88°T\8b¡Q\92£K\90¤U\8c¡R\8c¤\\86\96e}\96`\82 _\87\97k\8a\9er\85\98g\88\94e\8a\87o\8f\8a\7f\96\95\88\95\90\87\98\90\8e\9f\99\88\9e \8f­\9b\98¥\8f\99\95\8e\99\97\8d¤\92\90¦\87\8a\99\8b\8e\93\95\96\94\90\8f\9d\90\7f\95\91}\9a\98s ¡z\9c\9f\92\8f\91\97\94\8f\93\81³\92\8bª\97\87¨\96\82ª\91\81«\8c\95\95\9foÇ£kÀ\9fsÉ£tÅ­uɬyÛ¬nå²dß»dà·aèµ^Þ¸Uà¹]׳^Þ·_ß¼dÖº]ݺ]Ô³b׺gÓ¶fÓ·]ÛÆcÔÀcÑÄ]ÔÃVÕ»_Ù½aÙ½]лZÎÊ_ÖÔlÓÎlÑÌsÍÌuÚ×rÙ×tÏÓbÊÇZϽZÃÃTǸQƽSÍÉPÐÇDÍÈCÌÇBýEľOɯZƱVɹK˹JÒ¯JʲSǪTÒ§QΦUØ´\ß²cݵbÞ²`Õ­gصh×´i̳aϦ[Æ\97\97\92Y¿\96M¾¥H½¨M´¬Qµ G¶£MÂ\94\9a\94X¼ Y¸£[À¦_ŧYȦMÂ\9a\9b\99\9cR¦¦H \9eA¨¡?­\97\93\83\84\82H\97\84@\95\83<\91\8e<\91\947\90\8eA\90\8fI\9f\8d@\99\90<\9f\87\815¢}>¦\83C¤|M¡wG\92\82<\8fy0\94}5\98z2\8b}3\91\89<\93\83:\97\808\96\86)\9e\8a$\96\96*\92\92'\99\9c\1d\9b\98 \9f\94$\94\96.\96£,\92­0\97ª/\8f¤7\84¬.\8a 1\7f¥3\80 0\8b¡1\84\9d*\88\9f+\84ª(\80¥\1f\80¦\1c\80¡"\7f\9a'\83\996\83 @\87\99?\85\8e=\90\86K\9c\87O\96\88M\98\96J\9e\98P\99¡[\9d\98]\9e\9a\9b\99\93\98\8b\83\81e£{m ~l¯rq°vo©{y¯\7fy¤|l¦|p¥\84\81\80|«tw\9ey\81¢r\81¦r{¨j\81\9fr\80 pv¦b|ªd\7f³^y±c{¶^\80«]~§iy±g\81·d\89³`\83´U\7f´V\8cÀX\8f»K\8b¾C\8cÁI\90¹I\83·Q\83·S~ÈK\85ÅP\89ÈR\8c¾X\93Ä]\8eÈZ\9cÑU L\81\98L|\9dZ}\9cX\8c U\83\9fS\98£K\8c¤S\82\9e]\83\9bX\84\9bg\8b\96h\85¢`\89\9aa\87\94l\8f\8ea\8a\8ei\8d\92x\86\8b\7f\8a\92\81\9a\9e\86\97\95\97\9b\92\8e§ \86ª\9d\90\9c\94\8f\9f\92\9d\92\8e\9f\8d\83\99\8a\85\97\8c\89\9b\89\83\94\8c\84\9b\8e\82\96\8b}\9d\92z\9d¤y¢\9d\99\96\90\88±\93\7f¨\8e\88\81\9a\92\8a\82²\88\92\81­\97\9b\9b\95\9dqŬx¸£n¾¨qȸz̲uá­lß´dÓµ_Ú·hà©fã¿eعYÙ¿gÛ·]×±]Ô·S̬fÔ±_Æ»eÔ°fÕ¶]ÉÆ]ζQÅÁ]ϺPÏÆ\Ò·Q׶]ʽeÉÅdÇÃ]ÇÏjÏÔuÐÍrÒÑqÍÓ{ÕËgÐÖaÇÒ^¾Â[ÎÃQżSÐÊLËÎDÆÎGÕÏQÍÀI¼ÄPξWŹ^Ê¿WкTͱYÊ£ZŧLÐ¥Jϲ\Ò¯aЪcض\Я[Ù¯eØ­iÔ®bÒ¬Yͳ_É\9c\9e\99\9fH¾¨N¼§IÄ¢Q±\9fP¶¤EÃ\92\8f\91T¿\9cU¬¥XÁ\9dRË P¡RãV¶\9dT²§W²¢G\9f\9fF¨¤Cµ\96\9b\98\87\8d\92>\95\8cK\9f\8c9\98\895\9a\8eE\90\8eG\8c\87?\97\8bB\90~<\90\8eG\9d\86:\9dvA§\7fA\9eyI\9dvH\94yB\88\83:\88\80B\96}7\89\82;\98\8c6\9a\91D\8e\91.\93\81*\9e\88&\9c\8f/\94\94\9f!\98\9b\1a¢\99\e\9a\9d'\91¤'\8f\9f$\92¡-\8e¦.\84\9f-\7f£&\8a¤(z\998|\9b:\86\9a4\89\9b4|¥&\8c¯%y§\1c\82\98!\88\991\83 9\89\9d8\83\92B\85\90L\8f\93N\8b\94@\9f\92D\9e\94J\9c\90L\9c\9aU\99\90\96\9b\93\9d\8c_\9c\8f\8eX\9e\8d^¥{f¨wj¯\7f\82x²zs«\87\80\85\85s\9ct\82±|\80¯h\7f£ky\9f~\8b¢~\82®v\89²p}¨n{¬qv°dz«p\88µk|¬i\81·`\82·a\7fÂc|³^|½f\87¿g\86Ãe\86¶T\8d²R\89ÅT\94»E\89¿M\85¶_\83¿R\8fÃR\88ÄU\95ÎU\95Î[\92Í`\97ÇW\98ÔSªOw\8cZ|\93Z\82\94M\82\9cQ\83\9cL\8d\9dO\85¥[\89¢U\8e\9f^\89\8fb\8b\90_\82\9cU}\99Y\89\8d[\94\8dd\8f\8bm\87\97u\8a\96~\97\92z\9b\9a\87\9a\8d\8f¥\8b\90\9f\97\89¥\9e\93¦\98\91\99\89\9b\9d\81¥\96\85¡\9c\88\9b\90\91\93\8a\8b\9c\92\92v\96\92\82\9d\9b\9a\8e\92\8b\85\8f\88µ\93\82§\94z\98\86~\9a\87x\9c\8a\80¨\87\85\8d\8d\95k²¤t¸ªw´¯f¿¯eÉ©p̳wЧzÙ¨pÜ¥nЮhØ©fß®bà½fÛ¿a×ÆdÕ½^ÕµZÜ´ZÉ«`Ƴa͸[ðT¿­VǵRεXȱSÈÀVÃÁP÷XξWÔÅ^ÍÆ]ÐÁ]ÌÅlÐÌnÎÎqÍÊsËÖsÒÛ^ÕÕYÒËaÈÊaÅÅZǾVÁÈJÃÈLËÁSÐÆRÑÅOļLÁÄJÌÃTǽPƾOĪQÄ¥W»¬S¾¬Tî\̦bÖ¬[κd˵k̺bʸgÆ´hˬ]À´VÅ¥X¿\9a[Á¨RȬPÁ®UÁ\9f\96\9d\9d\9e\9c\91J½¢H±¦IÂ\9f\9c\94\9b\9fW©§S±\9f\98\94\8f\8d\8d\90\90\8dL\98\8eJ\9c\8fF\9d\867\98\85A\8c|G\88\82;\8e{<\94\87>\90\88K\95}Q\96\80\87\81Q\93sJ\90qA\8a|H\8b~@\8c\82E\8f\83=\96\81A\95\8fB\94\946\98\8b.\9d\8c*\9d\88-\9a\88*\9d\93\9f\9b\1a\9a \1e\9b (\9e\9b$\90§#\98 #\90\9e)\86¦.\87\9e.~\9a8u\9c9|\9d7\83\98:\85\9b.\89©+\88\9c'u\9a&\7f\92&\8a\9a/\82\947\8b\8fI\89\8dG\8b\9b@\91\96N\9a\97K\94\97R\92\8aV\9c\99U\9a\96V\9d\91Y\9e\8b\8c\98\93\93\90\91\7fe¯zf¥\7f\80\8b\86\85\87{©|\87£v\82ªsz²k\82¦s\8a¡~\85¡\81\8d­|\90ºx\84¸g}»d\86»o\7f­x\7f°u\85¾j\86¾n|¾o\86Äa~Àa\84Çi\85Ã`\8aÉb\8a½Y\90¹M\8e·G\96ÀR\90½[\8d¯_\86¾^\82»^\8cÉf\99Éb\97Äg\8eË]\96ÊQ\96ÑQ¥T~\98P\81\94K{\9dM\8b\97V\91\98K\93\94W\84\9fZ\90\95V}\9bU\87\89X\82\8a^\81\91X\81\92`\87\90_\83\91l\85\85j\93\92u\95\97|\9c\9er\9b\92\82\9c\9d\84¤\9a\82¥\93\83\9f\95\87£\90\97\98\9a\94\90\94§\97\8e¤\8b\80 \85\8f\99\85\89£\94\93s\90\87v\9b\92x\9c\93\91\84\8b\80®\9a\85®\91\8c¦\8e\85£\91{\93\92u\9b\84w\9f\93\8c\83\87\8a\9av´ j·±m·±kË«kϦlÒ¤hÓ¨dÖ®kέb׬_Ù§eÖ±]à´Y×®TÛ¹_Ò°[ϯVΧdȪ]Ê®]È«TɺMýMűXÆ·M¾¼Y̳\¿»ZÁºRý^Æ·]˽hкfÏÂkÐÃnÉÍeÓÎrÇÕgÔÚ[ÑÍ\ÕÈXÇÃUÃÊ]È¿PÇÍQÊÄWȽNϽKøIÒ·]ѲS˲\ȺRȨOÁ¯YÀ§U¹£YÇ«SäaͦdÓ®jô\¼°fŹZ¾¼ZĺaÁ­T¸¤\Á¬fíTÀ¬UǨTƦW½\96\9cK½£Iº¢H¼ D­ H¸\9fC¼¥S½\99\9eN¸¢T¸ N®\9b\9bV¦¤Eª\8e\8c\92F\9e\89O\9f\94\94Q\97\8e\8b\8cI\9f\81F\93\89;\95\84B\93\839\93vC\90\80<\86\7fG\92\84H\9a\84I\9cvP\9d\84K\97\88S\92wI\93qB\97qD\87\82E\8a\80<\90\80>\97\86;\99\8fB\99\87\895\93\8b0\9e\82\86\8b\8b\1d¤\91%\9c\91\99#\92\98+\90\97.\91 %\90\94%\89¥'\8c\99*\82\9d&x 4x\9c9x\94:\84\9e<\84¤&z\9c0\80\97)\85¥4\81¤9\82\9b:\83\9aI\89\92G\81\9d;\8b\9a\92Q\9b\92R\97\97_\94\99b\93\97\90a\9e\93\9c\98\97\98\8d\93\95\90\7f\8a\87\87\8d\81\80\87¤z\86ª\81\7f®p\82\9fr\86£~\87¡\84\91°\81\8b®\82\92µx\8b±t}Â}}¹}\90·t\8c¹s\8bÀr|¹n\88Áf\84Àd}ÃnvÇ`\84Ïc\8c½a\85¹M\89Æ]\88ÀS\8d½_\8e¸_\89·d\8a»\\86·`\90Åk\94¿h\95ÍZ\8eÈY¢ÏW\9bL\8a\95S\86\95P\80\8eS\87\91U\82\96K\8d\89V\91\92O\85\95S\81\93J{\87X|\8eT\82\87X\8a\82e\80\8dr\7f\83r\89\84q\90\82v\98\90|\9c\8fy\94\96w\97\91\86\9c\9d\8b\9f\93\8e¡\94\8a\98\99\8c\9c\9a\8b\93\9b\9a\92\8c\9d\85\8f\9d\89\80\9f\8a\80\99\8c\80y\9a\83s\99~x\9d\85\87\7f\99\85\94\80ª\93\86¯\97\8b­\8b\85\9e\89\84\9d\8f\96\81£\93\92\88\86\8d\9du²£m³ t¾¬kË´cΪiÒ¦fË­cÔ¨hÒ¤_Ú£XÓ¤bܱ\à²Zصaá§VÒ¯YΨ`É¥aÓ®Yȱ_Å°Wù[ɵOÆ°Zº²TÁ±OǵXξSÄ¿^È·[ϳ_Å¿l˺nÙÂoÕ¿dÏÉhÎÍlÐØeÆÔhÉÐcÒÈ[ÔÌWÉÊXÂÅUÀËL¿ÆQ˾YƼUξW×·WÕ±\̨`É°\ǤPÀ©QÄ­P½©V»¤RÇ©WΩYȯfÁ¬i½±_ƹT¿µY´·W¹¨b´±g¾¬añ`¿ªYÄ¢SÅ\9fN¼ TÀ\94\9a\9a\97H°¢@¶§H¸\9b\9a\98\9aO¶¥S¶ M¥\9dO\9a\91B\9f\95F\9b\95H\9f\8bT\9c\8f\96\92W\98\97\92V\9c\8dL\9a\82E\93\82A\94\89=\95~9\98\85;\8b~K\96~K\92yM\96{C\90{I\97\85I\90~S\96\84P\90yJ\90qO\8fyM\9c\84L\97\8bG\8c\8f;\92\8a?\9c\85.\96\90-\9b\962\9e\8d\87\8b\91\95\92&\9c\8b&\91\87(\8e\92+\84\90*\81\9a%}\97\1f\81£)|¦/|§*s«1v¡9~©1\80«/\85¬+\7f¤6v\9dCz§E\83\9bN\87\98E\8c\8dK\88\92G\96\94I\96\93P\90\9aO\91\98[\8f\99h\99\8ad\9f\8b\9a\98\98\95\9c\9a\97\9e\95\85\83\88\86²\81\88³\8d\8c´\88\89º\90\81°\89\80¬\80\88¦v\83¦v}¡z\80«u\91®\81\90±|\94±\83\90²\87\91¾y\8b½u\8fÊt\8fÌs\84Ây\85Àg\7f»e\80º\\83ÉaxÇb\89ÍZ\8aÑ[\8aÆZ\89¾V\8b¶X\8b·`\89¸j\8aÁ^\85¼b\8dÂf\86ºm\8eºn\97Åc\96Ô_\90Ñ_\97T\85\9bO\81\97R\89\8bG\86\9aJ\8b\8cG\90\89S\7f\91R\81\90I{\92N\7f\8cV\7f\8dO}\8cY\88\8b`\88\97g\88\84~\91\83p\89\8cq\91\8b~\9d\8f{\97\8fu\9b\9f\86\98\9c\8b\9e\93\8d\95\98\86\9c\9a\81\97\9a\91\95\91\8f\91|\9d\89\8a\95\8b\84\9e\87\80\92\87y\91\84r\99\8cv\95}j\99\84o\97\87o\97\95{\98\89\96\83\9c\8f\86¨\93\81©\8by\97\95\7f\95\86\86w\9d\92w\9d\91\8d\90\97\9c\9fp³¬sŤdË°eÓ³bÏ´Vʪ_ΣSÕ«aÙ©bã¨Tå¨Ræ¨`à®Yϳ\ɪ[űZ͵Q¸X¼°Y̺KýUűUƸS¾®MÂÀV·¶TĺZÉÀ`ͲZÆ»hмcβjɳfÆÁiÓÈtÊÒaÈÕhÈÁbžeÆÄSÇÐZÉÐKÂÍIÁÄN½ÃVÄÊ[ȹZ˸QÔÀd̹Uʵ[Á¯UÀ¬\·¥\ĪW©XÇ¢UÁ²`ϧX»´VÁ²\Ä¥S¼¶Y¿°_¶¯Uº©`çZ³^Á®T»\9c\9f\93\8e\9c\9d\9e=«¦;²£C»\9e\98S¸ F»\98\98\9aG¤£O£\94G\9b\96\8aD\96\92\91X\97\90M\96\92\92\95I\9b\8cG\91\8aF\93|A\90~5\95\829\94\87F\8a\88B\8dvB\95\7f@\8c\82M\97zO\8brH\9a~S\94tQ\8d\7fI\88\81R\8d\81O\8a\82J\94\80H\98\7fH\8e\84I\94\8a@\95\95=\9b\92.\98\994\9e\8e\906\93\89&\96\8a)\94\96 \9a\8f'\95\92(\95\97/\8a\9d+\83 %\8a¦0~¬0\83©0w£&\80¥/r¤:|­.zª5tª-\80¥/\82\9c=z\97C\81\95=\7f\92I\84\9fF\84\99I\90¤G\9c\9bP\9e\91X\94\9bU\98\9f\90h\9e\98\97\99\9bh° `¨¡b¼\91\9d\91\92\89y¬yt·\85\7f\80­\8f\84°\95\86·\8b\8a´\8c~´}\84¤~\86¨\80~¥~\8d´{\95±z\92ª|\8aº|\8f°s\8a»u\93Éq\94Àj\95Àp\8fÅ}\96Æs\8fÀj\80Çn\82Ãj\81ËczÊd\8bÏ\\80Ð\\89È[\8cÀ`\83°f\8cÁf\8cÂf\8d¼o\84¹`\89¼m\8fºb\8f¿a\8eÌ_\96ÆZ\8eR\84\93H{\94?\82\9bGy\94N\81\91R\87\8fG\86\8eDs\94Av\91Nu\8fN|\8eSv\97c\81\98j\8c\92x\93\90{\8d\84u\8c\8b{\98\86m\9d\88n\93\96m\93\9d}\95\99\8e\91¡\8d\8d\9b\84\8f\92\85\8c\8c\8e\8d\81\95\95}\98\96\82\9a\90|\97\94s\93\8bu\9b\8dh\9b\83l¨yj£|q\9d\8cw\9e\97\94x\9d\98\83\96\91}\9a\94\84¢\8dy\9d\8d\8bn\99\85n\94\8co\9d\97n\9b\90\93\94l¤¤eª\98\9dj½ iȦcɲ^È®UÈ´OάLß³JߪVÝ®Tä¦ZÞ¨NÜ°SÊ®Pȱ[˵OƬHĹQĽXÊ¿MÁ¼M»µKÅ°WżX´¼T¼ÅQ»½U¶¶WÀ®]ʱWÅ´`Á¯`»µ_ȼkÊÁj¾¿lÂÅ_ËÆgŹ_ý[ÀÏUÉÌXÀÏNÂÈT»Í]¶¿^¸ÀYÁÁRǾ[¾_¾·_Á»gÅ·_¿¹Z¼©Vº\9fMÆ¡TË\9fOĬRƪ_¶¤\¶­[Áª\Æ¡XÀ¨SDz\¿®[©S¹¨U¼¤P¾\9bA¿\91\95\99\92\99\9c8±£<²¡O«\99\9e\9e\98\9bB® E§\9d\92\9bM\9d\9a\90J\9a\92T\9f\94\98O\9b\93I\92\96L\94\8dK\9f\84\8d:\9b\86=\94\87C\9a\82C£xH\9c{>\97sK\93yS\9d\81Q\9bzI\95\86K\8a\83U\8c}W\89yI\8b~M\88{F\91\80E\9b\8fD\98\8cE\8f\90@\92\9c=\9a\99A\98\91@\8c\926\90\940\97\8e)\94\93(\89\9c1\8b\92<\8a\995\87\9d5\86¢(\8c­%\86¦0\88«(x /y\9e-u¦9m«8n¢0lª:xª6\83¨7\80\95A\86\949\86\96<\86¦D\85¨M\92¨S\99 O\9a¡V\94\9b\94\9d\97d\9f\91\92\95\92\94\9f\9a\96\8d\80g°wk®|n¬\84\8b\80°\93\80²\8d\8b¯\7f\87µ\86\89°|~¬|\85²~\91®}\9c¯s\96²|\8a²v\86¶q\8d¿t\90¹m\94ºi\8dÅu\96¿v\95Çu\8aÍp\8aÊp\82Ëc\83Âh{Çh~Ãd\88Êi\83Àa\85¸j\82»s\8cºk\89Éo\87Çj\85Ìh\89Ê]\86Ê]\80¾\\88ÇV\8dÄX\96N~\94Mz\8fIy\94Ms\88M|\8aIy\8bL\7f\91Fo\86J\7f\90J|\8dW{\88Ku\99W\80\8ce\90\89r\87\7fq\8b\82|\8d\86w\90\8aj\9b\88r\9c\91q\95\9a{\94\8f\86\97\95\87\8c\9f\92\84\8e\8b\81\89\97\8e\85\94\9cw\92\92{\98\9b\7f\90\90v\8b\8br\99\92m\9a\8di\95\8f\7f\8de\99\88\8e\98|\9b\9b\81\9b\8f\80\94\94\83\9c\89\95z\94\8ak\98\90s\92\9a\90\97\97\9e\9dfµ¥cÁ\9fV̧UÁ¥R¼¬QÒ¦QÙªMÒ¡Nå¤Tß¡Nç­Lè¦KÙ¸GÍ°GÒªXƳGË»QαFÀ¼MÇÁVÇ»PÀ¶\ı_·¯[³¹Yµ°T°¶O¶µa²¨[´¬g¸ºb´²i±Ã`¿Ãiк[ÀËVÈÁa˺dǹaÁÃV»ÈZÂÐS¿ÔM·Ð[ÀÆ\¼ÃY¶ÊV»¹`úZÀºi¹¼eÀ¶Y¸±_»±e¶\9fe¾£cÄ\9eRŬW»®P·®L«¥X±\9eU¼£R³\9f\9aP¿\9bT»£Z¶¬O²£UÀ¥P¸\99\99\92\8e\8f\99\9f\99\97O¯¢Fµ\98\95@µ¡A¯\9a\9f\92N\9e\8cQ\9a\91\9f\92\94\8e\9aU\99\94H\94\8fI\91\89@\9d\8c8\9c|>\9a\89C\97\82?\99\84;\99\83A\99xE\90\84I\9f|H\9arN¦xP\91\80L\95\83G\95\81N\87{B\89\81G\86y@\8c\87A\9b\88B\92\8dI\8a\89A\85\92J\90\94L\89\91G\88\95@\86\89>\8f\92,\8f\8b/\92\9cA\8f\970\80\990\82\9e3\84­)\87¤0\85¢6}\9f&~£0}¬.}³,w¢,o %v¡)z¡0}\9c-v\9d;{\9d<\84¥>\84\9fB\8a§H\8b°J\91£S\9eªX\92 T\9f\9aW¤ Z\9e¦d\9e\97\9b\91\8dj\9f\92\97\92\96\8d\86t²tt²uk§\82\81\98\83®\8a\8a\87´\82\83±~\8b©~\8c©t\87µ\81\8e­y\97«z\85´x\81½m\84¹g\88Äu\88¶o\94Âx\93Æl\94Át\8cÆu\92Íj~Ðl\84Îk\8bÂc\88Ç`\84Ée\85¾i}Âg\80»n\86ºm\90¾e\8eÔh\8aÉk\8eÏY\93Â[\89Ç\\84Ë]\94ÀS\9a?}\8aFt\8d@|\87Hx\86Ny\83Eu~@u|Cv\81E\82~E\7f\84L\82\93T~\95d\84\8ff\8f\84r\99\8av\92\83u\8e\86n\95\82p\99\81r\96\90{\99\93r\92\93u\86\90\83\88\91\85\8f\84\91\87\84\93\8f|\8e\94\80\90\9e\83\8b\99w\92\99i\91\96h\8d\92k\93\97m\92\8bh\9c\88\86j\9a\88f\9b\98\9bx\99¢w\99\97\94v\9b\8bw\9e\8ay\9e\94w\9c\9fm\98\9at\95¤r\9e\9dm¢£b«\9f\97\9eT¾ªUÀ¨W¤KÀ©O¢OÓ£LÛ\9cGß Dá£Bà®Fé­Eà¶?Þ°<ϱHűIżIÑ¿LÌ»L͵Y¿¾YÆÄ`ǾYð\¼³`½©W®­T³§Tª­]¶­e±·e¸¿g³À_À¿dŽZ»¹]ÂÅSÇÉZ½aÆÃ]ÇÃYÂÁPÀÐV¼É^¸Ä_ºÈbªÃX­Äg¶¶g¼Àc»g½³k³·a³¨`¹£e¸\9f[µ£aµ¬]¶¦L´©N±¤G¨¤N¯\98\9d\95VÁ¥V¾¥W· T»\9d\9bD¿\9f\97\9b\99\8a\86\90\9f\9c\9b\93\9a\9c\92\96\95\96\9a\98K² R§\96\9f\98N\9a\8fG\96\92D\94\928\97\898\9c\86:\95\809\8ew>\8a|=\91\7f9\94~B\95\80J\9d|B\98\81L {J\9esI\91wA\8ev@\91\80I\87\86M\89\81A\93}N\95\85M\8b\8aC\85\8aE\8e\93A\8a\92E\8b\8e>\83\93F\8c\98@\8d\92<\94\8eF\90\91A\8a\937\84\967\80¢0\83¨*{¢'y§.t§2|¨)|¤'}¯0oª&q\9c$f\9b$k\9e-u¥)y«3\85°=\8e¤C\8e¯P\97³P\8c¬U\8d®_\8e²_\9c©Q¢¯X¢©U\9e\9fd¥£f®\95\90p\9f\96e\9a\8ch\98\9bg\9f\98\91\8b\84\7fl·yl±~l¬\8c\8e\8b\88®\8e\85°\8f\8d²\81\88·\83\81ª{\81´v\85®t\8a·q\8e¾s\83¶p\81½g\81µm\8bºt\91Âh\8b»m\91Èd\95Æj\8c¿k\83Èv\82Ìk~Ìm\8aÌq\88Âd\87Âi\81Àl\87Ät\82Ä|\86Ðn\8cÓd\86Õg\91Ï^\8eÍ_\8cÐd\8fÈi\94½^\90By\90Ks\8cHj\86Bs\8cFp\89;i\83LjvMqvK~~Ux\8dVu\95[u\9bV\81\89k\87\88i\84\83x\93\7ff\88\85o\94\84k\94\81y\94~q\8d\88v\90\8e\80\88\92\84\84\88\82\8a\8e\8d\89\90\91\93\8b\8f\8e{\8b\94x\8e\9am\92\8av\8f\8e_\98\8fo\97\95e\9d\86k\94\82^\97\88m\93\96j\94\93\9d{£¡\7f\92\98z\92\93w\90\87}\96\91s\93\95u\98\93u\99\9fn\99\94\9d`³¥^²¢X¶¤a¬\99K· Tº\98ZæVÉ\9eLíMëGɱQÒ¯OÞ¬BØ­JÖ·HײOÕ»LÇ·VıK±NDZB¿OÎÃJÈÀUÆÁ^½­Uí`µ²b±¶a«·]®±V§¸R§«^®¶`¯³_»¸\¼ÂQº¾_þOÀÁWÁÂVĹ[¾ÀZË¿YÉÆ]ÂÈ\¿¼\µ½c´Ád¨¾`¦¿^·Â^µ­W¸¬]®«Y¸±f°£a»\9f\9f\9c\±§O­¡G°§P¬ A´\9e\95\96\9bV´¦[Ã¥ZÀ¥U¸\97\9bM· E±\9f\94\88\89\8c\8a\97\9b\96\95\9a\9b\9bJ\99\90F\9d\9e\95\92\8e\99I\9b\8d\99F\9f\8f?\96\9dA\94\91\96\83A\93\8a;\99\8d9 }>\96\807\91\80:\91\858\98\84D\93z9\95yG¤sD\9dyI\8dwL\87\80L\92vH\85{?\82y?\92~L\9a}U\84~Q\85\86M~}H\81\91C\86\89C\7f\93H\8c\8aI\83\8b;\85\88:\8d\8a=\83\99:\82\9b6\80\9b1\87\9d,}«9x¥>wª0\81§$u¬4p¦8o¢5k¬$i¨.a©6s\9e0u¬6\7f©B\82\9eA\8a¥R\95³\\96¶`\88¹c\8f­_\96§Y\9e£P\9f«R¥¡_ª¡b¨\93c\9b\9bo\9d\9b\9c\91c\9d d¯\8f\81\84`»~d´\82\81\87\8a\88\92\83­\7f|·z\85\80\8aªz{¨w\80²q\93­n}´lx¬c\87±b\87¹s\8dÂn\84¿n\8a¹o\99Ëk\99Âl\88Ík\92Å|\80Âk\81Ðw|Ìj\87Ám}¸o\8b¶o\8bÆu\94½u\96Îs\85Êk\8eÌk\8cËg\8bÊa\94Åb\8fÌe\84À[\93Qt\8dGq\8bEb\81Ba\86D[{;c|GntMuyPu\89Tv\8f[y\91Qw\97b\81\9cc\87\94j\81\87s\84~g\8e\86e\8a\7fj\85yy\84}r\8f\83t\8d\82z\8a\7f\83~\85\85\8b\8f\83\91\8d\87\8d\8f\84\87\85\8a\8at\91\8at\8b\8ah\88\88e\88\91i\99\8db\95\8a_\9b~_\98\8ek\8d\97n\9e\93\9cx\90\99\82\8d\93z\8c\95r\93\85y\9c\94x\99\98g\9e\96\9b\99t®¡d¯\9f\9f\¯¢M­\95\9e\96XŤYÇ RĤJîOÆ©F˲MÒ¸I̹?Ç·CνPʶSͲSÍ»RÄ´MÀ²QÄ»HʶJȽRÊ®OÀ¬Z»£Y¶ª^¯©_¯¯d¦«a¤´W£»`­¸e¸ÃX¸¾X»¼V½¯S¿³T·¸VÀ¿a¼¹dÀÅm¿ÉeÁ»Y¾¾T³Ã]¯¶^±¹R«½W©ÅXª¼Q©¼P¯«_®ªf³¦^ª©\¯\9e\9c\99Q« G£¤G§¤E±£F¶¨J®\9dZ¬©Qµ£O²¥[¶\9e\9bL»¢DèA»§@­\9b\99\86\81\84\8c\95\8f\99\9f\99\9a\9c\96\91\9b\8c\8c\95H\9d\8f\95F\93\93?\95\8e\96\8e:\9c\89\88\898\9a\835\9b\845\97\856\96|6\98{1\96\898¢x8£sI\9b{O\95~K\87tJ\83oD\81lP\85uL\87rM\94\7fR\87\81V~wR|{G\84\83?\88\83B\84\8dM\87\8bE\87\86?\86\859\80\8c8~\87A~\91=u\9b>|\998k¬8g®=j®-w¤.p\9e+r©/h°0o²3qª7g«<n¨5o£7z£?x E\87\9aR\84¢\\8e¨a\8dºV\8e±\\98±S\9c¥Z ª]¤¨V¡ ]¦\9bc\9c\9cp\9a¤b§\9b\92\98\88\87\81\86\8c\88\88\8b\80\86q¯{\81±|\89³\80\8aª|\7f¯\7f\81©p\8a¨o}©k{«f\80¬_\80´q\85Ås\85Ãg\97Åk\9bÌo\9dÉi\90Èp\87Å~\8bÁn\84Ëo\7fÎm\88Áy\83Àu\8a½n\91¸{\8b¿v\94Åy\8f¾u\94Än\8aÇc\8c¾k\86Ák\86Èo\80¾a\88Kd\89Al\8bJ[\86:X\7f:h\8aEe|IpxBj\84Qp\80Jn\82Sr\92Nu\96Xt\96Z\81\87_y\8cl\8b\8ae\8d\85\\84{g\89ywxvq\89\80w\92uu\8dyx|\8bw\8a~\88\82z\85\8a\84\83\8b~\8c\7fy\80\8ay\8a\86k\95\82h\8d\82k\96\89l\8d\81_\9b\8ah\8b\8fn\96\92s\94\96g\8f\99y\8f\9bv\87\9dy\8e\90z\8c\93}\94\8a\8f\9a\9fq¡¡_§\97\97\9a\9dS¯ IÀ\92\9dL¼¤GÌ\9fE¾£EÁ³KʯCϳ@Á´CÅÀBʺKÊ´P˼KÏ°QÁ½U¼³G̺QËÁNʹM̽OººQ·®QÁ­Y²¶Wµªf¯¹b©³c©¹V±±V¢®_±¶S¹ÂR¸·Pº³V¹°]¸±f²º\·¿g¸»hµºb»Âa²·Q¥¿T§®V¥µa¡µO\9dµP£°X¡§]°¬Z®¡a¦¡Y¢¥^®\99\9b\9fU¬£S££I«¥P±\9b\9e\95\9cPª¥K±¥Q®¦L¯\95\9e\98I­«K¥¡B¬\93\86\89\88\85\90\89C\9f\8b\8dH\9c\93\94>\9e\9a\9cE\9f\9c\97J\9f\99\93P\9c\91P\91\92T\94\89L\98\89\8fD\9a\8f7\9d\84\8d6\9f\88\7f;\9cz6\9e\88\88\84=\9c\884\95\83\82D\9dzD\97~C\98{?\95{>|h;\8bpH\8csO\84\7fR\87\82H\88\80M\8asT\87pJ\80\82<~~F\81\8bN\8f{M\89~:\88\80H\8c\89A\88\925|\8c8t\9a6m\98Ct\9e8`§Ij¤Cv¨6k¦<j¨3pª<c§>d¦0b©>w¬=m­1q©>}ªD\83£T\8a«_\88¨W\8e·T\9b»P\9b°\\97£Z\90©_\97\9c\98f¨ d\99\98o\9a k¥\9bg\9e\91\96\95\8b\91\8f\8d\96\89\85\8fiµ|l­\80\85\8b´\81\88§\81\82\8a°{\8d¡p\83¢{~±p\87§b\85­q\89¾u\8f¹e\97Çq ¼k\93Ìr\9aÈp\93Çu\8cÁv\88Át\8dÁt\87Ç|\8fÀ\84\91Áy\8dÇy\88Åv\94Èo\8aÈt\94Èl\87Án\87Åm\8c½q\8e¿e\8dÀ^\85FW\9dA^\94Ac\94;]\846g\88Ae\82Gh\7fHf\82Lm}Jo}Hj~Ok\87To\80Pu\86`|\7fc\84\89l\8czd\82{n\85|uy\7fr\86~\7f\86v{\85\80x\87\81~\84~\81\81w|\89~\83\89\7f\7f\82v\80\85w\8e\82r\91\8ak\94\8ak\87\8ad\8c\8a^\91\88_\87\8bn\8d\97m\87\8ep\8c\94h\87\8e`\8d\98f\92\99q\93\94o\9d\8bp\9e\8dg\9e\99\94\94\93\8e\90\90\9e\99\99LÌ¡> AÇ¡GŨJƨIÅ©>Ì´<ʼGκE͹NÁµR¿·UŹOþIÊÁKƹM¼B¿³EÇ°Q¾¬Lº«Z¹°X¯µU«³`©¼a«¸U¨¹[¨­\£¶Z©´S¶¹R·±[¯¬Y¬¯d¦¯]¯¿b³Ã_´¹e´¹]©Á[¦²[\9b±Z\9a­R\9d®R§´Z¥¨Y\9c­_¤¯_¨°d\9e¥_\9d\9b\9a\9b\9dR\9e\9eW\9b\9a\9a\9d\95\92\91\9e\9b\9e\92\96\9b\9d\9d\8d\84\8b\8b\8c\87\8e\85D\99\85:\9c\8eA\99\90=¡ D¡\9eD\9b\9bF\9f\9d>\9c¢E\9c\99J\99\91K\96\93I\95\96H\98\90A\9f\8c\89\8e\867§}?¦\7f\859§}A¢\87\87>\9f\8b\8b:\97\85A\99~A\8ey@\93z6\8es2\85r;\8cz;\88pH\7fwD\80zM\8a|Q\84oT}nTwrJ\86sM\88wH\8ey=\86\83B\81|J\8a\85F\81\95F~\96=m\93Fj\9fAe\9cEj£CiªJf\9fDg\9a5c¥7d\9d8_¦9m©4m¯9m´4y¬;v¥Gw©Q|¯R\81¨[\82´V\94´Y\97®U\9a±[\8e²N\90¢Q\90¤]\9f\9e\9ff¡¡b¥\98`\9e\99f\9e\8d\8c\89\90\97\90\8d\99\95\8e\89\80\88\81|µ~v¯\85\85\87ª|\84¥~x¤y{¢v~¯l\86±r\91¶o\95Ãb\90Åf\94Êi\99Àq\95Ât\91Ìt\8eÏm\88Ât\8dÊ\83\86Á\81\8cÄ~\8eÀ\86\89¾z\87Íx\8eÇ\81\90Éz\83Ìy\8c¿k\88Åp~Êg\84Ïf\82Â_\84<W\94=b\99DW\87DZ\91?c\8dAZ\86H^\89FjxUn\80On\84QfyVl\7fVu\8bNu\90c\80\90\\82\86_\83\87ev{mx\83k\84ur||pxwpvxn\86\85\84\88}\83xq\88\87|{\88w\80\7f{\82\81\80~\87w\8a\8dj\8d\83m\87\8ck\88\8ad\8b\90[\93\93a\8a\8bk\89\9cf\97\8c`\8f\8ca\90\92o\99\86s\9e\86\8c\8ep\97\94\94\99\97\9b\8f\9f\9bZÁ¡R¿ªMÄ\9eOÅ KÆ\9fRȬDÈ¥DÀ¤BȬCÌ´K÷HÇÁLÆ·MþPº½EÁ¶N¾´I¹·MÆ»Wº²I¹­VȪZµ´]¶°Z°·T¶¬[¤¬[«ª[ª¸V¦°_¢¹Z¦ºZ®ªO¬­]³¶]¦³a©¿kº¼]«·d¯Àc§º_\9eµS\9f¿Z¢¹U£¹Q¦¹[\9b«Y¦°S¥³b¤®Y\9d¯\\9f¤T\99§Z£¢O¦¤N¢§L¤\9dR\96\99N¤¤Q¥¢L¤\91Q\9c\93P\9b\96\95\99\9b=©¤E¬\98\99F¤¢E¢¢Q©\9a\88\87\90\8d\92\91\8e?\97\8d\98\9b\9f\9f\96H\99\98\98:\95\99B\90\8fE\9b\8dJ\90\8fA\99\89<\97\8e=\9b\8c=¥|0§\834¦x-©u8§{1\9e~6\9f\7fC\9d\87F\94\7f\91>\9f\86F\9a}>\92\82?\9ct=\8f}0\89x7\8bo>\91{A\80rF\7fsMvyL}nIt}J{|L\89tB\8dy>\8e~?\88\8eF\8d\83@\87\93F|\92G\7f\8c:s\9bA{¥8l\9fBj¢Fg¥Lp§Pe£Af©<g¢6d¬Aa¬:aº7u¹?m¬>s©Hk¬O|ªU\82³Z\86´T\9d¿J\93¬S\96¬]\8f®P\8e¯T\98«_\93«c\9d\9c`\94¡g\9e£e\9b\9ec\9b\8fa\9c\94]\9a\8f\97\8ds\9f\9b\90t© r£\8e\92\92\8d\80\81t§~\82¬\7f\81µ|~µ}\87³\85\89¤|}¥z\85¬r\93©n\96¯w\92¼l\97½s\98¾w\90·u\88¼l\8eÒo\8c¾j\84Âx\83¹r\85¸~\86»z\87Â\82\85Ì~\89Ê\80\8aÁw\88Ák\87Æh\87¶o\90¸b\8bÅi\83Ç[\82Ãe\86>Y\94@`\8f;c\89Dd\92>]\93I`\87Lc\85SozSa\82Mc}M]xKf{Pr\86W\7f\8ce\82\91a\8d\93h\88\84cxvbsqf\7f{f|\82kswo}xqx\85u~z\83}x\8b\81n\82\8aq\82|w\81\7fx\89\84n\88\7fl\88\82a\8a\94e\94\99e\91\98b\83\9b^\85\8cW\86\89^\98\95e\94\8di\97\88\84p\97\87\85\83l\9b\89g\99\8em\9b\99\94\9b\98\´£Q²¡Vº\9fL·©F³¥O¸¦S»±GȪKÍ¥K¦NÀªOê>ʲF˹RƹK¾³SľR¹·FÁ¹L½¹N»»T½·YÅ©ZÁ¤WÄ¥\ºµY¼©b¯§_¨¢a­¦Z³©d­³c³°`§®T©¹J°´PµµR¨°`«À\´Àe­½V²·V©±O¤·W§¯H\9b°J\9a«T\9e·W¦·_ ­Z\9c¨[\9aªU\9d±^\9c§W\98§K¥ E\9f¨P¢¥K\99¡K\9d\9eB\9d\98>\99\99K\97\9aN\98\96J\9b\9aB\9b\90\8e\9b5¥¥2¥\9f;\9f\9cI¤¤J¦\9f\97\89\83\80\8c\8a\8d\97D\9d\99I¨¡K©\9c\98L\99\92I\9e\9b\94@\9c\99E\99\98@\98 Q\90\97V\9c\96N\9d\8eG\9f\83;\96\806\97\82\816£|:¦y/\9dv1\9e}6\95~:\8f\80B\8d\81:\96\85>\98\846\91\85>\92x:\98y<\98r3\94|7\90\81G\8avJ}sAqyHnuMt|J|yE|\84C\80}:\90\86;\91\8dM\92\89M\95\87K\8c\91<\84\978{\91?v\8f7\82\99<\81¨Hy©Jn¥Jh©Lf¤;]©:c¤E[­>_¸Gcµ>`ºFm·=h¯Mn³Q\7f¿X\7fºQ\83»H\94¸I\98¯K\8c°T\89«V\8e¯Q\91¨Z\96¬[\93©b\90\9fd\93\9c]\90¡^\91\9eP\95\8bR\9d\97Z\9d\9bd\93£j\98\9dm\95¡i£\9b\96\92\97\8ew\9b\7fv¢vv©\82\86\8a\86\87¨\86\8e­~\8b\9fv\90¢p\91©|\8f·x\96µ\81\96»y\8aµx\91µr\8a¹p\86Ék\8bÀn\85¼p\82¼s\88·~\7f½s\85Ät\8bÀ\80\8bÅ{\81¾y}·e\80¸m\8f·k\8d²m\8a´j\89¸d~º_|Ha¡=o\92Hl\93Qj\8dKd\8aOp\84OoyWfxYjwT_vQl\85Sn\88Mk}cr\90b~\93\\88\8b_\84\82fu}ns\80es|d{t`sqpq\80t{|u\82s|\88p}\83w~\8bq\8c~o\88\86s\84\84o\86\88g\8f\93m\81\98f\84\95d\97\97a\8a\9a\\90\95Y\92\8fb\9d\8fd\9a\94k\8c\83c\97\85k\98\8ek\9e\8ar\9e\88i\93\8ae\8e\90\88\9b\95\8d\9c\º¦Y¼©W¹§E¯«Mº¬OÅ\9fVˤJÁ¨Q½\9eU̬LÁ§GéI˾Sº¯M¾¶UÇ´WÅ·IÆ´J¼¬KÇ®T»µZ½¦]¼¡[À©^³°S³¦S°ªX¯¡W·°a±¥f­³`§³Y\9f¶^£­X¨±W®­Q²¦_±¶^¶Ád«¿W´®Wª³\§»N\99¾P\9fµH\9b³R¡µT\97¼M ¶P\9e­Y\9d«Y¥§T¢¤W§¦Rª£>¨\9eF\9d£H\98¢>\9d G\9c\9fM\98¡=\96\95A\8f\94\8d<\9c\933\9d\9b7ª 8¬\95?\9f D \96D\9a\9c\97\8d\91Qª~E³\81\8c\81\91\9c@\9a¡B¢\99I©¡J£\90@\94\96K\9a\93\8fJ\9c\95I\93\9fB\96\94H\9a\88U\96\87S\99\8fF\97\8a=\97~C\97\8a\84\83@\9e~8\95\84,\97\863\96\861\90z=\95\80C\8a\85:\98\87@\8d\8bA\8f\87>\8a\7fI\99\84C\98\8bB\92\81F\91vJ}vMw\86@yyO\7f\86J\80\8dF\86\8a<\86\8bH\89\91F\94\87I\93\94M\9a\90L\90\8cL\8a\97J\84\94E\86\95;\81¦I\80¦?q£Os¢Ik ?c¨Df¢:f®7_¨C^¶BX«C^¾?b´>g¸Go·L}·D\83®R|¹M\85±I\92°U\8f´S\8dªN\88·Y\95«b\93§\\8a§V\86ªc\96\9dg\8e£_\98£R\96\94U\8d\93U\90\9a_\98¢h\91\97d\95\99d\9a\9ag\9c\9d\94\90\92\88m\9dzm\9e\81m¡~\7f¤\8d\87¨\85\86\8d¦\86\8e±\84\89¨y\8f°\85\92\84\90·\83\96±z\89·{\8b¿y\96Æp\93¼r\89´x\8b¹rzµt\88¹|}»y\8aºq\82Ày\81µs\87Âu\8b½h\8dÁm\91¶b\90½^\8c¹e\90¾c\84·_\838l£Bx\9eQ\81\96Rx\96Tx\8cYo\88Yh\82Wl~crz]jy\hwTj\83Sq\8c^r\8d[r\8bh\83\89j\7f\85kt\80n}ybxrhpwfomsny}zzt\83z{\82mx\82b\83\81h\8a\80q\88|j\89|i\86\85h\82\93^\85\93e\87\96f\91\94^\8c\8ac\91\8fd\8a\9ae\91\97a\8d\97l\90\8di\91\92c\94\88n\8b\85r\8a\88h\90\83o\93\85u\9f\8a\91\93\93\99^²¢S´­Y´¦U¹\9eX¸¢LÀ«J¿¢SÀ£TÈ\9b\9fJÄ©B¸¶J¼³JÀ¶KÁ°OÁ¬QδXгQÈ°PÉ®VÄ®MÀªSº®W±¨X®®U­´\¢ª^¡¢T¯«Y¦¶b«²^«¶`¥´a©©U¥©P¨¦L¬¤T«­T¶±U¨®K¨¶M§¹K¬µT\9b³R\99ÀO\9f½L\9a¾O¥¾W¡¸O °S¥£[\9f\9dY\9e§T¢£R \9b\9d>\9e§; ¬D\9d G ¥:\93\9f<\90\9f8\96\97\94\90\98\948\9d\8d\8f\99\99\98\8a\82\85\84\7f\82\8e\99\9a\9e\9d\94G\9a\8eI\9f\97E\99\92D\99\9b@\97\98F\93\93D\99\8aP\9c\85A\9a\89\84G\9a\87\8dA\9e\85D\9e|D\9c\829\89~;\86\881\88\7f=\85\807\89|E\89\84E\89\8e<\94\8e?\94\8cI\8a\95L\8a\88M\8f\8aF\83|P\87~O{\84At\83Dy\82>\83\8bH\88\8e=\90\93B\89\98?\8f\8fL\89\8bD\92\96G\8f\8eJ\95\8eQ\87\97V\8a\9bK\7f\97Bx£E|£Au\9cNn\9aHn\95>k\97=j¡C[¤@Z²>^¸H]°Ba½=`º7m³5p½?l³Ey³AyµF\86¸L\8f²O\87²S\8c»[\90²_\95³]\8c§]\92®\\87¥^\90©`\94£Y\8f¤P\91\9bU\8c\92]\8e\94T\8c¢_\96\9e_\98\9dl\9d k\9d\99\9cj\9d\96\85\84\7fp¡|}§\81\85\7f±\8d\82´\8d\8f­\80\8c£\8b\89ª\88\90µ\81\91\83\94¯\86\91·\89\8f·\86\95¿\89\9a·\81\95·v\92±m\82µt\82Áo\87Àu\86½~\82´z\86®~\8d°w\84»o\92»n\91´f\94·\\8f³^\93´]\86´Z\80´d~Ih£Jl\9fOl\9cWo\94\m\93\i\86Zf\88Um\81So\81\j\82Tn\86]k\7fYp\82ao\89iy\85c\87\82p{\8berzg\80\81[ylhykozrwwv}ps\83{s}\81e\88}o\8a\7fa\80\7fk\8dne\8b{b\8ft[\8c}a\8a\93a\87\8bg\88\95b\86\8fc\94\98d\97\8d^\99\99d\8e\93r\8d\89p\8d\85s\8b\8ez\88\87s\88\8bf\8f\82d\92\87s\94\85o\9f\87\98\90\97\9cYª¥N²\9e\9c\9fI½¤E¹¥EÀ¦DÏ¡PÉ®AÊ«FÆ«CÊ©KħGÍ£SЮRÇ­MƨIÄ­RÌ­S©Q¢R¿¯Z¶®U´³T¥¯S\97°V«­S³¯^¤µUª·X­«^¢²f¤¥[®¢P­­L³\9dX®§Q­´P±°Y¥¹L«±X\9f­\¢¯S¡·G\98ÀL\9bµM¢·U­±F¢©V§£M¤¢O\98£N\9d\9e?§«E¡\9bE¤ª@\99£J ¦C\9b\9e?\93£4\97\94C\9d\98\935\9d\986\97\9b9\97\90\95\86K\9b\92\9c\8e\82\86\8a\8a\84\87\8f\94\96J¦¦C¬\9b\95\8f\93N\9a\9bQ\96\9e\94O\99\99A\99\87K\9f\90\91=\91\84C\91\85>\9d\89\81K\8f\8a=\8cv;\8d\866\93\8f>\8a\89A\8c\84B\84}D\85\7fJ\84\85?\8c\8eL\82\91H\8b\88A\81\87E\91\87K\81\8a>\7f\82Gw\8aHv\80Fy\86L\8c\8bI\8a\92E\8f\98H\87\92B\84\8d@\85\93J\8b\92L\88\94B\8f\91S\8b\9fK|¤Cw\9bH\80\9dA\82©@\81§Cs\98Jk\9f;r¥Aj¨@`§FT 2X¦?g±:]­@nµ2h°;p¶8r¸:o°Eu½>\83ÂG~½F\89¶L}±S\80¹_\87¯[\7f\9fQ\81ªa\8c­_\8c£a\84ªW\84£V\84\99T\97¢K\90¡P\8b£_\8e\96[\94\9aj\95 g\9a¡k\99¨l¦\9cj\9e\8do\99\8as\99\86l\9d\82n\9e\86\8d\86\8e\89¥\87\8a®\8e\84\89©\96\91ª\92\90«\7f\8eµ\8a\8f¹\86\91Á\85\9a¾\83\8dÂz\99Ár\8f¹v\89µ\7f\83Æ|\92Äp\82Á\7f\8e²z\8a²\80\89¹y\80¹l\87¶]\86¬b\87³^\87¶`\84¶\\8c¯V~£i\89<p\9aJo\9bQk\9bUu [k\93Tn\8fQm\89KkyLfy^r}Xr\87[e\8cXp\85dn\85l\80\8bd\82\8b`\84\80fz\81js\81cwrjpuvvxsqq}syz{m\81yj\86{h\80\80k\8bya\88pg\88p]\8ar^\88\81_\88\85c\88\88Z\8b\85Z\8e\97V\86\99a\8b\92c\9d\91q\9e\95r\96\89s\94\89l\8c\95t\92\86h\94\83k\8d\83g\8f\7fk\9e\8fj\9d\8d\97\93\98\98Y±¥K°¡G´§Q´©I¯ªC²®Bµ³BÇ«EĬ@Ä­LÁ¦NÆ\9dEΠUÓ£XÌ\9cQË¢EÐ\9eOͪXέ\Ç Y¬a¾®Z»ªY°¯Qª®M\9cµY\98·Q¥±X­³P¦³L¥µY¥«Z©®X¬¨U²¨Z«§Mª¥[³¯\·ªQ²±U¥¬W¡±_\9cµZ£³N\99¯I\99µN ­H§®N¢«F¬¦E¬«@\9e§I\9d¨A£«5¦«E\9b H¨¢P¤\9aH\9a E\9c\96:\9a\8d7\9f\93=\9f\9c@\95¡7\9a\9d=\9a\97\8f\88\99\99\8b\88\86\84\88\90\8a\8a\92B® A® ;¥¡B©\95\96H\9e\92C\9d\98O\9d\93I\9c\95\96M\9e\95?\93\9b?\96\91C\99\92I\93\8eB\8f\95L\98\8dM\91~A\8a{8\8a\88B\8f\85F\87\8eM\8a\8cK\8a\87M\87\86B\88\95L\8c\92I}\94P~\86F\83\87@\82\91F}\82=\84\84@{\8dBw\84B\83\86A\89\88M\86\8b?\8e\96@\87\8d:\85\8e@\8e\9fE\8a\9eE\86\9aL\91\99K\81\9dN|¦I\83\9dHx£G\80©<\82¢>z¥=i¤A_\9dHd¤@^¥9^\9c7]¨Da©Ca¥Ek¨5p«:u¹4m»Au®C}±N\81ÁG\87»D\85½Qw½Mz¹Pz²Wx¨Qz¨Q\85«V\8a£Y\85«Y\8d Q\85¡R\94\9bL\97¢Q\97 V\8c\9bd\99\96h\9b\97Z\9d a\9b¦\\9c\9c\99c\98\9ck\9e\8f\8c\86\96\98\85°\8b\87\9f\8e\8c\86\94\90¯\8d\91ª\8c\84¸\91\96À\85\98¾z\93¼|\8f¾w\86¿z\89¼\7f\8eÂ\82\94Ç\83\9aÂy\8e¸\81\7f¯}~°\82\86´}\8b²e\8e°]\8c³`\8e«e\8b´T\90«R\89\9eX\87¢b\83?n\9fKn\8fTu\9eV}\9eVu\90Qy\92Vp\85Ln\87Qq~Qk~]k\80Wq\88`r\8eWy\90_z\82]\82\82c\80\82hv\8brz\83s~\7fo\7f|t{py\7fzylvvku}iqt{osutwxu\7fqs\82qc\83n^{\80\\88\87a\8d\85]\8b\7fb\89\8ba\8e\9bc\91\97m\97\98h\9a\90v\93\86t\8b\93w\8c\92s\97\8bq\92{i\8f\84q\95\86n\97\88t\95\95\97\96\9e\99]©¦Y¯§Cµ­B¿µK°§M©²F±³@Á´JÅ­L̪FǨAÒ\9eLЧRÌ\9cPÙ¨KÖ¤MÊ P̱OÇ¥YÀ©O¸¡P¼±Z°¶Y¯¯O¢¹O\97´Q¤±M\9c³W\97­V\97ªN\9f£O\97§S¢¨Z®®V¤¥W­¥J§­M¬°`³ºX§½M¤´R¬¿d§±`£·O¢«M\9e§I\98¯M\98¢S\9e°@£ I\9cªI¥§= ©9§©2§°8\99¢;¨¤K\9c\9d\9b9\9f\9b5\94\92>\9d\9f5¡¤@\98 5\9c\9b@\9b\8c\96\8d\8d\93\8f\85\86\87\8d\8e\92\95\9d7©¥>« F§¢L­\9b\98\8cP\9f\8dH\9f\99\92M\9c\9b\88B\9c\8b<\94\91H\92\84?\98\88A\8a\90F\96\92M\8a\80@\88}9\8d\8cD\91\84@\90\8eM\83\89I\89\8bI\8a\91K\80\98B\7f\9cHx\95H}\84C\7f\8bB\80\8fF{\8cB{\8b?\7f\86;\80\80E|\8dN\86\86K\87\8b<\87\93:\87\99:\88\9a>\82\99@\84¦B\89§F\8c§E{©J\81°D\83\9bC\81¡Az¢?\89¤A}¦:f¦>l\98Hr¡:c 6]¡0e 6c¯EY¬:_£:k¬:hµ7jª=i§Iq¶?uÀNxÂFp½Do²Hp²En»Jl»Ft²L\7f¯T\89±V\7f²Q\86¯M~\9fV\8c«L\92¯L\8b¬S\8f£`\9a\9d_\98\99[\9d V\9c«b\95\99\8eh\95\8bq\9e\8cs\9b\8eq\9f\85\88\85§\94\87¨\9e\85¬\9a\82«\9c\85»\95\8e°\95\8a«\8d\8bº\86\91º\83\8d¾\80\95¹\8c\8f³~\8cÃ\89\91¸\88\93¼\86\94º|\91¾{\81³\82\8a±zx²\82\81­o\8c°e\88­j\85®[\8d¨a\8c¢U\84§Y\88¨]\88¡d\8bA|\91Eu\94Jv\97H\7f\98T{\90Ts\97Jr\97Q{\86X|\93Ss\8fU|\86^s\88Uu\8dX}\8a^~\8dgu\80e\82}i~\85ku}u{\80n\84{k\80mlzlrunwfishjypjtmwug{xdr\83om}ph~uc~ye\89\83l\82\7fd\95\88k\97\8bf\9c\8cq\9a\94n\9c\8bm\99\88o\99\95p\8a\91n\8e\8dh\92\82h\8e~b\93\83m\90\90k\98\99c\99\99\9d\9c\°¤\¸¡Y°©I¶ªN¹µB½°H±²D¨°;°­C¤JÃ¥FÃ\9f\9e\9f\9c\9d[Ó¤WÖ¬XÈ©N´QÆ­N¿¨D°¤J¤¥M ¶V¤¹P µV\98´N\95¨H\9e¤E\98¥O\94°_\98«]\9a¢[§ªW±ªL¬±Q¤²X©¸X¡Ä\ ¿V¦º_¨Á[§²P\96°V\96±F\97ªB\91\9f?\97¢I¡£D\9f§A¤¢?\9e¤8\9d¤5¨¨8¬¥7¨©5§°?\9f¨G\9a\9fC\9a\9e:\96¥<\97¤>¡¥<\9c\9f5\9e\96\90\91\88\89\8a\96\93\96\8e\86\8e\98\99\9bD´¦?¬­J°¢D¢\93\91\97\8e\98\93\8f\8c\90\8aF\9d\8fC\90\87K\95\89@\8c\8eC\93\81P\8a\81K\8c\88B\85\8fD\88\96I\7f\8fP\84\98V\83\95N\86\9aP|\98Ax\8dOs\89Kw\86G}\89Mu\8fCy\8fC\80\92P\7f\86K\81\81K\85\81=~\88@\84\89=\8c\92?\88\9b:\8d\9e8\8d\9f?\7f¦>\81¨C~­I\81¨>\83\99G\87\9aD\7f\9a?~\9aAy\96Dt\9d?y\95Fr\9eAs£:i®6c©.Zª6d¯8aª=jª5l°>c®Ab°E`±Gm¼Md¸Jj¹Hg¸Lq·Hj½Cn¼DyµA}­N}±N\85©W\8f±S\88ªR\97¯M\94«W\93¢^\95¤_\93£b\9b¦U\9aªR\9d¥_\95\99i\9d\94\8dw\9d\8et\9f\8f\8f\82\9e\8f\84\9d\95\7f«\9e\9e\92\80°\96\88³\8b\88\81µ\91\84¸\88\8d®\85\90³\90\91®\86\8a·\8b\8eÀ\8d\87¾\86\85¾\8c\82¸\88\84º|\89µ|\83µ|\7f§o\81¢l~®f\86¬d\89©]\84¡]\82\99`\81\9b\\8b\9dT\8bI}\90Mz\96Ow\8bMx\89M\7f\94Pt\8eH{\91Mq\8cQ{\88U~\8cTr\89Uw\80cx\81^{~[~\83fw\86`}\88i~\84jx\86mwyt\81{z}mmrmprdnqbybdmjuwlrnessnr\84rk\84yhyrf~{a}tc{{a\87\80b\90\7fv\96\8bm\95\90t\90\8ev\96\7fn\89\86n\85\94t\92\8an\8b\89g\94zm\94~h\9e\8ag\97\88\97\9c\9d\§§Z©\9bE©©?®¡J·²B¾°O²§K¸¦H¸©G·±OÉ¥>ȦJÍ\9d\97OÑ¢HÉ£FϯNТMÇ°VÍ«KɬP¸¨L°­C­°N§¯]\9d±Z£·S£¨P\9e©J\9a¡K ¢O\9d¦[¡«V¢±_§®]©¨U§§Xª¶Z¬ÀRª½W¨µO¥¾V ¶T ¸Q£²R\9e­O¥¯C¢¦A¢©H¨¤G£¢K£¢;\9a\9c:©°D¤­D ®6§¤>\9d¡;\9c\9bJ¢ D\95\9dC\95£E¦«5\9e\9bC\9d\99C\9b\9f\98\90\90\84\90\8a\9a\8b\9a\90\89\98\9f:¢A½\9b<ºªH¸ª9¥¢N©\90I\9b\94\8d\90\9b\8f\85\8f?\98\87D\92\8cB\9a\85C\94\92A\8d\90>\88\8dP\90}O\92\88K\89\8bE{\95?w\84>z\90=\87\91>\84\9dC\82\96Ez\92>~\8aKw\92Sx\84I|\93Dv\8b=\81\93M}\8a@\83\85A\81\7f=v\83@{\8fA\84\97B\8c\91?\87\9a7\8c©>\7f«8~ª<\84¯?\80°4y\9c=x\93Eu\9b>r\908w\992u\9e5q 6n¡B^ª2d£8W§Agª:\²8`¶6]³Gd·Gf¶@m³Al¸@n³Ej¾@k¼Bo¯Jm·Mq¸Qt²EoªKt¯Bx¨J\8bªQ\7f«W}§M\8a±Y\99³R\97­Y\9c§W\91¤]\90¤X\95©_\91 k\95£g\9d\94o\9d\96w\9a\94\8f\85\84\9a\89\93\82 \95}©¢{£\9e\9f\8d\81±\86\85\85º\8e\92³\87\84²\8a\93\84²\90\89º\86\82\88«\86\87³|\81¬\87\85©x\88¬s{¤q}¥f\7f«r\82¨^\8b¨\\81\97V{\99Xy¥^\8a¢R\89Ly\8bL{\8cT\81\85M}}BpzDo\84Fk\81Px\86Rq\8bUw\7fXqxRtoSxucw{atz_z}a\85\88e\80\84ay\82ewpykm{p{yrsppblvmnlkuvwstr{qq|ne}pj\80th\80ug\82xk\88sc\83yl\8f}s\8eyt\8exp\9b\85n\92\84x\88\83p\8c\89e\81\90h\83\8fe\8d\82g\8ex`\97xj\93\80]\95\88\9b`¬ X¤£O¢¡I¯\9dD«¡;±¦E¾§Jº®I³«O·±P¾®N¬FΩDÉ¢=¾ BʦDÓ DÏ¡M¬LɯSÊ°QƬXº³M´¥U²¤L¹±L°²R¤­W\9f°U\9fªM ­Q\9e¬S¢\9eP£¥N¦³R¨¯W¸¸T·³`²®Z¯¼Zµ¾QµºV¬´X§½Q¨»N¤ÃM¦¿L«¾J¤·O¦´Q\9c²Mª\9f\9dG¢£>\9c¡<\9e£@¤±F¡±>\9a«;\97¨@\9d\9dN\95\9dO\9c¡?¥­F©¨;\9c\96?\9f\94\9f\99\98\92\8a\8c\8f\93\9a\97\8e\95?º >Ã\9f\99\96C¬¡9®§<¤§@£ I¤¤D¨\99\99\9aG\9d\95>\9a\857\9b\82A\99\85K\99\8aO\95\8fG\94\86O\99\89J\98\81Q\8a\81R\85\7fH\8c\89J\88\89:w\89;\82\92?\83\96<}\937v\93Bt\96D~\8eMq\89Nm\8cHm\96Gr\92F|\95Hz\87Dw\89N|\84L|\7fFu\86H~\86E\88\94@\88\9dE\82­>\86ª1\89ª0y£/z¨3\81£:w\97:u\924u\932p\99:v 4p£:\¢5W\9f6X\9c>e\9cCd¤9`ªB\±9f¶:d¯Fe´Ij³Ce»>j¸@m»Bf³Dd»El»Lw½Os­Jt®Bv±G{ºQ\7f¶S~³W\83³V\82²P\8fªY\92´[\98¯[\9aªb\95¡f\8f¢i\8c\9eg\92\92g\98\94j\9c\8ek\9c\8eu\9b\95\8b\91\7f\9f\97\85\9b\9fx¢¥w¬\9c\7f® x°¢wª\93\80­\8c\88¯\94\89¦\92\85¬\88\8e\93\85u©~\83«\83\85°\7f\7fª\88\80\80\9b\80\85£p}£n\86\9fm\86\9ed\86\98c\82\97V~ V}\99]\80\9bY|@x\8d?\82\8aPtwFsrPi|@g~Dy}I|zEv|HiwWqjUtg\kq`pvTp{av|ay\85bp~_\80|bxkrousq}|iewd]uljpcvuqqt|y\7fkm{qfwqk||g\85|c\8ezb\85}p\94|m\96ql\90~i\98yn\93\85f\99\8dr\89\84z\8f\84g\89\87j\8b\86k\93\8bo\9a\82f\94qp\99\82l\95\8c\92\9d\9aR\9e\9a\9eN©§A±¢AÅ¢Q»¦QæXʲKǶEά@Ë©?é<Ç©>Ì\9b\99GÂ¥I¸±KÁºIÀ°UùXººU°¦N®±B°°S©¸W©«R¤®Y\9d²U¯®V©®L®¦Q£ªS¤°Z±²RÀ´RÁ¹O¿°O¶¸W¸²J­ÀO¼¶\¥ÅO¥ÀO«¶N¢¹L¦´Rª´WªµU\97¬R¦±H«¢N£¥J\9c¤A©ª<°²I¡±<£¦@¤\9d<\9f¥C\9a§L¤\9f?ª¡I§¥6¤¨8\9b\9bK\9b\9c\95\97\98G\9e\9a\8f\9d\93=³¢=¹ 1±\9c5³¦>¹\94@½ =¼ ;¼\99\98G´¥=©«A¡«K±\9aD¡§C¥\92\96\8bA\95\8b\8dG\9b\8fR\91\8eJ\95\95N\9c\92O\93\8bP\97\83J\89\86I\85\8dB\8e\90G{\94A~\93<\82\8bC\8a\9a5{\919t\9cD{\90I}\8dOw\8aCo\8fHp\92Lo\90At\8dB}\85D\84\90Kz\82Ry\86E{\8cD\85\99D\7f¦>\80 <\84¬2\89®<|¤.x¯.v¤;n\9f;r\98>f\9a:i\991f\99.o¤0i¨2\ ;^¢>U\99;\«7d¥3_°7b¦6e§9a²K[­@Y°>\¬Gj»?b¬>m½Io±Hu¹Nl¼Tk¹Gm´Bi¬C|µO\81¬F\8a­U\86µT\90µR\88¦W\8f¶\\9a®Z\8b±b\94±e\84¯a\85\9fa\8b\96f\91\92k\8e\9am\91\95\96\92\93u\94\92\83©\9fu¤§z¬ v\9d«s¯\98\8d\80°\8e\97\87¨\8e\83·\8e\93\83¯\96\90s¨}\86«w\82§\7f\85 ~\81£\81\83¥p{«i\80\9fq\80\9ew\8e\9eg\80\94h\84\97X\8b\93R\8b\98Sz\96]v;\86\85>y\7fE{\80HpwDtuHi}Ivu=vsCmjKhhTfnPohRsrOhtTfv[t{ds\84_m}Z{te{svwwvmowigyghxkouiozxprwqspfwtft{k}yk\7f\80a\92wd\93oc\95si\96~`\91~e\9b\81d\93\89o\98\8dq\90\81t\8b\8cn\8b\87o\8e\88c\99\88e\91\84k\99zi\97\89j\98\89e\9e\95\98\9cW§£T°£P«\9c=°£G¾«JȧOƯSͳFαJˤMÆ¥@Á 9˪9Ë©9Á¡GȱB¿µH¿MÀ·V°°K¬·O«¸B«­A¦¯H¡³M¤¼O«´T«®W®¦T´\9dC´£@¹¯M¬¶V¹ºV¹µY¶µLîL¼¹G¼²R¼¹OºÂT¹ÅS¨ÂM±¹Y¬¶T°¹\©¸Z\9d²N¢²G§§G«¡I©\9bD¦¥A­°Dª´C­­<©«@¤ @ \9cH\9c\9aO¥¨Mª«Hª­A¦©H¥«D\96\9cH\97\97K\99\8d\92\8c\94\98G®¢=±¢;»¥5¶ª5·¥2¼¤.´\9a2²¢<¾\98\97\9f>²¥:°©B¥\9fEª£H¤\94R\9c\8f\8a@\9e\8d9\97\96I\9a\92L\96\8cN\94\8bK\9b\89O\94\92M\95\96F\90\8cH\8c\99E\86\9c@\8a\93<}\98;\89\9f5\84\97=\86\9d;w\96@\81\8eKy\90Ep\99Hr\9eEu\91Ir\91F\80\8aE\80\8dO\81\8bR~\91V\80\95Vw\96M|\9eA\83¦6\8a¥.\8a­4\88\9f:\7f¢4p¬6m¨2nª7b\9b4h\997i\985m\972_¡=Z¥4Z¤3Y­5b¥:g§,a©-d©6c\9f5a\9d3]§BR¯BV³DZ¯Nd®Fe»Mg»If¶HvºKt¶Vo¹Qj¬Ij«Fx¦E\7f§F\82¦M\85°Z\82¨[\85©c\8bµ^\90·Y\83¾[\82¶Z\8c¯\\87¨h\85¢r\91¡p\99\9eq\93\9dl\90\96j\9c m¡¤q\9a\96z\9b\9fy¥¤q¨¥w\9c«u \9c\95\82«\9b\84¤\94\84¢\96\8a±\89\82·\83\89\83\83} {{\9f~z£\81z¤v{¡w\81¬sv®w\81ªs\84¥f\8b\94b\8e\96\\91\8cT\8f\96V\8a\8eU|C~{Fv\86?y|Lyq<ip5av5jx=msExuLnoHykPygSllHnpOvsWsnVonev{^mqlpsm}f}nkrrdshgvqbqevpuntxpisc|}py{p}pj\7frf\92~^\94uh\8cwo\94ym\98{n\8c\8am\93\82o\92\82u\8d\80h\97\87t\91\83q\91\84g\9a\85_\92wl\9fqi\95\85^\95\88\8a\98\9eR\9f¡S©¢J·¡?±§>¼µ>ÁªC¾«OÆ´CͪQɬK¿¯HÆ°>Ó°7À\9c=Ì£EɯJ¾½KÆ¿L»¶L°ºO®´N³®L´·F°²J®¦=¤³B¦¶U²¸V©¶G³®A¸­?¹²D±®O¼®XôböZ¸²V¼µ[¶´Zºº]ƾW±¸TµºZ¥ÄM¦¿H´¼U¯Á\­µT´¹E²´N®®E¯°Fª¤>¤®E¡¦> ®C¥\9cA¨¤;¡\9a\9d>¢£@§¨C«¦C®©E«§?¥\9c?\98£E\92¡O¦\91C\9e\91\94\94J®¤H¨\9e>®¡'ª¢*¬¥+±£3¯\9b\97@³§>¼\9f<³©=¹¤>¬¬9¨«:¢¥@®¢@¬\9eA\9d\917\9e\99\8a<\98\9a:\9b\99E\9f\90\8fD\98\99G\94\95H\8f\89>\86\8cF\91\95>\85\90B|\9bA\8a\986\81\956y\9a;z\9eIx\9c8\81\978s\94Bm\98Fy\93G\84\98?\81\9cH\88\9eM{\95D\87\98L{\9fB}\94M\80¨G\87¦7\80¤2\85ª>\8a±:\84¦)q¨/z«9h\9b2c\988f£=n\9c<iª:j©-^¨2Tª@Y\9e1i­4]®.[µ*_¡3[¡7[­1\¢:^¦9Y¦9f¤Arµ?gµOfµLx¹Rt±FsµCjµOg¹Pq¨Hl­Jp°Cr­K\81¼Zx§O\88±_\8dµW\95¼P\82²W\84±V\86°f\8a¥r\89\9dj\8f\9fj\9d¥l\90ªf\9f\9cn\95©u\94¦s\90¢q\9c¡l\9b\9f\9fp\9c«o§©s­\9f|\9e\9dv\9e\96\92\83¥\8f\8b\8b\86\82\8ar\9e\81\7f\98\80\80\9fuz¨|\7f§st¥s\88\9co| h\7f\95e\87\99a\89\92[\88\95Y\83\97Tu9h\80Ar\7f=u}@yv5st3jq>q};ryF{mFziGwoOvnX|iO|ePrp\oif}d`~glvkqoe{vktyhmhjqeawaholouygizklzrsyj}tc\7fpf\88\7fm\8d}h\8bua\8a}i\95wd\95{e\9b\86l\94\82t\9c\89k\93\8bg\8f\86g\99\8fv\9f\84l\94\85`\99wb\95td\8c{a\92\83c\94\91\90\8f\92\98Gµ¢?³«;¿°AêF¿²L˹AÈ®FÇ´OèFЬMΧBÄ\9a\9bRÀ¦PÄ´R¶ÃN¹ÁP·¸G¶µE¶ÁH´»D±³;µ©<¬²A°°H©¯F²´H¾°C¿§<ȤMĪUÏ¥[Ȩ\¿¯S¸«P¾¨R¶°\įbÁ³Y·½`±¿\«½T©·M¯²F·¸M¹»Gµ¹JªºD¬«E±¯I§¬F¤¦J¨¨D\9a\9f>\9b\9eD\9a§G¥\9f<£«>¥®/«§2°°<³¯A¥¤; ¬H\95¤N\9c\9bB\9a\99?\9a\96\9d\94\99D¬£=®­(±\9d\9d\997§ 7¢\9d@®§@²\9eC®¡?®\9fFµ£=°\9c\9f;²ª4¬£:°¡>®\98\94\93\8f\959\9d\8eA\9c\94<\99\92H\97\90E\8a\98@\8c\98I\82\99N\84\8dD{\95G\7f\8f8\87\9bG~\98G\82\988\82¢7w¨Hs¡H\83\95E\87\97?~\9dB\7f£L\80¨E\82\9fAv\98?z D{¢J\81§B}µ7\88¸=\8d¸-\80¨-{¥,u /h§=k¡9a¢3c¦9i°8cª)U¬.Xª;Y¥<c¤;W©:V¯,Z´*W®4W¬:\­5Zª?b\9f?b­In®Al²Ir¹Pq°Dx¬Ci´Dd¶Og°El«=q¢Bn¨Ny¬Yy¶W\7f³W\80®I\85³Y\88²W\82ªU\82©S\86«e\8d¨n\90¨h\9b¦a\9f°i\9dªg\95®l\99¥t\96\9ax\91\9fr\99\98n\96\9fl\9c¡m£§v¬¤w©©k®¨j¨\96\89\7fª\8d\8c\81\8e\8b\85\81z©{|\9d}{\9d}|®{~\9ex}\9fg\85£b\81\99`\81\98\}\9cb\82\97h~\90_}9w\841g\82;o\812uw6ny+u{5rk:y|;xs6yjD\82hGubH\7fiPvfU}ePwbdoa^qe_u^ulmwu]w}a}y^uj^wuasqto}dr\81mi\82fw{n}yb\7fid\8bqp\89\7fo\8a\84k\86\89m\87\86i\96vj\8dvo\8a\83r\8d\84v\96\89k\96\85r\8e\8em\8d\8de\94yg\8c{_\8dzf\9a\80d\8a\89^\99\92P\9b\8aR\9d\98F\9e\8b\9eJ«¡A»\9dCɧHʲH°PÅ»Iέ=άMŬBˬBЩMÄ©GÄ«VβKÀ®EÁ°JÁ½KÀ¾I½¹EĶG¼´G²²;Á²6´¸Cª¨E·³Aµ¥B³§D¾¡FïBȨU˶RʱSÁ©JÁ³W¸¶V³»S½µ`½µU¹·V½·^»Å\¯¼V¯³IÄ»H¹µI¼¿M²²K±«?¨¯@¬¯K°±=§¥C¥®8£\9e;¡¥@¦«9\9e§.¦´5¦¨;¬ª/©\9e2¬«;\9d¤D\95£G\96 @\92\9b9\9f\9f;¬¡8«\9f\9aF¦ 4¨­'¤©&®\9e0¤¥2\9f©5¦¡-²¨0°¥A¦¨;²£6²²D­°B«¤5ª©=°©<¶\98\9a\99\94\9e-¥ -© 3\99\96=\9d\979\96\9bM\91\9dK\8a\99A\89\8eL\85\97P}\8f>~\968w\94<y\98A\7f¤9~\9bE\81\9d7\80¥9\81£9\7f¤9\87\9dJ\81©A\88¦I\84¥G\83­E\87\9dEv¦7\82®7t¦?\81½3y®?|­2w¤2{\9d4n 7t±>`±1Y­4a¬8Y­-R¨/X¦6Y­9`¢8b¯7\±)c¯7Rª?_«7gª7d¬A_¬Fr§Gv­Kr¥Ju±LvªEo´Km»Ni´No¼Bv­<pªGy²Kq¹Uv²MrªR\82°N\7f¸G\88³R{°U{¯V\90°]\8a¢k\95¥a\96§b\95¦i\97 r¡­r¡¡r\9e\9bs\92\9cy\9f\97r£ p¦\9fm\9e«q¦¤g£§b©ªk­\9fy\9f\9a\95\93\8f\85y¨}h¥zm\9cvz¢\80~\98m\87£u}£{\83¨o\84¢d~\96b\88\9cm\88\8fi\84\91W\82\9cV\80\8f_z\1ei\7f%m}$wx-w\7f5\83s-~v*{r8un?|t5ti5|cD\81bJw]HzZLxbQx^]|j`oilubksdyyXwuX~oXvqasw^n\7fkw\7fou{kzxpv|ey~f\84sr\82{o\91}q\94\87s\8b\83r\86}h\87zh\94ze\91|s\96\85x\93\84q\95\81w\93\86m\94\83p\8e{e\8fyh\8c\83\\8c\83`\91\85R\8e\94Q\9c\91N\9d\8c\93\98Q±£H²\9eDáLɪKÈ´DÏ·DιAÕ°IέIͦIϪMÏ®QÉ©JÍ´CůAÁ¸IÀ¼LÅ´RÊ°IͬGÁ¸B¸¾:¾¾7²À;°°;¸²:½¤D¼¨I¸¤LÅ«FÁ²KÀ±CÇ°KϾR˼QúR¾½YÅÃUùY¿¿[¾¿W¼·N¿½VÄÄMÀÁQ·ÂO¸µR¸±P¬±G©´F¥µ?\9f¦@ª¥5££1«ª-\9d¢/\9f©2\9a¥9\9a©6\9dª2¥\9f,\9f /¦¥1 ª0\99¤? ¤A\98\99C\95 A¢\99@\9d\98;¨¥=®¡3«¦/©§*§¯5\9d¦1£©2¢\9f+¯¢+´¥6®«8­¶A¥°@ª­A­¬@±°:´¨:±¥?¬\97\92\91\926  1«\95\96A\9a <\9e\9bE\9a¢H\94\9c>\87\96C\88\96K\8d\99Q\81¢E\82\9fI}\9b=\87\98?\85\9cB\8d¡F\87¥;\80³=~¯>{¬F\82§G\87²E\86°@\81²C\84¥9\83¥6s¤7z¯0t´5k¯4i·:g®2pª+l¶2m³5_³)[¨,[§9T¦=a ?\ª<Y©<]¦5W®6_¬7]£A\¦<f¡3e¨5j¤9m§>p¬Lm¨Lj¡>m¤@l²Dj³Gh¼Eq¸As¯Kp¶C|±By»F|¶It¯Hw±DrµB|µJ\7f´P\87°Z\80´a\85¦Y\93¡`\91¦f\96\9bn\90¡q\9b¦k\9b°h\97«j\9d©k\99\9du\9a¨n¡¡k¦ q ªn£©h¡±j¡²f£¥p\9e\98\96\8c\8e\80n©wj¡ut\9eus\9axy\94n\82\9ep~\9fo}\9aky¢q\86\95f|\98h\82\8fZ\81\8eY\82\90Z\84\96W\80/iw8eu8l\818ts6l|?t|3muCgf9giAsa5qbDycE}gG\83eFnZJp^Vr^_pZeidqldkw_ynOitWjehom_usp|utuwk\81|l{}n}|t\87qx\8d\83r\89\83i\82\82n\88\7ft\8f|c\8byd\8ayl\97ol\99wv\88~p\91}f\8f\89n\8f\80n\89}f\8f\83`\8c\8f[\8f\83Z\96\8eH\91\8bV\9c\97\8bI\9d\86\94>¨©Gª\9a>¸«KÁªLDz>ºAͳ4ŸEÊ®RͧDÇ\9fL¬BįKÀ²HÀ°AøL½¶I¸¬OÍ°KɪH´»6º¿C¿¼:ºµ>¯­:³¨B´«DÀ\9fIÁ¥MÁ >µ§=¼­@ªS½¼G»ÃB·ÃO¹ÄVĸZ¼·^¼QƶPIJVøIÁ¿J´ÀO­¾G¶µG§°K«°R\9f°H£¥:­£?´£;¡¨5\9f *¦\9e.¥ 2\99¥,\9b¥7\9fª:³¡,®¡-¥¤:\9bª9¡­: \99\9f\9b\9fA¨£9£°<  <ª£1°©1°ª>\9f¤9¦§8¡ 7¨¨-¥©-¦¯4\9e¯3ª´3§ª:ª¦C¶¬5¹¬>·\9e\98\9a\9e\994¥¡6©\9f\9f>¢¨B£¤@\93\9a?\94\98C\87\99K\8b\9aG\7f¦D\85©H\87¦M~¦?\8e\9b?\8f\9e6\87 =\8e D}§>\80ªC\85®@\82¥Q{¨B\83²;\8a¦<}©9x¯8\81«At¹@t¹<p¶1d«+n¶'h®/t³'i´+m±2e¢3c®-`µA_¦<a«6V§>Y±9c¶<a³Ae²?V·;c¶@X¯>]¦:j¥9i°Lw¦Ph¤Jg­Dj§@cºId¸Ls¸?i²HlÀEsÄ;s½Fp´Jz¶Ex»Ow¨@w«J\81³P\80®V\85§R\8e±[\8b°[\8d¤X\9c¤\\99®`£¤n\93°_\94«m\8d­i\95§}\97 n\97ªj\9a§e\95¥t\9d¦k\96ªk\9fªl¢\99\95\94\8f\94u\9d\83t\99zi\97\82h\9d|r wz\97}|\92tp\9crs¡pr\90dp\90b{\91`t\90aw\8e_\84\9c`|\94S}1mt;ct4cs6bu:p~?ru<mhBckBjb<r\<{^6ya>sfMz`KkQRfMPoIRtVanTeeVlo]ovUegchfbgsjmxm|xo\80ur~\82m\87\80n\86\80f\88}n\86\84p~\82pxyo{od\89yb\8e{a\8bxe\94rk\90vj\8b\81m\89xl\93~k\99\83]\94\85Z\9a\89e\8f\8bc\93\8b\\9a\91O\91\8dQ\98\8f\87W\9f\8a\9aH¨¡9¡¦:«¦H©¦M´¥C¼³C¾´8¾©=»®IȬQŤHͤIìAÀ¨I»¢HÁ°O¹°H·¨?¿©D¾´@¸¶:º³>¶²>¾¹Dµ°E¬¶L´®G¼°;»¡<¿¡@¶¨>±±J¶ªLµºBµ½DÀÄSººY²³Nµ¶T¹´PõWľI¼·Jº¹M²ÁH´ÃKª¸C¢¯Q¥§Pª£A¤¡9­¬5¯¨B­\9a\9b5¨ -¡§4¦¡0ª 2±\9a:¯¡2¤©A©¦B¢®:¢¥6¬¦?¯¡? \9e=\9e\9b4\9bª(¥­,¬³4§«9«®8ª­6¦²>§¥5°¥5ª«9\9f®>\9d¦:\9f§2£¦7§§6µ\9d\9c7³§6´\95\92\95;°§1«¨5®§=¥¬>\9c¬@\94§?\9d«E\96¢G\99\94G\8d\9cE\84\9fN\8b¥L\84¢F\7f\9eN\8a\9fI\93\995\8d\992\89\9c7\84\9eB~\9fI}±?\83©N\84\9dO~°E\83±@}¯B\80²D\87¶>~¸;\83»?~¶:v¬2n¬,f¯'f¯(k§(p®&k°)_ª(_®1[³7cµ4b°AY²2\³0f·;bº=[º0^·3T±6Z±<c»;l´@z´>v«Dv¤Kh¥Sc¬Fc¶Ir¯Ht­Et²<iÅ;dÆ:lºElÃMv½J\83¹B\80ªK\80´K~®J{£K|¤M\81¬X\89¯R\8b²V\92¤Y\9f²a¢²`\9d²e\8e¥j\90\9fp\91¥u\9d¤n\9c§n\94«n\98 h\9b«d\8f­m\9c¡p\9a\9co\9a\97\9aq\9f\9dj\9e\98g\94\93k\96\8cl\96\87z\9fty\91sv\93~w\91{y\9csl\8ehq\8egk\8fji\93io\9aj~\9c\~\9c_\81\92]\850fo7Zo@ek4jwEaxJcp<fg9_n@iZGj^6nT6w^Hi\PoVCeRGaLPcSWlLc`Z`jVp`YugTcgVnlfmvbcphwpe\82xk\81sd\89}i\88v`\8c\7fi{vn\87\80d\84ypxgn\83rc\89yf\8fn\\92pf\95vd\87\81c\8bwi\88\86[\92\88h\92\87]\89\84g\86\90g\8f\87Q\99\96T\9e\97T\9e\88\8c\95\97\99\9e\9c;¬¡?¹\9d;»¤5´±=º²D³¥K¾¡MÀ¬D¹­NÀ¢L¹¦I¼¥S»¢H²³B¼¢=Á¢F»ª@¸¦9¼¬=¼¥@»«<¿ªK¾§:°´=¶³;¶«Cµ¤;¼°BÁ§L·¦C½¬M¸·J³ÁU¸¾N½¯X»­G½®RÇ´ZÄ°V½±T¾«D³ºP°®M¦©? ¨B®¬I ¢G§\98\9d?ª¤C§£?\97§6\9f 8¦¦3¡£7 ¦7 £:¯¡<¡\9cG ¢C¤\9eD¢¤<§¬B´¥A±¨4¤©+°¡%³«/´³7¦´>ª¯9¨ª7\9fª8ª®2¤°>¤¤C¨\9e?¨«/©\9f-¥¡1­¡<±\9f7²¡5Â¥;°\96\8d\973´£6ª­8§¡=\9e¯G¥²E ¨=\9c©?\9f¢J\91\92B\95\9eL\80\9cF\87\96@{\97B\89\96;\82\9dH\81\9b8\80£2\86¥>}¬B|¡8\7f 9\86¬<\80¤Q\89£E}­J\80­F{¸A|¼F~´Gx³G\80²>s¿2u¶+p­,d¶8h¯4f¨/e¨5k«/Z«4gÂ=b¼2l²<Z±7]À-QÀ@`³:\¶7[À6T«C\³;h»>t²Ep¯Co¤Cg£Sb¤Jl¯Hb©Am¯Fh·>lÁDlÁBv»DmÄ>nÅ?r¿Hs²Ly¸I\82ªR\80°R\7f©O\88¦Sz³Q\7f¨M\8f¬Q\92ª]\96´W\9e·c\92¶c\89¯q\95«i\93 v\94¡l\91¤l\8d¬r\94¦i\96¡q\8a®c\8c£k\9b\99e\92\9d\91\9cr\91\93e\98\8do\8c\92i\9f\84\7ft\95yt\98zy\96rl\91yq\91wi\90me\90ut\9bkq\95bw\94e\80\95Yt\93`|3ct7]n5Ys>`t?UhGYbCai?cb;gXGlS:s\<nYIaODeUJlO?dPLdQYZMZbPa_Zbbcie`do\ip\jm_jvbxpk}qfvsh}|_\84}Z\80~\\7f\82\\82uc\86wi\80mj\81dk\82k]\90p^\8fwa\92\7fV\84wZ\86\86Y\83\83W\8b\81e\8c}a\92\8bZ\88\88_\88\93R\8c\96R\9d\99\92\96\92\8e\8e\9a>©¡3ª¬:­¥8«\9e1·¡6À«?¼¤GÄ©>À¬@êE¼§MÂ\9fW¼¢Pº©J´¦D¶¨E´¢;¯\996²¡8µ¡:À\9f9· ;¿¢B·¨>±«5¹µ>µ²:³¨A½¬?»§Bº±D´»Q¸·R¹¼L··Q¸«FÁ«K¾°F¾²Qº±S¿§R°¦R°®F£¦?£¨Iª¨Mª¥F©£H¨\9cC©¡F¤¨>¡£1\98©4\91­9\99¡8\95§0\9d\9c\9f\99\9f\9dK¡¨A±©A«¥8°¦1³¦1ª¨)ª¤ ¶¨$¼­3³°2±¨,¥«.ª¦>©¬<­¨7­¨@ª«3¡ 1¡\95\963¹ 0¸\9b\9e\97\9f\96\96?¬¢:«\9e?®§8 ª9£§E¦£F\9a©>\92¡=\8c\9dE\85\96@\88\9cE\89\9bF\82\99<\82\92D\8a\99A\89\9f:\83£=}¥?\83«8\86¥A\87\9f=\91ªD\8a¨F\84´L~±Ds±Cv²J{·Sv²L\80¾L{½?pÆ@m¾5tÄ8k¾8k¶;f®8f·2n²3`¸/bÀ5b·:i»:^¼3VÁ5Xº<S½?QµIR¹J`«Da®Bp®>r¶Ao¨JvªPe¯Ie¬Je¬OeªIm»Ii»Geº=rÁ7uÈEsÃGrÉKm½Em½M|¼P\89µT\84«H\83¯G\8a¬W\80¨N}­U\8a®S\8d¸_\8e³X\9dµ^\9d±Z\8b¹f\86´^\89ªg\7f¡b\7f¢n\86§a\87ªb\83¨f\8e­j\89¥h\90¥^\8e¢h\98\98i\9d\93b\94\8el\96\84e\8f\86c\91\83f\9b\86k\90|q\92yq\8btu\95\7fh\9c~f\95|h\9atq\94in\9b]{\94bv\95g{\86[z3jl+nc.bk3buAZh@T_B]V:Y\BfYGaTAe[@h[E[R?bJ:`SCVQN[^GcVM^\[VSecXriZajTal[eiejqajsmnthtvb\7fn]~\81f\86\7fbzuY\86y[|wY|te\85jb\8bbd\91wi\86s\\92t^\80s[\8c\83_\84\80N\8cxU\80|V\90\87\\90\85^\84\91^\8e\97P\8f\96T\9b\9a\8d\94\97\9b\9a\979©©5²ª.¸¥,¼¦9±§:¯\99N¹§9°¥?Á\9f=´¨E¹\9c\9cBµ£H·¨B®¨Kº¨D®\9b\9a\985¿¢7À\9eBà7Ã¥AÁ¡7¹±6³­3´¬7¹«?»¦<ȤK¼§N¶¯L·®N²µK¿¸V½ªG¾®DÁ±N»©Iµ¨X¶¯HºªC¸®D´«C¸§Aº£E« I¤\9b>¨­>¬­9£´9«³2\99\9e;¡¤5¥\9bB¨©;\9e¡A£\9f4­¤>®¡J® 9µ¥4´\9e:º©4­¥1£©3­©'´¡/¬².¶«<£¨6\9fª5\9e¦:¦­A¨¬?·©:­\9e\9e\98\8d\9a\96\9b\95\99\9b\99B§¢A¥¨6¯©;¤¦4¦¬7\98¬5¡¨8\9c¨G\9a\98I\8d\98L\8d¦@\8e\9aH\89\9d?\84£;\92\9eB\8a\97E\7f¡;\84®>\8a­2\7f§=}«@\89¤=~¯F\80´P~³G\85¹F}²L\81ªP\80µA\84»=vµB{½An´8yÁ4pÂ8wº5n»<wº<h»2o²4]³9g¸:f½:gÀ/ZÌ0NÁ=L¾<U¸DQÆC]¿?i¹>o°=t´Gt¸Gw¦Pq¦Oo¬Nm¨Bn¬Dp¬Ij¶Bs³@o»;n·6t»MkºOi»Bu¼R|¿V\82¬O\86´K\81°F{©\\81­Z\84¬M\89µO\87»O\8b¾R\95«W\8e´Z\92¼h\8b»e\94¸n\91©k\89¡e\8d¤h\82©g\82­_\80¬e\8f£k\8e\9e]\94\9dn\96\90m\98\8aq\96\93m\91\86h\8f\8cd\92|l\8f\87a\95\80c\91|q\92\81g\96ym\99\83g\90\81p\8dzk\8aoq\8dru\8b`z\91a{\86]\81.td/md7mg.\n+\]2\X8RT<VSG^WFcX:_];abB_RGXO>[UAR[GTdEZ\LVRS]PdiLjfTrt^iq]ordijhkpakvapiapl`\80{\\80\81_\89re\84nY\86k_\7fn\\8cs`\90g`\85p`\8bue\90uh\8bs`\8au]\8d~K\82\83I\81~T\87\85_\89\88b\88\7fc\94\87\\90\92M\98\94L\94\91I\9c\8a\88\97\9b\9e\9f0­¡/´¡6¹\9c5¯¥B²\9d\98\9b=° @· >»\9cI·¦Eª£;ª¦B®\9d\9d\94\96\9e\9c\9a;»¥9¹¨3Ĥ<¿£8³¦8¶\9e>â<ƬFÄ¥GÁ E½ªI·§M°ªV·ªJ¼´M¿¨Q¾¢J¶\9bQ¯¤L®°J²²;¶¬C¼¯DÀ¥B»\9e:±ª<§¥?±©J³´C©³=¯¬A\9f¡;\9d\9a8¬§>²¥=®\9d0¦¤4¬\96\99B¤¢6§\9e4­¥-»­*¹¹/¨µ.°¦-®§5¬­6®©7¨©9¥¡>¡¬<¨°E¨¨3°¦/§\9c\99\9d\92\98\99\9c\96\95<¿\9c=¤9³\9f?µ°<ª´;¡ª8¦¥7¦¯3\96´:\9d£E\9a¡G\8f¡M\86¢I\87¦D\96\9fA\8f\9f@\8e¢F\84©8\89\9f5\8b­8\82®3z§C\81°B\88«E}¯My´I\86ªJw®Rv¶T\85²J\84¨=}©B|¶D|¿:v¸<\84·?\80Æ4\84»-x½/p¿0q»<r·2g·6b»,`Ì2cÄ-`Ì1ZÊ/NÌ0IÆ.NÂ<\¸3a³9p­Km¬Nt®Uq±Rj¢Uj¤Pe§Jn³<i­Gp±Dqµ=t¶6v¹;jÀBr¾Dj²My·Sw°M\83²D\82­H\80­Ru©P|©R\88£V\83®U\8b¼O\93¯U\8d²_\94¯j\96¸d\99¾k\8e´e\95²`\8f e\8a§h\8a\9eZ\89\9cZ}\9df\8f\99k\91\9di\8e\9dh\94\96m\95\8fn\8d\8do\86\92q\85\85n\89\87c\91}a\89\80h\8a}_\8fx^\8a\82`\96~j\92\80j\90ym\86xe\89if\86cq\8ago\88]x;q`;te3m^1Z^.ab6WW<WO2[W;b[L`OHaT;S`E`TAaQ@WTIK^CTUGZMRZX^aVaYUgab^mW`hhejjcr\eubhvcsy_pj[{sV\7fvR\80m`\7fpV\83hb|k\\82th\8dm[\8fw]\88v]\8agY\8bfh\86sR\88xN\80mX\83uU\8a\81`\8d\84[\8e\89]\93\85S\9a\87H\97\88Q\90\8dA\99\8fB\9d\8c\96G« @\9d\9e\981°¢,·\92\96\9c\8e\92\8c\9a5« @°¢;­¦E¤\99K¥¦@»©L·¤P´\96<µ¡Bµ\94\9e\9cAŦD¿\9b8Ä >Ä G´\9d\986Á¡@À\99;ͬC¾¨G»©KÁ°W©ªMº®Mµ¯Mº¢I½\9eI¯ªNº§L­±F³§?¶«1·²8º\9e\9d3·¡=¬\9f>®µ=¸«=¬«Eª­I¦¤Fª\9d\98\9f@±§4®\99\9b\95\94:«£6¨¥-¯²2¯¨,¯®5²¨,²¯1´«0·µ9®®:¬¤4¬¤1©®G¥ 4°«<¨\9f8 £3\9e\98\9f\9c\9b\8c\8a\9b=¿\99\9c:¶¨B¦ªB¬¬7£¤?\9f£6\98¢6\98¨2\9c¦B\90³P\89©Q\90¥P\89ªF\9e«E\98©I\87 E\8a¤G\89\9c7\81¤7\8a²:\8bµE\82¼Oy®C\85¬G\83²Ky´G\80§F\86·N\86µQ\89°;\89·A\8b¶>\87¼8|ºDv¸<\86È7\7fÅ5}Ä9{½Ax¿>~ÊEjÉ6mÄ>kÕ)`Æ(\È7`Ó0XÐ4WÊ,YË.aÉ:b·;\»?jºKkºNqµUmºIk§Nt·Er±;n³Do©:j°6e¼?oÂ6oÀ=hº<e¬Om±Go®Yw«Tt«M\80­V{²M}ªH\8e¨L\90¶I\86ÂO\8c°N\8b»\\8a²Z\95»Y\97®U\89®X\8f©X\8eªZ\8b¢_\89\9ee\83¢b\88\9c`\7f£c\93\9cl\8e\9ec\90\92i\87\8ce\91\8dh\83\83e{\92c\80\7f_\8f~b\85~S\93\84R\8b\80`\8azd\83\85g\90\80m\87\80g\8buh\82ee\8bab\8e[l\8aUtBgo>nc0pY.a^4\];VS@XP8\Q4USA^MJZWBSW@UX?YP;[ZFSXINSWZOXeSZ^Ud^c]]gh\_cifjeanmZmt[ktTluS{mS\7fuW{qUul[zmW\7fz]\7fy_\83z]\88wg\96yc\92i`\8aj\\91f_\85jT\85iT\8ah^\82s_\8asX\83wZ\82yO\89zP\94\7fG\93\88J\8c\8aJ\96\95\8a\90\98\97\96\94\99\8d\84\89\82\89\8c\97\9e\9fE\9f\99\9cE±¦=¾¥Eµ¤H½\9d\90\91\9d\9aA¿\91\93K¿\96\9a\9e\97@¹ LĦMÀ²T¯U¿¯P±ªQ¬ L± I¬¡K±¦?¶¡7³¢@·¬6¶ª9º«4µ£,µ©+¼«4¾¡@³¨>»¦A¹¯G­¡N¨¢E® L¬\9c\9b\9eC·¥>¹\9c2¶ +¯\9f5®¥;²\9d5²¬0¬¯8«²,»¯1±¸4¸·)¸­2³°-²¶2±­*±¢6ª¡:®¬9­¦@¦¥?¦\9b6\9c£>\9f\9d9\9a\99\93\8b\8f\98\9fDªªG­°Cª´E¤­>§¯?\9c¤5\9f¡1\92¬;\93¸=\8b¶J\8b·F\90­H\8f®B\94²D\8f°B\8e¨?\8e©H\8d¦C\96§E\8d¯;\8a±<\7f¶L\87­P\85³K\81µG|·B\8b¨C\88©K~­R~¯G\88·B\88³;\88¶5~¶=|¸2\83Å3\89Æ>\81ÆD|ÁL\81ÌD\80×I|ÖBxÔ3hÏ-f×5[Ñ/R×4WË/aÔ.aË+V¾4XÂ8XÄCV¹FW±Pi·Jv·=sº>h¼4j±;d¬<m²?a½@b¾6l·1nÀ5i»HfµI`©Hc§Vo«]r¨Rw¦J}®P\86³S\87«F\8e³D\88¸G\90¹F\89»Q\8b¼L\91¼X\98¾W\8e¯R\95²S\8c¥]\85\9cZ\81£d\80§f\82¢a\8b\9ea\85\9b`\89\9ef\87\9dj\83\8fh\8a\8df\84\8bc\81\8f]\86\84\\82\84\\8d\8b]\8b\8aT\81\7f[\83\81]\87\85_|\83d\81wb\89zd\8epf\87bb\90\q\88]p7rb:d\-eW6^h3Z\-YL7SV9bQ4UM=^S<QG6QO9WXGYQNKPMS^VLLXOKR[\^Q`a\cVZ]_jhWjdjq]gi]fp]osbpqTukPthOzkM~jW\7fpW\7fr]\8dlW\8el^\86t^\8aqh\90e\\8dpU\90rQ\8bfM\86sY\8atY~q`\87n_\83xR\80\7fH\8a\83V\97\81C\97\8aJ\90\8e@\98\90\8a\96\88\8f\8a\9d\92C\9f\8e\85\81\8a\90\93\8b\91=\9b\97>\9e\9f\98\9fA¸¢Eµ\9c\9a\9e\94\95\8e\98\92\99JÃ¥B¼\98KÀ L¶\95;¹£I¼ C¸\9f\9bT¶¤J«\99\9e\9fM¸¢F³\99C®¦D¶£7½\9e\9e6­¢2¿ª2´²9¸¨3¯¬>¹±B¼§Fº¯<®¬F³ H­¡B¹\94D¯£F¸§@¿¡2°¡3§\96\91/©¢3µ\98-¶¢9¹¤'Á­2ij2º±*¼«*¼°%º³)¸«:´­6©\9a\9b\9e\95\9d\9e\9a\94\88\91\91\9f\9d= §>ª®<£²D¥¦D¦¨? £4\9e¤<\98·=\98¦=\98©K\94¬F\96¢L\97±:\9b´C\94©?\86 K\8b¥=\8f¨D\9a¬B\8a­9\88¨K\8f½B\8c²L\88¸D\80µD|ºC\87¶K\8c¯F\7f©B|©A\8a¬E~¸={·@{³1|¼?|Ê:zÉ@|Ò>\83ÆCsÉFrÅ>zÚ@pÚ9gÑ7^Î6dÖ.cË,SÌ5ZÌ3fÎ3^Â3ZÀ3a¿BUÃAj´Dl½KlµAhÀ>f´7[³=^»Bi¹5fÂ6iµ8lÁ7p¿;q¸Ek½Kk©N_¢Un¨Lu¡Vv§Gz¨R\86«H\84¦G\87®E\8b»I\85±Q\91µH\8b¸W\85ÃO\80»I\83·U\8e³M\8e¤V\86\9fc~§Y\81¦^\83«R\84\99V\83£d}\98]\86\9cf\91\96h\8f\8d\\84\89Y|\93]\83\8e`\91\8ba\85\87U\83\86Yw\87Uz\89a\80\85V\85\81e\8e\86X\94zj\8bl]\84f[\89cp\8amm;kZ0gW/f\3ad/bP+bK4bR.ZW3UM*[G+OS0TS@OR@ULGTWTJWXLUZSRZPb\Sd`O_]W^^g^Qj^]hYkf[npaqjdsqYphKobOxfP\84fK\7fuJ\84nZ\8bfY\8dea\95hc\8bmb\8bpa\95mc\8epS\88oN\83zN|sH\84lR~kS\84sO\8eoV\89{K\93}@\95}E\9dy?\9f\81B\9c\90\94\91\88\88\94\97;\9c\905\9d\903\9e\80\81\8c\87\8a\91\898\9d\94\9c\9f\96:¡@Ê\9c\9b\95\9b\8f\9e7¿\9d=Ê©FȧEÆ¥G¶\9f\96\97\94\97\9e\99\9cW±£Iº\9c\95\9b7®¢<®¢.²\9e\9d)°©7²°4»±3¾¸1¶¯?°¨<²©6·±?²§:±¡>µ\96\95\9a\99=À©1À¥%®\94\9c\97\97\9e1Ȧ3È¥$Á¯ ·¶-¾©/­(¾©6´ª8¬¢=±\9d:³¢A¯ 9©\93\8e\96\93\8b\8e\97N°¢L­\9b\92\91;¡¡D\9c\9c?¨¨A\9b±?\96¬A\9fªF\9c±>\9c²J\9a©P\97®L\8b¥A\99¬7\97ª>\89ª;\8c\9bF\95\9eH\98¨D\8eªN\95§G\8f¬A\8f¶?\81±D~¶;\8bºA\88¹L\8d²P\86¸C\7f¬<\84±C~»E\85µ<|¹A~µ4vÂA|Ë=\84Í:zÌ6oÄFsÉJtÑ<lÍ>o×6gÕ<\Ý2^Ö.UÎ:ZÅ?\Ë0ZÁ/]½.V¹;b¼>`Ã4pÅ8y¿Fn·Ci¾<gÈA[Ã?]É3]¿7^½3d¹3mÁ.o»4f»7k»Hh¸Sc£Od¦Oh£Ns©Iw¥Dx¤H\88¤K{«N\7f¯Q\8a¯U\92¸N\8dºL|ºQ|¹V\7f¼I~¯H\81­Vy­R|¤Q\84°K\7f¬Nx¡Y{\9d]\88¡W\90\9d\\84¥Z\88\9d[\8e\8fR\82\86U\86\8cV\8f\8da\8f\7f[}~^s|\t\87]u\8ea\84\85\\81|U\8e|^\90u`\80w]\84ta\8bnn,aO3_X,[_/c`)[O,VS3c[3\R(ZX!PO2SP/RM4EMHNLCUJYTVSOSRQURW[]O]Y[ZW\eR^XYZc_Whgahpgehn]r\[{gK\82lO\7foI}oG~fO\8a^S\88gO\8em]\9ae^\9aw]\95rb\96le\99x\\90|X\87tF\8a\81L\8dtN\87wU\8arO\95tJ\86uN\98\80D\98{E\95|;\97\8e;\9d\85\8c8\9e\8d\8c\88B\9f\85\86<\9c\88@\96\83?\9ey?¥\82\86\85\93\84\85\90\96\9f\92,Å :Ä\9d\9d\9b\94\91\9a\9e7º«>Ã\9e\9d\9c\9b\9c\8f\9d\99J¶¡Mº\9fQÀ¥N»\95D¿\9a\91\9d.±¢/­\98\9d.²ª8µ©:¶³1·«>¾°9¯§0«©;§\9c7«®;­¤=©\97\9c\95:¾£5½¦/±£0¬\9e\92\96\92\9c,½§#ñ,¾².ij/ì-Ä­"·²,¿«+©¨8¯¤3³¨3©©=¨\95\93\9a\9b\9a\90\98\98\93N\9c\93K\9a\9d@¢¡9\9b¦H\9f°;\99¯G\9bªB\97­E¡¶I\9e­G\9d¦Q\93¨J\8f£H\9a¦F\9eªN\8b¥J\8b\97>\89 J\92\9fB\9a¯B\97¬G\8c¶E\94²:\86¸>\82±8\80¸>|·?\80¾E\82¼F\92¹J\84¸B\88Á?\93°A\84·:~¼7x¿9\84Å>tÎD~ÉE{ÊDqÇFnÒ;xÍFtÉGsÜClÌAiÐ.^É?_Ë@\È1_Á/fÉ;[Ä<\Æ,h¾3o·5\83Â?w½Co·E`Å9VÃ<_Á0`¾=`·9e¹0k¼8h¿5c´Co°Jc°Oj¨Pi¨Lo¥Ik\9fL\7f¢B~ª@\84®E\85®Q\7f¸L\7f¬N\8b¿S\8a²V\84µH\81·Gy±HuºT\85«KwµNq©Yu§N|®J~°X\87¡M\80¨Y\84 P\83\9eR\84\97`\88\8eY\8d\9a_\8b\8aX\8b\8e^\87\8ae{\80ay\89hs\84ax\8chy\86^\8c\85g\8e\83[\85vg|}e}}c\80wd0T_,aU7YN7`V1Y_+TZ"XQ'\N$RX%OR%MX1CP??IDBQKQNRQU]XTYNSXP`WWeXSeQZZUSSRY]UPb^Wib`ckaav`[~aL}_M\83mL\8alQ\82^H\8aaF\88aQ\98nW\98oT\97qV\94ta\9duf\9brb\9d\7fP\96\7fO\96{P\97\7fW\8dyN\93pP\95qU\93{K\98};\9a\82<\93\80:\97\8dA\9a\90\8a6\99\8aC\9d\81\7fB\98\87E\9c}J\9a}D\9fwG¤w9\9b\86\8d\8b\8f\8c\87\87\8b\8e*¿\9c-¿\9b\9b\91\90\97\99E¶¡9º¡=»¡;ĦFº\9b\9e\98\92\9bD¿\9d\95\9a\9e\9a\94\98\96\98\96)´ 3´\9c/¯£5½ 8¼­<¼«0· 4³\99\9f7©¥0³¤4ª\9c\9a\97;¸ :¸¥7¾¨4µ¥2¶¦(µ\9d\94\93 Ä\9c$Ä£-ì,ȱ.É®.Á¬*²(µ#¸¦.¨©7¤ª<ª¦3ª¢;¯¢:®\93\96\97\8f\98\93\90\96R\9c\98L\97ªH\9c¬?¢¯F\9e°>§·F\9e®H ¦K\98ªL\98±V\94§R\95©Q\99\9eO\9b\97O\99\9aL\95\95P\8e\9fC\8e¨E\95¥9\98®<\91³B\95¼9\87»9{»5~²:v­D|¹<\82Á6\8bÄA\8bÃ?\92ÅJ\98½H\91¶D\88Ã=\84ÉE\84Ë?{Ì<pËJtÍIpÆDyÇGuÊ>wÔ@jÎ@mÒAsÓ=kÌ9gÈ7]ÈAcÆ@iÈ4lÉ0e¿5dÄ3hº0r·;{À8xº5i¸=]¸3_Á9WÂ5_Ç2k¾(h¼/k¼6]·=_²<d±:p¥Ap¦Qu\9cUm\9cTr\9cMv¡Ft¥Mv²Lx¯My°K\81µS\87´R\81±T\7f¿M\84¿Xy¶R}­Z}®Pn¯Im¶Ri¶Ev±G{¹H\83°M\80¤X~©T\8e§M\8c\9bT\89¥N\8d\9eW\8e\94`\8a\91g\88\8ei\85\8e`z\8egt\83hv\8ab{\89^\8c\8ai\8e\81g\92zd\87~c{wl\7fsd-UU&[[3`R.VM9RF/VU&RN4WG&HE0LE)AT1>P<EO>JTLK[WIZWDTUFXTUi^Tp^[iTTdWNT]PUUSVd`an_coX_mbTsZQxaLylI\80fK{hF\88^O\8c^O\8abT\94f]\8dgV\91q]\8cnb\95o`\97\82R\96\87P\9avS\90uN\92wJ\8fqI\9awH\8d\81;\98\7f>\98\86?\8d~D\92\90M\9c\8d\8f\8aB\99}A\9d\89@\9a\8e@\9f\87<\96sH\9c\82F­}C z=\9c\91\8d\90\8a\81\8d\88\8c\95\924¿\9a\8a\90\98\95\9b<¸¡D¼£@¿¡;¶\99\98\96\97/¿\92\96:¡;¿¢:º\9c\98\9e\8f\91\96\94/» ,º\9e:¬«5¯¡?¸²?²¦Bº\9c\9d2¯¢;¤¤?ª¬5« <® 6¹¡9¼§=Ä¥/Å¢6´­4º¬.¯\9f\91\9b)Ä¢*Å©&Ī/Á¤/¿³6ǵ3õ(¾¯%Á©.¬\9d3¬¦6«\9d\99\97\8b\9bK\9c\94A\9c\9b\91\9b\8dR\9f\98Q\9a¨S\92¡K\9f¦F\9d°?\9b°I\98³J\9c®F\9b§H\9c±O\9e°J\98²P\93«N\9b¥Y\8f¨J\92¥H\8a¡R\94\9dB\88¬G\8a¨>\93²A\91°A\95µE\89¯I\82¹:\81¾>{¼B\81²;\81·D\82¿?\92Ã@\83Â?\85½M\8d¶N\88¹D\80ÇC\89Ç@\80Ú=tÑ>nÉBoÌG\80ÒJ{Æ<\80Ò;uØCtÐGpÔHcÈB`Ò7]ÍG^À:aÈ3f¾7gÁ0bÇ9qÄ6hÁ=rÎ0xÃ6a·8b»;eÊ4i»5cÆ/e¸,r°1k¸9`´0g¶0]³9l¨Go£Mh\9aNj\99Mo\9e?j§Ez®?i¤Ly¯Qs¬Dy­L\8a¸G\89²L\83ÆL|¿Fl»Ix«Bz¶Sh°Fg·Rs±FqªG|±P\8f¯Nz´I{²M\8a­I\84\9fM\91\9a^\86\9cR\8d\91c\81\8c_\80\90a\8d\90_x\85`{\8df\7f\8eb{\89c\80\86j\8d\7fm\8b\88l\88\81_\83wl{\7f`.[_)JW4SP2[F9VH6QC-IN/JM+IM4IC-HA6JK7DM>O]RNWZI[`HZWHbYNoeKnaOhWO_VRW[WU\PXfYUcOdjVguZYw^X\80`L~dMykK~nO\8cpZ\88jS\8ajX\7ffT\82kT\91sV\8dmR\93xW\8e{Q\95\7fV\99xR\95yM\98\85L\97\7fB\96\848\98\85<\96\83B\90\87D\8b\8a@\90\81G\99\85A\9e\888¦yD\9ex>\9f\87\85E\96\81L\9dwC£\80?§y>£\85\88\91\89\83\84\8d\88\87\88\93\8c\97\92B¹ BÄ DʦDÂ\9a\9d\94\96\91\8d\90\9e\9c>¹¨4¸¢;¹£>·\9e\9b\91\93\9a\9c\9b3«¡1®¬:»¬9¾§?æC»\9b\9a2©¨6\9fªB¦¦<¡\9d\9a=«¨3¸©0¶¤-Á£8²ª.´¤(µ\9f\99\9d-³£+¼¥(È\99$Ǥ)·©-²¬-¾·4½³,» -½¤/±\9d\95\9d\9f\94\9cI\9b\9e\9a=\9f\93@\9d\8e?\9c\96N\95\9fP\97§N\97¦F\97©H\9b«O °J¥£F¢¢H\9d®O\98²L\94²B\96®H\9c¤W\96£Z\8f¬W\8d­J\86§L\8a¨L\89­F\86ªO\86­P\95¬?\96§I\8c¬J\7f±J{¿G\85²H~¶?\80¼E\85Á?\8cÇD\83É;\84Ç>\88¸M\8dÀL\80Æ<\8aÊ8\84Ù=\80ÛEuÕ?xÍ;wÌ<{Ï5\80Ð;\84×D{ÐIoÊKdÏFfÈ=kÃ=_Ã5\Ê=\Ì:aË:`ÆBkÇCfË9qÊ7sÆ5g¼-k½%hÈ.bÅ,^µ5dº/kµ/e¬3Z³3SÁ4]½0f®8j¬?p¨Gp\9dDm¡Bn«=g¡Jk¤Nv Pr¤C{´E\84³M\82µIw½Jl¹Fn¯Av½KlºHi³Qm¸Jq¯Rn¯Pt²Q\89¥J\86ªE~®K\89²P\83¨P\8a¢U\89\95[\8a\92Z\81\91X\83\95[\87\8bb\85\94bs\96mx\95e\84\82c\7f\84g|~q\89~m\84\80f\89\86m~\7fc&MJ%QW2VD4XC1PI.HD)MF+CK(GG/ED=HM1CV:CONMeUOZRCaXETP@ZYIedKlXT_ZQgRSY_[abK\VV^h_hh\mi]it[dphZ|fWyeSylWz`W~_]}k]vnT\8cg^\85{[\90vR\8fqT\90qZ\9ayI\91uF\99p=\8dy@\9e~E\94\80G\8f\83H\99\8aM\9c\81J\95{E\8c\85K\9a|I\93\8aB\9c\849\99u3\9d\83:\9c\80\83B£z>¨|9¤}D±\85\89.§{+±\82\824¹{0¿z)»~:¶\83\92\8a\91\8e\97\96\97\93\91\95\92\95\91\8f\87\98\95;¯¥C³ 8¸ C¸\9c\9b\9b(¹¢:¾ .®\9d\981³«8¸ªC» 6½¥6µ\9a\9bG¨¥=§¨EªªF¦¥?¤§G±¢?«¨D¸¬4ºªBÀ\9d\9b\9d\99\97\9f(³¤/´\9f\91\9b2ª3Á¡5¶µ8¸ >µ\9b\96\9f\9fC¼¨E±£R«\98S\9a\91J\92\9dP\93¡@¦\9a\95\98H\9a\9e\9eU ¦Q\94¤N\9c£P\9d¨F\9bªU\95¢R\9fªJ\98²S\92¬R\9d±R\9d®X\93°R\8b±W\89²[\80°R\8a£Y\87§Z\7f§W\86¤L\99±M\95²C\86®M\7f­F\7fÄ=\8e·?\85¸A\84¾9\8fÁC\8fÍI\8bÇA\85É?\88ÃP\8dÌ>\86Ï;\8eÌ9\8dÒG\82Ò?{Ì:{ÕDsÄ=\7fÌ6\84Ù<vÔ:\82ÖEnÖAbÜHeÕJoÆEhÈ:b×LeÉFkÍ8hÑIqÆ?uÆ9qÏ?p¾6l¿1gÉ)gÈ4mº0^¾=lº5o±6l´=i³6a½/S¼8[¹7\ª9_³>s¡Ca\9c>a©Ap\9fJj¢Ns¥Ak¡=w´Ou«N~°Nn²Ep¶Js¸?m°Hj­KjºCuÁJq»O}®W\85¨T\8a¥Ry°T{³T}¢S\89¤\\8e\9b[\8d\8eZ\82\94b\80\9b^\89\90T\8e\90Zz\93i\7f\9fkx\98]\85\91h\81\81a~}iz\81j\81w^\85wd\84\83`.OF*NN&FK-GF7JK5HE-LA+EI4MN0EI2@T:GQ=MYMH^KGWNDZECdL>\V=f_KeXSj`JeYHZXQ^YPkPMf_S]]^cn_^qfbs^R{]RueUze_}mbte]|iZ}tU\85rW\86sX\84lQ\90vZ\99wZ\94oJ\95fE\8fn=\93xF\93\80?\97\87?\91\85G\92\81K\96\7fK\90yS\8byI\8c\81L\95|?\95\820\95\802¢z1 }5®\83\86\84B©~:ª\7f-®}+µy.³|.´w)³y*µ\81\80\89\8c\90\92\9e\99\97\9d\97\95\8a\8b\92\87\84\8e\8d\99\97?® :º\9aD·¡<À¥;»\9e\9f2¼«0¿«*±¦/¶§1²§=±¤>¯\9c;¯¦:¯¤G­\9a?°¡E¤¥K¨\9bF£¢E¬\9f;²ªBµ¬F¼©E·¦>º\9a\9d)ɧ+¿ )¶\99\9b\9f\99\9d\9a(Á¨/»ª5´\9b\99\9a\9d\9aF´£G«\97\99\97L\99\97M\92\93O\9b\9bC\9d¥M\9d\9dH\9b§R\9c¥K¡¨R\97\9dX\8c©N\90¤R\99«K\94±R\93µK\9a±N\9b°R\9aºJ\93¶P\8a´R\86©P\83¦^\81¤b\83§Z\83«Y\80 X\8c¨U\92«K\91¯D\8c¯B\90®D\8cºB\94¶F\95¼:\90·C\8cÀ?\8d¾J\90ËG\89ÃI\87ËD\82ÕK\88ÐA\82ÕA\8aÒF\84ÎE}ÉD\81Æ<}Ë:\81×A\80Ñ8\81ÙE{×FqÚ=lÛCqÛEkÌ?pÍCpÖIqËAgÐGsÐFmÈCkÊBxÒ=sÇ:f¾5c»3i¿/k»0k»3q¸,g¹3iºAiµ?e¾?Z¶9b¼>Y·4\ª?e¨@l¡<b\9cBh¨Eg£?j«Gp­H{³Nu°Nr¯Eo·Cu·Gk³@n©@v¯?u°?pºEq»N\80ªS}ªU|«Vu°S\7f¨[\89¡R\89¨Y\88§X\87\97b\81\97X\7f\97X{\91T\85\92a\83\93`y\98`\80\99[\7f\9adt\8dht\8cg\84{`\86ye~q^\86xZ$NH\1eKH%LF+HB6IM6B@)PM1NE.BO5>K3LG7RNADV@?PT9RL>HS:WR>OVNd[H`VLYWV[TOcWP]PRdTO\OYec\encefa]sVQo]TnXW{^]nadpeayq_\84hQ\80jP\85x\\8cv\\8du^\99oS\99yI\8bqN\8anB\8f~=\9b\84E\8e\86@\91~N\9a\8a\87Q\94\81O\90|9\94u@\96s;\9dw1\9d\81.§x7¨\8a5¬}8«\83\81\82\83\8a9¶}.¬v&¸z-¶\810º~'Ç~0¿\7f\8c\87*¿\93\8f0½¡:¸\999Ä¡=º\97\8c\8d\92\8d\8e\95\89\91\94\9cB§¡?ª Aº\97\9a6¾¤4»\9c\9d7¶¤4°®.¬¯1±­9³\9a\9bFº¢Fµ¯N°\9dE¶©E´\96\97I¤¤Gº\9f\9fH²´Q·ªHÀ°9¸«;¿\9b\970Á¡)¼\9d\98\98\9f\9a\9d4¼­6ǬB·©7±¦GÀ¦J¿¨=º§Gº¢A¤£E\9e\9cU\99\91M\97\9aR\9a\9aD\99\97D££J¢\97L\9b¨Q\95£C\98¤Q¡ªV\9a£N\9a²S\95©R\9b²K\98­Q¡´I\96¶Y\91ªP\8bµL\89±M\8a©Y\91­^\87¥V\86¥Y\8e¦]\86¬W\87¯\\8cµO\8e°P\88²J\83µD\93±F\86¸I\92Ç@\8eº=\8dÉ5\88ÈB\8aÃH\87ÇD\89Æ@\92ÊA\89Ñ?\80ÏK\82ÑT|ËB\7fÄK|ÊK\89ØG\83Ò;vÕ@}Ú@\80ÏLyÝGjØGsÒFpÅ>jÍGrÒFdÒHgËHnÆNdÂEqÆEzÓ:uÎ>fÃ>lÁ6`Á0j´-j±+e³/_µ9g³4`±7b¶D`¼8[°8\´<b²7eªCoªMh¤Eq©An¯Ig¡Po«Ix¥OoµEsµJx²Kp¤Fp¬Nt¯Iq´Bn½Fz¶<w·D\89ªUw­P\84¦^\87ªT{«[\8c\9ca\85ªY\82\96W\85¡a\83\9fXu¤U|\96a\83\90X\86\9bU{\9ce\85\96f\84\9d_u\8bZw\8d[w\84]~{Z\7f\7f_\87{P\1e>>\1cAA\1d@G$>L&JM1MK&HI*SD8JH5BUCDSBOJ8?A?@GG=BU;GWJPMGOVFPWE^XI`MRVQIPbH[\NUT[YP`d[Z]d[`lTZfR`hUYvfTrf_sdglm]no]~iP\8cdS\89oN\95uM\97xP\98yO\90yR\96}E\8cr=\8dy;\9b|D\9e\88M\90\84\8e\8f\89=\9e\82\847\9exA\9b\80:\9d|,¬\88\86\828\9b|1\9a\7f9¡u=ªy:¢\87\82\81.­y"¯~%±}0¿s+¿\84\8e\86\8d\96-¿\9a\9c\96\99\91\87\8b\8c\8a\8f\95\94\9c\9b\98\9b\9e<¹¡1¼¤1¼£;¬\9c3²§0¬¥>´®?¬ª6¸ªD³\9bAº¤E·«E·°:®£7¤¥C§\9aFµ¤A·§=¼«L³­K¼«D½°:·¢0¾\96\9f\97\8f\97*¿¦*Æ¥/¿¢6Æ©1Á³5˵=¼·?¶¬@²\9fE¾£I¹£Q³§Kª\98\98P\9f\97P\99\9bP\93\94M\9b\9aQ¥¡O\9e\9eG\96¦Q\95«I\93®K¡­G£§M\98®K\98©K\9b±M\9e¯L¡¯U\91´Q\8e¨V\80ªW\80¦H\85§O\8d­O\87²R\89²_\94·Y\91±]\8a¼Z\8d¸L\82°M\87®V\83µM\8a¯L\8f¯L\8eÀE\86Ç;\8eÄ<\90½I\82ÄG\88ÈA\8eÌ=\84ÆI\89ÊG\87ÏI}ÅR\86ÉM\81ÇB|ÌQ\84ÔO\80ßNxßF\81Ô>{ÕEvÍEnÌFuÉ>kÄ?lÁ;eÆ;]ÎDeÑFiËKgÈFhÔCjÏ=tÉ=nÎBmÑBbÄ?Zº?`¶3_À8g¼5^´<c°=^³:]¾7b»<c¬;s·Hr±Lk§Aq¤Bu¨Ji®EvªMtªRn­Ps­F~®H{¤C~¥Kv¤Jp¥Ct³Bu¼={¸7|²<\84¯R{¬Y~¡W\7f¦\\80¡W\7f¥\\87\9a`\81\94c\89\9f\}\9e^w¡Tu\9cR\83\96W\8c [\85\9f`\82\98_\80\97_t\8fXt\8f\q\8aT}\8c\\84\88T\86~Q I?\18MC)<B%EG#CD3ML0NR%]E8LN3QL;DGHUHE?IGGKG8FUGJQ:JGHRM@LKN\MK^JH[]S[bC_TW[dR`\`OcYRj]`n\Xdb[b]Zm`Yr`Xtk[qfY~kQ\80t]\8euQ\8fgT\8djJ\98mW\8blP\8doN\93rQ\8fnD\95vF\9b\82<\96\80:\8b\81\87\8d\85\86\80=£}?\96{0\91\85&¢w)­\86\848£}9«t7¬t>¤~C\9f\83\8a\81\84\84.¬|+°r*µ\80\89\8f\93\99<è/Ë\9e\99\9a\95\87\90\8a\97\8b\98\90\93\94\91\9bEº¢D±§;»®0´¤-³«5»\9c<·ª;µ\9b=²ª?²«;¨¢K¯ªE±£Bµ£8¹­8²¢@´¦G³ K®¤G­®J±«D¸¬C®¶B¹¥4·\98\9b\97\98\997Æ£*»\9a5é/Æ®9Ò§0Ê©6Ì´=¼ :À­F¹£B¯¡Eµ\98\97\98\94J¨¥O£¡R\9b\9eI\9e¢K\99©R\95­Q\9e¥M\9e§O\9c£O\9d´G °V\99´J\9d¼Lª°Z£ªM\9f¤S\8d¢W\87©J\87¦H\8f¶H\87·Z\93¶W\95¯b\89¯Z\95¹^\8fµR\90ÅN\97³R\96¯I\8c¹Q\87±J\89ÁF\8fÀO\94¸>\89ÈI\8bÆE\88ÆJ\86Ä@\83Å@\89ÅJ\89ÐK\83ÈNvÌL\85ÌE\86ÐL\8aÍN\8dÚOwØK}â@yØF|ÓKyØGmÎAlÉChÍ>uÒ>gÓAiÑDeÐFlÍ=mÊ>fÐ=pÆJrÈHkÃ?_ÎGaÇChÄ:a¼8`¾5fÂ6nµ>sº>a®Aa´?c½8t­Au¯Is¶Lz¬Co¤@n¨Gy­Ns²M}µN~¦M{¨R\83ªQs¨Q|¦G\81£Hw\9d=o­>}¨@u²3w®@~²S}­R}\99Q\89©R\82¢S\82¥\\94\9a`\8e\9b[\8a¡bx\9cV{¨[{©T\87\99]}\9a`\86¡k\87\9ehz h}\8efx\95Z}\89az\83`\82\83`\8b\82O\19U?"I@%=?$BO*RI#PI+RC.VM3YK@RNJXHCNM<DWF?OOBSIEI@9HE=DL>FDIRHP]KOYPJSYMZaIRcNXfW\m\OgTSj]Xb\Rj_UnbYmaTsjZudR|ga\85q^\87iX\8cpY\88sO\89sU\85wT\8eoR\9bvP\99rH\9czG\93\8a?\98\887\95\81\85E\9f\8b\8f\87?¤~>\9d\844\96\887\94\7f.\9e\868 ~3¤w/­r/³o6¨x@©\86\83:¢~.¨\82\83+¥{'¢v(°z&ª\85\8a\94\99=Ä¢8Ȥ6Áª.È¡0·\9c\91\8c\8e\8cG¿\95\98\99=¯¡<³\99\9c\8e\8e\9e\9b7º©-¸¤+À©:¶ Aµ\9e\9c\9aC³¤F®ªJ²£Eµ¨I¿£K»­=°­:³®>°©?®¥Mº\9eMµ¢Cº¢M¯«G«¡@¨\9a\90\93\8d\93\9c1¿\9f5¦5ʨ4Õ©5Ñ­6É£8Ë¡D¿\9bA»¦I¯¡S«\97\91\9a\99\9f\92\96R¤¦U\9f§Q\9b¡L\9e¦U\9e«J\99¤M\9f®R¡±Uª¯\ª¶U¢²K£ªM\98\9eT\8f¡J\84«G\8a«N\85¸N\83·[\88¼f\91¯b\8a·e\8c¿a\89»f\91ÄY\8cÅQ\94µK\99¶N\8c´O\8f·G\95ÁI\91¹M\92»E\88ÃO\81ÄK{Ð@\84ÎE\89Æ?\82ÇB~ÈLwÉT\82ÆN\85ÎJ\8fÜJ\88ÙQ\82åFxáJrâBtÙ@wÔAhËMiÌOqÌKoÈArÓCh×FoÏ;mÈ7kÌ;tÔ@nÊHsÍ?hÉ<_Ò8_Ë@^¼9b¹6f¶6o¹:z¿>t¹1lº3l²;u´Jt¼Kw¼Ey´Gs³R|­Kz­S~´Q\81´Zv³X\81º[\83¯O|¨K{¦Ow\9dH\84£M\84¢Gy\9b<\83¨<}¨=\7f¡E{¥Gy©U\85\9eX\86¥U\87¦_\8c£S\93\9dS\90\9cQ\7f\9fX\80§Vuª\\7f¬\~\9f\w \\7f¢g\88\9bb\7f\9ej\86\93d}\8fat\8eis\8ab\81\89`~\80\$L>!IC.PG"AT\1fEE+QF$NG:TL1GEAUO<HEFLJ<GOBA=INB?EG;HG>>FDAOPJLOUPKPNPHN]QSbJ[]ITePOcMMd\RhYFi^IicYikKriSo_ZrdQ\83gR\83hb\81aR\83dX\81lM\80jQ\85fG\8bkF\99gM\94wK\94tN\9e|:\91\86E\8b\92=\8c\90:\97\8d8\97\86\83\8b1\93\8d8\9e\8b<\98\851\9a\84=£{.\9et-¯{7§w@¥wIµ\856¥z@¯{2¡}2­\7f-´{8³x#²\7f\87\81\94\8d\9c\9b\99/ɦ6Ǥ.¶\9f\94\9c\96\96\90\9cCº 9³\95\9b\96\92\95\998¸£6¿«4¾£9»¨<µ¤<® J®¨D¹­O¿°E»¬J¿¤I³®M»§DÀ¦B¶°D´ªQª²Pµ­E¿©G¼±N½¤Oª\9d\9d\96\95\8f\8fB½£9Á\9d8½¦7À¬:̪4È©8ϧGÌ¥LĪD¾\9eD´¦J§¥V¦£Z®\9cW§¤]¨\9e\98\9a\9cO¨¯X\97¬Q\9a§T¥¡N\9e\9eG¥©J\9d§V °O¨ªU\9f¯U\98®K¤¥Q\93£E\8b¯T\88²H\88´N\8b¼O\8e´V\99µa\9bÀW\8e¾U\9b¿_\90ÃU\9a¸N\93¼J\8b¸T\7f½N\8aÁM\8f·I\96¾L\8dÃJ\85»F\7fÉE\8fÃC\8cÊE\81É>\86ÂH\85ËC~ÐYwËV\81ÉD\86ÎY\84Û_\82ÞW\81ÜUr×ShÚ?pÓAfÑTqÊFxÏJsÈNvÃ@mÅ=qÎ?g¿>tÇFlÂChÆGjÊEh¿3bÇA`Í?aÃ;d¶2k±3tµ;p¸;k·1j·?oº9o¾Bn³A{¶@\80¹A\86¸Qy»M~®Q\80°Z\81®[\83®P\85²O\87«F~®K\86 Q\80¡U\8b§L|¨K\7f§E\82«?~©Lu\9dFt¥J\84\97J|\96X\87\9eU\92\9fS\91\98^\95 P\81\97\w\9eMt­S|­dx©X\80¨X\80ªX~«d\85¡_\89\9bh}\8e[\82\98g\83\97]\81\93cv\88Y\81\84P\1dHN'DE,F>0OG%QL)KJ2LN4KM>LA=IFDME9NAAP=8M<>I:?Q@DJK?BG=AHKPDON>QNFISJQQVRUV`IMZQVcNNjHPdQBc^DkaSfeYklTz[Vz[S{ZP{[[x\Y~bM}gG~dH~fK\8dfK\8fpN\8foO\8ezJ\98}A\96\8fC\8c\91@\87\94B\90\87<\88\8c:\91\8eA\90\8d>\9a\8d0\9e\8c3\94z?\9fz9\9cz4£o<¡u8±r9³|A³\82<¨{6­}9¤}8¨\84\84\84\89\82\81\87\8e\97<¿\93<½ 9­8Å\9e\9c\9d\99\8b\8d\99A¶ L­\92\92\8f\9c\9a\98\990Á¡5Ä\9b\9c2¹¦1¾§Aµ­Iº¯C¼¨AÀ§O½«G·«P¸¬PÀ\9dSµ¤M°£S©©Yª°U¶®V¹¯I¸§O»¤V®¤N°\9b\9b\9f\99\96\9fAÇ£=Å HÅ CΤBÊ®?É«EÅ­C½¯?¾¡<­¨?¬¢M®\9bS¬¥\«\99\94O\9e\92\92H\9e\9aV£ªT¡£K\9c\9d\9cF¦¥O\9e V¥¢V£®U­¬N£¨F\99¢I¢«J¡¦Q\93¬Q\91±O\98´R\8d½M\99ÁW\99·T\94ÇO\93ÅU\9cÎ\\9eÆW\9aÈZ\90ÀM\8a¼Z\80½W\8f¶R\96¹E\9aÀL\93ÀL\8dËB\89ÄG\84Ñ@\8eÑI\88ÑO\88ÃIwÆSsÈLyÇQ\87ÐM\8aÝX\8bà]~Üa{ÛWrØKiÏJnØKqÔNtÔIsËFlÊIu¾Gn¿Mk¾Bu¾<vÅ@{ÎNoÏKpÍK_¾:XË>XÈ;Z¼<c¹;`Ã8g¼?o¶Bq¸=cµ<b»9k¹6w»D\85´H\86·J\89±K\86¼R\8c­S\8b®S\89¶S\85¯X\82ªN\87¯L\8b°Q\86¤G\8c\9eE\84§O\90 O\8aªA|¥Ey\9cK\7f\9eNz\9fJx\9dO}\9aX\87\93_\90\94T\93¡O\8c\9fW\8a\9cQ~¡K\87­Q~§[|¬Uw\9f_zªZ\80§_\88\9a_\87\98`\85\96_\88\96]\85\92Z\8b\91V\84\8bJ~\87N\16I@\19GB'IC4II4P>0NG7LB6IA;V?<PFCJC@H87EA4N>8L@9EDJE@>E=C@JUHFRJOHOQLGVYGOUCUZ?RkAHeMKlQO`SIaaLfeKh_StfR}_[{[KvZL\7f\Q|_Iw^K\83TF\80YH\80aH\87hM\8ekN\92wL\95{N\9d\80?\89\908\8f\97?\8e\87<\94\8d3\88\89>\8b\89B\91\8e8\97\84>\9a\8d:\99\848\99{;£\84F r<¥nG¯{A¯vC¨u>£\82\82\837¥y8¦\82\88\7f\8b\8a\8e\87\96\9b6Á¦0À±<¿\9c\95\98\91\95\8a\9d\92\95\94\92\94I» :º @¶\9a1¼¡:È 3Ì«>¾¨:æF¶©F®;¼§HÀ²QƦM¾¬Y¼­XÅ\9fYº R¦¥I­¨K®¨Y®¤O¼©T²ªT¾¬O´§N¬\9dH·¤R»§MÉ\96\92\9b\98\9f?΢CϤIÏ°7Â¥EɯBÌ¡CɦB¢G¶©Nµ\9dW®¬^¤\96\95\9a\9aM\9e\9dW¦«J «Q\99«N\9a«K \9eN¦¤W©¦R¤¨O§ T\9cªH\9d\9bJ¢¢H§ªY\99­W\94¹J\8d´R\96³S\94µP\8fÀ]\93ÀS\92ÂW¡¼V\94·Z\9e¾[\96ÄZ\8b¾Q\87º\\8e·T\86¾B\8fÂS\94¹[\91ÁO\84ÆQ\81ÉV\93ÄK\8fÊK\85ÎH\8bÇNuËV|ËH\84ÑJ\80Ò\\8cÚV}ÒVrÒYrÉRlÊUsÑXpØSdÐCiËLr¿Dh¿;eºBuÀNnÁ<v¹Ai¿IrÁIgÍHZÂFZÄBd»:[»;eÀ:k°@i¶8c¶>w´5q¸BhÂBkµ=r³Ku¸M\80»E\87´O~½L\82¸W\88«X\88ºU\8b½Y\8b¶O~ºF\86°I\8f¬;\8b­J}±I\88°B\85¡D~\9fH\82\9fK\83\9fL|\9aNw\92F\80\92T\83\96U\88\9eW\92\97T\8f«Y\8a¥Ux£L\7f«[~«^s¢X} dw\99a\81¦Xw¥a\81¥X\8d\9a_\84\98_\8f\8cc\8e\94S\80\88S}\8fW\1a[?\eRI PA+IF5LF>T<>XE?ODDOC:VCAVG9K@7MCAC<BN<CIFAOIHKDI@;XC@\JLPER^MSZCP^<HY>I]FBlKDkUIcbJl^GihGy`G|^S{`R~fSveXyVKu^N\80XJ\84VJxUCz^C\85gA\87o@\83xE\8cxE\92\81B\86\90:\82\8e5\8c\90?\86\877\87\8a6\88~5\92\7f5\93\89@\97\86;\9f\8f\85\83F°}K©vM«yG¯}@®\80\80\7fB®|:«\85\8a\80\85\84\91\8f\89\8e\9a0º£-º¥0¾\9c\9e\9d\95\8f\94\8e\95\9cH¿\94\97\9a=³¤Aº\9c\99CŦ;Ì¢>È«:É£:¾¬> ?À£=È£BîMÀµS°[½¦W¸¡V¸ S«¦J±£T­­Pª¯W®\9fQ¸¦R¸¢UµªY·©LºªK¾\9d\9a\99\92\9bNÍ¡GÉ¡HÄ\9fIϪ9βBůFÄ¥FÈ¥AÁ®E²¬M·¦G­¢R¯¡V²\9d\98\9fS¬¨P¢©K¢¯E\9c¨K\9a¯M¥¨Y¯\9c\9bW¨¡W¢\99\95S¢¢T¦²P\9c²O\92»J\92³R\92µY\94µ\\8eÄS\93ÂV\9cÉQ\9cÀS\9d·T\97·Y\95·O\96ÄV\8aÉJ\85¿O{¿R\81ÇP\8cÊ[\8eÃX\80¸`\80»`\89Å\\87Ã[\89ÅS\8eËL\8bÉG\82ÖQxßZ\7fÙS|âL\7fÙVwØXuÍ[{ÐVrÐUtÏ^eÒUdÇGcÅGeºIc¸@a¿Jo¸Ip³Jj»Fh·<fÂ?dËG\ÄAaÇDc¸;^²;j¸@e´5c±4g¾3l»1gÅ:h½?m¸7z¹@\83®@\80±N\8a½P\85¹J\8c¶S\8b°T\88µW\8d¼W\82ÀN\85¶O\81³G\89¸@\88¸D\84¬B\8c¨M\83§N\80\9aH\88\99M~\94H\82\8eB\82\90D\86\96D\82\9fF\8e\9fH\8a¤R\8f©S\85®K\81£T}£W\81©V|¢Rs£]r\98ev\98[u¤Y~ a\82¢[\85\96[\8c\88X\90\8b_\94\83b\89\8bS\1fIG\ePJ'BA0BL4JA<NJ9KCEHMCHF;JB9RB;G>9OEFD<AELDOGIGJEG:UL>U>DNJGTAL[:OW;IWGA\FCiM<iI=dX>i_Jc`=d`OghFijLufI\81aEu\FnQ9rW9\82SD\80aI~SB\86WF\86^I~b<\80u7\81wF\88\88H\83\8c8\83\82:\85\893\8fx;\82};\85{/\8b\7f;\8e~9 \7fF\96\81H\9f\80\8b\87J´vJ©\83\84Cª|=±\7f\84\87\86\8c\8a\87\8d\92\92\8c\96\9b\99)¹¦-­¡7© B± I¨\97\91\9a\9c\8d\94KÀ¡D½\97\9d\9d\939´©C¿®8¢>È©@«@´¤I¾¨?Ĥ=Ä©L¼¤Ié]ɪ^­N·§P¶¦G®¥H°«P¶¢O¯ M±\95\9cZ¸ U¹ Nµ¢Nº\9b\97\8e\9c\9fHÇ¢VÇ¡VÄ¢NʤCУ@Ï¢:Å«DÁ®D̨7µ­J°¬M³¦Sµ¤Sµ©Q¬¬B¦«N«¥C¦©I\9f\9fA\9c¤F\9a¦M\9c¢K©¢T\9f¥Z°\9fU¤¤_\9d¨]¢¢R\9f¨[¨ª\¥¹[\9c»W\9b´P\97·N\97½S\9bÀY\98´`\93½[\96ËQ\9fÀ[\98´\\8fÀN\8b¸X\8a¹]\8a´Y\81Á\\82ÒT\8dÍS\92º_\82ÀV\8a¹_\81»U}ÄR\8bÓX\8cÑO\7fÜW\86ÛI\82ÜR~ÎW{Û^wß[tÔ[\7fÔZwØ\lÕOkÜU]ÌUeÒRa¿@]ÄKj·Gr²Ck»Jg¼;iÄ9e»HcÈ>^ÅKd´;e²@^¸9eÀ3k¹=o¼6d³Cr³1q°2uÂ5bÅEvÂGpÁC\80¾Oy±O\85´I\83¸F\82³L\88·S\86ªP\8bºV\8c­J~µH\87¶K\8cµC\81±G\89¯7\81§?\84\9eH\8d\99G\8a¢=\85\91H\90\95E~\9eK\87\97B\83¨?\8e¥O\93ªQ\8f³P\86§Hz¢W\80ªR\8a\9dU~¨\\80«a{\9eet [\80£b\82\99c\85\9a]y\93Y\87\8c^\8e\95^\86\96R\90\94T\1cG>&L>2M?0?I/KM3JN3KJ<GL>>H9DL4BE5NI<HB?JHAMAPMETQKGN@VK<VD>XKN\CLaFP]:H`<AlMEtM?kKAr_Dla>jdI^[IZgAgdAf_>tfBug=l\8~X8\7f\3v^>wZDy\J\81^F\7f_8\8ae:\81wJ\85\80H\8e}F\8e~A\87n<\88o;\85\7f:\8c\82.\9c\80/\9aq5\96s>\9buI¯zJ²\89\83\7f\81\86>¹}A±x4ª\87\8a\85\88\81\81\7f\89\8f\87\95\93\98\99\979®¡=¯£B±\98\9eH¬¡F¨¢G®\95\99DÀ£<¼\97\92\9d\99F¿¢CÁ­>ɯ;ĬB¸¤;»¨CŪFͬBÉ¡DÁ¡MƧYÁ\9c[½¦Lµ§F»©B²\9d\9aL¸¤N·¨I´\9cR¹¡W²¡Y²§OÁ\9b\92\92\97\92\96IÈ£S̪UË\9fLÏ¥GÒ¡9Ø­4Ò©6È¢CÅ >¾®>¹¬E´£Q»¡M½«H­­B£®<¡ D\9e¡J¬¡F¤\9fL\99©U\9b¥]\9e¥U¬¬Y¨§_¨¨X¢¦`¡§^­¡T¨¤Z\9e³]\98²T\98·O\96½Q\8c¿T\9cÁR\9bµX\9eÀ[\90ÅV\96¶R\98µT\91ÀU\8d¹V\90¼Z\8bº_\8c½^\94Í[\89Íb\8eÀZ\90Âb\83½`\7fÉ]xÌZ\87Ö[\84×P\85ÛSyÜNrÕ[{ÐY\82Í]{ÕWwÓ]\7fÖQ|ÒQuÞLtÜNcÕL`ÉEbÉBkÃBnÁHf½Bm¸?r·Fl»<b»HhÄKhÄ@i²D_¯Df²9o´7gº3p²@h±Ag²Eu³At³AkÁ;tÅClºDn¹@y²M\83±U{­M\88²P\84³T\8f³I\8c¨F\87«F|§I\85\9fS\80¤P\8c£M\8e¯:\94¤>\88\997~\98.\84\9a6\83¡9\8f\9aI\90¥N\82£D\8f£Q\8f¦N\8aªG\84®F| Mz\9dT\86£[\89\9bb\85¥e\85¥b\81\9ab\81\98aw¡\|\9c_\81\8e]~\8fd\85\98^\8b\97U\85¡V\8b\9f\*N=&U>(L91?J1II2BP:AD4CF@CQAAQ<DO<DIDOSHQECJRUIKLR@QI@YK9X9<WE;ZBLd;HW8@`AKiD<fGDfVCsO:q^?j]Fa[KhY8oU7iWCehHhk@tdCt^8~T7|\6iVFp\Bx]I|\J\7fg>\80hA\84zJ\8b~?\89t;\8dw2\81l>\8fl.\83{0\96u9\99h>\99o3£oB¥\84\7f?¯y6¾z?­\86\87\80;¨z=¥~6³\83\93\90\89\86\8e\86\87\86\96\9d\91\9f\1f­\947´©?¶\99\99\9e\9e@³¤K´ T²\98\97\9f\9c\8e\99\99J¸®Fµ\9eL»¬H¿\9e@¼¬CÆ\9bAÒ¦RÄ£OàSÄ NÈ¢Z¼¦U·­Hº\9c\9aN½¦S¢U¼\9b\9aM¿\9bXµ«J·¢FÇ¡O»\97\98\99\9e@ȧ?Á¨MÃ\9b\9d\9e\98;ɨ>Ë¡CÍ©BÒ©7ǧHÀªKÁ®H¹§L¸ H®£F´¡C«ªJ§\9f\9b?¢©P\98±N¢­[\9c°R\9d©R±«_¬£^¢®[¥«c§ªS§±_¥¯T¨¼Q¢¯K\95¾X\93¾W\99³M\92±U\8aºO\97Ê[\92¸Y\93´W\92»P\96ºM\8cÆa\89Èc\8dÁW\91ÄN\90ÀP\85ÌT}ÂV\86¾V{ÏU\81ËU\83ÉP\8aÝS\84ÖX\82ÑVuË\\7fÒS\7fÑbtÏa{Ô`|ÐW}ÞOuãIcáM_ÒXXÇLcÅAjÉKqÇTnÀBmÃ?nÀBeÀA]´C_ºNlÂ=jºDa³Aj±De¶AbÉ7nÃ7d¾@tºDp°PsÂBq¹KrÃD}º;\80±Nv­Iz­M\85¶N\87ºU\85·R\85©C\82\9c>y¡Ly¢M~£G\87\9eJ\8b­E\89±<\97«6\8e >\8f\9b@\7f\996\83\9f:\93\94B\82\9eH{©E\7f³I\92³I\88®C\86­C\84¨N\7f¢\\81\9cU\8d\9ad\8a¨[\93¥X\80©\\83£]~\98Z\80¨_u\96X{\90Z{\97P\91\94U\92¦M\95\9eX%I3-M4,O6'IH$GS-DL+HL5?H5CE8MI@KGDJQLBNBJNLSRMLJRA?T?9W43Z:<c::c=Ca=?ZD?\H6aI=`W>oY=oV=rZ3m`8dW;l\7gS>`Q8c`=nk9sf<l]1pZ1j]4kaAogBzbGt\F|aN\88sK\8dtC\89x7\81p1|n5\83k2\83k/\8ah=\89i5\8dm8\97x?\9aw:£x9¬|A®uD¸{<²y?¹\86\85\88\8b\8c\8b\8f\8f\8d\89\86\90\91\8f\96\9d\96*¼¤'»¡/»¤7¹§E¹¨A²\9c\9a\9d\99\97\9e\9b\9a\94C»£Hµ U°\9e\9b\99JÆ¡DÁ\93\92\9c\97Z¼§P½©KƲNÁ®J¸§X¶¢X½ ^¿ YÄ\98O½ J¹ªD»£L´\97\95\8a\8fN¶ H¹¢B¶­F¹¦D½¤IÀ¤PÆ\9fPÉ KÀ¡?Á¢CÎ¥=ͨ=Ó¥KÌ¥GƱD¾¬NÁ S»\9e\9aK©¤>¡ªG¨ C§°A\9f±L¥©R¥©T£°\­§[¦´Zª¶b¥±g¦´c¤¹^¨®U\9e¼Q¢¸W ·Y¤ºQ¤ÁO\93»Q\99¶V\8eÀQ\99ÁY\99Á[\9b¾V\9e¾R\99¿R\90É\\90¾[\8eÂM\8cÌI\8aÆQ~ÍY}ÈZ\82ÅX|Í_\7fÚZ\81×U{ÛX}ÐS\82Î]uÌVo×WrÑf\7fÌf{×a|ÕXuÜQbÚ[`ÔW[Ê[^ÂNaÇOiÆNqÁMqÈJb¼LcºGa¿@aºCf¾CiÃ8l¼7_¼=dÅ9nÇ;vÍDqÄHmÉSw¾QuÈOtÂK}ÁH}·B~¹K|²J|¹F\81³L{´R~³H~¡M\80 E\84\99H\7f¢F\84¤E\82§N\8e¢D\91«D\98©C\95¤A\87¡2\85\9b4\81\9e8\87\9fA\8c§?\85¬L\8c§M\86³F\86®=\80§B|\9dE\86\9dT~\9d\\84\9b[\88\97Z\90£V\88¢O\8dªU\82¡P\80¤N}\9dZy\95Z\8b\9c]\8b\9dP\8b\98Z\8d¢S"<3&I<\1c@8\1d>I\1fKE*C;)HD2A=.F>1::@G>8=I<ARKISE@FIDIQ??JF:ZC<]<4W6=WJ<fJA[F>cDCcG=]U=aV7q^2kd4d^6gL?dTC_ODc]@`hAh[<j^=ob3mR7uY:qT;tc6o\8\7f_E\80h?\80nH\8ff?\8fm9\80o>\84m?\8bx<\89r9\8fkB\8ea1\92c.\9ax-¤r;£m5ªt9·u>º|8¿\895¿\87A¹~8®\89\8b\95;\9f\8a\85\93\8a6\9f\88\97\89\96\8f0\9c\8a\9b\8e\9a&½¡.»¦0»¡;¸\97\96\97\9d\99?µ§B½\99\90\9c\97>¿§Cµ§S¼\9a\98M»¦UÂ\9b\9f\99\9c\99ZÁ¥S¹¦V»¦NÁ§D¹ S±\9eK¾ª[Ä­S½©VǤRÁ¡SÁªP¼ J¿\9c\93\97\97\98O¼¤Oµ©G¾­@Ç¢N¼ªJÀ\95EΣKȤ=Á¢IÊ\9f9Ò¬BÃ\9eCɱ<¿±CëPº¥R°¯C¸±8®¤=°£E¯§F±±Q\9d®K«°L¬µVµ°e®¬d\9eµV¥­Y¨ÀZ£¸_\9b½Yªµa¤Ág ºY£ÅJ\9a¿W\94ÄY\8cºQ\8eÅV\94¸[\97½V\95Ê]\99¼S\8dÍU\88Ç[\8dÌa\8dÏW\88É]\8aÓT\85Í^~ÓW\81Õ`\89Ä]\86Ì]\85Ý[\85Ód\85ÇTtÔasÎZrÉXrÕotÖdzÒ^rÞirÙafÑ]iÓO_ÏN\¿UaÈReÏFiÆFjÍKeÄBrÃF]³K^¿Q^·>`»;gÅ@cÂAgÂ>iÂIfÂCwÀDzµQ\80µRw¿L|¼M\83½H\7f·Ez´I|´Px®N\89²G\81µAx·J\7f³@\80ªK\86ªE|§?\83§<\80¦N\84©N\89³C\8c§H\91¥=\95£;\8b\9d,\91¤3\8e¨?\86¥I\85¥O\8a³F\88´@\81¨Ku¯G\83¨B\7f\99P~\9eU\81¥^\87¦U\8b¬Y\94«Y\93¥X\8b±Oz«Yu\9ca\84\9db\87¥W\81\9dF\81\9eX\82®V\103/\1d:9\1f<9\1c@D+<>.@8)E@.:C+=8-3<-=:77B=EOJCLNJHJ?IL@JNGLI9IO5;UE6RF>YK@eLAdO5^N7gU<dZ1cW0d];]_:dR7l]@hXAde<ac:k\4k]0rP7lO8mQ8tV=pX2s^5\85_;\88h8\93e:\91h7\8dsA\8ewC\8br<\84v4\8aq0\90g=\91g8\94e+\96g/¡w6¤x>³j8¸pA®\829¹z;¼\7f\85\88\8a3\9f\8e6\9f\94\89?\9e\91\93\92\97:§ >¯\97\94\8b\96\92.\9f\95\980³¡4²\98\9a\96?® C³\9d\9bL»¨K²\9d\93\9fI¬¦J®\9cE¾¢Lº\9fI¿¢Rº§Zº\9fU¿ O¸\9f\9eT¿ SÆ\9f\9a\9cQ¿¨IÅ­O¼©JÄ°Y¾­\º¬VƦP»¯F½ªLÆ\9e\95\94\9c\9c\98Jµ¤O¶¨HÆ¥Kŧ?¼\9c\9bDÊ @Ѥ<Õ¨:È¡EÈ«?Ǧ9ñDɪ=Æ¥C¾°L¼±F³@¶¨9·®=»«Q±¬U¥®W ±R«¯d¯°e©«e\9b°V\9d½`£ºb¡¶^\9d½W¢¶_ª¸g\9aÃd\91ÅO\96ÍJ\8dÆU\8bÃY\8d½N\92ÆX\97ÄY\8aÆR\8aÈ\\91Í_\91Êa\89Æf\8aÎb\8cÊW\81Ò[\86ÒZ\82ÖX\82ÐW\89È[\8cÆe\86Õb\86Í^\80Íd|Ðg|ÎZvÒ_rÙfvÎmvÒgqÕ`mÜioÜ_sÐRtÌWgÍ[hÆWpÆOmÎPfÓJmÄNo¼G_³R]¹Q`ºH\½K_ÄE`ÅBc¹F_·Jk»Lp¼E|½D|¶L{°H~²D\7f©G\85°?{¯F{¬N}¤K\82­:~³A}±?v«D}®A\86®=\89¦=\90§@\89 C\91£M\92ªI\8d¨H\97\9a5\8b¦7\90¥-\99«;\90¡@\95¦:\94ªB\84£?\84«Hy³Jz¬;{©<x¦I\82¨O\80ªd\80¤U\8c¨Q\94¦R\92¨W\87®a}ª`\84¥a\80\9fct\9fUx¨J\81¡V}ªS\18;4#41%<>\1e:D 0C1351.D.=@24>+0:46G66DA9B>BHMBKD4RT:KJEFVF;I:FZG;ZJ0cB8jP2mP4mH8kQ8kV5b_;iaBaU8lQ/^W@_Z<\VGbd;`c/a\/dW5mV6iW;lV>v]9t]3ua<\8c_:\8cc4\8en;\8en>\91fJ\87i;\85{8\91q?\89k4\92h1\91^&¢k,¡i0«q3®e>¸l9·w7¹\86>±|@²\8b\8f\96\962\9c\8c\8a\939\9b\95\97\87\8f\99\8b\8c\8e1\9e\8f'\9f\8d\96\97\99;\9c\984\9c\98\96:©©<¶\99M»¡V­\97E¸¡V¯\99U©¡G·\9e\9c[¶¢Rµ\90\94\99\9e\¿\91\9dTâ`º\93\95Y¼ X»®JéUñUĦQ»¯LÆ©ZãXÅ¥Tº¦Q·\97\9c\99E¿\99\9d\99\98I·¡BĨ<¼\9e\99\9e\9e\9d?Ì¢FÕ¢DЪA̵:Ô°=̶7Í®F¼·;˲BÇ»EÀ°J¯¶?±¨G·¸Mµ´Q²¹P¥³[\9f»_\9eÀ]\99¼b\98¿^\9a½[¢¹`\98ÅU\98·a ½b¢»Z\98È[\9bÇY\8a½W\93»L\85ÂJ\8bË[\8fÆU\90ÌT\94Éb\94È]\93Ã`\85Ño\84Ì_\87Ðh\8aÐX\81Ù_\85Ö\\90×\\8aÊ[\85Ú_~Ód\81ÚauÕjuÒbrÐfpÚ[oäjnàj}Ò`nÛqfÚetÝhtÕ_kÉ\lÉ[mÏS`¿^eÉZbÕLiÅYk»P_ÁNZÅWeÄQ\ÊNg¿FZÉGcÉFdÃDc¹MzºNz¶@z¿I\86¼D\8bº<\83¬7\91·>\8eªC\82¬M{¹L\84ªD\80¶Au®9\83«4|±A\84¤>\83¤3\8e\9e6\82¢B\8a\9bA\99\9cD\8f¥;\99¢;\8d\9d2\97­-\9a¤-\94£:\93ª9\94µ>\8d®H\93¬;\82¦G\85¡<s®I{§Ou¬N~«d\86§P\7f£R\83¤X\88®N\8b²Xw­c\82¦]}¬f|¤Vq­Uw¬J\84©Q\197"#2%\1d05".7 ,7():)0<)0B*,B6,G2-K;7=56>>@>E;?N9MP8RR7EW7FTD?ZC;g@2e;4gG4bH0kF4bK)aT-jN3iV:lT=gU8]S6]_D]T@_X=b`;[W7\Q1lU+t`.oY2kU7uX0\80X>\85_:~j6\81g8\84bF\88dD\85hH\89n>\87p=\90p:\8eq/\98g,¥i*£].¬h-°h2³s*ºs2½\81\80\89\93\98\92\88\8d\88\8d\81\83<\9e\8e\8e\92\92\96:\9d\98.\9d\9b*\97\942\9c\9a,\97\95-\92\9a2\98¡7\9b\9c?©£@¥¢K¬\97\9b\9dX­¡Z®\99\9c\9b\96\8e\88\8e\94\91\9d\97\9e\9d\˦ZȦXÄ«YÆ©UʨIÁ¦L¼\9c\9d\96\9f\9d\9c\9e\9a\9d\96R·£D¢?Ç\99\9b<½¢<Å©EÅ©PÉ¡MÉ£GÒ©KرDÙµ<Ö±6Ï»:ÆÅ<ÊÀ7ȶ7ʲE¿¸H·°C·ºH¹·M¿ÁP³¹X©º_\9dÃ_\96Ðj\9aÐd\9aÐ]\98Éa\96ÆW\92Ã\\9b¹h ¼c¢»n Áh\9aÇd\93ÀZ\8e¾U\8aÍU\81ÓY\87Ë[\8aÍ_\8dÎ^\85Êb\8eÆh\8eÎq\82Óm\7fÔn\87Ò`\88Êa\8cÍj\8eËc\86Ö`|Ó`yÛmyÜuzÐl}ÖbqÚ`m×]kÞiqÛorÙgkÝllÖmlÚbhÎcrÈekÇ_bÄ\`ÇejÁ^jË^i¿`lÄVhÇReÈWnÄSlÉYpÀQeÁRhÇOeÆIpÀArÂJt¹;\82»9\81¸4\89µ:\83³1\8b»9\85¹;\8aµ@\8a®K\87³E\8b¯@~µ9\7f´0\8c¨/\92\9e:\89\9f5\8e\92>\88\95>\8e\90>\93\9b=\96¡3\93¢0\96£4\95­2\97­2\97­/\96ª0\97°A\93³F\90¥>\8c¬K\81¡It§Ox­N{©V\82¦Z|¬O\80¯R\8b³L\8c¬U\84¨]~°b\89­\\83¯[\82¬Uz´W|¶Q|ªJ\19>.$4)*1:#.<032/(<3/9+4J7.E,/@8.C1?@24:9<HN7GJ<LHANP@@X@CSF>cC.gL.^P8eB1_K5lP4eQ4hb9]_+aa7eX;qWDrN@d_4dS?]R3]`1VR/fZ.l`$fT+p_,uZ'xW/xX9\85e>}_:\82r5\82hD\80cC\83u;\81m9\85m7\99s>\99t=\95p.\9fq2®_+³i1¯n6®q6¼v:ºs7§}E°\8b\7f\889\9d\87\84\87\8f\91F\9f\85\88I\9c\84\86\8f\97\92\986\92\9c(\9c\8f/\9d\99(\8f\92\969 ¨?¦\9d4\9b¦@ \9fD\9f\9aV©¡U¶\9b\9b\96Qµ¤M¸¢`²\97\92\96\90\8f\9cO³ SÃ\98\97\9aVÅ©^¾£XÅ«]ºµ\À©R¹°MÄ¡NÅ¡OÀ\98Y²£P¹«WÀ¡V¹\9dT½£_¿©Rµ\9fN¶¢C¼\9a=Ä©8¶\9b=Â¥=À­Mɤ@˦?ɯHÖ­DÕ®?л:Ǻ?Ì»?ÿBαDòOÍ´LÆ°Q¼¨J´¶H°·P³·\²»[¡¿Y¦Çb\9dÄ`\92Éc\9eË]\9aÒ\\93ÐT\9aÅc¢»f¡¶]\94¼d\9eÁj\94¶Z\8c»T\90ÂV\8b¿\\89ÎP\91Æb\8aÅ\\8fÊ_\97Éf\9cÂk\88Är\82Äk\81Ó_\86Ìa\85Êf\97Ôc\88Ðe\8bÞZ\87Óm\82Úo\86Òj\85Òk\81Ó`v×arÔ`e×dnÞoqÞmhÕimÜhmÊhmÚ_iÖioÖc`ÉibÇZ]¿gbÎfc¿ahÃVeÉZ_½\mÊ`nÉ_e¾Lm¸Nk¸Up»FmÃBoÄE|³:w³F~¹9~±?\81²7\90¯>\84»F\90²C\84²7\7f´Bz´4\84¬7\87¨/\83­3\84®)\83\9d4\8f .\85\9b7\87¤;\91 F\94¦<\95©8\98¦4\8d¶<\9b°4\94©,\8f§=\9c¶7\8a­G\8c«D\8c A\8d\9cEx°O|®Hr°P} \\81®Y\7f«W\87²Y\89¯\\7f·U\7f©a\80·X}ºT{µ_w´[\84µH\82±I\1f7+&52\1f+4(-:-57*-0$&>.)B53?.399.D65F/9J92FK0DQ1LP5NKE>SHBXM:WE7[M0cD-hK2lH(bN+dX9]`7bb:f\2oR;rK>mL=qS/gR-e\8`R1`X*]b&h])o\(t[.uU6wZ.{c8z^4x_@\83k:\88s<\83r;\80j6\8al@\89gG\91m@\91h;\9ds2\9fm/ªr0¶{2°w@·u?°s3§u?©zK¦\84B±|H®\82:\9e\884\9f\88\85\8c4\9e\90@\9c\93M\9f\92\86\86\8d\98\94\954\94\99+\93\99+\90\8c6\96\8d4§ <©¡8¢¤F\9e¡B\9f«J\9f§G¢\9b\93\95\9aKµ§^»©`³«]¯\9c`± N³\94\99Vµ Uº¥`À¡YÁ\9f\99W°¡Y¹©TÁ±P·°XÀ·S¸¯DÀ£G·£M¶\9dO°¡W¿£]¿¯W¶ªQ¹¨[¹¤Y¹¯M²¦L¼\9cD¹¤@¶¬CÄ°MÅ®IÒ¢Cͤ<ƯEͯ?Õ´:ѳ=®=Á´EϹMÒ­JĵUïT¼­Q»«T±®S·¬Z¸³O³´S­³V£¼Y\9fÀN\96ÈQ\9bÔR¤ÐR\9bÎ[ Ê[¡Á] ½g\9d¶j\8cº`\87½d\87¼\\8eÁZ\89½Z\85ÅR\8eÒW\9aÂ_\9bÃi\91Æk\98Äe\94Àh\93Æj\95ÎW\8aÆR\89ÑR\95Ö`\9b×[\94×_\8cØb\93Òp\89ßc\89ÝcxÕZuÜbzÖ`mÑiiÏnm×cuÑbpÑpw×gsÕ^oÝkoÓipÐjfÂ^eÉ]gÅanÍcnÇYdÀ\\ÀbYÈbgÅTh¹Vx¾T}·Pu¼PlÀAj·ChÁBuºBt¶Ezº@\84»C\83²D\85¨C\8a¯E}²:~¸3}²1\82¬=\82©6\8a±,\83µ4\83¨-\84§5\8c\998\8d\9aG\80¤L\87\9f=\88\9f>\93¡B\91´5\98«4\8f¦5\98¨<\97±<\95¹G\8c´B\86«=\8c¨E\80§Kt²El°EsªPt³I{´K\84®M~±[y±Y\81²So¶[n¸\sÀWv¶T\83ÀQ\86¸J%,8%;*\1c73)71$7-!6+*5=/*F38@27J4:H2:@78J7><F;FL3IE7>VI7TG4UI5QF<VK0\I9bU9aO9dX3l^3eX>l^5gQ*kL9hC9uC7iE9bL/kR4gM/tU4pY+kY'mY,if2ya,nY/q[7ka@oh8}`9yiByk?\8bkB\8caF\95pI\96pK\8d{;\9e|2¦x;©i3ªyD²w@§q<­~F¤|Gµ\81\83\7f\897\9b\8a\8c\88\83\97L\9d\8f\93\88\86\86\9a5\9b\92/\98\90>\99\94:\95 +\9e\92\8e:\9b\9b\99B\9cªI\95\9f\9a\98\94\9d\9c\99Y½¢[¸¯Y±¦`ª\96\9a\9f\9d\9a\9a\9aO¿¦Jº¨L®£Q½±P·°Uµ­P°³M¹±Q·«M·´M¬±T°®Y°¤P³µTÀ³U³´`±±\¹²I¼¯N¹¨F°ªE·¢Qµ³JÇ®C̬C̦6и:ζ<͸FÒ®?ʱ=Æ©HÁ­NÔ¸DÒ´JÂ¥O¹¨Z¹¦V¼­\´¤`¹²_¶®W®±K\9dÂM¨ÁK\9eÈQ\9fÍ]\99ËQ\9aÂa\94Æ^\9bÊZ\99¾a\94¹]\8d¼W\8a³`\8cÁS\84¾X\91ºU\91Èd\92È\\93Ì[\92Ái\99½g\9bÃd¥Ía\95¾k\96ËX\97ÈT\98É_\95Ï^\92Òc\99Úk\99Öj\97Ýp\8dÝh\87Û`\87Ú\nØckÓeqØ]m×^gÎ^wÖjtÄ`uËczÍlzÒerÍnoÇ^sÍ]iËboÑ^eÄZhÊScÊ]YÃZ^Â\aÆNgÅVvÎMqÅTq¶Aq´Nj±Mi¹Ln·DxÀ>z¶C|º@z·?u³=\80±D|®9q«5~¨?zµ7\88²2\8b§5\80«3\7f¥7\89¡,\8d\9d@\87©;\85¨D\80\9e@\89\9e@\84§:\92²6\97«8\93´9\89¨2\96°:\83®F\8b¥@\82«M\83§F\82±Bs¹GnªPk®Us¯W~¸Lt±U}°[\7f©N\83´Jw³Mvµ^r¸b}¸Zx¶K\81´J\1d,2\1f1/\e62\1a7-\19=)\1e53#1;-4C57K90I1:M4:F8;B?=;J3:D4;G10S=2P:3ND4U=-\E2dU7eY>aUFkW<mT6iY9eY3kN3pG9nIBsN5fB7mA6jO0jW9vU3q\5v`,t`,oh:wd?qh=sk?ieFegCqf=oaB{_F\80bD\8cg;\93l<\91qG\98|I\95xA\9eoJ mAªiF°s=¥|D¦|JªzR±|H³zCµ\84\80=©}:¦|C¡\84\8f\91\8e\87\8a\91\92\8d2\9e\8d6\9e\9c\9d\96\8b\90\9e\9f\9fL\98©W\9c§T¤\9a\95\98\9a\9e\9aU»¥]³\9f\9eW¬¡P¯ªL±«E¶\9aDÁ¡EÄ\9dJ½¨Fµ¯K´·N³¯V°§Y²°Mº¯H¸³PµÀV¹½M²¹O­³\¶©S±¯Y¬²`¶³^¶«Y°¨S¨«^®«X¸¡\±¦Pº¬S·­Gų>Ǹ9ƽD˺?Ô¬DÑ©GÌ­GǬGóAͲHȲKĪPÇ®Oé^Ç©c¼¦_ª·[§·N¨ÂJ¤ÀM\9e»K¥ÅX¡¿_\9fÃV\9eÌZ\99Ì`\9aÍ[\99ÅW\9a»L\97ÁO\91ÂJ\89µU\8e¯[\8cº\\94¿c\93Êb\8bÉc\94Ã`\95Ãa£Ên\9fÊk¤½e\9b¾b\9aÅY\9eÏ[¡Õ^¡åg\9cãn\97âc\98Úg\8fÝo\88Üg\84ßXxÐYyØdrÒ_hÉZnÑZsÎasÆ_nÄftÅhpÆdrÒimÔgpÑgrÌfuÐ_mÑYfÐRb×TdÌYoÆQiÎOuÓQwÎJwÇLt»BlÀKb¹Gcº@e¼FpºCo¾Iw¸GsµHz¤<v¡;m®=p©Ay¥:x²8\84¥7\89©,\83\9d2\8c\9d2\90­5\8f®8\89°=\81«H\85®G\8b«P\8e£P\8c«H\87§D\8d±<\8f°>\87ª<\80«?\84¦L\82¦E\83·L\8a´O\83®Eq­Jo´Pw³Lw³U{±Vo£MpªQu­Kp³Zm³]{®Zy·Yv±O|µG\18',$-3\1977$;+$?<-8=*0:9>=64;:6C/6?93DA<8BA;FA2F.1C.7C22K?6BB8EE.UB:_T<bY5^]:cW>lV5rV6`H._O6_E<hF<hF7_A;mP._V5qX7r`5kY0oX8sj7}k6|iCrk=gbCdo=mnFwtH\85jD\81\H\8ecA\82^7\87g9\8dj@\9dn;\90\7f:\94n<§n=©k;°o@¦vF¥q;¸uH³yD¸sM°}H·yB´\80\87@¨~G¥\8b\91\92\85\82\88\89=\9f\93?\9f\99=\9a\925\9b\992\9a\93\8e\8e;\9f\989¡ K\9f¨G\95\9f\9bP\9c¡Q­\92\8b\93P¾¢K¶ªQ»\9f\9fY±ªL¯¢S­±J°\9eB± F±\9a\99W² I¼\9eE¼ \¿±]·°T·«W¸¹W·µE¿¹J·¿]°µR¡´]«®W«¯\­·T·¯bº±Q±¦V´¯Y²¨\¬­O±ªR¶®L°¥=²µB¸¹>Ë¿IÉÄNÅ°EÖ®OĵSβO¿¸O¾µLãN·¦Xµ²^¶²^Á°c½§Y·©Z²¼I§ÁK¥¶J¡ÅT§¾^¤Ã\\9e»\ Ä^\9eÇd£ÃV\91ºa\95ÅU\93Ê]\93»[\83µP\85¼V\86º\\8eÅ[\95Â[\96Â`\98Ê^¡Ël¤Àj\9bÍi£Æo¥Äe¤ÉZ§Ðe\9eÖn\97åg\97ëg\98Þm\93àg\93Òj\85×d\89Þ]\8aà[\84Ø^wÐaxÉbkÉZ|ÇXsÁ_oÍg\83ÅhnÇboÊbsÕjmÛqjÚexÙ]wÉZlÓYsÖXoÊTgËTnÕYlÈF{ÕGtÁItÈCk¾>n³Gm°Kk°@u¯BkÂBk¼Ei´Nm¨Hl¡5y\9d2u®<u²:}´6\83¥7\84¥8\8dª<\88ªA\81¡?\85¬<y¡Hv§Bx°Kv¬Q\8e®H\8f»M\85«K{±9\82§C\91·7~«=\8c­J\86«I~®Iz¶Ou®E}³Kk­Ss­Vp¨Of¬Ju Jp§Ql Mi¬Rh¸`pªOv­\w´Rq±Q'-)\1a('\18+6\1f79#04-887>369;-C>/<@./?=3B@78DB7J:/P17N=3C76GF<BO8EP7KN3RG-WM7fV>fS4rU3lP8nG9bH8^M4c@AfD@eF3_X:e[4nf4l_;f\@o`4|c9~\9xdDpjIrqJkg:nrDzqG\82jO\8bhH\89aG\88c?\88p9\92p@\96o:\99{?\9ezA\9ck9¯i;±jE·nE²k7«i;´pK¸yR²tI®y>¯{Aª\83\88\8c\93\97\8f\8a\83<\9d\89F\96\90@\96\92;\99\8d\8d\92\915\95\8e=\8b\96<\92\99C\9f K\9e\9d\9dQ¢ J®\96\8f\99I½¦N¼¦Pº©Sµ¥T¶¤L°§M³«Mµ­F±ªJº\9f\9bSº£N´\9eO¶©[¿£b·¢U¹²R¸´V±®K´¸T·µ\¨®]¦®a°ªV²«R©¦W¯±V»°Q·³X¾¶\¶ªW»¯O²§E°\9eH®£B·ªO¸²L½»LνK͹EίJƱIĹUǵJ¸¬O·¥X³£W¯±T°®Q´£Sµ¤d©¹Y¬¼L¤¶F¡ºM\9aµW£¼V\9f¾Q »W§¾^¢Â]\97¾]\98½a\95½b\97ÃZ\8f¼R\8a»S\92»V\88Á]\8a¿]\92À] Âe ¿l¦Ài\9dÅq\9bÅr\98Êg\9e¼a¡¼a\9eËl\9cØm\9cÜg âm\9cÚp\99Ùr\96Öv\89Ún\92Ûh\8aáY\84ÎZ\82ËXtÑbwÇa{ÊetÉ`zÎg\82Éo~ÔnnÑfkÌcwÔi{Þin×ikÑlxË^xØ_o×QhÜPrÑToÖLvÏNuÈCjÅ@pÊHm½Lp²Eq¬=l®Fl¶Dk­=l±Ex£?r 5vª:w¢0{¬2\83©8\84«1\82\9d3\7f\9c;\81©?|¥Ez\9fLs¥J{©H}ª?r´Ex¿J\8c¼M~¸Mx¨B\85³:\89¹=\8d°=\82®:\80ª>|µJqªRn­Sv¨Xq¯Mq¬J`¢Jc¢Tj®Rh¦Vf¤Yq ak­[q¯SoªNs¯Hi¬S\1c"*#"3'.-\1c,<!72,6=*/?4=.>;7287?4HB=<KB9N6BR65V><O?6D;ACE?NRDNVACT4JI=OQ2f[<dZ=rY2rU8lS@eD0pJ>eN?mM2fE2sY<g]2eb=r`?ma;q[6{a7|YEuaC~dFydKgn>osOvvA\82kH\88rF\88p;\85_B\98_8\92d<\9ci=\9bpC qD\93s?©lF¬nF«v?³h6©r9±j@¯uL¼tP´uQ¼pE°t>¿\84\87\8e\90\8b\82\8c\897\95\91@\94\854\94\95/\9b\966\8f\93@\9b\8b<\9c\8a@\90\8a\9dF\97¢M \97\9dS££H¦\97\97\9bRµ§CÀ§E²¢V¶¢E³¥E±±U¾³Kº¥L®´G¾\9fF³ W·«O°\9eJ¿¡W¹£d´¨e³¯X½¶Qª¬X¸¨Qµ·X²ªZ²¶V±­Q®µN®¸M©±Q³¯N¶¹N¬¶L³´T¸¨M­¤C¹°@µ§G¶£Q³²M¸°UÊ¿JË°YδZǬW¾»_ŸM»³M½«T²¤P´­O¨­J«³[³¡f´µ\§°V\9dÀI\98ºG\9eÁT\97ÆN\97½[\9dÄ[\95ÊU Ë]¢ÃZ\98Èb\92Ç`¢Ì\\8fÂQ\8d¿`\8bµP\99¶b\96Â^\8f¾b\9b¹d\97¹`\9d½h¢¾q\9dËl\95Âf\9dÆZ¥Ég¦Ìj¨Õc\9d×n§Úi¡áf\94ßm\92Òn\87ãs\8aÞ_\8dãZ\87ÑQ\83ÏL\82Ô^\8eÈf\86Ðg\84Ï_\81Ï`\8bÂmyÉjvÔhyÓo~×`qÜnpØjxÛcxÍW}Ô`pÑ]sÙWvÎRsËLyÈSs¼Hb¹DcÁJdº@i±>w°6y·8k²8uªIr®Am D~¡5\7f¬0~²-|­2\85±=}°2{ª3~©B~­Hw\99@~\9fNy§Mv¡P|ªK{®Qx¿R\7f¶R\85®Ds®?}¸?\81Á<x³Is²Fq®L\7f¾Ot¬Tw´Ls¯Hs¦Oa¢FX©Pfª][­W]µTh¯dd¨fh°^`²PgªXc£Oe³Q!-6#-4\1e,6#'7++9,852:1560>8>=D<C=8M>BW89Q3?H>DO;AHB<RJHQTHKTCOPCKP:OU>XV2ba0i\7i_<mX;tY4rK4kO1jK9fM0oQ8rZDr]>o`:m^5q`2qe;tZEwZD\80ZO~dMrrNrnOwtNvpH}kF\87nG\93iE\92f>\99dD\9de=\98i?\99sE\97r@\98kI«u=¬v@¨wG©v?¹kF·l?¹lC¼kG¹rEºlOµzR¾~J¿|J¯\82\82\82\8b\86\857\9f\867\92\86>\8e\8e4\94\8b4\8f\87E\93\82J\98\8dL\9b\8e\96P\9c¢K\9e\9f\99\9d\9d\97\9fF³¤D¹\9aD¹ M¿¡G»¤KƯDÁ±LÁµQ´­K¸®P¼­J²T»§Lµ°L¼¨]¯Y¹°c¾©d³°Y±³U°±W¶­U¬²W£²L©®R§¯O¬¶X¬¬L§²P¬®K´»P¶ºI²ªF©¬Q¯«O³§N¹¤SÀ®UÀ²Y¼­Wƶ]¿²eÀ²`º°SúSÅ·Z·±R±®Q°´O­©M²­Z¹°^®¬[\9d°N\9b¾K\93¾I\93ÁP\9eÊX\98ÈR\96ÍS\94ÃU\97¼X\96ÂY\91ÅV\9cÆR\93ÂV\93À]\9a¿V\99¹U\91¾a\96·^\99¶\\97Â]\95Àb¢Æg\9aÉf\97½X\9eÊ` È\¥ÃZ¤Ê]§Ï[¥ài¢Ö`\9cÖc\94àm\91àf\99à`\99Ö[\94ØM\92ÕO\8eËX\96Èc\8bÇg\86Íi\86Ãm\88Êa\81Éa{Ðk\83Ñg}ÜfuÛhvÜauàg\7fØ]vÖ^tÐXiÊOlÉRf½PqÀJd¼Of²Cj©Bj±En¸As¼=tÀ?w´9w§@q¤@\7f§F{¦<\84²B\81°8w¨4zª6w£@r­Dx£Iy¡Cz\9cBx\9aKj\98Mm¢Lx¬O}¹SwÀNz¼L\82¹SyºJ\80µNy·@sµMq­Nq¬Qp¸HnµBy°Mn©Io§Gm°I_²W]²YY­^^®c]²g[«b^£^[®^W«\f²cd¬Z+47(%<**9,.7.(8#7;)28+)749>C<<C;EN89T4EJ;=G>FC>6P=HKI;TL6KQ?MW=CM;KO8_W1XL7lT=j\?iQ>jO6rJ6mD;eB?rN7eQ9q[=s_Erd=oh-nV<{f<mb>ycI\80\Fxf>zgE{lFudG\81jE{iC\83iI\87qH\8cr<\8fu;\9fnH\94sC\9euC\98rH\96rH\9bkJ£~>®m6\9fmB¥b7¸lH½o>¶jMÂtB½qI¾tE´xK¹vSµ\82\8c\8e\82D­{8¦\80C\9d\8eC\9d\918\91\961\8d\8b8\9f\81I\9b\85\8aU\9b\91\9c\95U\97 \¨£]§\9c\99\9c\95\9bE±¥N¸\9bR´£L²¤N¹¡NɧE»«B¿µO¶²D¿£M®«Y´¤N² ^¸ `¾°U¹®]¯µa¶¤\¯²T»§T©´R£´\­¹]¬±Q®®_¯½[¬Á[­ÀI®»Jº¿Y·ºX¼µT³«W²ºL­µK´°Wµ¶Q¸®Q¾³S¿³W½½[½¬fîVµ½`´´Sµ®Xº±W«´]µ¼T¥»R³°X¯¶b¬°X£ÀG¡³T\8dºL\93ÅV\95ËK\98Æ[\9bÉS\91ÉV£¾[\9eÂ^\97ÇS\9e¼c\91È_\9dÁX\8fµX\98¾]\93±c\94¾Z¢Î_\9bÆm\98Ëd¢¾i\9cÇb\9eÒf\9fÈU¥Ì_ ÌU Üc§á`¦×j¤ác\9cÙ^\97Ýc\98ÝX\8cÕM\98ÕZ\8fØW\8eÕ[\8fÓY\8dÓ]{Òe\81Ðg\8bÏ_\7fÎr~ÓpuÉfpÐczÙj\80Ù\tÒT\7fÒ^qÝ\sÖXeÔWuËSl¾Ls¹Op¾Ad¶5p³;g¦Au¹9s´@\80·Bx³<|³>}©>\7f©4\86«6}´>\81§3v®,z\9d0vª=r¶@r­@w¯Ar£Hu\99Fp Eo¨Ds¸Lv¸X\7f¶Rq¶Rr´Kv¸P|ºBs¾Gr¶Br³Mh¾Db¸Gu¹Ql¯Hi¬Em¥Ob²Ka¨a^¨SY´XU¨\ZµhT°cV¡aeª]Vªfa¯ak¡T%/7\1f,9)'2$&<(-3('0(28.-05/??-A@'AO13G6?H?@M69E98D:4SB<GM=JX2AY?IP:MI/YO,fN.fN5mU7bX;jXBdF8bA=gG?bL0eT/gT>kcEzhDza6~b)sU-{ZAvfCv\A\83X?~WA\81^G\84kI}hB\86j9\85h?\86o5\84x<\8fxG\93oK\93qB\9bmB£v;\99nB¥vI¤w>\9foB¢c8³[<´`F¬pD´tJ°lNºkJ¶n@¯{@²yC²|V©\85\8c\86D­x@°\88\8b\91C\90\95<\98\89\87D\9f\8f\8f\88\92\95N  Z¥\9c^©¡Y¥¢U®\9c\98\99\9f\9bR»¥Hº¦JÀ¦DÀªN¹µR¼°D¿\9e\9b\9e\°ª\µ¤Q¹¢V¾¥b¸¯_¾«V²¥X®­Pµ¬Vµµ\£»T­º`¶³\¹ÁR­ÅT°»T®¼Q®¹S±¶W¼±_º²X¶¶X´·X¶µY¼¼N··O¹ºW³»`·º\½¯`»²f±¬f³°^³¸[¸±b¹½[³¹Yª°T¤·R¦³S¨±[¬´W¥¸O\9d»M\94·J\95µS\9f¾O\96¿W\98Äa\93ÁU\9fÇW\9aÇS\98½\\92¾b\97Éb\94À^\95¿[\8f¼h\99¶h¡Åa\9fËi\9fÃ_\97¾c\9aÎa\97Ði ÉY¡ÓYªÓ[¨Í[ªãeªçb­ÜW¤Ü]¡Ú_\9fÖj\97ÌU\8bÐO\86ÖV\8dßN\83àR\83×\yÓezÊh~Õe\84Ðm|Îq~ÈmqÎnoÍjsÇZyÒ[x×WsÖPqÔVhÖKjÏUnÈRx¹Cu¹Dl¾Fs¹8w²<n£<x°I}²G{·Ju­=p©7{§>\84¬B\87¸8}³/v¯5u¦/\85\9f/\85¢4\7f±<o¯;l°Gx´J{§Ns£Ep¥Jp²Nv½N|ºYsµZr¾\x¸Qw½Eq¾CnÇHgÂHc¿Sd¿Ld¶Lg­Om®Pc¯Hc´WW­[V´SY±RT´^Y®cW­d_«XY¤ad¥el£\c§Z-+4,1(*&8'.7.1)51+1+42,.9-69)><19K08G?=C8=M>8G??FC4XL=JR4N]6FX1SK<MP*]P5eM7cL._O;bN7[S2ZL-^G;aK6cZ;cQ2l\@wd=wZ:\81b3}Y'}](|\7y\;vU7z^F~`>\7faEzfE~kG\8al?\8cjC\8btC\8e\7fF\89hB\91pO\9bcJ\90kP\91`N\9ehH¦t;«jB§fD\9bk9¬iD¨dH­iL£hJ®xA±vE²uK¡yE¯xI¨\7fN\9f\90\91\8a\80I¤}F§\83>\99\99K\8e\95K\9e\8d\89\87\83\86\94\97\96\9c\9e]¹¥L·\9c\95Oº¡Z±\9aK¹¤R½¤JÁ¥NÄ\9eT·«O´¯P¹§V¿\9d\92\99\9dP³¤U´¦W¹¡O«®T¶§U²¢Y·¥T³ªb¥±R\9e³P³³Y®°R¼ÂY²¿V¶¾Zµ¸Uº°`«¹c¯¹`±°]±¬V¼¶[¸À^´Ã`¯ÅT»Â\»ÆQ·ÇR¹Å\À·cµºf´¹e±±e¸®i­º^°¸R³²W®»Uª·[\9f¬W\9d±R¡±M¢½R\8eºJ\9e´U\9e¿^\9c¾Q\96¹S\9dÈ\\96ÂM¢ÌQ¢ÀW\9dÎ^\9fÎ\\9cÎb Å] ¼hªµl\9eÈp¨Ì^¤Êl\96¾j¢Çh¡ÓaªÝ_\9fÖ^«Ïi­Ïa£ã\¨âl§Þ\£ç\¥Ód§Ðm\9cÒ\\86ÕN\87×J\89ÚU|ÓX\84ØX\80Öa\86Èg\81Ç]\86Íe|Å_\86ÆkqËbeÓggÉfzÓWwÉQsÜVmÍHeÙDeÐPeÆLq½Nq·JpÂ?k¶:w«;zª=u£7x´Cz«Ko¥@}¡B}®6\89©/\88·6|¬:\84©2{¨0\85\9c+\8a©3z¦B{¬FuªAo¦@|¤Fx­Ho¤Ez¶Er´Su¾V{¸Uv¶Ul»Yq¶OgµJnÅRp¿Kb¾TeÊKb¸U`¸I`¸He·N`«WW·UZ°Zd¾]W°aYµad¸WVª_`ªaf\9fha c^£a+\e,(%(,/'150*/21+*/,45)5:)::.::6>F/6C<6H:6P@;HD9FB4RI6TE<IR6MX:MS9NX:ZU-^P/bI,eO1aI/_D0^C1ZC6aO7]TCj^?if3wc8|\4wV-y["zV#u`2~]2\80a2{]A\80dA{cI\81eF\82lF\7fmB\84yB\81uJ\8axI\90mV\8eeT\96\T\8dcT\8biU\93`L£hD¨j>¨i9¡e?\9ckC¥cF¡jF¢jB±yA±y<«x? wE£\85\88\86\8c\8bN§~I¦\8d\8b\8eB\97\96I\9c\96\8aB\9f\90\88\8d\89\8d\9dV¿\9a\9fY´©V²¤Qª¨U±\9dQ«¡R³¢O¹¤T¿\98\9cS»¡O¼\9eN¶§V³\9b\99\9c\9bR¾¢\°¬X³²]¥ªS§£U­ a´¤`¬¬a®­X¨µN¥¸U«¼T±¹X¾Ç_µËZ¼À_¶²g«°_­´W©ªYª¶\´µU¹¾]²Ãb±¾[±Á[¹ÉS´ÆX»½d¸Äa°Ëa·Âj¼¾d¸­`¶ª]¬µ\³®Xª²[£¹_\9b³R\9b¼V\9dºT\90¶W\93¿X\9c²Y\9d¶_¥¶\¤¶T\9bÆU\9cËR\9eÉP£È_ ÏX¤ÇZ\9dË^\9dÏc§ÄgªÅj©Áj¬Êd«Åc\9aÉi¥ÕgªØd­Úk¨Öc«×g¤ào°ân«ág¬áf£äZ\9dàd£Ô_ äV\8câZ\80ä\\82ÜN\8aÞZ\81ØU\82×\\81ÊW{ÆVvÇb|Ìc}Äc|ÌdjÍcnÄYlÃ`wÊOqÑOmÕEoËJrÅMkÇFfºBh¾DpÂ4m¸4t¸>z©7|¥<\7f°@u«:t¦E~©A\86­5\88²8\88¸3\89¯.\83«+\8b¯2\81£3y\9d5\81¨@\7f°8t®9z°6o¨BjµNk°Mm·Mt¼RzÇTxÀ^xÁ]pÀ^d¿Rd½OmÄLrÇTuÅRmÆOj¸Pa¸O[¹Q^±M]¸Wh°Yl»__»[c¿_^´Zb·YW¶bZ®gW§]X©RR§W(\18)((+50+31444*,-\1f.(,3+)?/.>)1D24D47;.+E@+@@:BH*I>:PB8EU,IT2NL+P\<WT*QV0QO.`U4WF5ZL+^G5[W(bY6[V2\M8kO1x`.vd,n`1|_1r[!uX)\86['ye6\81bB}\>\80XE\87eF\8bmE|s=\8aqA\7fyC\88kF\86v;\88mM\8feN\84aI\91aX\8b`F\97mC\9d^I¨a8¡k9\9bp<\9dh>¢cG§kC\9dqG¬p<³wC±v>¤\86\87\82\8c\84\81\83\90O\98\8aP\91\89B\92\92P\95\8e\91V\9e\82\83\8e\95\94\8f\93\9d]¶¤Z¸\99\97\92\96^ª¢Tµ\98\92\95\99\9f\97V¶ O®¢N¶¤LÀ\9eT¯®Y¬¦^³¡]©\9a\9dX¬¥b«­W¯©Q£µQª³G¨ÃV¬ÄO¬ÀYÂÆa¸Ád»V¹µY©ªT±±X®®e¯¹Uª¶V­ÈU¸ÃXªËVµÇ^¸ÇQ·Ã\½ÌXÁÅc«»j©¸n¦¿h¬¶i¯»^ ¹U¦¬X£ÀU¦¸T\9e¸Z\98³V\97®S\9f¸Y\98½W\93°b\9d´]\99¼W\99ÇT¤ÃR\9dËZ¤ËY\99Óf£ÑeªÊj£Ç`\9aÓk¡Ìn³Ës±Ëb¯Äf¥¾` Îu\9fÊf¬Øf¤Ía¢Ýf®Ö`¢Öd¨Ù^¶æg­×W\9açT\95ØO¡Ï_\8dßY\85äQ\83ÖY\83àN\84ßV\85ÓN\82ÔR\84ÈW\81Ô_\80Èa\82Î_yËi{Ì^uÊZjÁbrºarËOl¿FlÊDnÅKlÄ?p¾Eg¹Kkµ<j·A|´4z°8\81³4y©6v¨>\81´=yªJ}«4\84²:\80¬-\81¼8\8cµ*~§&} ,\86©<\87¥?\86­7u­Bo¤=v¥Am±DnµSr»Wv´XtµOhÃ^xÃir¾fmÇTm¿\qÎSjÎNgËMdÏVaÄXXÀKT½VcÁLU³Tb¸Zf¬Qb¶V_µ`W½\S°Y]ºXX°ZW©bS±`R§WK\9fS.";2\1c4(\e8-'-.5-71%30*4.&A0#>'/=13?,&C0+<8/:=3;?*@=6?I9LP/HQ.F[2QZ0Jb/J\4IN8XQ+YW&JQ*[[%`[0dR/`T2ZK7cN/iV1xU*sV%sZ+vR,~O#\7fW1\80^:\83c8\82cB\84iF\8b^C\89kF\82kE\82pN\82iM\87gF\8eb<\95_?\90hE\86]M\88`O\91^I\8emJ\91c?\9ee:\97c6\97m;\9ckD©gF±rB©l?¯v4©t:®z7«\845©}:®\809´}:¨~@¬\86\8bM\9c\8eL\9b\8dI\92\90C\94\93K\93\98\8c\8a\8c\95\91\89\8d\89\92\98\9f\95\90_°£V°¨]¯©]¯\99\93\9c\96\95\9e\9cM³¨H±¦Rµ©P¶¬Z¹ªN°\9aS«¥W­¨cª¬R²©P©¶M£½N«¶M«»Y²Å\¾ÀU¼¿U¹¹Z«¹U®°L¯±T·¼_­À^¬ÄP¦Î\¬ÉX®ÊY´ÌY¸ÒS´ÐS¿ÐQ¹Ä]ª¶V§²`ª¹a¡¼g\9d²Z¡«^¨®Z¬¼T¢³T\96¬Y\92­Y\91ªa\8c¬a\97½`\9c°V\96°W\91¿M\93ÇR\9eÃU\9cÍb¤Ò^\9aÎa­Ín±Ói¨Ðs¢Ìm¯Ìk¯Îo¯Èf¤»`\9fÀg Åp Ãn\9eÉ\¢Ðg¨Õb¤Éb¬Ë]ªÚ\²ß]¡ØV\9cØS\98×M\94ÌS\87ÔO\89×S\80×H\87äM\7f×T{ÚI{ÛF\81ÒNyË\\81ÕYyÊX~Ð]pÕVpÏ`mÇXsÂ`xÇYm¾KnÅDmÅMr·Pr·Bhº@l°=sº=zµ6x¿6\81¹4w¸4~§5t²>{¼B\81±<\83¬2\82²3\81À7~µ;\82­.\7f£/z¨8\7f\9f/\85¦7\82§;vªAw¯Gq®En²Pt¶Vm­Yh´[fºfjÀbm¼YmÂVoÂToÍafË`lÄTgÊY`ËWb½XR½Z]Å\[¼Vb»SY¶PP³TR´U\³aU®^P¨]X³TQ²RH¶`MªXL¦_4\1c(0!2= )3(&/'\1e9/\1f01 ?%(C5.831@;/44#72\eAC$ED\1fDJ/>D09O*IJ6CL.FL,BX+BT3@\;NV1WQ3TW.HS-RQ&[W\1eaY'dS*jV&kS+hU'z\*tW-}c"|b\1f~P!\85]2\85W1~_5\8d`9~Y<\88f>\85nK~oA\87nC\87hB~a@\8c^A~`C\8efG\8a_Q\86\Q\8fnJ\93iC\96n@ k5\9er9\9em; jE©tE©l? f<£t=°w3¯x:­\8a=²{?¨\7f\7f\86\83J\98\97M\94\88H\9d\89@\9c\95K\91\92X\96\93\8d\8f\87\89\91\88\8b\8b\93\94\9e\94\8a\97d²ªb·¤T¹\99^Ä `Å\99\9a\99\94\93\9bY°¢c´\9c\²¢_¨§]«¡c«¨W°ª_¥ [««^ª¹P¥ºT´²[¸²P·Ã_¼ºNÂÁRÀµY·¿O¸¾H¾¾Z°º\¹¿_³¿P¯Áa®Ì\®Ã_¯ÄR®ËR¬×T®ÄT«ËX¨ÀY\99¸]¤´e\9bºj¡·`£µi¦¿e¦µY\9a¸\ §]\9c´T\8c±d\9fºe\9f²c\98°V\9b·`\97·^\97¹N¤Ë\§Ée£Ëa§Ô^¦Øc·Ùj¨Éb¤Ën®Ðm¯Éu¬Äcª³k¦½b¡»d¢Ãm§Ña Ê[§Ò[¡ÎX°×YµÙ_¤ÙT¢ÛW\99Ô\\9fÍR\89Ï`\85àY\92ÕQ\87ØM\8dÜR}âW\84Ü[}âJ\84ÞR\83ØT\84ÙXwÙ`\81ÒUpÖWuØTtËN{ÂO~»Vt»HoÇGwËLvÄ@q³Di·;p¸8jº4t¯<\80±7u´@\86´=w´8\80µ2\7fÁC\83³:\88·:}À7}¿4\82¿1\80²6}¸-y±2\83°<|¢9\84¥:~¶I\7f²EpºAo´Js¼\m¹Pu´VrÃ]sÃatÌ`rÇ[sÇYnÒbbÑi`Ì\[Ï\WËe\ÂVL¾^OÃOZ¾\L¿YT¹NU¹UL·T\µ^U§^N¹RR¬LT¯RN¿ZQ®[Qª\;%)<\1c,5 %7\1d\1f<$\188\1e\1a?.!<-&E;\1fA9(C@\e8>\1c9B#=A\1a5@\1e>C)E?)AI+IW2BU7=V=CJ3FK0GT0L^)J`/La&H`%NU\1eUQ\1cWV\1c_V\1djK nL\1fpY\1ajV%qS y_%~V){]"t`-yU9\86S9\86Z<\7f`;\82]C\89iG\8anB\87qC\83lA\88hB\7f^@\87`F~jF\8djA\8beK\8bgF\8aeK\96]E\97b9\9eiF¢rF\9ez;¡s@£tB£mA«z4¨x8§v8¦\85\89\80\88\85\939\9c\96@\99\8aH\92\8eH\9a\91T\9d\97Y\9e\95\9a\93\8c\8b\8b\8a\8c\8d\92\8d\8b\86\8f\96\9a\96\99\9diÀ£c¶¥a·\9e\95\98\99e¯¢d°\99\9a\96\9e\9fc«¨Z©¨_¨«[®­M§¸O¬¯[¸µX¹¾OºÀS¸ºT·ÁPµ¹S¾½N³ÅQ¸¿_¯ÁZ±Å^«Ñd®Í`¶Ç_¸É\±ÏP°ÑP®ÊL§ËS§ÉX\9aÇY\9b¼Z\99·[\9eÄe\9aÀe\96¼Z\9f·[\95²X\98­U\9b¯b\98¬]¤º] ¸_\97²`\96·\\9f¸b\9cºX\9c¼d¢Ía¥ÐhªÍg©Êf¬Îf¨Éd§Æc¬Ém£Çk\9cÂu\9e¹q\9fÄg¤¿i\9bÉk\9fÐc¨Ïg§ÍYªØS¬ÒN£ÍM¦ËU£Âa\9fÈ[\9dÕ_\8bÙ\\92ÛY\8aàZ\8eÝT\87ØS\8eå`\8bâ[\85Ü\}ÜWzàU{ßV\80ÒW{ÏW\80ÔWuÐN}ÊU|ÀMz¿Nz¼A\7fºJsÇGqÄBwµ<z½8l³<r²Aj¸Ap´;zµ:|®5|¶0\7f»1\84¾5\8a»:\8dÀ6\92Ã5\85º0x´+x¾,\80»<}·=\83ª=\83­>\81¯J{±E{»E\80½K{ºOuºWoÁXr¶RlÃTkÇ^sÏdoÓjmÑghÌf`Òf\Ñg_Æ^RÅaSÉ\TÀRP»WH¶SE°RE»SMÁSUºU\°SX°UZ°[K²UG¼NQ¼VW¶ZRµ`5 $9\19'=\172:%0: !/,\1c12.A)465'2;\1e15&CB'4F\1c;A\1cH@%ID.JP%BE/AV19O@>Z;BQ8JN.FK)AV2D[+N]6A`.GZ.MJ\19bZ\1eiW+kV*qN#iY'de%g_%vf+nU(rd0uY+y`1~ZE\88\D~YA\84g?\8b^:~aE|f@\86iL}mI\7f^<~fF\80aA\8c[K\8cgK\8c`?\95dJ\8af<\98_>\93jI\9fpD\9fk? l>§l<¦\80D£|6®q? w3ª{?¤{G²\84E²|I¡zP\9a\8eH\9d\89H\96\8fN\9b\8dT\9a\99\8f\91\9dY\9e\8c\91\93\8d\87\8f\94\8f\92\96\91Y¹¡^°\99\95\9c\97c¤aÄ\9a\9bi² d¸¢]¶\93\9fQ· S±¢b°\99\9d_²¨d§®W¦¢a ®]§ªS©´[ ·[¸ÁN°°V¸ÂS¶Á`º½QÀ´XÁÀN¶¶O³¶Yµ¸S¯ÈYªÏV°ËWºËk³ÏY¬ÑX³ÎW¤ÌQ¬ÓG\9cÂK¡Ã\\9eÀZ\96µc\98¼Z\91³b\97Ã]\9fÅW\98Á^\99º]\9f»L\93§X\9a±R\98¸X\96²^\98¼\\8e³]\91µa\91´a\97½`\9dÌk\9bÆ\«ÀY¡Èk§Çi¡Ë`±¿d¦Çj¨ºm\9f¾f©¾m¤ºk¢Åf§¸Z©¼`¥¾T§¿V¨ÁY¨ÌP§ÁR¦ÄS\9bÍ\\9aÉZ\9eÖT\91×U\92ÕT\8fÙU\85ÛZ\92ÍY\8fÖY\8açN\83Ö\\83ÕZ|ÕXvÜ[t×M\81Í^~ÍN~ÈLzÁMv½PpºOxÂG{ÂLpÃ@p½E{¹@vª3uªBf¹Gj»Jo±=\86¹F\82¹;\86´7\8cµ2\8cÀ:\7f¿5~Á8\84´3wÁ7\7f².\7f¹.v³2\87²J\86´L\8d³Mz¨J\80©?x­Fz²P\85´Z{ºP}¼Xu´OhºYj»lb»aeÊkfÍgsÒ[iÍ_`ÒkSÂjWÌcM¸`Q¹RF½]N²]O±`H¸bXº`Uµ]_³SY°PQ©TM©KR²ZE¶aV®cN°_;'2<"*1\1d35%1</053,90)4371-%20!<=%<? CF#@B(:B/BC:DF)MM%LU8?U9KM+LU.DO5MJ/QS6G]7GQ.JR3UY0UQ%X\$hV*qT n^&rg&kb$u^0n^,lf,x^1z`0\81Z8\80e;z^Jue?\80_7|k;\83eB\80c>|hEwjK}i@\88`?\87]>\91_?\8dZE\94]<\99b>\92n@\8emL\9arA¡t?«jE¥pA§z@¤\81;¡{<¤{C\9a\838\9d\81\7fG°yM¯tR£|O¤\84K\9d\88Q\99\8c\96U\9b\91\93\89e\9e\8f_\9d\86\8b\93\8f\91\8b\8a\9a\99\91\95[´¡c¼\9c\96\97\9e`¹¦e»\9e\92\97\97\9aW¿\98\97\96S¶ `©\9cU¦¤X¤ ^¥¬e\9f·Y£µX®¼_¨¹X®¶aµ¼\¿¿_¸Áaµ¼W»²[¹²^²½W«¹S¥¼UªÈ`´Ç[³Ëa´Éf±Ð[±ÈN«ÏK¤ÅI¡ÄO\98ÊM\9aÀQ¡½Z\98³`\92¶a\96Ád\91ÀY\96»U\94¾Y\95½V\9f¸T\93³T\8e©O\8d©W\8b¸R\92¹P\91¬W\97´W\97³c\8fºp\98Äk¢¿^ªº[­Ç\¢ÎdªÂ\«ºb¨¹f¨·m¬Át©Ãpªºd®Á]ª¶\¤³\¯´Oª¸R£½U\9e¼M§¼O¢ÅP\9bÊK£ÑN\9aÈT\8cÏV\84ÚX\85ÚU\88ÑK\8cÑO\84ÛV~ÚQ\82ÏK\85ÍK\86×UvÏN\7fÉX{Ò[vÁ\{ÀQuÅHs¼Il¿NoÌBlÆLrÀGs²8}°7x®4r«?z¨9s±Du¬=\83¬@\87¯@\85¾@\8d¾D\88·6xÀ1uÁ<m¶>t¹9t½.{»4\80±;\86¯H\88·N\86¶U\7f²P\84¤I\8b¦T\81ªT\85µY{²Uv¶Q{°Xw¹ec¶hd²ijºmp»]mÊ]\ÈbWÅjUËeNÉaR·bJ¶SBµWE®dL³_Lª_U¬]b±WY²QY­UN«SR¬MH«UD²_HµYN­V8(/F)12'.:#103-11&229:8?.851'$?-&9B*@9"@="GG4G=?H>+OA-B@'DE9PM4PV/GM.TM3II5NU3IS/PH3RG(_O(fP(qR'eO5hW'uT/ph1jb)pb(kY'ya-{e2yZ@\80d;{lE\86j:\84g8\86n=\7f`I\87fH\88u8\7fh<\7fsC\8al=\89lM\87fC\86eR\8ekN\8eo?\98iE\92tE\95lF\9arA\9dj@¡nD vF¦sF§\81<\96yF£{K \85D­}R®~O¢x[¥\83O\9e\89X\9c\8b\8fX\9d\91\9c\9c\8e\96\84\94\8d\8c\88\85\96\97\97\96\9e_±¤b«¤f²\9ej­¥^«¡`²\98\95a± `±\98\9e\92\97\9c\91\94\9fW­¢P§ªb\9a§g\9c±W¢µY¢º^°»SµÀa·Àb¼º]±Å]·¿h¦¯[¯­`«¼d«»`¢ºS¯¿_³Ãg²Åe¸Éd©Åa³¾N¦¿TªÁG\99ÂI\9a¼P\9c¸N\95ÅM\9f¶Z\9a¾S\9aÇW\98ÃY\99ÅU\91¾`\9aºQ\8e³R\97´K\8dµM\91¯X\8a¼N\8f¶S\8d¬N\88¬P\8d»b\8f¹]\95ºi\97Àa£Ä^\9eÈZ¥Í^¤Ëa°¼`¨Áe¬¿r£¼v«´n«¸`­·f¤±^®¶Y¤¶P¬­P¥²M\9f·R ¶O\96»H¨ÈO\9cÔU¥ÄO\9eÔ\\8eÍX\8aÙY\81ÛS\85ÙY\84ÛZ\7fÛZ\7fÙJ\89ÎCyÄLrÐP\82ÌZsÑ_\85É`\86ÁOuÊWx½SvÉD}Á:t¿GzÃGy¸7\7f´7\80³:o¨Az¥Cn²Gv¨;\81°G\82ª=\83®K\81µ8{¶CxÀ>pÀBpÀ9{º>}¹:t¾9\7f·E\81¾G\8d¶N\8d´[\84±S{¥Y~¯_{±W\84¬Zw½Qy¸V{·Yf±hg³pd¯ajº_g½\cÃfWÇdY¼_LÉ\VÇ\F¾^GÂVC¼`D­dN±_R¡^\¦Zb±P`°X^¸]P§JM¯JU²ZN¬aS±ZS«bB%6>+7@+>:)5..92-+6-,576/103,%77%B5%<< G7'LD,R?7WF.O>,N@0JD(SH)UH.QF2LQ5RG+VM0RN2RM5YJ1\M+dR-jL0kM(hP1kS/sa,nf0t_&|^&s`5x_=ncGlj@xhE\85n;\83f?\83h@\89l@\82jC\84q9\81g:\80k?}mL\89pN\87pH\88bQ\86kM\8eoQ\91vN\99lK\9aiF jI¢mD¢lH§lD\9esJ\9ezN\97\85F\96\83\8aV¢~Y£\7fX\99}U\9f\84]\96\84c\9e\7f\94\97V\9e P£\9c\95\8b\93\8d\82\85\86\8f\94\8d\90T¿\9c\9f\9b\9dp®£gª\9fc§£j¦ i«\94\90\9a\9c\90\8a\8f\92\99\97O¥¥Q©©P ¢]\9c¨[©°bªºb©¸\¬¼V¶½^µ¶c±º]¨¾e\9eºc\9c»_\9f«b\9e¨\ª¶Yª»^ªÄb¶¿W´ÈZ¹¿S­ÂT¯¸J¦±P\9c«G\97µM\9b¼F\8fÀH\99ÃM\9bÈV\9cÅP\9aÀR\94¾U\9c¶a\9b¼Z\8d¹Q\89³T\8b¹O\87·T\8d¼Q\89¾R\8e°Q\8c¯V\8dºU\8a½b\96³l\9e¿m¢Â`¥¾c¦Äa°¾b«Á_\9e¸n¡ºn¯¼h«­l²¹o³µaµµW¯¶U¯²O\9f¯W\9c·Y\9d½L\96»O\99½D\9dÈP¦ÇV\9cÉ_ ÉY\98Ç\\87ÑT\89ØQ}ØQ\88ÖY\85ÍW\87ÒI|ÍL{ÇMxÅOrÑV|Í^zÁY\81Ã]tÌ[rÇOxÄM|¾=\7fº9\83Â=\7f³:\82±2\83«.|¨;}ª;x²>\7f¶8x¯=tª:\80®Du¸Ez³D\7f¶EvÆ:lÍ;rÆ=xÆ?qÉD\80ÁR\82»Q\82¬O\84­]y©f{¨]|±]\81ªa~»X{ºRy¹Vl¬edµdi±lp¶^n¼_o¸af¼f]¿bV¸WZ¾PLÄWIÅXMÀYQ²]I­fF­XQ¦Y_­Oa³TW²SV¶SZ¬UN¦TW¦ON£YIªcH®_585A%2968D52?:26<0=;+A2895+>-8;.(A0)I@.I76R@,R@2R@+TB6ZI)YD#L>1OD&ZK7XV:\X:XW9WR7NU<WJ5cK7bE7xP<tS7lG9rO3ye/je9sW6t`*e]0olGzl>x_C\82gP\84mF\85b@\84eA\85gG\8apG\81s@~w9\82iD{i<ziC\81bI\8c]R\91jV\91`L\98sN¡oT\9apO\9bsO§tD¦jB¨xQ\9duB¥|M\9f\83\89\83UªzT¡uZ\9azQ¦~\\97\88T\93\7fZ\9e\86d\9f\9c\97Y¤¡\¦\9d\9a\8bV\9d\8a\8d\82\95\91K¿\97\94\8f\9b]¶ d´\9ec³¦j³\97o«¥^­\9d\9a_ª¦]³\99\95\95\85\92\8c\9fX¨£Zª\9fS£¢Z \9c`\9d\9bh\9a\9ag£ª[§¶g¥³_¨¯g³²[°ºWª¬f¡·b£»Y\99°Y¥¬f£±Y§±\¯¯S°¿^©Âb®ÊO¡¿_\9a±]\98´J¡¬V\99¬O\97³G\94¿K\8e½O\9dÉR\94Ê^\9cÃR\97Æ\\97Àe¡¹`\9a·^\96ÀJ\95·U\8c¹Q\93·Q\95º[\97¼Z\8d¯Z\8c°P\91®`\99²Z\9a±d\97À`\9d³f£½d\9cÌj­Èg§Ìj¯´n¤²t¤±k´­m·«b®¶]¸®Y´¹T§®O\9d²U¥²G¥ÅL\98´A\9d´E\94ÆL¢ËR£ÊY¡ÍW\8aËP}ÕW\84Ø[xÔQ\81ÇK\81½J\87ÆL~ÐOxÌH}¿X\7fÅQ~Ó]}Ë^\8cÆ^{¼Rz¼FwÂCz¿?~½G|»=\85ºA\83¥7\7f£Bs§;s­I\7f­>|¤D\88¤8\80¥@z±>|°L\89»>}ÀJn¿F{¼Bn¹HzÃIyË={¸P\8a¼_\7f©W\7f­_r\9eU{£Q|\9dby¤W\7f³Yy¼Sk§ai¯Zm¢dp©wj²sn±ak¶_g½`_±fT³aYµWG¾LGµULÃXJµ\H³eS¬gL£^b¥XXµVVµZ^¸XV­VW [O«SH©\L¦TK¡W=399/.=0&G9)P>)HB,DB*=67816D9<S-8P13J;6PC8Y?.TE-O<-ZD/_C5W@*Z=4RG.YI<UP=`T9\P9]O<X[?eR=kL;mO2vH8|D=tM7tM7x[AiZ@iZ5c`7fh9ok8vhE\83hW\83_W\82fO\85mE}sG\81iEynJ\80kD\7fn<\7frEzg;yj@za>\8bdI\88eM\89`T\91fX\9dmY\95qU\97qW¡iZ§iKªtO¡|I\9f\7f\86\85\82X\9e\7fT¡tU\98tR\9d}X\9e\83X\94\80^\92\90c\9b\91^\9f S¬ S°\9d\9c\97W\9e\91T\9f\95\89\8d\98\94\97\93\98Y¬¡R« Z¨\9d\9c\92\98Z¥ ^§¦Pº U»\96\98\8a\91\93\98V¬¤U¯£S¨\9c\99f\9d\99f¢ j\9d d\9f ^\9a®c£²_§¯a\9e¨h\9c­a\98ªd£¬`§®T£±Y§¶\ ¬W¬·X©¹X\9e¿^£¼R\9c·Z\97±X\95·\\91¶O\90³H\9bªK\9b¼R\96¾Z\96¼^\97ÇW\8cÉS\91¾_\9c¼a\96Èf\98ËZ\93ÈR\91ÇJ\88ÂL\94ÈY\92¾T\93«U\90©^\8e®a\90­^\99³]\9e¶^¥²`¨³eªÁa£Çc¥Ãm¯Åo¨¸p­³q¨³r¯­h­¬f¶µY³¬T´´Q§¨Mª­T¤­S¥¾A\9cÁF\9d¸C\9e¸B\94ÂN\91ÀE\97ÃI\89ÊE\83ÐLyÅYzÆY\7f»M\85¾E\87ÀD\85ÇLxÉO|ÊP\87Å^\8bË^\8f¿_\85¿S\82ºMzÁG{¾Q~ÂK\88ÀI\84´:\87§E\85©>\87®C{§Cx±F}±H\8cªD\89 ={¢>xªF\83ª>\8b¶G\86²Hu¯Cw¬@t¸G{ÄG}ÂE{¼M\84²^\7f´do¥Zh\9eOn Tg£Sk¥Zu±Uy¬Xw¥[l§Wr¬iv¡rk¥lg­nh°n[°^V¾fXºgS»USµQNºZJ½UU°eO°eX¦cX¦VX©L\¬OS¦U[¬]Q©ZX¨UO®ZG´PW§YW¤P780A019@/F=&=K!EE)<K'=5.L58@;4K?>V11P38G<:NG4JL1P=4TL1WE/ZB8[A2]C3^F4`N8YJ@^S>YV:aS3oR3pWBvV:uG5sFEpPCnV?sXIoYJpP@bU9jd?sdJwdLr`Q\89`P\88]W\87bK\86nV\87lVyeG{qV|rGw|L\85tM{nC~eI\80rK\8ceQ\91_L\99_K\9esT\93x_\9ayT\96p`\9auK\9b{T§\80P\9c\85\80T\9e\84c¤za§\82e£o_\9d\80W\9f\7fU\94zS\98\86T\99\8dY\98\8d\97\9d\99\8f\98Q\9b\8a\87\87\97M¹¡N¼\96R»¢I²\96\97_¹§Q«\9d`¬¡Z¶\9a\9f\96Zµ V¬¬K´¢R¶\94\97\91\9b\98\99S­ _¡\99\92a\93¡n\9d\9be\98\97f\94\98`\94­^\99°c\94«b§¨f\9f¨a\9dµb¡¥c ¥R\9c­S¨¶_£µO\9b©Y¦³Pª¯W¥¹T\9b°P\97©Y\8d¦^\8f²[\93¬Y\8e£N\91§L\8d¸T\88¶[\94¿Y\95½\\86ÃO\8aÃT\93ÄV\91Ãg\8eÇa\92ÍR\81¿W\85ÈK\81ÂV\8b¹Y\92°c\98²c\91¸V\9c¯T\96®\\99µ[¨µ_¨¶^\9c¿m¦Äa«Èl§Âi³²k²­q¯¬c¬«a©¼e»¿U±¸]µ¶K«¶T¦¬J²¼C§¹F\9e»J¡ºJ\98¶F\93¿T\93ÊI\8a½A\8dÌA\83ÂI\82ÊS\82ÈO\8aÁL\8eµC}ºS~ÇG\88ÂD\8aÂG\85¸P\8eÄQ\83¼Y\81ÀJ\83·D|»J\7fºE\84¹O\85«H\82ªD\84´F\7f³:\82°Cx¯I}¨K\83µH\88£H\8eª>\7f«F\85¥L\8d«M\93¬?\84¹9\84³Eu»;m²<r»K{µG\83¹Wu­Uu¯bw¢bi¨br\9f`t\9f\s¦`g\9f^s£cu¤Yq¥`o¦`}\9clmªpk©g\¥j\³`a¬j_½eS¸^O³XZ»a]¸`[ºaX¬XR¢T]°VS¯T]­XZ©ZU¥SX¤SW©QZ¬XF¯WW¡QO O69%8>&DI,FG)=F+@N'II,GE3E?/J96U9?T:=H;:H>8R?/QA6SI<ZC9Y=7Y>;SGB\K;XS3_N:o[;m[4iT:gW8qV4o[;jPCtP<zGHtOHiVBnZHiXEhUJn\Dl_JxTKrVIrWU}`V\80cd{``}^V\82fW~oS\7fgX\7fiM\7fvF\85yK\84yJ\84mO\84nD\94sA\94hH\94`J\95g[¡l\¡xb\9bpb\9by\\94x_\9c\85\81\82\86^¤~e¥\81[\9f{`¦|h¡}^\96\8cR\95\89V\9c\92R\9f\91O\99\98\9c\94c\99\90]\97\89\92\94\94\9e\9cQ±¦Mµ\9eO¶¥\°¢Y¶¥Pª U³©U¯¦Z«\9c\9cP«©H¶¤O©©S¬\9f\9c\98\97T®¡R¤\9a\9b\\9c\97e\99\96l\8d¤h\8d¤h\8e¤g\86¡e\8f£h\91§Y\99¤`\99 _\9f¦b\97¬\\9c³_\95«P\9d§W\9b±T\93±L\9a¶M ·Q¢«Q¢°V\9d¥T\95­N\8c§V\8a¨N\94\9eW\93¬Q\8b©X\8d­S\7f´R|ÁO\82¼O\85ÉJ{ÈV|È_\89ÈY\8dÏT\89Ë^\89ËU\83ÉT{¸a\83¶^\8a´]\94´Y\9bµ^\9a½[\98½f¡¸`\95µk\9a´f©¸o§½n¤Âi£»h«¸r©·j®Áf²¹Z­³U°¸Z®²\ª¼P°´E©»H®¯U®³P©°T¡®L\92·I\93ÁO\97¼C\8bÂE\94ËG\8fÄL\88½V\84ÂS\8e¸Q\87¹I{²M\7f¸P\8c±M\8dµF\94¶P\8bµO\93¼T\8a¸L\86¶N\86²L\8b¨H\81£P{¥K}¥Ez´Cx±>~³=v±I\86®J\87´K\8c²@\88¥=\90¡;\87§G\82¬@\8b­>\8d¬@\82¹:}´=v½?x±A~±Ay©Hs²X{§^x¦fm¡cl¤`i«ak£]e¢\p¦]{¨eu¡hz«gu£jo¡ad¦ef­f\§id«q`´j[¸iYº`c±[a³a]©`WªUXª_P©^V¯YU¤\S\9aUS RO§UV°ZW¦[V Q^¡JT¥R:591B&EE/DD)EI+E="EB%OA4L;6N;+X:1T@FY<7KE<MA4PF6\N0NN<T?2^>0RE3VP<SI7dS=`P>]^@cb@pa4vZ;zV<oR>o]Ay]Bf\MpU=mOCkVIbTBq]Jk`SqaQtdT}XQ{dTtb]\82me|f_|iV{hVslU{uQ~uP\81tQ|qU|iL\84xQ\87rE\94mQ\96dL\97aY\90kW\8e\7fd\9dxV\9e\80^\9b\85c\97zV\9a{X¦\84g\9e\82\82h¦xc¢nd\95\83Z\92\85X\93}M\93\88T\94\8cM\98\8f\9a\99\8c\\99\96\99O¤¡Y«\90P© U²\9e\9b_­¢O¨\9c\96\9a\9c\99]¶©`±\9d\9e\9e\9dP­©Zº¤M«\96\9d\95\9f\9b\94\9d^\9a\9f_\98\9c_\99ª\\8c£n\8b¢a\8b\97e\8a\9c[\99¥P\8f\9eR\92\96Q\96¨R\9d¨d\92²R\9c²V\9d®W¢¬K\94±X¥³Y¥¢H\9c±G¨§R¥²S\91®P\93­L\8f\9dK\8f\9fV\91¨P\82¥`\7f¶Z\85ºS\85²O\88¼O\80·K\8b¼S\80ÇQ\83¿T\83Ñ`\89Õ_\8dÐN\8fÉL\80¾Z~µX\89ºV\92½b\91¿V\9dÀg\96²i¢ºi ´_\99ºf\9b¾h¦Äq¢¼k\9b²`\9c¼i ¬k¦½_¨²`\9d¿R¡º\¥³P­¼R­ºN¯¹Lª¯H\9bµV¤­I\9f¶J\96°G\88¼U\8bÀE\90¼F\90¼M\8eÉT\94ÉL\86ÊU\88ÄU\84½O\89¼F\8e³K\84»C\81±C\89»R\84µZ\89¯L\8a¾@\85ºO\8b±H}´K~¤F\82©L}©>\80¥Is«Kz«J\82²Q\83²?}©@\81¨G\86¦E\86\9dC\85¦K\80§B\85¯;\82¯B{¼D{ºB\80ºBw´H|°Fp±Tm«Zo°[|©cv¤WqªXp£dl\9bes\9cgyªez¬fr¦`s°dk¯np£ii¥cXªmd\9ekZ©dW±fY¿`[±gb³]a°V^¨Ua±aT«XL\9fdU¡XX¥fS£^S\99YZ­OOªUV¨N\ W^©WO§`>;,7D*5B\1eAE#>;+@=%KB-FD.OI4MF/IJ0TC>V=:U;5Z<3XN.YQ)NI1LD2XJ2TE1MH/T[)Y]0Xa7\X@meGmg>k_CuT6~[GuZKmZMiXAaMB`Q=ZR=daBg]LkbNieLpdMunZ|iZvkYyjYug`|tdrySpuLplSmnJslG\7fhQ\82vY|vO\87vO\94gO\91^]\8e`a\94r^\8czU\8exf\96ye\9cy_\93yW\8b\80\\94\88i\98\91g\9e\89\81b qX\9d\84[\93\8aX\92\8eR\9c\84I\93\91N\9b\93L\9c\9d\95\8cQ\9f\92\9c\9e\9d\9d\9ac¯£]ª\9aWª¢Q³£Z·\96\9bQ²¢Sµ\9b]ª£c¨¢b²¬]¯ [° V°\9a\9c\94\9d\97\97\95\9e[\9f¨T\99¡Z\9c­]\8d­c\83¬h\85\9c]\93¤_\97§W\92\9b^\96\99S\99¡^\92¯]\8c¤]\94¨\\9f«S\9b°O\97«T\9e¤S¥¬K£¥B\9d©D¢¯F\93¢?\8a¢H\87ª@\8d¤E\8e¬L\87¯V~´J~´L\8b©H\8e¬T\87­J\89¶M\8c¼T\7fÅR}ÐO\85ÑS\8bÅI\8fÂN\83Ç]\84»a\8b¿c\8c¶Z\90¿[\94¼b\99ºm¬°o¨±f¥µg­·t©»v ¹h\9b®_\9f¨b¥±g\99²X\97¹Z\95¶S\99¹V\9c¯]\9f¬\\9e®N¦³M£µL\98¨S\9a³R\9b·K\92µJ\86­I\94¶@\95¶B\95¼J\90ÀQ\97ÅK\8cÇQ\80ÆS\83»L\80½H\8c³D\89¶K\84·N\90­I\8c®S\93¹U\95¶E\89­E\80«F\81±K\8b°M\8b¦I\81\9cG\84\9dMu My¬D\82¶J\84§C{¡<x¥?\85\98;{\9eI\81­E\81º;\81µ=zºE\84ÁG\7fÁIy³Ay­Pq¯Ok°Zu²[~¨^v¯Yx¬er\9f_o\9aXo¤by¤as¢aw¢Xo±_q®fr©le³ka³qX³u_¡ma¦oSµjP¶q[¸hT´XT¶VZ°_`§eV\9ceK\96`P\97WZ¤_]¥bY\9b]Y©]Y±RY·P[«UY¨^U\98`.93<?;5:*@3#>;,:D\1eH:"LE"B>0P?.X<3W@BTC4\=>UG/ZT1[P,XS%NV'SM0JH2TW-NQ.Rf6\d5YX?faCj_Ioa7u\=fY@xcKu\?jUAdKBfM;jV<m[Hu`@ljHzhL~fG\80oSr_[ri[qk_{iWqufujZrzTysKthQqlNrs]\83lW}qM\87xY\9crO\9ak\\96n^\98x^\98wQ\88zf\8a\80\\90{_\90{c\93\89f\8f\8cm\9c\87l\92\90\84W\9dp`\90\89T\9a\8f\90R\9e\85C\9c\86J\98\90\8eI\9f\8e\98\8d\99\9c\9c\9f\¦¥W¥\9b\9e\99\9a\8c\9dT°¢K©©U«®Y­¨[´¯Y«¬c« Y¯­Q°§Y¶¤U°£b¥\99\95\95\95V\9a\96]\95\9f^\8a\9bh\8c¨l\82¦c\8a¢k\95£^ \96`\95\98^\9a\9bV\9b£Z\98§\\9a°U£¥P\9a¢N\94§R\9e°S¡\9fU\9c¨K¢¡D\9f°G\97ªG\9c®M\96®N\8e¤O\8a¥C\91¥P~³J\89·M\85¶E\90ºU\97ªT\8f¹R\87½L|¼L|ÈM\87ÉO\8dÄO\95ÊM\99ÉR\94ºU\86º]\8cºZ\83¾f\96³Z\8f¸h\9d¹o¥ªh¨²n\9f®k ¬k¯ªs\9d¹g\9cºj¡²`\9b¶e\9b»a\92ª[\93«R\9dµ\\94°\¡°T¢¶\¢°R\99¸J\9a­N\98¬J\95³@\8b¨=\86¯L\87­C\8c¼O\8b´G\97¶J\94ÅO\99ÂO\95¶P\8c¼P\90¹F\90ªE\94¬J\91»U\92­J\91¥K\94µD\96¬G\8d·?\80­E\90§C\93µA\80¦L}\94Jx\98Pp\9aNs¡E\83¸K}«K\88 I\88\98=\84\93;\83¤F\89¦D\84®D\8bµ={Â<z»<z³D\82´6}·Hy´Cy²Mr¬^y¨Xp¨Xp¯[j\9fck¤fs Y{ªYm«[m¢dq¦_x±nq³jo¦uhµoaªa^¡bX¬mY²bZ¹dZ³iT´`K±d[ ag¥`W cV\99cI\9f`Z¢^Y\9ecW `V¡TT­IZ¡RQ\9bNa\9f`V\93]24627>25691*<//;:$B;$AF%HL,JB+J;6WB;\EA_O7WW4UQ7_R6ZN(YH#NS+XU6X_6\\4Rb8cf9bc9hh:rfGe^DdeAch=j\FmSFoONkWHgWDk\LidEpm@xqL\83sU\80pR\81rUxf^vgavma}kgtp^shdzqbmmTonTmsZrl]sn_\82sY\91iO\92oS\96nY\91j_\99{d\92{\\86{]\8a\7f`\8d|a\93\80f\88\87a\88\89d\90\89]\93\88X\8b|W\93z`\97\7f`\9a\8b\84\8a\92\94M\9d\8fS\9b\8aT\92\87N\9a\94V\9d\9e\99\93\9d\9d\99\96\96\94\90\9cU¯ Q³¢_±©[´­\¶²`°°d´ªYª¤V­ªX¥«_®¨[°\96\94\91\94U\9c\8cY\94\94e\8f d\87¥d\8b¨j\88\9bi\99\99b\99\95^\9c\9d]\97\94c ¢l\9a£c\9d\9f^¢«R\9c¥Y\9b§S\9b W\9b¦R¥²H\9e­F\98¨?\95§@\9c­?\96±E\96¨F\92¦J\86¨L\81°C\8e¹L\8c·K\8f³M\8e°X\8a»F\84¼E~ËM\86ÎF\8fÎ?\8cÃD\88ÀR\93¾N\91µ`\97¶a\97¾b\88ºg\94¾d\92¾d\9d±b¦¯m¢´f¤³k¨²m¨¨n¥¯r\97·h\8f¼h\97¹Y\94©\\8b¨S\91§V\93«\\8e£a\91¬Y\8dµc\91´[\91°V\8e¸H\8b²@\8a­<~±E\81«?\86·G\8b¶N\86±I\92¶R\8e»G\9a¹K\8b±M\8d·C\91»@\8a®?\8e°=\97µL¡µK\9e¬H\92¬I\8e¬9\8c©3\8e¯>\87·=\89­C{¡Ou\9cQ}\9aHt£Hv¦M\84ªF\8e£@\92§D\8cªG\8f\9eG\8b¦<\83£<\86¶:\84º<|µ?\80¸@}µ>~¾<rÆHq¾Fi´Jj¬XiªVt«Xl¬fn¯ix©it¥_o¨it¦dq£mw£kz¯g|¯lw¥en©jj¢ha¬`X®\Z³\P´dP°jQ®iM\9epZ¦m\ eR\9acU\9fZQ\98`L\94ZY\90SX\9dSZ¦U[¡N_¡NX\9cPY\98Y_\9c\75B37A7=8C+"4@"5I(AA&BN+GL0TJ%YG5YH;YM9SV4TQA[J4UI/SW+\T*\Y*]Y,PW5Z\<\f8`l9dg;sc<jdPfbKc\Fo[HmXLtWNoOOtYMd\BqbHucIskNvqM|pX|mJ}jav^Z\7fsUzrSxfenuaztaxjW}hQpnNoc]niazri\84jg|ze\8bnh\91x`\92oh\90{`\94~b\86t_\84~l\8c\87e\95}h\8e\80[\81\88f\92\89h\94\8bZ\90~f\90u\\99\84\90\91\90M\9c\8cS\9a\92O\95\96G\9e\82Q\96\84\92\8b^\9b\9cS¨£Y¨\9eK\9d\9b`\9d\9f\97\9d\95\9d\9bS«£W«¨]®±Zµ¥_¸«X¸¬c¶²[¬«P¤¯[ª¤Y·«W©¥Y \9cT\9d U©\9b\9f\\99\96g\97¡e\88¨k\91\98l\90\8fa\9a\90h\9d\99c\98\99[\97£a\93\9eg\9e\99\\95ªW\94ªS\91©U\8d¬H\8f P\9c®F\9c\9fH\97§@\98©A\91¥>\92¡; «9\98¥:\92¨>\8f¨H\85·A\89¯?\8d«U\8eªS\95¯H\89®R\85µH\81¿?\88ËC|Ç>~Á=\88½P\98ÀT\98»Z\92·a\82ÀV\89»c\95¾d\93Æi\93³r§²m\9d¶d¡·q¬¯h\9e§q§«o\9d³c¢µc\92ºX\9d§]\95¦T\93¥a\97´f\95 `\97 b\8e§U\98²`\8a»P\91®K\86»?\8b²2\86¥A\8e¨<\89¬G\94°J\8a«@ ²E\94·E\9f°A\96µD\8f«F\95«;\8f¨;\8e£E\9c§=¢¢B« =¢ªE\97¢=\8f¥B\95´D\96¬8\8b¯K\85¡D|¤Bs¦M\86¤>\81§H\87ªI\92ªM\8b«@\8e­C\91\9cA\81\9e@\86¤G\89¹A\83¶:\84¾8\81ÂE\84Â7\7f¶Bt²Bn»El¸OyªZu¤\t«Qs¥Zz¥gq£ns«]n²[t¨\{¢j{¢`{«f~ªgo¦qx¨cq£kh¦ff±dU§nY«lW°rQ¨lL¥lP\9df^\9aaW¢[\\93]O¡^J\9d^N\9fP\\9dX^\9dSX\9cHa¡MaªUe\99QW\99WA:;86:?<$A5\1f:6!>H/:Q2;I)A@"O@([=8YHAPR6NO7PO8[O<WUBZX6^R4\[6\S9PX8Zi7Yj9dc<fa?g_AohIrfOiaHxhNuaPm[Jt]BrfJodMh_RpfPrqOyoVtfWvnStj`\7fac\82i\}tUwfephcrr[vr[yoPxiUvb^ngdymqvno\84\7fx\82~o}qs\87qe\8cyg\90vc\8c\85a\8d\82h\91\81b\8e\8a]\93\8bc\8a\8ag\83\88n\8b\8cg\8b\84e\95\80c\9c\84i\9c\87_\9c\88\90O\98\97N\94\91U\9d\8aS\99\8a\88\84Y\9d\98]\9f\9cU\9e£T\97\99T\93\92U\99\9b\94\9a\9c\9a\9d\94\9ca«ªcº­`·¯T¹±b¯¯_«¦T¢§T¯­`¯¬_¤ªU§§S«\99X\9f\9aU\95\95`\8e\9fi\8f\98k\90\9fo\8e\9fg\96\92_\9d\90\8be\99\97f\94¦g\98¢c\9a\9e\\96 T\8d¢Q\94¬G\8eªB\92£I\98¦C\8a¥M\8c\9fJ\8b¦O\98¦L\9c¡<\98¢8\90¨6\85°;\84¸5\89°7\8a²L\90¬Q\8f·N\90´I\93±P\89¶N\82ºC\85ÆB\82ÆD}¹E\87»N\8d²W\8c­N\85¶T\7f·V\87º\\8fÄ^\98½e\9bÄe\9d¼sªºk«¬h\9f\9fj\9e h ¥`«©i¡²`\96°Y¡­V\9b\9da\9c­a\97­e\9b¦W\9a Z\99±c\8e²c\8d¬]\84²O\80µ>\8b³4\89¬7\90¬:\8a¶?\92¯G\92¨9\9c§;¡«7\99­@\93¬A\97¡; \9f8\9d¦8\98¢6\91¤4¢¨9¨\9f9¥£:\95\9e7\98¥<\92³;\8c®B\91¡G\88¤Nx«C\7f©@\86\9cE\92¥;\8f«>\88«C\85¦H\8d©J\91¨I\8c¥B\84¨@\89·J\7f¾D\87ÃA\81Á9|¼=t¶=k¸Dn¯Mw®Xw§Ul²Zn°Zq²^{£o|¬st«er·`}±_uªXz­b\82±l\81¨k\83§bu­it©ca§ee¥o[ s^¢rS\9eqM\9biX¥cY\99[T\9ccN\90aU\95Y\\93VQ\9cVR¡QP¡UV£[U¡OR£H`¦MY\9bV_\9fY5;.54,:?":8\1fEI$EG.>N1EM%DD&PK*GO;MN>\N:Z[2XU8]T0aX1eK3a\9dR?dV>\b2Wh?]f:ekDgY?pi>naCqg?nj9ugEyiLyiKxdHljFrfO{aTo^VrqTwnStwZyqV~p^za\vj`|tTomWrc`roitp_ycg|fdyglssdtogp|q}os\81smy\80f\87\80u\8ard\8e\82g\84\80d\8bza\92\8cb\80\8cY\83\8d^\84\8dg\89\88f\83\8e_\83\80f\91\83d\8e\89c\99\8bY\95\90\8f\\99\97\8fV\96\8eT\9c\8dA§~N\9b\84\93^\98\90V\9c\91V\95\99V\9d\95a\9d\9c\94\92\95\98\95\9b\9eU¢¨Y¬¬X¬ªU²¨[³©b°´`¢¡\\9c®`­±a¡¤^¦§Z\9c\9eU\96\99V\9c\98f\8a¡n\95\93p\88\90q\97\95h\94\90m\8f\92j\9d\90k\96\93_\99\96^\92¦f\93©^\9d¬U\91§W\8c®F\8b°M\8b§F\99¢F\8a¥K\88©L\89¨G\8f§A\8f¦G\90\9d;\87¡8\96©7\8e£=\82µ@\89²9\8b¨L\87¯D\8eµL\8b´E{µR{µO|ÁD\80ÂJ|¾J|³S\81ºY\83¶`\88®c\83½U\90Ág\90¸]\9c³o\95·j¡Ák§ºn ©h§­l¦¡kª£c©¡[ §d\95ªa\93 W\91¡d\98\9cg\9b\9ea\99\9fW\8c\96Y\9a©[\93°^\89³L\88¯D\91¦=\8dµ;\8c±?\8f§:\95°8\93©>\98±G\9e\9d;\93­4\9e¨8\9e¤<\97\9fE\9f\9a1\99®>¢ª=¦\986\9c\9d\9e5\9c\9c<\9b\9d@\96­H\97®:\96\9f=\97¨O\82\9e@\84¥K\85¯G\83£P\86¤@\96¤?\82¥I\88²I\81®N\8e¢M\8d°L\81­E\7f²H|½G\80³Cu¹FvµGq²Nh¹Pr«Tm²V}¬\s¯Tw­Y\82«dv¬et¯oz©qp«`\84®[\7f´hx­h\7f«l\7f¯py­kw³me d`£ti\9bp[\9ep\\97zZ\9fmY£kYªbO¦l[¢nN\96aV¢aU\98bT\91TN£]J¥ZI\98IT¥Q_£T`«K[¬OW£PG3)94(;9*@B'7H#:C#9@\1eGK)GX&BT1GS6MY8TX4\^1WY,ZR1eU9^J@_TDgV<`XB[Z=X^8^j5gl:f]Ce]Eg^BdbGna;neBniIpjRunL}sDumKupE|gMzoT\81r_\82sZzi\zl_xpTxybtu`rhZvfYpagqfkkqkpmiore{trr}srxqrtizvmzzq\80\80u\8a|o\88\81o\88\83s\8c|i\86\8bk}\8c\\80\8cb\7f\8b^\88\92W\84\89Z\86\93Z\8a\8eZ\94\95Y\8c\8cQ\8b\87P\98\93\95\8c\80\83K\9b\8bR\93\85Q\9b\8bT\97\8bZ\9c\88Y\9e\8a\92Z\9b\91Z\9d\96\98\9b\9d\9dc©¤h¬\9f_ª \\9f¨]¤¨Q°ª_¯®[¯§_ «\¢§[\9f¥S\9e¥_ \9da\9e\97g\99\9cd\96\9bj\8a\95k\8a\93i\8b\8fh\8c\90j\8b\88l\8f\8cd\94\96\9b\95\97V\9c¥Y\90«X\91¨M\8a§K\8e¥F\8f¡C\96\9bH\97\9eA\8e¦G\88­@\85¨D\88\9dE\8d\9d9\95¢/\95\9f3\8b£<\8c«>\84«8|³?\86¹A\81±Ly·G~ºM{ÄR~¿Lw´Ky±V\82¯W~µ^\81µ[\83±a\80®h\8eºe\8fÀo\9c¸j¨¸j¦·j«¬g¥©q«¢n¨§g¤£i  [\9b¢W\9e\98W\9b¡b\90 a\95§e\8e\9e]\88\9eb\8e\96c\91¤Y\95 Z\96¤H\8d¥C\8a¯B\88«@\96­A\93²9\94¬7\9b±=\96¤7¢ 9\99£4\98\9f9¥¤;¡\9d\9f2¤¨8°¨2«\97\9a8\9e\9a7\9b¨@ ¨D\9d§B\9a§I\8e¡Q\90¡I\8b¢D\84¬H\81§I\8d­O\85¬N\8b©I\8c³@\89­G\84³E\83¬G~±=\84ªD|¯>{³By¼Ev¶AwÀFu¹Nv°Wm®PoªVx¶R\85·\\82¹V\84°bz©frªcp­my«m{«d}¦[{¨_vªfsªlm§cj¨gd\9bxn\97wk\8f}f\92v[\94w]\91lW\99aR\9ecX¡`Y\9dkO\9fnO¡eU\97aU\92cV\94UK\9cQM\9bJS¢O[¦Na§Zb­]^¢T;'&52$J9/D?0;I"HQ DG5RM6KT)RS2RT3VW;XS:\S.\N7RU2RT7VX-dZ7]T5fP7`YAXa:av.bm6b^CnSBmW9m_?lZAna7vuJod?ufG{jKilWstKzr\~iS\8alYyn^uwa\83sZ{uWmm^quhoeeqdTxdiqjuwotniunuxw}rrmr~mzykj{nx{\82rt\89u\85\84p\82\83y\8e\7fo\93|f\82}pv\8c_\80\8e\\80\83i\84\87e}\83Z\8b\8di\91\82_\8e\88`\9a\8b]\9e\8f\83\90\8e\\97\8dM\96\8bD\9b\82M\99\88O\9b\80T\93\8dY\9f\86P\94\95W\93\91[\94\88\89\96\97`´£[µ\98\9d\99\99Xª¥]¦\9d\9c`°¯^ª W\99¨]\9b£d\90\9fQ¡¢_\9c£j\97\95b\9b\8cg\88\93c\8a\8dg\83\96a\91\8fk\94\8fj\8a\94\\98\8fl\8c\8fa\9b\99\9de\9a¢g\93¢Y\93¥W\85¨R\86\9fM\8f¦Q\90©H\8f£K\8b\97>\8d¤?\8e\9eF\93©>\8b§G\85\9d4\8c 6\8e¤@\8a¬6\84¡>\85±@\81²Ju¹B|½Kw¹M\85µD\7f´IwµN\86±G\86®Sy¬V\8a´d\80©T\8a²`\84·f\8e¿^\8d³b\9f´k£ºm¤¾o\9a±l\9c©f©ªe\9f¤i¨©j¥\94b\9a\9b\96U\9f\9b]\8dª`\92¥X\8f¡S\8b\9cX\93\9cZ\8b\9aR\91\9cP\8b\9eL\91§>\8a\9fI\81ªF\8c«A\95­<\8b³9\93ª:\8d¦- £2\97¥;\90\9c6\93\98:\97¦8\9c¢.\9b¢8¡\9e\97\9e\92\97@ ¥O\95\9dK\9b\9b?\91£L\90§E\8fªN\90¦E\90§J\98\9bR\8f\9fD\8e¨?\8a¬A\8e¨G\86¥=\84\9f:\80¦>\80¬>\81­H\80£D\7f©A{®Nx¹Rw»Tt´Ls¨Nu«Rv¹Y{´X\80°d\83´]u«a\83¤mzµe\81­`t³dx«Zw\9ddx\9ebz§hj§oq¯gj¡lj mg uh\8euW\8ara\95cT\95d]\9c^a\9fkZ\96t\\90kK\91cT\93bU\91\V\95XP\9c^X§U_\9cL[\9aN^¢Xh\9cSl ZJ/3B)/A**K6)BK2DP-KN-LT9JK1XH/QL8SJ9[D4TF/U>5SG0MP(T\*WO1^N.T\6WY9em6ep2i]?g[<^]7fZ=o`5n_=rj4lo<kcFwgGwmIkt\qn[suZuh^\88ga\80pcvwe{pY\81pWyc[idhqkdth^jcnjgnea{mdvljpmtlrvx\80nu\86lvzpv\81tly\88p{\88n\88{x\8czl\8d\84h\82\85u{\81r~\80u\7f\83f{|h\85\86i\87\8el\87\87j\99\8fd\99\90b\9c\80\81\81\86Y\97\92L\96\90M\9a\85K\9c\80\82D\9e\86O\97\91W\96\97X\8d\90S\92\90W\95\8e\8d\8c\9a\99\9b\97\9f\9a\9e\99\9f`¨«i\9e«f\96©l\90\9f`\98¥`\93¡d\9b\97o\99\8dh\8e\8ff\82\95i\85\90i\90\94k\92\8dj\8d\8fY\93\93d\93\98k\94\9bd\9a\9b^\98\97`\92\93j\95\93\\89\99P\8a£O\8d§T\8b©G\8e\9c=\8a\9aJ\97¢E\9b\9eE\93¤D\89¨?~¨9|¬7\89\9eC\86¤I\84¦@\83©Fw³T~½Lw¹H\80ÀG\85¹G|±H{·M\80±M\89¶K\8a®Z\86¬]\86©a\7f¬U\8b±X\90¹`\96³g\97³g\95­c\9f¶f\9d¼b\97°h\9a¬g¤®l\9a\9ac\9a\96Y\9f\8bS\9e\91Q\9b\9fT\95¤R\94\9b^\86\92X\90\97P\93\95Y\93¢Q\96¡N\8d\9b@\87\9eB\83¦G\83¨A\86¯=\8e­1\8f«-\8d£.\8a«1\8d¦0\95\9b8\92\9d5\93¥0\94\9e)\91¦&\9f .¡¢*§\9a\97\90\88D\9d\90H\9f\9dL\9a\98C\92¤H\8b¥H\94¦O\96¬D\9d G\93\99J\90§L\92¨C\87¤L\87¤G\81¨E\89£>\84 D\8b¡E\89\9bM\82¢Mw§Pw©R\82µa\83´^\81²O~­O\87¥V\81ªcy°j}®d\84²b\81¤_\89§i\81°lt­av©eq¢bx¡az\9fku¦nm¨pt¨`h¤ek ra\99kc\93md\97bV\8bdP\8b_[\91cc\8dn^\8fl^\8acT\91^V\9f[X\9b_P¦_S eY\9ba`\9cQY\9dWX\90\e\96Oi\98R?*0=$7K18M60JA/QE6RU;NSA^V2^Z8WQ1JP:ML,WK-PG,^H5\N4\\#ZK&QK%SR*d\>b\:fl.m]:cb5oc9p`;q^>lbCwj;qvAoh?urBysMvu_wp]vkd~cZ\84db\84cnrkl\81k`{niqhiifcgl[lmdkdhqcvhiqkZvzekolt\80po\8bdq}nu\80|wz|uw\84wx\85ot{p\85\86|\85\82q|\8at~\81j}\81r{|o\81\83l\82wd}\83g\81\83a\8c~f\9b\8e\¤~g§\7f\85\86^\95\8c[\94\8aG\97\8eR\95\89?\9b\91\8fT\95\91P\95\91P\9c\96X\90\93L\95\8e\95\91\90\9b\9c\98\9c\9d\99S§¨Yª¤[¥ a\9f\9di\93\9ff\95\97]\98\99g\8a\90m\8c\8eh\96\89h\89\8c^\81\91`\8a\93g\87\88b\89\8bb\8f\95V\8e\8cj\98\91b\9c\97j\93\9da\8e\94n\95\8bh\95\9bi\8f£[\94\9fO\8a£U\91\9cG\90\9dF\95¬;\99¢I\8d¥G\8d¢?\80¬I\7f£D\87¥D\88§J\86¦F\82\9eO{¤K~«Mw­Q}°N\89µ?\84¶K\8a­?\7f¯J\80ºK\87³R\85®Z\88±c\85³P}¯X\8d­S\8cµ[\95¼i\8f¹d\9e¶e£­h\9a°a\9cªn\9e¯a\9d¨i\9f©c\98\90\\97\9a\97O\9f\97P\99¤T\91\97Y\8f\94`\8b\9dR\8e\94V\8f\97N\90\98P\87¡=\83¦:\83¯={«8|¤4\8c¤,\88©1\8d\984\92¤7\95\95,\8f¢8\95\930\99\9a+\93\94*\9a\9e\93\955¨ -£\97\8b\89\96;\99\95M\99\95B\8c\8eN\89\99F\8e¡>\94\9eJ\8f\9cH\86 F\97\9dA\91ªG\89¨N\88£@~\9aG\82¨@\88 N\91\9cL\88¦I\92\99M\86«X~¯b|®b}¶\\82´^\81¨Xy«^\88²^\7f¥ht²b\7f­f\82ªg\7f±d\82§o} ut\9cpx¥n~ mo¬mo§ek®cj¬je£_m¤_j\9fmf\8akW\97_Y\85d`\90b`\8fl[\95jb\87ha\8ecQ\94k[\9bk[\98bT\9cbd\98Zf\9a]d\9bT^\9d]k\98\c\98Jk\8eN90<F.<A:@D84IF;VK=XO9ZTAWQ2VZ3[N+NL*OQ$SM%`O$_L-UN&ZQ+VV)UU)\d1eb6gf;ce6dj>gc7nc:heBhe<roAmrGxoCyhD\80rH{lKtoZruezi_zqa\81jivoqsgkvihymisd`yb`l\[habcgmmell[hq`ppe|zgy\89ot\86in\8aqi\83ynt\82zt\85~y\8c\82p\86vr\81w\7f\8cx\82\80s{\83l\81\7fnyxf\85oc\7fw`~\7fl\86}f\95}f\9bz]\96va\9e{[\95\7fQ\93\80S\97\85O\98\8dO\9f\94J\98\8cF\99\8a\8e\8aL\9b\96L  U\9c\98\9c\99\9b\97\8e\96U£¥]«¨S¶\9eW³ W¦\9ce§¤d¨£b\9a\9ak\9a\95e\93\93e\91\94l\92\8dk\98\86d\8d\8cb\8a\90c\82\91Xz\8c`\82\85]\87\89\\85\94^\88\9be\90\90e\89\8ep\90\90j\9a\8er\93\93k\90\95q\90\9de\8d\94W\92\97T\98¤J\8d§B\97¨<\9a¬?\92¤<\8c§E\85­H\7f«?\80´L~®Sv³O~§U\88¦Z\82ªSw¥U}®Jz¢B\88§C\8f¯B\8a´D\84ºN\8f®P\8f¨^\86¯\\7f¾Y\82»U\86µV\93µ[\8a®k\91°j\90±i\97£l\9a\9dp\9e¤h¤¦b\9e£_ \9c\\9c\9bV\93 O\9b\9aU\96£c\9a\9bc\8b\95b\8b\9ad\87\95Y\8b\93M\85\9bI\8f\9bG\89¨J\8a©A\80¦@}®;~¦5{©1\89¦;\8e\954\8d\8e>\94\8f7\8b\8c,\8b\95)\8b\98+\9a\8d\8b)\97\950\9f\93\9e\92\95\8a\8f>\90\88=\8d\90I\8e\91F\8b\8dB\96\96@\96\99B\88¤=\87¢D\8a\9cK\8d\9eK\81\93O\84\95G\8b\92N\83\9eH\89¡J\8f¨K\93¦N\92 [\89ª\\83¬f\85¨g\86¬`~¦i\84£i~¤f\85ªg\81®fzªb\85³j\7f±h\80¶kw©o{\9duv\9bpz\9bsz\9fx{\9dtp«lh£dm¢ce\9ef]\9d[^\9b]`\8eca\96cZ\8ek_\91fg\87fa\84le\8cnc\89oT\8bq\\88kV\92hc\88bg\8b]c\96am\97Xu\94Nm\8fKd\90Sj\8fOH68=49;?;>G7KBBU?DSTEaTBN]DVR+JQ*UH!VS.RQ"SP.VN1PR VZ&Y[1WN)`W:_[9`e>k\*_i=n`7le9cnCpmAuk<pfE}dCycGzqA\85oNtm`~eTzdV\81dg|f_vljn_ovgd\82h]yf`rbbneeo^\obgxY`jerv]p{kmtgt\89pr\83gu\81ik\88zpzv~~\90\82y\8czl\82qr\91sy\8e\7f\7f\8cuv~ozwm\82uo}ya}~h\8arl\89va\8a{^\98~b\91~X¢ye\9c\82]\9d\84W\9f\86I\9c\93W\96\90\8e\90P\9e\97R\9c\8f\93P\99\94F ¢@¤ L¤\8f\95I\9d\98C\9e\98\9aI¢ªO±¨P²\9b\9b\9cf¤©m¥\9bg¤¢k¡\92i\9a\9ce\8f\85r\8d\83s\95\8ai\87\8bm\84\8fa~\8dW\8a\92a\81\8b[|\8bh\89\91f\8e\89\\97\87f\8c\97l\93\92j\85\96o\94\91_\85\92`\8f\92k\8d\97]\88\9bI\8bªL\93¬Q\8eª@\99¬C\8c¯H\90¦H\88¡H{£@z¨O\82¨W~¥W~£Jy¨W|®P\88¨U\88\9fQ\87­M\84ªS}°@\89¯;\86¨D\8bª^\86®Q\88·d\8d¬T\82®R\91®Y\96±^\90¥a\85°e\8e¥i\9c\9fl\94\9cc\98\9c] ¥b\92¡`\95¡Y\99\97Z¢¤^¤\9aV\91\9fb\88¦c\83\9bX\88\92]\89\9cM\85\9aG\92\9dS\93ªD\97¦@\84§C\81¨<\84±3\83ª5y¨/}£5\88\9c4\8b\99<\92\92/\86\91(\80\89-\8b\88\85$\97\8f*\8f\9f)\96¢0\9b¤0¤\97\96\8f\94B\92\95@\8c\8bI\99\89;\94\91:\92\93C\98\90;\93\97@\88¡>\8d\93C\83\8fK\8a\97E\94\97C\8d\98D\80\9f<\8c¢H\89\98R\89\9bQ\95\9b\\8f\9aY\8d\9dk\8e¡m\8b j\8d§a~\9cn}¡d\85£b\82¨l{¥k\83¦g{°s~³b}¯ls«o~\9alq\98hw¢lr¢ju _j¡ie\99[m\9c__\9c]^\9baX\8d]Z\88``\91ic\8ddd\89^d\8ff\\87nY\95pQ\8asZ\8di\\89\Z\98an\99cl\9b^f\9b\p\95[q\8bXj\8dSb\8fQD44?<7<:2GI5OA3TD@]M?XRKRRCKW2QX(US)^V.YX&O\\1fMV#MX)\a$S\/RX.__2[b:ja7gc/bb5i^5hlCchBf`Ey`Gxc@sa>\7fmK\81hFy`H}_X\80_S\87_S\90d]\88]a\81iiuhm{ccy]\w]RnbYqV_gU\j``w^_lXgmZryelvhp\82fk\8bsp~iu}ot\83~qy\8d}}\87|u\8fxz\8cww\87~t\81o\81\80n}mjzki\88rf\88uo\8d}d\89u^\91\84U\96\84Z\93{e\98}a\9b}[\98\86K\99\8a\98\95H\9b\88\94Q\9e\99R\9f\90\90L\96\95E\97¡A§\9f\96\96<\9d\9aE¯¥C¯¦J®§U¬¦P¤ªO  V\9c\98e\9e¡h\9a¤^¢\9ab\9a\99g\97\96h\93\85j\8f\82o\8f}s\91\88h\93\8c[\83\86^\80\84i\87\8eg}\8fm\81\8eg\7f\88b\8c\89]\8c\88f\8d\96b\93\8eZ\87\8cb\83\8dd\8d\98`\8f\9bQ\8f¤K\8f\9cN\9a£P\8f§C\8f§C\88¦>\8a¡;\8b§G\80«K}§Hx¦Ut£Lw¤Pr¬S|¥]\7f¬Z\83¡Y\89©W\7f¯TyµI}³C\87§I\82¦[z£b\80­_\86®V\8aªU\90¢P\92£T\88\9c^\89¢]\96\9di\9c¤g\9e§i\9c¤[\9a\9d_\96\9b`\97¡Y¤\9eZ\9d¢T¡\99[\96\9a`\87¡Z\82¦[~\9aW~\9cT\8b¢O\92£O\93ªG\95¤E\8f«M\91¬<\81­<{¤:}¨<\83\9c9\86\928~\93@\86\8f6}\923\84\88!\94\87+\9b\8a*\98\8e%\94\9a%\98\9a\9b\9d\9d\909\99\94?\96\8eB\91\8b>\92\945\9a\8f9\94\958\95\8f?\8d\8bA\86\98A\8d\93E\88\8eT\90\8fS\92\8eA\85\8eF\80\91@\82\8fQ\92\96[\8c\90^\88\99c\81 X\8a\9f^\8f©c\88¢l\81\9fq\87\9ae\83\9ad\86¥l\8b®p\8aªo\82¢j\83¤m\80¬kz°b}¤`x\9bbp\9c[t«\y¡fz _o\9b[g\92^r\96dm\94bj\99``\8eae\8aae\83hX\8b[Z\83_Z\8bhc\8d`g\8be^\92ne\90_g\8d^c\96Ue\9a\^\95[h\9cNk\95Od\96]a\97Wi\86\>1FG;BFA>EBDRQFNGJ^NA\YCPLCHK3K]4SU5X](RW&M[ RT/[U4`c,P^6Te2X]8]cFan@ja:dd6q_=f]=mZCf\Fx^BoiA\7f]@\84fF\8bgI\7f[S\8aYT\8eWU\89Za\84da\87]i\86imr]mt_dq`[kZVhXcsYZkYWjOckYgzZnsTu}ahyhv\8buu\91wg~wh\7f\82q\7f\87x{\8e\81q\92x|\8b\86s\8a||\86\89p\89\81\83wr}prwnj\83ys\7f{m\7fzd\8fqb\87\81^\8e\81Y\8c\84_\8a\85]\9b\89V\9f\89S\96\87N\97\9b\8bI\9f\92\99\9f\8f\8d\8fG\9c\97C\96\93\9dG\98\96\97O¡¦M§£Qµ§F²¤W¢\9cM¡¢U¤\9bX¦¨k\9e\99l£¤h\9e\9co\9d\8ca\97\88o\9b\82p\97\89d\8a\81n\8a\87i\8d\85l\87\8cc\84\86i\8c\88]\82\8cb\89\88d\7f\89f\85\8eaw\8fa\88\8de\81\86a\84\8dZ\90 ^\8a¤R\8a¦Q\8c¨J\9a\98R\97«O\8e¦A\93­<\8d§9\81¦B\81¦D}¤Q|³]x°Qw Jz\9eW~­\\83§Y}\9bUy§\}¹O\82ªTv°J\84­R\80¯U|¤U\8c´Z\8e¬V\81§Y\8f£[\86¤V\8b\98\\93¤V\94¤b\94£f\91\97c\94\92Y\9c\96h\98\8f\92j\9a\9ci\9f\9d[\9c\9b_\91ªS\8d\9eX\7f¦]\81\9a[\85¨M\8e\9dL\86²O\85´L\91²B\8d©>\86¥G\86ªA\87¬=\88¤F\7f\962\84\96+\8e\8f9\81\8d(\80\95$\88\8d'\9d\85\92!\9b\90*\9b\9a$\98\9c'\9d\9b\9a\91\94\8f<\95\897\9f\8e>\95\88D\99\93@\95\8cC\9b\90?\8b\8aO\82\91O\89\97J\8e\8bK\8b\93G\8b\8fN\88\97D\87\94A\92\95K\90\99]\83\9dW\8a\9bk\92\90d\83¢h\92\92g\8b\97q\8e\99r\87\96q\85\9fh\8b\9er\83¢p\86 l\8d§w\85©j}¥nv­fu¡hz«Y\7f£Y|°b}\9e]}£by\9fTq\95Yl\94^l\96br\8a\d\90fZ\8ccb\84mj\80\j\83h^\8e[i\8cf`\89bd\8dn`\98_j\96\b\93ac\94_b\93Sg\9aWp\9cMd\9aae\9bQj\8fVM9?K:HM:IHJAGRMSOMNWDYUKPRCPPBSU@KZ=Le1Ub,M]1M[,P^6Xd:Za<Qa4Xc?alAer>bg<dgAj^<lV5kY:ue<ne3ml8}bA~`J\8aaC\8eYK\8bbQ\91Z\\85Y^\7fY^\82d`\89\b\7fZhu\_l[dvQ_pTcr_XiX]t]`pPnn[gwXoyar\86ls\85hp\88qk\82vi|\83i\80\88u}\84yv\8czv\85\82o|\84u\84\83yx\8aty\7fxn}xss\87po\86yl\8ato\86zc\8byW\81{[\8a\80X\8a\8eT\8c\8bQ\98\8fS\98\8fH\9d\92\8cR\9f\94P\99\98Y\9e\9eR\9c\9e\95D\9c\91E\9f\99G\9b\9eL\9d\95C\9a\90P\9d\99T\9e\9d\9c\9a\9f\96\95S\9e\9c\9edª£c¡\9fj\98\9bp\98\8d\92n\9a\86h\8c\82g\89\82d\8a\81o\96\8aj\9a\8em\92\88e\8e\94d\7f\93_\80\99cy\90_|\9c]q\96hw\99hx\90hz\9ac\8b\9aO\87¤N\8d¥K\99\9fM\95\9dC\92¦H\8f©G\94³J\8d«@\85®F\7f®C\83§M\81®Uu¥Wy¤Ux¤Ly¦Ou§V~¦Yq­St±Rs²T~­O|§Sz­N~¸M\87³V\86°a\86§]|\9eR\80£T\80¢[\8d\99V\8e\9eN\95\97V\90\90V\9a\8eZ\9c\91e\9c\94h\97\9dm\9f\9eg¢§\\94£]\85«b\82©V\80¢Wzª\~©]\88¥V\85¨V\87µG\90µD\8f®=\8f°F\86¨F\87\9dA\8d£B\85\9e>\89\93+\82\9a0\8a\9a+\84\90.\8f\90(\90\89\8e\8f\98\9b\8f\89\93\97/\9f\8b8\99\92<\9f\872\9e\896\90\94H\8d\8aQ\90\90M\8b\8bK\89\93V\94\91M\8e\8bO\96\93E\91\95I\96\9cM\8f\95C\8b\90O\89\8fX\91\8fY\88\92c\88\8c_\8a\95e\88\99n\93\90n\8f\95y\90\89w\8b\89y\85\94y\88\9cu\87 w\82§k}¥nq«er¥bp©Y{«`y«ey§av¤ew\9c]p\93bt\99Xt\91Ov\90Vm\98_a\90]_\88h_\8caf\8eZi\85ac\82ke\90gk\96iq\91\i\95]m\98cp\91Wg\91Zo\92^s\94Qr\92Qf\9cTm\9dMl\92W9>B=CJK<K:HIKMARXQ\PN[[IXYKRR;MN<Pa<Tc7P_<QS4TU6Jb/^b>Yc6Yf0Y]7]gB^bGZd:a]9k_:j_:q]2y]>ri0\80fC\85gD\80gF\87dG\8aiJ\92_[\89\N\8e\`\8cd^yaezkZ{Zc{aXhZhxa`nXXhOSsTVoO]uSep]hrihu]l\84qi}mn\8b{j\8c{i\82}iy\83nw\82voz\81x\82\7fsz\89t\86\7fx\83}v\7f|y}~\80mt\7f~z\88\82k\7f\82r\8aql\82zZ\8a\80U\8d\88`\8a\86Y\94\8dS\8d\8cM\9b\8e\9aH\9e\94G\9c\8e\93O\9b\99S\98¡X¥\97\9aN\9f\92M\9c\9eR\94\97M\97\95T\95\9d\9b\9c\94\9f\94\8e\95T¨£Z¥\9bh© d\9b\95b\8d\94e\9d\94j\9b\85b\8d~d\8b\81c\8f\84]\9c\8ck\9b\80`\95\80k\95\84^\81\90W~\92a\80\88ds\87dv\8eb~\8fgy\93p\7f `\8b\9dP\84\99M\8e\97M\86\9cE\97¢B\8a­P\85°S\85®E\86£J~­G|¯Lp£I\7f¦Sy¥X}©W}¦_r\9e\w¦V\83°[x¦TlºPy§Zx«L\82¢Lz®JxµR\87®Z\81°]\8b±[y«[}©[\85£V\81 X\85\9bX\97\98Q\97\9cW\98\9c\\9a\93c\98\96j\9a\9bc\95\9d\9dU\97¢R\8d\9f[\8e¤N\84¨\~£U\89®]\82¦I\7fªU\84¯G\86²B\8c¦A\87¨=\83ªH\8c :\8b\9d9\8d\972\8c\96)\8c\97.\85\8a(\97\94+\9a\942\9a\8d*\95\87\95\93\95\94\95\93\87\94\8f\8e0\8f\8bA\91\8eK\8b\8bG\8d\8fQ\88\86X\8c\8aR\86\95K\80\8b@\90\88E\94\90G\99\90B\91\83I\8b\86S\8e\8eT\8f\90\\8b\96c\81\90m\88\92k\8c\87g\8e\92k\88\90m\87\89p\85\8bn|\8er\80\9fq\81¦m\88\98mv¥x}\99sl\9few c|®jx fz£pz\98j\81\9dUw\94Tx\94Qs\99Vw\91`v\8bba\8cQ]\86T]\8c]Y\83_[\83ia\7f^c\8eih\8cal\8fff\89Ym\9a[l\96`l\93Yn\8baw\8cMt\93Qg\97Ud\93ag\8fV@=T;AK=CF;?K;LCKPFUPD`RDTWCXUA[]CTZ;OT6IX?HZ0JM.NO-T_1XY5`Y/\Z=c`Gb^BZg=aoGogHsj>q`;\80`8\7fb<zgG|ZNwiL{fB\87kH\8fkT\8e_T\89^T\7fjR~l_w^c\81`YweXj[_iX]vWWwRNmVVrTdo\mihtojo\80cf\81hh\83ir\87vk\8ctp\85\80oz\81twwxxvys~\83gs|gx\85sn\86xt~yp\7fyry\80{v{}v\86xj\83we\84~e\89\8aU\81~Y\87\82a\8a\83W\89\89W\9b\95Q\9d\99R\98\9aM\91\94Q\9b\98L\99\9cT\98\9dU\93\99Y\96\99\9bZ\96\91X\9c\94O\9c\8bW\9d\91\8a\8e\92\9bT«¢N®\98\95\98\94Z\9f\9e]\95\9ac\92\8ek\8f\94i\99\8b\87f\9b|Z\9fzV\94\89`\9b\90i\98\89a\94\93d\90\8f^\87\84Sx\84Xv\90c~\93a\83\9af\80\9bi\83\9cW\82\9fP\8b£I\88\97N\87¡L\8d§E\84²U\8a¬T\8c«V\8a¤L\84\9eIr©En¡Go¨Ln¯^x¦ak¥eo£ax V~®\q±Ttµ]p¨Q|£Vx¦\z¬S\81¤\\80ª[\86¶X\82¶Qv°Xv¨Q{¤Q\85¡R\80¤[\88\9bR\84\9ec\84 b\8f\9d^\92\8df\97\90m\96\98d\94¥b\98 P\93ªT\93§W\88¦U{¤Y\7f£P\89«F\8c´N\83¹U\8eºP\87¯E\8b³C\8d¬>\89\9bB\86\95?\93\933\92\9b+\89\8f7\8e\8a4\92\8f0\9e\89\815\98\848\9f\89\8c\8e0\9e\8c\82\83\8c\8b4\9d\8d1\99\8b9\8d\95C\90\92H\83\87L\87\86V\93\85Y\92\8bJ\93\89=\83\90A\92\86B\90\89R\95~J\91\7fK\93{H\94\86I\89\8eP\89\90a\87\86m\8a\8ch\8c\8fn\8d\8cv\83\94v\82\8fkz\86s\80\86m\89\8as\82\9eq\81§z~\9eyz\99qs\98s{¡tt¦mw\9fo\82£m\82\97f\87\96\~\99_r\92Rt\8bWx\8ebr\8b]i\93Qi\8eP\\7fV\\84U[\84eZyce|[i\85_a\8fb`\8dbn\8abj\90[d\8b_k\93\n\92Xn\87Wp\87dg\88`g\88f5@K>GR=FS9HO>LCCLJVOEYG@RZ=MW=NOAPXAMNA=Z9HS6AJ:AQ4V]+[S0U\9`b<i[O^aHegEkYLt`GsdHn[A\7fYE~\P\84gN\84_G\88`M}c?\83lN\90gK\88kR\83fV\87fZxe_\85`_yZ[xd^lS]}Tf}R\wUZm[[{\fsfkzlh{nu\81nj\7frj\81ooyvzxwr\83~|\83~q\7f{\80{p~vo\85p}\7fos\8fht\84z\85\8cq|\89oz}z\85\84q\7f{szk{wjz\83Y~\83R\7f~U\8bzd\7f\88]\91\82U\8a\93P\8e\90M\9c\90M\8a\8eQ\8a\93X\93\8ec\98\9cb\99\90X\99\94a\9f\93\8fW\9b\92X\9e\8e\93\92\92\8f\9f\98P\9e\9d\92d\94\9eZ\96\9f_\9d\97]\9e\9db\95\94q\8e\8b`\9b\94Z\9b\8bV¢yR\98\83Y\91\8fd\9f\86f\9b\87h\92\93^\91\91m\85\8fk\81~Z|\81g\84\93a\82\99c\83\9ah\83\92Ux£T\88\9cQ{\9cP\82¡I\86\9cW\89¨V\8eªS\8c Y\8c©M\81®Rm¨Tr¢Vo L{\9dW\80\9feu¡co¥\r¬Yu¯dr¨Uv¬Wl­Tz¢Zx§Tq±Vw³Mo¶Nw´On·\|©\r±]s ^\85«Z\83¦N\86£M\84¢]\81\99X\8b\96f\90\98d\8c\9cc\8b\95d\8e\9d^\9c¤X\92«O\90«M\81 J}¡S\7fªV{©J{¶Lyº[t²H\81·;\80¸5\90¬5\88¢7\90\9a?\91\9b9\90\997\9b\8f7\8f\812\93\8e<\93\8a\87\81A\9a\8c\91\8d/\9c|3¥\88.¥w#­\81\88/\9e\8b:\91\8eC\8e\86H\88\8aD\91\8cR\92\89O\92\8eW\89\93U\94\87M\8c\93G\83\88L\86\82S\95|Q\8e{T\9cyQ\9d\8fI\97\8cS\91\91T\8b\93h\8f\8ea\92\94j\93\83q\8c\93r\8d\89m|\92s\87\85p\84\92r{\9dz{\9fy}\98|z\99up¡ol\95lp¢x\81\9ei\85\9ct{\94`\8a\92dv\99[y\92Wr\8bWj\89gq\8eZe\8bXd\8a^_\85\b\85ag\85e[\86]ft__\87ed|[i~ce\84\p\7f[b\7fZo\89ac\88Qp\91fm\93]k\88_j\8abH8JE<GJHG?GLEKGH@MNOPVMLQWCOW9K\8OP8IU0@W9EN4AK@@F>GI5IO;[S:\N@bZLb\NbVLhQSv]Py^TvbKtbNycS{XY\89^P\8c[G\85fH\85rG\84oI\8atD\88kJ\80sN{oYtb_}bhvgm{Zc{a^}WizZeyi^na`sfhpltxsqsty}\80v\80wpy{xzx\7fzl\80{g\7fzr{xvu{n~kx\81h~\87k\8b\8en\87\8cw|\8es\81\88o\87\88n\8c\81p\85up\83hq{e\80\84`\87wc\87y]\8e\7fV\87\86^\8d\8dT\8d\93M\8a\88P\91\8bO\8c\86Q\8a\91b\89\95Z\8e\8fV\98\97X\90\99_\93\99\95\99\92\96\88\92\93\95X\9b\98b\93\9df\98\99`\9b\93c\9d\8fi\97\93h\98\9ae\96\95Y\96\93\\92\85Q\9e\85V\98\86b\9f\89h\98\92k\93\93l\86\8df\82\8bo\8d\88h\86\86f\7f\88f\87\84\}\93\\7f\94^}\95^|\96`y\90Px\92Nq\95Mx¡\\80ªW\83ªV\8d¦Z\86¨]~¯Sx§Q\82¤V~\9bY\7f\9dWv\9e[z¦Ut§S}«Uv³[i²\m¨[q¥Ws©[n®Wh²SfºYi±Qh¥_h©\k­at¯[\80«Vz¥ax¨a\7f\9eS\86\9bR\82\9dP\8c\98S\84\95a\7f\96T\89\99T\85¡L\8e«N\8c­T\90ªK\95®H\89¤O\89 Ox©Vs­Tt­Qm¹Ju¶<\82¸9\85­4\86¯1\90£/\90\9b/\94\948\8d\89?\97\83<\99\811\99\832\9a\8e/\9c\8c\92\8b\857¨{(¦{\1e y\1e\9e\87\891\9e\843\97\87>\99\8d@\8c\86O\98\89M\92\90O\90\96M\8c\93R\84\88S\8c\8aH\88\8aG\87~D\96~S\95|Q\94\8a^\9e\86Z\97\80W\99\88T\97\90b\90\8ah\92\8dh\96\8am\8c\86r\8a\8fu\8b\82t\85\86l{\92t}\91{x\95}z yn\9b\7fq\9cst\94|w\8dz{\8dxz\99iy\94g\87\9b_y\8da|\8dXp\95Zi\8baq\86Vh\87Zg\82^[\83WY\80PdxVayaY|[_\80Z[x`c\7fil\84dq\7fZf|^b\7fde\82Zi\8c`n\8d`x\8flp\90j@<CH>EE@PDANHKRJLWRNTQJN[FMLQ>\V?VDCJL5DS7JR=CILNTACR;UOA[X6eSEZ^Ig[FXJWdUIm]GpdJqaO|_L\83YK\86cO\80]L\83gU\8dfV\8deK\8ahO~sZylS~sRmg`u_]zch\81Z[y^Z}U`yWl{ek\80i^rij|gpwqp\83tp\7fpm\83|q~\80p||qymv\7foxxp\80vp\80\85qz\82w|py}sy\90j\84\8dx|\80rz\87iq\83l\88\8cr\89\86k\8bzmzlv\88eozgw\83k\89rg|}c\8a\86c\8d\92\\88\91V\80\8aZ\8d\8dW\84\8cX\92\91b\93\93j\8a\8dX\8d\95X\97\96\9cU\9d\9c\98\9b\8e\98\92\99\91\\9f\8dd\9d\93Y\9d\9eV\9d\8ae\97\88\97_\95\96Y\94\96X\99\90V\92\88Z\91\7f\86a\91\98h\8d\93m\91\8cf\86\94o\87\8fn\85\8d`\91\8cd\8e\8eT\87\94]\8f\91b~\93_}\99\\87\92S\83\96]o\91K|\9cJq\9bR\81¥R\80£b\88¬W\82¦\\88¬[}\9eP|\9c\\88£_y\97]p§^t\9dcz¨Zs°]nµPt§_h©[g¢bk¨fq²\q®So¸Zq­Qn«Yp§cjªSr³b{«ct©kwª`\83\9d[\7f\9aM\84 L\83\8f[~\9a]\7f\96^\86\93W\87¥U\8f­P\8d¡O\8eªL\90§O\82 Q\8a¥Qy«F\7f®Q}¯@~­Kz­Hz´@~¤1\83¦9\8f\9e6\94\9e9\96\8e+\97\8d8\98\93<\95\819\9b\851\92\840\9d\8e6 }3\99\85@ª},«\830£v)©l"\98z" \8c/\8f\83:\93yA\96\80C\9a\8aS\89\83Q\97\92E\95\97K\92\8dR\8c\85Y\90\83N\85\88M~\80J\8a\83Z\8asO\96\81]¢}b\95\87V\95\83^\90\82a\8b\83[\8e\7fh\9c\83^\9a\8dt\91\90x\8a\7fo\95|n\85\8dy|\83v\85\95}~\9a~r\9ert\8dxw\8f{w\86~}\88m{\92i\8d\92c\84\8fiy\93h~\8c^n\88[c\95`r\8f]c\83[\\83ZZ~`ZzTh\7f[f|Q]\80aX\80Zg}_g\80e^\82f\w]_xc`{\^\7fZfvdc\8alq\85bo\8bv=KN@KQ?=J9@TF<VMGOMIYMHVQLOWNMWG<\@<WB:IQ7CUGHJF?NEESFFS=QK=aSCcXJ]OIWLP_WJiVHeZRpfOxXR\84YL\7faP\85ZM\8aWQ\8cbS\91cZ\8dlW|bbzf[taWpi\xja\81``w^e~bb\81`ly\lue^}f_|jbvif{hu~mv|hryrj{vi\81yo\89\7fv\84v}\80x\81\80qv|k\83|p\86os\8ds\81\8bm\87\83t\80\84ru\90ir\8ed\80\8ah\80\88u\80vq\81mo\80wn|tsyl{zj\88|h\88\8b`\80\88`\7f\94S\85\95Y\82\91[\88\90\\8d\93h\8a\94d\90\90k\90\94g\92\98X\99\98\91V\9c\94\95\90\98\98\8e\89Z\9a\89\8b\93\\9f\87\89Q\9e\90\95N\9d\96]\9d\99^\98\92V\91\87W\93\94W\94\96b\90\8fg\8c\91e\8c\8ef\94\8bc\97\95T\94\95U\88\96a\8b\97\\84\95\\8a\90Q\82\9cV\88\96T\7f\9fJv\97Nt\97Jx\9cQ\80¢S{©^x±X\84¬T\84¨T{\9eI\7f\9cK\80\9f^~ Zt\9fZo\99by fz®Wo¯Uv¤al¢bv¨eo¬jt«li¬caµah¶Qr®Tp²Yf§cl§[i¦go it\9fX}¡W~\97R\80\95W\80\96]\88\97X\84\9bU\7f\9d]\86\9bQ\8b¢T\83\99N\7f\9bS\8b\9fS\85§M\83°P\83©G\84®K|°=p¥@r«C~¦=\82¡1\84\9f5\89¡6\84¢:\86\98.\97\973\97\92;\92\84:\99\81<\9c{A\95\828\93\85:\99\7f@ w2¢z1ªw& l!\9dr*\94}*\91s)\8cz5\97\7f8\97\84H\93\8dE\8a\8cK\92\88P\91\8bW\96\8dN\90\8aV\82|\\7fw[|tb\87y[\8btT\97u[\98w^\91\83V\8c}[\8c\7fX\93\80a\98\7f^\9d\89f\93\89o\8c\8ct\96\80s\94\86v\85~{{\8f}|\96~{\8doz\87py{y\80~}~|w\84\82u\8f\81x\8d\8dk|\92ls\92jv\89bm\91gn\8den\8bZg\8dTa\87Xa|[j\7fRdvX[vXesWdsVY|c]{abr^es_^t^[ric\7fm`{oq~ls\8bp@EJDJMDKP>9W:JRJIVIJUMANLLOWIQ\JLcEGKN5HS2OFCMTETIINJISOC\G7WX?aZIVUHaDRiKFnSQjSMn[R{cWpYSwdT\88[O\8d`P\8dZW\86_T\8ea]}rZ\80tawj]qg]zj]ol[|b[yrb\7f\_\7fat\82eazbe}hd|eguet}w{\80xt\8ath\8arf\84|o\80\82u\86r|\87u\81\82\81w|}\82~y\92\7f~\8dj~\93{y\91t|\92xt\86kl\99mo\8bes\8eks\80puvv\7frqy\7frym\81~x{\84o\83\8fez\8dc\82\8b[z\92Y~\93a\82\8e[\87\93c\88\8ek\8d\96q\95\94a\96\8cf\93\8d\96\9b\92\91\98\93\8e\86X\9a\88\82\8d\90\88\88\91G\9f\8e\9f^\98\9cS\91\8bU\93\98V\9a\92Y\97\99a\95\92f\8d\88a\9b\91U\90\8bP\8f\91\\93\90]\85 T\88\91N\91\97V\88\8aP\8a\8eX|\93H\81\99Fu\97U\7f\9dSo§Uw R|¤Vy Ux\9fSx O{\9dUu¥Xy bx«cl¥cp¥hq¡ht¥Vw¤^r©fr©le§sk£j^¡[m­Xj¯^q©bg·\o¤Wr©dl¡hn¨cqªarª\~\9a_\82\97Z\82\96c~ S\82¦Zy\9aS\86¦I\81¢G\85\98N\84\96N\81\9bD\8fªC\8c£L}¥A}ª<w¤B~¥9x 4u\9c0\7f\9c-\84\952\86\984x\99<\80\954\87\994\94\956\96\927\98\85\81>\9e\83=\92\86?\91\81\830¡~+\9bv$¡j(¤{'\94s%\90p.\87x2\8dvD\9c}E\98zG\89\82?\94\84P\92\84M\87\88V\88}_\82xR\85yT\87}T\81vc\8dl^\8eiP\99{Q\97tZ\94\82b\84qe\8e{e\8f\81Y\97\89e\8c\81d\95\84q\97xt\92wl\8bz|\8b\84~\82\89w~\8cu\85\80p~\81v\84|z\8a\81y\8b\83r\80\83q\89\89q\7f\83gk\8din\8fjh\87ts\95ii\8bhf\8b\d~[q~_hsWeuQa\7f\cr]es^gpWVxdYn\euqaujXnoUox`usivuu\82mCDV7KQBGX>=YI9ZDENAFKOAOIGDNBDZHGYEASIFOO;UM8MNBLE;ZHAaA8VI@^IM\QHfSFaKMdPKiMWkXMj\ToSNmYU~\W\82gU}i_\82aW|e`\82c_\82sf\80rf\86ogzn_ty[lu[mr`oqcnih|enwfcwdf\80_g\84hxykp}xv{|s\8a{l\8dpk\83vr\86|s\82\7fw\7fxz{\81yu\85\89{\82\8c\7fw\87ry\90zx\93r{\8ftv\90ol\92qk\8bok\82no\86jt\7fpl\83uty\7fx\80w\86x}\84z\80\8dw\7f\89g\81\86g\85\7fl\89\87a\86\85l\85\89i\8c\82q\8f\8bg\92\91^\93\90f\9a\97q\9f\9c\9c\95\9a\90\8b\87M\9e\88D\9e\8a\88\84\89\87\86\94\99\98P\99\9cH\96\98M\8c\93T\92\9aY\90\90V\93\8ad\8c\90U\92\98Q\98\9cK\95\95Q\93\90O\8f\99R\90\9bL\8e\91V\85\8eK\89\8eK\81\8dI\82\9bMy\98Tw Pt¢Yr\9dSp\97Pt\97X\82\99P~¤Vy§_o°\t°mr±nr°mk¥po\9fjt¨do­bk¥^g ad©kc¨`\¥`h¬gh±fn®cm¬cj©dm¨h|£jy¥a\80ªlw«hu°e\80¤b}\9d_| [\80\9fP\80¤Kx\9fNw\99Fz\98G\85\9bL\81\9fA\89«G\83«={\9d:x¡9y¤<}\9a2\7f\9b/\80\997z\9b4y\9d=t\969s\8e4~\891|\957\81\928\88\8e8\99\8c<\99\8aC\95\84A\9b~<\9a\838\95\81:\9c\83/\97s5¡p)\99s$\99v.\98z;\91t@\96{C\98zE\93{I\8f\81C\94yC\8d\7fM\90\82Y\81\81\z\81_|}[\86x]\84r]\8awU\91mV\93oV\94v^\95w]\8atd\8e}]\92\7fa\8c~d\8b\7fj\94xu\97vr\93xx\8c}o\8d\85|\8b\84x\88\83}\85\86|\8a\80~\88\80|\8c\8cz\80\8er|\92|\83\8by{\8dqr\81mj\7fkk\8auj\84le\8blc\8bfl\80amtdlu[es^k|]i\80ek|[`\7f^`q``vgZkranuYmsgo|djymqng|o?BV6DWDIW?FYO>UHFRCAQD>UQ>DMB>PCDUKJ[KKLREWGFJCKLTFWJGTHNYAKRPF]^Qd]UaXMZY[bUZmc]hfRvdVyY]uWV\85bU\82Z\v\dv]eu_^wfn}hs}ngva_{gbuudyjmzqnvikycg~al}nrwgrzilurx}~xuxp~~i\7furztdw|n~\87s\84\83o\7f\8dt|\8c\8d\80{\97\80\81\8byq\9dt\81\93p\85\97nr\8enz\99`y\8bnu\89cq\88k{\86eo\81kqv{}os\83{y}yv\8azy~j\7f\8cd{\8f^y\81a}\82mw\86i\90\83c\8d\8bi\8f\95h\86\91o\9a\9as\99\9ds\9f\96\87\88c ~h¤\8a\89\83S\98\83\87\89\82\8cF\9d\84\89I\9d\92T\9a\8cX\99\97K\96\8aM\8f\91\\98\93a\85\95_\83\91Z\86\8bS\86\91L\87\8bR\91\90Y\92\97\\8f\95]\88\8fQ\8b\90X\85\93X\91\92B\84\8bR\80\92G|\8eCv\97It\96Hp ]x\9eRp\9e`t¤Lx¥Q\7f\9dRp©et£lt¯ht¬kp\9crv\9fcz±cp¬Xa®W`¬\]¦qa«`d\9ejb°ep¨ti¬ok£hpª`h¤lt¡ip\9fft¦cg¥d{«k}§hs\98Zy\98O\82¤Z}\9cU\7f\97Uw\91P}\98F{\9cK\86ªE\85¥K\89ªB}¤K\81¡=x¤Fx\9cGy\95;\87\987\84¡0z\9c?{ ?r\862\87\810\83\847\84\86B\96\93@\9c\89>\97\93<\8c\8dF\97|=\98\893\9cx0 \81+§v$¨t\1c£q-\90q%\9eu/\92q;\9dy?\92{6\9bx<\8c{D\8b~;\8b\85C\84\82Oyr[\81w]\88rd\85rT\8dyS\8fnU\87rR\94qY\8e{a\8bzY\8c\7f]\94\83l\99vj\92~g\8e{n\89ro\8f|u\8est\90\85h\91|n\90\8b}\8e\7f\84\96z\82\88\82\80\8by|\87\86~\8f\8a}\8c\89{\87\88{\83~q}~l{yq{\86vi\82mf\8cio\8cok\8bih}[sx`dyghveqq`p{W_n^c\80W_xn[epZhpbsklo{c|\82syri\83p=MY<MR@RMLHNV>IQ>LE4VI;QQ=DY?H`GS^GP[FOWIKMLAJHCTHE]VRXUOXFIYKTY[NVe\\cXYZbb_]`h`ie]m]U\80ZV\84UV\86\T\82b_yhhqjjw\ekcbn^nuemtdhuj`vlermm{gu{nmqoprjvthpyqisjmvsn}x}wxxm\80rv{n|~ep}`t\89l{\8cw}\8f}q\81\8fv{\92xw\9a\82\85{¡y\84\93sz\94b~\95cz\8fdr\7fay{fr\85c|\82k{ws|uz\83p{\7fvwytz|x\89\8fl}\90az\84f\81}`z\80i\8b\83n\8f\8ds\8e\8fq\87\97k\8b\93s\94\90l\9b\89o\9d\8ae |h¥{a¢\7fV©zZ\9dxK \87\8d\8f\92\8a\8dM\9a\80H\9a\88P\9f\83X\8e\87S\8d\87T\87\92S\8c\93]\8f\94f\84\87]\8e\90\\89\96V\82\8bS\89\89X\88\88T\8e\87V\97\83V\94\8cd\89\8dT\8a\94J\7f\8bM|\89C|\88L}\92G~\9bGv\97Xs\9f_x\95Ws\96\{¢O~\9fUx\9e`k¡ek\9bij¢hg iq¦a~¨Ws®Th«]i§fa´g_¦rn§nv£un¦sx\9brr¡or§ga§ci\99Zh\96`o\9aff£fu\9dg\7f¥_\81¥Ru\98N~\98Xy\93Yy\95T\81\8fPx\92Ax¢=\81¡C\87¨?\80©N\83ªL|\9cD\7f\9fH\80\91B\82\91H\82\95I\7f\9c8}\939w\98<\84\8dF\80\82?\88\835\92\84;\99\8b?\91\8e>\95\8a<\8d\8b;\92\885¢~9¨q5\9ep(\9fm$\9eo\e\9cp&\97l&\9en)\9dl8\94t7\90{4\8cu8\92y6\98q6\95zD\88sQ|oZ\84nX\8awb\90s[\86wY\83wa\87z^\94qS\92xW\97{f\8a\7fe\92}n\98wg\91tj\8e\81u\87sp\8drr\9avl\98\84j\97\8ek\92\8d}\9a\89\83\98\7f}\87~z\84sq\84zy\92\87x\8e\88~\81\88\80yz\7fzxq~\84x\83\84p}\85jq~mw\8fry\8egq\90dn\84_nxbjtehmXdpV^pY`~WiwYcnljlt`zpd\80wr}yo\81wv\87k<MdBPUBKURNWZIH[CJP>OK<VWBSXEQaCVUGRTL\aKPKTSOQHVRGdYTbONVSF`PQ]PT\`R[_`^e`lU\fgUqfXnfSza\\84W\\86^Xx^Z|[ey^a}Wpz[jxbqv`wvkqu]or]tubtu_v|`myey}pluczvij|vvwhvwwtrnpx\80oo\81ou\86`p\7fiu\87l{\89t}\87\88m\88\82z\81\8eu}\92\89\85\99x\82\9dz\83\90s\86\98c\82\93m\87\7fn\85\81`~yi{\84mu{u|\84q~s~sxx}o\88\83m\8c\82t\80\85t\84\91r}\83t\87\89dx\84m\8b\82n\8b\8e{\81\88h\89\8cp\84\95m\92\8eb\93\8bm\90\87p\9e}k©qf\9bx]­tR¡xK\9a\83\83\89O\9f\8f\82V\99\80H\8e~H\95\81K\99zU\95}`\90\87e\8f\8b`\84\88i\82\8b^\8c\89R\81\84S\84\95c\8f\89X\8a\88U\8b\82W\83\83]\87\95[\95\8e\\95\92V\8a\9fL\87\8aH\88\82@x\92M\7f\90@|\8cUs\97Un\98Ov\8fYo\94Vt\92Mt\93Px\97To\91kb\9ane\9ake [x\9ee}«[q§Tiªdp®ja¸[h²fo§bw«mr­hn£fq rk\97pb\9bg^\8ffe\89n]\9cig\9b`g\9e`|\9dey\94]y\9aOt\9dQ{\8aZt\8aTy\96O\87\90Kz¢A\89\9a:\89\9fF\8b\9fE\7f\9fJy«G\81¦Q\84\91I\87\8e=\83\8e8y\98?v\99>m\8e?|\83B|\88B\83\84?\8a\838\94\804\8b\87A\8e\93=\89\880\9d~2\9cu1§~/¢z,£o"¦k\e\9co"©m. r5\97o0\92m5\98z-\9ay<\99v.\90~F\8e}L\8ayL~h_\82x\\82xX\83vW\91q]\8dvV\8fyf\90\84`\89zV\8bz\\92wa\91sg\98vs\95xf\8f\80r\8b\7ft\8flk\97yk\93\87n\9e\88v\95\8a\81\90~v\98x}\99~n\87xu\8f\81m\92\87q\89\7fv|~~\81\84}\8dxw\83zv\8e\80n\81vu\83\82n\83\88bx\8fet\7fgs\87bm}gvpnjqWry`iwQcvTgu]ithr|ae\85nkzo{\85q\80\88||\84p=EiDBhQIiRSXVUUYONPM\WHYSLR\BYcJX[Ja]Mh]S^\W\ONLTIKdJNkZLeXS^]RaUYg_Ueg\scNqYNvTJw\TucZp\en[m|XdnS^p[^pXly_lrWrw_mrbxj`yrSypWsqWp\80`s{ay\87bw\8ahw{ht{h{yprtt|mqtxrkurplspr}gl|pv||{~~t\89\83o\7f\86p\84\8f{\80\9d~\88 q\89¥m\8e\99i\81\8di\82\86p\7f\85l\88\81n\83\83mz~ut\81zm\82uq\82wsw\82{u\88\82p\8c\88o\87\8bz\8b\82z\84\83r\80}j\83\85g\81zg\83\80q|\85h\86\90p\87\97e\88\91i\87\81d\90\7fn\94}h\9bt]\9c|T¢sS¥~L\9b\80Q\97\81P\9e\8b\8d\8bI\93\86I\8f~M\8d\86O\94}Q\97\89Y\92\8be\89\90^\8d\84c\84\8c[\8a\8dW\92\8b^\88\86_\80\80V\89\84]\87\84[\89\90^\8a\99f\8d\9a`\87\9da\8f\98X\91\99L\83\8bMy\8aP|\91G{\96Ow\96Qv\9dSr\93Vl\91Lt\8fQu\90Ml\8aWp\96`e\96jk\9bhe£^d¡ct¬Yo¨Xo¯dmµhj«^t®eu°[|±bs¨lu«ao¢cs\93be\93n_\8bt]\8bnj\99ei\98^g\96ei\95\r\9day\97Tx\94Y|\8fZ{\97P~\96O\85\96N\8b\91N\86\96K\87\9eB\83\9bB\81¡D\81¦Hx¢L\80\92?z\8d:x\8e:v\8c<y\87;t\852|\86/\82\8e9~\91>\84\8c?\88\8bB\8b\85;\99\8b<\95\8a5\93\8a/¡|4¢y5«{.¯\7f)ªs\1f§k'«s4¤u/\9dg5\96i-\96u/\98u9\9d\816\8eyJ\8a}P\8dzO\86qW\8erZ\85t]\91ma\8cn\\85{[\86\7f^\87z_\87}d\82{h\8cv`\8d\80c\93\81p\8cuc\8eqg\8ctn\8bvm\8exp\94\7f{\8fyx\99\82\81\82\9bv}\92wt\94wm\91wj\87\82m\88}n\83}t\81\80y\8f\7fs\89\81r\8azs\90\83t\86{q\83\8bhz\8e\\81\8cY~}fzth}xgv~iov]k~^p{\q\81]r}Zz\88gr\8acv\81l\7f\81s\82\8es\84\8dz:EqMDlGQaWVV`VUZJ[[O`PQXMD_YM_SQ[cWc^NY]UU]QX\S\VRXb\P[X]g\XcfUeYTc_SfmdvicifS{\Y\84\Nti`pelzf\\89\`\80YfmV\uVdl[qkbun\}o^|rX{kUpv]s|cq\84aoub|~c}\80pk~pj|mrskktqompmjopvu|k\80zh\7fvv\81|yx\80rz{u\83\88p\90\89q\84\9cp\8a\9e~\8c\9f{\8f\94o\84\95m\93\8dj\88\91m\82\7fdy\81ixwtr~st\88yi\80}hwvpq\85wv\91{x\87\81|\8e\92v\8b\8ap\80{~v\8bi\82\89r}\84h~\7fp\80\8dr\80\84s\87\8bv|\82k\84\85q\93~o\8ath\96zf\95s[\98u[\95y\\96\83V\91\81\\98\7fc\89\83Y\93\81E\93~D\8cuO\84|Q\8a\85M\81\81c\8b\8bk\82}Y\92\81a\84\8f]\8d\8d]\80\8c`\88\89]\90\84^\8d\86P\86\85a\82\86V\8e\8eV\96\93b\8d\8eQ\8e\8dV\90\89O\87\85Hx\8eCy\98@{\99Ev\9dL{\90Lz\91Lx\87O\80\8dNw\8cOu\92Q_\93dh\9d^d\9ajf¡Yx©Wr°[{«b~©_u±Zo£bs°R}¥\n¤\{\9ddp¡m{\9chk\9bkm\93lh\8clg\86bn\8fhf\97bb\92Sm\89Os\86Uv\93Ip\8cJ\7f\8e\t\96U\7f\8eP\85\8cN\8c\90R\8f\8fC\8e\9cM\88\96K\83 @u\9dE\7f\94N~\8dJx\839|\88Aw\8fBu\85:}{/}\87=\8a\82=\8b\85@\90\86J\85~?\8c\828\91{C\93y2\9fv8¤j0 o.®p7ªl ´w\1c¥d\1e®g&­`(\9fl3\93g4\9ft9\9bt1\9a\857\9bzJ\90tM\8fyR\94nN\8bnV\81zW\89~`\83pS\8du]\8b{W\96\80R\93\82\\8bud\95yX\89ri\90~c\85xd\83on\8exg\8bml\94so\9f\88{\94\86s\8d\8cq\9az{¢{o\92tw¤tj\97tv\8bqp\81ss\83sp\82ux\81qq\83rt\90\82l\86|m\8cul~\82_u\90g}\90c|\87m|\7fg\83|govirwal\85jx\8aanzfuzdu\8b`s\8b^{}b}\8bm|\87r\8e\86\7f<QaGG^VGf[W_dMV\K]WT_PWbZRaRRa[[_]S\\STPJ]XHaZObZRT[`Va`T[hcnoYohXqvTsv]vkfmkczsf\81kWtk[vcfzeb\89^cx^^w[gmZpj\soW\7fvU|qR~iZ}mW}qex{ewv[osbmupumuxtumrslxpjkzqlrlhwtk\86xr\8bsh\89wp~|w\7f~y\84\8cy\81\8dz\84\8do\8f\98m\92\90|\85\99p\88\9fs\8b\96p\8f\8cs\8e\8bs\85~h{|gz}tx~w~|mv\81vxx|jl}hu\8as}\8b\85t\8f\8cr\7f\83o{\83x~\85pv\84w}}ow\81k\80\82r\89\88u\81\81w~\7fs\82|i\86xh\8ezh\97}d\92\85c\9c}]\8e\7fc\90\82_\93\82W\84y^\8arT\85tK\87jUypRvuVx|P~\84Uy\89c}\81_\85~Z\84\85b\7f\8cb\88\8e^\89\83U\92\8cL\8e\88R\8d\83[\7f\8a^\8d\91b\8e\95U\89\93Z\8f\88X\8f\8aR\88\84J\7f\8bJy\90Bs\93C}\9f@\84\8d?y\8bN}\8aM}\86Ir\86Lm\91R^\8bT`\95]k\9dgv£c{¬b\7f°Ry¦R{¬az¦^t¬[q­^z«Wx\9d[z\96fy\9f`v\9d^r\9bmt\9ckj\94pp\90gl\9cdl\96bj\88Xm\84Rk\8eVu\89Ky\91Wp\93S\82\90U\82\82T\8b\83V\86\8dS\82\9cG\88\9dI|\9b=t\9c;\80\9a=~\89Fu\88As\88Hw\7fA}\817\7fy/\80z4\88\86C\8f\80E\87tG\8brE\91qD\93\81A\9bp<\93k?\92d<\9ai-¢_/¤f.²h#±j#±j\1e±a\1c¥\(¡b-\97c/\98n3\96rC\96xD\98\7fH\8dy@\92xL\95lL\90pI\8b\80O\83zO\88xY\90vM\97nQ\9dwS\91}V\8etR\95m_\96t\\85yf\8fqc\89yl\96wv\92qq\94|w\9c\86q\93\8bq\92\8bt\8f\84p\97|r\96}t¤\7fu\97s\7f\90py\8ezr\8csm\80ot\83sj\84rt\8c}o\8bxb\81}\\86\91g\81\93dy\8ef|\80f~xb\82\7f[~\86`q\84gq\8bn~\87mw\86ur\80lr}t{\83j}\86pw\85f{\8bv\8e\86zJEnJQZOR_]YgPY_SOeY^eU]i_[q[YqPSmZUg^]kNQiYOgSQkRbfQd_cekZicnhgop^xy]|nYwmcyoe{j[wk^\82idxjg\82_`\8a[r\84Wnv_pqYypetgWymY\7fqU\84j[yy\v{`\86tgrtbro_m~mzuxgwsrwsps\82pw{cfrfg\7for\8aoq\8c{r\81ym{xn\88{t{\8d|\89\93t\89\93o\88\9cs\86\9dr\8b\97y\82\95y\7f\87p\84\8fu\85\84e\89zj\86}h}{sqvnovryy|qy\87qo}l|\7fqw\83\87x\93\82{\84\84\80{\8dr\84\8ew\81\82uw\85{x\8c~\84\8fo\81\86sz\8bsvzpy\86n}wq\89\81`\90\80d\95~^ \7fX\89wg\83v_\8a~^\83tP}uZ\84nO{oSyk]|~`\80\83S{zV{w]v|U~\80\w\87\\81\83ex\8cU\82\7f`\85\90_\8a\89]}\8bU\87\97W\88\94R\88\94N\85\8aZ\93\90I\8a\91R\80\87I\83\89K\85\98K\85\9aI\87 D\85\8fFq\86J\81\8eN\83\87>\83\91Mt\8bMk\86Oj\95Te\97Qy\9cVu«Z\82¬Q\83\9d]}¦Zz¢ay¢Zn£\u\9c\v\9agy\8fap\95ct¢Z{\9af{\9fov\97iq\8fbp\96\v\92gx\94aw\8bZw\8a^p\8cMu\8dIq\84Rp\81St\83V\7f\83[z\8dT\85\97Jz\98D|\9c;q\9d2n\906u\83>u\81Ex\85O~\84I\82\838\89\844\81x7\8f{B\8epI\94oF\8fwG\87jJ\8bw>\8c{>\96r6\99l9¦o(\9fl4®e6­r/±a$¸d\1e½g\1d²m\1e¨Y$¦[4\96],¢iA\97{B\92xD\92wF\91sB\95pG\9bwS\90}M\90yT\86\80L\94~J\99\81R\8auM\8euT\8diV\8ekX\88s^\8cl_\87ua\96tf\89}j\95xk\90\80u\9b\86|\8e\7fp\99\89q\9f\84p\9d\88q\9d~m£sx\98\82o¢zt\96nl\99tg\8ayf\87\7fe\8axj\88\80f\8ezj\93\85h\80\8a\\85\8ad\89\8e`\8cz^|\86b\89|c\81\82jw\8cc}\86e\81\8dfv\8bjs\8bpu\86mv\89r\81\87l~\8fa\80\89j\8d\81zYH`XJgSVpWUjQ`bV[k_il^fuYpoZis_gvS[lRcbY]iT^rUZiXWqVen^rn`neotgpxaoz_~q`}gYzcV}hU}fa}d^\86_b\83Xf\83^s~SvzXqtasob|ubzq]zsVxo\{rY\82we\82lZ{l`yy`{zio{mj}wmsznv\82mq\89iq\80iz\8cir\86rz\88up\86ur\87\82t\82\83t\81\90~\83\8c|\84\88r\87\95u\8f\92w\85\9c}}\89y}\86~z~s\87\85r\84\8aj\84\80`\84\80gu\7fpjyinpysv\80rq{kz\82ts\8fyw\8f\88|\8e\88{\84\8dv\84\82~}\88~\83\8a\87y\8a\80p\8e\85x\89x{\8bxv}z\81z~z\82p\82zk~\82^\91|f\93x^\8cx^\85ka\86ia\7fsS\83wWxpQttPvs]\81r^zx^}vSsuWxo_vt]wzh{\88as\81_y\87[\82\90X\81\8dW\81\88J\89\94L\8c\8dY\84\8dT\8b\89I\88\8eF\83\8eD\86\8d?\8e\97:\87\91F\8c\91<\84\96?}\89Mz\8dI\7f\89C\81\8dA\86\8eP}\88Ot\83Mf\8bNl\8fMr\98Zq\9fZv¡Yy\9dVy\9acs\9bhp§[u\99W}\94c\80\8f[x\93az\9aZ{\95d~\98_s\96il\93at\92^}\8a`z\8bgz\95k|\8dis\82_{\80Wu\7fT\7f\84Pw|Ms\82Z|\8dRw\95Nr\9cIy\98Ko\8dJu\939s\85Au\85<svFwxE\87\84L\8a\80C\8b\80B\91\7f;\8ds:\90oA\85mD\89lG\8dtJ\8emF\87jF\90r5¡n/¤h.¢d1§q,¬o"´h ¸e\1a¸l$±b#ªa%¦W\1f\9c\*\9ak=\9al?\99q:\8f|B\97\7fL\94{D¡tB\9cvO\9a{T\95\83N\99\89R\91\84K\98rQ\8fq[\9arV\94f^\8bhf\8coi\97lb\97th\97}p\90\81n\8c\87p\8e\88}\96\84{\9f\82|\98\80}\99\86\88~§x{¢xn§\7fg\99~i\9bwh\9azf\98|g\8cuf\8a\7f\\88\82h\94\86b\8d\8e]\8b\84d\8b\7fm\8b\80d\82\83_\86\81]\8e\87d\89\8bn\8a\88tz\8cmx\84_z\88bz\82b\7f\81j\84\87b\8b\8fc\8f\88f\91\89pZKrV[hW_j`_v`flXejamrcd}Xp\7fYlwXWx]_i]XiTe`S_eU]l_^raoi^urgmdowbxxhzx_utoxpb\7fbW\83e^~uo\8ano\8bei\8cWf~Zq}ZqqSyoT\7fjT}t[\80ya\82nh|r^pof}wb\87k]{ij}zezrruvqpt}v\7f\84gp\85w~\8cer\88jp\88mo\89vm\91nj\94~o\8f}u\8d{k\8c\8dw\87\8am\7f\89~\86\8ct\7f\95p\8f\91t\86\8au\86\91{\86\89j\83\85u\8d}k\81\89s\85\81fozht\82sozuwryuz\81zy\8buv\90\81y\93\85~\8d\8d\80~\91xz\8a\81{}\7fx\88\82u\8c~q\83\80\81|po~zv}mx~p\80\85ruyo{uX\86w[\89i[\8fyX\86m]vkZvzR~qP}xTpwRvx\t{Y~\81]t}a|zUsqPmnYp\81Yt\7fZt\8f`\80\8f]{\91T\89\83Q\85\91P\80\8aE\82\8bU|\8b[z\90H\7f\81N\85\8fF\83~G\82\85<\91\93:\8b\95:z\888\82\87Ev\8fH\7f\87Cz\8eG\80\92E\7f\8cHt\84Hk\87Tm\8aXr\98Nu\90\p\8f_v¡c|¡Zu¡Sr¢]z\9eYx¤]\82¡]v\97Uw\9c\\80\90`\84\89`v\92gu\8bhu\8abt\8cgr\91a\82\91b\83\85n\83{_\83vd\83x]~\83b\80\8bWs\8a]\7f\93O|\91Ty\97Lo\90Gu\98Dt\959v\89D~y9q}IzuF\85wI\8eyP\82\85>\92\82K\94v:\95x:\94vA\88oJ\85kE\8fyB\97v;\9bf6\9em*¢h- k+£v,¥f&·g*°n"µi\1f²h#¥`*\9fd%¬\+¢\;\9dg<\9at:\8dr;\8eqI\90oD\91tA\9f}F\9a\83F\91\87I\8bzI\8axK\98sY\91pW\98gg\9es`\93tq\93wv\8brt\8bnf\9b\7fl\9fwi\9b\83z\9c{q\9e|u¢\83\81\87\85o¢{~²~s°tl£|j\9azh\99\82p\9c\7fe\9azj\8f\82]\93x[\9e|`\93\7f^\94\8c^\88\81j\89uh\85\81m\90~]\92\81h\92\88i\87\86l\8b\84k\86\86n\87\8cf\80|j\80\89l\8d\8c`\8c\8bk\96\82h\8b\8dwTV~Q]wQ^uZfzekwafthd|_n\84fcwdfoeUv^TtU^kVacQjdOhgbhrgmmloq_ske|`n|fjsqsknremtii\82rs\83xu~hi\85dl\87_i\87Yn\80V|yX|pSznSzt`~xg\7frhpwcovdvz[\81n]\84pk{up\7fvqqz|jv\80p~\84my\88r\84\8en}\8flk\93gj\85ru\91lr\91uu\8b}j\8e\81s\88\89o\82\88s\81\8ex|\8cj\85\8di\8d\8bq\90\8cw\86\8al\88\8bi\85\82n\82\7fk\85\87p\83\80oz\7fvp\7f~vyuuuwywz|\83\85v\87\83\7f\7f\92\81}\87~\83w\84\8bpx\84vx\80x\87|y\85\7f}}xx\80uv\82ow\8aor\8fzz\82}|ukxp`um\\82kd}le\82~Zs|NqoOvoFs}M~nI|pPzsZr~Vrw]vmWwpRnyXw\83Qy\82Pw\8cW\80\89W\83\83T\80\87Lr\89Eu\8cJq\90Mm\92Rx\8aPv\81Rz|R\86\80K\85\92E\8b\939y\98<x\8b={\92>y\8aA\81\93Dx\8cGs\86Fx\91Cm\89Br\8cKm\8dKr\96Px\89Uy\8a[w\9cdt\9f^u¡[y\9bT}¢St¢Ov\95R{\99Sy\8d[\80\8ba\81\94c\83\90o~\8cg\82\92p{\8dft\89j}\90`\81\87a\88}h~nc\87|i\84\85b}\87^q\87Y}\8fN\80\90Rx\88Sr\8aPz\92Q|\8dC~\7fE\81u?{x>y\81Hy~T\85\83T\82\81S\82\84I\8d\83?\89r@\84w?\8d{J\93rI\8ezB\98y@\99k:\94x7\94w&\9dl*¨l\1e¢s+¨i*¬e#¯`!®^#¯_1¤^9ªj2\9fg8¢`A\97d<\9coA\92vI\99oF\94|?\97~H\98\82R\91\86M\94\7fR\90tZ\91p\\9ar]\9bkh\9dni\9dtv\91mt\8fli\8eso\97qh\9dyq\9cuv\9cxr\97~|¢\7f\83|\9d\8bp©yq«xo¥qf­ue£pi¨qq¡tn\9a\82r\9d\84f¡xb£rd\9bzf¡\86b\9c\84[\93\85_\88{i\91tc\8cqf\8b|h\8e\85e\92\81c\90\88o\8d{p\85~l~zl\84\81c\91\82p\92\80n\88|q\8c\88rQI\81Y[\7f[a}Zc\89Zl~Zs\80`ez`d\81^l\7f\coZ^yi[nbfifcsQdhLkfSer_htkrvfylcwml|tqxlxko\80xf|xg\7fss\84\80}\87m|\81qp\81cu|aysRuxU\84qT\80nZxqV\7fp[|}ZtoglsXt\80a{wh\86pw\7ftm~lsttrry~tm~jj\8euu\92t|\8fwt\86kx\83~g\88tj\8fwq\92\7fi\89{g\87\83iy~d{\85t\84\8ar\8f\8bk\8a\84d\8b\81m\88\8dq\8d\80j\8b\87m\8f\85c\88}q\81{u|}\7ft\82\7f\80w\85w\80~\83}\81r\85\7f{\84\8b}\82\8d\85\81\80{\85\81}\85z}\8foz\8f{p\90y~\88ow\83zwyoxst\88w|x\83w\83~ttm~v^|oc\88n^tsZtpX}~]ryLrrRwwHmvJ~mMutVj}UopUy|]wkYhxYz~Tt\80Wv\80Ow\7fIz\82Jz~Tv}Dp\8aDo\84Ro\91\l\89Lt\8bG}\88Ez{F\8b\80<\84\92@\87\94A\82\8f7r\8cCx\8b@w\88Nw\97Fp\87Pk\93Is\8dIr\8eQv\91Ps\91Pm\90Sq\83\j\8e`l\8eUq\9dPv\9fU|\9eJu¢O\82\94J\88\95O\7f\8a`~\88c{\8fe\8b\9bi|\98r\84\8diz\8f_q\85gy\88[x\83i|pf\8api\8cvc\86\83l~\83Xt\86Sz\8f`\82\83\|\90Yq\8eTv\8cY\84\8fP\83\82G\86w=\88w@\85\7fH\81yL\83\82L{\85U~\90O\8byP\8dyN\84vJ\90\84T\8bwO\9c\7fD\9fs=\92n-\9fz/\9ao*\97j,ªt(\9fi-¬f'¦k.¡j)°]1«c9ªn:°l6\9f^;£[H\9bjE\97o;\99eK\93tK\93nU¡zG \7f\7fN\9d\82L\8esM\9br[\91pe\94wo\95mg\98mr\9aqq\9esj\99{w\9but\95vo£v\7f\9f}z§\86\83 \7f\81\9e\8b\82\83p¤}w°tc¦\80m¨qj§mq¡yk¡\8czª}q |k§wc¦\80k\9e\82f\95\82g\94ye\8a|i\8cwh\8bre\96yf\8f\81_\8f\89k\8e\88k\91xg\85}r\8e\80s\8c~n\90wm\8c\85h\9a\85x\8a\7fo\X}eO\84ja\87jh\86lg~do\84ao\80\g\83]]\82[Z}eaxdbsljwheqbmhXigZugZptfk|ksrtwuu~qrxu{ysy\7fn\88zl\88\83s\83{y~x~tu\7f\80cwzawuV}pS\84nS\89zX\84x\{w_ux[poaup[v}d}|duws~ss\7fkltcpgkzkk\86qj\8bpv\83p}\8ax~\81|w\85xx\8epj\92jd\97va\8c|]\8c{f\80\84^~\86b\8b\81b\8f~j\94\87d\8e\86h\93\82l\95\82h\8b\8am\89\83c\88~k{\7fnx||x\81\82\83\81\8a\85\83\82{\8c}\85\83|\80\84y\7f}\87\89\86|\85\8dzv\90vy\8fsv\8dto\90oq\92wq\88x|\85vq}yt\86uy{\7fzy\84{v\81qk\87s\|mYnl^mq_wvasxUl|TsyHpqOupHojKsrVyy^oy\ezcio]sq^xtPxvRs}Gy{Mw{Pr\84Vg\80J^\89Wf\8aUo\93Yk\8cLn\86D\7f~I\8c\87M\87\88B\82\838}\8d>y\8dCz\95Iu\97Rn\94Mf\88Nl\8cSo\88Mj\84Ot\80Mu|Iw~Pm\84Pb\8fWh\89Sp\8eKs\95Tt¢Yt\9eLv\99S\84\95T}\90b~\91b\8b\96q\87\99n\88\96c~\8dg}\82`s\80]ruX\7fwa\8axf\88n]\84kh\82sf\80xj\84\8a\}\8d^w\87_u\82]|\8dd\80\86e\85\86\\8b}S\8atE\8bnN\89wS\85\81N}\82Tz\8bJ\86\8aM\8f\82S\87\81O\8a}V\94\84O\95\82S\9bzE p6\96r0\9du)\96t0\91o4\9ck)¥r%¦p"¨l$\9ep0\9en.¨h0£fB¯mB§lB£aE\9ea@\9d_A\9fbB\9biP\9coZ\9cmT\9boM¢zD¥\82C\9cxQ\91w^\96|i\9btl\8fwr\98pn\9dst\99\7fj\9d~n\94}s\9c~}\95\89\82\9a\88\81\98\8f\8b¥\8a\83¢\8e\84\8f\89\83n§{g¨\7fg¥xo¨\87\84\87\80\81\83\82k\9fzg\92wk\96n`\91rX\9bq_¤v[\9b\7fg\9e~l\97}j\9c\84w\90~r\8dwm\8dsl\8b\7fs\93{r\90\84v\97\83v^T}kS\85qU}qbz^a\8b[j\84dp\86hk\86ae\85[\}cathrvohnfmkbnoghq]qkipwmvxjz}fyyry\80y|\83xv\80y\81}~\84}z~z}|w\7fy\81to\83xe\82yd\84{c\85{\\82v\\84{c\87}ayx[xpZmxkvya{\81b}\81oyznx~krlpqwqnm\80nv\81ss\80wy\81x{\94nv\8et{\8dws\95ei\8cgg\86to\91xo\84zf\87\80e\8b\83j\83v_\93\89^\88~c\89\81l\91\8cf\83\8an\81\91i\88\83c\90yb\84yo{\86t\7f|x\83\89}~\8a\81y\8b\88\82|u\87\86{\7f\8e{\83\8f\86z\89}p\90r{\8bpy\81ur\8dvu\88m~\88w}ztt\80}q\81pi\84|k\81zro\82dg~ijtoWgq_fpPp|WxyNn\84Nq~LhyOihDooKukVjoXou\jn[j{Tq{IytFj|RnuLyvI|{Pr~EfuQ]\83QZ\87Kf\84Hl~To\85N\89\80Ay\82G\80\88My\86Hp\8dEx\96Ip\89Lx\8fQm\92Um\93Om\93Xb~Iq\7fHn\86RrtHs\81Ro\84Qh\84Pv\8eWo\91To\98My\9fKr\91Oz\91X\90\87Z\81\8db\8a\94g\8e\9ed\89\92h\80\9cm\88\92g\85\86d|v[\81\83b\85te\8dti\83{f\86miws`}\83V\83\84Q\84\84]x\82j\7f~fy\82\\7f\88[\82\84Z\84\81L\87tD\89}R\85s\{{M|yP\7f\86N\86\89K\86\88O\91\82G\86~R\88\83Q\94}H \81F\99oA\91y;\8fl-\9fu*\97t&\9ft&©h&±s)¤y%¢z'£v.«a6¡m4°aH¦m>\9cb<\9eeB\95h9£nJ£kS\9alO\9crP\9btD\9etK\9c\7fL\96~P\94~[\97xi\95\80f\8cpk\8c|f\9erx\90\7fi\91~o\95\81\81u\9f\83\84\94\8b\87¤\87\86­\88\90¢\86\8b«~\82£\82\8c\87n£rf¡\81j\99vi¢\82o¯|g©|p¬\83\87\8a` uk§tp\9f{i¡h\\96ih¨s[©{c¥wn¢xq\8fzv\90wg\8c\87m\8e\80r\93tp\93\83h\98\85x\8e}w\93zvm`\83l^\8aj^\8dgY\7f`f\83cl\83bk~eh\88f_\8ece\82ee|qt{jl{mrkaxgdlpantkwx^xz`\7f|a\88\7fl\84\87h\81\89pu}|~\87~\84\85u}\83w\86{x\85\82qy\7fkk\86td\83{b~to\8ark\88ub~ld~s\z}Zrvft\7fl\82xi\80|r\83yivvyszyr{yykuzos}zzp}\7fk\84\90js\8ckn\91in\94pj\8dfm\91qm\90{u\88zk\87xw\8a|q\86zj\8e\87a\8a\85f\8d\90^\85\8dm\82\98s\7f\92q\85\84i\89\80i\80{kq~j\81\82j\81\7fr\84{\81y{}}\82\7f\7f\82\7f\86\8d|\85\8awz\8dxx\80\81\7f{z~}{s\82ps\7fno\83pu~|n}{g{qexkmzwnsthkyidqhefsXe|QpuVu}Uv\83Nl\82JfySkmKkpKnp[ryVt{\rwNtvJo\80Gh{Jj|OtnM}xFxtBkvNbwKhwN_\86Ji\7fMiqWz{I\82w>t\81<uyGo\7fFo\92Es\8d?i\83Al\90Bl\95Qd\95Uh\8bTn\8dVk}M{\85S}{W\80zMqyBj\87Rt\85Tz\8bPs\93Nu\97R|\95]\82\88T\8c\88T\86\8eT\84\92_\88\98h\8e\9bp\8d\98n\81\8bl\80\88q\88|i|{c\7fze\8e\80a\8dwj\81yh{r[y~\\81\85Wy|cv\81e\7f\82e~\85`y\87]\83\81R~}K\81kH~zV\88\7fT\86\87Nu\7fJy|F\85{L\8c\82S\96\82J\90\85@\88wD\93zF¢vH¡oF\95y7\9b~;\96s4\9cs+¤p(­i+³p2­l+¤u+\9fx/¡j:¬\B®_D¯`C¤gA\9eb>\98h?\94fH\9feD\98q>\9csI\9etI¦pG\9bzN\9azR\9cwb\96\7fd\98\80Z\93y`\90re\93ur\90\7fv\96\86m\9f\84p\9f\80v\98x}\98|~¤\8c\8b§\8c\8e¬\86\8f¦\88\84©}\80\9e}w¢\83z£zt¥\87{\9a\85p¨ym§~b \80\82\84\81dª|n\9dsj x]£s[¤wY¤id¬wp¨tm¥lo\98ls\93mq\93\7fg\99~q\92\80p\90\88u\98\83t\95v~\98x|cS}g`~sc\7fjV\8bmZ\8ckc~bd\84lp\84ld\82imwlo\81nm\81vrss\82vd}piqspxr`\89~d\7f\85_\87\8c[\81\80g\83\92j\8b\82m{\88q}\80n\91\8bm\89\86q~\7f|\7fyrs\81}n}|f}so\83wn\89ug\81uo\83lh\84uj\85tb\84k_vyb|ui}xlzyftvm}tw}qlvfyyyy{sux|\8ah\82\8dfw\8buv\92sm\87mo\92rl\89lo\96ym\94\81s\91|p\92zw\95\80c\90\84\\8f\89c\8e\8eb\89\8bh\83\91g\88\95u\83\8dk\8d{n\80\83cryo}w_~}i\7fwwt\80~wz\81~\81}{\85\82{\88\82\83\8c~t|\81{}~w\80vr\86ro\86oo{vx~we\81vp\7fgrtqephdimkgotfrvjixYd\7fXr\7fVq\81]e\86Ll\84Op\81RnvDlmKqv]uoSvyYxxOpyPq|VdqGpsKnkSo{Srv=ouA`rFg\81FgwWetLhiLloS|~A~~;q\80Iu\8bCo\8cAo\86Cw\90Cv\86Cd\94Ek\8cIr\88Xp\84Mk\82Ru{Qt\88Tz\86Pv\84J\80~Mv~O\7f\83Sy\8fS\88\90V\81\91\\8d\84T\8b\8dS\8c\90^\92\90Y\91\8e_\94\96b\92\86g\86\80c\90\81f\85qe\91{j\81ss\80{b\8f{n\88pdxukszWx~_u\83d{{d~}ezzb\84t^\85v\\87xUzrM\88oJxwM\85\81V~rM\81tK\89xS\8fxE\94sM\8dp@\8emD\96lH\9dsC\9c}K\9cu@\9ewA¢t1¢x5±m(¶s-·i:¯g1§u4§q4§j:¢`?­hI§gF¤mB jC\9efB\9boA\9ffE\94qM¢tN\9b|F¨~P¢wU¡|W\93xY\94\80c\95\80[\95\82]\90\86o\96\80w\91\81k\8d\84r\99\90y\92\83s\8fzv\96\84s\98~\89¤\82\81\9f\7f\82\9d\80\81¥\86\83£ztª|}¦{v \8cn\98\83q\9a~c \83\89\83i¤}i©\89c¯tp¤ro®\80\80]®}]§ij\9dni¡kk¤jn£nq\95}m\9f\83h\9e\82q\9fwh \87q\97}w\95\82\81\96z\87lS\83mZ\80oZ~oZ\85kV\83m^\89uj\88ri\82um\82yjzym\80xrzn}|o\80ul\84rr\83{n~|_\89}Y\83}a\8a\8cj\8d\90b\90\94d\8b\8ei\85\89b\85\81l\8f\81o\88~t\85\81q\82\7ftswvxywn}\82v\81|x~tw\84np\89lo\88mg\84nd\8aph\83jj\83l_|wc\85sd\7f|dysf}sh}psxmqo{xtsyh|\86l\83\89r\7f\8dv\80\84mx\89qq\93tm\93\80p\8f\82k\96\80l\96xl\96\80h\93\83c\8f\89_\95\88^\91\91l\8d\8bl\86\87r\81\88n\83\86g\81~h|\7fhs\88bt\7ffw\85ps~~r}\83v\84\88\7f\85\85z\93\84x\8cwv\89\82q\83~z~}s\83}i\7fqc\87ti\82mt\83poreiyjcnsnjnrplwmgs_j~ej\80^_\82Wc\80\`\8aRi\84Qj}Lt~KqzStzPk~LowVvq\ryTk}VasPeoYdwSguSe|Hf~E^vM_tM]pTkiQqpOmlRutFps<{x=}\84Av\8aG~\93Eu\92Ir\87?k\88Bp\87F{\90N~\85Gx\88Ou\86Iu\86Ss\88W\82~I|\80D\85\88C|\81Q\81\87P\90\82`\8e\7fb\91\8cf\89\88`\84\8fd\90\8e]\98\88e\8f\8ae\8d}h\8axg\8aye\93to\8auv\88lr\8cnj\81seyt_|ni\81ydxzbwyj\82|m{}e|qhuxfvp[th_\80oR{rPymV\80tP\82uQ|{T\84vS\95|T\94uE\9ezE\99n>\92yG\96vH\9dsM\95nC£o:£p8°n>±y6¬r>°p4¬u:¢h<©l8¤e2©c?«f<¥^E¦gD¬lD¤h;§p:\99iD\94mA\96zJ \82N\9b{K sR\9dyX\98}X\8d\8cY\90\90a\93\87c\91\82g\96\88t\91\8dk\8b\8fl\8c\87l\91\8ay\8b\7fw\8d\81w\92\8a\86\9a\85\85\92\83\85\99\85\84ª\84\80v\9d\85|\9b\81r\95\91\90\84a\9f\88b\9a\87j\9d\85\85\84f¥}b©{j­xm³\80j©vl©v`¡j[ n[\9ah[\9dmh\99|h¦}mªxq\9f}n§yj¥zt§z|\9e}\80lW\82gN\85pT\8cjc\7ftd\80n_\8dgl\81gg\8bkr\8bxn\88lx\7fvxsw{\81u\7fzh\85\80k~\82a\89\82k\8f\86g\87\8eq\91\89l\86\93j}\98b\80\86h~\91q\8d\85i\91\8fw~\80l\82xz\85\82tvysw\7ftm\87~x\8au~{kw|qu\85nk{zcxmr\82mk\84lnzfswmc\81idrsdzsq{{v\7fvn\7frsoulpt{qs~n\81\80i|}uu~q\81\83ks\86{{\8f\81e\95\87g\91\85n\91|c\9a\87k\91\8dh\93\8cf\8a\8b]\8c\83b\86\8bw\82\8dl\88\8er\88\8ap|\8c_\87|c\81\7flx\87iq\85h\83tzu\83\88\83\8f\88~\8f\84\7f\95\82t\97nt\92vq\8fzv{~o\87wj\86yr|md\81wdtylmbilbiteinjsnpr^fmeivai}S[x[`\88Sg~^_zNlqZi}Kj\81P~qDk{Kp|^evRk{Pd\7fMbwPexOfqPgpJh|?^w@[qHcwR[oMbqMlnSnzNi~?o|CxzLnvExzRn\82Ds\8fEi\82Me}Mp\80E|\8aIu\85Jv\7fRv\83Tp\84Sr{T\81zG|\87N}\81J}\7fO~\82N\88~T\92{i\8c\8bW\85\82a\92\84X\88\83_\94~g\8b\88l\8d\7f_\89}_\93mr\8fve\93gr\8fjo\8anh}ro~{f}lb\81p_o{U{ob\8bsj\84sa~k]\80s^zia\87s\\82eQ\86uO~rJ\8cqI\8dmC\8asQ|lK\8dsN\9aoF\97kO p<\90pA\95{B\9dtA\9fo= hF¡j4¡p1«s*«p:°k?¬h4³d;¥e@\9bi0¦f/§d>¦e7¬iC¨b:§iG£nE\9fiB£kF\98\7f@\95{B¥qV£zN£~T\9atW\94\88W\95\82_\9b|a \86t\91\7fq\96\80{\9d\84~\98\83y\95\84\7f\8a\85r\88vq\9a\88\82\9a~{\91\87\83¦\7f\83v\9f{\80\9f\87\80i\95\88\8a^\9b\80\8d\89a\95{g§\82\80a¥vl­vq£ta¥|h³v[°}Yªq^¡qi¡ej¦ma\99nc«ye\9fqg£\81v\98rq\99p}£{\80\9dv\86kO\8deQ\92oV\90je\84sg}qh\7ftf\82lr\89jt\81hx\88hw\7fnw{x\81\80r\86zu\88\7fg\86\84i\84\7ff\86\88f\89\83q\88\88r\88\8em{\8epx\95p\80\8es\7f\91p\88\8b{\81~ty\80t|\87x\81\89\7f\80\8awp\87o|\83nv\86mwxjmvtg~vn}vo~wn\8drj\8bgu\7fjv\83euvhzv{qyuk\80xtvyltuqu}rxx\84jw\86gv|fx\88sz\85uq\85vw\8d\83q\98|b\9a\83^\96\8ek\97\8co\98\8ek\97\94a\8f\83e\8e\81i\87\82p\8a\91q\88\91k\82\83g\8e\8bd\88\88q\83\89py\8fo~\8cn\82{m\81\8c}\82\93\84v\99yz\99s\80\9dtu\93xz\94|y\83{o\80km\89okwfeurmsrltlgk_npdkx^woivcqv\dwRaqWX\7fR]\82V[tRaqV_s\krYiyUvvIzmUpqWmoVfwG]rJYyV`~Z`vPkt?ms?`z>]zF^hG_cKfgU^{XdwTjvHd~UozTzvQwyT\80zVx\83Ox}Np\7fXm\80Zx\85O\80yR|wNsyRtwV\7fvMy\84H}\88B\80\83MqtKquM}\85S\88\83`~\7fS\84\88T\84\8bO\89\82U\84wb\8dth\83lo\89pe\8ejf\91il\92j^\8bu`\87na\87wm}nn{tazl^vrU\85pX\82rZrnbsvc~w]\80l^\81dW\8beT\88oH\8arG\94xI\91uD\88oI\85iJ\8dbP\92jW\93bM\9afF\98kN\9auI\9fv@\98q;\99c9\9ce?¬]/®d-®h4¶i=¾g4µo8°l9\9eh7®k;®a6£i7¡d6\9ek7\9dfC\97pC\9fmM\97mC\9ftD¨mR eQ§lR§vZ¯pb¥u]¥~e\99xb\93|q\9d\83z¦z{¤u\83\9ez\8b\9dz\82\8fwv\90{w\8b{\7f\8d\80\82¡\7f\81¤\80\81w£{}¢\8aw\9b\8f\8bc\9f\80\8a\85l\9d}h\9c~o\98wo\9czdªrl¯nj¦y^\9exa±zf³w]§jl\9clo¦qt¡ok\9etf¤hm\9djo¢tw qw\9dt{\92z\81\8e{}mX\8enY\94fX\8fif\90rh\87mo\84ft\86or\84ft\8b`z\8fi~\89mozsy\88dw\8cp\82}r\84}j\86\84e\82}j}\8az\7f\80uu\8exr\88lt\97t}\9cp\7f\93d\88\8ery\86hw~mu\82|\81\87xs\88qm~jv\88jq\82wx\7fhstpjquexpu\83vo\8cpw\89pz\7fkq\80m~{pqvurz}wsrr|{sly|jw}pyxlv\83rz\80u~\81vv\8cm\7f\88vy\82\86u\96\88i\93~`\8f\89h\9a\93f\9a\91g\97\8dk\99\8bf\9c\7ff\8e\92o\90\8cf\96\90o\84\82g\88\8fg\90\8ch\81\91u\83\91|\83\83{~\87\81\83\91~{\9c\83q\9a\80y\97zx\9dmn\95pr\91l~\8cml\80nj~^fw`pqerzitl`ojktlf|z_xxiwjq\81ck|gk\82\]~^f|Wj\83Vf\81[fuaryXm~Mx}UqxTf|QdoRYrE[yM_{NXuUk|DkxHtmH_uJh\81FelVigTZrPQ~KY\82Mj{LauPl\7fVysR\7ftItrWluVo\80Ovx`r|Mx\83S\7f\82IzzU\86xZ\84|X\7ft[{\85Tv\81N~\86RtpXyzX~rNw\80Q|\85V\8avZ\8a}Z\81sb\83mZ\88i]\84rWyxU\86ui\8aoa\8cri\87t]\81v[\84nq\84~l|l_}{^\7f~^{rP\88}R\80pOzu]}kY{nP\89nW\8f]O\96cS\8eeE\89vM\8asM\94kD\8cjI\8ajL\90cW\9fgR¥iO¢cH§l<£d9\9cf2©n4¬q9«b6­n7¯g7¸i<¶lAµo9²a4£c:¥_/¨]@¢a=¯[:¦b4\9deA\9fbJ¢_K¨gN«nG£fJ¦fY«qV¯mN¨u`«h\¥kd¥p`ª~w¡w\82¢w\82\9dt\88£s\80 ~\81\9dzz\9a||\92xx\96y\80\9ez\82\9e}x£\80\81\9e\84\8c\8c\7fi\9d~`\9dyl¥\8an¤ym¦xm\9asd\9emd©pe­mm£u]\9dgb¤ig²xi«vj\9blj§er\9flk¤rq\9cqz wq¨x\7f\9bs|\96w|\97\84w\8c\80\82_c\98ea\9fv`\98u]\94gj\9cie\98us\90ox\8ag\82\90d\7f\89n}\88lr\87ao\8afv\8eh\85\90o\8c\86s\8c\83k\81}gx\83r|\85w}\84tt\87n\82\94q\80\9art\94ex\89h|\85m\80\84k\84ysy}o~\89px\85vs\89pv\83xlrsoqll~ug{qm|po\8bh{\8aqx\81tszj{tm{wrnvnsxwrqyrr\81~pxwy{vq\80\81{w|wv\8avr\8aos\89|v\87\83y\98\7fl\99\89a\98\95^\8c\8f^\98\8f`\94\8cg\95\92\\9a\89\91\94n\9c\90g\96\8fm\94\91m\86\98n\8d\88y\87\87\7f|\8e}\82\8bx{\99\7fr\9c\84t |r\9fwt\9arv\94f|\8aks\89lq\84gs|`w\82dn|mrwersljvequd}|czvpukm\7fk`|]d\86]`|]azYc\84cj\7fbmsfru[u\80Nq\7fOg\7fIgvQZzP[yIWoK[uMYwKdwBoxEjoKbpMcwVhrOakQ[oMTvK^yJ\\81Rk}TpsLtzK}qMruPowLfq\k{ZxvXz\80T}wT\7fyL\82~O\87}Y|\83S\82yZz\7f^~|Ty|PvoTulLrrMrmY\7fuZ\7fh^\7fk]vlb~nY\84iPzqT\8atY\88la|kX\7fj_\84njzvcwxd~s\\87qW\88zZ\89~N\88{O\86|M|tQ\85oT\7fiL\86`G\91aK\8e_M\94iB\9adI\94pG\99eR\95]U\98ZX\92]X\91\U\9e[J¥[I¤g:¦f0©b-¢f,ªm5°j5°s7»v-µk4¶j9¬b:§_:¨Y0ªd>£e;­h4¯`2¯d;§Y8\9fYB§bI²bU±lT©mZ¬cO§iR²cS¨__¯j`µtg­po¦x~¢r\7f\9cn\84\9bz\84£~\84¡v|\97}\7f\93}z\96us\92y{\9e\80v\9fwy£\82\84\88\82\87\83\82\7fo§uw¤os¦jd¤mf¢tf¦ll¦dc«e^´l`«re¬ri«`eªbb `m\9aor\9anw\9bhr¤pv\9c\80}\94~y\90|s\8f\80}gd\9fr]¨mh\9ar\\9bq_\9a`j\8bqo\93hz\86ip\92nt\8dmo\8dlo\87hu\82q{\88u\8d\84x\87\8ed\88\81m\87\81q\80\81g\8a\80m\84\8d}v\8euw\94m\7f\9af\83\9bl\84\87a\81\83c~ynw\85hy~nz{ts\82ou\82ss\8asq~nvvyq|nawnkzjk\91du\8eqx\80itycqubvxiw\7fvxvwqqwwk{xqy|vxqyjx\80o\85\83r\8bop\8ali\8bqo\93\7fq\9a\8ag\8e\89j\94\8bV\92\8b^\9a\89Y\98\8a_\99\89`\8f\90^\96\8da\9c\91f\99\94k\96\96h\8b\9fs\8a§l\85\90o\93\88|\83\87{\7f\90z\7f\99\7fu\94}\7f\96qs\9az| h\7f\91lp\8db\80\8fgx\87a}}hvynp~_wokzjemtgl\80c}nnqhp}fk\80nd\80di\8bkb\80gd\80Xn|gr|gjqbwz`t\80Nh~KgxI_oJhpPYuUVzOasSWjN_u?jsMjqIhjJgkRYiQdvN]nHUvLY\81M]vJ_|ThmSmnJ}lHyxHmvJz~St|Y}~N\83zUsxN}vS{\7fW\84sV|tS\82rYwnY}t\yf]~v^ygU\7fn]~ocxndzqf\82cd\83kc\85iUxr[vqX{aa\81lb\7fgd\7fm\\82{auvp|u^tja\80zQ\88rS\8a}S\84|L\8axE\7fmU\89jV\80_N\83^T\8bYQ\90]H\95h@\94m>\90qF\95_H\8biJ\8fWU\8eXP\9d_F\9eTJ\9f[B¥oF«e7 a1¦^5¬b-°c,¹d8³j0¬b-°Z7¨X+¤S'§_,ªU.«W9°[2¶Y1§`7°^0®]=\9ciCªeS¯bG¥eL¢eP¯bQ«nV²nU­l]£qa©di\9fe{¤kt¢v}\9co\80 u\80\9au{\98y|\9dt|\95u\83\95w~\97us\9epx¥s{\9ew{\9b\86{¤wiª\85\84a sp©\80p­vv­ez©nl©pi¢j`£de£bl®`e§pm®ah¯hp¥]l«\y\9edr\99^~\9ecz§fz©ct\96yv\9c~}\8fyt\92v\84ma­v`¡k_§oa£hn\9dhn\8fdz\90ot\92ov\97rt\8fvl\91hr\88h\82\87s\82\89o\8e\88r\8c\8do\84\93h\86\94f\82\97g\8b\89h\8a\8et\81\95j\85\95j|\9da}\93g\7f\96d|\8dfx|j|\7f_~\84i\7fxrrytw\7fuu\7fqq\80nlztesliskmwmh\8cnp\8b`}\85h\7f\83dq\7flv\80gr|nwx{~pnzrlo~rz\80jvsm\84rg\84\82k\88\81w~qo\8b{i\92wr\97{o\93\8e]\97\8c[\98\8bc\93\8a^\9b\91^\92\95f\94\98g\95\95\91s\9f\9ao\92\93m\9a¢s\94¤z\8e\93q\8f\93p\95\9bx\8c\99t\8a¡z\7f\9d~u\9crv\9bkr\96fw\9ee}\93`\83\8dg}\85_\81\8aes\8aft}du\7fmtrpr}huyp}piyegxmp\84jl|qc\80gfvda}[bw]qnctndo\7fYqt`kmVnmUfuIc{FbqP]oPbnI`iK[cH]hTmmTccOafG^mNZzJdtP^vNd\7fUcyNa~IdsKyvP}xT}uP|}PuzOs\7fU\7f\81Q~\81S\81yYvySs|\wr^qo^{o^tmX|f`\84d_\80k`zie\84me{bg\80eg|f\\81_^\87k[\84fb\83ei\81cd\81jn|fkwkk|ujupnpwnwk`vi_}eQ~qR\81~S\80}P\8buL\8ajH\82_X\84dZ\8biS\91_O\87]G\89fM\91jQ\8deC\8d_D\8eeJ\88ZI\8d[H\9caO\99^D\9ajD§iB¤n?¦c/ª_1£U+¯`2²^/®Z/²b(¹T(®Q,·X(¯_&§\*¥T'·V)ºU.·Z)®a1¨d> iE kP§cK°fL§eF§eG®nWµh^ªid®gi¦bi©kp¨nx«w\83£q\82 s\81\9fv\7f¡sq\96ls\95hw\95q\85¢kx£qs¢zw\95{v\97\82s\9dyf\9f|k¢yf\9e~e¦rk®otªho¨bq\9eci¤`d¨\c°cn¦hr¢mc®ae¨hs¯`}´Z\80¬X~­_}¡i\81¨`\7f¬cv¥jx\93p{\94pw\98s\80ie h^\9fim¨io¤uk\9cm~\93v\80\94yy\8f{r\99vo\8eum\98ar\89p}\98hu\96v\82\8d{\8e\91u\8a\97o\88\8d_\87\92b\92\94`\95\90i\8e\8do\7f\91o}\9fd\80\94c\83\90h\80\82_u\83er\88_{\85^s|qw~ov|go~cnzgjqslyirzro\83ql\8a]}\8bbv\87ao\85joyju\7f`x\82esum\84\7fjt\86o\83\86`wwlv\81n\8b\82o\8d\7fk\85\86{}yt\87\7fx\91us\8c\85n\8b\87f\8f\83W\95\86[\9f\8a\8a\94f\90\94b\9c\8ei\98\95r\97\91y\9a\91m\9b\98z\9d©y\91¥|\8e£p\96\95}\85\9b}\8d§s}\9cv{\9bwr\97k\7f\9eh\87\9bj\8c\92m\82\97[\7f\8a^\80\89gy\82bw\87h\80|mzxs}zjvyh{fb\86lq~dsz`rzeqzcon\orfoifeuV`kdp~`en]ewakx\\rWcnWbdN]gJeeRhcNfcWicLefNgsWapSYkQUrIdySfqTexUkk]mtTdwKmnKnvLyzIk}MztHs\87T|~Kt\89Rq\8aQn\82Sx{_l{a|mR\80pW}lZ\83X`\88ha\82a[ylf\85d_\81`av\avY_\83cZ\89X`~Za{[h\87_f\7fiarnfyugvlb~wjnnitq_|d\~m_xnU~sZ\81{Q\88jF\93tP\8flV\82kW\8bfO\97dQ\97_V\8bfQ\98bJ\8fcI\8a]G\9c]N\94WT\91^F\9e_E\9f`D\96f@¨i;¦fA Z:­W5¨W4¨P'´Q*ªX$²Q/¶R*¬V °Q*¸\*¶]\1f­V#¸V(»K2¾^6·d8³_;«]:§\?§`J¶kP·jD¨mZ©vR¥o[§ob¯jh¨boªdl¹ey²op¢k}£jy zu¡nr\97tz\9bv~\9bz\8a\98s\86§s}\93ju\98sz wg¤xq\9cve\9evq\9eqo¨hm\9efh§el¥pf©`f¡Ye¨\l¯ho¢gl°ku¬dr©ar²a\86°Y\7f¤\\87¢f\82¦f~\9db\84­b\88¤h\7f r~¡n\80\9fo\81hh¯kbªwm¡rv\9fz\80£t\86\97p\80\94v\82\93v\84 wz\9brv\97ju\92c}\92mt\9bq~\9dt~\95r\81\90h\8f\8ea\8c\8bd\90\8d_\8f\91a\95\89o\96\94k\8d\93s\82\8bm\81\8ec{\8ce{\89kv\81al\85dsyfqwmw}cr}dh{dmxlp\82ni\84st}ht\80]v\86ax\86bw\83ay\81hr|bt|a|\82my\83b|\83b\86\8ad\8a\8ci\86\85f\8c\8bq\8d\86r\83\7fo\81\85qzzv\81~j\8e\81j\8d\82f\8eyd\94~c§}]«\8d\85h\97\85m\94\8el\97\92\8cu\9e\97|\96\9as\9b£p\91\9fu\98¢|\8b¥r\8d©n\89\9fo\8b¡oz¨nz¤r\8a£h\88\9bi\8e\9aj\8b\96h\8b\8c`\80\8cb~\8dd\86\86g}~o|xw\7fmmzkg\83ok\81op}lgw`esdqpbot\on`ir_bkZilTbv_f\80Z_yaho]_vTbeOYdX[dYggSalQkdTjiW]iT[tKdsPYnO^uVep\fyUqk[qj]zl\rqMpfIokMvmPkvQp{Vy\80I~\8cUw\89Zo\81\o\81\i\7f\qyT}lVwhX\84bf\83Zc|Y_\82`f\84ikzfarf\xXdyQ[\7f[`\84Vd\83_d\86dc\85_cubovgklnksserxfynjvm\vh_\7fj[|nZ\85kQ\84jN\8feG\93pP\93oJ\8dcO\8cjW\90aV\9acP\9a`M\97TK\97YT\9bYQ\9aSQ\98QS\9b]K\9a[F\9cfO¤fM\9b[D¨bH§[>±N@¬P1´V7­J-¬V-±Q(½R,»R\1f¸Q\19²Q$¶R!¹Y%¼U1·O1¹Q7¹X;¸^?®_5­i5´dC·kMµbM°gX©p]¯o_°oa·nb´jq¯iy¹hs³n{±cs®jmªrt¦yq£ru¦u\88\9fr\8a\9em\8a\9bi{\97wt\96ut\9dxt ol\95ni\9bsk\9cgg\99go¢nb¡oa i\¥bg¢Wa§[d©ae¨fh¥av±^w¯X\87¶V\87©X\81§Z\8a [\80¨b\80«k\8b f\8a\9ch\83¢v\82¦y\83\98x\84sg¤gl­vl\9crq¨{t\96pv\90nz\96y~\96n\7f\9cv}\8fp{\96`q\91h}\99o\81\99wu\9fuy\9cl\8f\98m\94\98h\95\8fh\91\98d\99\8ea\86\8fo\8b\9au\96\9fs\8e\99f{\95jx\8bqy\89ku\89lw\82it\7fdl~anxdv\83cq~jstnw\81di\7fkuxeyvjt\7ffxybx\86]}\86ft\8b]u\81gy\91fp\8fu\82\8cp\89\93t\8c\8eq\86\8dp\84\88j\8c\8ao\89\88p\8c\82d\89\90l\8a\84f\85\84m\90\90f\9d\87c\94\88h£}f¤\92\8b\87\97\97w\95\9dr\9b\9e|\97\9bx§¨w ¢s\98\9bl\99¤s\8a¬o\8b§s\92§q\89\9fg\82ªo\88\9da\87¥`\89\98_\8b\97^\8e\96Z\89\89e\8a\88l\87\80k{\86k\81sg{w_\80ma\85xZ\84iaom\xi\wjdofaw_qzcfqmio`jsifthajmWwc]rajyTgoOl\Wb_TbsLfaUaeUYaXYePUf\YnQXiWSqUZlPamTpm`qf]ueYrfLiuLltPvkVuwKntMz{Ev\82Qz\8dOk\86Sj|To\7f]wwO}oU{eV\82X`|aczZ\\7fck\85acxa[wae\80c[\80\WxNX\83__\7f^p\86db\8fed\81[j{hnstnzxl\84gb|ig\7fig{dZ\85cc\82kR\8abV\8dgI\83oM\95n]\8elY\86lO\90`R\8a[Z\92\T\96aV\9fcX\99_T\9dVX ]M§]W¤_T\97fJ\9ehM\99gI\9f\C«XD§N>«X:ªG,«C1¡R)©T,§R&°O(¹K+ºS%±G\1c½O ¬M'­N2µM2ºN5½T@°R=¬b2¬ZB³^<»ZG½fM±aY­mU°]f®ed±ik­ge²pjÀohºesµ]u¶_|¹s~¤dr¡l\80\9avx¡j\8a\9bg\8a\9dmv\95j{\98nv\9coy¢oo¤gr¦mk©mt\9e]r­gq¯b`¦b\±Th§]l³\m°Uq±Vg©Vk®Yy©S\80¥Z\82¨Q\81®X\89¢^\89¤Y\8a\98k\86\9di\8b\9bs\8f\9ee\80\9b{\86¢p\8ahg°ll¦rq§vz¥ww§tw\98uq\94uz\8fiq\88iq\8fkw¡gv¡my¤k|¤v{¡z\81\9dk\87\9cd\8d\97c\8f\9df\9c\94j\93\95i\88\98h\95¢r\90\9do\84\93o\82\8dn|\86lw\8cl\80\89k\83zfv\83dr}ho\81ouwl}|h\82sgt|ipyaqvZw}fy\85l}}r\82|j|}f\82\8e\y\90^x\91or\92{x\99u~\97n\85\8ax\97\86u\8d\8fq\7f\96e\85\91h\87\8cg\89\92f\94\94i\98\8cc\94\8cj\9e\8b\80\88\8c\8b\8e\9b\99l\9b\9cr\9b\98u\9a¢u¡§f\93©c\91¤k\8e\9et\8b¤r\8e\9eo\91¨i\95§m\87 p\86§j\7f j\8e\9aY\8f\89c\94\88c\90\8cd\86\7fd\88\7fc\88\84g~}i\85~_\82~U\83yWynbuibnj_hkYnmaxrkwosrtlnnqiermkbvi_nehplmlbnm^nePpnXioRgfQaeVaa\UkQXkZZd\Vf^VfTYmRejYew_srWkrU`kObkUmkSsgMzjPtwQ~wQz{Mr\7fQvv[ryZysMtnOu]T\81]]rZ`sbQzgV\81^a~V]\83Z\\88af\82]^zO\yP\\81[_~`k\87\e\8bY]\82\Ztghyrd\7flcy^h\82`\\84a]xqa|dW\89aV\92jY\8fgN\93mP\89h[\8dpO\8dgN\90VQ\8eU[\8a^M\8ebO\95^O\9bd_¢Z_¡`W¥VK¦XK\9eZH\9eaH¡^G¬]DªW=¡QFªQ@¡C2¤C.¢R*«Q(®V#µN,²K0°C&¹D ±@)®I6ºG1¹D=®@E´HCªV:ªX9¶O8²OE·RC¹^P¹^J´YO»dW·^k·_g·lb¿inºji¼luÀ^|µa\83·f~±]u¤d{¦c\84¦q\86 a\80\98b}\95bx\95o{\93iz\99ls¥kk¨qi¥og«`o¥Tf°WfµOb®Ua¸Sbµ[l¶[xªQv®Rs Qq¨Uv¤Xt©azµ^\88®^\84\9eV\82\9bh\89\96j\8b\98f\8e£d\88¤q\89¡y\8dqe«is¦oh°~r²rxªst\99wy\96w\85\90vq\9cwp\9avp\99kv\9bs\83ªi\87 n\80¡}\88\9dn\86\9de\91\9dm\98\90g\92\9ce\8f\8d^\89\8ek\92\94g\8c¢m\84\9bd\7f\93^z\8df\82\8cp\80\7fkx}at\80`v\7fis~s}ym{pr\7f\7fh\7frl}w_\82\80\|z\\81xj\8b\7fl|ylx\85hy\8a`z\8e\{\99dz\91s\86\94j\8f\92v\87\89{\98\8bo\88\8dy\85\90p~\9bi\8e\95i\90\91]\8e\8d_\92\98d\92\91_\94\85e\9f\83\8c\88\89\8c`¦ a­¢q §p\9e\9ah\9f­g\9d©k£\9dj\8f¦d\8b\9cx\95¢q\88\9fi\94¢f\94©m\8a¨d\89\9a_\87\96d\8b\90S\8a\81P\84\90]\81\90T\83\83f\82}X\87\83\|\86`\86\80]\80yS{yQwnWvg_bsUeoZjobjmfk{gwofizldhkshpmr_slcrhhvmpi`liTmjL^nO_eQc_TTdSY]Y`]^QlXOh[VgYbaUfpUacJsoVinH[ePneEelOmgH}gDreLrfXwrYw\7fQl}R}z^rs]|vRvh^xkVu[PjaPyWW\84T^\83Oa\88U]~T^\8cO`\8aR[\87Vc}Zh\8c\i\85[b\89Na\82^h\83ZqvZbx^h\83^W\89j^~gX\83b`\84i^\80a]\8ekU\8fn]\90gU\8elY\8fm\\90_O\9bbT O\\92RU\97_[\99^R\8fiV\99]Y¢iZ¢\K¦SC¥SN¥\P«eHªZH¥\H QP\9bJB¤FB R/¢L1¦V/´^"ªN%¬U(»J+µA/²K3°L<´L1·K@¾EG¸OC»T?®W<®J8²N>¶QG´UH²IU²R[²S[¿ah¾Zn·lcÁoaÃkfÂ]r·[\7fÁWyÂf\85¶ct¦k\82®o}£f\8a£gz¥h\84¨h\83\9dj\80¡qr\9cps¢gk oh®cl¹jn®ao­Zf²Qg³^p³_k¹^p°Wm¨Kv®I{©PwªVo¤_q§[u¬X} \\84¥Sy¤f\84\95l\85\9cb\89\97_\83\9bh\8f t\91ds¦mq©kq²ym­~o¥z}¦z\85¨w\82\9e}s©}t§~y¡ot¢h~\9br\88£n\87¬n\8f£u\8b¢j\89\92a\96\8b]\94\94\\94\8fZ\93\92]\91\97h\8f\9bh\86\8e\\81\8b]\8d\92b\88\8fm\82\93g}\86b\81\8adt\82g}\85q\83zh\80tl\89zl\82uj\85xb\82r]~{a\86}_\89\7f`\82\89d\83\88g\81\90^~\97g\86\9dh|\9ao\80\90g\92\92h\97\8ft\94\94t\8f\94o\88\99u\85¡n\8b\9ef\8f\9f[\8b\97^\87\88[\92\89[ ~c \83\82\8d\97\9b\9cd¯¡i®¤]«ªhª«e\9f¬`¤¥d\97\9ef\92\99j\8d¤d\92§k\93¥\\99¥\\8f¥\\94\98S\8e\9aZ\86\95V\87\89M\8a\8aN\83\85S\80\8d[\84\8bN\7f\84R~\88X\83\80Uz\82Nw\7fRorOjyRdpM`tM`yMi}XpxSk{^g{nlvponhqweqrmwtmrntn^qvZmkNcfS[_HWcNVdZ^^[[^\RgMTiTWfOXaPViRekUbkGlr<dp@ftLijGnnDr`Io\Vpc_um]tmWxl\vtQyuZ~v\|qcwgXnfLr\O\7fUV\81PYzUg\7fSj\8aOe\88Nj\8aJn\89Sg\8aUn\8c^d\94Yj\91Sm\90Ve\85[i\8c[e\81\g\87\_\81gRz_O\7f]O}`Z\83]W\82YS\88e]\8c[[\8fbV\8egP\92cS\98`_¡U`¥Y]\9eUW\8f_a\91^\\97cY¢bKªTI¬WE²TJ¦^K©bJ­]@ªOB\9fQL¤SL¥GD°R9°L?¦V7¨Y/¦L,­O%µG'»@/¹J1¼D2Å@B¿ICºQ>¸RC±IG³M<§KD¬@D®=E³FM·HP¹Ja¾Pb½[e¾XjÇfoÑ\rÊ_jÉWrºRz¿Z~¿Z|¶`y®f|«b\82®g\87²d\88³i}±_\87¤e\80¢r\80\9emv\9dml¥jn²fkµdnµak´Ov¿Tw¼]r¶Up¶^p¯]g­Vm®Qo£G{°H\80¬Ux®S\80°Q{¡]t ]|\9d]\8b\9b_\89\94f\80\92`\83\9cn\86\99r\8bkq°cq²lk²pw¥npªvq­zs\9fs{\9co}©\81m¯wn d\83§r\81¤r\83ªn\88¤q\97\9dk\88¤l\84\9f_\8e\99a\8a\9dX\93\9eT\92\90c\8c\93q\90¥b\92\9cV\82\98`\84\9b\z\8f^}\92j\83\93aw\83Zt\8fj\83}o\88\86^}uh\80ui\8c\86d\80\81b|yW\80\7fWx\87Q\82\84b\81\91`\88\8baz\8bg\8b\91^\83\9a_\87\8fh\8c¡d\87 m\8e\95{\8b\99{\88\94j\85£i\8a§n\9b b\8c¡j\8b\91e\97\8dc\96\9a\91c\9c\8c\94\8f\92\95\98^¸¥]®¨`©¥a\9f¢_\9f°g\9d¥Y¡­f\94¤a\96¨X\8e¢W\92¨b\84¬Y\8e\9eY\87 Y\98\9b]\91\97_\89\94[\87\87[\83\8bQ\82\84T\88\8cR\87\8cRq\8bZs\7fKo\8cIj\81JomLlnUlvShrMgnYbu_j\82T^yYa\81chygjjalm`mflsmkobll]qhVppXjlNgbPO]\VaVRcaLfU[sTWkRcgRVoXYeJanTecDafDlnMjiCmg@l^OgeTofYqeZkiXnbQsl]tkUniTrs[qkVxgXuXUvbR\86]`\8cSd}V`uT[\82U`\81Xq\7fXm\8dXq\84U^\87\e\8cUk\8dUj\87Re\91Z\\86\d\85Xg~eT\81dF\87_S}YV\88WP\82R^\88Rb\93X_\94^_\9abS\91\`\97Y`¢`[\9aKc\9aYW£[R c\\8bZS\95_V\9fbJ§RG­OH®MI±ZF¤UB¶SJ®[F­GB­JM HB¬DC¸H5§H>¢O;§U1¶K4°O-¶N5¹@5¿H9¾IHÈJ=¼@C¾D=¹K=ÀB>½G<¸HD¯MA¹LG¯PQ®@[ÀPb¼]eºTfÏa`ÆXcÂ^k¹_rÇJpµY}¾S\82¸]v´Z{´g|´]\8c¹e\80¼_~´[\88°l\8c°j\85¢m} f}®Yz³[m±]x¹Xv´Mu­Vn²Ww¼Ws³Ws°Ss®Uy±Uv\9dM\84 J\85¸[\82¯S{¸O\82¥]w¬f}¤^\8e\95^\87 U\83¡e~\96h\8e«i\93ju©fh±mtªf{¤lm©km©el¬m|¦s|¢uq«hy¢c\82ªi\86¥e\8a«g\93®m\96¥j\8e\9ch\87£`\87®U\91¨O\93\9fW\96\9dg\9c\98j\97¤`\8cª[\83¤d\81\9e]}\9f\\87\97g\89\91`\82\8cZw\8fb\85\83_\82\84W\85y_\84~[~\83X|\87R\83\8a]z\80W{\85S\7f\8a[~\8aY{\94]}\94b\89\89b\8b\8e`\81\92Y|\9dc\84£u\84¢w\8e\98x\8e r\93 j\9b¥a\9b¡f\9e\9eo\9b\93\98\99\95\97\94\8e\98\97T¹¢Y¶©b°¡e ¨d®\9fb®¢d¢§U\9bªO££X ¨U\9a¢Q\8a©_\86¡`\88¢Y\8f\98W\91\93^\89\8cV\8c\8fU\85\83Y\8d\83]\8f\8aV\8b\95R\86\89Kp\84Lp\8eRp\87Qv\85JoxQu~WjxSt|LoqSp}\_\80Sg\87[_\82]Ypg^ohWpjajn_nmjco`[kdafkTifU^_VV[ZY\\Q\bZfVSmVVqV_jW^nUcgO`eTldJp`FbiSffIksFfoIk_Zn_biaXs]YtZ[ud[|mVkfKk^Qs`Tm\_tYW\80\\\80^Y\85Pb\84MfvJZuRa|Th\84Hf\84Mm\89Zg~YcxX`\82\i\8dYc\8dR\\87Xa\81b]\87eT\86_K\8dWN\89^P\89U^\8aNZ\88K]\94XY\98]_\97VZ\9eWi \f\9fM[£L`\9fX[¨ZT\99dW\96^S\9eWQ RS\9eLI¨IMªIQ¯IG°US°WP¯GI°FE£=E\9f>H­FAµA0«B2¥H8²U;±Q3ÀW@¿LA¼VC¼QI¼F;ÅA>Å=C»?B¸DF½>IÉJBÃGIÂAK¸GK·?]´F]»I\¼NiÈSlÆKaºMh¼YgÆZiÄQw¸L\82´Q}·VxÀX{®c\7f«]\88µ[\86»W\86À]\86³c\87°b\81³ez®`u«W{®Q\7fªJv¦Jr®Co¬Gm«XxµX\81²Z~ºPx·Ry¯Su\9eD\81¨Kz³T\84½O\7f¹J~³^\83­`\86 X\8b\9bW\95\9fR\86\9fZ\86¢]\8c¬b\96et¨ev§_}¡\}©cx\9fhj´ps¬nx£r{­s{³fy³c\84¨\\8c¯g\93¥d\85¯k\92ª`\90¯_\8f°_\93«U\9b¶O\95¡U\9b­W\9f£k\94\9cb\8c\9cZ\87\9cc\7f¨f\8a¤[~\9dn\86\8bX\8c\8ea\85\94a\85\89]\92\8b\\85\86i\8b\83b\88\84^~\90Z\85\8aT\8a\8c_}\89[\85\8eQ\81\8aX\88\95e\81\8bg\84\8ec\8f\98c\82\9ca\8e e\8e\9fm\8d r\8d¢k\91¡j\9e\9b`\97©e\9e\9ek\9a\9dm\9b m«¢o¤\91\95\94\92\9b\96\9fe¬¢\´²Vª¦Q³§\¨ W©©P¨©R¦®Uª­R¥°O\90\9cL\8d¥Q\8d\9eU\90\9aW\8e\9f\\94\92S\8a\96U\83\8bW~\88Z\8a\89M\81\8dZ\85\8aN\82\8cSo\92Sw\92Sn\8bCl\8aPo\80MdxYhtSpuR_~W_\83f^\89W]\8bbe\7f^_~mYqi^r_hwekitnhike^nbdbgn`]bcTacbV[XYk`^kcaeV\kSZ]_X`Y_]LggMmeIj_KjqRgoMbeIq_OjgWt\PnaXq^WtUYx[Uw[SocRpVOqPOsOSsZ\tZU}SY|T[\86U[yISwP\\7fTeuJlzFm|Gk\82SgyZg{a[\8f\\\84Zb\89Ua\8di`\85^T\8a]U\82`L\8aOT\83U[\8eVb\8b[X\94S`\96Q`¡JeªPb©Z_§I\®IX¢PV\9cYU¥RU\98QS§ZY£TO¬KF¨SU¨ES¶PI±WH¯QV¬KR²BC±DN¢C@©?;­J5©I7³A7©S8³O7ºJCÁK9¿K@ÃNGÃQD¹IB¸?F¶EBÆHR»;P¸GM½DBÇAB²AN¾AN¯K]¿CYÂE[ÌIkÑDf¼J`ÆOcÃUjÈUw½Wu¹Zm´NqÇSy´Q\85²W\8a»[~¼a\7f·\\8e¾\\88¿f\85µ_}ÂWx¾Uu¹V{§Ss¥Lr¨>i·Iz¯Lv©Lx±T|°L|²Tp§Kt¦Ls°N\7f¬MtºJt¸Q|«M\86³[\8e¬a\8e\9b]\94©a\8e\9fV\8b¦^\8a²Y\96q\81«oz¨o{§by¤iu¥dp®d{·kw®czµl|¶]z½\\81³\\89§W\8d¬V\94¦X\8a®]\8e¦\\96­R\94µY\99´V ¸Y¡¬`\93¨Z\95¥b\86¥`\87¢Y\81¡b\87¡\\89\98c\8d\8fg\8d\96_\8d\8di\8b\83b\90\89\\85\88a\89\83c\81\89Y\82\8aT\88\88W\89\89X\8e\80U\86\84O\87\90T\88\8cb\84\85d\88\88f\8f\93i\8b\99`\8e\9ag\89\98e\89¥r\99 o \9f\9f\98c¤¢c¡¢m¨§n©¢n¯\99\9d\9e\9ad© f¤ªc©«_¤¤W®«N¬¥Kµ\9d\9fS©¤M­¢O§¢W¦¤Q¥¦Q\93\9eX\91\9da\8e£X\90\99Y\8d\8b]\86\8cT\8d\87V\82\88Q|\88V}\8eP\82\92Q\81\90[\82\93Vy\98In\94Kk\8dMt\91Ep\83Gd\84Si}Tgz__~\V\84_Y\86Xb\80_`\81bd\7fkb\7fmhyaeznaijeildaakdfmdf`ckg[eca[djWlg]nWa`We_Q^`YY]V[bYhiXffQddSdgJjhHjhOf]OlbMp[Mr`Ys\Xh\Zm[WpYXgP]fSPbRXkMWhJYkK^uQ_{Pb\81Tc\82R]{DZ|F^wKU{K]\83TX\81Mb\83Zh\83W]\83b_\8a\Z\8feR\8beR\85hL\88`R\89[L\8fNO\89TL\8bQZ\8cS^\8dW[\97OW¤L_¨F_¯NV«Cd­Ia¦Ec\9eK_¢VV£OR¥NU¯QJ¸SH¯KM®J[¸NW±UO³LN¶HMµLIµIF®EC¹D;´L8´L9±I5­JD­FBµH@¸SAÄK>ÃPIÇTN¾FM½?U½CSÉFQÃ=Gº<KÀH=¹ID½CHÀLT¸KQ¾?WÂA\ÄB`ÊMg¿IgÃReÇP_ÄRj»Jc½QmÄGqÀM}½O\81´\~ªa\8b°]\88±[\8a¾Y\83¾T\81ÅX\84ÌS~ÂPy¼Os¯Mv±B{°Bq¹Js¹Eq´@~±L|ºRx³Vw®Lo¬Nu¬OqªMp¥Jv¯M~®M\8b©]\8e¨[\93¢`\92£`\93¨a\96±Y\95¬`\91g|°k\80¨j\80«[y¥lwªbv¢n}ªc\81\9ek\7f¨m~¬k\85±g\80¥U\85µO\8e¯R\86¯U\95±L\8b­^\92­S\93´Z\8e­Y\92ªd ³e\9a«d¢£\\90¦[\86©g\86¥d\8b\9dj\88¢X\8e\93[\8b\93`\8e\8bX\90\91Y\92\90]\83\87d\8c\86f\8e\82[\84\82R\89\86V\83\8eP\8d\91]\84\8bR\87\92Y\88\8cS\86\8b_\83\85b\80\87e\85\92]\94\9e^\95\93m\92¤m\9c\94\96h\9f\9e\98\9c\9a\9b_« m§\9b\99\96c­£p¬\9b\99d£«_°\9d\¹¨W°\9aXµ¥Q¨¤P§\9cU\9e\9e\9aP\9c\9e\9fL\9a\9eY\99 Q\92\97U\97\9bX\94\9c_\82\9dV\87\88Z\83\89b\8a\8aS|\8cY\7f\90S\7f\89Xz\88Ut\97Pl\86Bq\8dCn\87>h\89Hh}Lf\85N^\83Rf\7f^\\8a\S\82d_~c[zc^\86i]\86\\zc\id`fbjYhc`_ejeg\Zc^`ZVbdW^jWTjcTka`bUfcM^aQa^[icRa\PciZ\gVe^BefBmbHs\UnYRmfVv`_u^Sj^VuZ^l_Vga^jVTjU\\7fAUvI[mAcoKV\87Zf|La\88S\zGb|KY\87Ni\89Hi\88Uk\7fMa\87L[\8eUT\86^P\8biZ\87cP\88ZZ\85`]}[Z\81[L\90WP\8c\S\88K\\8aWQ\88]]\8fVb\9eP\¢GUªUU\9eQV¬DZ\9fOg\98Lb\96LQ¡RI©TH§KQ²LH®JF©@U«JI­ET²ILºGJ°GF¬?L±C<«K?­B8¥Q;±E0´K>³K8·D;¿T?ÅENÁCQÈRRºLL¼MGÆHUÇ@KÂDBÊDB¸AE·F>¼DNÁ:F½FT¾IW¼<^ÅHbÅGX¾T\ÀQg¶MfºIj³Mo¸Rs¸Nt¹Yv¼\r·S\80¨\y³Z\81®[\80²S\83¼Y\87Æ]\81¾Lt¶X|¶Wp¸So¼Lj²Cs±=zÁLt°Ds¹Rz¸S\7f·GuµV\7fªS}¬NzªSu¯T\81³N\85²L\82©S\84£Y\90\98[\88§d\88ª^\92§g\95¢i\95oz«s~£o\83§b|¦c\7f\9fou¢t\7f¤k\81\9fe\83¡iy¨h\7f¨a~§]\84¯R\89°L\88§G\90­L\8f§Y\98¦V\9b¯]\8e¦g\9c©e\9f«o\9c¥k\9e¯j\9a¨`\95\9fj\94\9ai\82\9ag|¡Y\7f\9cS\82\99^\93\93]\85\93]\82\95^\85\91_\8d\89g\89\8ee\89\83`\8d\89S\84\95_\82\97Z\82\87O\8b\8fN\86\98P\82\8cS\83\8b_\84\88Z\80\8b[\90\90`\9a\9c\9fe\9d\98`\9f\9bf\9e\9d\9c\9d\95\9c\9ed¬§g¥\9e\9e\98\9f\98\9c_¥§]²¢\«£_±¡T¢\94\95\8f\95\96V\9e\97N\99\9fQ\96\97W\97\94U\9b\96Y\97\93W\8f\9eT\88\8fa\89\8eX\8b\8b]\81\8a[\83\91Uw\91[p\86Ou\87Fs\84Dy\80>n~Hi\8aJ`\88V^\86Qc\8aMl\86Ui\8cb[\82`f\80`exb`}]Z}dZph_gbX_k]XedVX`daagYY^[NZeTQ[YL]mXYlWX_Tca\edS`cOkW[d^Vi`WgWQ]^J][BlZHlWLz_X~bbz]_qbZp[ThUTk`Pw]TvW_wVU\81FPsE^uB[xP^\82R\\86SW\88J^~SZ\80Lc\82Ga\8bKf\8fVo\87Qf\8fZc\8aRX\84WU\8adT\8aYVy]\xbT\7fcT\83jR\82`T\8aXR\8fQO\90J[\8aRX\8cJ[\9fJX¡LZ\95Xa\98Sc\9eJc\9aGY\98L\\8fO]\95LO\9bOK¡CF¡DH§>J\9d7L¢@J«HX¹MU²JGµ:@³C;§>D£F:ªH@\9fB8¢E8±D2±F7·O:¾FIÆLFÁBM½NR¼LI¹BIÂFLÈGOÄHDÂMM¾JI·<F½8Nº<VÃ>PÈCXÃ=T¼JV¹GZ»J`±Q_ºGf±Jk¨En­Pv¶Pl´SoªTm­Y{®Ut­T}¬Ry²S}ÀV\7f¿Y{ºMq³Qu¹Kq½LvµQn³In²G\7f¸B\83¼F~ºM\7f¬Nx­By´Qp­OsªHo¶Rv©Pu¥O\7f¨M\83ªZ\83\9eX\84\9bY\89\9cT\90¤W\90\9fT\96©b\95u\89±m\89¤k\85¬`{«b\7f¬ms\9eb\86£d\84\9ap\84¤f{¦]\82¦f{²V\82²V~±K\8a¬A\8bªN\8f©^\95¥Y\90¥Y\9a°e\90«c¨¬j\9b¢n\9f«k\9b­]\91 b\95¥f\8a\9db\7f\93_\87\93g\85\9aa\88\8ee\84\88m\87\95k~\97\\84\85]\8b\92^\8e\92\\82\99R\83\94R\8b\8eQ|\81L\81\8eM\88\98L\81\95O\80\92S\88\90]\8a\89^\97\92\9fi\98\9f\9ac¨¥]°¢d¬\97\97`´¥`±¦^¥¡Z ®h\9dªd§\97\9a\93m\9e\91hª¡b±\97`ª¡bµ¥X¤\9a^\9e\94\97\96M\9d\8e\91\99W\95\95X\9b\99Z\93\9f\\92\96V\97\97X\99\99Z\8a\9ei\8a\91Z\87\85L\84\8aH{\8bL{\92P\7f\84Sy\80L\80\81Gn|VvyWmzQb\82TZ~Nb\82Jl\88Na\7f`e|ahvS`yX\r\]v[Unlb_c\ejYV`Y]QZR_WSTPZRYS]NSeYXcdQZeQg`VagYflUlb[bUSc\_h_SiaG`WRiUTnULqXXpa[\81XTy\X~Q\t\W{^[va^nP[qT[~EW\80NU\82?X\81I`zK`}G^|U^\8aTh\84JY\8dTk\83Wa\8eSj\84Ho\8eFn\8aKc\8dMP\8f]Z\80cW\81[X\81aZ\7fX[\80\Z~XS\82^a}P[\84XY\8cYR\86P[\99\U\9dY[\94MX\93Tc\9fHd\94Qj Q\\92RP\94MT\91TP\95NI\9aML¨HJ\9fFG\9fIH¡IN£=VµMR´=Hµ4R¨>G³7I¦:L¨>P ME¨DJ¨PF°R@»IL´KM´DQÂ@Q½AJ¶NUÄEBËFG¼HAÃPDÆKOÂLQ¸=QÇ@Jº:TÅJQÂHMÀ<UÂ<Z¼HZµFd¯Od®Jn¼Rg³Ku°Zw§Oz«Tm¬Xv¦`\85«Yz­[{­Y\88¯Ry¾Sz¹P\82²X\80¯W\82¼Tu²\u½U\80½Rq´E\81Ã;\8d¼I\8b´I\8c´A\84²G\82¨D~§Qw¶G{²W}¯Kz¦X\86°H\86µT\87°P\82¡T}\9bX\90¤_\93«^\8a¦c n\8e¸i\84¶b\89¼k\80³ny±i\80¨c\81 d\86¥d\8f±j\86«g\83­_\80¬d\84®Y\7f¡X\7f¤K\86¨J\97\9dW\97 O\95®U\94¬X£®j ¨oª¨k¢¥k¤¥c\9c¦g\8c¢g\86\95p\8b\92g~\8a\\85\8e_\86\8em\86\90l\80\8dn\87\97h~\91b~\93\\8b\99U\95\90S\8e\91W\8f\8bL\83\8bU~\8fU\84\94W\84\94U}\8c]|\8e_\89\8bb\96\91d\9e\92\9aY¢¢X§¢X³\9ej©¢j° j¯¬j¨«^£¤`\9cª\¤\9d_\9b¡l \9b\93\98\94\92X« ]ª\9d\9eZ\99\98\93\95\8dT\98\92Q\99\93Z\99\97R\9b\9fe\9c\97g\99\9fc\9e¥d\94\9fb\87\9e_}\99S|\98I\81\86Av\87Gx\87F\80\91L\80\89Ny\80QtzUksYfu]e\7fVd\83Ne\86PexSd}Wm\81[rxTeu[bmYXh[\m^TcY[e_eYW`LROJ\UQWLPOUNRYNWaQacV`b_if_ggUbhYgbWic\m`UeUL\TPbWMn\VkUOy[Uw]PuXYzVWwQZ\80RP|[QwX]\7fIOwJQuGN\84IV\87AW\82BS\83Oa~K^xO]\83Zd\8cWc\8bVc\8aLh\89Ni\91Hh\8bJe\93FZ\8aIT\81HY|XP|SS{ZS}YXx[RwP[yR^\81Ya\87RW\92[K\8b]O\93^]\90]\\94X^\95QU\9aO_\9bN_\97N_\99RU\9fTU\9cJK\97QY\9bHW\9f<K\99=P¢;J©GO£JI«AI§@N©<U¤6O¯?M²BK£DU\9dNX¨PM§KC­MIºRN¹KC®QH´MOºHP½FP¹DJÂIE¾LK´RGµTSÄHN¿DOÃBIÈ=ZÂGY½>T¼EYÁFV¿JYºR[³Hk®Dk¹Nj¶[t¬Ww­Ty¥Qz§_\82¯^~¨R\85­T\82²N|·K\83½HzµL{¬H\80²P\86­[\8b¶[\84¸^~ÂR}ÄT}¼D\8dÆF\84¾D\8c¾E\88®;\8a­<\86°G{²At¯Lx´N\84¬P\80²Q|¯I\7f¤X}¨W\81\9f^\86¤g\86¡d\9a¤i\9ec\8a±p\8f«`\88«p|¬n\8d¬n\88¨b\86\9eh\8c\9e_\92\9e[\84¦c\8a¬X\86«R|¢[\8a­Y\83©M\8f¥[\89 Q\97\94S\94\9cQ\8e«e\9b l\95¬i\9f¥e\9b\9fd\9a­g\96¥d\8a\9de\84¢py\8fow\9ag\83\9dV\82\8fay\9bf~\96b\81\8ba\7f\97h\80\8e[\86\9e`\92\95[\84 Y\82\9cX\83\8eK\80\97]\8c\8cR\87\96Wz\86Y\83\87e\84\8e`\8f\9bX\8f\9fZ\99\91U\96\9eX¥§S©\9fe¬ t¨ªb¬¢h¦\9d[¥«b\9d¤_¢©\§\99h\9d\93h\9d\91l\9f\97\8f\94\9cT\9f\9d]\9b\9aa\9e\9a\99_\9e\9bK\9b\94P\9a\89J\94\94\9dO\9b\9b_\9c k\95\9dg\90\97b\97 b\80¡`\80\91T\87\97T\86\92D{\8dJ~\8ePx|F\83\81Nv\84Wq\7fUm}`hxUf{`_\8fZ\~Q`\81T]\83V`|Ri{UfiR[fUedXUbQUbSTed[]b[^aLQQTQTJUOGK`OGd^Sc]S]ZU`iO]iTbfZ`gXhjLhWLrSEh^LcVVjTXaZTg_YrZXn`UxWTy[MrUSw\Xq]X|P_xEW{GS}TM\80JL\80HJ\84GU\8dS`\84M`\8aTd\92Wk\8dJ_\8cV`\8eCh\8cU^\95U[\92RS\90PP\8cZV\7fVY\86cJyXH~YT}XO~]Z~P[\80U]\89U^\86__\93dI\95f]\8aj_\95_Z\9cRV\9aN\¢YY¡PR\99MI\9bMM\98HS LT\989M IE\97BN§AN¨<Y¦DQ§AC®CQ\9d6O¦6O°=N©HI¨OL\9cKL¢IR®GK¨RQ»ME¼FL¼KQ°@W²CS¼G[Á@W¾>E±GS¹KP¼ES»QYºATÀAP¾HF¼PT½H[¶URºSWÃHbÂH\¹Pn°Hs­Hp¯Hj«JoªNu§Jw±S}°X\86 M\88¨S\8d§K\88¯M\87¬O\80¨C\85®M}»M\87¯V\82¹Y\7f¶L{Á[\81ÆI~¿E\8eµH\87¿F\95°G\88°?\8aºA\86³K|¬P\88±Sx¨Z\81µ`\83¯Q\89¬R\81±W\8b·f\89µh\8b¬h\92±`\9a\9co£e\9a¢h\98£a\89­e\88¬h\8aªm\96£r\94§g\95¦[\8d¡W\8e¦\\81¨Z|¬]z¨O\85«[\8c\9eV\86\9c[\8c\9fT\97\94R\90¡Y\95¢]\95 q\90 l\90¥d\9f¨r\9a¤t\89¤q} iz\9ed\80\9ejx\9bh\80¡\\83¡d~\94\}\91Sy\96Z\84\9bd\8d\92g\8b\93`\8d\95Y\81 ^\81\9aS~\98S\80\95U\92\90S\8f\92[\87\8bX}\8dc\82\91]\84\91X\91\9bZ\99\9aQ\92\98V\96\9c]¢¥k\9d§n£¬q\9c b¢\98_\9d\95]¥¢a¡§Xª¡^¤\96\95\9d\9b\95\8e\90\96\8f\98J\9c\8dO\99\92\8f\8e\9dX\9f\9a]\9f\98l\96\90e\9a\99[\92\95m\8b\97m{\9a_\80\98Z\80\94Pz\90C|\88>{\85Hy{Vo\80Zqz[l~_cz^T|aV\89PV{P_zT\vT_zSbqSfg`[o]alY`nNb_Q]cYYWaPWaJ\SGUUHMcOIbOO_SU`XVb_YZZPYfVWdKihToeMv]St[Hh^HfXPb`Yg\[vW_tcUn^QndQpdSsdMvlYoc[tbO\84OO\82HS\82NO\86VL\8bYR\94\R\8bMR\88V[\8cNc\84Ih\8cM^\8dDY\89HY\97VP\96RV\91WS\8dW\\84VX\85aS}VQ\86[K\84bI\85_S}]N\82US\86]`\8b^c\90X`\8b[Q\92eR\8de`\8fW[\96VZ¢QW\9fU[¥LT\9bFK\9aAH\9dHI\9bGO£9O\9aFC\9cFB DHªAQ©9T¤6G£7O¢8M¤GI¤HP\99KK\9eJF\96RJ\9bLK\9bKU¬PS´CM¼?Q¾F]¹C^¶@T»MW·BP²>T¯CN­IN­MN´LU´DV¾DN»KFÄKJÄHQ½SZºU_¹Md·Ki¼Na½Aj­Ds¬?k´IhµKn¦R\7f¬P\8e¨K\8d\9fK\86\9dG\8d¨N\90¤G\88 B~§I\83²K{·J}¶C\87¹I\82ÅY\82ÇZ{ÃPzÇR\80¿V\8d·J\93¸E\8f½C\83¹P\88¶M\8a¸R\82³Q\82¯Y\81±d\85¯b\95¶W\94Á]\94»e\8bºj\8e¶f\90§^\9d¤d\99^\93\9dm\9d\9cl\96­i\8f®d\95«q\9e¨l\9b c\94¤k\92­b\9b¬Q\86°]\8aªM\88°L\88ªQ\83£Z\87£Y\8a\90\\97\91U\9b\9e_\89\95a\87\9fp\84\9dd\8e¢d£\98g\90\9de\8f¡c\84§j\81\9dm\82\9boy©b\7f¢kx§e{\98b\80\93Z\86\9dY\84\9fX\86\95c\81\8da{¢`\86\9aU\86¢Lv\9a^\87\92X\93\8dX\95\8bT\93~b\8d\88a\85\95Y\89\8fZ\8e\94N\8e\9aX\8b\9d_\9e¢Z\99¡[\9a j\9f¤a¦¦g¥\94\9e]£¡S \9e\9a\92\91\95\8d\92\87\93\8e\95\8e\95\92Z\9c\83\8cV\9e\8b\\99\99_\96\8bm\95\8dj\89\91h\95\96n\86\94nv\8f\}\99dr\98Nu\88Gn\87Th\8bWt\7fXe\8d\o\88Vn~Y[~]U\83i[\84TY\7fJb}X[\80S_pNghKfcV_kb]aRhaVeXT[bRLZ]OPZE\Z@KWJNfPO`KMcQPbOVgPSiSV]]K[eQ]fMt`Fs_Vs[WjZUcaQmUSn^XwhPg^Pk^SsgOlbRwaOp_KsaZycSwdN\84]R\85QJ\84_F\91[R\8aMQ\87GN\91NY\96GX\92T[\93R\\92L[\85UO\8dWW\99VX\99^N\96bQ\89^P\90kO\83fZ\85WQ|YKzeZ\86eU|bT\89b_\85^]\8a]`\97ZK\94]V\96^T\98VV\89P[\93PU¥V^£NK£IJ\95ND\98BM¡GJ¡4G¨@@¡HE£AL¤8W\9f@Q\9b>R£<J\9e3I\9d?T\9d?O\9dLL\9fNV DR\98KO\9fBNªOW«BU¶C_¹=fºE\°Kc¹DZ´I\­HPµIM·IP´JP«?T·LQÅBYÇHH¿LHÄGW¸O[¬I_­G`¼OW½Ei°Mmª<p²Fg²Oc¡T{¢Lz\9bS\8c£Q\8a\9f@\92 A\87\94F\8f¢>\90¡E\82­E\89³S\87±T~½U\89½M\86ÃU\8bÉO\82ÅX{ÅN\83ÆO\8a°K\8d½Q\82¼P\80¸S\85¶P\91ÁT\8c±d\95·`\91²b\8bºf\8dµg\92Ã^\97¼h\8dµj\9aµh\92±c\9c±Z\94]\9f\99h\9d¢n «p\9a©r\97°h¡¯f\97²p\99§i\94¡b\98¤Y\94§S\8b«[\8a©W\91 K\9b¤N\94\98P\9d\97V\98\90_\89\96k\89\8fp\82\98e\86\97r\94\94q\97\99k\95\9cb\8d¡\\8c¨g|¦c\84 c\82«^\81­iy gu£h~\9ac\81\92a\81\95]\89\9cV\81\95_\7f\97Y\82£\|\9bU}\95a\86\95\\8c\8bR\89\8fQ\8e\81[\88\7fY\8b\8b^\92\83Z\95\8a[\9c\8aY\91\91Y\9b\8dS\94\99Y\9f¨_«¦a¯©g©\9e\97\96\95\94\8f\90\8f\8b\84\8e\8e\95\91\8e\92[\9e\89^\9b~[£\84a\9d\89\91a\9c\89f\93\8fd\91\89e\89\93_\8a\8eg|\88kz\87dr\8a^w\82Ql\85Zn\8bba\90a^\90_i\8e`f\8dcY\92lT\84gZ\87fT\87UY|MWrTTvNXySblZllVg\^b[]W[ZZ_VKX_NV[KTYQR^GOjFNeSQnOKeOMaNSiORhYH_[LkUSgZLqdRs\Vi^QjZVnSWrXXsgSkfNmgYucYogNniRjmStaRseUvjY~gV\8d_Q\8a`I\90UH\8fIU\90JP\92EQ\96PT\94X]\93OZ\8bZ]\8fVR\92VR\95[T\98\T\8dlQ\91nR\90jZ\84]V\7f]Q|_Q\7fe[\8a`b\85jY\8ea`\85hb\91lV\92aT\8f]T\93_V\8dWM\8dYO\9aTU\99JS£IV¢DL¦FM\9eCH¥CD\9a<D¦@M§?I¤@G¬6V«3[¢;P¨8J¡?H\9a;P\9c=Q¥<[\9dDZ\9e?Q GT¥GO«>T©6\«;g´>]¶9d²A^µGdº>c´CY¬CYµATµCP³?MºBKºHR¾MK½NQ»KS¯MR©SM©RX±KVµGb¬>a¬El£=g©Fl£Mm P}¥D}\9cI\89\9cF\8d\93G\82\91E\8f\9e@\8f¬>\8a«L\8a¯R\80±L\80½M\7f¿S\8f¿Y\8d¾N\8a¿R\8fÄN\89¶L\90·J\88¼V\7fÁ[\86»V\8fÂ]\89Âb\8eºf\98±_\95·f\93³d\90¿j\9d¼j\99¾m\98µk\9c¯d\9d±b\92¯a\95\9dc\9a©m\9aªu\9a¯l\9a°n££w\9c¦p\9dªv\8c§`\97\9fe\91¨_\8a¢[\88©P\91¤W\98\98C\97\97[\95\94\97Z\8d\90o\88\92_\8d\8ek\97\99n\9e\9eq\9d¤g\95\9bb\94§e\81\9eot\9bo\83©r\7f¢a{¨ds\95l\83\9f`{\8fa\7f\96b\82¦d\89¡Y\7f¡_\82©Z\82¤X\88¦Uw\9eX\7f\96W\82\9a^\84\8eX\8c~_\7f\89W\82\93V\83\92N\98\97Y\91\96P\98\9c]\8d\99T\92¥V¢\9cT¥¢d³\9c\98\93\9e\92\87\8d\90\91\8d\82\8e\95\90\96\8b\8dZ\9f\85\91\82\8fZ\91\8cf\92\88^\8c\8fZ\96\8ff\82\8bY}\8d_\83\86ix\8fds\7fUv\86QqwT_\84fW\8fY^\8dc^\83eg\90``\87bP\8fj`\84aW\88YMu`]wV[mXapZ]i_\gZgUYbTTNSPU][IYQHOYTDaGOWGGZNJlQPbPVcSIdUJ_NSfNSbXOn_KkUQrdUsh[u]UgYVvRNnXV|[OpVS|aVx\_tXUq[Vm^WnaXvj[}jS\89[R\83fD\86TT\96HE\93LI\84MT\95QO\89SL\85ZR\86ZR\8f_U\8e`K\92dK\8fWL\98cY\99cQ\8ega\90nT\92l]\8cg\\8b^S\89[]\8a]d~h\{ad\8cqb\81[V\84]O\90]T\8b^]\8d_]\96^X\8dXS\95OU\8fJQ\93BL\9cKE\9aAF\96=@\927N\946D\97>D¢2W©?K¦DJ¨<P¦>W\9d1L\9f5P\9d;U\9cCZ\9fEe\98Hb\92=b¦IZª7T§9[¥K^´I\µ8i±D^­Ec³Bgº>^¹9S®EU¹GZ¯JP±CL·CS¾EYÃ>[¨BT«N]©E`©Nc²S^­HX©<g­?m¢=g¡Be¦Gu\9dF\8a\92O\8e\9dC\95\97M\8f\95@\85\9aL\94¦;\94 I\89´W\83µS\8d©T\89»L\88»P\8a¼G\80ÁP\89ÄY\84¼O\8cÂP\8f²Z\84¹\\8c¼[\88¸\\92³T\8e±\\9d»a\9c·a\9f¸o\97¯e\92¸h\8f¸j\9dÂh¡±_\97¦^£¦Z\93¶\\93`\99¦`¡¤n\9aªn\9b²t¢¦n\9a§q\92®t\92¤z\96\9en\8b\9fk\88§_\8a£]\97\9eN\95¤T\9b«I\8f Q\9a\9c`\9f\95^\9f\99f\8f\99e\93\9c\9bh\99\9ap\9f£d\9d¡f\91¤_\87¡e} qt¤st¤p}¤hv\97ot\98g\7f\93k\84¡h\8a¦k\86£c\8c£Z\8a®U\8d¨W\84¥Y\80\9e[\84\9fV\85\97[\89\95]\7f\8aW\84\8a^}\8dS\82\8cQ\89\96N\8c\95U\95 M\95 T\9a¢[¡¬Q¬«P¶¡Y²\95\8d\95\93\8b\92\87\85\87\8d\8a\97\94\98\8b\8c\92\86\89\86X\8e\83^\93\90a\96\95b\95\93X\8c\8cS\88\88Y\85\91^|\8a^t\85^k\82XgzVb\81X\\82WZ\86a]\82cd\83c[~fQ\81hU\84hXucQvVVvZTjXXg`[l^QZXUMX[JSUOZ^N\U[XQRRTC_PG`RCdGGeHSaUUYTPYYMdNEnMEjPHlPMoZZs\]ybRscTmXJxcVx^YwW^yTZxWX\7f\cwY`tZWv`OmcSvXS\83YX\80fN\80fF\90^C\8eLO\8aNX\89JR\88WS\87TE\89QG\86WX\89^O\97dF\9f_?\98\G\9bgT\96`Y\97iY\95d_\87__\87kU\8b]U\8bZa\83hf}l`\81sW\88h_\8c`P\84^R\8bZT\8d[[\9cXS\9d\Z\94XW\8fIM\90RO\8dKJ\98I=\95H?\95CI\90CO\94=P\979P\9d<I\95>Q\98KJ\9fHO¨;U£3W\99<X\94?`\99@X\99?_\8fC^\93?b\8dD[\98>Z¤?b I\¤Cc¯EgµEm´Ge²F]¯9Y­Cb®@Zº=R¶KX¯>T¯@V¼?\·<e¨7f Cb¤Bi¯Jd²Je±K_°<`¨;f¬=o\9e@n\9e<y\9b@\85\93D\90\90J\94¤F\9b¦C\97¬>\8eªE\93²S\93¯Q\82«K\8c°K\8d­J\8c­M\82­O\83»Q\82ÂL\8e¼W\91°V\8eµY~³X\8c»]\88¸]\94²U\98±[¢¹b\9c³n\98³h\9d¶p\97¯p\91­f¤µe¥¶h ¦i¢«^ ®\\8f\9eU\9d c¦©e\98µa\93«l\93¥m\97\9dv\92 j\92¥l\95\9dc\95\9e_\95¨\\95¬`\91ªO\92¢P\90\9e^¤¤\©\99\99b\99\9b\96\9b\99k\9c¢r\8c\99o\8e¦k\82£i\80 o|\96vs\9eg|\9ae\7f\90bt\9ba\83\93g\87¥n\84 j\86\9ek\8e\9eg\82¢^\88«_\85\9eY}¢X\86\94a\88\91_\81\9cc\8c\88i\80\96f\86\8d\\88\90S\88\95R\89¡T\9c\9dQ\95\9bH\9b«Q­¬Xµ\9f\96\8d\94\93\89\97\85\82\8a\92\93\93\8b\95\95\8a\8c\84\90\8fc\95\8ce\8d\88[\8c\82f\97\92[\95\84[\94\82_\8f\93R}\93]v\88Vo\89Qf\86X`\84Zf\86\Y\89hS\80iU\86[T\7f\^\84_P\87iS\87eS{l_uXVlaSk[de\VkbYVSQQTRMZXHPOP^PSULTK[@VZN^OJaO?jHJgPL`WObWHoKJlZDuMJj]Ujb`vaXo`NoXUkWSr\[v\Rn`_\80QZsUS\7fMV~YUy[ZwRZ|_P\82YR\86NK\87`C\84^A\82ZI\8fHU\8cFT\8cQK\8aKO\86OA\88_I|YL\8d^N\87mR\91_J\9abE\9fbU\96cQ\94pW\91fX\88aP\91m[\88[Z\90S^\8b^Y{ga\83g[\92jX\8acQ~aR\8fTa\95V]\8fSR\8fYM\94MJ\8bVF\8fSM\8bJ?\90KI\8dJE\93JG\91HM\8d<H\98AL\91@M\94FT\94CU\97>W\987[\9b:S 6V\959Y\9fG`\9d=Z\8dC]\8dC_\8fIV\94EU\98Hb\9cLX¤Jb¥Ae¦>aªD^«<`µ<Y±:^¤<Y¥@\©EY²;c«Cb»;Zº9]²H\§Cj£Gi©K^¬Mc²Hn²<gµAw¦9j¥9u\9fLz¡F\89£M\8c\98H\97\95@\95¥F\90¨E\91­G\96´J\86±R\82¬K\83©J\98ªL\89¨I}»S\8c½V\8bºV\8e­U\92µT\86§S\87±T\87­e\96¶Z\99¹Q¢·T\99±[\99ªh\9d³l¢­h¢¬j\99¯a\9f¦b\9f­^\9f§a¦´d\93¯W\99\99Wª¦cª¬]£®_\96 _\95¢n\92¥k\9c©h¡£k\9e«k\91¯h\95¦g\91¡h\99\9f]\94 U\9d¡Z\9f W©\99\94\9ea\9b¤Z\9f¡d\9c\9em\9a\9ev\94\98n\84\9ds\85\9ch~ rz\92k{\94t\7f\9am}\94m\7f\9ef\81 p\87\9bj\7f¤i\85¦l\7f\99l\8e\9b[\8d\9cQ\90¢X\88\98d\89\99`\87\9bh\8e\96f\87\93d~\98c\82\95^\86\9dT\8c\94L\8e\96T\9a\9fU§§M¨¤R³¤N± J¯\96\91\90\93\94O¿\92\84\7f\8f\8f\8f\97\98\8f\87\88\86\83\8da\9e\87i\99~j\91\83h\92~b\8e\8aX\8e\88V\8c\81_\88\81Z\85\8bR\7f\83[{\87Wk\8aPc\84Z^\81X`~eS|lV\82d^\8f][\8ebY\84bM\86[^\7fdaz[^o`cm_]_W\YTZM\UN]OG_TPYQHVPLNTOORK]R?YMCZVG_PD`YI^YO`TSnVJk]JrRW{R^u_UzcTm`Qj_Mf_Xa^\j`SkRYwSS|I^\80MY\81ITzMQwPV{SNxKK\81OE\83Y@\84YL|[M\80PQ\88MU\90LK\85UB\84MC\86ZC\82bI\83eM\83eP\90cF\99nK\9ftF\9drN\97iP\8doS\89l`\92_[\94Te\8bXd\8a[X\89VP\8bcJ\8afP\80aR\87b]\8e^S\94OX\8dQM\8fOO\92XF\8dXH\8cQ=\88WA\87N?\8cTH\8aSC\93OK\98GM\8b=U\88FJ\8cFJ\96BH\93BS\88>X\8e@O\92EV\9a>[\99CW\93Cc\98C]\8c>_\9aAe\98FY\91MX\98Qa\92J`\9cI\©Kg¦<d¡C_«;i°;`§B^®?a©;a®3e¸;i¹Cd¸<e©=\¥Bc§G_£Af®Ci²AnªGo°>y­Fy¦B|¨H}§J~\9aL\7f\98B\8b\95<\82\9b?\88 J\95­P\91²L\8d·S\8c¹^\92®Y\93ªX\8b®K\84¶M\83¶P\89°R\8d¨]\8a«W\8a¥[\85§g\87ªa\93¯f\95´Y\9dª]¢«`¥¦f\9c£b\9c\9eZ\99\9dc\9d©fª¥e¥¢c ¯d¤­`\99¬P\94X¤¢V\9e«V\99\9e[\9a­a\98¬k\9a¦b£«p§±s ­p\97 m\91¥]\99¯d\8f\9fe¡©c\9e¢^ \9eX\9e£W\9b\95P\9d¡R¡«V©¦]£\9a\9al\9f\96q\8d\99m\92\9ef\83¢h}\9cuy\9cjt\93g~\93i\86\95c\83\96hx¨n\86©l~ªq\84\9brz£l\89\9cg\94\9de\83\9be\8b§g\88¥h\92 h\8c\98\\80\8eW\80\96i\81£d\87\9aN\94\99[\92\98R\9a\93U\9d\98\9e\97\9c\9b\8d\88\9a\90\8a\85\85\88\98\8d\90\8b\91\86\86\8d\80\7fW¡~h\96\80^\8b\82h\94\85Z\97\7fd\92\8fZ\80\90\\81\92[\82\85X{\85bz\8e]o\87\b\83Td\88_f\85`Z\82pUzhN\87eO}cR\81]V\7f]^zgWybci]]qd]f\fRaZT\]U]UTjTP`WL\QMbSMZQO_QGQM=_PAhQI_RDhNU`YNmNSbPLlMNq[ZlOMvTOl]Tg\QrfWf`TbeOiQR|YH~MG\8aUK}MUyKN\83VN{SG\82NN\87YM\81X@\8fRK|ZR\89XI\90PN\93FO\89U@\90PE\93^B\82d?\8flG\80kF\87cA\93tP\8fvP\98fM\96gW\8biQ\8beU\90ZO\94]]\8eWX\87aX\90UX\86eW\99ZI\8aVW\8aTY\92UR\98W_\86XL\8dQS\90ZB\86T>\85]K\84^H\8aW>\90UC\8aYC\8dOF\89KE\90>Q\8aEG\8dJP\8cHY\9aCW\98>O\9eF_\94F_\9eFW\9e<i\92Ag\86Cc\89<]\8b:_\9c=j\8f?e\9bVk\95Mb¦B^£<i ;r¬De§;f¢9`´<c£FX @e²9a´?c¨2g¯?dªCb¤As«Df\9fAs¡=d°Am§:p¨8z«=w\9fEn§Ht©Fw£E{\98B\8e\95?\84¥B\93¦@\8e¯Z\87´M\8dªL\85§[\94§U\90®P\8e©A\94¦L\91±R\89«R\82¬O\90¢]\82\9ca\84¥X\96±_\95°`\98¯a\9a®Y\9e\9eZ\9f®g\9b¬n¤¦f¤\9dj\96\9b\9eY£¡a£¬cª²Q\94¸[\8fX¤ªa ¥h\9e\9f_\9a\9fh\9b§o¦¬i¥«p¦§q\9a¥l\99£]\92¢_\98§f\97«d\99¦Z\9f\98V\9a\99U\94\99P\9b\9fP\9a\9b\¢§U¡ª[¢¢g ¡a\95\91c\8f\92o\90\9bg\88¢my\9asx\8fuy\92l~¡p} sz\98i|\9eiv¥v}¢g\86\9di\81§`\81¦a\89§h\84£b}¥i\82§_\8b\9ed\82\9dX\82\94a\8f\9f_\8a e\8a\99Y\99\9bO\98\90I\9a\8fV\93\8dQ\9d\97\93\9b\90\88\93\90\8c\85\87\88\89\8f\91\93\8e\8b\90\8b\84\7fc |Z }X\9c\80^\8f\81a\94\89c\94\84]\83\94X\83\96\v\96\t\86Zk\8eah\92es\88Wm}[j~]_\82kQwtQqmKoeQ|eVz]W\80c[zcWmb`c_febcZnd\ic^^`X^`UjTTdVCeMBgP?hRBgIDVOCaNFeRL_JJcOT\QV`PW]Y[iTUkVNnLLrNYlSVxZQvcZvdZgYRlWKzXK\88\C\89RG\90DG\85GJwHFzVL\8aSI\89_E\84\@\89X@~OI\82PM\86LH\95HB\8dG=\94RA\91a?\91f?\89]@\86a>\90gD\94oF\96jM\93iS\8cba\8ae`\91^T\87WR\93`Y\8dd]\95[`\8c`V\8bdU\97WF\8aSE\86WR\90QQ\91WU\8d]V\81\Q\88SA\81NB\82Y9\91X>\97WK\8fYJ\90TJ\90PA\88?G\88>I\89?M\97EU\8bGU\8fGY\90GV\9fLd\96Q^\96L`\96E_\97Gf\8cG_\858i\956o\93=l\8f<k\8fKs\9b<w\9f>k\99Fo =o¨8n¥Ch¬>^¯;e±FZ¢I]©8]¢4c§?d\9f;hª?t©Hq°DtªAr§>i¦3m¤>n\9fCo§Cs\9dFl\9b;w¡8v\939z\95@\87\94>\8e\9f@\8e©L\94±S\8e¨L\93¥U\8e¡S\87¡P\8b©M\91¤H\95¨O\91¤X\82¤T\81£P\8e\9bR\85\9dX\8b\9fY\9a­[\97ª_\92§j\8e `\8c\9eb\95§f\95ªo¢«b\99\9da\97\97\9fX®¤T¬¤V ¯^\98´W\99d\99¨d¤©i\98¢h\94\9ag« n«°q¡®r «n £q¡ªh¡°d¥ªh£ [¡¥U¥¤a«\9fO\9d\99I¤ U¦\9aP©¥X¢£b\9a\9ce\97\99[\8c\91k\88\9an\92¢f\83\92nx\92i{\9apx\96js\9bmr£r\85¦t{\95o\81£wy\9bh\83\9be\84¦c\84\9eb\8f£d\8dª]|¨`|¤b\85\9e`\7f\91d\86\8c_\88\91a\92¦U\94\97Z\9c\91S\98\98E\96\8bR\9b\87\98\96\8e\8c\84\83\8f\82\87\7fI­~K´\83\8c\8a\8e\85\86\92\8c\86\8c\87W\9e\87g\91\89X\98\8a\\94\8db\94\90d\81\92_\87\91`\82\85g|\88dl\94Ul\96_r\83Wf|[l\7f_hxd\tsUufTslZ~oX\7f\_th[ke[ggUnjkflbbhjYpZQbfTfdYdTWpRVoZNh[ClNH^PI_MF^LQhKPiRQcSPgLQdVZmU[h\XlVGvVKjWUjHZwPXveSj[YnQJqTDoXCzQK\8eKK~LK\89PK\83KS}\I\85QH\87g@\90SB\87\:~^M\86MK\90TF\90RG\8aV?\8fP9\98P@\90[F\8efH\8ei=\87a@\89hK\99oJ\92i\\98`^\8ea\\85c[\87SM\87dY\86hZ\87^Z\92WX\8dSK\9eRG\93QG\8cXH\91OK\8c]R\89RP\80TA\88ZF\88O;\87S?\8fT@\89[A\8eTO\89VO\92KH\87FE\8eFM\8fPU\91IU\90TU\89P\\94GX\9aK`\97Ee\9dR_\9dDq\9fAl\93Dn\91=s\94@i\8cIg\87Ky\8fAp\97Ai£Ic\98Dv\9bJu¨Lt\9cEc >^©5h¢=`\9dKb«Ah @r\9fCk\98:g\9eKy¥=l©7x£?r\9d2m¦/m\9b1s\99Ce\9cEu\9d=v§9t\9b9s¦:|\959\8c\9e7\7f«=\8b§A\90±O\91£P\94­V\8e\9fU\92\9cU\92¢M\87¦J\8d\9eW\86¡T\7f¡R\82¦W\8e\9f`\8c \\91°[\90²k\8e¬d\95¬l\86¥j\9b¤h\90§e\9e¤i\9fªr\9a\9cp\91¡g¢¥T¬¥[­¡a¢©[¨´N©m\92¥`\99ªj\98®c\9f£g¯¢b­¨c®©m¨°p\9c°p\9c¬s\98©d£­]«¡^®¡W±\9a[ª U°\97\9a\9dS¨£N¥¥X¢ W\97¥c\91\98c\96\9cf\8a\9b^\89\9ee|\98]v\9eau\92p\7f\9crx\9bwv\9dt\80\9dt{¨qx¡rz\9dk\86\9dg~¢_\87¤d\87\99a\84\9be\8a d\81\98g{\9fi\80\95h\82\98_\91\9c`\98\9eU\92\8eY\8c\84P\93\88H\9b\88B\9d\8f\8b\85\8b\85\80\86\80\80L»}Gµ\84\90\8a\7fJ«~P¨\89\8e\85\8c\89\87\80\86a\9f\82_\93\85a\8f\8de\90\8e^\8e\87g\80\85_\80\8fau\90at\91Xj\96dg\88`h\88ng\81nhxw_xn^rgSkoRur]vkXqiXpvSml__rcUq_`ga[ifYoZRu]WkbWlgIs[KkNFiRKaLIdKFiUEaNNfGNiNQrPQlSKuZKrVQjaGpZNjVWqNZwZVxUMvOJuYP{ORrNFxE@\81LF\8aDD\85GC\8bJF\86ST\8caK\90]D\84`=\88WC\89RK\7fXE\85OJ\87WA\94W>\93O@\94V=\90ZF\84Z=\89j@\82pG\8biD\8cbR\93gT\98[V\8d[Z\92^]\89UV\8e^_\8dc]\8fXP\97XO\8dOV\94WN\95SP\88^A\8bU>\84TD\85TJ\8eO@\8aM=\85QE\8fW8\91X<\8d^I\8fSH\8bJQ\8eNK\94HM\96PD\91[L\8fUW\95R[\91OY\92Dc\96E\\9f@h\99Gg\928m\95:t\9b5p\8f?n\89@k\88Es\92;j\92<q\94Jm\9aIl\99Ii£Hp\96Oe\9aGf\97:i¥>c\9dJc¦Dg£Lh\9eBo\9dAz\9bEw©Ao§Ax\9f@\81¤2~§7|\9d1q\9f,p\944h\931g\99:o\98Ao¢<n¤An :\7f¯7\83¯E|¦L\88«G\84­J\8d§U\8d£T\8f§O\8e¥U\81\9cJ~\95N|\9eN\83\99R\8b¥`\8b£]\8f§a\8d§k\87®l\8dªj\88§m\8e¦g\95\9cq\9b p\9c\9dh\9d\9cb\9f¦m\97«h§¨`¦£a¨¨b°©W¦¨V©i¦µf\99©f¢¬s ¨p¨\9ei¦­l®µy¦®l¤·l\9d¨n\9e¶k\95©`\9b¯n\9f¯`³¡Z­¬WµªT¯©\° ^\9d­e¥¤c\98©j\91¤a\8d\9ci\8b\97^\8e\8fi\83\95_v¡i\85\8ees\99k\80\9fm\82\9alv¢v\81¥j\86\9do\86¤e\88«h\87 [\8a©g\89¦[\8f©f\8b\9bjz¡g{\9bk}\99b\82\92g\88 l\93\9e[\97\8fW\90\90_\92\8fP\8b\8c\8cO\9b\8dN\9e\8b\8d\88\85\89<±yEÀz?½\85A¶~C¾zB¶\8b\85\80\83\84\81\86\85\8b\83S\9e\80^\9c\8ck\90\8d]\95\81f\8c\93[\8d\88]\86\92d\81\92et\8a_n\92bm\8fXh\8fXc\92ai\83_e\7frd}q_ukh{oXtbZ|oYjnRejUes]js_lvWZd]U`Y\gQPt[Lh\QmbXiVUn[JpYEmMJaEB`JFhHRdIRrBQrFFiWKkNUpLNo\MqOJmYQgKXtGbwMTr]VoYUjXVyQNs\DwZF\8aLD\87Q@\82J;\84VD\80PU\83OR\92QC\89P<\8eUD\8dXE\86fG\86V<\8e`8\92]7\8eW9\87UJ\88PM\8deD\8chR\82iI\87_B\88`K\88gS\93cY\90gV\8fdV\8cY\\86a[\8eiV\8fcY\8abW\8d_T\8bUW\89_O\8b`R\8b]O\87VA\85SE\80[G\86\C\85XB\89S<\85[?\8aUI\8fLR\8cGK\91JL\8dQC\95EJ\84MN\85IZ\83OR\89T[\98Gd\8fAe\8fA^\97Mm\9aKj\96Ci\96Hm\92Kh\95Er\8cNz\8a;r\97=m\90Jq\97Js\9eKo¥Qq\96Ff¤Iq\9c=`§@e\9d:g\93?d Al\9a?p @v Gq¨?p­=o¨6v¢*x¥/v\9c7q¡)w\9e4z£?q\9f>m\987h\9c2m\9dBx C\82¨@\82³It±H{¢O{ªJ~°G\8d\9eG\92§A\90\9fP\8e\95V\85\9dI\80ªY\81¦U\87ªU\8c\9cd\87\9cZ\8d«e\88³h\90­`\97§c\8f­d\9d¦h\93\9dk\9d§l\94ªd\9a®h\93§a ªY®§Z¯©eª³Z¨¨P¬o¨ªo\9e©m\9c¤t¦\9bq«¬g©¯m¥¨y§°k­­d£¯b\96ªp\98¯q\99´n¡°iª§c·ªa¸¥\´¦]®«c\9e°k\9d±d\91¤a\85 o\85\99a\85\95Y\85\8d^\81\95e\81\9ddz\9ff~\95fz\90^{\9bmw\99j|¡c\87¤j\83¬k\86¯Z\86¬e\8aµe\92¯d\8f¨j\87¤a~\9ad\7f\95^\83\97]\88\9dd\8f£j\9d\98d\9c\93d\9e\97]\95\88Y\91\89N\94\86\8c\89\86\8b\7f\84G¶xM¶\7f\8aM¿|M¸|L¯\84\8c\8f\86;\9d~C\9a\80@\97\86\85\81U\9e\86S\93\84_\97\8el\97\8fg\91\8cX\84\88Z\88\93X\7f\92c\83\90f}\91Zq\8bTk\95Za\92bk\8e[l\8f[b\86lX~qf\84qb~o^{^WvcUknZeg`jkVlsPdsRcnMYePNcYPgYNtUJsUOqWSr^QkOChI?_ICVQBgONpERtCDuIEyFKlONmLKyZXmYKhPMoIPoNYxWZyUU|QTpSYl]Zw[IzNG\83PB\8cS@\8fP?\94QQ\87VY\8cSP\82K>\83S>\85`7\80]F\87bE\8aj>\84c=\91W>\93[@\8dQB\82QF\85VT\8bgR\84cO\7fcD\82gR\88[O\8aaU\89eL\84mV\80hV\89`N\8ecT\92l`\8ahZ\92eU\8eaP\86]Q\8a^T\83aP{XBx];\80`E\83V:\80S;{IG\80MR\80FV\8aMJ\81SH\83HH\80DT\88IR\7fLQ\80F[\7fSS\84PZ\89Ng\98Eb\9aF_\98Id\9eLa\99Bb\9aNe\97Mr\93Fq\8dGs\93Oo\9eHi\9eDn\91>~\90<z\9dHr\9aCz\9eNp\9dAs¦?f\9dDo\91Fj\87Ov\8cFu\9aLu¡Mm¤Fs¨<t\9e5z\9f-\81\99.z\9c/|\992\81 -\81¡2s\9d?o§3k¤4s\9fA\7f\9c@\81\9cEy§Dy\9eNq£Mx¡S\7f¬I\87®?\83¡B\85\9bR\8b\9cW\90©P\96§U\8c¢\\88¤U\8b¢_\89\9eX\8cªb\8f¨h\8d³`\91¬Y\95¬X\90¨c\95«e\99©b\8d­^\93¦X\99¥Y\9c¯b®³]¢ªX¡­Z\9f®Y®q\9a­qª«zªª{¥¦j¢ qª¦o¢¨\7f ®t¥±o¥«m§±k\94«v¢¯i¦¦j®¯i¹¬d½¬b²°i¦­]¤­a¡«_\99¦o\91\9bg\81\9b^\8f\9a[\94\97U\8c\94d\85\92Y\8b\99e\82\8ca\82\8cV\85\9ad\83¥Wx\9f_\86¤d\85­e\8b¦b\82¢a\89±j\98«j\96°i\92§d\90\9d`\85¤U\8d£Y\93\9bY\96 i¢\9ek\97\8fg\95\90^\99\8aY\94\84\85\8d\87\82\83\83\80Q¶zM±|L­\82\88\83\81\86\86\81H\97\81?\95\88\8aS\9d\8aV\97\90`\91\8f]\9c\8ea\96\84c\8d\90b\83\8bb\8b\8baz\91ay\86a\86\8aau\92Vv\8cZu\93bf\8adb\8a_`\89kk\81sZ\83dZ\84o\\83a\\7fcXpmYpaYerUaq_ejNklYilW[oNLoOJcRPi]ApWRt]LsZSmKDjPNaSGURFcO?wCHsNP\80JLlOPwFQzLTtZLqRXgNOsPYjTRsKVzJNvYRrJYz[R\83]N~^E\85X;\86TF\8cSG\8aWG\88RX\8aKD\83VC\7fTA\8bY2~W>\85kG\8dZA\89Z?\8e]@\8ab;\81^?{OO{RS\83fX\80aS\7f]F\83YI\82iJ\85ZEzfH\8afR\88nL\85fR\8ffK\8cgY\8ep_\8egX\8ae]\88b]\8c\U|^J\81ZI\81eC\7ffN\87aL\84\F\7fO=~LK\84SH{PK\81VK\81ZP\85RS\85AI\82IQ\82HQ\83O[\81PT\80UV\87Sf\95P^\95Rl\9bFd\8cG^\9aPk\8dSo\97Mz\91Km\99Rg\95Hr\94Ap\8e:\84\92E\84¡E}\99Lx\98Ks\98Np¢Lm\9dJo\95Io\89Ru\85Lp\9cNo\9bKz\97Ep\9c0u\9d3|\95<}§:\84\9d(\82¨'\86¦'\81\9a0x\90=t\91:{\9aE\7f¡4w¥5{¡5|©;\83¤<y¬@\81 M\89¦D\82§C\83¦@\92\9eB\89\9fU\8e¤R\86\9dP\96£S\8b N\85¤Z\8c£f\81\99Y\84«Z\8f©^\91®_\8e£`\93¥]\95°e\94¬^\86±S\90¦P\92²S\9c±\£ªX©ªT²¬T­£aµ{¤·v©¸n²©u©§m¦¡r£ r\9c¦w\9c«z¥°r¨©o¡­l §i§¨t±¡r¹ªk·®f±±g¯¯g­·g¡²e\9c¥a\9e\9eg\9c\95j\8e\99i\90¥_\96\9f\\92\9cY\91\94U\84\8bW\81\8c_|\90^\81\97Qz§T\83¨Y~®Y\85¬Z\8a¦Z\85¤h\96¦d\97¬j\8c¯b\8b«Y\92¦Y\90£b\95 Z\93\9e\9e\9d\97Y\9d\91\\9a\8f\87Q\9f\80\83O\9f\88\8b\8d\84\87O§{T°\7f\84\8a\85\8d\88I\9e\8c\82@§}C\9a\81G\93\82R\95\88[\9a\90`\90\90c\95\8bb\98\8b]\89\87Y\86\90V{\92cy\85g{\7fb\7f\83`x\7f^u\8ack\87_n\86Vk\86]^\8cZd\8fhg\87ae\81efxmdmoYpcaoe`ejUkjVilP`oRdlN`kRPaSAaXAeQIhRDrNEuRJkPM`QLdQL]H=aIAtG<yE@zONuNEsIK{GJxRKrIRoKQnOZnURlOIsNMqJGoKQsXE\80VJ\84WD\87\<\8eb@\84VH\80JD\8aMM\8d[F\80Y:\82Z4\86Z;\85[=\89cG\86hH\93^E\97^K\8c\D\8ccL~]Rz\XzUV\7fQV\87YL\80ZB\80gH\83mQ|aHwe@\7fmG\7fnG\88wS\88tR\80zW~zX\8ao]\84cW\8df]\84g]|mN\88^O\87_R\86`B\89SC~XLxVDsTH|\T\85TP\85[X~MV\7fINxIT~STwRQ\80TZ\89M_\84Wd\86Of\93Ti\95Pd\8cNd\8dKl\8cWq\8a\k\8eQp\96Kw\96Hs\91Mz\93C\82\90@{\94C~\9fOu\99Rr\9cMk\95Oo\92S{\98V{\98N\7f\8fUz\8cK}\91K}\99Hw\955t\944\80\9a9~\9c8\7f«0\84¯3\80¥.y¡1\82\93=|\91J~\94E|\9c=\81¢:\82¤6\8e¥8\8a\9f@\8c©?\80©<\89¨J\89¡C\8b¦B\90¦D\88«J\8f\9fW\8f£[\8f£Z\91\9dV\86£[\83\9bd\83\99e\7f\9dY\85©\\86¨S\93¥Z\85©U\87¥^\8a¨\\8f¨Z\8d¯S\9c®]\98¯V¢¦^² Z³\9fe®¦a±sª°f¦³p®³s¥§o¡\9fp¯©x§©s\9a£l\9b¨w\9b²m¢¥j\9f±k««o®\9ej««c½¸m¬³eª±^§¹b\9c¹d\98²l\9bª_\94 p\87\97d\8b\9eU\8f¢[\95¦[\88\97S\7f\93^\80\99c\83\97^\89\90U\82¥Q\84\9aX\84¡b\85¬T\91£S\90¯Y\8b§`\94£f\8b®j\8d°Z\94§h\9c\9d\\93¥O ¡^\9c§g§\9bc£¢`\9c\91R\94\8aZ\9d\8bZ\9c\83Q\9a\88X\9f\90\84V\9f\80\80V¨{Q¬~Y±\85\82\8b\83\8d\8c\8a\88C¤|R\99{N\98xJ\96xY\8az\\8f\88Y\91\8aY\9b\86[\83\90X\87\89]\82\85m\7f\8agq\85]{\7fko\84p}\84os\8ecf\8a`g\82Zd\90f[\83h`|\^\80hhwbexpgm_]kakdYdf\WZ`OWgRS^X^lKT_T?nP<kP8hWGoTJvOCcUH]IAcTFiA:mG?lK5tKCvQ>{AA{@G\81>N\83@QsIXkKToSQoLPuPYmPOxVPnGIxM>w]B\84\K\84_G|RA}TC\83MJ\8cGF}QG\84R9|\A\82^=\83d@\8ad=\8a\G\92kK\85hC\86`G\89YI\7fXOzcQv`SxZUx]E\85ZR\84gK\86kD}`SwkMydK\84nW\8bzT\87|M\81{X\81vN\8bu`\82c`\82d]\85sK\84kP{kO\84cV\8feQ\91`F|RL}VAp\K\7f`K}]M\88[_|YS\85SW\82NM~[R\85NY\89T[\8bNe\89Wj\91ah\92T`\88`^\84Xh\92Xh\94Zt\8fNk\8eTl\8eUz\9a?|\9bHw\9eIx\9a9\8a\8bD{\9b@z¢Hp\91En\9bUt\96Sl\8b[u\93Yu\90R\7f\92I\80\91Ep\96Cw\98B}\8e5v\93B\81\98?\81¤>\80\9d9\85¥/\80\9b7\84\9d8{\9b8\82\93=\89\96C\8b¤6\8c¡7\87\9e;\89\9c8\83§9\83 :~§=\8d\9bB\8e§A\97ªG\89¬L\83\9fR\89¡Y\83¢\\91«X\90¥a\84¤`\7f\9d\\86\97b\8a\9aX\94¤X\91­Q\99§]\93«`\90¤\\87ªV\95°]\9b«X\95£_\9c§^¤\9f\9d[§¦d¨n ¬d§©qª¤o§¥u ¬jª«r\99\9eu\98¡w\94¥m\9a°t¥«q¥¯j¬©j¥¤k·®a»·a«²f¬µb«°X\9b®e\9f²g\96±e\8d¨l\91\9b^\8e¦Z\88¤`\7f¨[\85§]}¥S\85\9bd\86\9cd\88\99]\88\99W\89\9c]\8b«Z\8e®T\88¨T\93±]\96¥[\91¤j\8b¢h\96£i\9e¥e\98¡W¡\9aT\9c£V§\9f\9e[§¥U\9a\9aU\95\8bR\96\81O\93\81\85O\9c\84\8eX\9b\80V\9e\83K\9c\82\81P«zT¨{^¥\82\89\8d\8f\8f\8d\8dR\9b~S\9a\80D\8cxP\8d\7f^\99{\\92\88U\8f\90]\88\8ch\82\92kv\8cg{\90do\96hp\8ch|\88pz\8emk\8bni\89_a\85[Y\8fe_}b\ta`j]anb\xcgt\fm\k]S`e[U\[T\\SSbQWcUScLMlO9gG;nJ>gB:eDEhGFhK;qG;oI6yH2tA6zL2oG;yE;w=K\7f9T\83=P\84HWwKSvQWvORnQ]sQVvKKzJB\81N8}V<\83WF\85RF|QD{OD}NB\86JH\8bJH\82T;\8a\F\87[D\8d_<\89Y?\84dK\8aiK\8diK\81iD~^O\8c\R\86WS\7f\Q}aQyeN|kW|cO|bM\80hO}dD\83dE\8fuQ\89}^\82s\zwOtkL|kVyeR\7flV\87qW}xK}uO\89`V\8bZL\88`P\80]OrZKn_JpVNr^N|XWzXOzOQ~LX{QO{U]\88JZ\93X]\8c[e\93`j\8d\`\89de\80^a~ca\8dYe\92Ym\96Xq\95Ou\9fAv\99Hs\9cA\7f\9a>{\90=\87\92H\87\9cHw£Il\9aOo\96[u\8bUn\92Zy\96W}\91Mp\99Lj\96Dl\95Iu\8d?o\92<s\9d4w¥;\88\9a8\83\976\86¤Ey¦B|ª8\85\9d.\90\972\8f\9e?\85\94:}\9a<\86¤5\90¨<\8c\9c6\81¡:\84\9d7\8b¡=\91¦>\95£A\88£K\82¦W\88«T\8e©Y\8e¢Z\91\9fT\8c¦T\96\9c_\92\9f^\96\9eV\9b¤S¢¯`\9c´^\98­d\8b§f\8aªc\94¨f\95\9e^\94¤X§ªT¬\9e\9b\¬g\9f­j­¤g¥¨k±°b©£c««o¡¥o\97¬j¡£r ¬i«¤t¯¢m¥°e®¬a²¸]º®f¶¶g¯·c¦«Z\9f«^\9b¨n\9b«n\94©n\95£b\91¨N\92±X\8e§S|¯]\89¤N\88¥^\82\9e]\85\94a\8f\99U\90£Q\90«^\9a©S\98¬S\91¨`\8e²`\9d­`\9b¢p\94 _\99\9c\9eZ§ U§ªX\9e\9f\96\9c\95\\94\8a\82_\9c\82\92^\9c\8bb\9a\91\\97\8a_\9a~M¦\86K¢zS°\87W¬~Q³\86\89\90\8d\92P\9e\8c\8e\\9b~T\9azN\94tP\8f\7fU\89\82X\83\82Q\8e\8b]\81\93h\88\91i\7f\8e[{\8a^z\8a_j\95gk\86qv\8aui\8dlh\84ob\7f\_\8agg}c]ud^o[nrcpqVoxWerangVfWOQaUIXZSMWMHUIV]MAiFEoD<rJEoQ8fJ>a?=^I9lJ=lD1i?1m>1n=4l?8~B?v;M\84:K|@PzDMyNMzRN|FEzHHwMZvTM\80DJ{RJ\81Z:\86LC\82JMzH?\88RE\87R;\83J?\84U7\8aTF\87Y?\88ZC\82]A\90g?\8ajF\83aH\87lG~gB\8ciC\90dI\80fI\84`NzjN\83bV~dH\81kQz^V~mNxpJwhOzqO\82\81YtqMzqR\7flHxmJrfU\80gXznK\85~N~sQ\81pV}iV\89jW{]Gz]GzYRtPFpVGxYTzMXnNV\80[TsRYzX`\7fK]\86QZ\8eOa\88Ne\91Rd\8b]b~Ve\8a\b\83]o\88Vo\93Rz\9bUm£Pv\9fE|\92Rt\9aC|\9c>\84\909|\99Kz\9dJk\90Fl\97Ir\99Zl\95Px\9a^v\9eXw\9bNi\9cGw\91Hv\95Bs\98@}¤B|¨;\8b¡A\84\989\82\9d?z\9fA\87§0\89\9f7\94\9e-\88\930\98\90>\88\98:\86 8\92\9c<\8f\9eB\8e\9aE\86\9e@\87¨6\80£7\87 D\8b¢C\87©M\85\9eL\8b§X\91\98[\95\9dU\90\9f]\94¢S\91 W\95¢[\95¤W\9f§`\96³c\9f§_\99­_\90ª^\97¯X\9c¨\\98§T\96®Vª\9f\9ec¨h°±j®«n³³e«ª`´¨i®£p«¬w¤¦x«¤j¡¬u\9e¯qª£qª§d­´e·²c³³[¥¬Y¦°a¦­\\99©X\98§e\8f«\\8f®a\90®X\86¸O\8b´Y\83­R\84¦U\83®T\7f¦U\88 X\82\9dU\8e\98Q\8d J\90\9fT\96©S\93 U\99¦Z\94¢_\9b©^\9d¡g\98\9b\9b\98\96[¡¥]¨ \­\9eg¨¤b¢\9c\97X\9f\8e\91\8ej\9c\86a\9d\82X\9e|W\98\81X\9c\80\83\80\86\8c\8f\95\8a\92\8eS\9f\93W\97\8bM\97zJ\8bzU\83~R\81\83V\84\84W\85\81Z\84\88\\7f\87]v\84`v\8feq\93du\91cj\89op\8dkp}qn}wo\7fmg~pi}cazd^}VixYb\80VlxNovTgfRdbOQVYLLVLPTOVXMKiCKiJDpP9iM;iI5dF<^=>d@/l?5nE7gMAkK;nB;rB8|=;\7f=D|BH\849O\88EQ\83DK\8dOE\86HIwJTtNOuIKvFE}JH~QB~QD\84NH\81H?\86J9{K9\7fW3\87Y8\81X?\88cA\88]@\88fM\8bjN\93aK\89gJ\8dlF\89k=\82n>\87fE\84kF\81kO\7f`X\7f^PyjU|jMrdRseNvmNuwI\7f\82Jy|WouLvvHptCtkN|rHziP~jU\86rW~rZ\7fwMwxU{jMqhPrYOpQTsVNwNLtTKpVIs\V|V_yXWxM`\83R^\84W_\8dOj\83In\87Rb\81Rd\82M^\8aYg\83Xm\8bRu\92Vx\8bUr\95Mv\90Js\93Qx\9eR{\99A|\91;y\90=o\8d=g\93Kl¡Lj\9dMl\96Xu\95Ym bi\9b\h\8eLs\92Mx\99Fw\99Iz\9e>z¡5\82¬;\88©B}¯7\8b¨;\8c£8\98\99/\93\949\9e\971\9b\98:\92\8f7\8e\97C\8b\9a>\96\9fH\94\9fA\93\99G\88¡;\7f H\83\9dE\8f\9cA\96§I\91¢P\8a\9eT\92¥L\97\9eT\91\9f_\98£X\97¤Z\8e\9f`\96\9fc¢¨b\9c¶Z\9c²]\99¬^\96³\\92«Q\90¢W\95«[\9cªU\9f¥_£ f¡`®·m©°h§°`¤ªh§ªl¥¬j\9f¢u\9d©v£¦g¨¢m¨¦r¬¨l¬²k³²k«ª]°¼` ¸Z\98­V\9a¶S\92®b\8c«d\8e¨a\8a²]\8bµP\83ªT\90¢\\83ª_~¤O\8d¤R|¨V\8c\9fX\82¦^\87£]\92¯R\8e¬^\89¤T\91®\\93\9c\\95­c\95¬c\99®\\99\9af ¥^\9f\9b]ª¦b£«c¡\9ef³¨c§\97\9c\8d[\9e\8c\8fc\9c\93\8c\94\89\8d\7f\8e\8b\8c\95\98\93\8d\89G\9f\86\89\88H\9a\82Q\92tV\8bwZ\82\89S\82~T\81\8a[}\8dU\83\7fX\84\8bc\7f\90Y~\8dhu\8apn\96xf\93sd\88ch\87un\7fsg|m_zdYr^[}[iuTjyOdvP^rXbi[X^X^QYLTbGQXNUh\PqHBnM<sA;qEHpF=gA6gF6tB<rJ0nD>vI/z<8uN:sEA\84CFzAD\83@@\871E\8e@I\7fJ>\89IH\84JH\84CBvAKtEJm@4~S:vQ<xOD{GFxS:\80I-\83R1\8aX)\80R9\85XB{_>\8dX3\7fgC\85rI\8dcF\8c_K\89nA\8c^D\8ca={Z8\80cI~iD\83mK\83bW{`IviOtfCzhSplB\82sK\7ftM\85\86KtrHrvRvvIniXwoYtmN|xRzyN\7fvTwmLtoNtlTodVvZNzZNv[Jy_XpVSzVKyaWrbQzW]wVc\7fRg\8a]e\80Id\80Ln\85Zq\86Ka\86P^\85Yr\83Tp\8a]u\84K{\92Nr\94J~\93S|\8aH|\92Ky\98E\80\92Gw\8d?{\9e?y\90Kg\98Uq\9bTu\96Yi\8cUp\91Ql\99Xh\97Ow\94Ks\8fJ\81\95B}\92E\85\96<\86£A\89«H\7fªA\8b¡7\92\910\91\9d%\96\92(\8e\9e.\97\927\8b\9a8\90\9c7\88\99C\8e =\94\9a;\89 5\8b\9d>~\9bC\7f¨>\92¢@\8c¤E\95\9cW\94\9eS\8d\96O\97¢[\91¨P\8e¦T\99¢T\92­X\99©a\95¥[§\9fU\9eªe\97®c\95º[\99¤`\8f®]\96£`\95§Xª V¡¦d¨]±Äd³Áj¬¾c¦¯m¢²o¨¦q¬\9f|¥©z\9e§t¥£|¦£{¦¥l©«b±®b¥´a¦³[¦ºe\99·a\97²X\92²]\97¶_\8c¬V\81ª^\85¯W\87¯V\83 V\7f\9e]\89£]\85 V\87\99U\8c\96Y\85¤\\94§W\91¬\\86¤\\88¬Z\89\9eZ\90\9fb\94°Y\95±U¤¬R¡ [¦\9e[\9e ]\9c\9da¥ l¨ªe«¢j­\9b\96\96\93\91\90\8b\94\8e\87\87\88\94\91\91\95\94\8b\88\81\8bN\9f\88\82F\92xV\8e{\\8c}V\82|_~\8cUy\90V}\85Tu\8a_~\94]\83\88`z\8cem\91pk\8djl\8bdf\85cg\82oonlqr`arifu`crWVcTZdTYldcpa_aU]]cNfcP^bQ^iZVnMKxD@j<@mCDkO=jJ?qOAuH9\7fK4yJ5w=;}>8}ME~KG{=F\818F~5@\858B\8f>8\8cC;\8276\81;;}E>\81A@x?7mH1rI4~JB{M?}LB\83P<wR0}V*\87Z*\82b0x_9xc:\86^2\84_>\85hJ\8b`L\8afQ\8cmL\8abO\87_C}X8wZ8|k@wdQylRsfF~^B}_Dy_J\84tH\80zE{{?\80\84D\86uI}qOtnQpuQywNzj[w{Tv|N~{XzlSvtP|lL{qXufXqiWpaTm[PuXTwX\o_SmaexVe\80Xg{]_y[[\82S\{S`xZs{Lm}Mm\80Mr\80Ww\81Tl\82Lo\85Lw\90Lx\8bLw\8dCy\96Hz\9dGz\99D\80\99A|\968p\99@p\8fQu\8e\z\8aZs\8c`t\94Um\97On\97Ql\98Oy\95E\82\97J\83\93P\80\98G\81£M\85£B\86\956\91\939\95\92+\9d\92*\94\9d-\91\97/\8f\9d-\8d\990\97\9a1\8d\8e?\87\92?\81\9c@\85\95:z\9f:\7f\9e@~¬@\83\9cE\89\9dI\88\9bV\93\9bS\98\9cI\99\9fP\88¦G\83 J\8bªY\89©[\92 Z\9d\9fS §X¥¡b¦«_\9a¯W\9e¯a\92¬f\8e¢^\94 Z£¬W ­d¨e§ºb®»k²²a«ºb³³q°²p·´y´¨t«¦z°®v«·{³¶m¦·[£®[§²X\9b¿`§¹d\9e²Y\97±S\90µb\8f¸l\8c¦l\8d±j\84¥V\82¢V{\9dU~¨\\85§R\7f¥P\89¥`\80\9bZ\92«b\83ªb\94°S\86 [\8c¢U\91§U\8e\9aL\91¥^\9f¶[\9b®X¡¤V©¥T©¡X¯¥_©\9dZµ­a¶\9eY©¦\³¦c¢\9e\96\89\96\94\93\8f\8f\83\8c\8e\8c\92\94\92\88V\9e\7f\88K¥|R\92\89H\93\80S\8fzL\86y[\84\87^~\82Zt\83]y\89Os\85S}\82Uu\95_~\8bbw\83fv\88rn\7ffk\83guynvqglmfhs[hdccbe`obhbWdf[iki`lcblbZc\b`_][fWTm[WjYO\7fHK}N=qAN|L<p>AqJEw@>\83I:z@=yM5\82B:}DE}A?\8aBN\825A\8b6H\8c99\8963\90>0\89<5}57\81??\80<8qE/r9*tA-t?<{?A\7fJD}?:lF+sM+~`-}W+\80_4\7fX-\85d=\84Z3\82l:\82gJ\85eN\81`H}hEwgJvS>t]8~aC|eDtmKwlFx^H}`BndD\80nK\84w;\83uFw\85D\83z=\84|A\81lGvn[{o\{oV{x[p\80Or~SzsJpjO|lWu^Tw]Zn^VuVRp_O|eSj^\hYWv]as`]|Y_t]_vY[nV^yKmuR|tYm|Uhs\o\88Wz\86Yv\85Vy\87Mu\93U\86\9aSv\8dIp\8fJs\99Ju\91:s\95E\82\91>x\9f>y\91J}\8b[s\96`u\95d{\96Uj\97Lq\96Ns\93Pt\8cK\84\98F\7f\9dCv\98E\88\9fH\8c§?\81\9dC\90\900\9b\94-\91\91(\95\97+\99\89'\87\903\95\8b.\88\898\86\8eG\92\9b<\8a\99C\90\9b8\89\9e:\8f§A\7f©?~\9fA\88¡P\83\9fS\91¨I\98\9bN\96¡P\92¦R\91¬Q\85­O\84¨U\85©S\9a\9cT\9a¢T\9a¡_ª§U¡§Z¢¬_\92¨l\94¤i\96¦f\9b f¨¨b¦r¶Âk¯Äa·¹h³¶r·²nº·pµ·\82¶±\7f«·{«¹u¤»w®»p¨¸e£¿a\9f¼]\9fÂ\\9cÈS¢½R£»Z\9b¯e\94¬h\8a°e\84£m\83¡\\87¢[}¢]{\9fV\88\9c\\86§R\82¥X\90©]\8f¨^\95¦]\89ª^\8fªS\8d\9cU\94\94M\98\9aH\98\9eS\9d©X§\9c\9d[\9e£Y¨¤R¬¤U¶¦Z¸¡\´¨b¨®d¨¤Z¦¢Z\9e\8e\87\8a\8f\99\9a\89\91\89\83\8e\8c\94R\9d\8b\8dW\9e\86V\9e\80X\9auI\93yK\98\86P\8d\84P\80\81\}\86[t\7f[z\86av~Uo\86Ot\90Xx\8afw\87fx\83kp\84gq\7flp\81j|v`sjbtfWwh\kck^dk]bpaahhjiimcdjedfdffcldkeYnmJjcL{UCzSG\86TO\81HKz<Au?B\80=D\85;G}DG\84GF\88E:\82N?\81R<\89GD\87DD\87>F\8cH=\91@;\8fA6\92<0\8c@6\8a?6\8462v9=~8:w:1r>7n>3xB8x:5pE2qD*tL,~U+wS'zO'\81\1\84^7\80b<\81g9\89ZD\85]L\85gJ\80eKxaLx^;zeJyeHnp>rjCvf;qkDwpErnJr~>}|Aw\7fF|{B\83xJ}vB\7fvQzrW\84qZ|tN\7f\83Mz\81Um~HltLkhSphPqaVj\Lp_SuYV~UUva]sabrZcr`]qf_te`idad_`ePfdXonPwv[wnZp\81\z\82]x~dy\88a~\87e~\91W\83\9bU\83\9dSr\95Lz\96Es\95Au\93=\7f\8c@\83\95H\85\99O\80\8e[w\92V{\91]r\86Yr\85Qm\87Iq\8aGz\91Du\8aIw\94J\83\99F\80\93I\85\9bB\8d\8f8\90\912\97\8f)\9e\85'\97\843\9a\8c-\8e\8d)\92\8a.\86\875\83\8d>\8c\8fF\96\99B\90¡A\94£:\92\9bA\86\9c8\84\98?\8d¢J\8b«V\93©P\8e\9fL\94 I\8d§L\84§H\86¯E\86¦G\88ªV\8e\9cT\9a\96\9d\9aZ\9a§d\96¨]\97¥f\94¢h\99¨p\9b©p¢¬p\9etµÅp¿Âj¼Çr´¶t»ºe¸»r¶¸|½|¶¹z«»\7f°·{­Åe§Ài\9e»g\9fÆi\9d¿[\9e½U¡¶Z\91°e\93«^\8a³f\8d¬j\8c¨p\88­e\89¨d\82\98Z\88\9cf\86\95]~¦]\8f£\\8b©a\89­e\8b®^\93«V\91\9fN\99©J\8f¡R\97¡J\9a©X\98¨W¤«]\98¡M¨¥`¤¢Y¤¨Qµ¥T±¤_¯\9e\9f\9e\90\96\97\94\97\90\94\8f\8e\8f\91\85\90\8b\92\82\82\85\87T\9b}U\89\8a[\84\88a\83\85gwvbu\81bs\87U\81{\q\88S|\8bOz~Sv\84W\7f\82bpslv\83eixkmf[wieocgqjdrdk\WiWUkd^Y_khg^ggahZbh^eqafrebsiRxcOq^KsWLtWG\81KFtCEyBNy7E}3E\846L\7f<J\7fI8~?5\83?5\8e?@\8e79\8c>A\82A;\9077\91;6\9371\85</\9790\80>8}77s@0\817.rA-}B-{A5\85C9\82<&x9*tF!\87M)\83T zO'tZ-~V5\85XA\85XE\88cJ\87b=\8ddI}gC\80cA\80l?{eD{g<piGrdOtlLuoG|k<tiLsy@t{FwuE\83zNqrLvs?}zU}\7f[}\82Xx\82Oy}H|{Tf}Rn}OilQbcTjfKafMl_NmhSggYfcUnh_miofhjmec_kbZfi_VcgSgjNrkUnpSuv\nzSv\84\x\80`\86\85c\8b\8dY\8a\8d[\89\8dW\85\91W\84\8cM}\8bCy\8eCz\8eCs\89:y\8fF}\96Ey\98Oz\8dSn\98Wn\94R~\80Lq\83K~\83M{\83F\8a\8aF\86\94S}\96R\7f\8aL\85\9a@\8f\95:\90\905\91\904\8e\90/\93\85-\94\82*\95\91.\88\8f@\8a\8b6\8c\95@\92\97B\96\98N\8b ?\8e¥2¡\9a9\93\9c@\93\9cD\87¨C\87ªE\88ªU\88\9eG\86¥J\95§C\89¡?\87¡C\8b¦T\90¦J\8c\97R\8e\99\94\9b\9fb\9e©c\8f ^\97ªj\99¬h ¢p\97ªv\9bt¹Ét½Ås¶Âp¸Æf³¼m¸½q¶ºvþp·ÅzºÇo²Ën¨¿l¬Èc\9e¿]\9fÇg\9a¾d\94¶b\9a¹Z\8a«a\8b«]\8c³f\92«b\86­i\80§e\81ª_\89\9bf\81\99g\86\99c\8f¤f\8b\9dg\8c\9f[\8dªY\94¢c\8e£d\90\9bY\93¤M\90£L\98¨\\9f©\\95±_¢´Z\9f¨[\98ªU\9f Q¡«[¬°]ª `¹¡T¹¤W°\98\92\94\9e\99\95\92\92\98\94\91\93\89\8e\86\81Z\9e\85V\98\88\87\82\\92~X\8e{]\88\89^\86~`\82tc\84w`y~j\86\83b\83\82W\82\80W}\80YwzVtoipzmm}dmo`hgYxp`wjhqZjjZoeUj`Yf``Yg^]iV\eZlYUoX`y^izZazb_|_V~_Z}SVyMPpSKqONw:Q{:O\849J\88EK{?E\819A\8997\8905\8873\8a0)\883.\8c8<\8a19\81A7\87A:\88C4\94B7\8193\7f=7\847,\83:'\845,\81=4\8858\84:5\834'|;"w?(\83J%|T&vS+uQ'{\2\80X1\81RA\90QB\8da?\8c\3\80^8veA|l>wpCzc7p]HvfJzgP{nDtjHqs>m}>rzH}wHx\7fLywMvqJ~yX}\7fU~\81Hv\82Lj~FnsHkwOgwTfrWdjIkgNhjZicZmhYf`Yb^Rf]]`jj]kga\ncip\qehcqdVkjZwnOsuNwnMu{aovcx|[~\84_\87\85]\85\8aX\83\87N\85\8dJ\86\8eJu\82@t\8cIo\85Dw\80Gw\80?\84\82F\88\91K}\90T~\8das\87Sw\8cS\84\85W\8e\8dP\8a\83J\92\87J\8e\88T\88\89V\83\8bQ\8f\89@\96\8c?\93\957\9b\8e/\93\923\8f\8c(\96\89,\8b\95:\8a\96A\90\91F\8e\8e<\8c\99C\87\9cI\8f§D\9d¢8\9e©=\94¤<\96¦@\97 L\86¥N\8dªK\8e§K\8b\99J\8d£Q\85¨G\82¦S\8a¦P\8f\9fK\95 S\8f\9aX\90\8f\99T\95£^\96\98`\8f\97b\97\9fg\90¨o\94°y\8d®q\90tÊÄ\7f¿ÂvÄÂo½Ïl½½v¾ÇvºÆp¼¿z½Á{ÀÁ}®Æm³Ìq¤Êm¨Ìc\98Ãc\9e¼r\9fÂv\97Äj\9e½c\88³l\8d´j\87®c\82¥b\84¡l\8b¡`\8a¨h\86\98o\87¡g\92\97k\87\98j\91¡^\88±V\82¦T\88¥S\93\9b`\9c¦R\91£Y\96§S\91®\\9b©U\97±d\9cª_\9d¤bª°Uª©e«©Y¬«\®\9f\9b\98W³ ]³\9c\92\95\92\96\9a\9a\90\8c\91\97\8d\8d\85`\9c\82X\9d\89\80R\94\89`\89\80d\90|\\97\80^\84\84\\83yV\83y`wx\xxV|sbt~S~wZ{uYmxctxbopendet]cqfjydcgbgkSjo^hhY^fbUacX^`T[^l\cl\gzZbz`e\84e_}^U|_\\80LX\80ONuKF\80PR{:V\809N\849E\82A?\84>?}@A\8083~5.|73\8c*-\8b*-\8f7*\8e,:\8847\8a/.\8e25\90;=\8a:*\8685\8cB/\846*\88?1\8559}06\7f8/v4,w@+zA\1e\80J/|H/vI#\82P2\83[:tZ>\81YB|S<\87g>\82^B\83d:vm5sk@xp7tp6qlEyj@ql@\82j?wo:qvAy}@{|@r\84@psNnwPwoTt\81Nn\80QoxPr\83KgqGl{E]}V[lW[v\kmRcpZki[jkTclZacU\_Xahg\hd\lhj[tipw\li\aha^fm_nkWomWxo[uxY\81|T|t\\85\82Q\8f\8b_~\90b|\91Rz\88O\87\88J|\86Ay\80@w\80Jt\84=wwD~\83I\7f\8bJ|\89[y\8cTy\83K\89\7fK\8b\85J\91\80L\8a\88J\85\94V\8d\88L\92\8dX\8e\86R\94\8e\85@\92\98?\9f\97\8d;\94\93?\8f\8e3\98\88C\99\93@\8b\97@\90\92L\90\9bP\92\9dG\92\97H ¦:\97¢9\98©>\94©M\88¥E\8c¢W\86¤X\88\9fF\8a\9aC\8a¨?\82©H\94¨S\91 U\9b©Y\8d©N\94\9a\93V\9d\97O\9c\8f\95\\96\99^\97¡f\9d¦q\9b\9do\99¢t\8dsȼzƽ}ÃÆxÂËpÊÅtÂÀp»Åx¿ÅxÅÇ\7f¼ÄrÁÑu·Îw©Óz¤Ñq\9bÍk\9eÇw¤Éx\9fÁ|\9aÄr\90¼k\94­q\8cªn\89¤a\8c©m\92«g\97©f\99¨i\91\9fm\85\99m\85\9fe\8b\9c]\8aªW\86\9cS\85\9fO\92\9eX\95\9e^\9b\96]\8f\9eb\90¦Y\90«_\90¯e\9b§e\99°_§®i«²b°©Z¯¥^­\9e`¦¡\ª\9f\9a\92\90\99\94\9e\9d\90\93\91\8f\94\86\89\7fZ\9c\82\83S\9e\86W wa\91yj\98ze\94}^\8ezV\8c{P\83}[\83tR{rW|r_vq^tudqxaet`cubiibnhgp]lj[lo^ja[_d\`ic`keSbdW_[b^_[a[^dYrV^pZ[v[btaa\80_`\81a`|UW~\YxQK|IV\7f?S\83:Jw9Lw<H\82>=\80=8}=,u<4}2/\8822\8b01\9013\8e4)\914/\89.&\935(\9071\942+\87=%\86<"\83:*\85+2z-2\82,,\7f3,\7f80x9$u9/zD(\7fF)\85F*\88E.|N5\82N3|R9~b@\88c9\86g6\82a:ze:zp1wi1}sA\81u?wwB~tA{v@z\80?|y?\80wE\7f\7fFw\84HqxEw\82Iv~NuzKl\83MdxEhvA`\80EdyIfoK[pY`wUesWZpW`qVZfTcdUa`\ZkaUq\alajimbdsj`}blzcdnn^ppb|i\vrb\84pb\83tc\89{V\81}R\87yR\85\88Q\89\89]\7f\92T\84\8dK~\8aUw\82N{\81Iw\88Cw~Hu\7fJs\82Km\85Tu\7fZ}}R\84{N\86|I\89|P\89\83O\8e\92K\8b\8fQ\8a\88Z\8e\8aR\95\89S\93\84S\9c\83\90G\9d\93O\9d\8fG\9d\8c@\9c\8a=\97\84K\96\8dM\96\92H\90\91K\92\8dG\90\99R\9d\95\9eF\9a§B\9a¢B\8c\9cQ\97¥O\92\99W\8e\9cT\91\9bJ\8d\9fH\84£L\89 D\94\9aJ\8e T\95¡U\94£R\9c\96P\9c\92P\9b\94\8c\9c]\97\9bh\9d\9c\9da\9f\9c^¤£j\97}ÁÍ{ÁÎy¾ÏxÈÂyƽuÃÄzÇÂmÉË{¿Êp¿ÈwÃÄnµÆx¶×s±Ëh\9fÌi­Ép­Ët¦Ês\9aÅj\9bÁm\93·h\97ºd\97¶g\8e·h\97µf\92®e\8e¥m\93©e\8d¤g\86®m\8c«m\8c£e\82 _\8b¥[\8e¥b\98\99[\92 X\88\95c\87\9cX\98¤_\9a¡`\92\9fa¥§a¨£U°ªT­\9b\9a\§¨W£¤Y§\9a\9b\9e\95a²¢U³\95\93\95\8d\92\87\97\8b\8c\91\89Z\9b\87\©yX®\81X\95{[\8awh\8a{g\9a\81`\94u_\83x\\8cwc\8do\~lVzmWzv_wtYdm]jp\ht[^d\k_aigjoVusammdiu\ji[Xo^[p^^nOakUUfKjYOzXUw[YuV^|`drb[q`Ur`QrVWsPVyBMx@TsJKrB=xBAyDA\83;2z;-\81>1\7f4>\894:\8775\859#\8b7)\86>#\8c94\8e1+\91B*\90?*\839+\809"\8a71\8569y5;\80+9\81=,sC5\7fB's=.xD!}O.|G$zT.{R>~N5y[>\86Z.\86f<\8ee>~_-\82g4\84s3\80y9rs<nr?|z;vk<yq;ot?sr7zxJ\83tJouFktDpyIm|Eb\80G^yTbvOkwEauMX\7fNXoJ[|XcpRhmV`rQ[wXeq\`jYXf^[o\\`fWlm]cdghm_hoUl{g_xe\lp_lj`|f]tqa\85vV\80\80_\86\7f[\80~^\83\81\\82xO\81|Vx\82M}\83K\83\88N{\81C|\85M\80\80Bz\84SutHyzR{zN\80tS\80\83L\82~T\84\87R\86\85O\90~X\89\81Y\97\8dK\90\81R\93\81U\93{R¤\81\91@\97\8d?\95\8dB\92\8f:\99\8b=\99\8cI\8c}D\90\81D\8e\87K\91\85@\8c\87H\94\91?\92\9dK¦ L\8e¡Q\8f«P\94¤N\98\98R\99\95N\96¡O\86¡Uy\94I\83\94U\8e\9bR\8e\9f_\97\99K\8c¢H\9d\9c\9bJ\9c\9bT\99\9b\9ch\98\91f\97\9fa\93\99\9ak\9a®k\97\84¶Ì{½Î\83¾Å\89ÈÄ\82½Æx¿ÅtÌÀpοjÉÅmÈÈlÈÄm¶Îl²Íh®Òb¬Ôm«Æh²È`©Ãl¡Åo\98¾r\99¸j\98Àp\8f»u\94¸p\9d±t\98®y\99­o\91ªr\84±n\88µj\85§l\84£b\87¡g\92«`\8b¢h\8f \\8b\9fW\85\96a\8a a\96¡T\9a§W\99\9f`\9f¦a­¢S¹¡Vµ\97\9b]©¥^¤\9b\92\95\9b\9c\9f\9a\98\99\98\91\8b\89\8e\8a\89\7fZ¡}S­{]®xd¤nd\93uW\96oY\91tZ\90nf\81m\\81q^\8aoY}heuncuuVqmXgm]eccedaclfla`i`qs`qu^kw[lvch}k^rbclTamQ\bJZfJllRpbMk_Ow\bmYWobUgdVm[Rq\YmOQsQE{GHzB8rG7m;8y:3\847/\82:.z@:uE=w90\8a8'\7fA,\80I\1f\87>"\8344\8cB+\8cD/\8d<3\857)\85;3\8b?3\8a=8{35y27\8299\80E6vC*zE!sH\1evJ vN&xT1yT;|]=\84[2\80U+\85Z3\83Z3\87j0\81p5\7fn6tq@ws>v|Dpu?soDmkFvj8zh8\80n9ufHmr@op;ksK_kL[vL]{NexN]rEb{HYyH[}J[|QcrVhvRdoMaxTkr[gjTbiVYcYUlfUjiYmp\`gQafUcvbjwddobSmdRviWxt\zq[v{_\80{Y\86~[\83zP\85vKvsIw\7fUu\82P\80|R\7f\80G\85|I}|J{zMy\80LyvQ\84xR~qcvtc\84\85R\81\85X\85{M\85\83G\8f\82P\92\88X\98\89N\8d\8aN\8f}L\9f\88A\9f\83C\9f\86?\98\83G\96\80=\93~=\8dx;\96~;\98zD\8a\83I\8a~<\8b\86>\92\8dH\94\92\91P\98\9fQ\93\9aT\8f¤J\96\9dO\99\95V\8d\99N\8f\9dS\7f\9b[\88\96T\89\9eP\8d\99Z\88¦P\94¡H\96¤I\95\9a\9bQ\9d¤X\97£Z\94\95`\90\9aZ\90\99Z\97©j\9c§m\9dv½ÊuÈÁxÇÊ\86ÅÈ\85ËÐ|ÄÏmпuËÈkÂÊvÇÆh¹ÅqµÆo²Íg²Ôi¥Îr³Êm¨Óf«Ìf¤»f\9b¸u¡Ål\96¹u\95µv¥·u¤®q£°q\96±i\9b·m\9a¬b\8a´s\87ªl\90ªw\8dªq\88£j\88§m\88£_\8e\99`\8b\9ca\91\9b]\95\9ff\9a\99\91f\9a\9ai¦¢_­ W¯\99f¯¦a²\9d\98\96\92\9d\99\94\96\98\90\92\8d\85\80\81\81J£{V |Z¡sV«zT²zX¡ue\93rY\98wT\90we\85om{dg\8eqf\8diZ\82gczndulOok[ql[maZf^big[`fdhc`gai|\jkcptSmqT_g^\rVaeTd`IYeIaYQwfFhdKng_uYPhVMn`ThZJhSUjSSlKEsXIrICqE<sH=y=;z73\7f7;\84HApD;vI9\82D.\84H-\83C\1f\86>*\87I*\87G)\8a>+\83C3\899!\83D+\83=1}E4\827.w;6\8a@=\8242u>2yD#oM\1cvR/vO5\83P-{\CzT8z`AyY6zXAzh/\85k8xq3\80rB{n=rz>px=i{Gqr;rv@tbCpg;yhLnlAmm:kg9on?jhA[t?U|FduH[zR^|FcqE\{UTtPXySgvTg}W^tXpm^aqVkk\^\Zde_Sad^`ldSgQZqZ`|aVufZwa`re\sgb\80u]xwc\81|p\7fx\}p\~pYtrH\82vGulUsvW\84tM\80rR\7foH|tP\84zH\85|Q\83|X\8clSvvinz[y\83S\82\82W\80{Z\8f~H\8e~R\90\86L\8b\89R\87\88L\8d\80F\9bv@\94}D\98{@¢wD\99\87A\9d\81=\88}<\94yB\8f\83J\95\84C\95u8\95\823\95\8fD\98\8c8\9a\9c@\9d\94I\9a\9dU\91¤T\98¡S\88\9aV\85\92N\85\91L~\8fN\83\9dX\87\98N~\97_\81\93S\95 K\9e O £T©¥O  ^\9a\9fU\9c\97b\8f£^\8c\9a[\90\9ck\93§a \85ÃÈzÈÄ|ÑÄ\86ÍÏyÖÙqÑÒtÚÆqÑÆmÇËxÁÆyµÂqºÅp¹Çu­Êg°Ôe®Óo±Óh­Ðq¥Ái¨¼m­¸s£Âp\9cÇx¤»u¥¹z¦³v\98³m\99¶b\97®f\98´s\9dµo\92®j\8b\9fv\8e\9cn\93\9fm\87\9ek\85¤b\89\98]\91 e\93\9ah\8e\99n\99\8c\87\93\9d\9a\96[´ f¿\9e\9d\91\95\8c\90\90\91\93\8a\84aµ~^²{W¬\7f\81S«|M¨rX¬q[µwT¯sU§uc\95sX\9bj^\90jb\88bf\85_j\84ah\85i\\86^_~d^uiSgfWh`Mh\QhbWh^_c`_iYfxdiv_doXilTrsQilR`oMafP^^KcYKpdLoeIimSmdTf^QoZJr^AqdIcYBf]Ki[AnZ>~M<|N9sD0zI4{L;\83=:\87:4zE=zE>|N/\85D$\80K)vF"zN#zF1~D1\8aK'\8aD&\80D.\82D0\83G.\80;4x@0\8194wB7}>+\82K1vQ)tS2vZ2\86T9\89[:}U@{\?ydB{bA}l<|o6yr9}i>vsAmoDpsAoz=}w9|sAtpHufDmc>skHrqIpf<ff5gq7dy:ZvG]|HZ{U]~N`sS^qW]zNU}O^tXczVlr[mm[koVfdReaZ_e`Z\cTX[\Wb\ct[]v_[v_UzgXwp]ztg}ldx|jq}oqraqpbtsQunM|fH\82iKxvB{xG\86tF\8fmI\88tE\8crP\8fzL\90qW\85r[\7fz`wyXx{[\85}d\83|[\90\87Y\8d\87H\91\81C\89\86J\90\83I\96|N\93yR\9e}D\9b~H\9fxA¡\81@\95\826\94\89;\9e~>\97\80D\9duD\92tE\90y7\9a\7f\8b\93E\99\98N\95\94Y\88\96R\8c\9eQ\87\95Z\83\92]\84\88U\80\8eX\87\96J\81\95F\86\94S\85\90N\93\99V\9b\9aR\97¤M£¯U\9f©\¢£S\95\9bY\92\98\\8a c\90\9eZ\98\9e\84ÏÕ\80ÎÕ\85Í×{ÌÔqÓÔrÈËvÊÏzÑÇiÃÉm·Ív·ÉpÃÂ}¿Êw´Ôm³Ùb­ÝkªÍ`ªÔm Îq¢Íw­º{¡¿w®Ç}¥Ã\85¦¿w\99­u\93®i\98½h\92¿o\98¹h\8e¹l\98«s\90ªo\88\9as\8c\98y\82\98f\8a\95j\8f\8e[\8c\8f\\9b\9ad\9a\94h\99\98\98\90\98\9f\9a\9c\98hº¡f­\92\97\8f\87\92\94\95\8c]·}kµ\80\86\84\85W«uP«pV¯uM®hV¥zYªvb r_\9aeY\90c^\91dl\87h^\8cfd\8andxp\\7fbcjj[k__lYVcdbhaThZXlZZpbde`mkUom__tNcuZcsOkiNgeZb]DjbCc_DjcKu[JqjMrfGlkCf`OgeOpcEj]QmX<j`>zP:\7fN>zO7sF.pM1}H;yF5vRBtQ6\81V4\84O1\82L)~T+}G!\80Q2|C9yA6|N,\82D4\87;,\8cA-\8eG4~B:x3-t4+s3.\82J$\81P.\80V3\80^'\84T5\8aa3|g6\80Z;wm?t`>wgAqg1\83kBuqGlxKekNiwAp\817pzGt{;pgCllGshEddEon9sb0lk1jy:XsFO|QRtST\80L`lUijPcyJZoZfyTex_jve[l\`hUseXjlUddUf]`iVcgSi`]gcUhg[yaau`[\7fnSso`|t^\80uh{zfzplknnrnZ|hWvwGymRxqP\83vN{}K\84kG~qL\81yM\8a|P\90|Y\92\82Z}uV|rXv\83U\85\83Q\86\85a\81\89]\87\81Y\90\7fL\92\86M\95\7fF\92\80P\89\7fP\96qI\93\80A\8fvJ\9a{J\9dw6\90w-\8at<\8eq>\97yH\9cq=\9cr<\91\84@\91~7\97|;\9d\87F\94\89L\97\94U\8e\93Z\8a\91O\8d\8a_\87\85X\84\85Wy\92U\7f\9aT\8c\92\~\92Sy\9a[\8b\9d[\94\99\9fT\97 S\9aªV¡ªV\9b¢R\9c\9dY\9a©[\8b¢\ ¢i©\85ÇÕ\87Ê×}ÉÐ}ÑÒ\80ÔÇsÍÈl×ÊqÑÃoÏÑn¾Í\7fÁÎ~ÂÂpµÐq²Îq®Õ`¯Ý\¨Ùh¥ÕmªËw£Ïq­Ìv©¿~±Ç\81¨Â\8a\98·\84\96±z ¾u\9a¼m\97Âs\92·{\95±u\91¬k\90\9eo\8e¡l\84ªt\8b£l\93\95b\98\91\\9d\90^\9c\90i\9a\99g\98\9dk\97\97\98\97\9a\90\96\99\94\97\8a\8f\85\90\92\95\8b\80l½wfµ{Pº\82JÀ~I¼{G¯mS²kS°nQ¬tW¬sU¤nZ\91bY\8fg[\89rh\8dwe\85\7fe\87we|bdx^fm[`_eek^cn\fj``gfff[be[kjaid\\tR`rXZjU_oXZcYc\S_cAca>pbKmYSeaNk`GrhHnmGkjOabI_SRkTIyTDwU;qJDuB=yO2nK*uH.kN:jNHqPFkQ1tU-tU.\80J/vM0{N-\80Q2\83L6\87H2zH7zJ2\82</\8eG3\8aA-|69y36v/&z9&|A)}E0\85B7{P-~b6\87i6}b7\84iD\82m;xm<\80p3wp;\7fx@|rCyuDntGksEp};p\80:dqBbqGhgDcgJdk?^cAfh1nn9is:gmMSvQSnOZvTgkWcnRUiMUpXerWgzeXtaZrZjdUr_Zded_]^f`WjY_j\[[]gh`yhb{k[{_c\82oU\81mSys[swg|tf~tjolhtj_\81pQ\7frJ}xG\7fqQ\87kI\89vQ\85s[{n[\81\81^\90\82R\8d\7f^\88\82\\86\81c\88z`\82\85Uz\86Sz\88Q\7f\86[\85\8b^\89\84S\90\81T\88\83L\8axI\8bxH\88xG\8fv@\8e\80K\8fzD\99z>\94s2\8cp1\8dn;\95kD\9fhG\9br;\91\7f@\91x@\96w;\9d~E\92\80O\8c\88U\84\8ba\83\8b`\89}S\7f\8b[~\8aY|\94[z\90^\85\96Yy\8e_~\97Z\88\9eU\99¨V£«L\9b¢U\9a¡\\96¦^\92¨P\98°Q\99¦V\8d¥V\9a\9b\89ÉÝ\87ÈÞ\81ÆÖ\81ÑÑyÕÈzÑÊtËÌpÉÃyÀÁsÀÍ\82½¿}»ÄmºÃl©Ëb«Ïj¢Ún±Ðl®Þw¨Îw\9dÊ|¥Óz¦Á}¨Ã\81¬Ã\83 ¿\80\9b®\85\95\81\90³v\93¯q\8a©\80\87\9fs\84«o\83\9cl\95\98h\8d¤s\85\95e\8e\9fa\9f\90\9a\95f\9c\9e\99\9a\8c\9c\8c\92\8e\92\93\83\8a\7f\8c\80\8e\86\80\83\82[»y[Ã}TµsN¾xS¸wQ°uU¯|Q¯qN±tZ tX\95gW\96if\99rb\98{`\82}f\89tc|qf\7fhehehglZej^gc^nn_ok`nahja[afZcbWrfZe\[e]^`^`^ShYU\`KdfI_hHeiYqiKfhHi\DkgN_^>`aFaZ;q]@eWFtT?wK8lC5wL)qA/sG+zL2tM5wKJnO=vP7wZ7\87U8{L3zV9~G+\80O+\8bL+\81L2\85D-\8b::\8272\8aI1xB+x:7\7f=)z3.\81=&\80D)\85E-\84U+~_;\7f`0}f?\83fE\88q?\83e7}rC\7fkB\80p>xnMth>hl>tzGfnDck;heEjl9fe=kj@bd5Z`>jd5^o9]h;anNSyKRyFZsL[mN[uLbjXNiZbr_jybjnXXhUcbdm`bahg\U]ie[gVjback^fp_rp\{_^sXhzbYufPwpc}yevv_r}fym`qnayx]\80qWzrW\82eO\92lY\86vL\8ajP\8dyR\91tU\86\83_\8e\89d\88{`~yc\88\7fe}\86U\88\90V|\92^\85\8ea\85\8eU\94\85R\99\8fN\93\82D\8a\82B\8ewL\86q?\86p=\83xG\85\80;\8el4\91r,\89n2\91g>\9br=\8fiM\9crO\93}L\90w?\98rD\9a{>\92mT\8cqP\87ye\88\83V~y[\84\87\\89\80Z\80\8aX\86\8dY\8f\83e\84\8dY\88\96S\95\96[\97\98S\97ªQ\93«N\9c\9cW\94¡^\94¯Z\94¬Z\9a§S\99¥c\94\9c\87×Ü\87ÏÔ\81Ð×\83ËÜ\82ÃÍyÉÊyÍÄzÑÆ\85ÊÄ~ÄÆuËÌ|ÀÈq°ÈjªÓq¤Õm¦Öo¦Øh«Ûi¥ßs\9eÔ\83\9eÏ\81\9fÇ\7f\9eÄ\83¤Á\86©¹\86\9c»\80\93Á\82\8f·\83\98­{\92£\82\8a\96z\83\9am\80\9di\8d\94a\88\93h\8d\98a\99\8db\98\91X\9c\90_\9f\9a`\9c\94\97\9d\91\95\8e\95\92\81\80\8a\83q·|s´\85q±}p¯\82v°|r±\83\81\81d³~U¼vX»nP¹qS³}Q¸wK¼tS±wa«v_©w[¡pb\93pZ\9cl`\93ra\89xj\83rk\85k_}nbzcagadhagelbokbrf]robii[mkXfk\`f^imako[`d_Zffe^chUahFbbGjjNplJiaIgZMcZJ`hK`g@`_:iU5nN7lJ;rD4lB+iC1iD0xR6wS0uP:yU<\81[2}Y4xM4\82N=~S;\80T;\8eQ;\8dK/\94G/\90I+\92D9\87;7}G:}A7xB2\83<,\868.\7f='\84@1\87H3\81J>\8aX7\89\;}e;\82j:\83k@\7fe5~l7ti3zj;ycIukGue>npBruAlp?sb:l^@hW7d_9]]:bd;fd=_d;d_AY`GcmN]mJcnF`vBcwQ\lO`m[TrbVve^rbfl^feamgkicnjXjj^hi_jmdfxjru`ln\mmWvbZq`^nd\}fX{dR\85rZ\80qlwwpz|kwqdwwa{qW\85qX\86gZ\8bdO\84mO\8ctQ\89sZ\92xW\92\86c\87\8ad\86\7fa\83\87]z\88_\82\87a\83\92_\8a\96_\88\89W\86\88R\8c\90P\94\95F\92\88<\91\889\8ey>\8c{J\92vD\87u9\8cu5\88k1\88l7\95k>\94i>\92cD\9alD\9eoE\93oM\97tA\9csE\9ahL\97iJ\8eoP\8bs\\8dxV\8dwX\84~R\83~[\89w_\88}c\8c\80W\92\8bW\89\8aW\8b\8fS\9a\9fX\97¡R\97¥Y\9e ^\98¤\\90¯V\92¦_\90¤[\96¢^\8fª_\97\8aÛâ\81ÙÎ\89ÐÏ|ÓÜ{ÎÌpÊÌzÆÑsÎÐ\82ÊÄvÏÍ|ÏÈ\85ËÓv»Ös´Øx³ÜnªÛt®Ôl¯×y£Ú}\9aÏ\84ªÓ\82\9eÁ\8d\9e¿\82§¿\84\95¸\93\94º\87\9aª\7f\97¬\80\91¯\8a\8b¤\81\90¨\86\90\9br\88 n\8f\8cx\90\95i\8b\94j\95\8cq\98\85\9bl\9d\9d\97\9a\90\8e\8c\83\89\93\90\83\88\88pª}o©{q¶|o´\80\7fq¨um®pl­qd´|c¹|X¯v[®nO»sU°}S»rV¸|c¦yb¥yf\97sd\8coi\96od\97ej\82pf\83kd\84d`~ekochnfadc\kmbge[sfgpiad`\igW`dbfnW^pUjf_bddbciiS]gJ`nDadNclJ]_OddN\YBX`BZ_JanH`^>kWFbZCpF8mD2uR;f?6fK+jP)~K8qO3vP9zK0\82X,zR3\83U7\86I?\81L.\83O%\8fL(\8fB2\8cI/\8a=/\81;4\7f47}39\8aD/\8a9(\83@ yJ%|P$\83L3\89O5\7fX(\88V*\84`9u[?~_9\83d1\83u.{p=zl?wp@moHloEoe9uj;snImt6_d5fh4]h5ca5[`6\_1a`9YlBVe?ZcOSsEbjM^vC]pHakYckQ[h^[kWloWorXkg_chggeflineffrZjcdieimz[rm_nk]~qU{sYurUti]xqc\7fnW|mexvmyoet~^smi\85he\89o_\8bjY\8cm\\8atQ\86lR\86i]\93xW\85\89f\87\85V}vd\8a}W\82\8ea\81\84T\8c\89^\8d\82M\8b\8eY\81\90E\89\88A\90\88A\89\81A\89}@\8c\83F\82w?\86qDzsC\89q:\86f7\96o,\92k4\9ck<\8do;\9fr7\9cwJ\8fwD\8dvM\94m?\9dwB\8dxG\91mN\8fsa\95yR\8c|S\8d~V\90vQ\8d~Z\95\84\\8c\8d\\90\92S\94\89S\91\8dN\94\9f\9bW\9d\97O\96ª_¡\9e_\98ªZ\8d§W\9b V¡¥V\9b X¦sÛÒxÝÕ\82ÙÏ\7fÊÏ\81ÏÍvÌÌzÚÐvÖÉwÑÐzÏØwÑÓ\81ÊÔwÈÏw½Îy¶Òn«Õx­Ìq©Ër¬Ö|¡×{«Ê\84ªÈ\8c£¿\89\9eµ\88¢¸\8e\95´\94\95¨\88\92¦\85\86°\89\7f¬\83\89ª\8d\8c \88\89\91w\96\93y\97\91y\98\91\7f\99\95v\90\8a\93\98\94\90\8b\8e\8es\9f\86\86\92\91\85t·}o­\82m¶zl­\7fi§~v¨yw¡|p¨mp¥hb«ohµli®u[¸dY±bg¸kc®ub¹xa´vb£ta\9em]\8cod\85sg\86jh\8ebs\8a\nwfj\80llyjl{oivcdviXk]emRblXbkYbd^Z]ecblbgtU`nVabhe[iq]bmR`lZ_oQ[pM]_LT_J\]A]i6Wf<Yj?_j?[j=^\E`\NiLEsG>oS9jB2rA#vM0uR.uO)|O1\86U.\80Q+zP.yP=\82U6}N'|M-\8aG&\8bD'\88=2\8bE;\89?6\884)\836-\8dB.\8d?+\8bC,|K$vL$|R)yZ\1d\80S!\81P-~\2}Z-v`+\80c+yl2}p<su<he;fb>cd5mh6rj=ntAbo?`l;Y`.Y`0\f1[].[X0b`4cf9_iG`fOZoJ_nFckJmsMfqUci]gd_ieUrk\ig_pqdpummggkgtlessgphadkgjmenw]qtZ~xZ}uWynW{kX\80tUzr`xii|mf\87ym\83{bzp]\8clf\8fs]\90i^\7fq]zqL\85nW\83pP\83{Z\84|Y\81}U\81xU\84wU\81\85T\8b\81\\81|R\82\80P\86\85K\89\8b@\87\87B|\828\80\898}\87>\85\84F\82vB~uH|u;xj0\83d0\8bi'\97j;\94hA\94r=\8fu;\99y@\98t@\8evE\86p@\8euN\8cxO\8at\\93xZ\8cxS\93\80P\9a\82F¢}M\99\8cL\92\8d\\98\92Q\91\8eV\93\8bM\9a\97M\9d\94U\94\91P\9a\92T\96£N ¨S\9a\9f`\97¡Z\9b§Z ¤^¢\99\86ÒÙ\85ØØ\82ÖÒzËÕsÍÒpÒÎqÎË{ØÏ\80ÒÎy×à\82Òß\88ÍÎzÊÙ|ÉÏo³Ëx¬Éx¬×o±ÆzµÆx±É~¨Ì\8c¨¹\80¨¾\87\99³\8f¢¸\8e\90²\88\94¨~\94¥\80\89¤\83\81\8f¡\89\8f¥\80\91\95\80\98\96|\9d\8bv\91\95v\97\96y\8d\87s\93\8e\8c\95\96\82\8ct\9d\85\82\88\8b\8d\85\88\81\83tªvj¬tq¤vlªjp\9brt§hg©onªke©jc«mZªhY¤jk\9fq_¡hl³y_ f`\98gj\93pg\8ekh\84m]\83hf\8ads\82gpzdqvceyfb{a^u]Sg]S]PYh\a[]\e^cdml_sXjgbpahhabs\asYXoJXsGXfNVfN`lPZh=U`GTeEZcET\CSh=]g<]X@^\GfYHoM?j[=qW4vD(lB/rI1rP$~Q3sL6\7fL)\7fR6|R=xO1|R.\8aE(\8fC'\84N/\8b@*\9284\88=2~C+\82:5\8c:,\90F1\8c\83W#\89L#~U\1e|Y*\82U\1d\7f[+\83]0\7fZ#{a/sd-ps9vk5s}3cu5``0nl*ln.pk-`s9]p>er=bd5ba([m.dd,gk+hf:ar<Xt>XrKZiO_oHbnLduDooLmr]ig]xbcnqalhiqnjn]ivdfqcstmnv]nj`hgWjee{q\vuM\81vR\7fuave[|qg\7foa}vb\7foi\88ik\84qh\83qgykj\81yg\83m\\92ej\88oY\82mV\90cM\7foL\7fkP\85}_\82\7fQ\89yP\8d\7fX\83~Y\88\86^\90uW\86\80U\84\82G\83\81BzwA\83\88I\82\83Auz?yxE\7fr?yqJ\87n:{t+{j(\84s#\99b2\96k;\89f>\93w5\92zC\88zH\91pI\93tH\87jS\8as[\8cyL\96qZ\8f~M\96uN\94zZ\93|F¡\8b\86[\9f\8eK\99~H\9b\8bO\9a\92\8cJ\9c\8bT\99\94\98D\9e\8f\9dV\94£^\98\9a\99^\99\9d\80ÏÜ\80×Ò\82Í×yÓÔyÕÖzÜÕwÖÚtÕÞtÛÕyÑÜtÎÐ\80ÍÔ{ÊÓoÈÊo¹Òs´Ìp³Õt½Î|½Ò\83¶É\7f¹Á\8b¬±\88§«\8b\9d®~\9f®~\97³|\8a­\81\89©~\91 \86\8c¤\88\8c\9d\8c\8b¡\87\86\98~\91\9c{\8d\99z\9a\88\7f\93\8c\83\95\93\87\9c\9b\91\89\8c\84\80p\9d\86\8b\91\8a\7f\84\7f\84eªtp©qp«ij\9ejr\98ro\9foo¦to¦ps\98cj\9a`m¡be¢^l¥ae\9b`d¨op¤tf¦k`\9cci\8dm`\8bgb\8ab^\88gl\82hh\80kpydf|g`|bbrg[a^X^UZbU\]VdY__Yjgbtd^oifgendim]aobed^YgO`cQUkM[eDUlCRdGS`ET[IQXGWZNQbLJgIT]<a`AaV?eS<p\3pS(mN+uK.mJ#qJ%zK(pJ+vS6zZ6rT4w[/~T6\84V3\84K'\84O\1d\8fG$\86>*\87>&\81?/\82@,\80D.\87N*\8bI\1f\8bU\e\8eJ\14\85M\1euL&tS)w`&v_$qi'pf*zj0rj/fk.ku)`s,dm)jr,br#bl1_u1hp3_g5`k1[g,\d1\q$]k-cp/hv<`m=[oGfoFdqLngJtqGioIlhKukX|oSrn^qbg~^ruapv_sv^uzhwvfoubwsb\85lX\83tW\82tP\7fvY{i^vdhwgjw`brjewmf\8akq\8cqz\8eos\81jd\8cuc\87qh\93hf\91h]\88dV\8abV\82bV\83eW\84saype\81xW\88\84a\81\80Z\8ave\85|^\8avX\86wS\83rG\8bsK\81v@~\80Cu~=|z?\85~:\8cs=\83o7\88q0\83k0\8dm+\94n:\8eh;\8ac=\86o=\8co:\93pH\8bmO\8frH\8cgR\8bmV\93oL\9cnR\97zO\9e{Z\97x\\9c\85\85Iª{M¢\81I\9f\7fK\95\8aP\9e\90J\95\8c\8fK\9b\87O\9c\8bI\9c\92T\96\90W\9b\97Y\9f\95\9b\9d[\9e\89ÐØ\86âÞ{ÐÙ\7fÒÒ}ÏÚzÛàsÍäzÍçvÎä{ÏßyÏÑ~ÒÙzÍÎvÌÅoÄÎxµÖs³ÊxÁÐ~­Â\93­¾\8a¶´\89¨·\80£«\85¦­|\98¨\84\96¯\86\89¯|\8d\9f\7f\85\9c}\87©\8c\94\9c\90\8b\99\7f\89\9a{\8a\9c\82\8e\86s\9e}\83\99\83}\9b\86\81\9c\8f\84\9f\91t\9e\94\92\88\83\89\8b\8a\85\86\82\8b\83j\9fqs£rq\9boh\93og£ja\98kk\98qy¤oc¡hb¡i[£Zh\9aY^¦cd\9dgn\9eqg\9eoo¡uf\97lc\88h^\84ec~gc\8c^e\89jr\89ik\86mkuqjmeelnXod\`NPhUPXRZbYU`lYal^lmbjfbncXbeWn^`jQYgQ\vHKnQQnJPh>Xq?JiSQeO[aCVdHVkHT\GPe>`[CZ`CiX@mb1gY,l[#oV"sV"iH\1dzG\1fqN0vV-qK)uU3uQ6\86P*\87P)\89V/\81K%\86Q!\87B!\87=*\8f?/\8bI)\81C&\86P+\86P"\8eQ\1c\81Q\1d\87R\17\86K'~Y-uW)xa$qa+ej"l_+qm8od)me1ip-_r&_k"cq0[m,]m-Vh2dh>Vl&[]0Rf'Qd&Zl+dv4cp@]jDek:fhGadCfnJjfL\rJsjUll_liYyha{do}mh{e}u`up[xrdn}curczzU\81lP\88xU\85}K{wW\86g_\80neufspeg~okwok\82ju\89cm\8fsk\90fi\80tc\83pb\8epk\8ccY\8c`R\8fb\\88dO\7flX\83o_xjU\88pT\90{V\89\86Z\8a|X\84xZ\7fuM\85lL\82}QxxMwsBss?|vC~tE~rE\81tC\84p<\81v9\87e+\80v%\83j5\8fqB\84mJ\91qH\87kL\92vH\80qC\89sB\81uQ\8eyK\9d}T\9a~V\97r[\9ap`¡\84M\9a\87\81W¥vG\9b\83\8aQ\90\81V\91\89J\9d\88\83W\93\8aW\9d\8dV\9e\8aQ\9d\92a\9f\96\91\90]¡©W\94\8aÝé|ÛÛzÛÏyØÍxÖÒ|ÍãyÙêwÕä\86ØÓ\87ÉÑ\86ÆË\82ÉÌ\7fÏÔ\81ÒÏwÆÒw¼Õz½Ïx¸É\8cºÍ\91ªÀ\94§¼\85®º\82¥¬\7f«¨\8b\99£\88\91¥\86\83ª}\83£\88\8b\9a\84\8a\9f\84\87\90\8b\93\8e\86\94\90\89\94\96|\8d\87y\97\80w¤}\84¢\88\8a¤\8d\81¡\90z\9b\8d\8d\84\85\7f\86\88\88\8a\89\8aq«~p\9cvh\95il\94sm\95ti\9dna\9dib\99pq¡fc\9ag`\9egc¡\`\99Ud\9eXe jpªnn¥md\9aei\99l`\8eld\7fnozmm\7fbt\82iw\87qyzlrtmdrrgkg]l]^nXQiQQ\YXe_[kebea^hldcoXhdScd]fYXpYYpYUrUIvEMpH[qFMrOMtOUdOY]@RdCUfISeH]`:Tg@Z]9Vb6Xb:g^4p`#nU+jT$kS*jM\1erU$yM'\81Q2zL-~V&}[+za.\81\-\80\'\8a\93?(\8d=*\8eD-\8bI,\84D1\8dN*\8eH#\85R'\8cK#\86N\14\7fO\19\81P${R\1cuQ\1fi\&i]*j_._h/fk(^e'di*ai(Tc/Ra0Pf5Vc4Ql<Ze5`g3U`&O`*Vc.]e-^n8_l5Wv9]n=^h<im:dkIegU_tR^lQmgWvYcq\_qibukmqrzvg\81}Z|zVsu_{l^\83va\80|T\84~V\8byM\82kU\8ahZ\86hc\83ilwil|qc\80ftyaw\82dm\8cki\90di\86hm~ka\86g`\87k_\86`]\89nY}lM|iYxjT}sO\83jQ\8bsa\87\83f\8exc\83oT}nI}oKq{Kh{ToyJ{lHyuB\7fp>|l?ys>um?~l@}p2xm(\83t2\80sA\8euE\85nN\8atH\89zK\86|K\89zJ\82\81B\90}G\9bxK\98\83Y\95\84[\96uY\9bxT\9e|S©yJ£xL\9f\82L\98\87V\98\84N\9e\8e\84Q\9d\86U\9b\81\89\92\91\96\89\96K\95£S\99\80Þá~Öæ{Ðß~ÒÌxÊÖ\86ÖØ\80ËêxÚê}Ôç\81ÈÙ\89ÐÍ\80ÒÎ|ÇÇ\88ÆÇzÇÐwÄØ\81·Ì\89³Ò\87²Â\86¯¾\8c©µ\7f¬º\8c±­|¦¥\7f©«\7f\97\9bz\8d£x\8b\96\81\92\90\84\86\91\84\94\8a\8c\96\8f\8f\89\8b\89\94\99\88\98\88\85\9a\84\84\94\7f\85\9a\86\8e\84¤\8b\83\98\86u\9b\82\83\81\88y\97yn§\84\83u\99\81u\96\84u¢tw\9e|l\9epe\96nf\9bii\94mn\9dbk\9dak\99i`ªad¥`d¨`^\9bYg§bc¢[k§pv\9bfo\98er\94mn\92oh\85pi~px\81pzvus}kxzu{~qo{bjqfkec\maas]W`aJ[UPa]VidYh`XfaV`^VbY^jV\laTdXPp]LvFFsKF~IRrCYyLUvPUq=^_8TlAS]CN]IWhGM^4_c;Ma0Sb9X`&f[*m^*n\&iS'jL\1csU\1aoV\1eyQ)vX"\7f\84`\1e{^"zd/z\*\8aS\1d\88G(\88K#\86I+\96R#\92L(\8eU%\83Z)\89N(}U'\89R\19\87P#wT\15\7fU\1f|Z\19pW+fZ&`j0]l)X[$U`)Um.ed2_c<Zb=Mc1Vb2Ok1Yf0Pi2[]-]a"b\/Un2]n?[j3^gHag6Zj8Wu:TpJgjO[nI_jRnleb`]ibhkZgx^tuc{xm}vZ}rTmkY\80kW\81zV\88uZvqU~vU\84v[yqT\84i^~ljxrg{up\81ql\86lq\83dm\82\d\8ekq}eo\8akn~gf\85h\\85h`\8bd[}`O\81gQ{hZzc\\8an_\81wU|yc\8dn]\89yTzwKwsTswLh~UiwHmaVscLn`@pcIkp=zqBmk?}i0th+|u=\8amD\88yF\92xR\90vP\8apQ\8bsE\8auK\87\82S\94~M\92\83V\9a\87[\9dv[\98}X\98\80S\9evY§}P£vT\9ez[\9f\81P\93\88\8b\8dT­~Q¦\89\8d\84\89\8e\88\97R\9e\95\80äâ}ØàvÏäyÖÖ\86Íß\81ÎÜ\84Íç~Ïá\87Îã\88Óä\8aÔÞ\82ÖÔ\85ÕÓ\8cÈÌ\85ÊÕ\83ÉÏ\85ÄÊ\90µÒ\93·Ç\8c¬Á\8aµ·\84°ª\83µ¬\85¨¤\88¨§\83\9d\9e}\94 }\90\94s\8a\97z\8c\8e\83\86\8c\8a\89\90\83\92\87\8b\89\8a\8a\93\87\85\8f\86w\94\8ez\9e\89\89\81¡}x\9eyz\9a\7fu\9a~w\97\82r\94{s\90wx\9c\83q\9d\80r tv\94tx\95nr\9dup\96os\9bks\9agf\91jj\8eal\9b]j¨a_£db jg¢cm¢Zm¤]u\9ahn jy¤et\9afm\97fr\8ckl\87kt\83m~\80l|vw~sur~nmzkup\rj[dn_[lcVle[mbTj_OpWVh_S_dZg]ZcbS_XJi`Qj\YeWWfPLsGLwMO~EK\80AZ\82C[yIYjM_f?blLXeJUePLfEOlERj5Tp3Rg)\k1c`,of,lb(b]!bQ)oO rN\18s[\11zV\e\80U\18\82a\1etW#v]&\7fR\1d~K%\81E&\85L$\8dX\1e\8fT$\8eM/\8dL*\95N#\8bY&\8d`)\7fa\1cz_\esS\15vM\1cuW\1eo`!ed&\`'Yc&aa%Y_&V\2Yf7Yi?Z]>[i>Uf2Uh/Qd.Yg-`\)h^&bf&Zf*Vh5]c@XfETn;SsARgFUl;bo=hfJhb]_kaXk^b^drWmtasuc\80sj|hi~kWtiT\81rX\7frS\83wPwwV{z\}{\|s^yjevqf\80zg\89rk\8cth\93lj\88dc\83^i\7fec\82bh\86kl\84ja\83eT}fW\81d[\85[Q\80_I\82`P\85pYwp]yme}s`~lV{qO{|PmuPlwTltOrfNy`YrXYm_NghMri=qb3tc3qg2\81h7\81s?\89pJ\8dsP\8evK\8etG\95oE\95tR\8a}Q\88zH\98\80H\98}N\91\84O\9b\7fL\99\7f\83Q¤v\£v`©wZ\9dzP\9d\88N\9d\92\8b\8c\85\88\83\7f\88\93\98\9fO\9e\98\80éÝxàè\85Ü×}ÜÞxÙÞ}Öã\80Ôà|Ðà{×Ü\83Ñß\7fÞÑ~ÒÇ\81ØÔ\88ÑÓ}ÓÓ}ÑÌ\81¾Å\84¼¿\84®È\94§À\89¨¹\83««x«\9e~¤¤}¦¥\86\9e£|\9e\9a\81\8b\9b\83\96\96\87\90\92\83\95\86\84\84\8c\7f\82\93}\86\90\8c\86\88\8a\96\8f~\99\80\81\93{}\99\81\81\9d\83\80\99\80v\96\7f|\98\82\83s\91zt\99uu¡\80\80l\91pq\94sy\95po\91|o vd\9fdg\98_i\95_e\9ehs\97Zb\9a_e\98fj\9af`¢\h\97_e\98Ve£hj dr\95Zv\99[z\98aq\85gs\84cqznpxnxrukztx}rhymkmVllVjj[Zh_a`\Xla]g_Rq[VqaRfa_c`[lZ^oNOjPZ`KYaNVsCWrELxNQtNE}@PyEbn:]c<biHa^:Z^BXhIMl9Mk;Nl*Ri%Tg$_[)a_,kV\1fmb+jX \R(aO'oW\17{M\17}N\1cyY\1f{P\1fxY\1d|Z2\83V\1f\81U$\81C"~B,\81M#\8bJ\1d\89S)~T)|M%~[%ug\1avg\1dnT\1azU\1dnQ\1dmZ\18i`%mb\17aj"Pk4Yi3[\1^k4VhD_b:h[5[e6Yo7Uf;Vg+da-fk2`o3Wi4at/`eDWt@foNQw=NsCSs:WbGafRpoW`eRZbgY^e]Wjmmfsoxnj\80om{iqvhfuj_~|eupX~sWtxZs{g}~Z\80s]\84{a\80t_\8bwm\8btd\87mq\7fnl\88fo\89fl\88ap\80`l\8fif\80h_\89qZ\7fbU\90jN\8b]G\7f_Vx_X\83gXyo_{k[~q^\81vZ\83lV|qQ~tMypQs{\jpXlcYpmPugNr_?yh>|`<qa9\7fd;}d9zjB\85xQ\83iG\92pO\8czH\98tW\90sT\95|Q\8cxT\96}N\99~F\9b\88O\94\84P\9b\84]¡yb«w^£vg§}]\9c}T\9e\83W\9b|S\9f\89\80\83\84\87\86\88\8d\88\93\92[ uÝÚzæà\88Üä\84Ùâ\83ßÚ\82ØÞ{ÓßtÛÙqàÜ}ÕÜyàÊ{ÙÇ\7fÓÌ\89ÓÔ\86ÏËvÉÐrÅ¿\7f·½\8b·Á\96­¹\94­®\81¦¬\84¯©x±\9a\9d\9b\83\97\96\8b\92\99\8c\8f\98\8a\95\8c\8a\89\89\87\8d\87\85\8c\8f\7f\8a\89\85\8d\80\87\96\88\89\91\86\84\93x\80¡}|§\85\86}\95v\83\99\85\7f¦\88\8b¥\7f\86\99tx\9as{\9fs}\9dqm\95zl\97sv\94ui\98ha£fe\9agj\9c_n£Zh\9bfd\9b`i\9ace\91dj\94Ub\91Qa\9c^h¡bj\9aZi Wq\9baz\95Ur\89Zv\84^l\7fklrmlvclyft~hlx^bsa`nfimZkqc`e\]gRahOWlTWqaVjXTnTWuK[rJadGYbD\l<QtESqMMyDE\81AMyMQk@[e;]^<^aJ^]HSW8Zc;Pj:Pk1Il(Uk)eX$^X#hV$c]%`[#fS#dP\1daL&kW!j^\16vW\ f\83\84P\1f\83`-s^0\80U,\89M$\82G\1ezG'xC\1e\86M%|N-xN,}R#pY\17pe\1ekf"jc\13wW\14iX\11iS\18kZ\15cd\19_j(Nd4Wf9Qe-ae5bj@f`@db<egC]rAbk9V_8fd=fr:Ys7]o0_j8YpH]hEbqISsHTq@]kCXhNggRfgR]]Sd`]Z\Y]`d\kgdtvrr|{xzvvykovvft|axtazzWw}exva\84ti\80{c~\85^\85\7f]\8cui\8cxf\89ml\8bdl\80_s{dm\85ib\7fhd\86i^\81nY\85qU\8fiI\91jH\83gN~nM\87dN\7fiO}iS\87rX}ob\80y^\85uX\88xY\7fpUzqZ{v]or^ln[xc[~eXrhPsb=}]B\7fhA\87`?\89e>|gDysI\81vB\8djI\8byN\91~Y\93yW\9ewM\99\82V\8d\80N\89\81J\87\8eT\8c\8c\\97~_¡|`¢\83\8a\86\84]\98|Y\98zS\9b\80\89\8f\80\81P\9e\7f\8a\8c\85\89\8eV\9b\84Þé\87æì\83Úí\84Ùâ\86Ùè\80åâ\7fâãqÙãvÛÓ\84Ñ×uÓÓ\82ÚÏ\81ÐÇ\8eÓÍ{ØÌoÈÍwÂÐ}¿¹\8d°¶\90¯º\8e³±\8e\9f­y«©\7f³\99z«§z\9f¢\81\9a\9c\83\8b\99\8c\8a\9a\8a\9d\97\8b\91\92\8a\93\86\7f\84\8c\85\94\86\82\98|\8d\93\81\82\99|\8a\8f|\80\98u\88\9d\86\89¥\7fz\9b}\88\9f~\81¡\83~\9f\80\8b\9dp\85£z|£lv¡rl\8exs\92hz¡pl\99``\9eXh¥Xo£bo¡_u\98Uh\95dg\9aYf\8fQm\95Rc\98Rf§Pg\98Rm¡Ji\95Ty\8dav\8dS\80\80Vkvct|auyjtpjjp\u~Vkrbjlgke`mk]paer[ZbcVhhOZeNczVapZWlN\wKgkRYpCcgJVpLZj?]q=OzAWnGL}CUg@W_8bg;Sf@\]CXX?He=Qe;Kh3Vl1Z[+aU&eV&_d\16_X\17\_\ecW\17bY\14qS\1ezO\1a\7fW\1d\7f^\16yS\11}P\1d\87S\1auX-z\\1e\85K%zO\18\85C"\83R&|Z yN\1f~W'oT&uR\1ffY"fg\19lc\17x]\1diS\12lZ\16he\17hg\18Wc+Jg)Oe9`Y1eb2Zd?a`=jjC_s7amFZh8cm;^m3k|3Yv4]|0Xn7VrIYmLcfB\pDad:TlM_^CZhG]cS_dYgfPgf^]kmalrhxzuwo{xvxttqm}pf\84xc\84wfxvV|x\xya\83pg\8awd\88yd\82\80W\89\7fk\93lj\88ci\92kg\8beo\80bt\8din\90\j\8dh_\96db\93cQ\88dD\88bP\8bfH|eR\86gKzmS~p]\8cxc\8ag`\88kX\8dr[\8ct[\80sX\86mR~mWzncthYud_waRvkGrgA~nJxm=\86m;\88m7\82mC\88tC\84gO\87mI\8doP\8etV\9bsL\92\80W\9c{K\93\87]\9a\82X\8e\82S\87\8a[\8f\84[\98\86\85\89\7fZ©z^¢\89`\99\84\83\81\8d\8c\80\8b\89\89Z\9f\8aZ\9d\8aZ\9f\90Y\96\8eëì\8eâî\96êä\8fçç\8aëÞ\86åÛ\82ÜÚxÝÝtàÚ|×ÍzÓÓ\84ÙÇ\8bÓÐ\81ÐÊ\86ÚÇyÒÎ\86ÇÁ\86ÈÂ\85ÇÅ\8c¸¿\83¸Á\89©±\85ª§z©¤\83 ¯\83\92­\89\89§\8c\8f¢\8a\96ª\93\94¢\96\8a\9a\87\88\8e\86\8a\8c\7f\91\7f\80\92x\85 }{¢{\82\9c|\87¤\7f\88£}\7f¬~\83ª{\8d¢\7f\8e£{\86ªn\88­p{«w~£v\83\98f|\98fs\97_l\9fdk£`c [k\99cf [l\98Op\9fSt\99Nm\8aSu\93Ln\94Mp\98Lg¡P^\98Cf\9bGv\90Rx\8aS|\86W|\84Svt\uobnsawpckqcfvUilSombti]uidokes`_he_ihMllKdsSfq^]sYh|NdsM`hM_f?baAbeJcuKZwD\nBRrBRp:Wa>Ue;V]9IY=MV:HSBN_>VY<T]0U]$TX#b_"e`\16d^\11i\\1dq]\19oS\1cpU\12|O\16\80S\15}`\10\82b\17\85X\11}_\15\7fX'wP'|M!\88\82O\17\85X\15~]\15y[\18s[!vc\19kZ\17i_!d_\1eff$o[#hY%g[\1d]](db(Yi0Vb/Vd5e]:jbCa`<cb@bnAfq9ap@iq6bk:`t9du:_q?Vy=`wK\iI\lK`dI\d>dcD]e=Z`AYkLagGmtJoqQkpgksmluoi|wftutuurtzqv\83vm\84xg\81|c\7f|c}sg\89qc\84{j\8bye\85{k\89|a\8d{`\8bmg\95bc\93ak\8adg\92ik\8dnq\95al\93fa\93a^\9a_\\91kN\90bS\86hN\86tM\87rS\86wZ\81x[\8b|_\95pg\91nm\87ya\7f~_\81uT\82tZunbwxf\82q^\80lR|iU~qK\82lR{qJxuH~v8\80k9\89r>\8fiJ\8crP\86jQ\8cpL\88vQ\92{V\8f{S\98\85T\9f}\\99xd\8d\84Z\92z_\8d~g\94vj¡}e\9e\83a\9b\82a¥|bª\85\\9d\8c\85\8c\8b\85Qª~Vª\85\84\8c\85[\9f\88\86Q\9f\8dêó\8fêî\85çà\8aÜâ\88åç\8aåÝ\8bçå{âÙ\82ÔÛzÒÏ\88ÎÊ\88ÔÆ\89ÓÓ}ÐÐtÙÏzÑÀwÇÆyËÎ\81»Ç\88µµ\8c­¶\89µ®\82«°r«®\83¦°\81\95¤\82\9b£}\8d\9d\87\8a¥\8c\98\9b\8e\93\9b\83\93\8e\7f\8c\93\91\9c\87\81\98\86\8a¤\81\8e\96\85\8e¤y\84¤\82\8a¤\84\8a¥\80\80£x\85¨q\8c\9e|\81¨p\80\9e~z\99zu¢ws\96pr\97qx\97b\7f¢ei\97hr Xl\9dRt¤Th\9eR{¤W{\9cQp\90Nf\8dNl\9aGb\97Vm¡Mf\9fLc\8cPb\93Si\85KkxJt{RnsUiuYtwMhz]tnZby\tzWjwYvgXq_eze_tmWzhOftGivMk~WXnU[{K`kSWpC]q9__?__I[dCWpMYm9Sr;Qo?[a@Q\:Pc@TV8O]6YN1H[8Ld:S]1Sc.OX(P[*SU%fZ\1efZ\19nb\11rT\1esN\1dnY\13zR\19\7fZ\ ey]\vsS\12\81Z\1duM\19xQ\1d~Y*qO)\7fK!\7fV\1c\81O\15vO\14|S\1cl]\1csV\18cV\10nY\17eQ"jV)hd*YV\1ddU+dX*gc%Rb'[`.\b2]a2Xb7cj7]l5Zw=_gEfhHeo@lmI`m9bs9c\80BV\7fI^z9Uv<]aGe`Nc`A\bFbeJY]JbhHcgRaaSmeTuoXpspo|pn|fn|itwppuxpnt\7frw\82h\84wmt|cv|[\85pf\87nd\82tb{yq\7fps\8a~m\89vf\8egd\8fim\8cmq\93bl\99ir\93Yn\9c[]\8e_[ j[\8fyT\90rL\81gQ\83j]\8fmS\8ep_\8dw[\94mb\94ti\8du_\8exU\85zQzwW{sS\80je\80h\\88ma\83gV}hJxcMxoR{pR\86tE\81iK{vE\81lH\80tO\82pK\8fmW\87tQ\96nO\93yV\94}a\90sX\9f\7fY\9f\85O\9b{O\9c\85a\8fxk\93{d\9f\8b]\9c}i \84i\9b}m¤\84e\9f\81\7f\8d^\9e\88\80\83^\9e\7f\89S¢{\¨\82\82\83R\98\7fÝñ~ãí{äì\83áÚ\8eßß\89ëÝ\85ßÛ\84×á\7fÜÓ\82ØÏ\83ÕÈ\82ÔÒ\89ÏÌ\84ÌÏ\84ÖÆtÕÃ\7fÇÃyÂÈ~ÈÀ\84½³|±±|²¸v²·{¨±\84\9b®\80\9b¥\88\92«~\8c£\7f\87\9a|\8c\95\85\95\91\83\91\8e\8f\9d\96\92\9c\92\88 \92\86\9f\8c\86 \81\90\9c{\8c\9bv\90£y\90\9cw\8a¥p\87\9fn\83\94z\87\9a~| }\81\9fvy\98ry\9bwv\9ak\83\9fa\84\94c\83\9e]r¢^k\9eYq¨Sw Wx\9dLp\94Tt\92Of\88Fb\8fNj\91Um\94Ul\8aOh\8eQe\83Pc\7fReqEvtEvpAmnJdsKisIgzZo{Zqt[poSxadw_cxc_wvTz{SrqEp}J`xQ[vTZzGSuGReFWj9Te4Qh?UgIchG`k?\oGWp=X`6U^3Vd4J[3OV7SP0OW2MY5RX(Ph#J]-Ma%]W!fW\16ob\fk[\10lR\11qU\16lY
-pa\10xf\10v\\ f{Q
-pQ\1cqV!xW |J(sN'xQ&\81V rN\elJ\1enI\14pU\13m[\1chY\1ac[\edQ!\N#Q\"]\)]Q'`Z&Z\-P\.Rb3Xd/Ob+Qb6Th9Tm=[q:co5ag>mfKglGgt9Zs:bxG]{Cb{IZt>\o9_eEUe@YlGgiNciLdfJedPn]Sid`piiutdsomlvfxpbrsgyoisqlyfk\7fey\84nvzirx^\80s\\82s`\7fxi{uj\87us\8czg\90xi\8ckt\98`n\92\q\93hr\93`j\90^j\9a^k\9emZ\94oN\91vJ\85p[\87w[\86s[\90uT\93vR\8enY\8cud\88x]\91vR\85\7fT\82|M\86\7fS\81xayn]\7fl]\88uY\89gL}cNxkJ\7fkP\83qT\85mP\84iFxoI}pG\84rV\87kU\8af[\8bqS\94qQ\91q^\9as]\92}T\8fzQ\9d\80K\95\80O\9d\84\\9ey^\98\83\88\89f\9d~k\95{t\99{k¢\7f\82\80X\9d\8f_\9f\96\\9c\8b\82\80X yY§{W¨\8bI\9d\8d\92åß\87èé\82èä\7fîã\87íÛ\80àß\7fÚÒ~ÙÒ\7fäÕ\82ØÎ\81âÕ\80ÙÎ\85ÙÊ\85ÒÐvØÃsÑÍ\7fÇÃ~ÉÂ\85¾À{º¹z¸Á~µ¿\81¶°~\9f·{\9e®\84\97ª\87\97\9f\84\8f§x\95¤\89\95\96|\89\8d\85\89\93\8d\91\90\8a\8d\96\86\9a\86\8f\95\92\95\93\87\9c\97\87\98§w\8d¥s\90ªl\87\9ex\84\9a|\80\9cs\84\97o\84\9cu\85\97z}\97x\88\96j{\9dl\8b\9fc\81\9c^\86\9cZ{¡bz©cu Z| Tv\97Lo\90U|\9aXl\8cMl\87Sl\92Kj\91Rj\88[`\88TixW`pMgnBlvIuy?sqDszL|nBztT|vZwxWolStmZva]ziLtiTpxIlwJe{QdyIe~NVs?_mEWlCPp>Ik7MeELkDWl9ao9``6O^<T]6Nj9Pf+G\0FX8HS+U^-EX8FW%El\17Qh\1aUX$\`\1caU\12cR\18fN\16fZ\1enX\1ckT\17bU\18t[\bmW\17tP\16qM"pK\17jO\1czK!qL\eoP&xR\17iV\efW\17lN\12_N\17^[\13`W\1e\H\1feH$[L*XL&PQ$]E+SG0^T(VX,SX0R^&NY%^i1Zk>Tq<bq>an6gl=dnDhg=fsEWy@Y\81?f\85Ii\81KbwI]jLatL\nA`fLakGZdP[]Hd`Njd\gdeoebsj[pgelqkiwiordnulvilljux_qqdx{hmlesvhv~kvslq\81i\7fn|\8d{l\85yi\89gu\8bal\99an\90hg\96hl\99Yi¡l_\90iY\89iS\95vU\87rS\87wa\8eqb\8b}[\95~Z\92w^\90oW\94rc\8f~]\94zR\8e}Z\88~M\89|SxvR{nVymV\86mV}kK\83bS\7faK\8cmK\8d_W\85rV\82oK}jP\80v[\81f_\90m_\89uV\87vI\91oY\94p[\9do\\99~W\94}V¢\86X\96{a\95yg\9c\7fj\9d\91a\90\8ck\93yr yc£\84\86o\9c\83\8dh\9a\90\89_\9f\8di\97\85f\98\88Z\9avV\9erQ©\84P\9e\8dI\9c\94âÜ\93äÞ\8fåØ\85ïà\89ìå\86áØ\87æÛ\88äÔ\87ãÈxçÊtÙÆvÙÉwÎÈxÑÐ}ÙÃ}ÒÅqÔ¾uÒ¼\80ÏÂ\80ȼ~»Æ\86µ¾\82¨µ\83§¶\86\9e±\8b\98®\8a\92 \81\92\9d\7f\9c\9c\86\99\97\89\91\92\81\8e\8e\87\8c\94\8a\8c\91\94\8b\86\96\9a\88\91\9c\88\9a\97\83\9d \81\93¢w\89¦r\8d¤p\80\9er\82\9ar\86\9bj\8e\9cn\88\9cx\88¡x\8d\9cs\8a\96g\83\9ce\89\9ea\8f\9d^\86£_x\9aVx\9dXy\9dSv\91]w\8c_x\90Oq\8dHs\84Ld\8bSe\87Y[\83T\\86V`{HcqHfxGgsBjoHotArvG}zBsuFxnPwlGxiHllFqhRssNplHsmVjyRj~RbwCUs=XzE\\81@YzJQlIKk=I^CN_7Wh3Uf@[^<W\2P].Ef2=]2Aa0AX,N\7GR/HV-Kd+Hd\1cQf\eTY\14MU\12SU\12bN\1e`P\1eXQ\1eaU\1edS\1a_M\ ffN\14lV\15lP\13mK jQ$mF!vE\1cnM\18nR\emN\1ccT"fW\18jY \P\19XI\19\L\1fTI\18ZI"[K%MB,OE6KF1PC3VF(RN1RS*P]3^]/Sk1Vi7Sf=a`C`bD_k>[o@WlCYl;^v<l|<i}DiqCauFnuMivFhiB_dEUhDYeIR[LU]Zd_Zacdh_Ynd[ll^skmwwuvwmrqbjnfvepsdqvlykdpzh~wb{wjq}nvup\81xs~rn\81wo\86xs\8fiy\95ls\8d`i\95gn\9cai\99fd\95dg\8fpd\8fmY\8dta\91~Y\97\81a\99|d\9b\83d\92xb\98x`\8d{a\91\84X\93}T\8e\83Q\91wN\8atX\85uRzuUymO~pJ\82oF}kS\87cQ\83`H\87bO\8bpI\81nO\81cW\83hZ\85q^\8au^\87u`\96uP\99}X\93uW\98o`\9ar^\96wZ\9f{Y\9dwa\9c}k \8cl\92\8am\91\82t\98\81j\9b\86j\9b\80o\9c\8a\8f\8ck\9c\8d`\9b\93e\8e\88f\90|l\97~`\95\80X\99x[\9b\82Y\9d\85\86ìß\92éã\91îé\7fõè\8aï×\81êÚ\88èÖ\85áßzæÏwòÉ}ãÐvÝÀyÜÂ\7fÚÎ\8bÏÉ\87×¼\7fÊÉzÑ»yÁµz»{¸¹\81»½\7f°¶\7f±®| ¬\82\98ª{\98­\86\9b\9b\83\98¡~ \93\86\9c\8f\82\93\8e\82\95\94\91\9c\96\90\96\8e\94 \8b\92\9b\80\8e\9ev\92\99w\95§\80\92«t\87¡q\89\99o\84\9dr\8e\90s\83\92o\8b\98x\94£v\8f\91u\95\8fh\97\94f\97\9e_\89\97_z\9fe\7f\9eYu\97S\7f\9f[m Qu\90Ju\8eYp\8cPu\8dOi\82O]\84bk\87]_zMj~ShrGkxGglAdmFpmHrs>o\80M{mLynUqoEpnDpcI|nKucMirKk|Cc\80MlxEeyDRpDSw=SnHUl=TqHMg5Vi>Ii9Yl?UfEPo9F_7Hi+Dh0Kd3Bh*Ng5F]2GU0DP*QT\1cBb\1dUY
-PP\13\R\1aYO\f]J\12bS\18iI\1egQ cK\ f_F\10bX
-uY\17dM\elL#gG\erR$kL\18jL!`N%gJ%^O\1e^N&fC\1fRD WN!]I+VQ(PI#TP!SB/GH7QL-[D/MA/OS&OP#SU&\b6bV5\a.[l;`i3f`BaiBYn=Zm>QsCXpBil:esIjgBcl>kgB_r;ggC`l?\iHSeTVh\WbXY\Zgfnol[ykexpjxue}sqrqovmbqodenft[ml^xdbzw^xt_\89op~}hwvw\86tr\85orzeh\7fhv\87hm\97ad m^\92l]\9e_^\97e^\8bnh\90l[\95ja\8bmV\8f}V\91qW\9c\81c\92se\9ev\\91vf\97uc\89~Z\89uZ\8e~R\86yP\8dzR\83vOypR\86xV\83yS\80jF\82iT\82[E{gO\8bmP\80nX\8cq[\92jT\80eT\89hc\81tW\88r^\97z[\92}P\8dzQ\92wS\8dyV\95w^\8e|W\98\87Y\9b\7fb\99\85l\8f\95i\99\86r\96}u\96\80u\96\84u\99\88\89h\98\8dc\9b\8aT\9d\90d\91\86T\9e|a\9axU\93{S\97~S\98\7f\87\8aóð\88õë\83ýß\89öã\8eðØ\8bôÙ\84ëà\83èÜ\83åã\82ðØ\85èÍ\82ì¿\82äÅ\89âÐ\86ßË\8eÏ¿\87̼~ÃÄ|ʾ}Æ´uǽz¾Â\88¸¼\84«³\83©­\82\9e±\82¢§~\9e¥}\97\9c\87\97 \81\9b\95\88\90\99\84\99\8c\86¢\90\96¥\8a\98\99~\95\97\82\8e y\8d¤u\87¦{\8eªx\8f¤s\87\9ds\84\96o|\9cf\84\94h\86\91m\93\99u\8d\98r\93\91c\94\90j\95\99a\88\9dc|\9cat\97Wz\8d[p\9bWr\9dHw\9aKm\8dSt\94Rs\89No\83Tb\8bbk\8ccl}UpzKe\80Ql\81XguQvzCsv>j{Lg{Mt|HqqKgp?ej>uc8{f;rsHiqNbwHlzBh}AbwEPq?Kz3Mz>Oj=Rp9\h:On@Nh9Om6Vo8Jk;Cm3Mc#J_"TX,Na(Mc7Kc9NU)QV)PS%DW\14IT\ fPM\11NV\18ZM\ fUW\f`R\ ecI\1cgL\1c^F\18ZE\17_N\14nW\14oL\19_M#nT\1dkW$k]#cS gJ dP ^P#`>%`B(YG\1e^I\1dRS%TI1NE+SE(GS)SN+WJ6]B2QJ,WS%T\+bb4`Y4QT-SW+[c4Wn4`m6_j>[sDVsAPp<Zm<]c@aj?fl;[d>bd;fb@f`DbiC\`TTgSWlQUh_Qmb]jfac[ui^trctneuqc\7fukxmfjffe\rqamlh|jk{jg\80n\\8doa\8dxp\86wu\80x}\80gz|`i\83ef\95dj\9aa_\9cmc\9am_\9fda\96da\8cqb\90o]\96h]\92a^\8dj^\98oZ\9axa\99t[\93oa\8dxb\89vZ\8fq`\97sU\8eu_\87|Z\80sV|iL\80uY\82vW\87uQytMyfK\81bH\83eM\89nQ\85{S\8cvW\92sV\93j\\89ob\86t]\8awT\93pV\92tO\8f\82X\89\8aS\8f\81U\8c\80]\8d\81[\98\7fe\99\88g\91\94e\94\90q\8f\8an\8e~o\98xk\97~s\92\83q\9b\8ah\97\86g\99\91X\9c\81L\9b~Q\9b\80U\91\80P\8c\83\\9d~Y\9e\85\8c\8bõð\80ðí\8dõè\8bóæ\89òå\91ôâ\85úÙ\8díæ\89îá\85ìÒ\85çÄ\81ðÅ\8bßÁ~ÚÊ\8bÚÃ\96ÑÈ\83ž~¾Ç\81½Ä|ɺ{¿µ~ƽ\80´Ä\8c°¿\8d¦²\85ª®\8d«©\8e\9c£\83\98\9c\8b\94\92\87\94\94\81\9c \86\9e\9b\8e\90§}\90\9b~\91\9cp\86¡t\8a\9av\86\9c}\82\9fv\92ªo\93¤t\8e\99f\88\99p\8b\9fh\8c\94v\93\94q\98\8dq\9d\95f\90\99c\93\9ei\8d\95U\80\91T\8b\89X\89\90L\84\95Tv\95Tz\9aIu\93Uf\89Lu\85Ze\87[g\92]k\8c_i{Zly[mxPbwUj\81Qw~LxuIlrJf~@pnEliDnv8noFyp7vl8np=elFoj:l{3as:fz=Yo/Pn7Nn6Xg0Ug>^h3No1NfAJn.Hk,Gh/Ri7Pb/SZ%T^([d$UZ-O[4Pf4R[$W_$IX\11IM\13LZ\vVJ\ 1NM\ fXU\ 4VK\ 6gQ\16dR\18`N\19]M\vgW
-mY\1afQ\1ebG$`R"eW#dQ\1aZ\&^R(_D\19g@#b>,\;\1e[;\1cYD&TL&]Q\1dGR,KT"HR4HV8]L9SN+^W<R_6^g(UY3ZQ6aW8YP/Vb.^n:]r@^b=_oGWh;]f=\i@Td?[^C_m<^hDhm>`]:iaHUeM`n\SjV_ifced_pb]pkmolseXxr`{gk\80f_~ljto`gijghpa`liiymg\84hc\8dtb\91og\8cso\8ekz\8ctuz`z\8d`o\88fl\98gn\8eme\9ede\9ehY\94i[\96h[\8fm`\89qb\8bef\98h_\8bmT\91r\\8btZ\88mW\94qX\85rQ\91}W\96kX\98kZ\97te\90x^\84n\\88hG\83iJ\82h[\87qO|fD\82iE{hP\80nK\8drL\8bw]\96yS\8eq`\8fhg\8bob\95}g\86yZ\89\84a\8f\86[\87x`\82\86_\8d\87`\95~Y\8c\87_\9a\8cc\8f}c\91\8eg\93\93i\90\84z\8a\81s\91\81k\94\83w\97zj\97\85\\97\81U\93\8cU\96\86\87M\8f\90G\8e\87N\99\83W\9e\8bV\9a\86\91\8dîæ\89ïæ\80öí\85ðå\86ñè\87ûÞ\83÷â\85÷â\80üà\80ð×\81÷Ï\87íÃ\84ßÉ\7fÕÌ\84ÏÓ\8cÐÎ\8dÊÌ\80ľ\85õ\81Á¼}¿¸{ÀÂ~¼À\83º½\87Á·\8a¸¹\89©©\8f¨¤\93«\93\96¢\93\8a \8d\89¤\95\8c\8e\82§\7f\86«z\8c\9b|\8d\97q\8b\9em\83\98p\84\9cg\83¢c\86\9ed\97\9fh\92\9ce\98\9ak\92\8ck\8b\8em\8a\85t\97\87r\9b\87m\8f\91c\9a\88V\94\8bM\8c\84N\8c\8bK\84\92S}\9aVr\9aMq\96Qk\9b^f\8e]c\8cRe\87Xb\88Q_\82Vc\87Pg|Tn}Oq{Gz}KuuMmzAmrBon7co:frDpk<lb;se9va4jh.`j)gq5fm/eq/_d&Qf+Vh1_l(^o1^x:Qp<Ii;Ni:He0MW*QW-\X'U\$ag*^b0_g&Za)[h!Xa%S`\1aRZ\13QZ\ 4XZ\ 3]\\0SM\ 4WV\ 4PQ\ 6UR\13bI\13dJ\10bR
-fK\11_L\10SW\1aXR\13TU\18aT\1f_\,[V'bK(`E\1cbC\18d>%aD\1cg>#hB\1caQ\19^Y\1fPT#SP3QR1WS/QF0YP8\]:Tg5V`6^T2bS1eN.]Z,a_3]f.fi9`f=VmF[gEYgKQlD]h8_b:^h@]h;gc;ah>YjGXfVWea`ea_jbgfb`iajtjqpeno^skYyf_pk^xj_tqnkik_ajafm\kral\85lh\82v`\8dkm\97hq\91^r\85dv\85\y\87_l\8f[m\95al\91c]\9el\\9cuZ\9bm`\93f]\92fT\92rR\9bl]\92fU\85qS\82yR\82t[\86pU\88uS\8b{Y\96tZ\9fkY¢pb\99th\89sb\7fxZ\8cvO\87kG\8dkO\86gS\8bfL\87oQ}tJ\82xJ\83zT\8euS\89l[\92sj\90mg\8fta\98\81`\8f\84_\9a\87^\96\85i\9a}b\8c\87_\8d\85Z\94\7fW\97\85U\95\86_\9c\81k\9c\8be\95\91p\95\96r\8b\90v\89\86q\94\82l\91\88i\99~[\9a~T\9c\8a\\9d\90O\95\94N\94\92M\94\8cL\95\8fM\95\89\8eF\9f\85R xùã\88êã\86çÛ\80èæ}úÝ\7fóØ{úà\83ôÔ\8aóã\85ðÛ\84ñÊ\93åÍ\8fáÍ\8dàÆ\82ÑÇ\95ØÙ\8dÕÀ\8b̽\8aÁµ\8bż\85ľ\86¼´\83´¸|°»\8c²·\89µª\8d¼§\8e©\98\89ª\90\9a¯\95\8e¨\91\94«\98\86°\8f\88§\90\8a¬|\88§y\87¨\83\8c\9es\8c\98o\8e\9ep\7f¥q\8c¦o\8e h\94\99b\91¢m\97 g\99\8fh\89\93h\95\87a\8b\93e\92\96m\93\8d[\8a\95S\9b\85P\96\88S\90\91J\8b\87[\8b\8fN\81\8dQq\9cXd\8fMd\83Nc\8cRk\85Lf\86Wa\85[m~JtyVpzPguItpIyvMszCim8rwEck6ie6jh@dp=lh0so4sh;mm7bk6fq-Wp!Rq&Lk\eVe)Zi \y-X\829Ro.Ok,Ic,Hq(Wd'PZ-R^*J_\17Ni\1dY_,Wk\1cgk\1fZj\1eOc#Q\\11N^\fXV
-_X\0OR\ 5RM\ 1UU\ 5OO
-_J\10aT\ e[U\12hZ\f_N\14_F\12eO\11VX\1fUU"]S\19UK\1fcL+bG&g@\12`@\14e5%^9&h>!fI\19bE\ fQW\15F[\17OO#HL%TJ2M>-ZQ)\Z*d^,Yf;dY4dP5XU9Ma8V_<W\5^_1`h@ZnA_i>ZsLNn>Si8Yb9dj9dd;[_G`lNa_N`qW\aYap_\fbXnb_j]kzgcvhoz\rnkuwbofmtkgpbpmog`jl[iebjqfg\80oo\8dwa\98gb\91dv\8e_t\87ov\86jn\88\w\87cl\8b[e\8f_d\9aqc\97uh mk¡tb\9bgf\93m\\8euh\8fn`\85d\\86d`\8eic\8bmd\89w]\91pQ\94lW\9exU\97sY tg\92|n\8cmY\8coX\87kN\81gN\86hK\8bsP\8coF\88xP\87yQ\80zL\8axN\92yd\87uX\8dvf\8e\80U\8a}Y\86\89\\89\81b\86\85i\8a\86^\86\83i\85vW\90\83U\93\8aX\93\8ad\91\8f\\9e\89p\91\90r\97\8ee\8a\97f\90\89q\86\85f\91|c\91uk¢\89_\98\91a\9e\88U\9b\8b\94Y\91\8fV\8d\89G\99\95T\9c\84\81^©sóävìã~éå\7fîßxíÖvíÜzðÒ\81úÖ\88ñá\8cíÛ\95æÕ\93äÑ\98îÄ\92çÄ\88àÈ\8cØÔ\86ÙÉ\8cÎÃ\85Ⱥ\8c¿º\83ƽ\83¾¶\81²¶\82´°\8c°¨\88½¨\86¦\86·\97\8a¸\91\96²\8f\95©\8a\8f¯\8e\93¨\8a\8b¥\84\87¦\8a\83¤\7f\88\9d~\8a§\7f\88¢x\8c\97t\84£i\83¥n\8b\9ec\98\90h\90\9ed\99\9ei\95\90g\93\8ba\95\89\\8c\93h\8e\93i\8a\8d[\97\8a[\96\8f]\8f\8ec\91\8cX\8a\8fW\8c\81P}\8fTo\94\h\96Yn\86Gb\85Nf\85LcyXm}Up}LwxKjvRlkLuoGzqNrs>jv9ug;nd?ot5ar9av2co2pu3qq6ev5iu.Zu(Vp#Sv\16Wj\19cs\17_t&]|-S{&Ju$Jg+Qs1Sp-Pf$[h'Qc\1cOh\ fKj\11Wj\18cp\16cf!Wf$Mc\16Kf\12P]
-YZ\ 2XG\ 3YE\0]O\0YJ\ 4\O\b`J\10^U        ZT\ eeP\18jQ\18bH\1cZR$a[\1f]P#[V\1e[P$_N ]E\1c]9\16\A\1fd9\19b6\1aY="YK"[J\14JL\11GQ\18OF\19KH'GB!NE\1dTP\1a_L'ZY0\a2Xb.[\2Yg8Nc=JaANc?Z[7W]9akHamFVrGYqGXmI^a;_]Aih;]`CVfOXnN]jW]fLcoMfiaZse`k^endol\nvcwv`qvmuvhkkknktnfmrldedhemmplzmn\8bja\91bl\88fp\86mk\92mo\8edi\94br\90et\91_n\8dgr\87ms\8erv\92tr op¢hj\92js\8dto\8af`\83f`\8bke\8add\88sX\94p]\94rb\92rX\95nX\96qY\9dye\97vi\8eqb\86v_\8ffX\93eO\86sS\7fpL\86rJ\90uK\89lO\8apJ\81mQ\8at[\89uY\90xX\93\80X\90\85T\8b\83V\92\82g\87\8bo\87\86i\83\82]\88xa\86y[\90\86Y\90\8fY\89\8cY\93\87_\94\8ep\92\8fc\93\8da\93\82^\90\81d\8d|_\91|i¢\84\89\8cS\9f\81\91\93V\96\9bY\97\92R\9b\95\8d^©uöõ~ïã\81÷ä\7fîãrîéwõå{ùØ\84òÖ\85ëÓ\8cîÔ\98íÕ\8fãÏ\92çÔ\98äÌ\8aÙÁ\93×Ë\90ÖÌ\8fËÂ\8bÈÇ\94ø\8f°\7f·½}²°\85¸¬~²¨\85Á¦\8b´ª\83¼\94\8e®\92\97\89\8c°\89\8d¦\87\92§\85\8e\9e\84\80\9f\84\88¯\8b\8bª\85\8b¤w\8f¥r\8c\96u\91¢{\87\9bt\8e\9av\9a\91n\94\93n\9b\94q\9c\97]\95\8aZ\99\93[\97\95]\95\90a\8e\97_\87\84b\9a\93_\97\8bT\96\8cQ\92\8bQ\8eyZy\87Rt\8cSw\84PwwI|yGl\82Bl\89HuuMr\80GpoNpsPjmIvsQvgDwn=jo1et?gm5ao/dc4cc,Zh%ds*ko"kg&eg#jh+`d"cp\19Yl\14Xs\1c\i$`h*Rn$Xg\1aYi!Yp*Ko\1cMt!Tj\17Rk\11[m\ 4``\ f`h\16Xl\12ea\1dYa\19^Z\16SV\vUW\ eYP      XG\ 3_D\ fYM
-XM\ 4VV\0VS\ 3[R\ 5^T
-f`\1aYP\1efN\15\J\16ZU\11ZS\1eRM\16`T\18TN\12UD\10W7\15W9\ f]B\va@\16_8\1cXK\17YH\11JR\14NQ\11EG\15KG$OG#^K\19]F\1c^R2]T%_^6_`:be3Lc5O[>Rk@Um8Uk8ObESh<TcHTpBbsA^fLbiBZm?lgIWaH[pSdpL^fNavQlsA[tK]vae}h]sa`\7fojrbguckzermommmgfo_memjljisib{fn{pi\8ebp\88ds\85fs\86]q\96bf\8dey\92br\94gk\96]l\96gy\8euu\8ctn\92yz om\9eqa\92of\99of\8frm\93g]\89^d\8d_f\93fd\96w`\9apY\9blX\9dyT\99}X§mb\9ake\9axg\86o^\89jZ\87gY\8coN\87gR\86rG\86sE\88vM\8bkR}hL\84xW\87vZ\89oN\98wR\8d\8eU\83\80T\8b\91d\92\91Y\8d\8dg\81\86\\86\80U\8b\86Y\8a{U\90\85X\8d\8aS\8e\86h\96\93e\95\88i\99\90h\8f\8cf\8e\89n\90\85^\95ua\9b\84\82^¨|U\9fyU­\8d^\9a\97S\97\99U\9d\95\8a_\9f\94_©|úñwùítÿêwÿßxøèrÿç}ÿã\82ôÛ\84ôÞ\92ðÔ\9aëÍ\91áÔ\8fçÇ\90æÇ\93ãÁ\8aÝÈ\84ÕÉ\88ÐÆ\8bɺ\8cȵ\86ɽ\83¿´\81ø\84¹µ\81¼²\85À±\8d³©\88·\9a\90·\90\98µ\8c\93²\8a\94¨\8a\99¦\8b\94¥\89\91ª\88\82©\87\82¨\87\82¯|\86³t\88¥q\8c\9bw\90\95y\93\90n\8a\94m\90\97c\99\95j\98\8eh\9b\91`\9a\98d\99\99]\99\9ba\8e\91_\90\85f\90\86a\90\88^\96\86S\92\8bX\83\81R\82\82P\80\85U\88z[\83yXxxSy\82IsyJ~~G~uBvpFvs?olDtjA|jBzl7jp3ll>gf9a^6e`(bl$_o%_q'kn\1ebq$df!`d\1adb\16ig\15^f\1c_c\e`h$Yo\1aVl\e]f\1d\i\17]k Ol\19Hg\13Kj\ 6Rf\ 6Yq\bUo\10`_\10Vh\10[b
-``\11`W\ f^P\17UN\ eTQ\bSI
-QK
-`Q\ eX[\aT^\ 6U\\v[W\vaX\14W_\11P^\17ZX\18VR\ e^N\fUU
-XL\12[M\10SM\f_B\ 6]A\11V=
-XG
-XN
-^C\12]=\15TB\17SN\16QI\eTL\19QO\16WJ\16\G\1f[D)`N0aP2Z^.^b,W^:V_?Qa<Rg4Th8WmDOfEMgGWcI]iK_fDRlAViMTnBamGWkCYiL\hRfiFcnCirEd{Pa{UZvgb\80il}phyjmujk{ib\7fmcsjXto\pm]iqghvhfxji}op|ep\8cXh\95\h\8efs\8dgm\9aip\99rw\9ekp\98jr\91py\98kt\93rl\98tq\99rr\98xh\94wg\98qm\91gn\9bjf\95nh\94el\95cb\9aqf\8fqj\90o`\9bzi\99za t`£qh\94si\84xh\82\7fa\83t`\84u]\8ciV\90rN\88mL\8akP\83uO\83vL\90jQ\8bmX\91sP\92\84O\83\85Y\85\83[\91\90S\8d\94S\87\89\\86\87Y\91|U\90x]\95~b\93\85`\97\80]\8c\82^\84\8cd\8d\88\\90\88e\96\8bh\91\82g\96\83g\96{Y£|^¥\7fU¦}] z\¤\83]\9e\8a_\9e\86\93\97]\98\8aW\9f
\ No newline at end of file
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/kaimono.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/kaimono.ml
deleted file mode 100644 (file)
index e524156..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-(* $Id$ *)
-
-open GMain
-open Printf
-
-let file_dialog ~title ~callback ?filename () =
-  let sel = GWindow.file_selection ~title ~modal:true ?filename () in
-  sel#cancel_button#connect#clicked ~callback:sel#destroy;
-  sel#ok_button#connect#clicked ~callback:
-    begin fun () ->
-      let name = sel#get_filename in
-      sel#destroy ();
-      callback name
-    end;
-  sel#show ()
-
-let w = GWindow.window ~title:"Okaimono" ()
-let vb = GPack.vbox ~packing:w#add ()
-
-let menubar = GMenu.menu_bar ~packing:vb#pack ()
-let factory = new GMenu.factory menubar
-let file_menu = factory#add_submenu "File"
-let edit_menu = factory#add_submenu "Edit"
-
-let sw = GBin.scrolled_window ~height:200 ~packing:vb#add
-    ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC ()
-let vp = GBin.viewport ~width:340 ~shadow_type:`NONE ~packing:sw#add ()
-let table = GPack.table ~columns:4 ~rows:256 ~packing:vp#add ()
-let _ =
-  table#focus#set_vadjustment (Some vp#vadjustment)
-
-let top = ref 0
-and left = ref 0
-let add_to_table  w =
-  table#attach ~left:!left ~top:!top ~expand:`X w;
-  incr left;
-  if !left >= 4 then (incr top; left := 0)
-
-let entry_list = ref []
-
-let add_entry () =
-  let entry =
-    List.map [40;200;40;60]
-      ~f:(fun width -> GEdit.entry ~packing:add_to_table ~width ())
-  in entry_list := entry :: !entry_list
-
-let _ =
-  List.iter2 ["Number";"Name";"Count";"Price"] [40;200;40;60] ~f:
-    begin fun text width ->
-      ignore (GButton.button ~label:text ~width ~packing:add_to_table ())
-    end;
-  for i = 1 to 9 do add_entry () done
-
-let split ~sep s =
-  let len = String.length s in
-  let rec loop pos =
-    let next =
-      try String.index_from s pos sep with Not_found -> len
-    in
-    let sub = String.sub s ~pos ~len:(next-pos) in
-    if next = len then [sub] else sub::loop (next+1)
-  in loop 0
-
-let load name =
-  try
-    let ic = open_in name in
-    List.iter !entry_list
-      ~f:(fun l -> List.iter l ~f:(fun e -> e#set_text ""));
-    let entries = Stack.create () in
-    List.iter !entry_list ~f:(fun x -> Stack.push x entries);
-    try while true do
-      let line = input_line ic in
-      let fields = split ~sep:'\t' line in
-      let entry =
-       try Stack.pop entries
-       with Stack.Empty ->
-         add_entry (); List.hd !entry_list
-      in
-      List.fold_left fields ~init:entry ~f:
-       begin fun acc field ->
-         (List.hd acc)#set_text field;
-         List.tl acc
-       end
-    done
-    with End_of_file -> close_in ic
-  with Sys_error _ -> ()
-    
-
-let save name =
-  try
-    let oc = open_out name in
-    List.iter (List.rev !entry_list) ~f:
-      begin fun entry ->
-       let l = List.map entry ~f:(fun e -> e#text) in
-       if List.exists l ~f:((<>) "") then
-         let rec loop = function
-             [] -> ()
-           | [x] -> fprintf oc "%s\n" x
-           | x::l -> fprintf oc "%s\t" x; loop l
-         in loop l
-      end;
-    close_out oc
-  with Sys_error _ -> ()
-
-open GdkKeysyms
-
-let _ =
-  w#connect#destroy ~callback:Main.quit;
-  w#event#connect#key_press ~callback:
-    begin fun ev ->
-      let key = GdkEvent.Key.keyval ev and adj = vp#vadjustment in
-      if key = _Page_Up then
-       adj#set_value (adj#value -. adj#page_increment)
-      else if key = _Page_Down then
-       adj#set_value (min (adj#value +. adj#page_increment)
-                        (adj#upper -. adj#page_size));
-      false
-    end;
-  w#add_accel_group factory#accel_group;
-  let ff = new GMenu.factory file_menu ~accel_group:factory#accel_group in
-  ff#add_item ~key:_O "Open..."
-    ~callback:(file_dialog ~title:"Open data file" ~callback:load);
-  ff#add_item ~key:_S "Save..."
-    ~callback:(file_dialog ~title:"Save data" ~callback:save);
-  ff#add_separator ();
-  ff#add_item ~key:_Q "Quit" ~callback:w#destroy;
-  let ef = new GMenu.factory edit_menu ~accel_group:factory#accel_group in
-  ef#add_item ~key:_A "Add line" ~callback:add_entry;
-  w#show ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/label.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/label.ml
deleted file mode 100644 (file)
index b9829fb..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-(* $Id$ *)
-
-(* Embedding xpm data into an ML file *)
-
-let openfile = [|
-(* width height num_colors chars_per_pixel *)
-"    20    19       5            1";
-(* colors *)
-". c None";
-"# c #000000";
-"i c #ffffff";
-"s c #7f7f00";
-"y c #ffff00";
-(* pixels *)
-"....................";
-"....................";
-"....................";
-"...........###......";
-"..........#...#.#...";
-"...............##...";
-"...###........###...";
-"..#yiy#######.......";
-"..#iyiyiyiyi#.......";
-"..#yiyiyiyiy#.......";
-"..#iyiy###########..";
-"..#yiy#sssssssss#...";
-"..#iy#sssssssss#....";
-"..#y#sssssssss#.....";
-"..##sssssssss#......";
-"..###########.......";
-"....................";
-"....................";
-"...................." |]
-
-open GMain
-
-let main () =
-  let w = GWindow.window ~border_width:2 () in
-  w#misc#realize ();
-  let hbox = GPack.hbox ~spacing:10 ~packing:w#add () in
-  let pm = GDraw.pixmap_from_xpm_d ~data:openfile ~window:w () in
-  GMisc.pixmap pm ~packing:hbox#add ();
-  GMisc.label ~text:"Embedded xpm" ~packing:hbox#add ();
-  w#show ();
-  w#connect#destroy ~callback:Main.quit;
-  Main.main ()
-
-let () = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/lissajous.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/lissajous.ml
deleted file mode 100644 (file)
index 9d6cf3b..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-(* $Id$ *)
-(* Lissajous \e$B?^7A\e(B *)
-
-open GMain
-
-
-let main () =
-  let window = GWindow.window ~border_width: 10 () in
-  window#event#connect#delete
-     ~callback:(fun _ -> prerr_endline "Delete event occured"; true);
-  window#connect#destroy ~callback:Main.quit;
-  let vbx = GPack.vbox ~packing:window#add () in
-  let quit = GButton.button ~label:"Quit" ~packing:vbx#add () in
-  quit#connect#clicked ~callback:window#destroy;
-  let area = GMisc.drawing_area ~width:200 ~height:200 ~packing:vbx#add () in
-  let drawing = area#misc#realize (); new GDraw.drawable (area#misc#window) in
-  let m_pi = acos (-1.) in
-  let c = ref 0. in
-  let expose_event _ =
-    drawing#set_foreground `WHITE;
-    drawing#rectangle ~filled:true ~x:0 ~y:0 ~width:200 ~height:200 ();
-    drawing#set_foreground `BLACK;
-(*    drawing#line x:0 y:0 x:150 y:150; 
-      drawing#polygon filled:true [10,100; 35,35; 100,10; 10, 100];
-*)
-    let n = 200 in
-    let r = 100. in
-    let a = 3 in let b = 5 in 
-    for i=0 to n do
-      let theta0 = 2.*.m_pi*.(float (i-1))/. (float n) in
-      let x0 = 100 + (truncate (r*.sin ((float a)*.theta0))) in
-      let y0 = 100 - (truncate (r*.cos ((float b)*.(theta0+. !c)))) in
-      let theta1 = 2.*.m_pi*.(float i)/.(float n) in
-      let x1 = 100 + (truncate (r*.sin((float a)*.theta1))) in
-      let y1 = 100 - (truncate (r*.cos((float b)*.(theta1+. !c)))) in
-      drawing#line ~x:x0 ~y:y0 ~x:x1 ~y:y1
-    done;  
-    false
-  in 
-  area#event#connect#expose ~callback:expose_event;
-  let timeout _ = c := !c +. 0.01*.m_pi;
-                  expose_event ();
-                 true in 
-  Timeout.add ~ms:500 ~callback:timeout;
-  window#show ();
-  Main.main ()
-
-let _ = Printexc.print main()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/nihongo.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/nihongo.ml
deleted file mode 100644 (file)
index 48f7d8c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-(* $Id$ *)
-
-(* ¤³¤ì¤ò¼Â¹Ô¤¹¤ëÁ°¤ËLC_CTYPE=ja_JP.EUC¤Ê¤É¤È»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ *)
-
-(* cut-and-paste ¤âÂбþ¤·¤Æ¤¤¤Þ¤¹¤¬¡¢edit¤Ï¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó *)
-
-open GMain
-
-let window = GWindow.window ()
-let box = GPack.vbox ~packing: window#add ()
-let text = GEdit.text ~editable: true ~packing: box#add ()
-let font = Gdk.Font.load_fontset
-    "-*-fixed-medium-r-normal--24-*-c-120-iso8859-1, \
-     -*-fixed-medium-r-normal--24-*-jisx0208.1983-0, \
-     -*-fixed-medium-r-normal--24-*-jisx0201.1976-0"
-let button = GButton.button ~label: "½ªÎ»" ~packing: box#add ()
-let label = GMisc.label ~text:"¤³¤ì¤Ë¤Ï±Æ¶Á¤·¤Ê¤¤" ~packing: box#add ()
-
-let _ =
-  window#connect#destroy ~callback:Main.quit;
-  text#misc#realize ();
-  text#insert "¤³¤ó¤Ë¤Á¤Ï" ~font;
-  let style = button#misc#style#copy in
-  button#misc#set_style style;
-  style#set_font font;
-  style#set_bg [`NORMAL,`NAME "green"; `PRELIGHT,`NAME "red"];
-  button#connect#clicked ~callback:Main.quit
-
-let _ =
-  window#show ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/fixpoint.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/fixpoint.ml
deleted file mode 100644 (file)
index c41b11b..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-(* $Id$ *)
-
-open GtkData
-open GtkBase
-open GtkPack
-open GtkWindow
-open GtkEdit
-open GtkMain
-
-let rec fix fun:f :eq x =
-  let x' = f x in
-  if eq x x' then x
-  else fix fun:f :eq x'
-
-let eq_float x y = abs_float (x -. y) < 1e-13
-
-let _ =
-  let top = Window.create `TOPLEVEL in
-  GtkSignal.connect sig:Object.Signals.destroy top callback:Main.quit;
-  let hbox = Box.create `VERTICAL in
-  Container.add top hbox;
-  let entry = Entry.create () in
-  Entry.set entry max_length:20;
-  let tips = Tooltips.create () in
-  Tooltips.set_tip tips entry text:"Initial value for fix-point";
-  let result = Entry.create () in
-  Entry.set result max_length:20 editable:false;
-  Box.pack hbox entry;
-  Box.pack hbox result;
-
-  GtkSignal.connect sig:Editable.Signals.activate entry callback:
-    begin fun () ->
-      let x = try float_of_string (Entry.get_text entry) with _ -> 0.0 in
-      Entry.set entry text:(string_of_float (cos x));
-      let res = fix fun:cos eq:eq_float x in
-      Entry.set result text:(string_of_float res)
-    end;
-  Widget.show_all top;
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/hello.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/hello.ml
deleted file mode 100644 (file)
index 60506e3..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-(* $Id$ *)
-
-open GtkBase
-open GtkButton
-open GtkWindow
-open GtkMain
-
-let window = Window.create `TOPLEVEL
-
-let button = Button.create label:"Hello World"
-
-let main () =
-  GtkSignal.connect sig:Widget.Signals.Event.delete window
-    callback:(fun _ -> prerr_endline "Delete event occured"; true);
-  GtkSignal.connect sig:Object.Signals.destroy window callback:Main.quit;
-  Container.set_border_width window 10;
-  GtkSignal.connect sig:Button.Signals.clicked button
-    callback:(fun () -> prerr_endline "Hello World"; Object.destroy window);
-  Container.add window button;
-  Widget.show_all window;
-  Main.main ()
-
-let _ = Printexc.print main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/progressbar.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/old/progressbar.ml
deleted file mode 100644 (file)
index f4ad465..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GtkBase
-open GtkMisc
-open GtkWindow
-open GtkRange
-open GtkPack
-open GtkButton
-open GtkMain
-
-
-class bar bar = object
-  val bar : progress_bar obj = bar
-  val mutable pstat = true
-  method progress =
-    let pvalue = Progress.get_percentage bar in
-    let pvalue =
-      if pvalue >= 1.0 || not pstat then (pstat <- true; 0.0)
-      else pvalue +. 0.01
-    in
-    ProgressBar.update bar percent:pvalue;
-    true
-  method progress_r =
-    pstat <- false
-end
-
-let main () =
-
-  let window = Window.create `TOPLEVEL in
-  GtkSignal.connect sig:Object.Signals.destroy window callback:Main.quit;
-  Container.set_border_width window 10;
-
-  let table = Table.create rows:3 columns:2 in
-  Container.add window table;
-  
-  let label = Label.create "Progress Bar Example" in
-  Table.attach table label left:0 right:2 top:0 expand:`X shrink:`BOTH;
-  
-  let pbar = ProgressBar.create () in
-  Table.attach table pbar left:0 right:2 top:1 fill:`X shrink:`BOTH;
-
-  let bar = new bar pbar in
-  let ptimer = Timeout.add 100 callback:(fun () -> bar#progress) in
-
-  let button = Button.create label:"Reset" in
-  GtkSignal.connect sig:Button.Signals.clicked button
-    callback:(fun () -> bar#progress_r);
-  Table.attach table button left:0 top:2 expand:`NONE fill:`X shrink:`BOTH;
-
-  let button = Button.create label:"Cancel" in
-  GtkSignal.connect sig:Button.Signals.clicked button callback:Main.quit;
-  Table.attach table button left:1 top:2 expand:`NONE fill:`X shrink:`BOTH;
-
-  Widget.show_all window
-
-
-let _ =
-  main ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/pousse.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/pousse.ml
deleted file mode 100644 (file)
index ecf0dff..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-(* $Id$ *)
-
-(* The game logic *)
-
-type color = [`none|`white|`black]
-
-module type BoardSpec = sig
-  type t
-  val size : int
-  val get : t -> x:int -> y:int -> color
-  val set : t -> x:int -> y:int -> color:color -> unit
-end
-
-module Board (Spec : BoardSpec) = struct
-  open Spec
-  let size = size
-
-  let on_board x y =
-    x >= 0 && x < size && y >= 0 && y < size
-
-  let rec string board ~x ~y ~dx ~dy ~color l =
-    let x = x+dx and y = y+dy in
-    if on_board x y then
-      let col = get board ~x ~y in 
-      if col = (color : [`white|`black] :> color) then l else
-      if col = `none then [] else
-      string board ~x ~y ~dx ~dy ~color ((x,y)::l)
-    else []
-
-  let find_swaps board ~x ~y ~color =
-    if get board ~x ~y <> `none then [] else
-    List.fold_left [-1,-1; -1,0; -1,1; 0,-1; 0,1; 1,-1; 1,0; 1,1]
-      ~init:[]
-      ~f:(fun acc (dx,dy) -> string board ~x ~y ~dx ~dy ~color [] @ acc)
-
-  let action board ~x ~y ~color =
-    let swaps = find_swaps board ~x ~y ~color in
-    if swaps = [] then false else begin
-      List.iter ((x,y)::swaps)
-       ~f:(fun (x,y) -> set board ~x ~y ~color:(color :> color));
-      true
-    end
-
-  let check_impossible board ~color =
-    try
-      for x = 0 to size - 1 do for y = 0 to size - 1 do
-       if find_swaps board ~x ~y ~color <> [] then raise Exit
-      done done;
-      true
-    with Exit -> false
-
-  let count_cells board =
-    let w = ref 0 and b = ref 0 in
-    for x = 0 to size - 1 do for y = 0 to size - 1 do
-      match get board ~x ~y with
-       `white -> incr w
-      | `black -> incr b
-      | `none -> ()
-    done done;
-    (!w,!b)
-end
-
-(* GUI *)
-
-open GMain
-
-(* Toplevel window *)
-
-let window = GWindow.window ~title:"pousse" ()
-
-(* Create pixmaps *)
-
-let pixdraw =
-  GDraw.pixmap ~window ~width:40 ~height:40 ~mask:true ()
-let pixdraw1 =
-  GDraw.pixmap ~window ~width:40 ~height:40 ~mask:true ()
-let pixdraw2 =
-  GDraw.pixmap ~window ~width:40 ~height:40 ~mask:true ()
-
-let _ =
-  pixdraw1#set_foreground `BLACK;
-  pixdraw1#arc ~x:3 ~y:3 ~width:34 ~height:34 ~filled:true ();
-  pixdraw2#set_foreground `WHITE;
-  pixdraw2#arc ~x:3 ~y:3 ~width:34 ~height:34 ~filled:true ();
-  pixdraw2#set_foreground `BLACK;
-  pixdraw2#arc ~x:3 ~y:3 ~width:34 ~height:34 ()
-
-(* The cell class: a button with a pixmap on it *)
-
-class cell ?packing ?show () =
-  let button = GButton.button ?packing ?show () in
-object (self)
-  inherit GObj.widget button#as_widget
-  method connect = button#connect
-  val mutable color : color = `none
-  val pm = GMisc.pixmap pixdraw ~packing:button#add ()
-  method color = color
-  method set_color col =
-    if col <> color then begin
-      color <- col;
-      pm#set_pixmap
-       (match col with `none -> pixdraw
-       | `black -> pixdraw1
-       | `white -> pixdraw2)
-    end
-end
-
-module RealBoard = Board (
-  struct
-    type t = cell array array
-    let size = 8
-    let get (board : t) ~x ~y = board.(x).(y)#color
-    let set (board : t) ~x ~y ~color = board.(x).(y)#set_color color
-  end
-)
-
-(* Conducting a game *)
-
-open RealBoard
-
-class game ~(frame : #GContainer.container) ~(label : #GMisc.label)
-    ~(statusbar : #GMisc.statusbar) =
-  let table = GPack.table ~columns:size ~rows:size ~packing:frame#add () in
-object (self)
-  val cells =
-    Array.init size
-      ~f:(fun i -> Array.init size
-         ~f:(fun j -> new cell ~packing:(table#attach ~top:i ~left:j) ()))
-  val label = label
-  val turn = statusbar#new_context ~name:"turn"
-  val messages = statusbar#new_context ~name:"messages"
-  val mutable current_color = `black
-  method board = cells
-  method table = table
-  method player = current_color
-
-  method swap_players () =
-    current_color <-
-      match current_color with
-       `white -> turn#pop (); turn#push "Player is black"; `black
-      | `black -> turn#pop (); turn#push "Player is white"; `white
-
-  method finish () =
-    turn#pop ();
-    let w, b = count_cells cells in
-    turn#push
-      (if w > b then "White wins" else
-       if w < b then "Black wins" else
-       "Game is a draw");
-    ()
-
-  method update_label () =
-    let w, b = count_cells cells in
-    label#set_text (Printf.sprintf "White: %d Black: %d " w b)
-
-  method play x y =
-    if action cells ~x ~y ~color:current_color then begin
-      self#update_label ();
-      self#swap_players ();
-      if check_impossible cells ~color:current_color then begin
-       self#swap_players ();
-       if check_impossible cells ~color:current_color then self#finish ()
-      end
-    end else
-      messages#flash "You cannot play there"
-
-  initializer
-    for i = 0 to size-1 do for j = 0 to size-1 do
-      let cell = cells.(i).(j) in
-      cell#connect#enter ~callback:cell#misc#grab_focus;
-      cell#connect#clicked ~callback:(fun () -> self#play i j)
-    done done;
-    List.iter ~f:(fun (x,y,col) -> cells.(x).(y)#set_color col)
-      [ 3,3,`black; 4,4,`black; 3,4,`white; 4,3,`white ];
-    self#update_label ();
-    turn#push "Player is black";
-    ()
-end
-
-(* Graphical elements *)
-
-let vbox = GPack.vbox ~packing:window#add ()
-let frame = GBin.frame ~shadow_type:`IN ~packing:vbox#add ()
-let hbox = GPack.hbox ~packing:vbox#pack ()
-
-let bar = GMisc.statusbar ~packing:hbox#add ()
-
-let frame2 = GBin.frame ~shadow_type:`IN ~packing:hbox#pack ()
-let label =
-  GMisc.label ~justify:`LEFT ~xpad:5 ~xalign:0.0 ~packing:frame2#add ()
-
-let game = new game ~frame ~label ~statusbar:bar
-
-(* Start *)
-
-let _ =
-  window#connect#destroy ~callback:Main.quit;
-  window#show ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/progressbar.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/progressbar.ml
deleted file mode 100644 (file)
index b614f08..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-class bar bar = object
-  val bar : #GRange.progress = bar
-  val mutable pstat = true
-  method progress () =
-    let pvalue = bar#percentage in
-    let pvalue =
-      if pvalue > 0.99 || not pstat then (pstat <- true; 0.0)
-      else pvalue +. 0.01
-    in
-    bar#set_percentage pvalue;
-    true
-  method reset () =
-    pstat <- false
-end
-
-let main () =
-
-  let window = GWindow.window ~border_width: 10 () in
-  window#connect#destroy ~callback:Main.quit;
-
-  let table = GPack.table ~rows:3 ~columns:2 ~packing: window#add () in
-  
-  GMisc.label ~text:"Progress Bar Example" ()
-    ~packing:(table#attach ~left:0 ~right:2 ~top:0 ~expand:`X ~shrink:`BOTH);
-  
-  let pbar =
-    GRange.progress_bar ~bar_style:`DISCRETE ~discrete_blocks:20 ()
-      ~packing:(table#attach ~left:0 ~right:2 ~top:1
-                  ~expand:`BOTH ~fill:`X ~shrink:`BOTH) in
-
-  let bar = new bar pbar in
-  let ptimer = Timeout.add ~ms:50 ~callback:bar#progress in
-
-  let button = GButton.button ~label:"Reset" ()
-      ~packing:(table#attach ~left:0 ~top:2
-                  ~expand:`NONE ~fill:`X ~shrink:`BOTH) in
-  button#connect#clicked ~callback:bar#reset;
-
-  let button = GButton.button ~label:"Cancel" ()
-      ~packing:(table#attach ~left:1 ~top:2
-                  ~expand:`NONE ~fill:`X ~shrink:`BOTH) in
-  button#connect#clicked ~callback:Main.quit;
-
-  window#show ();
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/radiobuttons.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/radiobuttons.ml
deleted file mode 100644 (file)
index 5743ee2..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let main () =
-
-  let window = GWindow.window ~title: "radio buttons" ~border_width: 0 () in
-  window#connect#destroy ~callback:Main.quit;
-
-  let box1 = GPack.vbox ~packing: window#add () in
-
-  let box2 = GPack.vbox ~spacing:10 ~border_width: 10 ~packing: box1#add () in
-
-  let button1 = GButton.radio_button ~label:"button1" ~packing: box2#add () in
-  button1#connect#clicked ~callback:(fun () -> prerr_endline "button1");
-
-  let button2 = GButton.radio_button ~group:button1#group ~label:"button2"
-      ~active:true ~packing: box2#add () in
-  button2#connect#clicked ~callback:(fun () -> prerr_endline "button2");
-
-  let button3 = GButton.radio_button
-      ~group:button1#group ~label:"button3" ~packing: box2#add () in
-  button3#connect#clicked ~callback:(fun () -> prerr_endline "button3");
-
-  let separator =
-    GMisc.separator `HORIZONTAL ~packing: box1#pack () in
-
-  let box3 = GPack.vbox ~spacing: 10 ~border_width: 10
-      ~packing: box1#pack () in
-
-  let button = GButton.button ~label: "close" ~packing: box3#add () in
-  button#connect#clicked ~callback:Main.quit;
-  button#grab_default ();
-
-  window#show ();
-
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/rpn.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/rpn.ml
deleted file mode 100644 (file)
index e701f18..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-(* $Id$ *)
-
-(* reverse polish calculator *)
-
-open GMain
-
-let wow _ = prerr_endline "Wow!"; ()
-let main () =
-  let stack = Stack.create () in       
-
-  (* toplevel window *)
-  let window =
-    GWindow.window ~border_width: 10 ~title:"Reverse Polish Calculator" () in
-  window#connect#destroy ~callback:Main.quit;
-
-
-  (* vbox *)
-  let vbx = GPack.vbox ~packing:window#add () in
-
-  (* entry *)
-  let entry =
-    GEdit.entry ~text:"0" ~editable:false ~max_length: 20 ~packing: vbx#add () in
-
-  (* BackSpace, Clear, All Clear, Quit *) 
-  let table0 = GPack.table ~rows:1 ~columns:4 ~packing:vbx#add () in
-  let bs_clicked _ = begin
-    let txt = entry#text in
-    let len = String.length txt in 
-    if len <= 1 then
-      entry#set_text "0"
-    else entry#set_text (String.sub txt ~pos:0 ~len:(len-1))
-  end in
-  let c_clicked _ = entry#set_text("0") in
-  let ac_clicked _ = Stack.clear stack; entry#set_text("0") in
-  let labels0 = [("BS", bs_clicked) ; ("C", c_clicked);
-                ("AC", ac_clicked); ("Quit", window#destroy)] in
-  let rec loop0 labels n =
-    match labels 
-    with  [] -> ()
-        | (lbl, cb) :: t  ->
-    let button =
-      GButton.button ~label:lbl
-        ~packing:(table0#attach ~left:n ~top:1 ~expand:`BOTH) () in
-    button#connect#clicked ~callback:cb;
-    loop0 t (n+1) in
-  loop0 labels0 1;
-
-  (* Numerals *)
-  let table1 = GPack.table ~rows:4 ~columns:5 ~packing:vbx#add () in
-  let labels1 = ["7"; "8"; "9"; "4"; "5"; "6"; "1"; "2"; "3"; "0"] in
-  let numClicked n _ =
-     let txt = entry#text in
-     if (txt = "0") then
-       entry#set_text n
-     else begin
-       entry#append_text n
-     end in
-  let rec loop1 labels n =
-    match labels with [] -> ()
-    | lbl :: lbls ->
-        let button = GButton.button ~label:(" "^lbl^" ")
-           ~packing:(table1#attach ~left:(n mod 3) ~top:(n/3) ~expand:`BOTH)
-            () in
-        button#connect#clicked ~callback:(numClicked lbl);
-        loop1 lbls (n+1) in
-  loop1 labels1 0; 
-
-  (* Period *)
-  let periodClicked _ = 
-     let txt = entry#text in
-     if (String.contains txt '.') then begin
-       Printf.printf "\a";
-        flush stdout;
-     end
-     else
-       entry#append_text "." in
-  (GButton.button ~label:" . "
-     ~packing:(table1#attach ~left:1 ~top:3 ~expand:`BOTH) ())
-    #connect#clicked ~callback:periodClicked;
-
-  (* Enter (Push) *)
-  let enterClicked _ =
-     let txt = entry#text in
-     let n = float_of_string txt in begin
-       Stack.push n stack;
-       entry#set_text "0"
-     end in
-  (GButton.button ~label:"Ent"
-     ~packing:(table1#attach ~left:2 ~top:3 ~expand:`BOTH) ())
-    #connect#clicked ~callback:enterClicked;
-
-  (* Operators *)
-  let op2Clicked op _ =
-    let n1 = float_of_string (entry#text) in
-    let n2 = Stack.pop stack in
-    entry#set_text (string_of_float (op n2 n1)) 
-  in
-  let op1Clicked op _ =
-    let n1 = float_of_string (entry#text) in
-    entry#set_text (string_of_float (op n1)) 
-  in
-  let modClicked _ =
-    let n1 = int_of_string (entry#text) in
-    let n2 = truncate (Stack.pop stack) in
-    entry#set_text (string_of_int (n2 mod n1))
-  in
-  let labels2 = [(" / ", op2Clicked (/.)); (" * ", op2Clicked ( *. ));
-                (" - ", op2Clicked (-.)); (" + ", op2Clicked (+.));
-                ("mod", modClicked); (" ^ ", op2Clicked ( ** ));
-                ("+/-", op1Clicked (~-.));
-                 ("1/x", op1Clicked (fun x -> 1.0/.x))] in
-  let rec loop2 labels n =
-    match labels
-    with [] -> ()
-    | (lbl, cb) :: t ->
-       let button = GButton.button ~label:lbl
-            ~packing:(table1#attach ~left:(3 + n/4) ~top: (n mod 4)
-                        ~expand:`BOTH)
-            () in
-       button#connect#clicked ~callback:cb;
-       loop2 t (n+1)
-  in
-  loop2 labels2 0;
-
-  (* show all and enter event loop *)
-  window#show ();
-  Main.main ()
-
-let _ = Printexc.print main()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/scrolledwin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/scrolledwin.ml
deleted file mode 100644 (file)
index 8f4bee2..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let main () =
-  let window = GWindow.dialog ~title: "dialog"
-      ~border_width: 10 ~width: 300 ~height: 300 () in
-  window#connect#destroy ~callback:Main.quit;
-
-  let scrolled_window = GBin.scrolled_window
-      ~border_width: 10 ~hpolicy: `AUTOMATIC ~packing: window#vbox#add ()
-  in
-
-  let table = GPack.table ~rows:10 ~columns:10
-      ~row_spacings: 10 ~col_spacings: 10
-      ~packing: scrolled_window#add_with_viewport ()
-  in
-
-  for i = 0 to 9 do
-    for j = 0 to 9 do
-      let label = Printf.sprintf "button (%d,%d)\n" i j in
-      GButton.toggle_button ~label
-        ~packing:(table#attach ~left: i ~top: j ~expand: `BOTH) ()
-    done
-  done;
-
-  let button =
-    GButton.button ~label: "close" ~packing: window#action_area#add () in
-  button#connect#clicked ~callback: Main.quit;
-  button#grab_default ();
-  window#show ();
-  Main.main ()
-
-let _ = main ()
-    
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/socket.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/socket.ml
deleted file mode 100644 (file)
index 687389c..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let main () =
-  let w = GWindow.window ~title:"Socket example" () in
-  w#connect#destroy ~callback:Main.quit;
-  let vbox = GPack.vbox ~packing:w#add () in
-  let label = GMisc.label ~packing:vbox#pack () in
-  let socket = GBin.socket ~packing:vbox#add ~height:40 () in
-  label#set_text ("XID to plug into this socket: 0x" ^ 
-                  Int32.format "%x" socket#xwindow);
-  w#show ();
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/test.xpm b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/test.xpm
deleted file mode 100644 (file)
index 9b0d2ef..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/* XPM */
-static char *openfile[] = {
-/* width height num_colors chars_per_pixel */
-"    20    19       66            2",
-/* colors */
-".. c None",
-".# c #000000",
-".a c #dfdfdf",
-".b c #7f7f7f",
-".c c #006f6f",
-".d c #00efef",
-".e c #009f9f",
-".f c #004040",
-".g c #00bfbf",
-".h c #ff0000",
-".i c #ffffff",
-".j c #7f0000",
-".k c #007070",
-".l c #00ffff",
-".m c #00a0a0",
-".n c #004f4f",
-".o c #00cfcf",
-".p c #8f8f8f",
-".q c #6f6f6f",
-".r c #a0a0a0",
-".s c #7f7f00",
-".t c #007f7f",
-".u c #5f5f5f",
-".v c #707070",
-".w c #00f0f0",
-".x c #009090",
-".y c #ffff00",
-".z c #0000ff",
-".A c #00afaf",
-".B c #00d0d0",
-".C c #00dfdf",
-".D c #005f5f",
-".E c #00b0b0",
-".F c #001010",
-".G c #00c0c0",
-".H c #000f0f",
-".I c #00007f",
-".J c #005050",
-".K c #002f2f",
-".L c #dfcfcf",
-".M c #dfd0d0",
-".N c #006060",
-".O c #00e0e0",
-".P c #00ff00",
-".Q c #002020",
-".R c #dfc0c0",
-".S c #008080",
-".T c #001f1f",
-".U c #003f3f",
-".V c #007f00",
-".W c #00000f",
-".X c #000010",
-".Y c #00001f",
-".Z c #000020",
-".0 c #00002f",
-".1 c #000030",
-".2 c #00003f",
-".3 c #000040",
-".4 c #00004f",
-".5 c #000050",
-".6 c #00005f",
-".7 c #000060",
-".8 c #00006f",
-".9 c #000070",
-"#. c #7f7f80",
-"## c #9f9f9f",
-/* pixels */
-"........................................",
-"........................................",
-"........................................",
-".......................#.#.#............",
-".....................#.......#...#......",
-"...............................#.#......",
-".......#.#.#.................#.#.#......",
-".....#.y.i.y.#.#.#.#.#.#.#..............",
-".....#.i.y.i.y.i.y.i.y.i.#..............",
-".....#.y.i.y.i.y.i.y.i.y.#..............",
-".....#.i.y.i.y.#.#.#.#.#.#.#.#.#.#.#....",
-".....#.y.i.y.#.s.s.s.s.s.s.s.s.s.#......",
-".....#.i.y.#.s.s.s.s.s.s.s.s.s.#........",
-".....#.y.#.s.s.s.s.s.s.s.s.s.#..........",
-".....#.#.s.s.s.s.s.s.s.s.s.#............",
-".....#.#.#.#.#.#.#.#.#.#.#..............",
-"........................................",
-"........................................",
-"........................................"
-};
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testdnd.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testdnd.ml
deleted file mode 100644 (file)
index 8c10f7b..0000000
+++ /dev/null
@@ -1,510 +0,0 @@
-(* this is a translation in Caml of the gtk+ example testdnd.c  *)
-
-
-open Gaux
-open Gtk
-open GObj
-open GMain
-
-(* GtkThread.start() *)
-
-let drag_icon_xpm = [|
-"36 48 9 1";
-"      c None";
-".     c #020204";
-"+     c #8F8F90";
-"@     c #D3D3D2";
-"#     c #AEAEAC";
-"$     c #ECECEC";
-"%     c #A2A2A4";
-"&     c #FEFEFC";
-"*     c #BEBEBC";
-"               .....................";
-"              ..&&&&&&&&&&&&&&&&&&&.";
-"             ...&&&&&&&&&&&&&&&&&&&.";
-"            ..&.&&&&&&&&&&&&&&&&&&&.";
-"           ..&&.&&&&&&&&&&&&&&&&&&&.";
-"          ..&&&.&&&&&&&&&&&&&&&&&&&.";
-"         ..&&&&.&&&&&&&&&&&&&&&&&&&.";
-"        ..&&&&&.&&&@&&&&&&&&&&&&&&&.";
-"       ..&&&&&&.*$%$+$&&&&&&&&&&&&&.";
-"      ..&&&&&&&.%$%$+&&&&&&&&&&&&&&.";
-"     ..&&&&&&&&.#&#@$&&&&&&&&&&&&&&.";
-"    ..&&&&&&&&&.#$**#$&&&&&&&&&&&&&.";
-"   ..&&&&&&&&&&.&@%&%$&&&&&&&&&&&&&.";
-"  ..&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&.";
-" ..&&&&&&&&&&&&.&&&&&&&&&&&&&&&&&&&.";
-"................&$@&&&@&&&&&&&&&&&&.";
-".&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&&&&&.";
-".&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&&&.";
-".&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&&&.";
-".&&&&&&@#@@$&*@&@#@#$**#$&&&&&&&&&&.";
-".&&&&&&&&&&&&&&&&&&&@%&%$&&&&&&&&&&.";
-".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
-".&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&&&.";
-".&&&&&&&&&+&$+&$&@&$@&&$@&&&&&&&&&&.";
-".&&&&&&&&&+&&#@%#+@#@*$%&+$&&&&&&&&.";
-".&&&&&&&&&+&&#@#@&&@*%$%$+&&&&&&&&&.";
-".&&&&&&&&&+&$%&#@&#@@#&#@$&&&&&&&&&.";
-".&&&&&&&&@#@@$&*@&@#@#$#*#$&&&&&&&&.";
-".&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&&&.";
-".&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&&&&&.";
-".&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&&&&&.";
-".&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&&&&&.";
-".&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&&&&&.";
-".&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&&&&&.";
-".&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&&&&&.";
-".&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&&&&&.";
-".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
-".&&&&&&&&&&&&&&$#@@$&&&&&&&&&&&&&&&.";
-".&&&&&&&&&&&&&&&+&$%&$$@&$@&&$@&&&&.";
-".&&&&&&&&&&&&&&&+&&#@%#+@#@*$%$+$&&.";
-".&&&&&&&&&&&&&&&+&&#@#@&&@*#$%$+&&&.";
-".&&&&&&&&&&&&&&&+&$+&*@&#@@#&#@$&&&.";
-".&&&&&&&&&&&&&&$%@@&&*@&@#@#$#*#&&&.";
-".&&&&&&&&&&&&&&&&&&&&&&&&&&&$%&%$&&.";
-".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
-".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
-".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.";
-"...................................." |]
-
-
-
-let trashcan_closed_xpm = [|
-"64 80 17 1";
-"      c None";
-".     c #030304";
-"+     c #5A5A5C";
-"@     c #323231";
-"#     c #888888";
-"$     c #1E1E1F";
-"%     c #767677";
-"&     c #494949";
-"*     c #9E9E9C";
-"=     c #111111";
-"-     c #3C3C3D";
-";     c #6B6B6B";
-">     c #949494";
-",     c #282828";
-"'     c #808080";
-")     c #545454";
-"!     c #AEAEAC";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                       ==......=$$...===                        ";
-"                 ..$------)+++++++++++++@$$...                  ";
-"             ..=@@-------&+++++++++++++++++++-....              ";
-"          =.$$@@@-&&)++++)-,$$$$=@@&+++++++++++++,..$           ";
-"         .$$$$@@&+++++++&$$$@@@@-&,$,-++++++++++;;;&..          ";
-"        $$$$,@--&++++++&$$)++++++++-,$&++++++;%%'%%;;$@         ";
-"       .-@@-@-&++++++++-@++++++++++++,-++++++;''%;;;%*-$        ";
-"       +------++++++++++++++++++++++++++++++;;%%%;;##*!.        ";
-"        =+----+++++++++++++++++++++++;;;;;;;;;;;;%'>>).         ";
-"         .=)&+++++++++++++++++;;;;;;;;;;;;;;%''>>#>#@.          ";
-"          =..=&++++++++++++;;;;;;;;;;;;;%###>>###+%==           ";
-"           .&....=-+++++%;;####''''''''''##'%%%)..#.            ";
-"           .+-++@....=,+%#####'%%%%%%%%%;@$-@-@*++!.            ";
-"           .+-++-+++-&-@$$=$=......$,,,@;&)+!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           =+-++-+++-+++++++++!++++!++++!+++!++!+++=            ";
-"            $.++-+++-+++++++++!++++!++++!+++!++!+.$             ";
-"              =.++++++++++++++!++++!++++!+++!++.=               ";
-"                 $..+++++++++++++++!++++++...$                  ";
-"                      $$=.............=$$                       ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                "  |]
-
-let trashcan_open_xpm = [|
-"64 80 17 1";
-"      c None";
-".     c #030304";
-"+     c #5A5A5C";
-"@     c #323231";
-"#     c #888888";
-"$     c #1E1E1F";
-"%     c #767677";
-"&     c #494949";
-"*     c #9E9E9C";
-"=     c #111111";
-"-     c #3C3C3D";
-";     c #6B6B6B";
-">     c #949494";
-",     c #282828";
-"'     c #808080";
-")     c #545454";
-"!     c #AEAEAC";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                      .=.==.,@                  ";
-"                                   ==.,@-&&&)-=                 ";
-"                                 .$@,&++;;;%>*-                 ";
-"                               $,-+)+++%%;;'#+.                 ";
-"                            =---+++++;%%%;%##@.                 ";
-"                           @)++++++++;%%%%'#%$                  ";
-"                         $&++++++++++;%%;%##@=                  ";
-"                       ,-++++)+++++++;;;'#%)                    ";
-"                      @+++&&--&)++++;;%'#'-.                    ";
-"                    ,&++-@@,,,,-)++;;;'>'+,                     ";
-"                  =-++&@$@&&&&-&+;;;%##%+@                      ";
-"                =,)+)-,@@&+++++;;;;%##%&@                       ";
-"               @--&&,,@&)++++++;;;;'#)@                         ";
-"              ---&)-,@)+++++++;;;%''+,                          ";
-"            $--&)+&$-+++++++;;;%%'';-                           ";
-"           .,-&+++-$&++++++;;;%''%&=                            ";
-"          $,-&)++)-@++++++;;%''%),                              ";
-"         =,@&)++++&&+++++;%'''+$@&++++++                        ";
-"        .$@-++++++++++++;'#';,........=$@&++++                  ";
-"       =$@@&)+++++++++++'##-.................=&++               ";
-"      .$$@-&)+++++++++;%#+$.....................=)+             ";
-"      $$,@-)+++++++++;%;@=........................,+            ";
-"     .$$@@-++++++++)-)@=............................            ";
-"     $,@---)++++&)@===............................,.            ";
-"    $-@---&)))-$$=..............................=)!.            ";
-"     --&-&&,,$=,==...........................=&+++!.            ";
-"      =,=$..=$+)+++++&@$=.............=$@&+++++!++!.            ";
-"           .)-++-+++++++++++++++++++++++++++!++!++!.            ";
-"           .+-++-+++++++++++++++++++++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!+++!!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           .+-++-+++-+++++++++!++++!++++!+++!++!++!.            ";
-"           =+-++-+++-+++++++++!++++!++++!+++!++!+++=            ";
-"            $.++-+++-+++++++++!++++!++++!+++!++!+.$             ";
-"              =.++++++++++++++!++++!++++!+++!++.=               ";
-"                 $..+++++++++++++++!++++++...$                  ";
-"                      $$==...........==$$                       ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                ";
-"                                                                "  |]
-
-let window = GWindow.window ~title:"DnD Test" ()
-let _ = window#misc#realize ()
-
-let drag_icon =
-  GDraw.pixmap_from_xpm_d ~data:drag_icon_xpm ~window ()
-
-let trashcan_open =
-  GDraw.pixmap_from_xpm_d ~data:trashcan_open_xpm ~window ()
-
-let trashcan_closed =
-  GDraw.pixmap_from_xpm_d ~data:trashcan_closed_xpm ~window ()
-
-let targets = [
-  { target = "STRING"; flags = []; info = 0};
-  { target = "text/plain"; flags = []; info = 0};
-  { target = "text/uri-list"; flags = []; info = 2};
-  { target = "application/x-rootwin-drop"; flags = []; info = 1}
-]
-
-class drag_handler = object
-  method private beginning (_ : drag_context) = ()
-  method private data_delete (_ : drag_context) = ()
-  method private data_get (_ : drag_context) (_ : selection_data)
-      ~info:(_ : int) ~time:(_ : int) = ()
-  method private data_received (_ : drag_context) ~x:(_ : int) ~y:(_ : int)
-      (_ : selection_data) ~info:(_ : int) ~time:(_ : int) = ()
-  method private drop (_ : drag_context) ~x:(_ : int) ~y:(_ : int)
-      ~time:(_ : int) = false
-  method private ending (_ : drag_context) = ()
-  method private leave (_ : drag_context) ~time:(_ : int) = ()
-  method private motion (_ : drag_context) ~x:(_ : int) ~y:(_ : int)
-      ~time:(_ : int) = false
-end
-
-
-class target_drag ?packing ?show () =
-  let pixmap = GMisc.pixmap trashcan_closed ?packing ?show () in
-object (self)
-  inherit widget pixmap#as_widget
-  inherit drag_handler
-  val mutable have_drag = false
-
-  method leave _ ~time =
-    print_endline "leave"; flush stdout;
-    have_drag <- false;
-    pixmap#set_pixmap trashcan_closed
-
-  method motion context ~x ~y ~time =
-    if not have_drag then begin
-      have_drag <- true;
-      pixmap#set_pixmap trashcan_open
-    end;
-    let source_typename =
-      try
-       context#source_widget#misc#get_type
-      with Gpointer.Null -> "unknown"
-    in
-    Printf.printf "motion, source %s\n" source_typename; flush stdout;
-    context#status [context#suggested_action] ~time;
-    true
-
-  method drop context ~x ~y ~time =
-    prerr_endline "drop"; flush stdout;
-    have_drag <- false;
-    pixmap#set_pixmap trashcan_closed;
-    match context#targets with
-    | [] -> false
-    | d :: _ -> pixmap#drag#get_data d ~context ~time; true
-
-  method data_received context ~x ~y data ~info ~time =
-    if data#format = 8 then begin
-      Printf.printf "Received \"%s\" in trashcan\n" data#data;
-      flush stdout;
-      context#finish ~success:true ~del:false ~time
-    end
-    else context#finish ~success:false ~del:false ~time
-
-  initializer
-    pixmap#drag#dest_set targets ~actions:[`COPY;`MOVE];
-    pixmap#drag#connect#leave ~callback:self#leave;
-    pixmap#drag#connect#motion ~callback:self#motion;
-    pixmap#drag#connect#drop ~callback:self#drop;
-    pixmap#drag#connect#data_received ~callback:self#data_received;
-    ()
-end
-
-class label_drag ?packing ?show () =
-  let label = GMisc.label ~text:"Drop Here\n" ?packing ?show () in
-object (self)
-  inherit widget label#as_widget
-  inherit drag_handler
-  method data_received context ~x ~y data ~info ~time =
-    if data#format = 8 then  begin
-      Printf.printf "Received \"%s\" in label\n" data#data;
-      flush stdout;
-      context#finish ~success:true ~del:false ~time
-    end
-    else context#finish ~success:false ~del:false ~time
-
-  initializer
-    label#drag#dest_set targets ~actions:[`COPY; `MOVE ];
-    label#drag#connect#data_received ~callback:self#data_received;
-    ()
-end
-
-class source_drag ?packing ?show () =
-  let button = GButton.button ~label:"Drag Here\n" ?packing ?show () in
-object (self)
-  inherit widget button#as_widget
-  inherit drag_handler
-  method data_get _ data ~info ~time =
-    if info = 1 then begin
-      print_endline "I was dropped on the rootwin"; flush stdout
-    end
-    else if info = 2 then
-      data#set ~typ:data#target ~format:8
-       ~data:"file:///home/otaylor/images/weave.png"
-    else
-      data#set ~typ:data#target ~format:8 ~data:"I'm Data!"
-
-  method data_delete _ =
-    print_endline "Delete the data!"; flush stdout
-
-  initializer
-    button#drag#source_set targets
-      ~modi:[`BUTTON1; `BUTTON3 ] ~actions:[`COPY; `MOVE ];
-    button#drag#source_set_icon drag_icon;
-    button#drag#connect#data_get ~callback:self#data_get;
-    button#drag#connect#data_delete ~callback:self#data_delete;
-    ()
-end
-
-class popup () = object (self)
-  inherit drag_handler
-  val mutable popup_window = (None : GWindow.window option)
-  val mutable popped_up = false
-  val mutable in_popup = false
-  val mutable popdown_timer = None
-  val mutable popup_timer = None
-
-  method timer = popup_timer
-  method remove_timer () =
-    may popup_timer
-      ~f:(fun pdt -> Timeout.remove pdt; popup_timer <- None)
-  method add_timer time ~callback =
-    popup_timer <- Some (Timeout.add ~ms:time ~callback)
-
-  method popdown () =
-    popdown_timer <- None;
-    may popup_window ~f:(fun w -> w#misc#hide ());
-    popped_up <- false;
-    false
-
-  method motion (_ : drag_context) ~x ~y ~time =
-    if not in_popup then begin
-      in_popup <- true;
-      may popdown_timer ~f:
-       begin fun pdt ->
-         print_endline "removed popdown"; flush stdout;
-         Timeout.remove pdt;
-         popdown_timer <- None
-       end
-    end;
-    true
-
-  method leave (_ : drag_context) ~time =
-    if in_popup then begin
-      in_popup <- false;
-      if popdown_timer = None then begin
-       print_endline "added popdown"; flush stdout;
-       popdown_timer <- Some (Timeout.add ~ms:500 ~callback:self#popdown)
-      end
-    end
-
-  method popup () =
-    if not popped_up then begin
-      if popup_window = None then begin
-       let w = GWindow.window ~kind:`POPUP ~position:`MOUSE () in
-       popup_window <- Some w;
-       let table = GPack.table ~rows:3 ~columns:3 ~packing:w#add () in
-       for i = 0 to 2 do
-         for j = 0 to 2 do
-           let button =
-             GButton.button ~label:(string_of_int i ^ "," ^ string_of_int j)
-               ~packing:(table#attach ~left:i ~top:j ~expand:`BOTH) ()
-           in
-           button#drag#dest_set targets ~actions:[`COPY; `MOVE ];
-           button#drag#connect#motion ~callback:self#motion;
-           button#drag#connect#leave ~callback:self#leave;
-         done
-       done
-      end;
-      may popup_window ~f:(fun w -> w#show ());
-      popped_up <- true
-    end;
-    popdown_timer <- Some (Timeout.add ~ms:500 ~callback:self#popdown);
-    print_endline "added popdown"; flush stdout;
-    self#remove_timer ();
-    false
-end
-
-class popsite ?packing ?show () =
-  let label = GMisc.label ~text:"Popup\n" ?packing ?show ()
-  and popup = new popup () in
-object (self)
-  inherit widget label#as_widget
-  inherit drag_handler
-  method motion _ ~x ~y ~time =
-    if popup#timer = None then begin
-      print_endline "added popdown"; flush stdout;
-      popup#add_timer 500 ~callback:popup#popup
-    end;
-    true
-
-  method leave _ ~time =
-    popup#remove_timer ()
-
-  initializer
-    label#drag#dest_set targets ~actions:[`COPY; `MOVE ];
-    label#drag#connect#motion ~callback:self#motion;
-    label#drag#connect#leave ~callback:self#leave;
-    ()
-end
-
-let main () =
-  window#connect#destroy ~callback: Main.quit;
-  let table = GPack.table ~rows:2 ~columns:2 ~packing:window#add () in
-  let attach = table#attach ~expand:`BOTH in
-  new label_drag ~packing:(attach ~left:0 ~top:0) ();
-  new target_drag ~packing:(attach ~left:1 ~top:0) ();
-  new source_drag ~packing:(attach ~left:0 ~top:1) ();
-  new popsite ~packing:(attach ~left:1 ~top:1) ();
-
-  window#show ();
-  Main.main ()
-
-let _ =
-  main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testgtk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testgtk.ml
deleted file mode 100644 (file)
index 6c937f5..0000000
+++ /dev/null
@@ -1,1140 +0,0 @@
-(* $Id$ *)
-
-open GdkKeysyms
-open GMain
-open GObj
-
-let create_bbox direction title spacing child_w child_h layout =
-  let frame = GBin.frame ~label: title () in
-  let bbox = GPack.button_box direction ~border_width: 5 ~packing: frame#add 
-      ~layout: layout ~child_height: child_h ~child_width: child_w
-      ~spacing: spacing () in
-  GButton.button ~label: "OK"     ~packing: bbox#add ();
-  GButton.button ~label: "Cancel" ~packing: bbox#add ();
-  GButton.button ~label: "Help"   ~packing: bbox#add ();
-  frame#coerce
-
-let create_button_box =
-  let rw = ref None in
-  let aux () =
-    match !rw with
-    | None ->
-       let window = GWindow.window ~title: "Button Boxes" ~border_width: 0 () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-
-       let main_vbox = GPack.vbox ~packing: (window#add) () in
-
-       let frame_horz = GBin.frame ~label: "Horizontal Button Boxes"
-           ~packing:(main_vbox#pack ~expand:true ~fill:true ~padding:10) () in
-       
-       let vbox = GPack.vbox ~border_width: 10 ~packing: frame_horz#add () in
-       
-       vbox#add  (create_bbox `HORIZONTAL "Spread" 40 85 20 `SPREAD);
-       vbox#pack (create_bbox `HORIZONTAL "Edge"   40 85 20 `EDGE) 
-          ~expand: true ~fill: true ~padding: 5;
-       vbox#pack (create_bbox `HORIZONTAL "Start"  40 85 20 `START)
-          ~expand: true ~fill: true ~padding: 5;
-       vbox#pack (create_bbox `HORIZONTAL "End"    40 85 20 `END)
-          ~expand: true ~fill: true ~padding: 5;
-
-       let frame_vert = GBin.frame ~label: "Vertical Button Boxes"
-           ~packing:(main_vbox#pack ~expand:true ~fill:true ~padding:10) () in
-       
-       let hbox = GPack.hbox ~border_width: 10 ~packing: frame_vert#add () in
-       hbox#add  (create_bbox `VERTICAL "Spread" 30 85 20 `SPREAD);
-       hbox#pack (create_bbox `VERTICAL "Edge"   30 85 20 `EDGE)
-          ~expand: true ~fill: true ~padding: 5;
-       hbox#pack (create_bbox `VERTICAL "Start"  30 85 20 `START)
-          ~expand: true ~fill: true ~padding: 5;
-       hbox#pack (create_bbox `VERTICAL "End"    30 85 20 `END)
-          ~expand: true ~fill: true ~padding: 5;
-       window #show () 
-
-    | Some window -> window #destroy ()
-in aux
-
-
-let button_window button _ =
-  if button #misc#visible then
-    button #misc#hide ()
-  else
-    button #misc#show ()
-
-let create_buttons =
-  let rw = ref None in
-  let aux () =
-    match !rw with
-    | None ->
-       let window = GWindow.window ~title: "GtkButton" ~border_width: 0 () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-
-       let box1 = GPack.vbox ~packing:window#add () in
-       
-       let table = GPack.table ~rows:3 ~columns:3 ~homogeneous:false 
-           ~row_spacings:3 ~col_spacings:3 ~border_width:10
-           ~packing:box1#add () in
-
-       let button = Array.create 9 (GButton.button ~label:"button1" ()) in
-       for i = 2 to 9 do
-         button.(i-1) <- GButton.button ~label:("button" ^ string_of_int i) ();
-       done;
-
-       let f i l r t b =
-         button.(i) #connect#clicked ~callback:(button_window button.(i+1));
-         table #attach button.(i)#coerce ~left:l ~right:r ~top:t ~bottom:b
-           ~xpadding:0 ~ypadding:0 ~expand:`BOTH
-       in
-       f 0 0 1 0 1;
-       f 1 1 2 1 2;
-       f 2 2 3 2 3;
-       f 3 0 1 2 3;
-       f 4 2 3 0 1;
-       f 5 1 2 2 3;
-       f 6 1 2 0 1;
-       f 7 2 3 1 2;
-       button.(8) #connect#clicked ~callback:(button_window button.(0)); 
-       table #attach button.(8)#coerce ~left:0 ~right:1 ~top:1 ~bottom:2
-         ~xpadding:0 ~ypadding:0 ~expand:`BOTH;
-
-       GMisc.separator `HORIZONTAL ~packing:box1#pack ();
-       
-       let box2 = GPack.vbox ~spacing: 10 ~border_width: 10
-            ~packing: box1#pack () in
-
-       let button = GButton.button ~label: "close" ~packing: box2#add () in
-       button #connect#clicked ~callback: window#destroy;
-       button #grab_default ();
-       window #show ()
-
-    | Some window -> window #destroy ()
-in aux
-
-
-
-let create_check_buttons =
-  let rw = ref None in
-  let aux () =
-    match !rw with
-    | None ->
-       let window = GWindow.window ~title: "GtkCheckButton"
-           ~border_width: 0 () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-
-       let box1 = GPack.vbox ~packing:window#add () in
-       let box2 = GPack.vbox ~spacing: 10 ~border_width: 10
-           ~packing: box1#pack () in
-       
-       for i = 1 to 3 do
-         GButton.check_button ~label:("button" ^ (string_of_int i))
-           ~packing: box2#add ();
-       done;
-
-       GMisc.separator `HORIZONTAL ~packing: box1#pack ();
-       
-       let box2 = GPack.vbox ~spacing:10 ~border_width:10
-           ~packing: box1#pack () in
-
-       let button = GButton.button ~label: "close" ~packing:box2#add () in
-       button #connect#clicked ~callback: window#destroy;
-       button #grab_default ();
-       window #show ()
-       
-    | Some window ->  window #destroy ()
-in aux
-
-
-let create_radio_buttons =
-  let rw = ref None in
-  let aux () =
-    match !rw with
-    | None ->
-       let window = GWindow.window ~title: "radio buttons"
-           ~border_width: 0 () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-
-       let box1 = GPack.vbox ~packing:window#add () in
-       
-       let box2 = GPack.vbox ~spacing:10 ~border_width:10 
-           ~packing: box1#pack () in
-       
-       let button = GButton.radio_button ~label:"button1"
-           ~packing: box2#add () in
-
-       let button = GButton.radio_button ~label:"button2" ~group:button#group
-           ~packing: box2#add ~active:true () in
-       
-       let button = GButton.radio_button ~label:"button3" ~group:button#group
-           ~packing: box2#add () in
-
-       GMisc.separator `HORIZONTAL ~packing: box1#pack ();
-       
-       let box2 = GPack.vbox ~spacing:10 ~border_width:10
-            ~packing: box1#pack () in
-
-       let button = GButton.button ~label: "close" ~packing: box2#add () in
-       button #connect#clicked ~callback: window #destroy;
-       button #grab_default ();
-       window #show ()
-       
-    | Some window -> window #destroy ()
-in aux
-
-
-let create_toggle_buttons =
-  let rw = ref None in
-  let aux () =
-    match !rw with
-    | None ->
-       let window = GWindow.window ~title: "GtkToggleButton"
-           ~border_width: 0 () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-
-       let box1 = GPack.vbox ~packing: window#add () in
-       
-       let box2 = GPack.vbox ~spacing: 10 ~border_width: 10
-           ~packing: box1#pack () in
-       
-       for i = 1 to 3 do
-         GButton.toggle_button ~label:("button" ^ (string_of_int i))
-           ~packing: box2#add ()
-       done;
-
-       GMisc.separator `HORIZONTAL ~packing: box1#pack ();
-       
-       let box2 = GPack.vbox ~spacing: 10 ~border_width: 10
-           ~packing: box1#pack () in
-
-       let button = GButton.button ~label: "close" ~packing:box2#add () in
-       button #connect#clicked ~callback: window#destroy;
-       button #grab_default ();
-       window #show ()
-       
-    | Some window -> window #destroy ()
-in aux
-
-
-(* Menus *)
-
-let create_menu depth tearoff =
-  let rec aux depth tearoff =
-    let menu = GMenu.menu () and group = ref None in
-    if tearoff then ignore (GMenu.tearoff_item ~packing: menu#append ());
-    for i = 0 to 4 do
-      let menuitem = GMenu.radio_menu_item ?group:!group
-         ~label:("item " ^ string_of_int depth ^ " - " ^ string_of_int (i+1))
-         ~packing:menu#append ~show_toggle:(depth mod 2 <> 0)
-         () in
-      group := Some (menuitem #group);
-      if i = 3 then menuitem #misc#set_sensitive false;
-      if depth > 1 then
-       menuitem #set_submenu (aux (depth-1) true)
-    done;
-
-    menu
-  in aux depth tearoff
-
-
-let create_menus =
-  let rw = ref None in
-  fun () ->
-    match !rw with
-    | None ->
-       let window = GWindow.window ~title: "menus"
-           ~border_width: 0 () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-       window #event#connect#delete ~callback:(fun _ -> true);
-
-       let accel_group = GtkData.AccelGroup.create () in
-       window #add_accel_group accel_group  ;
-
-       let box1 = GPack.vbox ~packing:window#add () in
-
-       let menubar = GMenu.menu_bar ~packing: box1#pack () in
-
-       let menuitem = GMenu.menu_item ~label:"test\nline2"
-           ~packing: menubar#append () in
-       menuitem #set_submenu (create_menu 2 true);
-
-       let menuitem = GMenu.menu_item ~label:"foo"
-           ~packing: menubar#append () in
-       menuitem #set_submenu (create_menu 3 true);
-       menuitem #right_justify ();
-
-       let box2 = GPack.vbox ~spacing: 10 ~packing: box1#add
-           ~border_width: 10 () in
-
-       let menu = create_menu 1 false in
-       menu #set_accel_group accel_group;
-
-       let menuitem = GMenu.check_menu_item ~label:"Accelerate Me"
-           ~packing:menu#append () in
-       menuitem #add_accelerator ~group:accel_group _M
-         ~flags:[`VISIBLE; `SIGNAL_VISIBLE];
-
-       let menuitem = GMenu.check_menu_item ~label:"Accelerator Locked"
-           ~packing:menu#append () in
-       menuitem #add_accelerator ~group:accel_group _L
-         ~flags:[`VISIBLE; `LOCKED];
-
-       let menuitem = GMenu.check_menu_item ~label:"Accelerators Frozen"
-           ~packing:menu#append () in
-       menuitem #add_accelerator ~group:accel_group _F
-         ~flags:[`VISIBLE];
-       menuitem #misc#lock_accelerators ();
-
-       let optionmenu = GMenu.option_menu ~packing: box2#add () in
-       optionmenu #set_menu menu;
-       optionmenu #set_history 3;
-
-       GMisc.separator `HORIZONTAL ~packing: box1#pack ();
-
-       let box2 = GPack.vbox ~spacing:10 ~border_width:10
-           ~packing: box1#pack () in
-
-       let button = GButton.button ~label: "close" ~packing: box2#add () in
-       button #connect#clicked ~callback: window#destroy;
-       button #grab_default ();
-       window #show ()
-
-    | Some window -> window #destroy ()
-
-
-
-(* Modal windows *)
-
-let cmw_destroy_cb _ =
-  Main.quit ()
-
-let cmw_color parent _ =
-  let csd = GWindow.color_selection_dialog ~modal:true
-      ~title:"This is a modal color selection dialog" () in
-  csd # set_transient_for parent;
-  csd # connect#destroy ~callback:cmw_destroy_cb;
-  csd # ok_button # connect#clicked ~callback:csd#destroy;
-  csd # cancel_button # connect#clicked ~callback:csd#destroy;
-  csd # show ();
-  Main.main ()
-
-let cmw_file parent _ =
-  let fs = GWindow.file_selection ~modal:true
-      ~title:"This is a modal file selection dialog" () in
-  fs # set_transient_for parent;
-  fs # connect#destroy ~callback:cmw_destroy_cb;
-  fs # ok_button # connect#clicked ~callback:fs#destroy;
-  fs # cancel_button # connect#clicked ~callback:fs#destroy;
-  fs # show ();
-  Main.main ()
-
-let create_modal_window () =
-  let window = GWindow.window ~modal:true ~title:"This window is modal" () in
-  let box1 = GPack.vbox ~spacing:5 ~border_width:3 ~packing:window#add () in
-  let frame1 = GBin.frame ~label:"Standard dialogs in modal form"
-      ~packing:(box1#pack ~expand:true ~padding:4) () in
-  let box2 = GPack.vbox ~homogeneous:true ~spacing:5 ~packing:frame1#add () in
-  let btnColor = GButton.button ~label:"Color" 
-      ~packing:(box2#pack ~padding:4) ()
-  and btnFile = GButton.button ~label:"File selection" 
-      ~packing:(box2#pack ~padding:4) ()
-  and btnClose = GButton.button ~label:"Close" 
-      ~packing:(box2#pack ~padding:4) () in
-  GMisc.separator `HORIZONTAL
-    ~packing:(box1#pack ~padding:4) ();
-  
-  btnClose #connect#clicked ~callback:(fun _ -> window #destroy ());
-  window #connect#destroy ~callback:cmw_destroy_cb;
-  btnColor #connect#clicked ~callback: (cmw_color window);
-  btnFile #connect#clicked ~callback: (cmw_file window);
-  window # show ();
-  Main.main ()
-
-
-(* corrected bug in testgtk.c *)
-let scrolled_windows_remove, scrolled_windows_clean =
-  let parent = ref None and float_parent = ref None in
-  let remove (scrollwin : GBin.scrolled_window) () =
-    match !parent with
-    | None ->
-       parent := scrollwin#misc#parent;
-       let f = GWindow.window ~title:"new parent" () in
-       float_parent := Some f#coerce;
-       f #set_default_size ~width:200 ~height:200;
-       scrollwin #misc#reparent f#coerce;
-       f #show ()
-    | Some p ->
-       scrollwin #misc#reparent p;
-       match !float_parent with
-       | None -> ()
-       | Some f ->
-         f #destroy ();
-       float_parent := None;
-       parent := None
-  and clean () =
-    match !float_parent with
-    | None -> ()
-    | Some p -> p #destroy (); parent := None; float_parent := None
-  in remove, clean
-
-
-(* scrolled windows *)
-
-let create_scrolled_windows =
-  let rw = ref None in
-  let aux () =
-    match !rw with
-    | None ->
-       let window = GWindow.dialog ~title:"dialog" ~border_width:0 () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun  _ -> rw := None);
-       window #connect#destroy ~callback:scrolled_windows_clean;
-
-       let scrolled_window = GBin.scrolled_window ~border_width:10
-           ~hpolicy: `AUTOMATIC ~vpolicy:`AUTOMATIC
-           ~packing: window#vbox#add () in
-
-       let table = GPack.table ~rows:20 ~columns:20 ~row_spacings:10
-           ~col_spacings:10 ~packing:scrolled_window#add_with_viewport () in
-       table #focus#set_hadjustment (Some scrolled_window # hadjustment);
-       table #focus#set_vadjustment (Some scrolled_window # vadjustment);
-
-       for i = 0 to 19 do
-         for j=0 to 19 do
-           GButton.toggle_button
-             ~label:("button ("^ string_of_int i ^","^ string_of_int j ^")\n")
-             ~packing:(table #attach ~left:i ~top:j ~expand:`BOTH) ()
-         done
-       done;
-
-       let button = GButton.button ~label:"close"
-           ~packing:window#action_area#add () in
-       button #connect#clicked ~callback:(window #destroy);
-       button #grab_default ();
-
-       let button = GButton.button ~label:"remove"
-           ~packing:window#action_area#add () in
-       button #connect#clicked
-         ~callback:(scrolled_windows_remove scrolled_window);
-       button #grab_default ();
-       
-       window #set_default_size ~width:300 ~height:300;
-       window #show ()
-
-    | Some window -> window #destroy ()
-  in aux
-
-
-(* Toolbar *)
-
-let make_toolbar (toolbar : GButton.toolbar) window =
-  let icon =
-    let info = GDraw.pixmap_from_xpm ~file:"test.xpm" ~window () in
-    fun () -> (GMisc.pixmap info ())#coerce
-  in
-
-  toolbar #insert_button ~text:"Horizontal"
-    ~tooltip:"Horizontal toolbar layout"
-    ~tooltip_private:"Toolbar/Horizontal"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_orientation `HORIZONTAL) ();
-  
-  toolbar #insert_button ~text:"Vertical"
-    ~tooltip:"Vertical toolbar layout"
-    ~tooltip_private:"Toolbar/Vertical"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_orientation `VERTICAL) ();
-  
-  toolbar #insert_space ();
-  
-  toolbar #insert_button ~text:"Icons"
-    ~tooltip: "Only show toolbar icons"
-    ~tooltip_private:"Toolbar/IconsOnly"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_style `ICONS) ();
-  
-  toolbar #insert_button ~text:"Text"
-    ~tooltip: "Only show toolbar text"
-    ~tooltip_private:"Toolbar/TextOnly"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_style `TEXT) ();
-  
-  toolbar #insert_button ~text:"Both"
-    ~tooltip: "Show toolbar icons and text"
-    ~tooltip_private:"Toolbar/Both"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_style `BOTH) ();
-  
-  toolbar #insert_space ();
-  
-  GEdit.entry ~packing:(toolbar #insert_widget
-                        ~tooltip:"This is an unusable GtkEntry"
-                        ~tooltip_private: "Hey don't click me!!!") ();
-  
-  toolbar #insert_button ~text:"Small"
-    ~tooltip:"Use small spaces"
-    ~tooltip_private:"Toolbar/Small"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_space_size 5) ();
-  
-  toolbar #insert_button ~text:"Big"
-    ~tooltip:"Use big spaces"
-    ~tooltip_private:"Toolbar/Big"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_space_size 10) ();
-  
-  toolbar #insert_space ();
-  
-  toolbar #insert_button ~text:"Enable"
-    ~tooltip:"Enable tooltips"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_tooltips true) ();
-  
-  toolbar #insert_button ~text:"Disable"
-    ~tooltip:"Disable tooltips"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_tooltips false) ();
-  
-  toolbar #insert_space ();
-  
-  toolbar #insert_button ~text:"Borders"
-    ~tooltip:"Show borders"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_button_relief `NORMAL) ();
-  
-  toolbar #insert_button ~text:"Borderless"
-    ~tooltip:"Hide borders"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_button_relief `NONE) ();
-  
-  toolbar #insert_space ();
-  
-  toolbar #insert_button ~text:"Empty"
-    ~tooltip:"Empty spaces"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_space_style `EMPTY) ();
-  
-  toolbar #insert_button ~text:"Lines"
-    ~tooltip:"Lines in spaces"
-    ~icon:(icon ())
-    ~callback:(fun _ -> toolbar #set_space_style `LINE) ();
-  ()
-let create_toolbar =
-  let rw = ref None in
-  let aux () =
-    match !rw with
-    | None ->
-       let window = GWindow.window ~title: "Toolbar test"
-           ~border_width: 0 ~allow_shrink: false ~allow_grow: true
-           ~auto_shrink: true () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-       window #misc #realize ();
-       
-       let toolbar = GButton.toolbar ~packing: window#add () in
-       make_toolbar toolbar window;
-       
-       window #show ()
-         
-    | Some window -> window #destroy ()
-  in aux
-
-
-(* Handlebox *)
-
-let handle_box_child_signal action (hb : GBin.handle_box) child =
-  Printf.printf "%s: child <%s> %s\n" hb#misc#get_type child#misc#get_type action
-
-let create_handle_box =
-  let rw = ref None in
-  let aux () =
-    match !rw with
-    | None ->
-       let window = GWindow.window ~title: "Handle box test"
-           ~border_width: 20 ~allow_shrink: false ~allow_grow: true
-           ~auto_shrink: true () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-       window #misc #realize ();
-
-       let vbox = GPack.vbox ~packing:window#add () in
-
-       GMisc.label ~text:"Above" ~packing:vbox#add ();
-       GMisc.separator `HORIZONTAL ~packing:vbox#add ();
-
-       let hbox = GPack.hbox ~spacing:10 ~packing:vbox#add () in
-       GMisc.separator `HORIZONTAL ~packing:vbox#add ();
-
-       GMisc.label ~text:"Below" ~packing:vbox#add ();
-       let handle_box = GBin.handle_box ~packing:hbox#pack () in
-       handle_box #connect#child_attached
-         ~callback:(handle_box_child_signal "attached" handle_box);
-       handle_box #connect#child_detached
-         ~callback:(handle_box_child_signal "detached" handle_box);
-
-       let toolbar = GButton.toolbar ~packing:handle_box#add () in
-       make_toolbar toolbar window;
-       toolbar #set_button_relief `NORMAL;
-
-       let handle_box = GBin.handle_box ~packing:hbox#pack () in
-       handle_box #connect#child_attached
-         ~callback:(handle_box_child_signal "attached" handle_box);
-       handle_box #connect#child_detached
-         ~callback:(handle_box_child_signal "detached" handle_box);
-
-       let handle_box2 = GBin.handle_box ~packing:handle_box#add () in
-       handle_box2 #connect#child_attached
-         ~callback:(handle_box_child_signal "attached" handle_box);
-       handle_box2 #connect#child_detached
-         ~callback:(handle_box_child_signal "detached" handle_box);
-
-       GMisc.label ~text:"Fooo!" ~packing:handle_box2#add ();
-       window #show ()
-         
-    | Some window -> window #destroy ()
-  in aux
-
-
-
-(* Tree *)
-
-class tree_and_buttons () =
-object
-  val tree = GTree.tree ()
-  val add_button = GButton.button ~label: "Add Item" ()
-  val remove_button = GButton.button ~label:"Remove Item(s)" ()
-  val subtree_button = GButton.button ~label:"Remove Subtree" ()
-  val mutable nb_item_add = 0
-
-  method tree = tree
-  method add_button = add_button
-  method remove_button = remove_button
-  method subtree_button = subtree_button
-  method nb_item_add = nb_item_add
-  method incr_nb_item_add = nb_item_add <- nb_item_add + 1
-end
-
-let cb_tree_destroy_event w = ()
-
-let cb_add_new_item (treeb : tree_and_buttons) _ =
-  let subtree =
-    match treeb#tree#selection with
-    | []  -> treeb#tree
-    | selected_item :: _ ->
-       match selected_item#subtree with Some t -> t
-       | None ->
-          let t = GTree.tree () in
-          selected_item#set_subtree t;
-          t
-  in
-  let item_new = GTree.tree_item ~packing:(subtree#insert ~pos:0)
-      ~label:("item add " ^ string_of_int treeb # nb_item_add) () in
-  treeb #incr_nb_item_add
-
-
-let cb_remove_item (treeb : tree_and_buttons) _  = 
-  let tree = treeb#tree in
-  match tree #selection with
-  | [] -> ()
-  |  selected -> tree #remove_items selected
-
-
-let cb_remove_subtree (treeb : tree_and_buttons) _ =
-  match treeb#tree #selection with
-  | [] -> ()
-  | selected_item :: _ ->
-    try selected_item#subtree; selected_item#remove_subtree ()
-    with Not_found -> ()
-
-let cb_tree_changed (treeb : tree_and_buttons) _ =
-  let tree = treeb#tree in
-  let nb_selected = List.length (tree#selection) in
-  if nb_selected = 0 then begin
-    treeb # remove_button #misc#set_sensitive false;
-    treeb # subtree_button #misc#set_sensitive false;
-  end else begin
-    treeb # remove_button #misc#set_sensitive true;
-    treeb # subtree_button #misc#set_sensitive (nb_selected = 1);
-    treeb # add_button #misc#set_sensitive (nb_selected = 1);
-  end
-  
-  
-let rec create_subtree (item : GTree.tree_item) level nb_item_max
-    recursion_level_max =
-  if level = recursion_level_max then ()
-  else begin
-    let item_subtree = GTree.tree () in
-    for nb_item = 1 to nb_item_max do
-      let item_new = GTree.tree_item ~packing:(item_subtree#insert ~pos:0)
-         ~label:("item" ^ string_of_int level ^ "-" ^ string_of_int nb_item) ()
-      in
-      create_subtree item_new (level + 1) nb_item_max recursion_level_max;
-    done;
-    item # set_subtree item_subtree
-  end
-
-
-let create_tree_sample selection_mode draw_line view_line no_root_item
-    nb_item_max recursion_level_max =
-  let window = GWindow.window ~title:"Tree Sample" () in
-  let box1 = GPack.vbox ~packing:window#add () in
-  let box2 = GPack.vbox ~packing:box1#add ~border_width:5 () in
-  let scrolled_win = GBin.scrolled_window ~packing:box2#add
-      ~hpolicy: `AUTOMATIC ~vpolicy:`AUTOMATIC
-      ~width:200 ~height:200 () in
-
-  let root_treeb = new tree_and_buttons () in
-  let root_tree = root_treeb#tree in
-  root_tree #connect#selection_changed ~callback:(cb_tree_changed root_treeb);
-  scrolled_win #add_with_viewport root_tree#coerce;
-  root_tree #set_selection_mode selection_mode;
-  root_tree #set_view_lines draw_line;
-  root_tree #set_view_mode
-    (match view_line with `LINE -> `ITEM | `ITEM -> `LINE);
-
-  if no_root_item then
-    for nb_item = 1 to nb_item_max do
-      let item_new = GTree.tree_item ~label:("item0-" ^ string_of_int nb_item)
-         ~packing:(root_tree#insert ~pos:0) () in
-      create_subtree item_new 1 nb_item_max recursion_level_max;
-    done
-  else begin
-    let root_item = GTree.tree_item ~label:"root item"
-       ~packing:(root_tree #insert ~pos:0) () in
-    create_subtree root_item 0 nb_item_max recursion_level_max
-  end;
-
-  let box2 = GPack.vbox ~border_width:5 ~packing:box1#pack () in
-
-  let button = root_treeb #add_button in
-  button #misc#set_sensitive false;
-  button #connect#clicked ~callback:(cb_add_new_item root_treeb);
-  box2 #add button#coerce;
-
-  let button = root_treeb #remove_button in
-  button #misc#set_sensitive false;
-  button #connect#clicked ~callback:(cb_remove_item root_treeb);
-  box2 #add button#coerce;
-
-  let button = root_treeb #subtree_button in
-  button #misc#set_sensitive false;
-  button #connect#clicked ~callback:(cb_remove_subtree root_treeb);
-  box2 #add button#coerce;
-
-  GMisc.separator `HORIZONTAL ~packing:box1#pack ();
-
-  let button = GButton.button ~label:"Close" ~packing:box2#add () in
-  button #connect#clicked ~callback:window#destroy;
-
-  window #show ()
-
-
-let create_tree_mode_window =
-  let rw = ref None in
-  let aux () =
-    let default_number_of_item = 3.0 in
-    let default_recursion_level = 3.0 in
-    let single_button = GButton.radio_button ~label:"SINGLE" () in
-    let browse_button = GButton.radio_button
-       ~group:single_button#group ~label:"BROWSE" () in
-    let multiple_button = GButton.radio_button
-       ~group:browse_button#group ~label:"MULTIPLE" () in
-    let draw_line_button = GButton.check_button ~label:"Draw line" () in
-    let view_line_button = GButton.check_button ~label:"View line mode" () in
-    let no_root_item_button = GButton.check_button
-       ~label:"Without Root item" () in
-    let nb_item_spinner = GEdit.spin_button
-       ~adjustment:(GData.adjustment ~value:default_number_of_item
-          ~lower:1.0 ~upper:255.0 ~step_incr:1.0 ~page_incr:5.0
-          ~page_size:0.0 ()) ~rate:0. ~digits:0 () in
-    let recursion_spinner = GEdit.spin_button
-       ~adjustment:(GData.adjustment ~value:default_recursion_level
-          ~lower:0.0 ~upper:255.0 ~step_incr:1.0 ~page_incr:5.0
-          ~page_size:0.0 ()) ~rate:0. ~digits:0 () in
-    let cb_create_tree _ =
-      let selection_mode =
-       if single_button #active then `SINGLE
-       else if browse_button #active then `BROWSE
-       else `MULTIPLE in
-      let nb_item = nb_item_spinner#value_as_int  in
-      let recursion_level = recursion_spinner#value_as_int in
-      create_tree_sample selection_mode (draw_line_button #active)
-       (if (view_line_button #active) then `ITEM else `LINE)
-       (no_root_item_button #active)
-       nb_item recursion_level
-    in
-    match !rw with
-    | None ->
-       let window = GWindow.window ~title:"Set Tree Parameters" () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-
-       let box1 = GPack.vbox ~packing:window#add () in
-
-       let box2 = GPack.vbox ~spacing:5 ~packing:box1#add
-           ~border_width:5 () in
-
-       let box3 = GPack.hbox ~spacing:5 ~packing:box2#add () in
-
-       let frame = GBin.frame ~label:"Selection Mode" ~packing:box3#add ()
-       in
-       
-       let box4 = GPack.vbox ~packing:frame#add ~border_width:5 () in
-
-       box4 #add single_button#coerce;
-       box4 #add browse_button#coerce;
-       box4 #add multiple_button#coerce;
-
-       let frame = GBin.frame ~label:"Options" ~packing:box3#add () in
-       
-       let box4 = GPack.vbox ~packing:frame#add ~border_width:5 () in
-       box4 #add draw_line_button#coerce;
-       draw_line_button #set_active true;
-       
-       box4 #add view_line_button#coerce;
-       view_line_button #set_active true;
-       
-       box4 #add no_root_item_button#coerce;
-
-       let frame = GBin.frame ~label:"Size Parameters" ~packing:box2#add ()
-       in
-
-       let box4 = GPack.hbox ~spacing:5 ~packing:frame#add ~border_width:5 () in
-
-       let box5 = GPack.hbox ~spacing:5 ~packing:box4#add () in
-       let label = GMisc.label ~text:"Number of items : "
-            ~xalign:0. ~yalign:0.5 ~packing:box5#pack () in
-       box5 #pack nb_item_spinner#coerce;
-       
-       let label = GMisc.label ~text:"Depth : " ~xalign:0. ~yalign:0.5
-           ~packing:box5#pack () in
-       box5 #pack recursion_spinner#coerce;
-       
-       GMisc.separator `HORIZONTAL ~packing:box1#pack ();
-
-       let box2 = GPack.hbox ~homogeneous:true ~spacing:10 ~border_width:5
-           ~packing:box1#pack () in
-
-       let button = GButton.button ~label:"Create Tree"
-            ~packing:box2#add () in
-       button #connect#clicked ~callback:cb_create_tree;
-
-       let button = GButton.button ~label: "close" ~packing:box2#add () in
-       button #connect#clicked ~callback: window#destroy;
-       button #grab_default ();
-       window #show ()
-       
-    | Some window -> window #destroy ()
-  in aux
-
-
-
-(* Tooltips *)
-
-let tips_query_widget_entered (toggle : GButton.toggle_button)
-    (tq : GMisc.tips_query) _ ~text ~privat:_  =
-  if toggle #active then begin
-    tq #set_text
-      (match text with
-      | None -> "There is no tip!" | Some _ -> "There is a tip!");
-    GtkSignal.stop_emit ()
-  end
-
-let tips_query_widget_selected (w : #widget option) ~text ~privat:tp _ =
-  (match w with
-  | None -> ()
-  | Some w -> 
-    Printf.printf "Help \"%s\" requested for <%s>\n"
-       (match tp with None -> "None" | Some t -> t)
-       (w #misc#get_type));
-   true
-
-
-let create_tooltips =
-  let rw = ref None in
-  let aux () =
-     match !rw with
-    | None ->
-
-       let window = GWindow.window ~title:"Tooltips"
-           ~border_width:0 ~allow_shrink:false ~allow_grow:false
-           ~auto_shrink:true () in
-       rw := Some window;
-       let tooltips = GData.tooltips () in
-       window #connect#destroy 
-         ~callback:(fun _ -> tooltips #destroy ();  rw := None);
-
-       let box1 = GPack.vbox ~packing:window#add () in
-
-       let box2 = GPack.vbox ~spacing:10 ~border_width:10
-           ~packing:box1#add () in
-
-       let button = GButton.toggle_button ~label:"button1"
-            ~packing:box2#add ()
-       in
-       tooltips #set_tip button#coerce ~text:"This is button1"
-         ~privat:"ContextHelp/buttons/1";
-       
-       let button = GButton.toggle_button ~label:"button2"
-            ~packing:box2#add ()
-       in
-       tooltips #set_tip button#coerce
-         ~text:"This is button 2. This is also a really long tooltip which probably won't fit on a single line and will therefore need to be wrapped. Hopefully the wrapping will work correctly."
-         ~privat:"ContextHelp/buttons/2_long";
-
-       let toggle = GButton.toggle_button ~label:"Override TipsQuery Label" 
-           ~packing:box2#add () in
-       tooltips #set_tip toggle#coerce ~text:"Toggle TipsQuery view."
-         ~privat:"Hi msw! ;)";
-
-       let box3 = GPack.vbox ~spacing:5 ~border_width:5 () in
-
-       let button = GButton.button ~label:"[?]" 
-           ~packing:box3#pack () in
-
-       let tips_query = GMisc.tips_query ~packing:box3#add () in
-       button #connect#clicked ~callback:(tips_query #start);
-
-       tooltips #set_tip button#coerce ~text:"Start the Tooltips Inspector"
-         ~privat:"ContextHelp/buttons/?";
-
-       tips_query #set_caller button#coerce;
-       tips_query #connect#widget_entered
-         ~callback:(tips_query_widget_entered toggle tips_query);
-       tips_query #connect#widget_selected ~callback:tips_query_widget_selected;
-
-       let frame = GBin.frame ~label:"Tooltips Inspector"
-           ~border_width:0 ~packing:(box2#pack ~expand:true ~padding:10) 
-           ~label_xalign:0.5 ~label_yalign:0.0 () in
-       frame #add box3#coerce;
-
-       GMisc.separator `HORIZONTAL ~packing:box1#pack ();
-
-       let box2 = GPack.vbox ~spacing: 10 ~border_width: 10
-           ~packing: box1#pack () in
-
-       let button = GButton.button ~label: "close" ~packing: box2#add () in
-       button #connect#clicked ~callback: window#destroy;
-       button #grab_default ();
-       tooltips #set_tip button#coerce ~text:"Push this button to close window"
-         ~privat:"ContextHelp/buttons/Close";
-
-       window #show ();
-
-    | Some window -> window #destroy ()
-  in aux
-
-
-(* Labels *)
-let create_labels =
-  let rw = ref None in
-  let aux () =
-     match !rw with
-    | None ->
-
-       let window = GWindow.window ~title:"Labels" ~border_width:5 () in
-       rw := Some window;
-       window #connect#destroy 
-         ~callback:(fun _ -> rw := None);
-
-       let hbox = GPack.hbox ~spacing:5 ~packing:window#add () in
-       let vbox = GPack.vbox ~spacing:5 ~packing:hbox#add () in
-
-       let frame = GBin.frame ~label:"Normal Label"
-           ~packing:vbox#pack () in
-       GMisc.label ~text:"This is a normal label" ~packing:frame#add ();
-
-       let frame = GBin.frame ~label:"Multi_line Label"
-           ~packing:vbox#pack () in
-       GMisc.label ~packing:frame#add
-         ~text:"This is a multi-line label.\nSecond line\nThird line" ();
-
-       let frame = GBin.frame ~label:"Left Justified Label"
-           ~packing:vbox#pack () in
-       GMisc.label ~packing:frame#add ~justify:`LEFT
-         ~text:"This is a left justified\nmulti_line label\nThird line" ();
-
-       let frame = GBin.frame ~label:"Right Justified Label"
-           ~packing:vbox#pack () in
-       GMisc.label ~packing:frame#add ~justify:`RIGHT
-         ~text:"This is a right justified\nmulti_line label\nThird line" ();
-
-       let vbox = GPack.vbox ~spacing:5 ~packing:hbox#add () in
-
-       let frame = GBin.frame ~label:"Line wrapped Label"
-           ~packing:vbox#pack () in
-       GMisc.label ~packing:frame#add ~line_wrap:true
-         ~text:"This is an example of a line-wrapped label.  It should not be taking up the entire             width allocated to it, but automatically wraps the words to fit.  The time has come, for all good men, to come to the aid of their party.  The sixth sheik's six sheep's sick.\n     It supports multiple paragraphs correctly, and  correctly   adds many          extra  spaces. " ();
-
-       let frame = GBin.frame ~label:"Underlined Label"
-           ~packing:vbox#pack () in
-       GMisc.label ~text:"This label is underlined!\nThis one is underlined in a quite a funky fashion" ~packing:frame#add
-         ~justify:`LEFT ~pattern:"_________________________ _ _________ _ _____ _ __ __  ___ ____ _____" ();
-
-       window #show ();
-
-    | Some window -> window #destroy ()
-  in aux
-
-
-(* reparent *)
-
-
-let set_parent child old_parent =
-  let name_opt = function
-    | None -> "(NULL)"
-    | Some w -> w#misc#get_type in
-  Printf.printf
-    "set parent for \"%s\": new parent: \"%s\", old parent: \"%s\"\n" 
-    child#misc#get_type
-    (match child#misc#parent with Some p -> p#misc#get_type | None -> "(NULL)")
-    (name_opt old_parent)
-
-let reparent_label (label : GMisc.label) new_parent _ =
-  label #misc#reparent new_parent
-
-
-
-let create_reparent =
-  let rw = ref None in
-  let aux () =
-     match !rw with
-    | None ->
-
-       let window = GWindow.window ~title:"Reparent" ~border_width:5 () in
-       rw := Some window;
-       window #connect#destroy ~callback:(fun _ -> rw := None);
-
-       let vbox = GPack.vbox ~packing:window#add () in
-       let hbox = GPack.hbox ~spacing:5 ~border_width:10
-            ~packing:vbox#add () in
-
-       let frame = GBin.frame ~label:"Frame1"  ~packing:hbox#add () in
-       let vbox2 = GPack.vbox ~spacing:5 ~border_width:5
-            ~packing:frame#add () in
-       let label = GMisc.label ~text:"Hello world"
-           ~packing:vbox2#pack () in
-       label #misc#connect#parent_set ~callback:(set_parent label);
-       let button = GButton.button ~label:"switch"
-           ~packing:vbox2#pack () in
-       button #connect#clicked ~callback:(reparent_label label vbox2#coerce);
-
-       let frame = GBin.frame ~label:"Frame2"  ~packing:hbox#add () in
-       let vbox2 = GPack.vbox ~spacing:5 ~packing:frame#add ~border_width:5 () in
-       let button = GButton.button ~label:"switch"
-           ~packing:vbox2#pack () in
-       button #connect#clicked ~callback:(reparent_label label vbox2#coerce);
-
-       GMisc.separator `HORIZONTAL ~packing:vbox#pack ();
-
-       let vbox = GPack.vbox ~spacing:10 ~border_width:10
-           ~packing:vbox#pack () in
-
-       let button = GButton.button ~label: "close" ~packing:vbox#add () in
-       button #connect#clicked ~callback: window#destroy;
-       button #grab_default ();
-
-       window #show ();
-
-    | Some window -> window #destroy ()
-  in aux
-
-
-
-
-let create_main_window () =
-  let buttons = [
-    "button box", Some create_button_box;
-    "buttons", Some create_buttons;
-    "check buttons", Some create_check_buttons;
-    "clist", None;
-    "color selection", None;
-    "ctree", None;
-    "cursors", None;
-    "dialog", None;
-    "entry", None;
-    "event watcher", None;
-    "file selection", None;
-    "font selection", None;
-    "gamma curve", None;
-    "handle box", Some create_handle_box;
-    "item factory", None;
-    "labels", Some create_labels;
-    "layout", None;
-    "list", None;
-    "menus", Some create_menus;
-    "modal windows", Some create_modal_window;
-    "notebooks", None;
-    "panes", None;
-    "pixmap", None;
-    "preview color", None;
-    "preview gray", None;
-    "progress bar", None;
-    "radio buttons", Some create_radio_buttons;
-    "range controls", None;
-    "rc file", None;
-    "reparent", Some create_reparent;
-    "rulers", None;
-    "saved position", None;
-    "scrolled windows", Some create_scrolled_windows;
-    "shapes", None;
-    "spinbutton", None;
-    "statusbar", None;
-    "test idle", None;
-    "test mainloop", None;
-    "test scrolling", None;
-    "test selection", None;
-    "test timeout", None;
-    "text", None;
-    "toggle buttons", Some create_toggle_buttons;
-    "toolbar", Some create_toolbar;
-    "tooltips", Some create_tooltips;
-    "tree", Some create_tree_mode_window;
-    "WM hints", None
-  ] in
-
-  let window = GWindow.window ~title:"main window" ~allow_shrink:false
-      ~allow_grow:false ~auto_shrink:false ~width:200 ~height:400 ~x:20 ~y:20 () in
-
-  window #connect#destroy ~callback: Main.quit;
-
-  let box1 = GPack.vbox ~packing: window#add () in
-
-  GMisc.label ~text: "Gtk+ v1.2" ~packing:box1#pack ();
-
-  let scrolled_window = GBin.scrolled_window ~border_width: 10
-      ~hpolicy: `AUTOMATIC ~vpolicy: `AUTOMATIC
-      ~packing:box1#add () in
-
-  let box2 = GPack.vbox ~border_width: 10
-      ~packing:scrolled_window#add_with_viewport () in
-  box2 #focus#set_vadjustment (Some scrolled_window#vadjustment);
-
-  let rec aux = function
-    | [] -> ()
-    | (_,     None) :: tl -> aux tl
-    | (label, Some func) :: tl ->
-       let button = GButton.button ~label: label ~packing: box2#add () in
-       button #connect#clicked ~callback: func;
-       aux tl
-  in aux buttons;
-
-  GMisc.separator `HORIZONTAL ~packing: box1#pack ();
-
-  let box2 = GPack.vbox ~spacing: 10 ~border_width: 10
-      ~packing: box1#pack () in
-
-  let button = GButton.button ~label: "close"  ~packing: box2#add () in
-  button #connect#clicked ~callback: window#destroy;
-  button #grab_default ();
-
-  window #show ();
-
-  Main.main ()
-
-let _ = create_main_window ()
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testinput.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/testinput.ml
deleted file mode 100644 (file)
index a6aceb8..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-(* $Id$ *)
-
-open GMain
-
-let main () =
-  let window = GWindow.window () in
-  window#misc#set_name "Test input";
-  window#connect#destroy ~callback:Main.quit;
-
-  let vbox = GPack.vbox ~packing:window#add () in
-
-  let drawing_area =
-    GMisc.drawing_area ~width:200 ~height:200 ~packing:vbox#add () in
-
-  drawing_area#event#connect#key_press ~callback:
-    begin fun ev ->
-      let key = GdkEvent.Key.keyval ev in
-      if key >= 32 && key < 256 then
-       Printf.printf "I got a %c\n" (Char.chr key)
-      else
-       print_string "I got another key\n";
-      flush stdout;
-      true
-    end;
-
-  drawing_area#event#add
-    [`EXPOSURE;`LEAVE_NOTIFY;`BUTTON_PRESS;
-     `POINTER_MOTION;`POINTER_MOTION_HINT;`PROXIMITY_OUT];
-  drawing_area#event#set_extensions `ALL;
-  drawing_area#misc#set_can_focus true;
-  drawing_area#misc#grab_focus ();
-
-  GButton.button ~label:"Input Dialog" ~packing:vbox#pack ();
-
-  let button =
-    GButton.button ~label:"Quit" ~packing:vbox#pack () in
-
-  button#connect#clicked ~callback:window#destroy;
-
-  window#show ();
-  Main.main ()
-
-let _ = main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tictactoe.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tictactoe.ml
deleted file mode 100644 (file)
index be01e19..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-(* $Id$ *)
-
-open GtkNew
-open GtkBase
-
-(* To create a new widget:
-   create an array sig_array containing the signals defined by
-   the new widget;
-   call:
-      make_new_widget name parent:parent signal_array:sig_array
-   where name is the name of the new widget (a string)
-   parent is the type of the parent: of type Gtk.New.object_type
-   This call returns a triple:
-     (get_type_func, new_func, sig_array_num)
-   where get_type_func is the new widget get_type function,
-   new_func is the function returning a new widget of the new type
-   sig_array_num is an array containing the Gtk id of the signals
-   of the new widget.
-*)
-
-module Tictactoe = struct
-  type t = [`widget|`container|`box|`tictactoe]
-  module Signals = struct
-    open GtkSignal
-    let tictactoe : ([>`tictactoe],_) t =
-      { name = "tictactoe"; marshaller = marshal_unit }
-    let emit_tictactoe = emit_unit ~sgn:tictactoe
-  end
-  let create : unit -> t Gtk.obj =
-    let _,tictactoe_new = make_new_widget
-       ~name:"Tictactoe" ~parent:VBOX ~signals:[Signals.tictactoe]
-    in fun () -> Object.try_cast (tictactoe_new ()) "Tictactoe"
-end
-
-open GMain
-
-class tictactoe_signals obj = object
-  inherit GContainer.container_signals obj
-  method tictactoe =
-    GtkSignal.connect ~sgn:Tictactoe.Signals.tictactoe obj ~after
-end
-
-exception Trouve
-
-class tictactoe ?packing ?show () =
-  let obj : Tictactoe.t Gtk.obj = Tictactoe.create () in
-  let box = new GPack.box_skel obj in
-object (self)
-  inherit GObj.widget obj
-  val mutable buttons = [||]
-  val mutable buttons_handlers = [||]
-  val label = GMisc.label ~text:"Go on!" ~packing:box#add ()
-  method clear () =
-    for i = 0 to 2 do
-      for j = 0 to 2 do
-       let button = buttons.(i).(j)
-       and handler = buttons_handlers.(i).(j) in
-       button#misc#handler_block handler;
-       button#set_active false;
-       button#misc#handler_unblock handler
-      done
-    done
-  method connect = new tictactoe_signals obj
-  method emit_tictactoe () =
-    GtkSignal.emit_unit obj ~sgn:Tictactoe.Signals.tictactoe
-  method toggle () =
-    let rwins = [| [| 0; 0; 0 |]; [| 1; 1; 1 |]; [| 2; 2; 2 |];
-                   [| 0; 1; 2 |]; [| 0; 1; 2 |]; [| 0; 1; 2 |];
-                   [| 0; 1; 2 |]; [| 0; 1; 2 |] |]
-    and cwins = [| [| 0; 1; 2 |]; [| 0; 1; 2 |]; [| 0; 1; 2 |];
-                   [| 0; 0; 0 |]; [| 1; 1; 1 |]; [| 2; 2; 2 |];
-                   [| 0; 1; 2 |]; [| 2; 1; 0 |] |] in
-    label#set_text"Go on!";
-    try
-      for k = 0 to 7 do
-       let rec aux i =
-         (i = 3) ||
-         (buttons.(rwins.(k).(i)).(cwins.(k).(i))#active) && (aux (i+1)) in
-       if aux 0 then raise Trouve
-      done
-    with Trouve -> label#set_text "Win!!"; self#emit_tictactoe ()
-       
-  initializer
-    let table =
-      GPack.table ~rows:3 ~columns:3 ~homogeneous:true ~packing:box#add () in
-    buttons <-
-      Array.init 3 ~f:
-       (fun i -> Array.init 3 ~f:
-           (fun j ->
-             GButton.toggle_button ~width:20 ~height:20
-               ~packing:(table#attach ~left:i ~top:j ~expand:`BOTH) ()));
-    buttons_handlers <-
-      Array.mapi buttons ~f:
-       (fun i -> Array.mapi ~f:
-         (fun j button -> button #connect#toggled ~callback:self#toggle));
-    GObj.pack_return self ~packing ~show;
-    ()
-end
-
-let win (ttt : tictactoe)  _ =
-  Printf.printf "Gagne!!\n" ;
-  ttt #clear ()
-
-let essai () =
-  let window = GWindow.window ~title:"Tictactoe" ~border_width:10 () in
-  window #connect#destroy ~callback:Main.quit;
-  let ttt = new tictactoe ~packing:window#add () in
-  ttt #connect#tictactoe ~callback:(win ttt);
-  window #show ();
-  Main.main ()
-
-let _ = essai ()
-  
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tron.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/tron.ml
deleted file mode 100644 (file)
index eced44a..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-(* $Id$ *)
-
-(* Tron? Game *)
-open GMain
-
-let m_pi = acos (-1.)
-let clRed   = `NAME "red"  (* `BLACK *)
-let clBlue  = `NAME "blue" (* `WHITE *)
-let clBlack = `BLACK
-
-type point = {mutable x: int; mutable y: int}
-
-let main () =
-(* Game State *)
-  let gameSize = 64 in
-  let gameState =
-    Array.create_matrix ~dimx:(gameSize+2) ~dimy:(gameSize+2) 0 in
-  let gameInit _ = 
-    for i=1 to gameSize do
-      for j=1 to gameSize do
-        gameState.(i).(j) <- 0;
-      done
-    done;
-    for i=0 to gameSize do
-      gameState.(0).(i) <- 3;            (* left wall *)
-      gameState.(i).(gameSize+1) <- 3;   (* floor *) 
-      gameState.(gameSize+1).(i+1) <- 3; (* right wall *)
-      gameState.(i+1).(0) <- 3           (* ceiling *)
-    done in
-  gameInit ();
-  let lpos = {x=4; y=4} in
-  let lspeed = {x=0; y=1} in
-  let rpos = {x=gameSize-3; y=gameSize-3} in
-  let rspeed = {x=0; y= -1} in
-  let keys = "asdfhjkl" in
-  let keyMapL = [|(-1, 0); (0, -1); (0, 1); (1, 0)|] in
-  let keyMapR = [|(-1, 0); (0, 1); (0, -1); (1, 0)|] in
-
-(* User Interface *)
-  let window = GWindow.window ~border_width:10 ~title:"tron(?)" () in
-  window#event#connect#delete
-     ~callback:(fun _ -> prerr_endline "Delete event occured"; false);
-  window#connect#destroy ~callback:Main.quit;
-  let vbx = GPack.vbox ~packing:window#add () in
-  let area = GMisc.drawing_area ~width:((gameSize+2)*4) ~height:((gameSize+2)*4)
-      ~packing:vbx#add () in
-  let drawing = area#misc#realize (); new GDraw.drawable (area#misc#window) in
-  let style = area#misc#style#copy in
-  style#set_bg [`NORMAL,`WHITE];
-  area#misc#set_style style;
-  drawing#set_background `WHITE;
-  let area_expose _ =
-    for i=0 to gameSize+1 do
-      for j=0 to gameSize+1 do
-        if gameState.(i).(j) = 1 then begin
-          drawing#set_foreground clRed;
-          drawing#rectangle ~filled:true ~x:(i*4) ~y:(j*4) ~width:4 ~height:4 ()
-        end
-        else if gameState.(i).(j) = 2 then begin
-          drawing#set_foreground clBlue;
-          drawing#rectangle ~filled:true ~x:(i*4) ~y:(j*4) ~width:4 ~height:4 ()
-        end
-        else if gameState.(i).(j) = 3 then begin
-          drawing#set_foreground clBlack;
-          drawing#rectangle ~filled:true ~x:(i*4) ~y:(j*4) ~width:4 ~height:4 ()
-        end 
-      done
-    done;
-    false
-  in
-  area#event#connect#expose ~callback:area_expose;
-  let control = GPack.table ~rows:3 ~columns:7 ~packing:vbx#pack () in
-
-  let abuttonClicked num (lbl : GMisc.label) _ = begin
-    let dialog =
-      GWindow.window ~kind:`DIALOG ~border_width:10 ~title:"Key remap" () in
-    let dvbx = GPack.box `VERTICAL ~packing:dialog#add () in
-    let entry  = GEdit.entry ~max_length:1 ~packing: dvbx#add () in
-    let txt = String.make 1 keys.[num] in
-    entry#set_text txt;
-    let dquit = GButton.button ~label:"OK" ~packing: dvbx#add () in 
-    dquit#connect#clicked ~callback:
-      begin fun _ ->
-       let chr = entry#text.[0] in
-        let txt2 = String.make 1 chr in
-        lbl#set_text txt2;
-        keys.[num]<-chr; 
-        dialog#destroy ()
-      end;
-    dialog#show ()
-  end in
-  let attach = control#attach ~expand:`BOTH in
-  let new_my_button ~label:label ~left:left ~top:top =
-      let str = String.make 1 keys.[label] in
-      let btn = GButton.button ~packing:(attach ~left:left ~top:top) () in
-      let lbl = GMisc.label ~text:str ~packing:(btn#add) () in
-      btn#connect#clicked ~callback:(abuttonClicked label lbl);
-      btn
-  in
-  new_my_button ~label:0 ~left:1 ~top:2;
-  new_my_button ~label:1 ~left:2 ~top:1;
-  new_my_button ~label:2 ~left:2 ~top:3;
-  new_my_button ~label:3 ~left:3 ~top:2;
-  new_my_button ~label:4 ~left:5 ~top:2;
-  new_my_button ~label:5 ~left:6 ~top:3;
-  new_my_button ~label:6 ~left:6 ~top:1;
-  new_my_button ~label:7 ~left:7 ~top:2;
-  let quit =
-    GButton.button ~label:"Quit" ~packing:(attach ~left:4 ~top:2) () in
-  quit#connect#clicked ~callback:window#destroy;
-  let message = GMisc.label ~text:"tron(?) game" ~packing:vbx#pack () in
-
-  let game_step () =
-        let lx = lpos.x in let ly = lpos.y in
-        gameState.(lx).(ly) <- 1;
-        drawing#set_foreground clRed;
-        drawing#rectangle ~filled:true ~x:(lx*4) ~y:(ly*4) ~width:4 ~height:4 ();
-        let rx = rpos.x in let ry = rpos.y in
-        gameState.(rx).(ry) <- 2;
-        drawing#set_foreground clBlue;
-        drawing#rectangle ~filled:true ~x:(rx*4) ~y:(ry*4) ~width:4 ~height:4 ()
-  in
-  game_step ();
-  let keyDown ev = begin
-    let key = GdkEvent.Key.keyval ev in
-    for i=0 to (Array.length keyMapL)-1 do
-       let (x, y) = keyMapL.(i) in
-       let k = keys.[i] in
-       if key = Char.code k then begin
-         lspeed.x <- x;
-         lspeed.y <- y 
-       end;
-       let (x, y) = keyMapR.(i) in
-       let k = keys.[i+4] in
-       if key = Char.code k then begin
-         rspeed.x <- x;
-         rspeed.y <- y 
-       end
-    done;       
-    false end in
-  window#event#connect#key_press ~callback:keyDown;
-  let safe_check _ = 
-    if lpos.x == rpos.x && lpos.y == rpos.y then
-      3
-    else
-      (* player 1 *)
-      (if gameState.(lpos.x).(lpos.y) != 0  then 2 else 0)
-      +
-      (* player 2 *)
-      (if gameState.(rpos.x).(rpos.y) != 0  then 1 else 0)
-      in
-  let timerID = ref (* dummy *) (Timeout.add ~ms:100 ~callback:(fun _ -> true)) in
-  let timerTimer _ = begin
-     lpos.x <- lpos.x+lspeed.x;
-     lpos.y <- lpos.y+lspeed.y;
-     rpos.x <- rpos.x+rspeed.x;
-     rpos.y <- rpos.y+rspeed.y;
-     let result = safe_check() in
-     if result!=0 then begin
-        Timeout.remove (!timerID);
-        message#set_text ("player "^string_of_int result^" won.")
-     end
-     else begin
-       game_step()
-     end;
-     true
-  end in
-  let count = ref 3 in
-  let timerTimer2 _ = begin
-(*    message#set_label (string_of_int (!count)); *)
-    if (!count==0) then begin
-      Timeout.remove (!timerID);
-      timerID := Timeout.add ~ms:100 ~callback:timerTimer
-    end
-    else begin
-      count := !count-1;
-    end;
-    true
-  end in
-  let restartClicked () =
-    Timeout.remove !timerID;
-    gameInit();
-    lpos.x <- 4; lpos.y <- 4;
-    lspeed.x <- 0; lspeed.y <- 1;
-    rpos.x <- gameSize-3; rpos.y <- gameSize-3;
-    rspeed.x <- 0; rspeed.y <- -1;
-    drawing#set_foreground `WHITE;
-    drawing#rectangle ~filled:true ~x:0 ~y:0
-      ~width:((gameSize+2)*4) ~height:((gameSize+2)*4) ();
-    area_expose();
-    count := 3;
-    timerID := Timeout.add ~ms:300 ~callback:timerTimer2;
-  in
-  let restart =
-    GButton.button ~label: "Restart" ~packing:(attach ~left:4 ~top:3) () in
-  restart#connect#clicked ~callback:restartClicked;
-  restartClicked ();
-
-  window#show ();
-  Main.main ()
-
-let _ = Printexc.print main ()
-
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/xmhtml/test.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/xmhtml/test.ml
deleted file mode 100644 (file)
index 6c9d371..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-(* $Id$ *)
-
-let test_string2 = String.concat ~sep:"" [
-  "<html>\n";
-  "<head><title>The Gtk/XmHTML test</title></head>\n";
-  "This is the Gtk/XmHTML test program<p>\n";
-  "You can invoke this program with a command line argument, like this:\n";
-  "<hr>";
-  "<tt>./xtest filename.html</tt>";
-  "<hr>";
-  "Click here to load a different <a href=\"nothing\">test message</a>";
-  "</html>";
-]
-
-let read_file file =
-  let ic = open_in file in
-  let b = Buffer.create 16384 and s = String.create 1024 and len = ref 0 in
-  while len := input ic ~buf:s ~pos:0 ~len:1024; !len > 0 do
-    Buffer.add_substring b s ~pos:0 ~len:!len
-  done;
-  Buffer.contents b
-
-open GMain
-
-let _ =
-  let w = GWindow.window ~width:600 ~height:500 () in
-  w#connect#destroy ~callback:Main.quit;
-  let source =
-    if Array.length Sys.argv > 1 then begin
-      Sys.chdir (Filename.dirname Sys.argv.(1));
-      read_file (Filename.basename Sys.argv.(1))
-    end
-    else test_string2 in
-  let html = GHtml.xmhtml ~source ~packing:w#add () in
-  html#set_anchor_buttons false;
-  html#set_anchor_underline [`SINGLE;`DASHED];
-  w#show ();
-  Main.main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.ml
deleted file mode 100644 (file)
index f248ba0..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkBin
-open GObj
-open GContainer
-
-class scrolled_window obj = object
-  inherit container_full (obj : Gtk.scrolled_window obj)
-  method hadjustment =
-    new GData.adjustment (ScrolledWindow.get_hadjustment obj)
-  method vadjustment =
-    new GData.adjustment (ScrolledWindow.get_vadjustment obj)
-  method set_hadjustment adj =
-    ScrolledWindow.set_hadjustment obj (GData.as_adjustment adj)
-  method set_vadjustment adj =
-    ScrolledWindow.set_vadjustment obj (GData.as_adjustment adj)
-  method set_hpolicy hpolicy = ScrolledWindow.set_policy' obj ~hpolicy
-  method set_vpolicy vpolicy = ScrolledWindow.set_policy' obj ~vpolicy
-  method set_placement = ScrolledWindow.set_placement obj
-  method add_with_viewport w =
-    ScrolledWindow.add_with_viewport obj (as_widget w)
-end
-
-let scrolled_window ?hadjustment ?vadjustment ?hpolicy ?vpolicy
-    ?placement ?border_width ?width ?height ?packing ?show () =
-  let w =
-    ScrolledWindow.create ()
-      ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment)
-      ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) in
-  ScrolledWindow.set w ?hpolicy ?vpolicy ?placement;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new scrolled_window w) ~packing ~show
-
-class event_box obj = object
-  inherit container_full (obj : Gtk.event_box obj)
-  method event = new GObj.event_ops obj
-end
-
-let event_box ?border_width ?width ?height ?packing ?show () =
-  let w = EventBox.create () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new event_box w) ~packing ~show
-
-class handle_box_signals obj = object
-  inherit container_signals obj
-  method child_attached ~callback =
-    GtkSignal.connect ~sgn:HandleBox.Signals.child_attached obj ~after
-      ~callback:(fun obj -> callback (new widget obj))
-  method child_detached ~callback =
-    GtkSignal.connect ~sgn:HandleBox.Signals.child_detached obj ~after
-      ~callback:(fun obj -> callback (new widget obj))
-end
-
-class handle_box obj = object
-  inherit container (obj : Gtk.handle_box obj)
-  method set_shadow_type     = HandleBox.set_shadow_type     obj
-  method set_handle_position = HandleBox.set_handle_position obj
-  method set_snap_edge       = HandleBox.set_snap_edge       obj
-  method connect = new handle_box_signals obj
-  method event = new GObj.event_ops obj
-end
-
-let handle_box ?border_width ?width ?height ?packing ?show () =
-  let w = HandleBox.create () in
-  let () = Container.set w ?border_width ?width ?height in
-  pack_return (new handle_box w) ~packing ~show
-
-class frame_skel obj = object
-  inherit container obj
-  method set_label = Frame.set_label obj
-  method set_label_align ?x ?y () = Frame.set_label_align' obj ?x ?y
-  method set_shadow_type = Frame.set_shadow_type obj
-end
-
-class frame obj = object
-  inherit frame_skel (Frame.coerce obj)
-  method connect = new container_signals obj
-end
-
-let frame ?(label="") ?label_xalign ?label_yalign ?shadow_type
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Frame.create label in
-  Frame.set w ?label_xalign ?label_yalign ?shadow_type;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new frame w) ~packing ~show
-
-class aspect_frame obj = object
-  inherit frame_skel (obj : Gtk.aspect_frame obj)
-  method connect = new container_signals obj
-  method set_alignment ?x ?y () = AspectFrame.set obj ?xalign:x ?yalign:y
-  method set_ratio ratio = AspectFrame.set obj ~ratio
-  method set_obey_child obey_child = AspectFrame.set obj ~obey_child
-end
-
-let aspect_frame ?label ?xalign ?yalign ?ratio ?obey_child
-    ?label_xalign ?label_yalign ?shadow_type
-    ?border_width ?width ?height ?packing ?show () =
-  let w =
-    AspectFrame.create ?label ?xalign ?yalign ?ratio ?obey_child () in
-  Frame.set w ?label_xalign ?label_yalign ?shadow_type;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new aspect_frame w) ~packing ~show
-
-class viewport obj = object
-  inherit container_full (obj : Gtk.viewport obj)
-  method event = new event_ops obj
-  method set_hadjustment adj =
-    Viewport.set_hadjustment obj (GData.as_adjustment adj)
-  method set_vadjustment adj =
-    Viewport.set_vadjustment obj (GData.as_adjustment adj)
-  method set_shadow_type = Viewport.set_shadow_type obj
-  method hadjustment = new GData.adjustment (Viewport.get_hadjustment obj)
-  method vadjustment = new GData.adjustment (Viewport.get_vadjustment obj)
-end
-
-let viewport ?hadjustment ?vadjustment ?shadow_type
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Viewport.create ()
-      ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment)
-      ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) in
-  may shadow_type ~f:(Viewport.set_shadow_type w);
-  Container.set w ?border_width ?width ?height;
-  pack_return (new viewport w) ~packing ~show
-
-class alignment obj = object
-  inherit container_full (obj : Gtk.alignment obj)
-  method set_alignment ?x ?y () = Alignment.set ?x ?y obj
-  method set_scale ?x ?y () = Alignment.set ?xscale:x ?yscale:y obj
-end
-
-let alignment ?x ?y ?xscale ?yscale
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Alignment.create ?x ?y ?xscale ?yscale () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new alignment w) ~packing ~show
-  
-let alignment_cast w = new alignment (Alignment.cast w#as_widget)
-
-class socket obj = object (self)
-  inherit container_full (obj : Gtk.socket obj)
-  method steal = Socket.steal obj
-  method xwindow =
-    self#misc#realize ();
-    Gdk.Window.get_xwindow self#misc#window
-end
-
-let socket ?border_width ?width ?height ?packing ?show () =
-  let w = Socket.create () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new socket w) ?packing ?show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gBin.mli
deleted file mode 100644 (file)
index 9593650..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-open GContainer
-
-class scrolled_window : Gtk.scrolled_window obj ->
-  object
-    inherit container_full
-    val obj : Gtk.scrolled_window obj
-    method add_with_viewport : widget -> unit
-    method hadjustment : GData.adjustment
-    method set_hadjustment : GData.adjustment -> unit
-    method set_hpolicy : Tags.policy_type -> unit
-    method set_placement : Tags.corner_type -> unit
-    method set_vadjustment : GData.adjustment -> unit
-    method set_vpolicy : Tags.policy_type -> unit
-    method vadjustment : GData.adjustment
-  end
-val scrolled_window :
-  ?hadjustment:GData.adjustment ->
-  ?vadjustment:GData.adjustment ->
-  ?hpolicy:Tags.policy_type ->
-  ?vpolicy:Tags.policy_type ->
-  ?placement:Tags.corner_type ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> scrolled_window
-
-class event_box : Gtk.event_box obj ->
-  object
-    inherit container_full
-    val obj : Gtk.event_box obj
-    method event : event_ops
-  end
-val event_box :
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> event_box
-
-class handle_box_signals : 'a obj ->
-  object
-    inherit container_signals
-    constraint 'a = [>`handlebox|`container|`widget]
-    val obj : 'a obj
-    method child_attached : callback:(widget -> unit) -> GtkSignal.id
-    method child_detached : callback:(widget -> unit) -> GtkSignal.id
-  end
-
-class handle_box : Gtk.handle_box obj ->
-  object
-    inherit container
-    val obj : Gtk.handle_box obj
-    method event : event_ops
-    method connect : handle_box_signals
-    method set_handle_position : Tags.position -> unit
-    method set_shadow_type : Tags.shadow_type -> unit
-    method set_snap_edge : Tags.position -> unit
-  end
-val handle_box :
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> handle_box
-
-class frame_skel : 'a obj ->
-  object
-    inherit container
-    constraint 'a = [>`frame|`container|`widget]
-    val obj : 'a obj
-    method set_label : string -> unit
-    method set_label_align : ?x:clampf -> ?y:clampf -> unit -> unit
-    method set_shadow_type : Tags.shadow_type -> unit
-  end
-class frame : [>`frame] obj ->
-  object
-    inherit frame_skel
-    val obj : Gtk.frame obj
-    method connect : GContainer.container_signals
-  end
-val frame :
-  ?label:string ->
-  ?label_xalign:clampf ->
-  ?label_yalign:clampf ->
-  ?shadow_type:Tags.shadow_type ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> frame
-
-class aspect_frame : Gtk.aspect_frame obj ->
-  object
-    inherit frame
-    val obj : Gtk.aspect_frame obj
-    method set_alignment : ?x:clampf -> ?y:clampf -> unit -> unit
-    method set_obey_child : bool -> unit
-    method set_ratio : clampf -> unit
-  end
-val aspect_frame :
-  ?label:string ->
-  ?xalign:clampf ->
-  ?yalign:clampf ->
-  ?ratio:float ->
-  ?obey_child:bool ->
-  ?label_xalign:clampf ->
-  ?label_yalign:clampf ->
-  ?shadow_type:Tags.shadow_type ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> aspect_frame
-
-class viewport : Gtk.viewport obj ->
-  object
-    inherit container_full
-    val obj : Gtk.viewport obj
-    method event : event_ops
-    method hadjustment : GData.adjustment
-    method set_hadjustment : GData.adjustment -> unit
-    method set_shadow_type : Gtk.Tags.shadow_type -> unit
-    method set_vadjustment : GData.adjustment -> unit
-    method vadjustment : GData.adjustment
-  end
-val viewport :
-  ?hadjustment:GData.adjustment ->
-  ?vadjustment:GData.adjustment ->
-  ?shadow_type:Tags.shadow_type ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> viewport
-
-class alignment : Gtk.alignment obj ->
-  object
-    inherit container_full
-    val obj : Gtk.alignment obj
-    method set_alignment : ?x:Gtk.clampf -> ?y:Gtk.clampf -> unit -> unit
-    method set_scale : ?x:Gtk.clampf -> ?y:Gtk.clampf -> unit -> unit
-  end
-val alignment :
-  ?x:Gtk.clampf ->
-  ?y:Gtk.clampf ->
-  ?xscale:Gtk.clampf ->
-  ?yscale:Gtk.clampf ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> alignment
-val alignment_cast : < as_widget : 'a obj; .. > -> alignment
-
-class socket : Gtk.socket obj ->
-  object
-    inherit container_full
-    val obj : Gtk.socket obj
-    method steal : Gdk.xid -> unit
-    method xwindow : Gdk.xid
-  end
-
-val socket :
-  ?border_width:int -> ?width:int -> ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> socket
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.ml
deleted file mode 100644 (file)
index 08ac704..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkButton
-open GObj
-open GContainer
-
-class button_skel obj = object (self)
-  inherit container obj
-  method clicked () = Button.clicked obj
-  method grab_default () =
-    Widget.set_can_default obj true;
-    Widget.grab_default obj
-end
-
-class button_signals obj = object
-  inherit container_signals obj
-  method clicked = GtkSignal.connect ~sgn:Button.Signals.clicked ~after obj
-  method pressed = GtkSignal.connect ~sgn:Button.Signals.pressed ~after obj
-  method released = GtkSignal.connect ~sgn:Button.Signals.released ~after obj
-  method enter = GtkSignal.connect ~sgn:Button.Signals.enter ~after obj
-  method leave = GtkSignal.connect ~sgn:Button.Signals.leave ~after obj
-end
-
-class button obj = object
-  inherit button_skel (Button.coerce obj)
-  method connect = new button_signals obj
-  method event = new GObj.event_ops obj
-end
-
-let button ?label ?border_width ?width ?height ?packing ?show () =
-  let w = Button.create ?label () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new button w) ~packing ~show
-
-class toggle_button_signals obj = object
-  inherit button_signals obj
-  method toggled =
-    GtkSignal.connect ~sgn:ToggleButton.Signals.toggled obj ~after
-end
-
-class toggle_button obj = object
-  inherit button_skel obj
-  method connect = new toggle_button_signals obj
-  method active = ToggleButton.get_active obj
-  method set_active = ToggleButton.set_active obj
-  method set_draw_indicator = ToggleButton.set_mode obj
-end
-
-let toggle_button ?label ?active ?draw_indicator
-    ?border_width ?width ?height ?packing ?show () =
-  let w = ToggleButton.create_toggle ?label () in
-  ToggleButton.set w ?active ?draw_indicator;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new toggle_button w) ~packing ~show
-
-let check_button ?label ?active ?draw_indicator
-    ?border_width ?width ?height ?packing ?show () =
-  let w = ToggleButton.create_check ?label () in
-  ToggleButton.set w ?active ?draw_indicator;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new toggle_button w) ~packing ~show
-
-class radio_button obj = object
-  inherit toggle_button (obj : Gtk.radio_button obj)
-  method set_group = RadioButton.set_group obj
-  method group = Some obj
-end
-
-let radio_button ?group ?label ?active ?draw_indicator
-    ?border_width ?width ?height ?packing ?show () =
-  let w = RadioButton.create ?group ?label () in
-  ToggleButton.set w ?active ?draw_indicator;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new radio_button w) ~packing ~show
-
-class toolbar obj = object
-  inherit container_full (obj : Gtk.toolbar obj)
-  method insert_widget ?tooltip ?tooltip_private ?pos w =
-    Toolbar.insert_widget obj (as_widget w) ?tooltip ?tooltip_private ?pos
-
-  method insert_button ?text ?tooltip ?tooltip_private ?icon
-      ?pos ?callback () =
-    let icon = may_map icon ~f:as_widget in
-    new button
-      (Toolbar.insert_button obj ~kind:`BUTTON ?icon ?text
-        ?tooltip ?tooltip_private ?pos ?callback ())
-
-  method insert_toggle_button ?text ?tooltip ?tooltip_private ?icon
-      ?pos ?callback () =
-    let icon = may_map icon ~f:as_widget in
-    new toggle_button
-      (ToggleButton.cast
-        (Toolbar.insert_button obj ~kind:`TOGGLEBUTTON ?icon ?text
-           ?tooltip ?tooltip_private ?pos ?callback ()))
-
-  method insert_radio_button ?text ?tooltip ?tooltip_private ?icon
-      ?pos ?callback () =
-    let icon = may_map icon ~f:as_widget in
-    new radio_button
-      (RadioButton.cast
-        (Toolbar.insert_button obj ~kind:`RADIOBUTTON ?icon ?text
-           ?tooltip ?tooltip_private ?pos ?callback ()))
-
-  method insert_space = Toolbar.insert_space obj
-
-  method set_orientation = Toolbar.set_orientation obj
-  method set_style = Toolbar.set_style obj
-  method set_space_size = Toolbar.set_space_size obj
-  method set_space_style = Toolbar.set_space_style obj
-  method set_tooltips = Toolbar.set_tooltips obj
-  method set_button_relief = Toolbar.set_button_relief obj
-  method button_relief = Toolbar.get_button_relief obj
-end
-
-let toolbar ?(orientation=`HORIZONTAL) ?style
-    ?space_size ?space_style ?tooltips ?button_relief
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Toolbar.create orientation ?style () in
-  Toolbar.set w ?space_size ?space_style ?tooltips ?button_relief;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new toolbar w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gButton.mli
deleted file mode 100644 (file)
index ee2653d..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-open GContainer
-
-class button_skel :
-  'a obj ->
-  object
-    inherit container
-    constraint 'a = [>`widget|`button|`container]
-    val obj : 'a obj
-    method clicked : unit -> unit
-    method grab_default : unit -> unit
-  end
-class button_signals :
-  'b obj ->
-  object ('a)
-    inherit container_signals
-    constraint 'b = [>`button|`container|`widget]
-    val obj : 'b obj
-    method clicked : callback:(unit -> unit) -> GtkSignal.id
-    method enter : callback:(unit -> unit) -> GtkSignal.id
-    method leave : callback:(unit -> unit) -> GtkSignal.id
-    method pressed : callback:(unit -> unit) -> GtkSignal.id
-    method released : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class button :
-  [>`button] obj ->
-  object
-    inherit button_skel
-    val obj : Gtk.button obj
-    method event : event_ops
-    method connect : button_signals
-  end
-val button :
-  ?label:string ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> button
-
-class toggle_button_signals :
-  'b obj ->
-  object ('a)
-    inherit button_signals
-    constraint 'b = [>`toggle|`button|`container|`widget]
-    val obj : 'b obj
-    method toggled : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class toggle_button :
-  'a obj ->
-  object
-    inherit button_skel
-    constraint 'a = [>`toggle|`button|`container|`widget]
-    val obj : 'a obj
-    method active : bool
-    method connect : toggle_button_signals
-    method set_active : bool -> unit
-    method set_draw_indicator : bool -> unit
-  end
-val toggle_button :
-  ?label:string ->
-  ?active:bool ->
-  ?draw_indicator:bool ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> toggle_button
-val check_button :
-  ?label:string ->
-  ?active:bool ->
-  ?draw_indicator:bool ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> toggle_button
-
-class radio_button :
-  Gtk.radio_button obj ->
-  object
-    inherit toggle_button
-    val obj : Gtk.radio_button obj
-    method group : Gtk.radio_button group
-    method set_group : Gtk.radio_button group -> unit
-  end
-val radio_button :
-  ?group:Gtk.radio_button group ->
-  ?label:string ->
-  ?active:bool ->
-  ?draw_indicator:bool ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> radio_button
-
-class toolbar :
-  Gtk.toolbar obj ->
-  object
-    inherit container_full
-    val obj : Gtk.toolbar obj
-    method button_relief : Tags.relief_style
-    method insert_button :
-      ?text:string ->
-      ?tooltip:string ->
-      ?tooltip_private:string ->
-      ?icon:widget ->
-      ?pos:int -> ?callback:(unit -> unit) -> unit -> button
-    method insert_radio_button :
-      ?text:string ->
-      ?tooltip:string ->
-      ?tooltip_private:string ->
-      ?icon:widget ->
-      ?pos:int -> ?callback:(unit -> unit) -> unit -> radio_button
-    method insert_space : ?pos:int -> unit -> unit
-    method insert_toggle_button :
-      ?text:string ->
-      ?tooltip:string ->
-      ?tooltip_private:string ->
-      ?icon:widget ->
-      ?pos:int -> ?callback:(unit -> unit) -> unit -> toggle_button
-    method insert_widget :
-      ?tooltip:string ->
-      ?tooltip_private:string -> ?pos:int -> widget -> unit
-    method set_button_relief : Tags.relief_style -> unit
-    method set_orientation : Tags.orientation -> unit
-    method set_space_size : int -> unit
-    method set_space_style : [`EMPTY|`LINE] -> unit
-    method set_style : Tags.toolbar_style -> unit
-    method set_tooltips : bool -> unit
-  end
-val toolbar :
-  ?orientation:Tags.orientation ->
-  ?style:Tags.toolbar_style ->
-  ?space_size:int ->
-  ?space_style:[`EMPTY|`LINE] ->
-  ?tooltips:bool ->
-  ?button_relief:Tags.relief_style ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> toolbar
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.ml
deleted file mode 100644 (file)
index 2ea765e..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GObj
-open GData
-
-class focus obj = object
-  val obj = obj
-  method circulate = Container.focus obj
-  method set (child : widget option) =
-    let child = may_map child ~f:(fun x -> x#as_widget) in
-    Container.set_focus_child obj (Gpointer.optboxed child)
-  method set_hadjustment adj =
-    Container.set_focus_hadjustment obj
-      (Gpointer.optboxed (may_map adj ~f:as_adjustment))
-  method set_vadjustment adj =
-    Container.set_focus_vadjustment obj
-      (Gpointer.optboxed (may_map adj ~f:as_adjustment))
-end
-
-class container obj = object (self)
-  inherit widget obj
-  method add w =
-    (* Hack to avoid creating a bin class *)
-    if GtkBase.Object.is_a obj "GtkBin" && Container.children obj <> [] then
-      raise (Gtk.Error "GContainer.container#add: already full");
-    Container.add obj (as_widget w)
-  method remove w = Container.remove obj (as_widget w)
-  method children = List.map ~f:(new widget) (Container.children obj)
-  method set_border_width = Container.set_border_width obj
-  method focus = new focus obj
-end
-
-class container_signals obj = object
-  inherit widget_signals obj
-  method add ~callback =
-    GtkSignal.connect ~sgn:Container.Signals.add obj ~after
-      ~callback:(fun w -> callback (new widget w))
-  method remove ~callback =
-    GtkSignal.connect ~sgn:Container.Signals.remove obj ~after
-      ~callback:(fun w -> callback (new widget w))
-end
-
-class container_full obj = object
-  inherit container obj
-  method connect = new container_signals obj
-end
-
-let cast_container (w : widget) =
-  new container_full (GtkBase.Container.cast w#as_widget)
-
-class virtual ['a] item_container obj = object (self)
-  inherit widget obj
-  method add (w : 'a) =
-    Container.add obj w#as_item
-  method remove (w : 'a) =
-    Container.remove obj w#as_item
-  method private virtual wrap : Gtk.widget obj -> 'a
-  method children : 'a list =
-    List.map ~f:self#wrap (Container.children obj)
-  method set_border_width = Container.set_border_width obj
-  method focus = new focus obj
-  method virtual insert : 'a -> pos:int -> unit
-  method append (w : 'a) = self#insert w ~pos:(-1)
-  method prepend (w : 'a) = self#insert w ~pos:0
-end
-
-class item_signals obj = object
-  inherit container_signals obj
-  method select = GtkSignal.connect ~sgn:Item.Signals.select obj ~after
-  method deselect = GtkSignal.connect ~sgn:Item.Signals.deselect obj ~after
-  method toggle = GtkSignal.connect ~sgn:Item.Signals.toggle obj ~after
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gContainer.mli
deleted file mode 100644 (file)
index 2909829..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-
-class focus :
-  'a obj ->
-  object
-    constraint 'a = [>`container]
-    val obj : 'a obj
-    method circulate : Tags.direction_type -> bool
-    method set : widget option -> unit
-    method set_hadjustment : GData.adjustment option -> unit
-    method set_vadjustment : GData.adjustment option -> unit
-  end
-
-class container :
-  'a obj ->
-  object
-    inherit widget
-    constraint 'a = [>`container|`widget]
-    val obj : 'a obj
-    method add : widget -> unit
-    method children : widget list
-    method remove : widget -> unit
-    method focus : focus
-    method set_border_width : int -> unit
-  end
-
-class container_signals :
-  'a obj ->
-  object
-    inherit widget_signals
-    constraint 'a = [>`container|`widget]
-    val obj : 'a obj
-    method add : callback:(widget -> unit) -> GtkSignal.id
-    method remove : callback:(widget -> unit) -> GtkSignal.id
-  end
-
-class container_full :
-  'a obj ->
-  object
-    inherit container
-    constraint 'a = [>`container|`widget]
-    val obj : 'a obj
-    method connect : container_signals
-  end
-
-val cast_container : widget -> container_full
-(* may raise [Gtk.Cannot_cast "GtkContainer"] *)
-
-class virtual ['a] item_container :
-  'c obj ->
-  object
-    constraint 'a = < as_item : [>`widget] obj; .. >
-    constraint 'c = [>`container|`widget]
-    inherit widget
-    val obj : 'c obj
-    method add : 'a -> unit
-    method append : 'a -> unit
-    method children : 'a list
-    method virtual insert : 'a -> pos:int -> unit
-    method prepend : 'a -> unit
-    method remove : 'a -> unit
-    method focus : focus
-    method set_border_width : int -> unit
-    method private virtual wrap : Gtk.widget obj -> 'a
-  end
-
-class item_signals :
-  'a obj ->
-  object
-    inherit container_signals
-    constraint 'a = [>`container|`item|`widget]
-    val obj : 'a obj
-    method deselect : callback:(unit -> unit) -> GtkSignal.id
-    method select : callback:(unit -> unit) -> GtkSignal.id
-    method toggle : callback:(unit -> unit) -> GtkSignal.id
-  end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.ml
deleted file mode 100644 (file)
index 52aa3f1..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkData
-open GObj
-
-class data_signals obj = object
-  inherit gtkobj_signals obj
-  method disconnect_data =
-    GtkSignal.connect ~sgn:Data.Signals.disconnect obj ~after
-end
-
-class adjustment_signals obj = object
-  inherit data_signals obj
-  method changed = GtkSignal.connect ~sgn:Adjustment.Signals.changed obj ~after
-  method value_changed =
-    GtkSignal.connect ~sgn:Adjustment.Signals.value_changed obj ~after
-end
-
-class adjustment obj = object
-  inherit gtkobj obj
-  method as_adjustment : Gtk.adjustment obj = obj
-  method connect = new adjustment_signals obj
-  method set_value = Adjustment.set_value obj
-  method clamp_page = Adjustment.clamp_page obj
-  method lower = Adjustment.get_lower obj
-  method upper = Adjustment.get_upper obj
-  method value = Adjustment.get_value obj
-  method step_increment = Adjustment.get_step_increment obj
-  method page_increment = Adjustment.get_page_increment obj
-  method page_size = Adjustment.get_page_size obj
-end
-
-let adjustment ?(value=0.) ?(lower=0.) ?(upper=100.)
-    ?(step_incr=1.) ?(page_incr=10.) ?(page_size=10.) () =
-  let w =
-    Adjustment.create ~value ~lower ~upper ~step_incr ~page_incr ~page_size in
-  new adjustment w
-
-let as_adjustment (adj : adjustment) = adj#as_adjustment
-
-class tooltips obj = object
-  inherit gtkobj (obj : Gtk.tooltips obj)
-  method as_tooltips = obj
-  method connect = new data_signals obj
-  method enable () = Tooltips.enable obj
-  method disable () = Tooltips.disable obj
-  method set_tip ?text ?privat w =
-    Tooltips.set_tip obj (as_widget w) ?text ?privat
-  method set_delay = Tooltips.set_delay obj
-end
-
-let tooltips ?delay () =
-  let tt = Tooltips.create () in
-  Tooltips.set tt ?delay;
-  new tooltips tt
-
-
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gData.mli
deleted file mode 100644 (file)
index ae7b29e..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-
-class data_signals :
-  'a obj ->
-  object
-    inherit GObj.gtkobj_signals
-    constraint 'a = [>`data]
-    val obj : 'a obj
-    method disconnect_data : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class adjustment_signals :
-  'a obj ->
-  object
-    inherit data_signals
-    constraint 'a = [>`adjustment|`data]
-    val obj : 'a obj
-    method changed : callback:(unit -> unit) -> GtkSignal.id
-    method value_changed : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class adjustment : Gtk.adjustment obj ->
-  object
-    inherit GObj.gtkobj
-    val obj : Gtk.adjustment obj
-    method as_adjustment : Gtk.adjustment obj
-    method clamp_page : lower:float -> upper:float -> unit
-    method connect : adjustment_signals
-    method set_value : float -> unit
-    method lower : float
-    method upper : float
-    method value : float
-    method step_increment : float
-    method page_increment : float
-    method page_size : float
-  end
-val adjustment :
-  ?value:float ->
-  ?lower:float ->
-  ?upper:float ->
-  ?step_incr:float ->
-  ?page_incr:float -> ?page_size:float -> unit -> adjustment
-
-val as_adjustment : adjustment -> Gtk.adjustment obj
-
-class tooltips :
-  Gtk.tooltips obj ->
-  object
-    inherit GObj.gtkobj
-    val obj : Gtk.tooltips obj
-    method as_tooltips : Gtk.tooltips obj
-    method connect : data_signals
-    method disable : unit -> unit
-    method enable : unit -> unit
-    method set_delay : int -> unit
-    method set_tip : ?text:string -> ?privat:string -> GObj.widget -> unit
-  end
-val tooltips : ?delay:int -> unit -> tooltips
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.ml
deleted file mode 100644 (file)
index 5782079..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gdk
-
-type color = [
-  | `COLOR of Color.t
-  | `WHITE
-  | `BLACK
-  | `NAME of string
-  | `RGB of int * int * int
-]
-
-let default_colormap = GtkBase.Widget.get_default_colormap
-
-let color ?(colormap = default_colormap ()) (c : color) =
-  match c with
-  | `COLOR col -> col
-  | #Gdk.Color.spec as def -> Color.alloc ~colormap def
-
-type optcolor = [
-  | `COLOR of Color.t
-  | `WHITE
-  | `BLACK
-  | `NAME of string
-  | `RGB of int * int * int
-  | `DEFAULT
-]
-
-let optcolor ?colormap (c : optcolor) =
-  match c with
-  | `DEFAULT -> None
-  | #color as c -> Some (color ?colormap c)
-
-class ['a] drawable ?(colormap = default_colormap ()) w =
-object (self)
-  val colormap = colormap
-  val gc = GC.create w
-  val w : 'a Gdk.drawable = w
-  method color = color ~colormap
-  method set_foreground col = GC.set_foreground gc (self#color col)
-  method set_background col = GC.set_background gc (self#color col)
-  method gc_values = GC.get_values gc
-  method set_clip_region region = GC.set_clip_region gc region
-  method set_line_attributes ?width ?style ?cap ?join () =
-    let v = GC.get_values gc in
-    GC.set_line_attributes gc
-      ~width:(default v.GC.line_width ~opt:width)
-      ~style:(default v.GC.line_style ~opt:style)
-      ~cap:(default v.GC.cap_style ~opt:cap)
-      ~join:(default v.GC.join_style ~opt:join)
-  method point = Draw.point w gc
-  method line = Draw.line w gc
-  method rectangle = Draw.rectangle w gc
-  method arc = Draw.arc w gc
-  method polygon ?filled l = Draw.polygon w gc ?filled l
-  method string s = Draw.string w gc ~string:s
-  method image ~width ~height ?(xsrc=0) ?(ysrc=0) ?(xdest=0) ?(ydest=0) image =
-    Draw.image w gc ~image ~width ~height ~xsrc ~ysrc ~xdest ~ydest
-end
-
-class pixmap ?colormap ?mask pm = object
-  inherit [[`pixmap]] drawable ?colormap pm as pixmap
-  val bitmap = may_map mask ~f:
-      begin fun x ->
-        let mask = new drawable x in
-        mask#set_foreground `WHITE;
-        mask
-      end
-  val mask : Gdk.bitmap option = mask
-  method pixmap = w
-  method mask = mask
-  method set_line_attributes ?width ?style ?cap ?join () =
-    pixmap#set_line_attributes ?width ?style ?cap ?join ();
-    may bitmap ~f:(fun m -> m#set_line_attributes ?width ?style ?cap ?join ())
-  method point ~x ~y =
-    pixmap#point ~x ~y;
-    may bitmap ~f:(fun m -> m#point ~x ~y)
-  method line ~x ~y ~x:x' ~y:y' =
-    pixmap#line ~x ~y ~x:x' ~y:y';
-    may bitmap ~f:(fun m -> m#line ~x ~y ~x:x' ~y:y')
-  method rectangle ~x ~y ~width ~height ?filled () =
-    pixmap#rectangle ~x ~y ~width ~height ?filled ();
-    may bitmap ~f:(fun m -> m#rectangle ~x ~y ~width ~height ?filled ())
-  method arc ~x ~y ~width ~height ?filled ?start ?angle () =
-    pixmap#arc ~x ~y ~width ~height ?filled ?start ?angle ();
-    may bitmap
-      ~f:(fun m -> m#arc ~x ~y ~width ~height ?filled ?start ?angle ());
-  method polygon ?filled l =
-    pixmap#polygon ?filled l;
-    may bitmap ~f:(fun m -> m#polygon ?filled l)
-  method string s ~font ~x ~y =
-    pixmap#string s ~font ~x ~y;
-    may bitmap ~f:(fun m -> m#string s ~font ~x ~y)
-end
-
-class type misc_ops = object
-  method allocation : Gtk.rectangle
-  method colormap : colormap
-  method draw : Rectangle.t option -> unit
-  method hide : unit -> unit
-  method hide_all : unit -> unit
-  method intersect : Rectangle.t -> Rectangle.t option
-  method pointer : int * int
-  method realize : unit -> unit
-  method set_app_paintable : bool -> unit
-  method set_geometry :
-    ?x:int -> ?y:int -> ?width:int -> ?height:int -> unit -> unit
-  method show : unit -> unit
-  method unmap : unit -> unit
-  method unparent : unit -> unit
-  method unrealize : unit -> unit
-  method visible : bool
-  method visual : visual
-  method visual_depth : int
-  method window : window
-end
-
-let pixmap ~(window : < misc : #misc_ops; .. >)
-    ~width ~height ?(mask=false) () =
-  window#misc#realize ();
-  let window =
-    try window#misc#window
-    with Gpointer.Null -> failwith "GDraw.pixmap : no window"
-  and depth = window#misc#visual_depth
-  and colormap = window#misc#colormap in
-  let mask =
-    if not mask then None else
-    let bm = Bitmap.create window ~width ~height in
-    let mask = new drawable bm in
-    mask#set_foreground `BLACK;
-    mask#rectangle ~x:0 ~y:0 ~width ~height ~filled:true ();
-    Some bm
-  in
-  new pixmap (Pixmap.create window ~width ~height ~depth) ~colormap ?mask
-
-let pixmap_from_xpm ~window ~file ?colormap ?transparent () =
-  window#misc#realize ();
-  let window =
-    try window#misc#window
-    with Gpointer.Null -> failwith "GDraw.pixmap_from_xpm : no window" in
-  let pm, mask =
-    try Pixmap.create_from_xpm window ~file ?colormap
-       ?transparent:(may_map transparent ~f:(fun c -> color c))
-    with Gpointer.Null -> invalid_arg ("GDraw.pixmap_from_xpm : " ^ file) in
-  new pixmap pm ?colormap ~mask
-
-let pixmap_from_xpm_d ~window ~data ?colormap ?transparent () =
-  window#misc#realize ();
-  let window =
-    try window#misc#window
-    with Gpointer.Null -> failwith "GDraw.pixmap_from_xpm_d : no window" in
-  let pm, mask =
-    Pixmap.create_from_xpm_d window ~data ?colormap
-      ?transparent:(may_map transparent ~f:(fun c -> color c)) in
-  new pixmap pm ?colormap ~mask
-
-class drag_context context = object
-  val context = context
-  method status ?(time=0) act = DnD.drag_status context act ~time
-  method suggested_action = DnD.drag_context_suggested_action context
-  method targets = DnD.drag_context_targets context
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gDraw.mli
deleted file mode 100644 (file)
index 2b5fc86..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-(* $Id$ *)
-
-open Gdk
-
-type color =
-  [ `COLOR of Color.t
-  | `WHITE
-  | `BLACK
-  | `NAME of string
-  | `RGB of int * int * int]
-
-val color : ?colormap:colormap -> color -> Color.t
-
-type optcolor =
-  [ `COLOR of Color.t
-  | `WHITE
-  | `BLACK
-  | `NAME of string
-  | `RGB of int * int * int
-  | `DEFAULT ]
-
-val optcolor : ?colormap:colormap -> optcolor -> Color.t option
-
-class ['a] drawable : ?colormap:colormap -> 'a Gdk.drawable ->
-  object
-    val gc : gc
-    val w : 'a Gdk.drawable
-    method arc :
-      x:int ->
-      y:int ->
-      width:int ->
-      height:int ->
-      ?filled:bool -> ?start:float -> ?angle:float -> unit -> unit
-    method color : color -> Color.t
-    method gc_values : GC.values
-    method image :
-      width:int ->
-      height:int ->
-      ?xsrc:int -> ?ysrc:int -> ?xdest:int -> ?ydest:int -> image -> unit
-    method line : x:int -> y:int -> x:int -> y:int -> unit
-    method point : x:int -> y:int -> unit
-    method polygon : ?filled:bool -> (int * int) list -> unit
-    method rectangle :
-      x:int ->
-      y:int -> width:int -> height:int -> ?filled:bool -> unit -> unit
-    method set_background : color -> unit
-    method set_foreground : color -> unit
-    method set_clip_region : region -> unit
-    method set_line_attributes :
-      ?width:int ->
-      ?style:GC.gdkLineStyle ->
-      ?cap:GC.gdkCapStyle -> ?join:GC.gdkJoinStyle -> unit -> unit
-    method string : string -> font:font -> x:int -> y:int -> unit
-  end
-
-class pixmap :
-  ?colormap:colormap -> ?mask:bitmap -> [ `pixmap] Gdk.drawable ->
-  object
-    inherit [[`pixmap]] drawable
-    val bitmap : [ `bitmap] drawable option
-    val mask : bitmap option
-    method mask : bitmap option
-    method pixmap : Gdk.pixmap
-  end
-
-class type misc_ops =
-  object
-    method allocation : Gtk.rectangle
-    method colormap : colormap
-    method draw : Rectangle.t option -> unit
-    method hide : unit -> unit
-    method hide_all : unit -> unit
-    method intersect : Rectangle.t -> Rectangle.t option
-    method pointer : int * int
-    method realize : unit -> unit
-    method set_app_paintable : bool -> unit
-    method set_geometry :
-      ?x:int -> ?y:int -> ?width:int -> ?height:int -> unit -> unit
-    method show : unit -> unit
-    method unmap : unit -> unit
-    method unparent : unit -> unit
-    method unrealize : unit -> unit
-    method visible : bool
-    method visual : visual
-    method visual_depth : int
-    method window : window
-  end
-
-val pixmap :
-  window:< misc : #misc_ops; .. > ->
-  width:int -> height:int -> ?mask:bool -> unit -> pixmap
-val pixmap_from_xpm :
-  window:< misc : #misc_ops; .. > ->
-  file:string ->
-  ?colormap:colormap -> ?transparent:color -> unit -> pixmap
-val pixmap_from_xpm_d :
-  window:< misc : #misc_ops; .. > ->
-  data:string array ->
-  ?colormap:colormap -> ?transparent:color -> unit -> pixmap
-
-class drag_context : Gdk.drag_context ->
-  object
-    val context : Gdk.drag_context
-    method status : ?time:int -> Tags.drag_action list -> unit
-    method suggested_action : Tags.drag_action
-    method targets : atom list
-  end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.ml
deleted file mode 100644 (file)
index 467ee45..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkEdit
-open GObj
-
-class editable_signals obj = object
-  inherit widget_signals obj
-  method activate = GtkSignal.connect ~sgn:Editable.Signals.activate obj ~after
-  method changed = GtkSignal.connect ~sgn:Editable.Signals.changed obj ~after
-  method insert_text =
-    GtkSignal.connect ~sgn:Editable.Signals.insert_text obj ~after
-  method delete_text =
-    GtkSignal.connect ~sgn:Editable.Signals.delete_text obj ~after
-end
-
-class editable obj = object
-  inherit widget obj
-  method connect = new editable_signals obj
-  method select_region = Editable.select_region obj
-  method insert_text = Editable.insert_text obj
-  method delete_text = Editable.delete_text obj
-  method get_chars = Editable.get_chars obj
-  method cut_clipboard () = Editable.cut_clipboard obj
-  method copy_clipboard () = Editable.copy_clipboard obj
-  method paste_clipboard () = Editable.paste_clipboard obj
-  method delete_selection () = Editable.delete_selection obj
-  method set_position = Editable.set_position obj
-  method position = Editable.get_position obj
-  method set_editable = Editable.set_editable obj
-  method selection =
-    if Editable.has_selection obj then
-      Some (Editable.selection_start_pos obj, Editable.selection_end_pos obj)
-    else None
-end
-
-class entry obj = object
-  inherit editable obj
-  method event = new GObj.event_ops obj
-  method set_text = Entry.set_text obj
-  method append_text = Entry.append_text obj
-  method prepend_text = Entry.prepend_text obj
-  method set_visibility = Entry.set_visibility obj
-  method set_max_length = Entry.set_max_length obj
-  method text = Entry.get_text obj
-  method text_length = Entry.text_length obj
-end
-
-let set_editable ?editable ?(width = -2) ?(height = -2) w =
-  may editable ~f:(Editable.set_editable w);
-  if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height
-
-let entry ?max_length ?text ?visibility ?editable
-    ?width ?height ?packing ?show () =
-  let w = Entry.create ?max_length () in
-  Entry.set w ?text ?visibility;
-  set_editable w ?editable ?width ?height;
-  pack_return (new entry w) ~packing ~show
-
-class spin_button obj = object
-  inherit entry (obj : Gtk.spin_button obj)
-  method adjustment =  new GData.adjustment (SpinButton.get_adjustment obj)
-  method value = SpinButton.get_value obj
-  method value_as_int = SpinButton.get_value_as_int obj
-  method spin = SpinButton.spin obj
-  method update = SpinButton.update obj
-  method set_adjustment adj =
-    SpinButton.set_adjustment obj (GData.as_adjustment adj)
-  method set_digits = SpinButton.set_digits obj
-  method set_value = SpinButton.set_value obj
-  method set_update_policy = SpinButton.set_update_policy obj
-  method set_numeric = SpinButton.set_numeric obj
-  method set_wrap = SpinButton.set_wrap obj
-  method set_shadow_type = SpinButton.set_shadow_type obj
-  method set_snap_to_ticks = SpinButton.set_snap_to_ticks obj
-end
-
-let spin_button ?adjustment ?rate ?digits ?value ?update_policy
-    ?numeric ?wrap ?shadow_type ?snap_to_ticks
-    ?width ?height ?packing ?show () =
-  let w = SpinButton.create ?rate ?digits
-      ?adjustment:(may_map ~f:GData.as_adjustment adjustment) () in
-  SpinButton.set w ?value ?update_policy
-    ?numeric ?wrap ?shadow_type ?snap_to_ticks;
-  set_editable w ?width ?height;
-  pack_return (new spin_button w) ~packing ~show
-
-class combo obj = object
-  inherit GObj.widget (obj : Gtk.combo obj)
-  method entry = new entry (Combo.entry obj)
-  method list = new GList.liste (Combo.list obj)
-  method set_popdown_strings = Combo.set_popdown_strings obj
-  method set_use_arrows = Combo.set_use_arrows' obj
-  method set_case_sensitive = Combo.set_case_sensitive obj
-  method set_value_in_list = Combo.set_value_in_list obj
-  method disable_activate () = Combo.disable_activate obj
-  method set_item_string (item : GList.list_item) =
-    Combo.set_item_string obj item#as_item
-end
-
-let combo ?popdown_strings ?use_arrows
-    ?case_sensitive ?value_in_list ?ok_if_empty
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Combo.create () in
-  Combo.set w ?popdown_strings ?use_arrows
-    ?case_sensitive ?value_in_list ?ok_if_empty;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new combo w) ~packing ~show
-
-class text obj = object (self)
-  inherit editable (obj : Gtk.text obj) as super
-  method get_chars ~start ~stop:e =
-    if start < 0 || e > Text.get_length obj || e < start then
-      invalid_arg "GEdit.text#get_chars";
-    super#get_chars ~start ~stop:e
-  method event = new GObj.event_ops obj
-  method set_point = Text.set_point obj
-  method set_hadjustment adj =
-    Text.set_adjustment obj ~horizontal:(GData.as_adjustment adj) ()
-  method set_vadjustment adj =
-    Text.set_adjustment obj ~vertical:(GData.as_adjustment adj) ()
-  method set_word_wrap = Text.set_word_wrap obj
-  method set_line_wrap = Text.set_line_wrap obj
-  method hadjustment = new GData.adjustment (Text.get_hadjustment obj)
-  method vadjustment = new GData.adjustment (Text.get_vadjustment obj)
-  method point = Text.get_point obj
-  method length = Text.get_length obj
-  method freeze () = Text.freeze obj
-  method thaw () = Text.thaw obj
-  method insert ?font ?foreground ?background text =
-    let colormap = try Some self#misc#colormap with _ -> None in
-    Text.insert obj text ?font
-      ?foreground:(may_map foreground ~f:(GDraw.color ?colormap))
-      ?background:(may_map background ~f:(GDraw.color ?colormap))
-end
-
-let text ?hadjustment ?vadjustment ?editable
-    ?word_wrap ?line_wrap ?width ?height ?packing ?show () =
-  let w = Text.create ()
-      ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment)
-      ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment) in
-  may word_wrap ~f:(Text.set_word_wrap w);
-  may line_wrap ~f:(Text.set_line_wrap w);
-  set_editable w ?editable ?width ?height;
-  pack_return (new text w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gEdit.mli
deleted file mode 100644 (file)
index 3b2c286..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-
-class editable_signals : 'a obj ->
-  object
-    inherit widget_signals
-    constraint 'a = [>`editable|`widget]
-    val obj : 'a obj
-    method activate : callback:(unit -> unit) -> GtkSignal.id
-    method changed : callback:(unit -> unit) -> GtkSignal.id
-    method delete_text :
-      callback:(start:int -> stop:int -> unit) -> GtkSignal.id
-    method insert_text :
-      callback:(string -> pos:int -> unit) -> GtkSignal.id
-  end
-
-class editable : 'a obj ->
-  object
-    inherit widget
-    constraint 'a = [>`editable|`widget]
-    val obj : 'a obj
-    method connect : editable_signals
-    method copy_clipboard : unit -> unit
-    method cut_clipboard : unit -> unit
-    method delete_selection : unit -> unit
-    method delete_text : start:int -> stop:int -> unit
-    method get_chars : start:int -> stop:int -> string
-    method insert_text : string -> pos:int -> int
-    method paste_clipboard : unit -> unit
-    method position : int
-    method select_region : start:int -> stop:int -> unit
-    method selection : (int * int) option
-    method set_editable : bool -> unit
-    method set_position : int -> unit
-  end
-
-class entry : 'a obj ->
-  object
-    inherit editable
-    constraint 'a = [>`entry|`editable|`widget]
-    val obj : 'a obj
-    method event : event_ops
-    method append_text : string -> unit
-    method prepend_text : string -> unit
-    method set_max_length : int -> unit
-    method set_text : string -> unit
-    method set_visibility : bool -> unit
-    method text : string
-    method text_length : int
-  end
-val entry :
-  ?max_length:int ->
-  ?text:string ->
-  ?visibility:bool ->
-  ?editable:bool ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> entry
-
-class spin_button : Gtk.spin_button obj ->
-  object
-    inherit entry
-    val obj : Gtk.spin_button obj
-    method adjustment : GData.adjustment
-    method set_adjustment : GData.adjustment -> unit
-    method set_digits : int -> unit
-    method set_numeric : bool -> unit
-    method set_shadow_type : Tags.shadow_type -> unit
-    method set_snap_to_ticks : bool -> unit
-    method set_update_policy : [`ALWAYS|`IF_VALID] -> unit
-    method set_value : float -> unit
-    method set_wrap : bool -> unit
-    method spin : Tags.spin_type -> unit
-    method update : unit
-    method value : float
-    method value_as_int : int
-  end
-val spin_button :
-  ?adjustment:GData.adjustment ->
-  ?rate:float ->
-  ?digits:int ->
-  ?value:float ->
-  ?update_policy:[`ALWAYS|`IF_VALID] ->
-  ?numeric:bool ->
-  ?wrap:bool ->
-  ?shadow_type:Tags.shadow_type ->
-  ?snap_to_ticks:bool ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> spin_button
-
-class combo : Gtk.combo obj ->
-  object
-    inherit widget
-    val obj : Gtk.combo obj
-    method disable_activate : unit -> unit
-    method entry : entry
-    method list : GList.liste
-    method set_case_sensitive : bool -> unit
-    method set_item_string : GList.list_item -> string -> unit
-    method set_popdown_strings : string list -> unit
-    method set_use_arrows : [`NEVER|`DEFAULT|`ALWAYS] -> unit
-    method set_value_in_list :
-      ?required:bool -> ?ok_if_empty:bool -> unit -> unit
-  end
-val combo :
-  ?popdown_strings:string list ->
-  ?use_arrows:[`NEVER|`DEFAULT|`ALWAYS] ->
-  ?case_sensitive:bool ->
-  ?value_in_list:bool ->
-  ?ok_if_empty:bool ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> combo
-
-class text : Gtk.text obj ->
-  object
-    inherit editable
-    val obj : Gtk.text obj
-    method event : event_ops
-    method freeze : unit -> unit
-    method hadjustment : GData.adjustment
-    method insert :
-      ?font:Gdk.font ->
-      ?foreground:GDraw.color -> ?background:GDraw.color -> string -> unit
-    method length : int
-    method point : int
-    method set_hadjustment : GData.adjustment -> unit
-    method set_point : int -> unit
-    method set_vadjustment : GData.adjustment -> unit
-    method set_word_wrap : bool -> unit
-    method set_line_wrap : bool -> unit
-    method thaw : unit -> unit
-    method vadjustment : GData.adjustment
-  end
-val text :
-  ?hadjustment:GData.adjustment ->
-  ?vadjustment:GData.adjustment ->
-  ?editable:bool ->
-  ?word_wrap:bool ->
-  ?line_wrap:bool ->
-  ?width:int ->
-  ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> text
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gHtml.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gHtml.ml
deleted file mode 100644 (file)
index 1150790..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GObj
-open GtkXmHTML
-
-class xmhtml obj = object (self)
-  inherit widget_full (obj : GtkXmHTML.xmhtml obj)
-  method event = new GObj.event_ops obj
-  method freeze = freeze obj
-  method thaw = thaw obj
-  method source = source obj
-  method set_fonts = set_font_familty obj
-  method set_fonts_fixed = set_font_familty_fixed obj
-  method set_anchor_buttons = set_anchor_buttons obj
-  method set_anchor_cursor = set_anchor_cursor obj
-  method set_anchor_underline = set_anchor_underline_type obj
-  method set_anchor_visited_underline = set_anchor_visited_underline_type obj
-  method set_anchor_target_underline = set_anchor_target_underline_type obj
-  method set_topline = set_topline obj
-  method topline = get_topline obj
-  method set_strict_checking = set_strict_checking obj
-  method set_bad_html_warnings = set_bad_html_warnings obj
-  method set_imagemap_draw = set_imagemap_draw obj
-end
-
-let xmhtml ?source ?border_width ?width ?height ?packing ?show () =
-  let w = create () in
-  Container.set w ?border_width ?width ?height;
-  may source ~f:(GtkXmHTML.source w);
-  pack_return (new xmhtml w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.ml
deleted file mode 100644 (file)
index 3b1abe4..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkList
-open GObj
-open GContainer
-
-class list_item obj = object
-  inherit container (obj : Gtk.list_item obj)
-  method event = new GObj.event_ops obj
-  method as_item = obj
-  method select () = Item.select obj
-  method deselect () = Item.deselect obj
-  method toggle () = Item.toggle obj
-  method connect = new item_signals obj
-end
-
-let list_item ?label ?border_width ?width ?height ?packing ?(show=true) () =
-  let w = ListItem.create ?label () in
-  Container.set w ?border_width ?width ?height;
-  let item = new list_item w in
-  may packing ~f:(fun f -> (f item : unit));
-  if show then item#misc#show ();
-  item
-
-class liste obj = object
-  inherit [list_item] item_container (obj : Gtk.liste obj)
-  method private wrap w = new list_item (ListItem.cast w)
-  method insert w = Liste.insert_item obj w#as_item
-  method clear_items = Liste.clear_items obj
-  method select_item = Liste.select_item obj
-  method unselect_item = Liste.unselect_item obj
-  method child_position (w : list_item) = Liste.child_position obj w#as_item
-end
-
-let liste ?selection_mode ?border_width ?width ?height
-    ?packing ?show () =
-  let w = Liste.create () in
-  may selection_mode ~f:(Liste.set_selection_mode w);
-  Container.set w ?border_width ?width ?height;
-  pack_return (new liste w) ~packing ~show
-
-(* Cell lists *)
-
-class clist_signals obj = object
-  inherit container_signals obj
-  method click_column =
-    GtkSignal.connect ~sgn:CList.Signals.click_column obj ~after
-  method select_row =
-    GtkSignal.connect ~sgn:CList.Signals.select_row obj ~after
-  method unselect_row =
-    GtkSignal.connect ~sgn:CList.Signals.unselect_row obj ~after
-  method scroll_vertical =
-    GtkSignal.connect ~sgn:CList.Signals.scroll_vertical obj ~after
-  method scroll_horizontal =
-    GtkSignal.connect ~sgn:CList.Signals.scroll_horizontal obj ~after
-end
-
-class ['a] clist obj = object (self)
-  inherit widget (obj : Gtk.clist obj)
-  method set_border_width = Container.set_border_width obj
-  method event = new GObj.event_ops obj
-  method connect = new clist_signals obj
-  method rows = CList.get_rows obj
-  method columns = CList.get_columns obj
-  method focus_row = CList.get_focus_row obj
-  method hadjustment = new GData.adjustment (CList.get_hadjustment obj)
-  method vadjustment = new GData.adjustment (CList.get_vadjustment obj)
-  method set_button_actions = CList.set_button_actions obj
-  method freeze () = CList.freeze obj
-  method thaw () = CList.thaw obj
-  method column_title = CList.get_column_title obj
-  method column_widget col =
-    new widget (CList.get_column_widget obj col)
-  method columns_autosize () = CList.columns_autosize obj
-  method optimal_column_width = CList.optimal_column_width obj
-  method moveto ?(row_align=0.) ?(col_align=0.) row col =
-    CList.moveto obj row col ~row_align ~col_align
-  method row_is_visible = CList.row_is_visible obj
-  method cell_type = CList.get_cell_type obj
-  method cell_text = CList.get_text obj
-  method cell_pixmap row col =
-    let pm, mask = CList.get_pixmap obj row col in
-    may_map pm ~f:(fun x -> new GDraw.pixmap ?mask x)
-  method cell_style  row col =
-    try Some (new style (CList.get_cell_style obj row col))
-    with Gpointer.Null -> None
-  method row_selectable row = CList.get_selectable obj ~row
-  method row_style row =
-    try Some (new style (CList.get_row_style obj ~row))
-    with Gpointer.Null -> None
-  method set_shift = CList.set_shift obj
-  method insert ~row texts =
-    let texts = List.map texts ~f:(fun x -> Some x) in
-    CList.insert obj ~row texts
-  method append = self#insert ~row:self#rows
-  method prepend = self#insert ~row:0
-  method remove = CList.remove obj
-  method select = CList.select obj
-  method unselect = CList.unselect obj
-  method clear () = CList.clear obj
-  method get_row_column = CList.get_row_column obj
-  method select_all () = CList.select_all obj
-  method unselect_all () = CList.unselect_all obj
-  method swap_rows = CList.swap_rows obj
-  method row_move = CList.row_move obj
-  method sort () = CList.sort obj
-  method set_hadjustment adj =
-    CList.set_hadjustment obj (GData.as_adjustment adj)
-  method set_vadjustment adj =
-    CList.set_vadjustment obj (GData.as_adjustment adj)
-  method set_shadow_type = CList.set_shadow_type obj
-  method set_button_actions = CList.set_button_actions obj
-  method set_selection_mode = CList.set_selection_mode obj
-  method set_reorderable = CList.set_reorderable obj
-  method set_use_drag_icons = CList.set_use_drag_icons obj
-  method set_row_height = CList.set_row_height obj
-  method set_titles_show = CList.set_titles_show obj
-  method set_titles_active = CList.set_titles_active obj
-  method set_sort = CList.set_sort obj
-  method set_column ?widget =
-    CList.set_column obj ?widget:(may_map widget ~f:as_widget)
-  method set_row ?foreground ?background ?selectable ?style =
-    let color = may_map ~f:(fun c -> Gpointer.optboxed (GDraw.optcolor c))
-    and style = may_map ~f:(fun (st : style) -> st#as_style) style in
-    CList.set_row obj
-      ?foreground:(color foreground) ?background:(color background)
-      ?selectable ?style
-  method set_cell ?text ?pixmap ?spacing ?style =
-    let pixmap, mask =
-      match pixmap with None -> None, None
-      | Some (pm : GDraw.pixmap) -> Some pm#pixmap, pm#mask
-    and style = may_map ~f:(fun (st : style) -> st#as_style) style in
-    CList.set_cell obj ?text ?pixmap ?mask ?spacing ?style
-  method set_row_data n ~data =
-    CList.set_row_data obj ~row:n (Obj.repr (data : 'a))
-  method get_row_data n : 'a = Obj.obj (CList.get_row_data obj ~row:n)
-  method scroll_vertical =
-    CList.Signals.emit_scroll obj ~sgn:CList.Signals.scroll_vertical
-  method scroll_horizontal =
-    CList.Signals.emit_scroll obj ~sgn:CList.Signals.scroll_horizontal
-end
-
-let clist ?(columns=1) ?titles ?hadjustment ?vadjustment
-    ?shadow_type ?button_actions ?selection_mode
-    ?reorderable ?use_drag_icons ?row_height
-    ?titles_show ?titles_active ?auto_sort ?sort_column ?sort_type
-    ?border_width ?width ?height ?packing ?show () =
-  let w =
-    match titles with None -> CList.create ~cols:columns
-    | Some titles -> CList.create_with_titles (Array.of_list titles)
-  in
-  CList.set w 
-    ?hadjustment:(may_map ~f:GData.as_adjustment hadjustment)
-    ?vadjustment:(may_map ~f:GData.as_adjustment vadjustment)
-    ?shadow_type ?button_actions ?selection_mode ?reorderable
-    ?use_drag_icons ?row_height ?titles_show ?titles_active;
-  CList.set_sort w ?auto:auto_sort ?column:sort_column ?dir:sort_type ();
-  Container.set w ?border_width ?width ?height;
-  pack_return (new clist w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gList.mli
deleted file mode 100644 (file)
index 17f4cef..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-open GContainer
-
-class list_item : Gtk.list_item obj ->
-  object
-    inherit container
-    val obj : Gtk.list_item obj
-    method event : event_ops
-    method as_item : Gtk.list_item obj
-    method connect : item_signals
-    method deselect : unit -> unit
-    method select : unit -> unit
-    method toggle : unit -> unit
-  end
-val list_item :
-  ?label:string ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(list_item -> unit) -> ?show:bool -> unit -> list_item
-
-class liste : Gtk.liste obj ->
-  object
-    inherit [list_item] item_container
-    val obj : Gtk.liste obj
-    method child_position : list_item -> int
-    method clear_items : start:int -> stop:int -> unit
-    method insert : list_item -> pos:int -> unit
-    method select_item : pos:int -> unit
-    method unselect_item : pos:int -> unit
-    method private wrap : Gtk.widget obj -> list_item
-  end
-val liste :
-  ?selection_mode:Tags.selection_mode ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> liste
-
-class clist_signals : 'a obj ->
-  object
-    inherit container_signals
-    constraint 'a = [>`clist|`container|`widget]
-    val obj : 'a obj
-    method click_column : callback:(int -> unit) -> GtkSignal.id
-    method select_row :
-      callback:(row:int ->
-                column:int -> event:GdkEvent.Button.t option -> unit) ->
-      GtkSignal.id
-    method unselect_row :
-      callback:(row:int ->
-                column:int -> event:GdkEvent.Button.t option -> unit) ->
-      GtkSignal.id
-    method scroll_horizontal :
-      callback:(Tags.scroll_type -> pos:clampf -> unit) -> GtkSignal.id
-    method scroll_vertical :
-      callback:(Tags.scroll_type -> pos:clampf -> unit) -> GtkSignal.id
-  end
-
-class ['a] clist : Gtk.clist obj ->
-  object
-    inherit widget
-    val obj : Gtk.clist obj
-    method event : event_ops
-    method append : string list -> int
-    method cell_pixmap : int -> int -> GDraw.pixmap option
-    method cell_style : int -> int -> style option
-    method cell_text : int -> int -> string
-    method cell_type : int -> int -> Tags.cell_type
-    method clear : unit -> unit
-    method column_title : int -> string
-    method column_widget : int -> widget
-    method columns : int
-    method columns_autosize : unit -> unit
-    method connect : clist_signals
-    method focus_row : int
-    method freeze : unit -> unit
-    method get_row_column : x:int -> y:int -> int * int
-    method get_row_data : int -> 'a
-    method hadjustment : GData.adjustment
-    method insert : row:int -> string list -> int
-    method moveto :
-      ?row_align:clampf -> ?col_align:clampf -> int -> int -> unit
-    method optimal_column_width : int -> int
-    method prepend : string list -> int
-    method remove : row:int -> unit
-    method row_is_visible : int -> Tags.visibility
-    method row_move : int -> dst:int -> unit
-    method row_selectable : int -> bool
-    method row_style : int -> style option
-    method rows : int
-    method scroll_vertical : Tags.scroll_type -> pos:clampf -> unit
-    method scroll_horizontal : Tags.scroll_type -> pos:clampf -> unit
-    method select : int -> int -> unit
-    method select_all : unit -> unit
-    method set_border_width : int -> unit
-    method set_button_actions : int -> Tags.button_action list -> unit
-    method set_cell :
-      ?text:string ->
-      ?pixmap:GDraw.pixmap ->
-      ?spacing:int -> ?style:style -> int -> int -> unit
-    method set_column :
-      ?widget:widget ->
-      ?title:string ->
-      ?title_active:bool ->
-      ?justification:Tags.justification ->
-      ?visibility:bool ->
-      ?resizeable:bool ->
-      ?auto_resize:bool ->
-      ?width:int -> ?min_width:int -> ?max_width:int -> int -> unit
-    method set_hadjustment : GData.adjustment -> unit
-    method set_reorderable : bool -> unit
-    method set_row :
-      ?foreground:GDraw.optcolor ->
-      ?background:GDraw.optcolor ->
-      ?selectable:bool ->
-      ?style:style -> int -> unit
-    method set_row_data : int -> data:'a -> unit
-    method set_row_height : int -> unit
-    method set_selection_mode : Tags.selection_mode -> unit
-    method set_shadow_type : Tags.shadow_type -> unit
-    method set_shift : int -> int -> vertical:int -> horizontal:int -> unit
-    method set_sort :
-      ?auto:bool -> ?column:int -> ?dir:Tags.sort_type -> unit -> unit
-    method set_titles_active : bool -> unit
-    method set_titles_show : bool -> unit
-    method set_use_drag_icons : bool -> unit
-    method set_vadjustment : GData.adjustment -> unit
-    method sort : unit -> unit
-    method swap_rows : int -> int -> unit
-    method thaw : unit -> unit
-    method unselect : int -> int -> unit
-    method unselect_all : unit -> unit
-    method vadjustment : GData.adjustment
-  end
-val clist :
-  ?columns:int ->
-  ?titles:string list ->
-  ?hadjustment:GData.adjustment ->
-  ?vadjustment:GData.adjustment ->
-  ?shadow_type:Tags.shadow_type ->
-  ?button_actions:(int * Tags.button_action list) list ->
-  ?selection_mode:Tags.selection_mode ->
-  ?reorderable:bool ->
-  ?use_drag_icons:bool ->
-  ?row_height:int ->
-  ?titles_show:bool ->
-  ?titles_active:bool ->
-  ?auto_sort:bool ->
-  ?sort_column:int ->
-  ?sort_type:Tags.sort_type ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> 'a clist
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMain.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMain.ml
deleted file mode 100644 (file)
index 811f490..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GtkMain
-open GObj
-
-module Main : sig
-  val init : unit -> string (* returns the locale name *)
-  val main : unit -> unit
-  val quit : unit -> unit
-  val version : int * int * int
-  val flush : unit -> unit
-end = Main
-
-module Grab = struct
-  open Grab
-  let add (w : #widget) = add w#as_widget
-  let remove (w : #widget) = remove w#as_widget
-  let get_current () = new widget (get_current ())
-end
-
-module Timeout : sig
-  type id
-  val add : ms:int -> callback:(unit -> bool) -> id
-  val remove : id -> unit
-end = Timeout
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.ml
deleted file mode 100644 (file)
index 52f05a4..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkData
-open GtkBase
-open GtkMenu
-open GObj
-open GContainer
-
-(* Menu type *)
-
-class menu_shell_signals obj = object
-  inherit container_signals obj
-  method deactivate =
-    GtkSignal.connect ~sgn:MenuShell.Signals.deactivate obj ~after
-end
-
-class type virtual ['a] pre_menu = object
-  inherit ['a] item_container
-  method as_menu : Gtk.menu Gtk.obj
-  method deactivate : unit -> unit
-  method connect : menu_shell_signals
-  method event : event_ops
-  method popup : button:int -> time:int -> unit
-  method popdown : unit -> unit
-  method set_accel_group : accel_group -> unit
-end
-
-(* Menu items *)
-
-class menu_item_signals obj = object
-  inherit item_signals obj
-  method activate = GtkSignal.connect ~sgn:MenuItem.Signals.activate obj
-end
-
-
-class ['a] pre_menu_item_skel obj = object
-  inherit container obj
-  method as_item = MenuItem.coerce obj
-  method set_submenu (w : 'a pre_menu) = MenuItem.set_submenu obj w#as_menu
-  method remove_submenu () = MenuItem.remove_submenu obj
-  method configure = MenuItem.configure obj
-  method activate () = MenuItem.activate obj
-  method right_justify () = MenuItem.right_justify obj
-  method add_accelerator ~group ?modi:m ?flags key=
-    Widget.add_accelerator obj ~sgn:MenuItem.Signals.activate group ?flags
-      ?modi:m ~key
-end
-
-class menu_item obj = object
-  inherit [menu_item] pre_menu_item_skel obj
-  method connect = new menu_item_signals obj
-  method event = new GObj.event_ops obj
-end
-
-class menu_item_skel = [menu_item] pre_menu_item_skel
-
-let pack_item self ~packing ~show =
-  may packing ~f:(fun f -> (f (self :> menu_item) : unit));
-  if show <> Some false then self#misc#show ();
-  self
-
-let menu_item ?label ?border_width ?width ?height ?packing ?show () =
-  let w = MenuItem.create ?label () in
-  Container.set w ?border_width ?width ?height;
-  pack_item (new menu_item w) ?packing ?show
-
-let tearoff_item ?border_width ?width ?height ?packing ?show () =
-  let w = MenuItem.tearoff_create () in
-  Container.set w ?border_width ?width ?height;
-  pack_item (new menu_item w) ?packing ?show
-
-class check_menu_item_signals obj = object
-  inherit menu_item_signals obj
-  method toggled =
-    GtkSignal.connect ~sgn:CheckMenuItem.Signals.toggled obj ~after
-end
-
-class check_menu_item obj = object
-  inherit menu_item_skel obj
-  method set_active = CheckMenuItem.set_active obj
-  method set_show_toggle = CheckMenuItem.set_show_toggle obj
-  method active = CheckMenuItem.get_active obj
-  method toggled () = CheckMenuItem.toggled obj
-  method connect = new check_menu_item_signals obj
-  method event = new GObj.event_ops obj
-end
-
-let check_menu_item ?label ?active ?show_toggle
-    ?border_width ?width ?height ?packing ?show () =
-  let w = CheckMenuItem.create ?label () in
-  CheckMenuItem.set w ?active ?show_toggle;
-  Container.set w ?border_width ?width ?height;
-  pack_item (new check_menu_item w) ?packing ?show
-
-class radio_menu_item obj = object
-  inherit check_menu_item (obj : Gtk.radio_menu_item obj)
-  method group = Some obj
-  method set_group = RadioMenuItem.set_group obj
-end
-
-let radio_menu_item ?group ?label ?active ?show_toggle
-    ?border_width ?width ?height ?packing ?show () =
-  let w = RadioMenuItem.create ?group ?label () in
-  CheckMenuItem.set w ?active ?show_toggle;
-  Container.set w ?border_width ?width ?height;
-  pack_item (new radio_menu_item w) ?packing ?show
-
-(* Menus *)
-
-class menu_shell obj = object
-  inherit [menu_item] item_container obj
-  method private wrap w = new menu_item (MenuItem.cast w)
-  method insert w = MenuShell.insert obj w#as_item
-  method deactivate () = MenuShell.deactivate obj
-  method connect = new menu_shell_signals obj
-  method event = new GObj.event_ops obj
-end
-
-class menu obj = object
-  inherit menu_shell obj
-  method popup = Menu.popup obj
-  method popdown () = Menu.popdown obj
-  method as_menu : Gtk.menu obj = obj
-  method set_accel_group = Menu.set_accel_group obj
-end
-
-let menu ?border_width ?packing ?show () =
-  let w = Menu.create () in
-  may border_width ~f:(Container.set_border_width w);
-  let self = new menu w in
-  may packing ~f:(fun f -> (f (self :> menu) : unit));
-  if show <> Some false then self#misc#show ();
-  self
-
-(* Option Menu (GtkButton?) *)
-
-class option_menu obj = object
-  inherit GButton.button_skel obj
-  method connect = new GButton.button_signals obj
-  method event = new GObj.event_ops obj
-  method set_menu (menu : menu) = OptionMenu.set_menu obj menu#as_menu
-  method get_menu = new menu (OptionMenu.get_menu obj)
-  method remove_menu () = OptionMenu.remove_menu obj
-  method set_history = OptionMenu.set_history obj
-end
-
-let option_menu ?border_width ?width ?height ?packing ?show () =
-  let w = OptionMenu.create () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new option_menu w) ~packing ~show
-
-(* Menu Bar *)
-
-let menu_bar ?border_width ?width ?height ?packing ?show () =
-  let w = MenuBar.create () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new menu_shell w) ~packing ~show
-
-(* Menu Factory *)
-
-class ['a] factory
-    ?(accel_group=AccelGroup.create ())
-    ?(accel_modi=[`CONTROL])
-    ?(accel_flags=[`VISIBLE]) (menu_shell : 'a) =
-  object (self)
-    val menu_shell : #menu_shell = menu_shell
-    val group = accel_group
-    val m = accel_modi
-    val flags = accel_flags
-    method menu = menu_shell
-    method accel_group = group
-    method private bind ?key ?callback (item : menu_item) =
-      menu_shell#append item;
-      may key ~f:(item#add_accelerator ~group ~modi:m ~flags);
-      may callback ~f:(fun callback -> item#connect#activate ~callback)
-    method add_item ?key ?callback ?submenu label =
-      let item = menu_item ~label () in
-      self#bind item ?key ?callback;
-      may (submenu : menu option) ~f:item#set_submenu;
-      item
-    method add_check_item ?active ?key ?callback label =
-      let item = check_menu_item ~label ?active () in
-      self#bind (item :> menu_item) ?key
-       ?callback:(may_map callback ~f:(fun f () -> f item#active));
-      item
-    method add_radio_item ?group ?active ?key ?callback label =
-      let item = radio_menu_item ~label ?group ?active () in
-      self#bind (item :> menu_item) ?key
-       ?callback:(may_map callback ~f:(fun f () -> f item#active));
-      item
-    method add_separator () = menu_item ~packing:menu_shell#append ()
-    method add_submenu ?key label =
-      let item = menu_item ~label () in
-      self#bind item ?key;
-      menu ~packing:item#set_submenu ();
-    method add_tearoff () = tearoff_item ~packing:menu_shell#append ()
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMenu.mli
deleted file mode 100644 (file)
index 505249b..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-open GContainer
-
-class menu_shell_signals : 'b obj ->
-  object ('a)
-    inherit container_signals
-    constraint 'b = [>`menushell|`container|`widget]
-    val obj : 'b obj
-    method deactivate : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class menu_item_signals : 'b obj ->
-  object ('a)
-    inherit item_signals
-    constraint 'b = [>`menuitem|`container|`item|`widget]
-    val obj : 'b obj
-    method activate : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class menu_item_skel :
-  'a obj ->
-  object
-    inherit container
-    constraint 'a = [>`widget|`container|`menuitem]
-    val obj : 'a obj
-    method activate : unit -> unit
-    method add_accelerator :
-      group:accel_group ->
-      ?modi:Gdk.Tags.modifier list ->
-      ?flags:Tags.accel_flag list -> Gdk.keysym -> unit
-    method as_item : Gtk.menu_item obj
-    method configure : show_toggle:bool -> show_indicator:bool -> unit
-    method remove_submenu : unit -> unit
-    method right_justify : unit -> unit
-    method set_submenu : menu -> unit
-  end
-and menu_item : 'a obj ->
-  object
-    inherit menu_item_skel
-    constraint 'a = [>`widget|`container|`item|`menuitem]
-    val obj : 'a obj
-    method event : event_ops
-    method connect : menu_item_signals
-  end
-and menu : Gtk.menu obj ->
-  object
-    inherit [menu_item] item_container
-    val obj : Gtk.menu obj
-    method add : menu_item -> unit
-    method event : event_ops
-    method append : menu_item -> unit
-    method as_menu : Gtk.menu obj
-    method children : menu_item list
-    method connect : menu_shell_signals
-    method deactivate : unit -> unit
-    method insert : menu_item -> pos:int -> unit
-    method popdown : unit -> unit
-    method popup : button:int -> time:int -> unit
-    method prepend : menu_item -> unit
-    method remove : menu_item -> unit
-    method set_accel_group : accel_group -> unit
-    method set_border_width : int -> unit
-    method private wrap : Gtk.widget obj -> menu_item
-  end
-
-val menu :
-  ?border_width:int -> ?packing:(menu -> unit) -> ?show:bool -> unit -> menu
-val menu_item :
-  ?label:string ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(menu_item -> unit) -> ?show:bool -> unit -> menu_item
-val tearoff_item :
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(menu_item -> unit) -> ?show:bool -> unit -> menu_item
-
-class check_menu_item_signals : 'a obj ->
-  object
-    inherit menu_item_signals
-    constraint 'a = [>`checkmenuitem|`container|`item|`menuitem|`widget]
-    val obj : 'a obj
-    method toggled : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class check_menu_item : 'a obj ->
-  object
-    inherit menu_item_skel
-    constraint 'a = [>`widget|`checkmenuitem|`container|`item|`menuitem]
-    val obj : 'a obj
-    method active : bool
-    method event : event_ops
-    method connect : check_menu_item_signals
-    method set_active : bool -> unit
-    method set_show_toggle : bool -> unit
-    method toggled : unit -> unit
-  end
-val check_menu_item :
-  ?label:string ->
-  ?active:bool ->
-  ?show_toggle:bool ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(menu_item -> unit) -> ?show:bool -> unit -> check_menu_item
-
-class radio_menu_item : Gtk.radio_menu_item obj ->
-  object
-    inherit check_menu_item
-    val obj : Gtk.radio_menu_item obj
-    method group : Gtk.radio_menu_item group
-    method set_group : Gtk.radio_menu_item group -> unit
-  end
-val radio_menu_item :
-  ?group:Gtk.radio_menu_item group ->
-  ?label:string ->
-  ?active:bool ->
-  ?show_toggle:bool ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(menu_item -> unit) -> ?show:bool -> unit -> radio_menu_item
-
-class menu_shell : 'a obj ->
-  object
-    inherit [menu_item] item_container
-    constraint 'a = [>`widget|`container|`menushell]
-    val obj : 'a obj
-    method event : event_ops
-    method deactivate : unit -> unit
-    method connect : menu_shell_signals
-    method insert : menu_item -> pos:int -> unit
-    method private wrap : Gtk.widget obj -> menu_item
-  end
-
-val menu_bar :
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> menu_shell
-
-class option_menu : 'a obj ->
-  object
-    inherit GButton.button_skel
-    constraint 'a = [>`optionmenu|`button|`container|`widget]
-    val obj : 'a obj
-    method event : event_ops
-    method connect : GButton.button_signals
-    method get_menu : menu
-    method remove_menu : unit -> unit
-    method set_history : int -> unit
-    method set_menu : menu -> unit
-  end
-val option_menu :
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> option_menu
-
-class ['a] factory :
-  ?accel_group:accel_group ->
-  ?accel_modi:Gdk.Tags.modifier list ->
-  ?accel_flags:Tags.accel_flag list ->
-  'a ->
-  object
-    constraint 'a = #menu_shell
-    val flags : Tags.accel_flag list
-    val group : accel_group
-    val m : Gdk.Tags.modifier list
-    val menu_shell : 'a
-    method accel_group : accel_group
-    method add_check_item :
-      ?active:bool ->
-      ?key:Gdk.keysym ->
-      ?callback:(bool -> unit) -> string -> check_menu_item
-    method add_item :
-      ?key:Gdk.keysym ->
-      ?callback:(unit -> unit) ->
-      ?submenu:menu -> string -> menu_item
-    method add_radio_item :
-      ?group:Gtk.radio_menu_item group ->
-      ?active:bool ->
-      ?key:Gdk.keysym ->
-      ?callback:(bool -> unit) -> string -> radio_menu_item
-    method add_separator : unit -> menu_item
-    method add_submenu : ?key:Gdk.keysym -> string -> menu
-    method add_tearoff : unit -> menu_item
-    method private bind :
-      ?key:Gdk.keysym -> ?callback:(unit -> unit) -> menu_item -> unit
-    method menu : 'a
-  end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.ml
deleted file mode 100644 (file)
index 13fd7b4..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkMisc
-open GObj
-
-let separator dir ?(width = -2) ?(height = -2) ?packing ?show () =
-  let w = Separator.create dir in
-  if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height;
-  pack_return (new widget_full w) ~packing ~show
-
-class statusbar_context obj ctx = object (self)
-  val obj : statusbar obj = obj
-  val context : Gtk.statusbar_context = ctx
-  method context = context
-  method push text = Statusbar.push obj context ~text
-  method pop () = Statusbar.pop obj context
-  method remove = Statusbar.remove obj context
-  method flash ?(delay=1000) text =
-    let msg = self#push text in
-    GtkMain.Timeout.add ~ms:delay ~callback:(fun () -> self#remove msg; false);
-    ()
-end
-
-class statusbar obj = object
-  inherit GContainer.container_full (obj : Gtk.statusbar obj)
-  method new_context ~name =
-    new statusbar_context obj (Statusbar.get_context obj name)
-end
-
-let statusbar ?border_width ?width ?height ?packing ?show () =
-  let w = Statusbar.create () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new statusbar w) ~packing ~show
-
-class calendar_signals obj = object
-  inherit widget_signals obj
-  method month_changed =
-    GtkSignal.connect obj ~sgn:Calendar.Signals.month_changed ~after
-  method day_selected =
-    GtkSignal.connect obj ~sgn:Calendar.Signals.day_selected ~after
-  method day_selected_double_click =
-    GtkSignal.connect obj
-      ~sgn:Calendar.Signals.day_selected_double_click ~after
-  method prev_month =
-    GtkSignal.connect obj ~sgn:Calendar.Signals.prev_month ~after
-  method next_month =
-    GtkSignal.connect obj ~sgn:Calendar.Signals.next_month ~after
-  method prev_year =
-    GtkSignal.connect obj ~sgn:Calendar.Signals.prev_year ~after
-  method next_year =
-    GtkSignal.connect obj ~sgn:Calendar.Signals.next_year ~after
-end
-
-class calendar obj = object
-  inherit widget (obj : Gtk.calendar obj)
-  method event = new GObj.event_ops obj
-  method connect = new calendar_signals obj
-  method select_month = Calendar.select_month obj
-  method select_day = Calendar.select_day obj
-  method mark_day = Calendar.mark_day obj
-  method unmark_day = Calendar.unmark_day obj
-  method clear_marks = Calendar.clear_marks obj
-  method display_options = Calendar.display_options obj
-  method date = Calendar.get_date obj
-  method freeze () = Calendar.freeze obj
-  method thaw () = Calendar.thaw obj
-end
-
-let calendar ?options ?(width = -2) ?(height = -2) ?packing ?show () =
-  let w = Calendar.create () in
-  if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height;
-  may options ~f:(Calendar.display_options w);
-  pack_return (new calendar w) ~packing ~show
-
-class drawing_area obj = object
-  inherit widget_full (obj : Gtk.drawing_area obj)
-  method event = new GObj.event_ops obj
-  method set_size = DrawingArea.size obj
-end
-
-let drawing_area ?(width=0) ?(height=0) ?packing ?show () =
-  let w = DrawingArea.create () in
-  if width <> 0 || height <> 0 then DrawingArea.size w ~width ~height;
-  pack_return (new drawing_area w) ~packing ~show
-
-class misc obj = object
-  inherit widget obj
-  method set_alignment = Misc.set_alignment obj
-  method set_padding = Misc.set_padding obj
-end
-
-class arrow obj = object
-  inherit misc obj
-  method set_arrow kind ~shadow = Arrow.set obj ~kind ~shadow
-end
-
-let arrow ~kind ~shadow
-    ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () =
-  let w = Arrow.create ~kind ~shadow in
-  Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height;
-  pack_return (new arrow w) ~packing ~show
-
-class image obj = object
-  inherit misc obj
-  method set_image ?mask image = Image.set obj image ?mask
-end
-
-let image image ?mask
-    ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () =
-  let w = Image.create image ?mask in
-  Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height;
-  pack_return (new image w) ~packing ~show
-
-class label_skel obj = object
-  inherit misc obj
-  method set_text = Label.set_text obj
-  method set_justify = Label.set_justify obj
-  method set_pattern = Label.set_pattern obj
-  method set_line_wrap = Label.set_line_wrap obj
-  method text = Label.get_text obj
-end
-
-class label obj = object
-  inherit label_skel (Label.coerce obj)
-  method connect = new widget_signals obj
-end
-
-let label ?(text="") ?justify ?line_wrap ?pattern
-    ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () =
-  let w = Label.create text in
-  Label.set w ?justify ?line_wrap ?pattern;
-  Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height;
-  pack_return (new label w) ~packing ~show
-
-let label_cast w = new label (Label.cast w#as_widget)
-
-class tips_query_signals obj = object
-  inherit widget_signals obj
-  method widget_entered ~callback = 
-    GtkSignal.connect ~sgn:TipsQuery.Signals.widget_entered obj ~after
-      ~callback:(function None -> callback None
-       | Some w -> callback (Some (new widget w)))
-  method widget_selected ~callback = 
-    GtkSignal.connect ~sgn:TipsQuery.Signals.widget_selected obj ~after
-      ~callback:(function None -> callback None
-       | Some w -> callback (Some (new widget w)))
-end
-
-class tips_query obj = object
-  inherit label_skel (obj : Gtk.tips_query obj)
-  method start () = TipsQuery.start obj
-  method stop () = TipsQuery.stop obj
-  method set_caller (w : widget) = TipsQuery.set_caller obj w#as_widget
-  method set_emit_always = TipsQuery.set_emit_always obj
-  method set_label_inactive inactive = TipsQuery.set_labels obj ~inactive
-  method set_label_no_tip no_tip = TipsQuery.set_labels obj ~no_tip
-  method connect = new tips_query_signals obj
-end
-
-let tips_query ?caller ?emit_always ?label_inactive ?label_no_tip
-    ?xalign ?yalign ?xpad ?ypad ?width ?height ?packing ?show () =
-  let w = TipsQuery.create () in
-  let caller = may_map caller ~f:(fun (w : #widget) -> w#as_widget) in
-  TipsQuery.set w ?caller ?emit_always ?label_inactive ?label_no_tip;
-  Misc.set w ?xalign ?yalign ?xpad ?ypad ?width ?height;
-  pack_return (new tips_query w) ~packing ~show
-
-class color_selection obj = object
-  inherit GObj.widget_full (obj : Gtk.color_selection obj)
-  method set_update_policy = ColorSelection.set_update_policy obj
-  method set_opacity = ColorSelection.set_opacity obj
-  method set_color ~red ~green ~blue ?opacity () =
-    ColorSelection.set_color obj ~red ~green ~blue ?opacity
-  method get_color = ColorSelection.get_color obj
-end
-
-let color_selection ?border_width ?width ?height ?packing ?show () =
-  let w = ColorSelection.create () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new color_selection w) ~packing ~show
-
-class pixmap obj = object
-  inherit misc (obj : Gtk.pixmap obj)
-  method connect = new widget_signals obj
-  method set_pixmap (pm : GDraw.pixmap) =
-    Pixmap.set obj ~pixmap:pm#pixmap ?mask:pm#mask
-  method pixmap =
-    new GDraw.pixmap (Pixmap.pixmap obj)
-      ?mask:(try Some(Pixmap.mask obj) with Gpointer.Null -> None)
-end
-
-let pixmap (pm : #GDraw.pixmap) ?xalign ?yalign ?xpad ?ypad
-    ?(width = -2) ?(height = -2) ?packing ?show () =
-  let w = Pixmap.create pm#pixmap ?mask:pm#mask in
-  Misc.set w ?xalign ?yalign ?xpad ?ypad;
-  if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height;
-  pack_return (new pixmap w) ~packing ~show
-
-class font_selection obj = object
-  inherit widget_full (obj : Gtk.font_selection obj)
-  method notebook = new GPack.notebook obj
-  method event = new event_ops obj
-  method font = FontSelection.get_font obj
-  method font_name = FontSelection.get_font_name obj
-  method set_font_name = FontSelection.set_font_name obj
-  method preview_text = FontSelection.get_preview_text obj
-  method set_preview_text = FontSelection.set_preview_text obj
-  method set_filter = FontSelection.set_filter obj
-end
-
-let font_selection ?border_width ?width ?height ?packing ?show () =
-  let w = FontSelection.create () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new font_selection w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gMisc.mli
deleted file mode 100644 (file)
index 7008369..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-open GContainer
-
-val separator :
-  Tags.orientation ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> widget_full
-
-class statusbar_context :
-  Gtk.statusbar obj -> Gtk.statusbar_context ->
-  object
-    val context : Gtk.statusbar_context
-    val obj : Gtk.statusbar obj
-    method context : Gtk.statusbar_context
-    method flash : ?delay:int -> string -> unit
-    method pop : unit -> unit
-    method push : string -> statusbar_message
-    method remove : statusbar_message -> unit
-  end
-
-class statusbar : Gtk.statusbar obj ->
-  object
-    inherit container_full
-    val obj : Gtk.statusbar obj
-    method new_context : name:string -> statusbar_context
-  end
-val statusbar :
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> statusbar
-
-class calendar_signals : 'a obj ->
-  object
-    inherit widget_signals
-    constraint 'a = [>`calendar|`widget]
-    val obj : 'a obj
-    method day_selected : callback:(unit -> unit) -> GtkSignal.id
-    method day_selected_double_click :
-      callback:(unit -> unit) -> GtkSignal.id
-    method month_changed : callback:(unit -> unit) -> GtkSignal.id
-    method next_month : callback:(unit -> unit) -> GtkSignal.id
-    method next_year : callback:(unit -> unit) -> GtkSignal.id
-    method prev_month : callback:(unit -> unit) -> GtkSignal.id
-    method prev_year : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class calendar : Gtk.calendar obj ->
-  object
-    inherit widget
-    val obj : Gtk.calendar obj
-    method event : event_ops
-    method clear_marks : unit
-    method connect : calendar_signals
-    method date : int * int * int
-    method display_options : Tags.calendar_display_options list -> unit
-    method freeze : unit -> unit
-    method mark_day : int -> unit
-    method select_day : int -> unit
-    method select_month : month:int -> year:int -> unit
-    method thaw : unit -> unit
-    method unmark_day : int -> unit
-  end
-val calendar :
-  ?options:Tags.calendar_display_options list ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> calendar
-
-class drawing_area : Gtk.drawing_area obj ->
-  object
-    inherit widget_full
-    val obj : Gtk.drawing_area obj
-    method event : event_ops
-    method set_size : width:int -> height:int -> unit
-  end
-val drawing_area :
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> drawing_area
-
-class misc : 'a obj ->
-  object
-    inherit widget
-    constraint 'a = [>`misc|`widget]
-    val obj : 'a obj
-    method set_alignment : ?x:float -> ?y:float -> unit -> unit
-    method set_padding : ?x:int -> ?y:int -> unit -> unit
-  end
-
-class arrow : 'a obj ->
-  object
-    inherit misc
-    constraint 'a = [>`arrow|`misc|`widget]
-    val obj : 'a obj
-    method set_arrow : Tags.arrow_type -> shadow:Tags.shadow_type -> unit
-  end
-
-val arrow :
-  kind:Tags.arrow_type ->
-  shadow:Tags.shadow_type ->
-  ?xalign:float ->
-  ?yalign:float ->
-  ?xpad:int ->
-  ?ypad:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> arrow
-
-class image : 'a obj ->
-  object
-    inherit misc
-    constraint 'a = [>`image|`misc|`widget]
-    val obj : 'a obj
-    method set_image : ?mask:Gdk.bitmap -> Gdk.image -> unit
-  end
-
-val image :
-  Gdk.image ->
-  ?mask:Gdk.bitmap ->
-  ?xalign:float ->
-  ?yalign:float ->
-  ?xpad:int ->
-  ?ypad:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> image
-
-class label_skel : 'a obj ->
-  object
-    inherit misc
-    constraint 'a = [>`label|`misc|`widget]
-    val obj : 'a obj
-    method set_justify : Tags.justification -> unit
-    method set_line_wrap : bool -> unit
-    method set_pattern : string -> unit
-    method set_text : string -> unit
-    method text : string
-  end
-
-class label : [>`label] obj ->
-  object
-    inherit label_skel
-    val obj : Gtk.label obj
-    method connect : widget_signals
-  end
-val label :
-  ?text:string ->
-  ?justify:Tags.justification ->
-  ?line_wrap:bool ->
-  ?pattern:string ->
-  ?xalign:float ->
-  ?yalign:float ->
-  ?xpad:int ->
-  ?ypad:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> label
-val label_cast : < as_widget : 'a obj ; .. > -> label
-
-class tips_query_signals : 'a obj ->
-  object
-    inherit widget_signals
-    constraint 'a = [>`tipsquery|`widget]
-    val obj : 'a obj
-    method widget_entered :
-      callback:(widget option ->
-                text:string option -> privat:string option -> unit) ->
-      GtkSignal.id
-    method widget_selected :
-      callback:(widget option -> text:string option ->
-                privat:string option -> GdkEvent.Button.t option -> bool) ->
-      GtkSignal.id
-  end
-
-class tips_query : Gtk.tips_query obj ->
-  object
-    inherit label_skel
-    val obj : Gtk.tips_query obj
-    method connect : tips_query_signals
-    method set_caller : widget -> unit
-    method set_emit_always : bool -> unit
-    method set_label_inactive : string -> unit
-    method set_label_no_tip : string -> unit
-    method start : unit -> unit
-    method stop : unit -> unit
-  end
-val tips_query :
-  ?caller:#widget ->
-  ?emit_always:bool ->
-  ?label_inactive:string ->
-  ?label_no_tip:string ->
-  ?xalign:float ->
-  ?yalign:float ->
-  ?xpad:int ->
-  ?ypad:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> tips_query
-
-class pixmap : Gtk.pixmap Gtk.obj ->
-  object
-    inherit misc
-    val obj : Gtk.pixmap Gtk.obj
-    method connect : GObj.widget_signals
-    method pixmap : GDraw.pixmap
-    method set_pixmap : GDraw.pixmap -> unit
-  end
-val pixmap :
-  #GDraw.pixmap ->
-  ?xalign:float ->
-  ?yalign:float ->
-  ?xpad:int ->
-  ?ypad:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> pixmap
-
-class color_selection : Gtk.color_selection obj ->
-  object
-    inherit widget_full
-    val obj : Gtk.color_selection obj
-    method get_color : Gtk.color
-    method set_color :
-      red:float -> green:float -> blue:float -> ?opacity:float -> unit -> unit
-    method set_opacity : bool -> unit
-    method set_update_policy : Tags.update_type -> unit
-  end
-val color_selection :
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> color_selection
-
-class font_selection : Gtk.font_selection obj ->
-  object
-    inherit widget_full
-    val obj : Gtk.font_selection obj
-    method event : event_ops
-    method notebook : GPack.notebook
-    method font : Gdk.font option
-    method font_name : string option
-    method preview_text : string
-    method set_filter :
-      ?kind:Tags.font_type list ->
-      ?foundry:string list ->
-      ?weight:string list ->
-      ?slant:string list ->
-      ?setwidth:string list ->
-      ?spacing:string list ->
-      ?charset:string list -> Tags.font_filter_type -> unit
-    method set_font_name : string -> unit
-    method set_preview_text : string -> unit
-  end
-val font_selection :
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> font_selection
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.ml
deleted file mode 100644 (file)
index 5c4819f..0000000
+++ /dev/null
@@ -1,292 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkData
-open GtkBase
-
-(* Object *)
-
-class gtkobj obj = object
-  val obj = obj
-  method destroy () = Object.destroy obj
-  method get_id = Object.get_id obj
-end
-
-class gtkobj_misc obj = object
-  val obj = obj
-  method get_type = Type.name (Object.get_type obj)
-  method disconnect = GtkSignal.disconnect obj
-  method handler_block = GtkSignal.handler_block obj
-  method handler_unblock = GtkSignal.handler_unblock obj
-end
-
-class gtkobj_signals ?(after=false) obj = object
-  val obj = obj
-  val after = after
-  method after = {< after = true >}
-  method destroy = GtkSignal.connect ~sgn:Object.Signals.destroy obj
-end
-
-(* Widget *)
-
-class event_signals ?(after=false) obj = object
-  val obj = Widget.coerce obj
-  val after = after
-  method after = {< after = true >}
-  method any = GtkSignal.connect ~sgn:Widget.Signals.Event.any ~after obj
-  method button_press =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.button_press ~after obj
-  method button_release =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.button_release ~after obj
-  method configure =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.configure ~after obj
-  method delete =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.delete ~after obj
-  method destroy =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.destroy ~after obj
-  method enter_notify =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.enter_notify ~after obj
-  method expose =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.expose ~after obj
-  method focus_in =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.focus_in ~after obj
-  method focus_out =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.focus_out ~after obj
-  method key_press =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.key_press ~after obj
-  method key_release =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.key_release ~after obj
-  method leave_notify =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.leave_notify ~after obj
-  method map = GtkSignal.connect ~sgn:Widget.Signals.Event.map ~after obj
-  method motion_notify =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.motion_notify ~after obj
-  method property_notify =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.property_notify ~after obj
-  method proximity_in =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.proximity_in ~after obj
-  method proximity_out =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.proximity_out ~after obj
-  method selection_clear =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.selection_clear ~after obj
-  method selection_notify =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.selection_notify ~after obj
-  method selection_request =
-    GtkSignal.connect ~sgn:Widget.Signals.Event.selection_request ~after obj
-  method unmap = GtkSignal.connect ~sgn:Widget.Signals.Event.unmap ~after obj
-end
-
-class event_ops obj = object
-  val obj = Widget.coerce obj
-  method add = Widget.add_events obj
-  method connect = new event_signals obj
-  method send : Gdk.Tags.event_type Gdk.event -> bool = Widget.event obj
-  method set_extensions = Widget.set_extension_events obj
-end
-
-class style st = object
-  val style = st
-  method as_style = style
-  method copy = {< style = Style.copy style >}
-  method bg state = Style.get_bg style ~state
-  method colormap = Style.get_colormap style
-  method font = Style.get_font style
-  method set_bg =
-    List.iter ~f:
-      (fun (state,c) -> Style.set_bg style ~state ~color:(GDraw.color c))
-  method set_font = Style.set_font style
-  method set_background = Style.set_background style
-end
-
-class selection_data (sel : Selection.t) = object
-  val sel = sel
-  method selection = Selection.selection sel
-  method target = Selection.target sel
-  method seltype = Selection.seltype sel
-  method format = Selection.format sel
-  method data = Selection.get_data sel
-  method set = Selection.set sel
-end
-
-class drag_signals ?(after=false) obj = object
-  val obj =  Widget.coerce obj
-  val after = after
-  method after = {< after = true >}
-  method beginning ~callback =
-    GtkSignal.connect ~sgn:Widget.Signals.drag_begin ~after obj
-      ~callback:(fun context -> callback (new drag_context context))
-  method ending ~callback =
-    GtkSignal.connect ~sgn:Widget.Signals.drag_end ~after obj
-      ~callback:(fun context -> callback (new drag_context context))
-  method data_delete ~callback =
-    GtkSignal.connect ~sgn:Widget.Signals.drag_data_delete ~after obj
-      ~callback:(fun context -> callback (new drag_context context))
-  method leave ~callback =
-    GtkSignal.connect ~sgn:Widget.Signals.drag_leave ~after obj
-      ~callback:(fun context -> callback (new drag_context context))
-  method motion ~callback =
-    GtkSignal.connect ~sgn:Widget.Signals.drag_motion ~after obj
-      ~callback:(fun context -> callback (new drag_context context))
-  method drop ~callback =
-    GtkSignal.connect ~sgn:Widget.Signals.drag_drop ~after obj
-      ~callback:(fun context -> callback (new drag_context context))
-  method data_get ~callback =
-    GtkSignal.connect ~sgn:Widget.Signals.drag_data_get ~after obj
-      ~callback:(fun context data -> callback (new drag_context context)
-              (new selection_data data))
-  method data_received ~callback =
-    GtkSignal.connect ~sgn:Widget.Signals.drag_data_received ~after obj
-      ~callback:(fun context ~x ~y data -> callback (new drag_context context)
-              ~x ~y (new selection_data data))
-
-end
-
-and drag_ops obj = object
-  val obj = Widget.coerce obj
-  method connect = new drag_signals obj
-  method dest_set ?(flags=[`ALL]) ?(actions=[]) targets =
-    DnD.dest_set obj ~flags ~actions ~targets:(Array.of_list targets)
-  method dest_unset () = DnD.dest_unset obj
-  method get_data ?(time=0) ~context:(context : drag_context) target =
-    DnD.get_data obj (context : < context : Gdk.drag_context; .. >)#context
-      ~target ~time
-  method highlight () = DnD.highlight obj
-  method unhighlight () = DnD.unhighlight obj
-  method source_set ?modi:m ?(actions=[]) targets =
-    DnD.source_set obj ?modi:m ~actions ~targets:(Array.of_list targets)
-  method source_set_icon ?(colormap = Gdk.Color.get_system_colormap ())
-      (pix : GDraw.pixmap) =
-    DnD.source_set_icon obj ~colormap pix#pixmap ?mask:pix#mask
-  method source_unset () = DnD.source_unset obj
-end
-
-and drag_context context = object
-  inherit GDraw.drag_context context
-  method context = context
-  method finish = DnD.finish context
-  method source_widget =
-    new widget (Object.unsafe_cast (DnD.get_source_widget context))
-  method set_icon_widget (w : widget) =
-    DnD.set_icon_widget context (w#as_widget)
-  method set_icon_pixmap ?(colormap = Gdk.Color.get_system_colormap ())
-      (pix : GDraw.pixmap) =
-    DnD.set_icon_pixmap context ~colormap pix#pixmap ?mask:pix#mask
-end
-
-and misc_signals ?after obj = object
-  inherit gtkobj_signals ?after obj
-  method draw ~callback =
-    GtkSignal.connect obj ~sgn:Widget.Signals.draw ~after ~callback:
-      begin fun rect ->
-       callback
-         { x = Gdk.Rectangle.x rect ; y = Gdk.Rectangle.y rect;
-           width = Gdk.Rectangle.width rect;
-           height = Gdk.Rectangle.height rect }
-      end
-  method show = GtkSignal.connect ~sgn:Widget.Signals.show ~after obj
-  method hide = GtkSignal.connect ~sgn:Widget.Signals.hide ~after obj
-  method map = GtkSignal.connect ~sgn:Widget.Signals.map ~after obj
-  method unmap = GtkSignal.connect ~sgn:Widget.Signals.unmap ~after obj
-  method realize = GtkSignal.connect ~sgn:Widget.Signals.realize ~after obj
-  method state_changed =
-    GtkSignal.connect ~sgn:Widget.Signals.state_changed ~after obj
-  method parent_set ~callback =
-    GtkSignal.connect obj ~sgn:Widget.Signals.parent_set ~after ~callback:
-      begin function
-         None   -> callback None
-       | Some w -> callback (Some (new widget (Object.unsafe_cast w)))
-      end
-  method style_set ~callback =
-    GtkSignal.connect obj ~sgn:Widget.Signals.style_set ~after ~callback:
-      (fun opt -> callback (may opt ~f:(new style)))
-end
-
-and misc_ops obj = object
-  inherit gtkobj_misc (Widget.coerce obj)
-  method connect = new misc_signals obj
-  method show () = Widget.show obj
-  method unparent () = Widget.unparent obj
-  method show_all () = Widget.show_all obj
-  method hide () = Widget.hide obj
-  method hide_all () = Widget.hide_all obj
-  method map () = Widget.map obj
-  method unmap () = Widget.unmap obj
-  method realize () = Widget.realize obj
-  method unrealize () = Widget.unrealize obj
-  method draw = Widget.draw obj
-  method activate () = Widget.activate obj
-  method reparent (w : widget) =  Widget.reparent obj w#as_widget
-  method popup = Widget.popup obj
-  method intersect = Widget.intersect obj
-  method grab_focus () = Widget.grab_focus obj
-  method grab_default () = Widget.grab_default obj
-  method is_ancestor (w : widget) = Widget.is_ancestor obj w#as_widget
-  method add_accelerator ~sgn:sg ~group ?modi ?flags key =
-    Widget.add_accelerator obj ~sgn:sg group ~key ?modi ?flags
-  method remove_accelerator ~group ?modi key =
-    Widget.remove_accelerator obj group ~key ?modi
-  method lock_accelerators () = Widget.lock_accelerators obj
-  method set_name = Widget.set_name obj
-  method set_state = Widget.set_state obj
-  method set_sensitive = Widget.set_sensitive obj
-  method set_can_default = Widget.set_can_default obj
-  method set_can_focus = Widget.set_can_focus obj
-  method set_geometry ?(x = -2) ?(y = -2) ?(width = -2) ?(height = -2)  () =
-    if x+y <> -4 then Widget.set_uposition obj ~x ~y;
-    if width+height <> -4 then Widget.set_usize obj ~width ~height
-  method set_style (style : style) = Widget.set_style obj style#as_style
-  (* get functions *)
-  method name = Widget.get_name obj
-  method toplevel =
-    try Some (new widget (Object.unsafe_cast (Widget.get_toplevel obj)))
-    with Gpointer.Null -> None
-  method window = Widget.window obj
-  method colormap = Widget.get_colormap obj
-  method visual = Widget.get_visual obj
-  method visual_depth = Gdk.Window.visual_depth (Widget.get_visual obj)
-  method pointer = Widget.get_pointer obj
-  method style = new style (Widget.get_style obj)
-  method visible = Widget.visible obj
-  method has_focus = Widget.has_focus obj
-  method parent =
-    try Some (new widget (Object.unsafe_cast (Widget.parent obj)))
-    with Gpointer.Null -> None
-  method set_app_paintable = Widget.set_app_paintable obj
-  method allocation = Widget.allocation obj
-end
-
-and widget obj = object (self)
-  inherit gtkobj obj
-  method as_widget = Widget.coerce obj
-  method misc = new misc_ops obj
-  method drag = new drag_ops (Object.unsafe_cast obj)
-  method coerce =
-    (self :> < destroy : _; get_id : _; as_widget : _; misc : _;
-               drag : _; coerce : _ >)
-end
-
-(* just to check that GDraw.misc_ops is compatible with misc_ops *)
-let _ = fun (x : #GDraw.misc_ops) -> (x : misc_ops)
-
-class widget_signals ?after (obj : [> `widget] obj) =
-  gtkobj_signals ?after obj
-
-(*
-class widget_coerce obj = object
-  inherit widget obj
-  method coerce = (self :> widget)
-end
-*)
-
-class widget_full obj = object
-  inherit widget obj
-  method connect = new widget_signals obj
-end
-
-let as_widget (w : widget) = w#as_widget
-
-let pack_return self ~packing ~show =
-  may packing ~f:(fun f -> (f (self :> widget) : unit));
-  if show <> Some false then self#misc#show ();
-  self
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gObj.mli
deleted file mode 100644 (file)
index 7c37cf1..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-
-(* Object *)
-
-class gtkobj :
-  'a obj ->
-  object
-    val obj : 'a obj
-    method destroy : unit -> unit
-    method get_id : int
-  end
-
-class gtkobj_signals :
-  ?after:bool -> 'a obj ->
-  object ('b)
-    val obj : 'a obj
-    val after : bool
-    method after : 'b
-    method destroy : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class gtkobj_misc : 'a obj ->
-  object
-    method get_type : string
-    method disconnect : GtkSignal.id -> unit
-    method handler_block : GtkSignal.id -> unit
-    method handler_unblock : GtkSignal.id -> unit
-  end
-
-(* Widget *)
-
-class event_signals :
-  ?after:bool -> [>`widget] obj ->
-  object ('a)
-    method after : 'a
-    method any :
-       callback:(Gdk.Tags.event_type Gdk.event -> bool) -> GtkSignal.id
-    method button_press : callback:(GdkEvent.Button.t -> bool) -> GtkSignal.id
-    method button_release :
-       callback:(GdkEvent.Button.t -> bool) -> GtkSignal.id
-    method configure : callback:(GdkEvent.Configure.t -> bool) -> GtkSignal.id
-    method delete : callback:([`DELETE] Gdk.event -> bool) -> GtkSignal.id
-    method destroy : callback:([`DESTROY] Gdk.event -> bool) -> GtkSignal.id
-    method enter_notify :
-       callback:(GdkEvent.Crossing.t -> bool) -> GtkSignal.id
-    method expose : callback:(GdkEvent.Expose.t -> bool) -> GtkSignal.id
-    method focus_in : callback:(GdkEvent.Focus.t -> bool) -> GtkSignal.id
-    method focus_out : callback:(GdkEvent.Focus.t -> bool) -> GtkSignal.id
-    method key_press : callback:(GdkEvent.Key.t -> bool) -> GtkSignal.id
-    method key_release : callback:(GdkEvent.Key.t -> bool) -> GtkSignal.id
-    method leave_notify :
-       callback:(GdkEvent.Crossing.t -> bool) -> GtkSignal.id
-    method map : callback:([`MAP] Gdk.event -> bool) -> GtkSignal.id
-    method motion_notify :
-       callback:(GdkEvent.Motion.t -> bool) -> GtkSignal.id
-    method property_notify :
-       callback:(GdkEvent.Property.t -> bool) -> GtkSignal.id
-    method proximity_in :
-       callback:(GdkEvent.Proximity.t -> bool) -> GtkSignal.id
-    method proximity_out :
-       callback:(GdkEvent.Proximity.t -> bool) -> GtkSignal.id
-    method selection_clear :
-       callback:(GdkEvent.Selection.t -> bool) -> GtkSignal.id
-    method selection_notify :
-       callback:(GdkEvent.Selection.t -> bool) -> GtkSignal.id
-    method selection_request :
-       callback:(GdkEvent.Selection.t -> bool) -> GtkSignal.id
-    method unmap : callback:([`UNMAP] Gdk.event -> bool) -> GtkSignal.id
-  end
-
-class event_ops : [>`widget] obj ->
-  object
-    method add : Gdk.Tags.event_mask list -> unit
-    method connect : event_signals
-    method send : Gdk.Tags.event_type Gdk.event -> bool
-    method set_extensions : Gdk.Tags.extension_events -> unit
-  end
-
-class style : Gtk.style ->
-  object ('a)
-    val style : Gtk.style
-    method as_style : Gtk.style
-    method bg : Tags.state_type -> Gdk.Color.t
-    method colormap : Gdk.colormap
-    method copy : 'a
-    method font : Gdk.font
-    method set_background : Gdk.window -> Tags.state_type -> unit
-    method set_bg : (Tags.state_type * GDraw.color) list -> unit
-    method set_font : Gdk.font -> unit
-  end
-
-class selection_data :
-  GtkData.Selection.t ->
-  object
-    val sel : GtkData.Selection.t
-    method data : string       (* May raise Null_pointer *)
-    method format : int
-    method selection : Gdk.atom
-    method seltype : Gdk.atom
-    method target : Gdk.atom
-    method set : typ:Gdk.atom -> format:int -> ?data:string -> unit
-  end
-
-class drag_ops : [>`widget] obj ->
-  object
-    method connect : drag_signals
-    method dest_set :
-      ?flags:Tags.dest_defaults list ->
-      ?actions:Gdk.Tags.drag_action list -> target_entry list -> unit
-    method dest_unset : unit -> unit
-    method get_data : ?time:int -> context:drag_context -> Gdk.atom ->unit
-    method highlight : unit -> unit
-    method source_set :
-      ?modi:Gdk.Tags.modifier list ->
-      ?actions:Gdk.Tags.drag_action list -> target_entry list -> unit
-    method source_set_icon : ?colormap:Gdk.colormap -> GDraw.pixmap -> unit
-    method source_unset : unit -> unit
-    method unhighlight : unit -> unit
-  end
-
-and misc_ops :
-  [>`widget] obj ->
-  object
-    inherit gtkobj_misc
-    val obj : Gtk.widget obj
-    method activate : unit -> bool
-    method add_accelerator :
-      sgn:(Gtk.widget, unit -> unit) GtkSignal.t ->
-      group:accel_group -> ?modi:Gdk.Tags.modifier list ->
-      ?flags:Tags.accel_flag list -> Gdk.keysym -> unit
-    method allocation : rectangle
-    method colormap : Gdk.colormap
-    method connect : misc_signals
-    method draw : Gdk.Rectangle.t option -> unit
-    method grab_default : unit -> unit
-    method grab_focus : unit -> unit
-    method has_focus : bool
-    method hide : unit -> unit
-    method hide_all : unit -> unit
-    method intersect : Gdk.Rectangle.t -> Gdk.Rectangle.t option
-    method is_ancestor : widget -> bool
-    method lock_accelerators : unit -> unit
-    method map : unit -> unit
-    method name : string
-    method parent : widget option
-    method pointer : int * int
-    method popup : x:int -> y:int -> unit
-    method realize : unit -> unit
-    method remove_accelerator :
-      group:accel_group -> ?modi:Gdk.Tags.modifier list -> Gdk.keysym -> unit
-    method reparent : widget -> unit
-    method set_app_paintable : bool -> unit
-    method set_can_default : bool -> unit
-    method set_can_focus : bool -> unit
-    method set_name : string -> unit
-    method set_sensitive : bool -> unit
-    method set_state : Tags.state_type -> unit
-    method set_style : style -> unit
-    method set_geometry :
-      ?x:int -> ?y:int -> ?width:int -> ?height:int -> unit -> unit
-    method show : unit -> unit
-    method show_all : unit -> unit
-    method style : style
-    method toplevel : widget option
-    method unmap : unit -> unit
-    method unparent : unit -> unit
-    method unrealize : unit -> unit
-    method visible : bool
-    method visual : Gdk.visual
-    method visual_depth : int
-    method window : Gdk.window
-  end
-
-and widget :
-  'a obj ->
-  object
-    inherit gtkobj
-    constraint 'a = [>`widget]
-    val obj : 'a obj
-    method as_widget : Gtk.widget obj
-    method coerce : widget
-    method drag : drag_ops
-    method misc : misc_ops
-  end
-
-and misc_signals :
-  ?after:bool -> Gtk.widget obj ->
-  object ('b)
-    inherit gtkobj_signals 
-    val obj : Gtk.widget obj
-    method after : 'b
-    method draw : callback:(Gtk.rectangle -> unit) -> GtkSignal.id
-    method hide : callback:(unit -> unit) -> GtkSignal.id
-    method map : callback:(unit -> unit) -> GtkSignal.id
-    method parent_set : callback:(widget option -> unit) -> GtkSignal.id
-    method realize : callback:(unit -> unit) -> GtkSignal.id
-    method show : callback:(unit -> unit) -> GtkSignal.id
-    method state_changed :
-      callback:(Gtk.Tags.state_type -> unit) -> GtkSignal.id
-    method style_set : callback:(unit -> unit) -> GtkSignal.id
-    method unmap : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-and drag_context :
-  Gdk.drag_context ->
-  object
-    val context : Gdk.drag_context
-    method context : Gdk.drag_context
-    method finish : success:bool -> del:bool -> time:int -> unit
-    method source_widget : widget 
-    method set_icon_pixmap :
-      ?colormap:Gdk.colormap -> GDraw.pixmap -> hot_x:int -> hot_y:int -> unit
-    method set_icon_widget : widget -> hot_x:int -> hot_y:int -> unit
-    method status : ?time:int -> Gdk.Tags.drag_action list -> unit
-    method suggested_action : Gdk.Tags.drag_action
-    method targets : Gdk.atom list
-  end
-
-and drag_signals :
-  ?after:bool -> Gtk.widget obj ->
-  object ('a)
-    method after : 'a
-    method beginning :
-      callback:(drag_context -> unit) -> GtkSignal.id
-    method data_delete :
-      callback:(drag_context -> unit) -> GtkSignal.id
-    method data_get :
-      callback:(drag_context -> selection_data -> info:int -> time:int -> unit)
-      -> GtkSignal.id
-    method data_received :
-      callback:(drag_context -> x:int -> y:int ->
-               selection_data -> info:int -> time:int -> unit) -> GtkSignal.id
-    method drop :
-      callback:(drag_context -> x:int -> y:int -> time:int -> bool) ->
-      GtkSignal.id
-    method ending :
-      callback:(drag_context -> unit) -> GtkSignal.id
-    method leave :
-      callback:(drag_context -> time:int -> unit) -> GtkSignal.id
-    method motion :
-      callback:(drag_context -> x:int -> y:int -> time:int -> bool) ->
-      GtkSignal.id
-  end
-
-class widget_signals : ?after:bool -> 'a obj ->
-  object
-    inherit gtkobj_signals
-    constraint 'a = [>`widget]
-    val obj : 'a obj
-  end
-
-class widget_full : 'a obj ->
-  object
-    inherit widget
-    constraint 'a = [>`widget]
-    val obj : 'a obj
-    method connect : widget_signals
-  end
-
-val as_widget : widget -> Gtk.widget obj
-
-val pack_return :
-    (#widget as 'a) ->
-    packing:(widget -> unit) option -> show:bool option -> 'a
-    (* To use in initializers to provide a ?packing: option *)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.ml
deleted file mode 100644 (file)
index 3641349..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkPack
-open GObj
-open GContainer
-
-class box_skel obj = object
-  inherit container obj
-  method pack ?from:f ?expand ?fill ?padding w =
-    Box.pack obj (as_widget w) ?from:f ?expand ?fill ?padding
-  method set_homogeneous = Box.set_homogeneous obj
-  method set_spacing = Box.set_spacing obj
-  method set_child_packing ?from:f ?expand ?fill ?padding w =
-    Box.set_child_packing obj (as_widget w) ?from:f ?expand ?fill ?padding
-  method reorder_child w = Box.reorder_child obj (as_widget w)
-end
-
-class box obj = object
-  inherit box_skel obj
-  method connect = new container_signals obj
-end
-  
-let box dir ?homogeneous ?spacing ?border_width ?width ?height
-    ?packing ?show () =
-  let w = Box.create dir ?homogeneous ?spacing () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new box w) ~packing ~show
-
-let vbox = box `VERTICAL
-let hbox = box `HORIZONTAL
-
-class button_box obj = object
-  inherit box_skel (obj : Gtk.button_box obj)
-  method connect = new container_signals obj
-  method set_layout  = BBox.set_layout  obj
-  method set_spacing = BBox.set_spacing obj
-  method set_child_size = BBox.set_child_size obj
-  method set_child_ipadding = BBox.set_child_ipadding obj
-end
-
-let button_box dir ?spacing ?child_width ?child_height ?child_ipadx
-    ?child_ipady ?layout ?border_width ?width ?height ?packing ?show ()=
-  let w = BBox.create dir in
-  BBox.set w ?spacing ?child_width ?child_height ?child_ipadx
-    ?child_ipady ?layout;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new button_box w) ~packing ~show
-
-class table obj = object
-  inherit container_full (obj : Gtk.table obj)
-  method attach ~left ~top ?right ?bottom ?expand ?fill ?shrink
-      ?xpadding ?ypadding w =
-    Table.attach obj (as_widget w) ~left ~top ?right ?bottom ?expand
-      ?fill ?shrink ?xpadding ?ypadding
-  method set_row_spacing = Table.set_row_spacing obj
-  method set_col_spacing = Table.set_col_spacing obj
-  method set_row_spacings = Table.set_row_spacings obj
-  method set_col_spacings = Table.set_col_spacings obj
-  method set_homogeneous = Table.set_homogeneous obj
-end
-
-let table ~rows ~columns ?homogeneous ?row_spacings ?col_spacings
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Table.create ~rows ~columns ?homogeneous () in
-  Table.set w ?row_spacings ?col_spacings;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new table w) ~packing ~show
-
-class fixed obj = object
-  inherit container_full (obj : Gtk.fixed obj)
-  method event = new GObj.event_ops obj
-  method put w = Fixed.put obj (as_widget w)
-  method move w = Fixed.move obj (as_widget w)
-end
-
-let fixed ?border_width ?width ?height ?packing ?show () =
-  let w = Fixed.create () in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new fixed w) ~packing ~show
-
-class layout obj = object
-  inherit container_full (obj : Gtk.layout obj)
-  method event = new GObj.event_ops obj
-  method put w = Layout.put obj (as_widget w)
-  method move w = Layout.move obj (as_widget w)
-  method set_hadjustment adj =
-    Layout.set_hadjustment obj (GData.as_adjustment adj)
-  method set_vadjustment adj =
-    Layout.set_vadjustment obj (GData.as_adjustment adj)
-  method set_width width = Layout.set_size obj ~width
-  method set_height height = Layout.set_size obj ~height
-  method hadjustment = new GData.adjustment (Layout.get_hadjustment obj)
-  method vadjustment = new GData.adjustment (Layout.get_vadjustment obj)
-  method freeze () = Layout.freeze obj
-  method thaw () = Layout.thaw obj
-  method width = Layout.get_width obj
-  method height = Layout.get_height obj
-end
-
-let layout ?hadjustment ?vadjustment ?layout_width ?layout_height
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Layout.create
-      (Gpointer.optboxed (may_map ~f:GData.as_adjustment hadjustment))
-      (Gpointer.optboxed (may_map ~f:GData.as_adjustment vadjustment)) in
-  if layout_width <> None || layout_height <> None then
-    Layout.set_size w ?width:layout_width ?height:layout_height;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new layout w) ~packing ~show
-
-
-class packer obj = object
-  inherit container_full (obj : Gtk.packer obj)
-  method pack ?side ?anchor ?expand ?fill
-      ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y w =
-    let options = Packer.build_options ?expand ?fill () in
-    if border_width == None && pad_x == None && pad_y == None &&
-      i_pad_x == None && i_pad_y == None
-      then Packer.add_defaults obj (as_widget w) ?side ?anchor ~options
-      else Packer.add obj (as_widget w) ?side ?anchor ~options
-         ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y
-  method set_child_packing ?side ?anchor ?expand ?fill
-      ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y w =
-    Packer.set_child_packing obj (as_widget w) ?side ?anchor
-      ~options:(Packer.build_options ?expand ?fill ())
-      ?border_width ?pad_x ?pad_y ?i_pad_x ?i_pad_y
-  method reorder_child w = Packer.reorder_child obj (as_widget w)
-  method set_spacing = Packer.set_spacing obj
-  method set_defaults = Packer.set_defaults obj
-end
-
-let packer ?spacing ?border_width ?width ?height ?packing ?show () =
-  let w = Packer.create () in
-  may spacing ~f:(Packer.set_spacing w);
-  Container.set w ?border_width ?width ?height;
-  pack_return (new packer w) ~packing ~show
-
-class paned obj = object
-  inherit container_full (obj : Gtk.paned obj)
-  method event = new GObj.event_ops obj
-  method add w =
-    if List.length (Container.children obj) = 2 then
-      raise(Error "Gpack.paned#add: already full");
-    Container.add obj (as_widget w)
-  method add1 w =
-    try ignore(Paned.child1 obj); raise(Error "GPack.paned#add1: already full")
-    with _ -> Paned.add1 obj (as_widget w)
-  method add2 w =
-    try ignore(Paned.child2 obj); raise(Error "GPack.paned#add2: already full")
-    with _ -> Paned.add2 obj (as_widget w)
-  method set_handle_size = Paned.set_handle_size obj
-  method set_gutter_size = Paned.set_gutter_size obj
-  method child1 = new widget (Paned.child1 obj)
-  method child2 = new widget (Paned.child2 obj)
-  method handle_size = Paned.handle_size obj
-  method gutter_size = Paned.gutter_size obj
-end
-
-let paned dir ?handle_size ?gutter_size
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Paned.create dir in
-  Paned.set w ?handle_size ?gutter_size;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new paned w) ~packing ~show
-
-class notebook_signals obj = object
-  inherit GContainer.container_signals obj
-  method switch_page =
-    GtkSignal.connect obj ~sgn:Notebook.Signals.switch_page ~after
-end
-
-class notebook obj = object (self)
-  inherit GContainer.container obj
-  method event = new GObj.event_ops obj
-  method connect = new notebook_signals obj
-  method insert_page ?tab_label ?menu_label ~pos child =
-      Notebook.insert_page obj (as_widget child) ~pos
-       ~tab_label:(Gpointer.may_box tab_label ~f:as_widget)
-       ~menu_label:(Gpointer.may_box menu_label ~f:as_widget)
-  method append_page = self#insert_page ~pos:(-1)
-  method prepend_page = self#insert_page ~pos:0
-  method remove_page = Notebook.remove_page obj
-  method current_page = Notebook.get_current_page obj
-  method goto_page = Notebook.set_page obj
-  method previous_page () = Notebook.prev_page obj
-  method next_page () = Notebook.next_page obj
-  method set_tab_pos = Notebook.set_tab_pos obj
-  method set_show_tabs = Notebook.set_show_tabs obj
-  method set_homogeneous_tabs = Notebook.set_homogeneous_tabs obj
-  method set_show_border = Notebook.set_show_border obj
-  method set_scrollable = Notebook.set_scrollable obj
-  method set_tab_border = Notebook.set_tab_border obj
-  method set_popup = Notebook.set_popup obj
-  method page_num w = Notebook.page_num obj (as_widget w)
-  method get_nth_page n = new widget (Notebook.get_nth_page obj n)
-  method get_tab_label w =
-    new widget (Notebook.get_tab_label obj (as_widget w))
-  method get_menu_label w =
-    new widget (Notebook.get_tab_label obj (as_widget w))
-  method set_page ?tab_label ?menu_label page =
-    let child = as_widget page in
-    may tab_label
-      ~f:(fun lbl -> Notebook.set_tab_label obj child (as_widget lbl));
-    may menu_label
-      ~f:(fun lbl -> Notebook.set_menu_label obj child (as_widget lbl))
-end
-
-let notebook ?tab_pos ?tab_border ?show_tabs ?homogeneous_tabs
-    ?show_border ?scrollable ?popup
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Notebook.create () in
-  Notebook.set w ?tab_pos ?tab_border ?show_tabs
-    ?homogeneous_tabs ?show_border ?scrollable ?popup;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new notebook w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gPack.mli
deleted file mode 100644 (file)
index 994c8b8..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-open GContainer
-
-class box_skel :
-  'a obj ->
-  object
-    inherit container
-    constraint 'a = [>`box|`container|`widget]
-    val obj : 'a obj
-    method pack :
-      ?from:Tags.pack_type ->
-      ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit
-    method reorder_child : widget -> pos:int -> unit
-    method set_child_packing :
-      ?from:Tags.pack_type ->
-      ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit
-    method set_homogeneous : bool -> unit
-    method set_spacing : int -> unit
-  end
-class box :
-  'a obj ->
-  object
-    inherit box_skel
-    constraint 'a = [>`box|`container|`widget]
-    val obj : 'a obj
-    method connect : GContainer.container_signals
-  end
-
-val box :
-  Tags.orientation ->
-  ?homogeneous:bool ->
-  ?spacing:int ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> box
-val vbox :
-  ?homogeneous:bool ->
-  ?spacing:int ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> box
-val hbox :
-  ?homogeneous:bool ->
-  ?spacing:int ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> box
-
-class button_box :
-  Gtk.button_box obj ->
-  object
-    inherit container_full
-    val obj : Gtk.button_box obj
-    method pack :
-      ?from:Tags.pack_type ->
-      ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit
-    method reorder_child : widget -> pos:int -> unit
-    method set_child_ipadding : ?x:int -> ?y:int -> unit -> unit
-    method set_child_packing :
-      ?from:Tags.pack_type ->
-      ?expand:bool -> ?fill:bool -> ?padding:int -> widget -> unit
-    method set_child_size : ?width:int -> ?height:int -> unit -> unit
-    method set_homogeneous : bool -> unit
-    method set_layout : GtkPack.BBox.bbox_style -> unit
-    method set_spacing : int -> unit
-  end
-val button_box :
-  Tags.orientation ->
-  ?spacing:int ->
-  ?child_width:int ->
-  ?child_height:int ->
-  ?child_ipadx:int ->
-  ?child_ipady:int ->
-  ?layout:GtkPack.BBox.bbox_style ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> button_box
-
-class table :
-  Gtk.table obj ->
-  object
-    inherit container_full
-    val obj : Gtk.table obj
-    method attach :
-      left:int ->
-      top:int ->
-      ?right:int ->
-      ?bottom:int ->
-      ?expand:Tags.expand_type ->
-      ?fill:Tags.expand_type ->
-      ?shrink:Tags.expand_type ->
-      ?xpadding:int -> ?ypadding:int -> widget -> unit
-    method set_col_spacing : int -> int -> unit
-    method set_col_spacings : int -> unit
-    method set_homogeneous : bool -> unit
-    method set_row_spacing : int -> int -> unit
-    method set_row_spacings : int -> unit
-  end
-val table :
-  rows:int ->
-  columns:int ->
-  ?homogeneous:bool ->
-  ?row_spacings:int ->
-  ?col_spacings:int ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> table
-
-class fixed :
-  Gtk.fixed obj ->
-  object
-    inherit container_full
-    val obj : Gtk.fixed obj
-    method event : event_ops
-    method move : widget -> x:int -> y:int -> unit
-    method put : widget -> x:int -> y:int -> unit
-  end
-val fixed :
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> fixed
-
-class layout :
-  Gtk.layout obj ->
-  object
-    inherit container_full
-    val obj : Gtk.layout obj
-    method event : event_ops
-    method freeze : unit -> unit
-    method hadjustment : GData.adjustment
-    method height : int
-    method move : widget -> x:int -> y:int -> unit
-    method put : widget -> x:int -> y:int -> unit
-    method set_hadjustment : GData.adjustment -> unit
-    method set_height : int -> unit
-    method set_vadjustment : GData.adjustment -> unit
-    method set_width : int -> unit
-    method thaw : unit -> unit
-    method vadjustment : GData.adjustment
-    method width : int
-  end
-val layout :
-  ?hadjustment:GData.adjustment ->
-  ?vadjustment:GData.adjustment ->
-  ?layout_width:int ->
-  ?layout_height:int ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> layout
-
-class notebook_signals : 'a obj ->
-  object
-    inherit container_signals
-    constraint 'a = [>`notebook|`container|`widget]
-    val obj : 'a obj
-    method switch_page : callback:(int -> unit) -> GtkSignal.id
-  end
-
-class notebook : ([> `widget | `container | `notebook] as 'a) obj ->
-  object
-    inherit container
-    val obj : 'a obj
-    method event : event_ops
-    method append_page :
-      ?tab_label:widget -> ?menu_label:widget -> widget -> unit
-    method connect : notebook_signals
-    method current_page : int
-    method get_menu_label : widget -> widget
-    method get_nth_page : int -> widget
-    method get_tab_label : widget -> widget
-    method goto_page : int -> unit
-    method insert_page :
-      ?tab_label:widget -> ?menu_label:widget -> pos:int -> widget -> unit
-    method next_page : unit -> unit
-    method page_num : widget -> int
-    method prepend_page :
-      ?tab_label:widget -> ?menu_label:widget -> widget -> unit
-    method previous_page : unit -> unit
-    method remove_page : int -> unit
-    method set_homogeneous_tabs : bool -> unit
-    method set_page :
-      ?tab_label:widget -> ?menu_label:widget -> widget -> unit
-    method set_popup : bool -> unit
-    method set_scrollable : bool -> unit
-    method set_show_border : bool -> unit
-    method set_show_tabs : bool -> unit
-    method set_tab_border : int -> unit
-    method set_tab_pos : Tags.position -> unit
-  end
-val notebook :
-  ?tab_pos:Tags.position ->
-  ?tab_border:int ->
-  ?show_tabs:bool ->
-  ?homogeneous_tabs:bool ->
-  ?show_border:bool ->
-  ?scrollable:bool ->
-  ?popup:bool ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> notebook
-
-class packer :
-  Gtk.packer obj ->
-  object
-    inherit container_full
-    val obj : Gtk.packer obj
-    method pack :
-      ?side:Tags.side_type ->
-      ?anchor:Tags.anchor_type ->
-      ?expand:bool ->
-      ?fill:Tags.expand_type ->
-      ?border_width:int ->
-      ?pad_x:int ->
-      ?pad_y:int -> ?i_pad_x:int -> ?i_pad_y:int -> widget -> unit
-    method reorder_child : widget -> pos:int -> unit
-    method set_child_packing :
-      ?side:Tags.side_type ->
-      ?anchor:Tags.anchor_type ->
-      ?expand:bool ->
-      ?fill:Tags.expand_type ->
-      ?border_width:int ->
-      ?pad_x:int ->
-      ?pad_y:int -> ?i_pad_x:int -> ?i_pad_y:int -> widget -> unit
-    method set_defaults :
-      ?border_width:int ->
-      ?pad_x:int ->
-      ?pad_y:int -> ?i_pad_x:int -> ?i_pad_y:int -> unit -> unit
-    method set_spacing : int -> unit
-  end
-val packer :
-  ?spacing:int ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> packer
-
-class paned :
-  Gtk.paned obj ->
-  object
-    inherit container_full
-    val obj : Gtk.paned obj
-    method add1 : widget -> unit
-    method add2 : widget -> unit
-    method event : event_ops
-    method child1 : widget
-    method child2 : widget
-    method gutter_size : int
-    method handle_size : int
-    method set_gutter_size : int -> unit
-    method set_handle_size : int -> unit
-  end
-val paned :
-  Tags.orientation ->
-  ?handle_size:int ->
-  ?gutter_size:int ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> paned
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.ml
deleted file mode 100644 (file)
index 7df53ce..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkRange
-open GObj
-
-class progress obj = object
-  inherit widget_full obj
-  method set_adjustment adj =
-    Progress.set_adjustment obj (GData.as_adjustment adj)
-  method set_show_text = Progress.set_show_text obj
-  method set_format_string = Progress.set_format_string obj
-  method set_text_alignment = Progress.set_text_alignment obj
-  method set_activity_mode = Progress.set_activity_mode obj
-  method set_value = Progress.set_value obj
-  method set_percentage = Progress.set_percentage obj
-  method configure = Progress.configure obj
-  method value = Progress.get_value obj
-  method percentage = Progress.get_percentage obj
-  method current_text = Progress.get_current_text obj
-  method adjustment = new GData.adjustment (Progress.get_adjustment obj)
-end
-
-class progress_bar obj = object
-  inherit progress (obj : Gtk.progress_bar obj)
-  method event = new GObj.event_ops obj
-  method set_bar_style = ProgressBar.set_bar_style obj
-  method set_discrete_blocks = ProgressBar.set_discrete_blocks obj
-  method set_activity_step = ProgressBar.set_activity_step obj
-  method set_activity_blocks = ProgressBar.set_activity_blocks obj
-  method set_orientation = ProgressBar.set_orientation obj
-end
-
-let progress_bar ?adjustment ?bar_style ?discrete_blocks
-    ?activity_step ?activity_blocks ?value ?percentage ?activity_mode
-    ?show_text ?format_string ?text_xalign ?text_yalign
-    ?packing ?show () =
-  let w =
-    match adjustment with None -> ProgressBar.create ()
-    | Some adj ->
-       ProgressBar.create_with_adjustment (GData.as_adjustment adj)
-  in
-  ProgressBar.set w ?bar_style ?discrete_blocks
-    ?activity_step ?activity_blocks;
-  Progress.set w ?value ?percentage ?activity_mode
-    ?show_text ?format_string ?text_xalign ?text_yalign;
-  pack_return (new progress_bar w) ~packing ~show
-
-class range obj = object
-  inherit widget_full obj
-  method adjustment = new GData.adjustment (Range.get_adjustment obj)
-  method set_adjustment adj =
-    Range.set_adjustment obj (GData.as_adjustment adj)
-  method set_update_policy = Range.set_update_policy obj
-end
-
-class scale obj = object
-  inherit range (obj : Gtk.scale obj)
-  method set_digits = Scale.set_digits obj
-  method set_draw_value = Scale.set_draw_value obj
-  method set_value_pos = Scale.set_value_pos obj
-end
-
-let scale dir ?adjustment ?digits ?draw_value ?value_pos
-    ?packing ?show () =
-  let w =
-    Scale.create dir ?adjustment:(may_map ~f:GData.as_adjustment adjustment)
-  in
-  let () = Scale.set w ?digits ?draw_value ?value_pos in
-  pack_return (new scale w) ~packing ~show
-
-class scrollbar obj = object
-  inherit range (obj : Gtk.scrollbar obj)
-  method event = new GObj.event_ops obj
-end
-
-let scrollbar dir ?adjustment ?update_policy ?packing ?show () =
-  let w = Scrollbar.create dir
-      ?adjustment:(may_map ~f:GData.as_adjustment adjustment) in
-  let () = may update_policy ~f:(Range.set_update_policy w) in
-  pack_return (new scrollbar w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gRange.mli
deleted file mode 100644 (file)
index ac9b38c..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-
-class progress : 'a obj ->
-  object
-    inherit widget_full
-    constraint 'a = [>`progress|`widget]
-    val obj : 'a obj
-    method adjustment : GData.adjustment
-    method configure : current:float -> min:float -> max:float -> unit
-    method current_text : string
-    method percentage : float
-    method set_activity_mode : bool -> unit
-    method set_adjustment : GData.adjustment -> unit
-    method set_format_string : string -> unit
-    method set_percentage : float -> unit
-    method set_show_text : bool -> unit
-    method set_text_alignment : ?x:float -> ?y:float -> unit -> unit
-    method set_value : float -> unit
-    method value : float
-  end
-
-class progress_bar : Gtk.progress_bar obj ->
-  object
-    inherit progress
-    val obj : Gtk.progress_bar obj
-    method event : event_ops
-    method set_activity_blocks : int -> unit
-    method set_activity_step : int -> unit
-    method set_bar_style : [`CONTINUOUS|`DISCRETE] -> unit
-    method set_discrete_blocks : int -> unit
-    method set_orientation : Tags.progress_bar_orientation -> unit
-  end
-val progress_bar :
-  ?adjustment:GData.adjustment ->
-  ?bar_style:[`CONTINUOUS|`DISCRETE] ->
-  ?discrete_blocks:int ->
-  ?activity_step:int ->
-  ?activity_blocks:int ->
-  ?value:float ->
-  ?percentage:float ->
-  ?activity_mode:bool ->
-  ?show_text:bool ->
-  ?format_string:string ->
-  ?text_xalign:float ->
-  ?text_yalign:float ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> progress_bar
-
-class range : 'a obj ->
-  object
-    inherit widget_full
-    constraint 'a = [>`range|`widget]
-    val obj : 'a obj
-    method adjustment : GData.adjustment
-    method set_adjustment : GData.adjustment -> unit
-    method set_update_policy : Tags.update_type -> unit
-  end
-
-class scale : Gtk.scale obj ->
-  object
-    inherit range
-    val obj : Gtk.scale obj
-    method set_digits : int -> unit
-    method set_draw_value : bool -> unit
-    method set_value_pos : Tags.position -> unit
-  end
-val scale :
-  Tags.orientation ->
-  ?adjustment:GData.adjustment ->
-  ?digits:int ->
-  ?draw_value:bool ->
-  ?value_pos:Tags.position ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> scale
-
-class scrollbar : Gtk.scrollbar obj ->
-  object
-    inherit range
-    val obj : Gtk.scrollbar obj
-    method event : event_ops
-  end
-val scrollbar :
-  Tags.orientation ->
-  ?adjustment:GData.adjustment ->
-  ?update_policy:Tags.update_type ->
-  ?packing:(widget -> unit) -> ?show:bool -> unit -> scrollbar
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.ml
deleted file mode 100644 (file)
index 80dab7b..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkTree
-open GObj
-open GContainer
-
-class tree_item_signals obj = object
-  inherit item_signals obj
-  method expand = GtkSignal.connect obj ~sgn:TreeItem.Signals.expand ~after
-  method collapse = GtkSignal.connect obj ~sgn:TreeItem.Signals.collapse ~after
-end
-
-class tree_item obj = object
-  inherit container obj
-  method event = new GObj.event_ops obj
-  method as_item : Gtk.tree_item obj = obj
-  method connect = new tree_item_signals obj
-  method set_subtree (w : tree) = TreeItem.set_subtree obj w#as_tree
-  method remove_subtree () = TreeItem.remove_subtree obj
-  method expand () = TreeItem.expand obj
-  method collapse () = TreeItem.collapse obj
-  method subtree =
-    try Some(new tree (TreeItem.subtree obj)) with Gpointer.Null -> None
-end
-
-and tree_signals obj = object
-  inherit container_signals obj
-  method selection_changed =
-    GtkSignal.connect obj ~sgn:Tree.Signals.selection_changed ~after
-  method select_child ~callback =
-    GtkSignal.connect obj ~sgn:Tree.Signals.select_child ~after
-      ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) 
-  method unselect_child ~callback =
-    GtkSignal.connect obj ~sgn:Tree.Signals.unselect_child ~after
-      ~callback:(fun w -> callback (new tree_item (TreeItem.cast w))) 
-end
-
-and tree obj = object (self)
-  inherit [tree_item] item_container obj
-  method event = new GObj.event_ops obj
-  method as_tree = Tree.coerce obj
-  method insert w ~pos = Tree.insert obj w#as_item ~pos
-  method connect = new tree_signals obj
-  method clear_items = Tree.clear_items obj
-  method select_item = Tree.select_item obj
-  method unselect_item = Tree.unselect_item obj
-  method child_position (w : tree_item) = Tree.child_position obj w#as_item
-  method remove_items items =
-    Tree.remove_items obj
-      (List.map ~f:(fun (t : tree_item) -> t#as_item) items)
-  method set_selection_mode = Tree.set_selection_mode obj
-  method set_view_mode = Tree.set_view_mode obj
-  method set_view_lines = Tree.set_view_lines obj
-  method selection =
-    List.map ~f:(fun w -> self#wrap (Widget.coerce w)) (Tree.selection obj)
-  method private wrap w =
-    new tree_item (TreeItem.cast w)
-end
-
-let tree_item ?label ?border_width ?width ?height ?packing ?show () =
-  let w = TreeItem.create ?label () in
-  Container.set w ?border_width ?width ?height;
-  let self = new tree_item w in
-  may packing ~f:(fun f -> (f self : unit));
-  if show <> Some false then self#misc#show ();
-  self
-
-let tree ?selection_mode ?view_mode ?view_lines
-    ?border_width ?width ?height ?packing ?show () =
-  let w = Tree.create () in
-  Tree.set w ?selection_mode ?view_mode ?view_lines;
-  Container.set w ?border_width ?width ?height;
-  pack_return (new tree w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gTree.mli
deleted file mode 100644 (file)
index d48e09b..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-open GContainer
-
-class tree_item_signals : 'a obj ->
-  object
-    inherit item_signals
-    constraint 'a = [>`treeitem|`container|`item|`widget]
-    val obj : 'a obj
-    method collapse : callback:(unit -> unit) -> GtkSignal.id
-    method expand : callback:(unit -> unit) -> GtkSignal.id
-  end
-
-class tree_item : Gtk.tree_item obj ->
-  object
-    inherit GContainer.container
-    val obj : Gtk.tree_item obj
-    method event : event_ops
-    method as_item : Gtk.tree_item obj
-    method collapse : unit -> unit
-    method connect : tree_item_signals
-    method expand : unit -> unit
-    method remove_subtree : unit -> unit
-    method set_subtree : tree -> unit
-    method subtree : tree option
-  end
-
-and tree_signals : Gtk.tree obj ->
-  object
-    inherit container_signals
-    val obj : Gtk.tree obj
-    method select_child : callback:(tree_item -> unit) -> GtkSignal.id
-    method selection_changed : callback:(unit -> unit) -> GtkSignal.id
-    method unselect_child : callback:(tree_item -> unit) -> GtkSignal.id
-  end
-
-and tree : Gtk.tree obj ->
-  object
-    inherit [tree_item] item_container
-    val obj : Gtk.tree obj
-    method event : event_ops
-    method as_tree : Gtk.tree obj
-    method child_position : tree_item -> int
-    method clear_items : start:int -> stop:int -> unit
-    method connect : tree_signals
-    method insert : tree_item -> pos:int -> unit
-    method remove_items : tree_item list -> unit
-    method select_item : pos:int -> unit
-    method selection : tree_item list
-    method set_selection_mode : Tags.selection_mode -> unit
-    method set_view_lines : bool -> unit
-    method set_view_mode : [`LINE|`ITEM] -> unit
-    method unselect_item : pos:int -> unit
-    method private wrap : Gtk.widget obj -> tree_item
-  end
-
-val tree_item :
-  ?label:string ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int ->
-  ?packing:(tree_item -> unit) -> ?show:bool -> unit -> tree_item
-
-val tree :
-  ?selection_mode:Tags.selection_mode ->
-  ?view_mode:[`LINE|`ITEM] ->
-  ?view_lines:bool ->
-  ?border_width:int ->
-  ?width:int ->
-  ?height:int -> ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> tree
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.ml
deleted file mode 100644 (file)
index 260c2ac..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-(* $Id$ *)
-
-open GObj
-
-class ['a] memo () = object
-  constraint 'a = #widget
-  val tbl = Hashtbl.create 7
-  method add (obj : 'a) =
-    Hashtbl.add tbl ~key:obj#get_id ~data:obj
-  method find (obj : widget) = Hashtbl.find tbl obj#get_id
-  method remove (obj : widget) = Hashtbl.remove tbl obj#get_id
-end
-
-let signal_id = ref 0
-
-let next_callback_id () : GtkSignal.id =
-  decr signal_id; Obj.magic (!signal_id : int)
-
-class ['a] signal () = object (self)
-  val mutable callbacks : (GtkSignal.id * ('a -> unit)) list = []
-  method callbacks = callbacks
-  method connect ~after ~callback =
-    let id = next_callback_id () in
-    callbacks <-
-      if after then callbacks @ [id,callback] else (id,callback)::callbacks;
-    id
-  method call arg =
-    List.exists callbacks ~f:
-      begin fun (_,f) ->
-        let old = GtkSignal.push_callback () in
-        try f arg; GtkSignal.pop_callback old
-        with exn -> GtkSignal.pop_callback old; raise exn
-      end;
-    ()
-  method disconnect key =
-    List.mem_assoc key callbacks &&
-    (callbacks <- List.remove_assoc key callbacks; true)
-end
-
-class virtual ml_signals disconnectors =
-  object (self)
-    val after = false
-    method after = {< after = true >}
-    val mutable disconnectors : (GtkSignal.id -> bool) list = disconnectors
-    method disconnect key =
-      ignore (List.exists disconnectors ~f:(fun f -> f key))
-  end
-
-class virtual add_ml_signals obj disconnectors =
-  object (self)
-    val mutable disconnectors : (GtkSignal.id -> bool) list = disconnectors
-    method disconnect key =
-      if List.exists disconnectors ~f:(fun f -> f key) then ()
-      else GtkSignal.disconnect obj key
-  end
-
-class ['a] variable_signals ~(set : 'a signal) ~(changed : 'a signal) =
-  object
-    inherit ml_signals [changed#disconnect; set#disconnect]
-    method changed = changed#connect ~after
-    method set = set#connect ~after
-  end
-
-class ['a] variable x =
-  object (self)
-    val changed = new signal ()
-    val set = new signal ()
-    method connect = new variable_signals ~set ~changed
-    val mutable x : 'a = x
-    method get = x
-    method set = set#call
-    method private equal : 'a -> 'a -> bool = (=)
-    method private real_set y =
-      let x0 = x in x <- y;
-      if changed#callbacks <> [] && not (self#equal x x0)
-      then changed#call y
-    initializer
-      ignore (set#connect ~after:false ~callback:self#real_set)
-  end
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gUtil.mli
deleted file mode 100644 (file)
index cd88d86..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-(* $Id$ *)
-
-open GObj
-
-(* The memo class provides an easy way to remember the real class of
-   a widget.
-   Insert all widgets of class in one single t memo, and you can then
-   recover their original ML object with #find.
-*)
-
-class ['a] memo : unit ->
-  object
-    constraint 'a = #widget
-    val tbl : (int, 'a) Hashtbl.t
-    method add : 'a -> unit
-    method find : widget -> 'a
-    method remove : widget -> unit
-  end
-
-(* The ML signal mechanism allows one to add GTK-like signals to
-   arbitrary objects.
-*)
-
-val next_callback_id : unit -> GtkSignal.id
-
-class ['a] signal :
-  unit ->
-  object
-    val mutable callbacks : (GtkSignal.id * ('a -> unit)) list
-    method callbacks : (GtkSignal.id * ('a -> unit)) list
-    method call : 'a -> unit
-    method connect : after:bool -> callback:('a -> unit) -> GtkSignal.id
-    method disconnect : GtkSignal.id -> bool
-  end
-(* As with GTK signals, you can use [GtkSignal.stop_emit] inside a
-   callback to prevent other callbacks from being called. *)
-
-class virtual ml_signals : (GtkSignal.id -> bool) list ->
-  object ('a)
-    val after : bool
-    method after : 'a
-    method disconnect : GtkSignal.id -> unit
-    val mutable disconnectors : (GtkSignal.id -> bool) list
-  end
-class virtual add_ml_signals :
-  'a Gtk.obj -> (GtkSignal.id -> bool) list ->
-  object
-    method disconnect : GtkSignal.id -> unit
-    val mutable disconnectors : (GtkSignal.id -> bool) list
-  end
-
-(* To add ML signals to a LablGTK object:
-
-   class mywidget_signals obj ~mysignal1 ~mysignal2 = object
-     inherit somewidget_signals obj
-     inherit add_ml_signals obj [mysignal1#disconnect; mysignal2#disconnect]
-     method mysignal1 = mysignal1#connect ~after
-     method mysignal2 = mysignal2#connect ~after
-   end
-
-   class mywidget obj = object (self)
-     inherit somewidget obj
-     val mysignal1 = new signal obj
-     val mysignal2 = new signal obj
-     method connect = new mywidget_signals obj ~mysignal1 ~mysignal2
-     method call1 = mysignal1#call
-     method call2 = mysignal2#call
-   end
-
-   You can also add ML signals to an arbitrary object; just inherit
-   from [ml_signals] in place of [widget_signals]+[add_ml_signals].
-
-   class mysignals ~mysignal1 ~mysignal2 = object
-     inherit ml_signals [mysignal1#disconnect; mysignal2#disconnect]
-     method mysignal1 = mysignal1#connect ~after
-     method mysignal2 = mysignal2#connect ~after
-   end
-*)
-
-(* The variable class provides an easy way to propagate state modifications.
-   A new variable is created by [new variable init]. The [#set] method just
-   calls the [set] signal, which by default only calls [real_set].
-   [real_set] sets the variable and calls [changed] when needed.
-   Deep equality is used to compare values, but check is only done if
-   there are callbacks for [changed].
-*)
-
-class ['a] variable_signals :
-  set:'a signal -> changed:'a signal ->
-  object ('b)
-    val after : bool
-    method after : 'b
-    method set : callback:('a -> unit) -> GtkSignal.id
-    method changed : callback:('a -> unit) -> GtkSignal.id
-    method disconnect : GtkSignal.id -> unit
-    val mutable disconnectors : (GtkSignal.id -> bool) list
-  end
-
-class ['a] variable : 'a ->
-  object
-    val set : 'a signal
-    val changed : 'a signal
-    val mutable x : 'a
-    method connect : 'a variable_signals
-    method get : 'a
-    method set : 'a -> unit
-    method private equal : 'a -> 'a -> bool
-    method private real_set : 'a -> unit
-  end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.ml
deleted file mode 100644 (file)
index 9ee3136..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-open GtkWindow
-open GtkMisc
-open GObj
-open GContainer
-
-class ['a] window_skel obj = object
-  constraint 'a = _ #window_skel
-  inherit container obj
-  method event = new GObj.event_ops obj
-  method as_window = Window.coerce obj
-  method activate_focus () = Window.activate_focus obj
-  method activate_default () = Window.activate_default obj
-  method add_accel_group = Window.add_accel_group obj
-  method set_modal = Window.set_modal obj
-  method set_default_size = Window.set_default_size obj
-  method set_position = Window.set_position obj
-  method set_resize_mode = Container.set_resize_mode obj
-  method set_transient_for (w : 'a) =
-    Window.set_transient_for obj w#as_window
-  method set_title = Window.set_title obj
-  method set_wm_name name = Window.set_wmclass obj ~name
-  method set_wm_class cls = Window.set_wmclass obj ~clas:cls
-  method set_allow_shrink allow_shrink = Window.set_policy obj ~allow_shrink
-  method set_allow_grow allow_grow = Window.set_policy obj ~allow_grow
-  method set_auto_shrink auto_shrink = Window.set_policy obj ~auto_shrink
-  method show () = Widget.show obj
-end
-
-class window obj = object
-  inherit [window] window_skel (Window.coerce obj)
-  method connect = new container_signals obj
-end
-
-let window ?kind:(t=`TOPLEVEL) ?title ?wm_name ?wm_class ?position
-    ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y
-    ?border_width ?width ?height ?(show=false) () =
-  let w = Window.create t in
-  Window.set w ?title ?wm_name ?wm_class ?position
-    ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y;
-  Container.set w ?border_width ?width ?height;
-  if show then Widget.show w;
-  new window w
-
-class dialog obj = object
-  inherit [window] window_skel (Dialog.coerce obj)
-  method connect = new container_signals obj
-  method action_area = new GPack.box (Dialog.action_area obj)
-  method vbox = new GPack.box (Dialog.vbox obj)
-end
-
-let dialog ?title ?wm_name ?wm_class ?position ?allow_shrink
-    ?allow_grow ?auto_shrink ?modal ?x ?y ?border_width ?width ?height
-    ?(show=false) () =
-  let w = Dialog.create () in
-  Window.set w ?title ?wm_name ?wm_class ?position
-    ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y;
-  Container.set w ?border_width ?width ?height;
-  if show then Widget.show w;
-  new dialog w
-
-class color_selection_dialog obj = object
-  inherit [window] window_skel (obj : Gtk.color_selection_dialog obj)
-  method connect = new container_signals obj
-  method ok_button =
-    new GButton.button (ColorSelection.ok_button obj)
-  method cancel_button =
-    new GButton.button (ColorSelection.cancel_button obj)
-  method help_button =
-    new GButton.button (ColorSelection.help_button obj)
-  method colorsel =
-    new GMisc.color_selection (ColorSelection.colorsel obj)
-end
-
-let color_selection_dialog ?(title="Pick a color")
-    ?wm_name ?wm_class ?position
-    ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y
-    ?border_width ?width ?height ?(show=false) () =
-  let w = ColorSelection.create_dialog title in
-  Window.set w ?wm_name ?wm_class ?position
-    ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y;
-  Container.set w ?border_width ?width ?height;
-  if show then Widget.show w;
-  new color_selection_dialog w
-
-class file_selection obj = object
-  inherit [window] window_skel (obj : Gtk.file_selection obj)
-  method connect = new container_signals obj
-  method set_filename = FileSelection.set_filename obj
-  method get_filename = FileSelection.get_filename obj
-  method set_fileop_buttons = FileSelection.set_fileop_buttons obj
-  method ok_button = new GButton.button (FileSelection.get_ok_button obj)
-  method cancel_button =
-    new GButton.button (FileSelection.get_cancel_button obj)
-  method help_button = new GButton.button (FileSelection.get_help_button obj)
-end
-
-let file_selection ?(title="Choose a file") ?filename
-    ?(fileop_buttons=false)
-    ?wm_name ?wm_class ?position
-    ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y
-    ?border_width ?width ?height ?(show=false) () =
-  let w = FileSelection.create title in
-  FileSelection.set w ?filename ~fileop_buttons;
-  Window.set w ?wm_name ?wm_class ?position
-    ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y;
-  Container.set w ?border_width ?width ?height;
-  if show then Widget.show w;
-  new file_selection w
-
-class font_selection_dialog obj = object
-  inherit [window] window_skel (obj : Gtk.font_selection_dialog obj)
-  method connect = new container_signals obj
-(*
-  method font = FontSelectionDialog.get_font obj
-  method font_name = FontSelectionDialog.get_font_name obj
-  method set_font_name = FontSelectionDialog.set_font_name obj
-  method preview_text = FontSelectionDialog.get_preview_text obj
-  method set_preview_text = FontSelectionDialog.set_preview_text obj
-  method set_filter = FontSelectionDialog.set_filter obj
-*)
-  method selection =
-    new GMisc.font_selection (FontSelectionDialog.font_selection obj)
-  method ok_button =  new GButton.button (FontSelectionDialog.ok_button obj)
-  method apply_button =
-    new GButton.button (FontSelectionDialog.apply_button obj)
-  method cancel_button =
-    new GButton.button (FontSelectionDialog.cancel_button obj)
-end
-
-let font_selection_dialog ?title ?wm_name ?wm_class ?position
-    ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y
-    ?border_width ?width ?height ?(show=false) () =
-  let w = FontSelectionDialog.create ?title () in
-  Window.set w ?wm_name ?wm_class ?position
-    ?allow_shrink ?allow_grow ?auto_shrink ?modal ?x ?y;
-  Container.set w ?border_width ?width ?height;
-  if show then Widget.show w;
-  new font_selection_dialog w
-
-class plug (obj : Gtk.plug obj) = window obj
-
-let plug ~window:xid ?border_width ?width ?height ?(show=false) () =
-  let w = Plug.create xid in
-  Container.set w ?border_width ?width ?height;
-  if show then Widget.show w;
-  new plug w
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gWindow.mli
deleted file mode 100644 (file)
index 4c89a76..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-
-class ['a] window_skel : 'b obj ->
-  object
-    inherit GContainer.container
-    constraint 'a = 'a #window_skel
-    constraint 'b = [>`widget|`container|`window]
-    val obj : 'b obj
-    method activate_default : unit -> unit
-    method activate_focus : unit -> unit
-    method add_accel_group : accel_group -> unit
-    method event : event_ops
-    method as_window : Gtk.window obj
-    method set_allow_grow : bool -> unit
-    method set_allow_shrink : bool -> unit
-    method set_auto_shrink : bool -> unit
-    method set_default_size : width:int -> height:int -> unit
-    method set_modal : bool -> unit
-    method set_position : Tags.window_position -> unit
-    method set_resize_mode : Tags.resize_mode -> unit
-    method set_title : string -> unit
-    method set_transient_for : 'a -> unit
-    method set_wm_class : string -> unit
-    method set_wm_name : string -> unit
-    method show : unit -> unit
-  end
-
-class window : [>`window] obj ->
-  object
-    inherit [window] window_skel
-    val obj : Gtk.window obj
-    method connect : GContainer.container_signals
-  end
-val window :
-  ?kind:Tags.window_type ->
-  ?title:string ->
-  ?wm_name:string ->
-  ?wm_class:string ->
-  ?position:Tags.window_position ->
-  ?allow_shrink:bool ->
-  ?allow_grow:bool ->
-  ?auto_shrink:bool ->
-  ?modal:bool ->
-  ?x:int ->
-  ?y:int ->
-  ?border_width:int ->
-  ?width:int -> ?height:int -> ?show:bool -> unit -> window
-
-class dialog : [>`dialog] obj ->
-  object
-    inherit [window] window_skel
-    val obj : Gtk.dialog obj
-    method action_area : GPack.box
-    method connect : GContainer.container_signals
-    method event : event_ops
-    method vbox : GPack.box
-  end
-val dialog :
-  ?title:string ->
-  ?wm_name:string ->
-  ?wm_class:string ->
-  ?position:Tags.window_position ->
-  ?allow_shrink:bool ->
-  ?allow_grow:bool ->
-  ?auto_shrink:bool ->
-  ?modal:bool ->
-  ?x:int ->
-  ?y:int ->
-  ?border_width:int ->
-  ?width:int -> ?height:int -> ?show:bool -> unit -> dialog
-
-class color_selection_dialog : Gtk.color_selection_dialog obj ->
-  object
-    inherit [window] window_skel
-    val obj : Gtk.color_selection_dialog obj
-    method cancel_button : GButton.button
-    method colorsel : GMisc.color_selection
-    method connect : GContainer.container_signals
-    method help_button : GButton.button
-    method ok_button : GButton.button
-  end
-val color_selection_dialog :
-  ?title:string ->
-  ?wm_name:string ->
-  ?wm_class:string ->
-  ?position:Tags.window_position ->
-  ?allow_shrink:bool ->
-  ?allow_grow:bool ->
-  ?auto_shrink:bool ->
-  ?modal:bool ->
-  ?x:int ->
-  ?y:int ->
-  ?border_width:int ->
-  ?width:int -> ?height:int -> ?show:bool -> unit -> color_selection_dialog
-
-class file_selection : Gtk.file_selection obj ->
-  object
-    inherit [window] window_skel
-    val obj : Gtk.file_selection obj
-    method cancel_button : GButton.button
-    method connect : GContainer.container_signals
-    method get_filename : string
-    method help_button : GButton.button
-    method ok_button : GButton.button
-    method set_filename : string -> unit
-    method set_fileop_buttons : bool -> unit
-  end
-val file_selection :
-  ?title:string ->
-  ?filename:string ->
-  ?fileop_buttons:bool ->
-  ?wm_name:string ->
-  ?wm_class:string ->
-  ?position:Tags.window_position ->
-  ?allow_shrink:bool ->
-  ?allow_grow:bool ->
-  ?auto_shrink:bool ->
-  ?modal:bool ->
-  ?x:int ->
-  ?y:int ->
-  ?border_width:int ->
-  ?width:int -> ?height:int -> ?show:bool -> unit -> file_selection
-
-class font_selection_dialog : Gtk.font_selection_dialog obj ->
-  object
-    inherit [window] window_skel
-    val obj : Gtk.font_selection_dialog obj
-    method apply_button : GButton.button
-    method cancel_button : GButton.button
-    method connect : GContainer.container_signals
-    method selection : GMisc.font_selection
-    method ok_button : GButton.button
-  end
-val font_selection_dialog :
-  ?title:string ->
-  ?wm_name:string ->
-  ?wm_class:string ->
-  ?position:Tags.window_position ->
-  ?allow_shrink:bool ->
-  ?allow_grow:bool ->
-  ?auto_shrink:bool ->
-  ?modal:bool ->
-  ?x:int ->
-  ?y:int ->
-  ?border_width:int ->
-  ?width:int -> ?height:int -> ?show:bool -> unit -> font_selection_dialog
-
-class plug : Gtk.plug obj -> window
-
-val plug :
-  window:Gdk.xid ->
-  ?border_width:int ->
-  ?width:int -> ?height:int -> ?show:bool -> unit -> plug
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gaux.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gaux.ml
deleted file mode 100644 (file)
index a117291..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-(* $Id$ *)
-
-(* Option handling *)
-
-let may ~f x =
-  match x with None -> ()
-  | Some x -> let _ = f x in ()
-
-let may_map ~f x =
-  match x with None -> None
-  | Some x -> Some (f x)
-
-let default x ~opt =
-  match opt with None -> x | Some y -> y
-
-let may_default f x ~opt =
-  match opt with None -> f x | Some y -> y
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.ml
deleted file mode 100644 (file)
index c22c4b5..0000000
+++ /dev/null
@@ -1,535 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-
-type colormap
-type visual
-type region
-type gc
-type 'a drawable
-type window = [`window] drawable
-type pixmap = [`pixmap] drawable
-type bitmap = [`bitmap] drawable
-type font
-type image
-type atom = int
-type keysym = int
-type 'a event
-type drag_context
-type cursor
-type xid = int32
-
-exception Error of string
-let _ = Callback.register_exception "gdkerror" (Error"")
-
-module Tags = struct
-  type event_type =
-    [ `NOTHING|`DELETE|`DESTROY|`EXPOSE|`MOTION_NOTIFY|`BUTTON_PRESS
-     |`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS
-     |`BUTTON_RELEASE|`KEY_PRESS
-     |`KEY_RELEASE|`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE
-     |`CONFIGURE|`MAP|`UNMAP|`PROPERTY_NOTIFY|`SELECTION_CLEAR
-     |`SELECTION_REQUEST|`SELECTION_NOTIFY|`PROXIMITY_IN
-     |`PROXIMITY_OUT|`DRAG_ENTER|`DRAG_LEAVE|`DRAG_MOTION|`DRAG_STATUS
-     |`DROP_START|`DROP_FINISHED|`CLIENT_EVENT|`VISIBILITY_NOTIFY
-     |`NO_EXPOSE ]
-
-  type event_mask =
-    [ `EXPOSURE
-     |`POINTER_MOTION|`POINTER_MOTION_HINT
-     |`BUTTON_MOTION|`BUTTON1_MOTION|`BUTTON2_MOTION|`BUTTON3_MOTION
-     |`BUTTON_PRESS|`BUTTON_RELEASE
-     |`KEY_PRESS|`KEY_RELEASE
-     |`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE
-     |`STRUCTURE|`PROPERTY_CHANGE|`VISIBILITY_NOTIFY
-     |`PROXIMITY_IN|`PROXIMITY_OUT|`SUBSTRUCTURE
-     |`ALL_EVENTS ]
-
-  type extension_events =
-    [ `NONE|`ALL|`CURSOR ]
-
-  type visibility_state =
-    [ `UNOBSCURED|`PARTIAL|`FULLY_OBSCURED ]
-
-  type input_source =
-    [ `MOUSE|`PEN|`ERASER|`CURSOR ]
-
-  type notify_type =
-    [ `ANCESTOR|`VIRTUAL|`INFERIOR|`NONLINEAR|`NONLINEAR_VIRTUAL|`UNKNOWN ] 
-
-  type crossing_mode =
-    [ `NORMAL|`GRAB|`UNGRAB ]
-
-  type modifier =
-    [ `SHIFT|`LOCK|`CONTROL|`MOD1|`MOD2|`MOD3|`MOD4|`MOD5|`BUTTON1
-     |`BUTTON2|`BUTTON3|`BUTTON4|`BUTTON5 ]
-
-  type drag_action =
-    [ `DEFAULT|`COPY|`MOVE|`LINK|`PRIVATE|`ASK ]
-
-end
-open Tags
-
-module Convert = struct
-  external test_modifier : modifier -> int -> bool
-      = "ml_test_GdkModifier_val"
-  let modifier i =
-    List.filter [`SHIFT;`LOCK;`CONTROL;`MOD1;`MOD2;`MOD3;`MOD4;`MOD5;
-                `BUTTON1;`BUTTON2;`BUTTON3;`BUTTON4;`BUTTON5]
-      ~f:(fun m -> test_modifier m i)
-end
-
-module Screen = struct
-  external width : unit -> int = "ml_gdk_screen_width"
-  external height : unit -> int = "ml_gdk_screen_height"
-end
-
-module Visual = struct
-  type visual_type =
-    [ `STATIC_GRAY|`GRAYSCALE|`STATIC_COLOR
-     |`PSEUDO_COLOR|`TRUE_COLOR|`DIRECT_COLOR ]
-
-  external get_best : ?depth:int -> ?kind:visual_type -> unit -> visual
-      = "ml_gdk_visual_get_best"
-  external get_type : visual -> visual_type = "ml_GdkVisual_type"
-  external depth : visual -> int = "ml_GdkVisual_depth"
-  external red_mask : visual -> int = "ml_GdkVisual_red_mask"
-  external red_shift : visual -> int = "ml_GdkVisual_red_shift"
-  external red_prec : visual -> int = "ml_GdkVisual_red_prec"
-  external green_mask : visual -> int = "ml_GdkVisual_green_mask"
-  external green_shift : visual -> int = "ml_GdkVisual_green_shift"
-  external green_prec : visual -> int = "ml_GdkVisual_green_prec"
-  external blue_mask : visual -> int = "ml_GdkVisual_blue_mask"
-  external blue_shift : visual -> int = "ml_GdkVisual_blue_shift"
-  external blue_prec : visual -> int = "ml_GdkVisual_blue_prec"
-end
-
-module Image = struct
-  type image_type =
-    [ `NORMAL|`SHARED|`FASTEST ] 
-
-  external create_bitmap : visual: visual -> data: string -> 
-    width: int -> height: int -> image 
-      = "ml_gdk_image_new_bitmap"
-  external create : kind: image_type -> visual: visual -> 
-    width: int -> height: int -> image
-      = "ml_gdk_image_new"
-  external get :
-      'a drawable -> x: int -> y: int -> width: int -> height: int -> image
-      = "ml_gdk_image_get"
-  external put_pixel : image -> x: int -> y: int -> pixel: int -> unit
-    = "ml_gdk_image_put_pixel"
-  external get_pixel : image -> x: int -> y: int -> int
-    = "ml_gdk_image_get_pixel"
-  external destroy : image -> unit
-    = "ml_gdk_image_destroy"
-end
-
-module Color = struct
-  type t
-
-  external color_white : colormap -> t = "ml_gdk_color_white"
-  external color_black : colormap -> t = "ml_gdk_color_black"
-  external color_parse : string -> t = "ml_gdk_color_parse"
-  external color_alloc : colormap -> t -> bool = "ml_gdk_color_alloc"
-  external color_create : red:int -> green:int -> blue:int -> t
-      = "ml_GdkColor"
-
-  external get_system_colormap : unit -> colormap
-      = "ml_gdk_colormap_get_system"
-  external colormap_new : visual -> privat:bool -> colormap
-      = "ml_gdk_colormap_new"
-  let get_colormap ?(privat=false) vis = colormap_new vis ~privat
-
-  type spec = [ `BLACK | `NAME of string | `RGB of int * int * int | `WHITE]
-  let color_alloc ~colormap color =
-    if not (color_alloc colormap color) then raise (Error"Color.alloc");
-    color
-  let alloc ~colormap color =
-    match color with
-      `WHITE -> color_white colormap
-    | `BLACK -> color_black colormap
-    | `NAME s -> color_alloc ~colormap (color_parse s)
-    | `RGB (red,green,blue) ->
-       color_alloc ~colormap (color_create ~red ~green ~blue)
-
-  external red : t -> int = "ml_GdkColor_red"
-  external blue : t -> int = "ml_GdkColor_blue"
-  external green : t -> int = "ml_GdkColor_green"
-  external pixel : t -> int = "ml_GdkColor_pixel"
-end
-
-module Rectangle = struct
-  type t
-  external create : x:int -> y:int -> width:int -> height:int -> t
-      = "ml_GdkRectangle"
-  external x : t -> int = "ml_GdkRectangle_x"
-  external y : t -> int = "ml_GdkRectangle_y"
-  external width : t -> int = "ml_GdkRectangle_width"
-  external height : t -> int = "ml_GdkRectangle_height"
-end
-
-module Window = struct
-  type background_pixmap = [ `NONE | `PARENT_RELATIVE | `PIXMAP of pixmap]
-  external visual_depth : visual -> int = "ml_gdk_visual_get_depth"
-  external get_visual : window -> visual = "ml_gdk_window_get_visual"
-  external get_parent : window -> window = "ml_gdk_window_get_parent"
-  external get_size : window -> int * int = "ml_gdk_window_get_size"
-  external get_position : window -> int * int =
-    "ml_gdk_window_get_position"
-  external root_parent : unit -> window = "ml_GDK_ROOT_PARENT"
-  external set_back_pixmap : window -> pixmap -> int -> unit = 
-    "ml_gdk_window_set_back_pixmap"
-  external clear : window -> unit = "ml_gdk_window_clear"
-  external get_xwindow : window -> xid = "ml_GDK_WINDOW_XWINDOW"
-
-  let set_back_pixmap w pix = 
-    let null_pixmap = (Obj.magic Gpointer.boxed_null : pixmap) in
-    match pix with
-      `NONE -> set_back_pixmap w null_pixmap 0
-    | `PARENT_RELATIVE -> set_back_pixmap w null_pixmap 1
-    | `PIXMAP(pixmap) -> set_back_pixmap w pixmap 0 
-       (* anything OK, Maybe... *) 
-end
-
-module PointArray = struct
-  type t = { len: int}
-  external create : len:int -> t = "ml_point_array_new"
-  external set : t -> pos:int -> x:int -> y:int -> unit = "ml_point_array_set"
-  let set arr ~pos =
-    if pos < 0 || pos >= arr.len then invalid_arg "PointArray.set";
-    set arr ~pos
-end
-
-module Region = struct
-  type gdkFillRule = [ `EVEN_ODD_RULE|`WINDING_RULE ]
-  type gdkOverlapType = [ `IN|`OUT|`PART ]
-  external create : unit -> region = "ml_gdk_region_new"
-  external destroy : region -> unit = "ml_gdk_region_destroy"
-  external polygon : PointArray.t -> gdkFillRule -> region 
-      = "ml_gdk_region_polygon"
-  let polygon l =
-    let len = List.length l in
-    let arr = PointArray.create ~len in
-    List.fold_left l ~init:0
-      ~f:(fun pos (x,y) -> PointArray.set arr ~pos ~x ~y; pos+1);
-    polygon arr    
-  external intersect : region -> region -> region
-      = "ml_gdk_regions_intersect"
-  external union : region -> region -> region 
-      = "ml_gdk_regions_union"
-  external subtract : region -> region -> region 
-      = "ml_gdk_regions_subtract"
-  external xor : region -> region -> region 
-      = "ml_gdk_regions_xor"
-  external union_with_rect : region -> Rectangle.t -> region
-      = "ml_gdk_region_union_with_rect"
-  external offset : region -> x:int -> y:int -> unit = "ml_gdk_region_offset"
-  external shrink : region -> x:int -> y:int -> unit = "ml_gdk_region_shrink"
-  external empty : region -> bool = "ml_gdk_region_empty"
-  external equal : region -> region -> bool = "ml_gdk_region_equal"
-  external point_in : region -> x:int -> y:int -> bool 
-      = "ml_gdk_region_point_in"
-  external rect_in : region -> Rectangle.t -> gdkOverlapType
-      = "ml_gdk_region_rect_in"
-  external get_clipbox : region -> Rectangle.t -> unit
-      = "ml_gdk_region_get_clipbox"
-end
-      
-
-module GC = struct
-  type gdkFunction = [ `COPY|`INVERT|`XOR ]
-  type gdkFill = [ `SOLID|`TILED|`STIPPLED|`OPAQUE_STIPPLED ]
-  type gdkSubwindowMode = [ `CLIP_BY_CHILDREN|`INCLUDE_INFERIORS ]
-  type gdkLineStyle = [ `SOLID|`ON_OFF_DASH|`DOUBLE_DASH ]
-  type gdkCapStyle = [ `NOT_LAST|`BUTT|`ROUND|`PROJECTING ]
-  type gdkJoinStyle = [ `MITER|`ROUND|`BEVEL ]
-  external create : 'a drawable -> gc = "ml_gdk_gc_new"
-  external set_foreground : gc -> Color.t -> unit = "ml_gdk_gc_set_foreground"
-  external set_background : gc -> Color.t -> unit = "ml_gdk_gc_set_background"
-  external set_font : gc -> font -> unit = "ml_gdk_gc_set_font"
-  external set_function : gc -> gdkFunction -> unit = "ml_gdk_gc_set_function"
-  external set_fill : gc -> gdkFill -> unit = "ml_gdk_gc_set_fill"
-  external set_tile : gc -> pixmap -> unit = "ml_gdk_gc_set_tile"
-  external set_stipple : gc -> pixmap -> unit = "ml_gdk_gc_set_stipple"
-  external set_ts_origin : gc -> x:int -> y:int -> unit
-      = "ml_gdk_gc_set_ts_origin"
-  external set_clip_origin : gc -> x:int -> y:int -> unit
-      = "ml_gdk_gc_set_clip_origin"
-  external set_clip_mask : gc -> bitmap -> unit = "ml_gdk_gc_set_clip_mask"
-  external set_clip_rectangle : gc -> Rectangle.t -> unit
-      = "ml_gdk_gc_set_clip_rectangle"
-  external set_clip_region : gc -> region -> unit = "ml_gdk_gc_set_clip_region"
-  external set_subwindow : gc -> gdkSubwindowMode -> unit
-      = "ml_gdk_gc_set_subwindow"
-  external set_exposures : gc -> bool -> unit = "ml_gdk_gc_set_exposures"
-  external set_line_attributes :
-      gc -> width:int -> style:gdkLineStyle -> cap:gdkCapStyle ->
-      join:gdkJoinStyle -> unit
-      = "ml_gdk_gc_set_line_attributes"
-  external copy : dst:gc -> gc -> unit = "ml_gdk_gc_copy"
-  type values = {
-      foreground : Color.t;
-      background : Color.t;
-      font : font option;
-      fonction : gdkFunction;
-      fill : gdkFill;
-      tile : pixmap option;
-      stipple : pixmap option;
-      clip_mask : bitmap option;
-      subwindow_mode : gdkSubwindowMode;
-      ts_x_origin : int;
-      ts_y_origin : int;
-      clip_x_origin : int;
-      clip_y_origin : int;
-      graphics_exposures : bool;
-      line_width : int;
-      line_style : gdkLineStyle;
-      cap_style : gdkCapStyle;
-      join_style : gdkJoinStyle;
-    }
-  external get_values : gc -> values = "ml_gdk_gc_get_values"
-end
-
-module Pixmap = struct
-  external create : window -> width:int -> height:int -> depth:int -> pixmap
-      = "ml_gdk_pixmap_new"
-  external create_from_data :
-      window -> string -> width:int -> height:int -> depth:int ->
-      fg:Color.t -> bg:Color.t -> pixmap
-      = "ml_gdk_pixmap_create_from_data_bc" "ml_gk_pixmap_create_from_data"
-  external create_from_xpm :
-      window -> ?colormap:colormap -> ?transparent:Color.t ->
-      file:string -> pixmap * bitmap
-      = "ml_gdk_pixmap_colormap_create_from_xpm"
-  external create_from_xpm_d :
-      window -> ?colormap:colormap -> ?transparent:Color.t ->
-      data:string array -> pixmap * bitmap
-      = "ml_gdk_pixmap_colormap_create_from_xpm_d"
-end
-
-module Bitmap = struct
-  let create : window -> width:int -> height:int -> bitmap =
-    Obj.magic (Pixmap.create ~depth:1)
-  external create_from_data :
-      window -> string -> width:int -> height:int -> bitmap
-      = "ml_gdk_bitmap_create_from_data"
-end
-
-module Font = struct
-  external load : string -> font = "ml_gdk_font_load"
-  external load_fontset : string -> font = "ml_gdk_fontset_load"
-  external string_width : font -> string -> int = "ml_gdk_string_width"
-  external char_width : font -> char -> int = "ml_gdk_char_width"
-  external string_height : font -> string -> int = "ml_gdk_string_height"
-  external char_height : font -> char -> int = "ml_gdk_char_height"
-  external string_measure : font -> string -> int = "ml_gdk_string_measure"
-  external char_measure : font -> char -> int = "ml_gdk_char_measure"
-  external get_type : font -> [`FONT | `FONTSET] = "ml_GdkFont_type"
-  external ascent : font -> int = "ml_GdkFont_ascent"
-  external descent : font -> int = "ml_GdkFont_descent"
-end
-
-module Draw = struct
-  external point : 'a drawable -> gc -> x:int -> y:int -> unit
-      = "ml_gdk_draw_point"
-  external line : 'a drawable -> gc -> x:int -> y:int -> x:int -> y:int -> unit
-      = "ml_gdk_draw_line_bc" "ml_gdk_draw_line"
-  external rectangle :
-      'a drawable -> gc ->
-      filled:bool -> x:int -> y:int -> width:int -> height:int -> unit
-      = "ml_gdk_draw_rectangle_bc" "ml_gdk_draw_rectangle"
-  let rectangle w gc ~x ~y ~width ~height ?(filled=false) () =
-    rectangle w gc ~x ~y ~width ~height ~filled
-  external arc :
-      'a drawable -> gc -> filled:bool -> x:int -> y:int ->
-      width:int -> height:int -> start:int -> angle:int -> unit
-      = "ml_gdk_draw_arc_bc" "ml_gdk_draw_arc"
-  let arc w gc ~x ~y ~width ~height ?(filled=false) ?(start=0.)
-      ?(angle=360.) () =
-    arc w gc ~x ~y ~width ~height ~filled
-      ~start:(truncate(start *. 64.))
-      ~angle:(truncate(angle *. 64.))
-  external polygon : 'a drawable -> gc -> filled:bool -> PointArray.t -> unit
-      = "ml_gdk_draw_polygon"
-  let polygon w gc ?(filled=false) l =
-    let len = List.length l in
-    let arr = PointArray.create ~len in
-    List.fold_left l ~init:0
-      ~f:(fun pos (x,y) -> PointArray.set arr ~pos ~x ~y; pos+1);
-    polygon w gc ~filled arr
-  external string : 'a drawable -> font: font -> gc -> x: int -> y: int ->
-    string: string -> unit
-      = "ml_gdk_draw_string_bc" "ml_gdk_draw_string"   
-  external image : 'a drawable -> gc -> image: image -> 
-    xsrc: int -> ysrc: int -> xdest: int -> ydest: int -> 
-    width: int -> height: int -> unit
-      = "ml_gdk_draw_image_bc" "ml_gdk_draw_image"
-end
-
-module Rgb = struct
-  external init : unit -> unit = "ml_gdk_rgb_init"
-  external get_visual : unit -> visual = "ml_gdk_rgb_get_visual"
-  external get_cmap : unit -> colormap = "ml_gdk_rgb_get_cmap"
-end
-
-module DnD = struct
-  external drag_status : drag_context -> drag_action list -> time:int -> unit
-      = "ml_gdk_drag_status"
-  external drag_context_suggested_action : drag_context -> drag_action
-      = "ml_GdkDragContext_suggested_action"
-  external drag_context_targets : drag_context -> atom list
-      = "ml_GdkDragContext_targets"
-end
-
-module Truecolor = struct
-  (* Truecolor quick color query *) 
-
-  type visual_shift_prec = {
-      red_shift : int;
-      red_prec : int;
-      green_shift : int;
-      green_prec : int;
-      blue_shift : int;
-      blue_prec : int
-    }
-  let shift_prec visual = {
-    red_shift = Visual.red_shift visual;
-    red_prec = Visual.red_prec visual;
-    green_shift = Visual.green_shift visual;
-    green_prec = Visual.green_prec visual;
-    blue_shift = Visual.blue_shift visual;
-    blue_prec = Visual.blue_prec visual;
-  }
-
-  let color_creator visual =
-    match Visual.get_type visual with
-      `TRUE_COLOR | `DIRECT_COLOR ->
-       let shift_prec = shift_prec visual in
-       Format.eprintf "red : %d %d, "
-         shift_prec.red_shift shift_prec.red_prec;
-       Format.eprintf "green : %d %d, "
-         shift_prec.green_shift shift_prec.green_prec;
-       Format.eprintf "blue : %d %d"
-         shift_prec.blue_shift shift_prec.blue_prec;
-       Format.pp_print_newline Format.err_formatter ();
-       let red_lsr = 16 - shift_prec.red_prec
-       and green_lsr = 16 - shift_prec.green_prec
-       and blue_lsr = 16 - shift_prec.blue_prec in
-       fun ~red: red ~green: green ~blue: blue ->
-         (((red lsr red_lsr) lsl shift_prec.red_shift) lor 
-          ((green lsr green_lsr) lsl shift_prec.green_shift) lor
-          ((blue lsr blue_lsr) lsl shift_prec.blue_shift))
-    | _ -> raise (Invalid_argument "Gdk.Truecolor.color_creator")
-
-  let color_parser visual =
-    match Visual.get_type visual with
-      `TRUE_COLOR | `DIRECT_COLOR ->
-       let shift_prec = shift_prec visual in
-       let red_lsr = 16 - shift_prec.red_prec
-       and green_lsr = 16 - shift_prec.green_prec
-       and blue_lsr = 16 - shift_prec.blue_prec in
-       let mask = 1 lsl 16 - 1 in
-       fun pixel ->
-         ((pixel lsr shift_prec.red_shift) lsl red_lsr) land mask,
-         ((pixel lsr shift_prec.green_shift) lsl green_lsr) land mask,
-         ((pixel lsr shift_prec.blue_shift) lsl blue_lsr) land mask
-    | _ -> raise (Invalid_argument "Gdk.Truecolor.color_parser")
-end
-
-module X = struct
-  (* X related functions *)
-  external flush : unit -> unit
-      = "ml_gdk_flush"
-  external beep : unit -> unit
-      = "ml_gdk_beep"
-end
-
-module Cursor = struct
-  type cursor_type = [
-    | `X_CURSOR
-    | `ARROW
-    | `BASED_ARROW_DOWN
-    | `BASED_ARROW_UP
-    | `BOAT
-    | `BOGOSITY
-    | `BOTTOM_LEFT_CORNER
-    | `BOTTOM_RIGHT_CORNER
-    | `BOTTOM_SIDE
-    | `BOTTOM_TEE
-    | `BOX_SPIRAL
-    | `CENTER_PTR
-    | `CIRCLE
-    | `CLOCK
-    | `COFFEE_MUG
-    | `CROSS
-    | `CROSS_REVERSE
-    | `CROSSHAIR
-    | `DIAMOND_CROSS
-    | `DOT
-    | `DOTBOX
-    | `DOUBLE_ARROW
-    | `DRAFT_LARGE
-    | `DRAFT_SMALL
-    | `DRAPED_BOX
-    | `EXCHANGE
-    | `FLEUR
-    | `GOBBLER
-    | `GUMBY
-    | `HAND1
-    | `HAND2
-    | `HEART
-    | `ICON
-    | `IRON_CROSS
-    | `LEFT_PTR
-    | `LEFT_SIDE
-    | `LEFT_TEE
-    | `LEFTBUTTON
-    | `LL_ANGLE
-    | `LR_ANGLE
-    | `MAN
-    | `MIDDLEBUTTON
-    | `MOUSE
-    | `PENCIL
-    | `PIRATE
-    | `PLUS
-    | `QUESTION_ARROW
-    | `RIGHT_PTR
-    | `RIGHT_SIDE
-    | `RIGHT_TEE
-    | `RIGHTBUTTON
-    | `RTL_LOGO
-    | `SAILBOAT
-    | `SB_DOWN_ARROW
-    | `SB_H_DOUBLE_ARROW
-    | `SB_LEFT_ARROW
-    | `SB_RIGHT_ARROW
-    | `SB_UP_ARROW
-    | `SB_V_DOUBLE_ARROW
-    | `SHUTTLE
-    | `SIZING
-    | `SPIDER
-    | `SPRAYCAN
-    | `STAR
-    | `TARGET
-    | `TCROSS
-    | `TOP_LEFT_ARROW
-    | `TOP_LEFT_CORNER
-    | `TOP_RIGHT_CORNER
-    | `TOP_SIDE
-    | `TOP_TEE
-    | `TREK
-    | `UL_ANGLE
-    | `UMBRELLA
-    | `UR_ANGLE
-    | `WATCH
-    | `XTERM
-  ]
-  external create : cursor_type -> cursor = "ml_gdk_cursor_new"
-  external create_from_pixmap :
-    pixmap -> mask:bitmap ->
-    fg:Color.t -> bg:Color.t -> x:int -> y:int -> cursor
-    = "ml_gdk_cursor_new_from_pixmap_bc" "ml_gdk_cursor_new_from_pixmap"
-  external destroy : cursor -> unit = "ml_gdk_cursor_destroy"
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk.mli
deleted file mode 100644 (file)
index 2914b60..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-(* $Id$ *)
-
-type colormap
-type visual
-type region
-type gc
-type 'a drawable
-type window = [`window] drawable
-type pixmap = [`pixmap] drawable
-type bitmap = [`bitmap] drawable
-type font
-type image
-type atom = int
-type keysym = int
-type 'a event
-type drag_context
-type cursor
-type xid = int32
-
-exception Error of string
-
-module Tags : sig
-  type event_type =
-    [ `NOTHING|`DELETE|`DESTROY|`EXPOSE|`MOTION_NOTIFY|`BUTTON_PRESS
-     |`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS
-     |`BUTTON_RELEASE|`KEY_PRESS
-     |`KEY_RELEASE|`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE
-     |`CONFIGURE|`MAP|`UNMAP|`PROPERTY_NOTIFY|`SELECTION_CLEAR
-     |`SELECTION_REQUEST|`SELECTION_NOTIFY|`PROXIMITY_IN
-     |`PROXIMITY_OUT|`DRAG_ENTER|`DRAG_LEAVE|`DRAG_MOTION|`DRAG_STATUS
-     |`DROP_START|`DROP_FINISHED|`CLIENT_EVENT|`VISIBILITY_NOTIFY
-     |`NO_EXPOSE ]
-  type event_mask =
-    [ `EXPOSURE
-     |`POINTER_MOTION|`POINTER_MOTION_HINT
-     |`BUTTON_MOTION|`BUTTON1_MOTION|`BUTTON2_MOTION|`BUTTON3_MOTION
-     |`BUTTON_PRESS|`BUTTON_RELEASE
-     |`KEY_PRESS|`KEY_RELEASE
-     |`ENTER_NOTIFY|`LEAVE_NOTIFY|`FOCUS_CHANGE
-     |`STRUCTURE|`PROPERTY_CHANGE|`VISIBILITY_NOTIFY
-     |`PROXIMITY_IN|`PROXIMITY_OUT|`SUBSTRUCTURE
-     |`ALL_EVENTS ]
-  type extension_events = [ `NONE|`ALL|`CURSOR ]
-  type visibility_state = [ `UNOBSCURED|`PARTIAL|`FULLY_OBSCURED ]
-  type input_source = [ `MOUSE|`PEN|`ERASER|`CURSOR ]
-  type notify_type =
-    [ `ANCESTOR|`VIRTUAL|`INFERIOR|`NONLINEAR|`NONLINEAR_VIRTUAL|`UNKNOWN ] 
-  type crossing_mode = [ `NORMAL|`GRAB|`UNGRAB ]
-  type modifier =
-    [ `SHIFT|`LOCK|`CONTROL|`MOD1|`MOD2|`MOD3|`MOD4|`MOD5|`BUTTON1
-     |`BUTTON2|`BUTTON3|`BUTTON4|`BUTTON5 ]
-  type drag_action = [ `DEFAULT|`COPY|`MOVE|`LINK|`PRIVATE|`ASK ]
-end
-
-module Convert :
-  sig
-    val modifier : int -> Tags.modifier list
-  end
-
-module Screen :
-  sig
-    external width : unit -> int = "ml_gdk_screen_width"
-    external height : unit -> int = "ml_gdk_screen_height"
-  end
-
-module Visual :
-  sig
-    type visual_type =
-      [ `STATIC_GRAY|`GRAYSCALE|`STATIC_COLOR
-       |`PSEUDO_COLOR|`TRUE_COLOR|`DIRECT_COLOR ]
-    external get_best : ?depth:int -> ?kind:visual_type -> unit -> visual
-        = "ml_gdk_visual_get_best"
-    external get_type : visual -> visual_type = "ml_GdkVisual_type"
-    external depth : visual -> int = "ml_GdkVisual_depth"
-    external red_mask : visual -> int = "ml_GdkVisual_red_mask"
-    external red_shift : visual -> int = "ml_GdkVisual_red_shift"
-    external red_prec : visual -> int = "ml_GdkVisual_red_prec"
-    external green_mask : visual -> int = "ml_GdkVisual_green_mask"
-    external green_shift : visual -> int = "ml_GdkVisual_green_shift"
-    external green_prec : visual -> int = "ml_GdkVisual_green_prec"
-    external blue_mask : visual -> int = "ml_GdkVisual_blue_mask"
-    external blue_shift : visual -> int = "ml_GdkVisual_blue_shift"
-    external blue_prec : visual -> int = "ml_GdkVisual_blue_prec"
-  end
-
-module Image :
-  sig
-    type image_type = [ `FASTEST|`NORMAL|`SHARED ]
-    external create_bitmap :
-      visual:visual -> data:string -> width:int -> height:int -> image
-      = "ml_gdk_image_new_bitmap"
-    external create :
-      kind:image_type ->
-      visual:visual -> width:int -> height:int -> image = "ml_gdk_image_new"
-    external get :
-      'a drawable -> x:int -> y:int -> width:int -> height:int -> image
-      = "ml_gdk_image_get"
-    external put_pixel : image -> x:int -> y:int -> pixel:int -> unit
-      = "ml_gdk_image_put_pixel"
-    external get_pixel : image -> x:int -> y:int -> int
-      = "ml_gdk_image_get_pixel"
-    external destroy : image -> unit = "ml_gdk_image_destroy"
-  end
-
-module Color :
-  sig
-    external get_system_colormap : unit -> colormap
-       = "ml_gdk_colormap_get_system"
-    val get_colormap : ?privat:bool -> visual -> colormap
-
-    type t
-    type spec = [
-      | `BLACK
-      | `NAME of string
-      | `RGB of int * int * int
-      | `WHITE
-    ]
-    val alloc : colormap:colormap -> spec -> t
-    external red : t -> int = "ml_GdkColor_red"
-    external blue : t -> int = "ml_GdkColor_blue"
-    external green : t -> int = "ml_GdkColor_green"
-    external pixel : t -> int = "ml_GdkColor_pixel"
-  end
-
-module Rectangle :
-  sig
-    type t
-    external create : x:int -> y:int -> width:int -> height:int -> t
-      = "ml_GdkRectangle"
-    external x : t -> int = "ml_GdkRectangle_x"
-    external y : t -> int = "ml_GdkRectangle_y"
-    external width : t -> int = "ml_GdkRectangle_width"
-    external height : t -> int = "ml_GdkRectangle_height"
-  end
-
-module Window :
-  sig
-    type background_pixmap = [ `NONE|`PARENT_RELATIVE|`PIXMAP of pixmap ]
-    external visual_depth : visual -> int = "ml_gdk_visual_get_depth"
-    external get_visual : window -> visual = "ml_gdk_window_get_visual"
-    external get_parent : window -> window = "ml_gdk_window_get_parent"
-    external get_size : window -> int * int = "ml_gdk_window_get_size"
-    external get_position : window -> int * int
-      = "ml_gdk_window_get_position"
-    external root_parent : unit -> window = "ml_GDK_ROOT_PARENT"
-    external clear : window -> unit = "ml_gdk_window_clear"
-    external get_xwindow : window -> xid = "ml_GDK_WINDOW_XWINDOW"
-    val set_back_pixmap : window -> background_pixmap -> unit
-  end
-
-module PointArray :
-  sig
-    type t = { len: int }
-    external create : len:int -> t = "ml_point_array_new"
-    val set : t -> pos:int -> x:int -> y:int -> unit
-  end
-
-module Region :
-  sig
-    type gdkFillRule = [ `EVEN_ODD_RULE|`WINDING_RULE ]
-    type gdkOverlapType = [ `IN|`OUT|`PART ]
-    external create : unit -> region = "ml_gdk_region_new"
-    external destroy : region -> unit = "ml_gdk_region_destroy"
-    val polygon : (int * int) list -> gdkFillRule -> region 
-    external intersect : region -> region -> region
-      = "ml_gdk_regions_intersect"
-    external union : region -> region -> region 
-      = "ml_gdk_regions_union"
-    external subtract : region -> region -> region 
-      = "ml_gdk_regions_subtract"
-    external xor : region -> region -> region 
-      = "ml_gdk_regions_xor"
-    external union_with_rect : region -> Rectangle.t -> region
-      = "ml_gdk_region_union_with_rect"
-    external offset : region -> x:int -> y:int -> unit = "ml_gdk_region_offset"
-    external shrink : region -> x:int -> y:int -> unit = "ml_gdk_region_shrink"
-    external empty : region -> bool = "ml_gdk_region_empty"
-    external equal : region -> region -> bool = "ml_gdk_region_equal"
-    external point_in : region -> x:int -> y:int -> bool 
-      = "ml_gdk_region_point_in"
-    external rect_in : region -> Rectangle.t -> gdkOverlapType
-      = "ml_gdk_region_rect_in"
-    external get_clipbox : region -> Rectangle.t -> unit
-      = "ml_gdk_region_get_clipbox"
-  end
-
-module GC :
-  sig
-    type gdkFunction = [ `COPY|`INVERT|`XOR ]
-    type gdkFill = [ `SOLID|`TILED|`STIPPLED|`OPAQUE_STIPPLED ]
-    type gdkSubwindowMode = [ `CLIP_BY_CHILDREN|`INCLUDE_INFERIORS ]
-    type gdkLineStyle = [ `SOLID|`ON_OFF_DASH|`DOUBLE_DASH ]
-    type gdkCapStyle = [ `NOT_LAST|`BUTT|`ROUND|`PROJECTING ]
-    type gdkJoinStyle = [ `MITER|`ROUND|`BEVEL ]
-    external create : 'a drawable -> gc = "ml_gdk_gc_new"
-    external set_foreground : gc -> Color.t -> unit
-      = "ml_gdk_gc_set_foreground"
-    external set_background : gc -> Color.t -> unit
-      = "ml_gdk_gc_set_background"
-    external set_font : gc -> font -> unit = "ml_gdk_gc_set_font"
-    external set_function : gc -> gdkFunction -> unit
-      = "ml_gdk_gc_set_function"
-    external set_fill : gc -> gdkFill -> unit = "ml_gdk_gc_set_fill"
-    external set_tile : gc -> pixmap -> unit = "ml_gdk_gc_set_tile"
-    external set_stipple : gc -> pixmap -> unit = "ml_gdk_gc_set_stipple"
-    external set_ts_origin : gc -> x:int -> y:int -> unit
-      = "ml_gdk_gc_set_ts_origin"
-    external set_clip_origin : gc -> x:int -> y:int -> unit
-      = "ml_gdk_gc_set_clip_origin"
-    external set_clip_mask : gc -> bitmap -> unit = "ml_gdk_gc_set_clip_mask"
-    external set_clip_rectangle : gc -> Rectangle.t -> unit
-      = "ml_gdk_gc_set_clip_rectangle"
-    external set_clip_region : gc -> region -> unit
-       = "ml_gdk_gc_set_clip_region"
-    external set_subwindow : gc -> gdkSubwindowMode -> unit
-      = "ml_gdk_gc_set_subwindow"
-    external set_exposures : gc -> bool -> unit = "ml_gdk_gc_set_exposures"
-    external set_line_attributes :
-      gc ->
-      width:int ->
-      style:gdkLineStyle -> cap:gdkCapStyle -> join:gdkJoinStyle -> unit
-      = "ml_gdk_gc_set_line_attributes"
-    external copy : dst:gc -> gc -> unit = "ml_gdk_gc_copy"
-    type values = {
-        foreground : Color.t;
-        background : Color.t;
-        font : font option;
-        fonction : gdkFunction;
-        fill : gdkFill;
-        tile : pixmap option;
-        stipple : pixmap option;
-        clip_mask : bitmap option;
-        subwindow_mode : gdkSubwindowMode;
-        ts_x_origin : int;
-        ts_y_origin : int;
-        clip_x_origin : int;
-        clip_y_origin : int;
-        graphics_exposures : bool;
-        line_width : int;
-        line_style : gdkLineStyle;
-        cap_style : gdkCapStyle;
-        join_style : gdkJoinStyle;
-      }
-    external get_values : gc -> values = "ml_gdk_gc_get_values"
-  end
-
-module Pixmap :
-  sig
-    external create :
-      window -> width:int -> height:int -> depth:int -> pixmap
-      = "ml_gdk_pixmap_new"
-    external create_from_data :
-      window ->
-      string ->
-      width:int ->
-      height:int -> depth:int -> fg:Color.t -> bg:Color.t -> pixmap
-      = "ml_gdk_pixmap_create_from_data_bc" "ml_gk_pixmap_create_from_data"
-    external create_from_xpm :
-      window ->
-      ?colormap:colormap ->
-      ?transparent:Color.t -> file:string -> pixmap * bitmap
-      = "ml_gdk_pixmap_colormap_create_from_xpm"
-    external create_from_xpm_d :
-      window ->
-      ?colormap:colormap ->
-      ?transparent:Color.t -> data:string array -> pixmap * bitmap
-      = "ml_gdk_pixmap_colormap_create_from_xpm_d"
-  end
-
-module Bitmap :
-  sig
-    val create : window -> width:int -> height:int -> bitmap
-    external create_from_data :
-      window -> string -> width:int -> height:int -> bitmap
-      = "ml_gdk_bitmap_create_from_data"
-  end
-
-module Font :
-  sig
-    external load : string -> font = "ml_gdk_font_load"
-    external load_fontset : string -> font = "ml_gdk_fontset_load"
-    external string_width : font -> string -> int = "ml_gdk_string_width"
-    external char_width : font -> char -> int = "ml_gdk_char_width"
-    external string_height : font -> string -> int = "ml_gdk_string_height"
-    external char_height : font -> char -> int = "ml_gdk_char_height"
-    external string_measure : font -> string -> int = "ml_gdk_string_measure"
-    external char_measure : font -> char -> int = "ml_gdk_char_measure"
-    external get_type : font -> [`FONT | `FONTSET] = "ml_GdkFont_type"
-    external ascent : font -> int = "ml_GdkFont_ascent"
-    external descent : font -> int = "ml_GdkFont_descent"
-  end
-
-module Draw :
-  sig
-    external point : 'a drawable -> gc -> x:int -> y:int -> unit
-      = "ml_gdk_draw_point"
-    external line :
-      'a drawable -> gc -> x:int -> y:int -> x:int -> y:int -> unit
-      = "ml_gdk_draw_line_bc" "ml_gdk_draw_line"
-    val rectangle :
-      'a drawable -> gc ->
-      x:int -> y:int -> width:int -> height:int -> ?filled:bool -> unit -> unit
-    val arc :
-      'a drawable -> gc ->
-      x:int -> y:int -> width:int -> height:int ->
-      ?filled:bool -> ?start:float -> ?angle:float -> unit -> unit
-    val polygon :
-      'a drawable -> gc -> ?filled:bool ->(int * int) list -> unit
-    external string :
-      'a drawable ->
-      font:font -> gc -> x:int -> y:int -> string:string -> unit
-      = "ml_gdk_draw_string_bc" "ml_gdk_draw_string"
-    external image :
-      'a drawable ->
-      gc ->
-      image:image ->
-      xsrc:int ->
-      ysrc:int -> xdest:int -> ydest:int -> width:int -> height:int -> unit
-      = "ml_gdk_draw_image_bc" "ml_gdk_draw_image"
-  end
-
-module Rgb :
-  sig
-    external init : unit -> unit = "ml_gdk_rgb_init"
-    external get_visual : unit -> visual = "ml_gdk_rgb_get_visual"
-    external get_cmap : unit -> colormap = "ml_gdk_rgb_get_cmap"
-  end
-
-module DnD :
-  sig
-    external drag_status :
-      drag_context -> Tags.drag_action list -> time:int -> unit
-      = "ml_gdk_drag_status"
-    external drag_context_suggested_action : drag_context -> Tags.drag_action
-      = "ml_GdkDragContext_suggested_action"
-    external drag_context_targets : drag_context -> atom list
-      = "ml_GdkDragContext_targets"
-  end
-
-module Truecolor :
-  sig
-    val color_creator : visual -> (red: int -> green: int -> blue: int -> int)
-       (* [color_creator visual] creates a function to calculate 
-          the pixel color id for given red, green and blue component 
-          value ([0..65535]) at the client side. [visual] must have 
-           `TRUE_COLOR or `DIRECT_COLOR type. This function improves
-           the speed of the color query of true color visual greatly. *)
-       (* WARN: this approach is not theoretically correct for true color
-          visual, because we need gamma correction. *)
-
-    val color_parser : visual -> int -> int * int * int
-  end
-
-module X :
-  (* X related functions *)
-  sig
-    val flush : unit -> unit (* also in GtkMain *)
-    val beep : unit -> unit
-  end
-
-module Cursor : sig
-  type cursor_type = [
-    | `X_CURSOR
-    | `ARROW
-    | `BASED_ARROW_DOWN
-    | `BASED_ARROW_UP
-    | `BOAT
-    | `BOGOSITY
-    | `BOTTOM_LEFT_CORNER
-    | `BOTTOM_RIGHT_CORNER
-    | `BOTTOM_SIDE
-    | `BOTTOM_TEE
-    | `BOX_SPIRAL
-    | `CENTER_PTR
-    | `CIRCLE
-    | `CLOCK
-    | `COFFEE_MUG
-    | `CROSS
-    | `CROSS_REVERSE
-    | `CROSSHAIR
-    | `DIAMOND_CROSS
-    | `DOT
-    | `DOTBOX
-    | `DOUBLE_ARROW
-    | `DRAFT_LARGE
-    | `DRAFT_SMALL
-    | `DRAPED_BOX
-    | `EXCHANGE
-    | `FLEUR
-    | `GOBBLER
-    | `GUMBY
-    | `HAND1
-    | `HAND2
-    | `HEART
-    | `ICON
-    | `IRON_CROSS
-    | `LEFT_PTR
-    | `LEFT_SIDE
-    | `LEFT_TEE
-    | `LEFTBUTTON
-    | `LL_ANGLE
-    | `LR_ANGLE
-    | `MAN
-    | `MIDDLEBUTTON
-    | `MOUSE
-    | `PENCIL
-    | `PIRATE
-    | `PLUS
-    | `QUESTION_ARROW
-    | `RIGHT_PTR
-    | `RIGHT_SIDE
-    | `RIGHT_TEE
-    | `RIGHTBUTTON
-    | `RTL_LOGO
-    | `SAILBOAT
-    | `SB_DOWN_ARROW
-    | `SB_H_DOUBLE_ARROW
-    | `SB_LEFT_ARROW
-    | `SB_RIGHT_ARROW
-    | `SB_UP_ARROW
-    | `SB_V_DOUBLE_ARROW
-    | `SHUTTLE
-    | `SIZING
-    | `SPIDER
-    | `SPRAYCAN
-    | `STAR
-    | `TARGET
-    | `TCROSS
-    | `TOP_LEFT_ARROW
-    | `TOP_LEFT_CORNER
-    | `TOP_RIGHT_CORNER
-    | `TOP_SIDE
-    | `TOP_TEE
-    | `TREK
-    | `UL_ANGLE
-    | `UMBRELLA
-    | `UR_ANGLE
-    | `WATCH
-    | `XTERM
-  ]
-  external create : cursor_type -> cursor = "ml_gdk_cursor_new"
-  external create_from_pixmap :
-    pixmap -> mask:bitmap ->
-    fg:Color.t -> bg:Color.t -> x:int -> y:int -> cursor
-    = "ml_gdk_cursor_new_from_pixmap_bc" "ml_gdk_cursor_new_from_pixmap"
-  external destroy : cursor -> unit = "ml_gdk_cursor_destroy"
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkEvent.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkEvent.ml
deleted file mode 100644 (file)
index 87c0e88..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gdk
-open Tags
-
-external coerce : 'a event -> event_type event = "%identity"
-external unsafe_copy : Gpointer.boxed -> #event_type event
-    = "ml_gdk_event_copy"
-external copy : (#event_type as 'a) event -> 'a event
-    = "ml_gdk_event_copy"
-external get_type : 'a event -> 'a = "ml_GdkEventAny_type"
-external get_window : 'a event -> window = "ml_GdkEventAny_window"
-external get_send_event : 'a event -> bool = "ml_GdkEventAny_send_event"
-
-external create : (#event_type as 'a) -> 'a event
-    = "ml_gdk_event_new"
-external set_window : 'a event -> window -> unit
-    = "ml_gdk_event_set_window"
-
-module Expose = struct
-  type t = [ `EXPOSE ] event
-  let cast (ev : event_type event) : t =
-    match get_type ev with `EXPOSE -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Expose.cast"
-  external area : t -> Rectangle.t = "ml_GdkEventExpose_area"
-  external count : t -> int = "ml_GdkEventExpose_count"
-end
-
-module Visibility = struct
-  type t = [ `VISIBILITY_NOTIFY ] event
-  let cast (ev :  event_type event) : t =
-    match get_type ev with `VISIBILITY_NOTIFY -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Visibility.cast"
-  external visibility : t -> visibility_state
-      = "ml_GdkEventVisibility_state"
-end
-
-module Motion = struct
-  type t = [ `MOTION_NOTIFY ] event
-  let cast (ev : event_type event) : t =
-    match get_type ev with `MOTION_NOTIFY -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Motion.cast"
-  external time : t -> int = "ml_GdkEventMotion_time"
-  external x : t -> float = "ml_GdkEventMotion_x"
-  external y : t -> float = "ml_GdkEventMotion_y"
-  external pressure : t -> float = "ml_GdkEventMotion_pressure"
-  external xtilt : t -> float = "ml_GdkEventMotion_xtilt"
-  external ytilt : t -> float = "ml_GdkEventMotion_ytilt"
-  external state : t -> int = "ml_GdkEventMotion_state"
-  external is_hint : t -> bool = "ml_GdkEventMotion_is_hint"
-  external source : t -> input_source = "ml_GdkEventMotion_source"
-  external deviceid : t -> int = "ml_GdkEventMotion_deviceid"
-  external x_root : t -> float = "ml_GdkEventMotion_x_root"
-  external y_root : t -> float = "ml_GdkEventMotion_y_root"
-end
-
-module Button = struct
-  type types =
-      [ `BUTTON_PRESS|`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS|`BUTTON_RELEASE ]
-  type t = types event
-  let cast (ev : event_type event) : t =
-    match get_type ev with
-      `BUTTON_PRESS|`TWO_BUTTON_PRESS|`THREE_BUTTON_PRESS|`BUTTON_RELEASE
-      -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Button.cast"
-  external time : t -> int = "ml_GdkEventButton_time"
-  external x : t -> float = "ml_GdkEventButton_x"
-  external y : t -> float = "ml_GdkEventButton_y"
-  external pressure : t -> float = "ml_GdkEventButton_pressure"
-  external xtilt : t -> float = "ml_GdkEventButton_xtilt"
-  external ytilt : t -> float = "ml_GdkEventButton_ytilt"
-  external state : t -> int = "ml_GdkEventButton_state"
-  external button : t -> int = "ml_GdkEventButton_button"
-  external source : t -> input_source = "ml_GdkEventButton_source"
-  external deviceid : t -> int = "ml_GdkEventButton_deviceid"
-  external x_root : t -> float = "ml_GdkEventButton_x_root"
-  external y_root : t -> float = "ml_GdkEventButton_y_root"
-  external set_type : t -> #types -> unit
-      = "ml_gdk_event_set_type"
-  external set_button : t -> int -> unit
-      = "ml_gdk_event_button_set_button"
-end
-
-module Key = struct
-  type t = [ `KEY_PRESS|`KEY_RELEASE ] event
-  let cast (ev : event_type event) : t =
-    match get_type ev with
-      `KEY_PRESS|`KEY_RELEASE -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Key.cast"
-  external time : t -> int = "ml_GdkEventKey_time"
-  external state : t -> int = "ml_GdkEventKey_state"
-  external keyval : t -> keysym = "ml_GdkEventKey_keyval"
-  external string : t -> string = "ml_GdkEventKey_string"
-  let state ev = Convert.modifier (state ev)
-end
-
-module Crossing = struct
-  type t = [ `ENTER_NOTIFY|`LEAVE_NOTIFY ] event
-  let cast (ev : event_type event) : t =
-    match get_type ev with
-      `ENTER_NOTIFY|`LEAVE_NOTIFY -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Crossing.cast"
-  external subwindow : t -> window = "ml_GdkEventCrossing_subwindow"
-  external detail : t -> notify_type = "ml_GdkEventCrossing_detail"
-end
-
-module Focus = struct
-  type t = [ `FOCUS_CHANGE ] event
-  let cast (ev : event_type event) : t =
-    match get_type ev with `FOCUS_CHANGE -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Focus.cast"
-  external focus_in : t -> bool = "ml_GdkEventFocus_in"
-end
-
-module Configure = struct
-  type t = [ `CONFIGURE ] event
-  let cast (ev : event_type event) : t =
-    match get_type ev with `CONFIGURE -> Obj.magic ev
-    |  _ -> invalid_arg "GdkEvent.Configure.cast"
-  external x : t -> int = "ml_GdkEventConfigure_x"
-  external y : t -> int = "ml_GdkEventConfigure_y"
-  external width : t -> int = "ml_GdkEventConfigure_width"
-  external height : t -> int = "ml_GdkEventConfigure_height"
-end
-
-module Property = struct
-  type t = [ `PROPERTY_NOTIFY ] event
-  let cast (ev : event_type event) : t =
-    match get_type ev with `PROPERTY_NOTIFY -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Property.cast"
-  external atom : t -> atom = "ml_GdkEventProperty_atom"
-  external time : t -> int = "ml_GdkEventProperty_time"
-  external state : t -> int = "ml_GdkEventProperty_state"
-end
-
-module Selection = struct
-  type t = [ `SELECTION_CLEAR|`SELECTION_REQUEST|`SELECTION_NOTIFY ] event
-  let cast (ev : event_type event) : t =
-    match get_type ev with
-      `SELECTION_CLEAR|`SELECTION_REQUEST|`SELECTION_NOTIFY -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Selection.cast"
-  external selection : t -> atom = "ml_GdkEventSelection_selection"
-  external target : t -> atom = "ml_GdkEventSelection_target"
-  external property : t -> atom = "ml_GdkEventSelection_property"
-  external requestor : t -> int = "ml_GdkEventSelection_requestor"
-  external time : t -> int = "ml_GdkEventSelection_time"
-end
-
-module Proximity = struct
-  type t = [ `PROXIMITY_IN|`PROXIMITY_OUT ] event
-  let cast (ev : event_type event) : t =
-    match get_type ev with
-      `PROXIMITY_IN|`PROXIMITY_OUT -> Obj.magic ev
-    | _ -> invalid_arg "GdkEvent.Proximity.cast"
-  external time : t -> int = "ml_GdkEventProximity_time"
-  external source : t -> input_source = "ml_GdkEventProximity_source"
-  external deviceid : t -> int = "ml_GdkEventProximity_deviceid"
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkKeysyms.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdkKeysyms.ml
deleted file mode 100644 (file)
index b0257b4..0000000
+++ /dev/null
@@ -1,1320 +0,0 @@
-(* $Id$ *)
-
-open Gdk
-let _VoidSymbol : keysym = 0xFFFFFF
-let _BackSpace : keysym = 0xFF08
-let _Tab : keysym = 0xFF09
-let _Linefeed : keysym = 0xFF0A
-let _Clear : keysym = 0xFF0B
-let _Return : keysym = 0xFF0D
-let _Pause : keysym = 0xFF13
-let _Scroll_Lock : keysym = 0xFF14
-let _Sys_Req : keysym = 0xFF15
-let _Escape : keysym = 0xFF1B
-let _Delete : keysym = 0xFFFF
-let _Multi_key : keysym = 0xFF20
-let _SingleCandidate : keysym = 0xFF3C
-let _MultipleCandidate : keysym = 0xFF3D
-let _PreviousCandidate : keysym = 0xFF3E
-let _Kanji : keysym = 0xFF21
-let _Muhenkan : keysym = 0xFF22
-let _Henkan_Mode : keysym = 0xFF23
-let _Henkan : keysym = 0xFF23
-let _Romaji : keysym = 0xFF24
-let _Hiragana : keysym = 0xFF25
-let _Katakana : keysym = 0xFF26
-let _Hiragana_Katakana : keysym = 0xFF27
-let _Zenkaku : keysym = 0xFF28
-let _Hankaku : keysym = 0xFF29
-let _Zenkaku_Hankaku : keysym = 0xFF2A
-let _Touroku : keysym = 0xFF2B
-let _Massyo : keysym = 0xFF2C
-let _Kana_Lock : keysym = 0xFF2D
-let _Kana_Shift : keysym = 0xFF2E
-let _Eisu_Shift : keysym = 0xFF2F
-let _Eisu_toggle : keysym = 0xFF30
-let _Zen_Koho : keysym = 0xFF3D
-let _Mae_Koho : keysym = 0xFF3E
-let _Home : keysym = 0xFF50
-let _Left : keysym = 0xFF51
-let _Up : keysym = 0xFF52
-let _Right : keysym = 0xFF53
-let _Down : keysym = 0xFF54
-let _Prior : keysym = 0xFF55
-let _Page_Up : keysym = 0xFF55
-let _Next : keysym = 0xFF56
-let _Page_Down : keysym = 0xFF56
-let _End : keysym = 0xFF57
-let _Begin : keysym = 0xFF58
-let _Select : keysym = 0xFF60
-let _Print : keysym = 0xFF61
-let _Execute : keysym = 0xFF62
-let _Insert : keysym = 0xFF63
-let _Undo : keysym = 0xFF65
-let _Redo : keysym = 0xFF66
-let _Menu : keysym = 0xFF67
-let _Find : keysym = 0xFF68
-let _Cancel : keysym = 0xFF69
-let _Help : keysym = 0xFF6A
-let _Break : keysym = 0xFF6B
-let _Mode_switch : keysym = 0xFF7E
-let _script_switch : keysym = 0xFF7E
-let _Num_Lock : keysym = 0xFF7F
-let _KP_Space : keysym = 0xFF80
-let _KP_Tab : keysym = 0xFF89
-let _KP_Enter : keysym = 0xFF8D
-let _KP_F1 : keysym = 0xFF91
-let _KP_F2 : keysym = 0xFF92
-let _KP_F3 : keysym = 0xFF93
-let _KP_F4 : keysym = 0xFF94
-let _KP_Home : keysym = 0xFF95
-let _KP_Left : keysym = 0xFF96
-let _KP_Up : keysym = 0xFF97
-let _KP_Right : keysym = 0xFF98
-let _KP_Down : keysym = 0xFF99
-let _KP_Prior : keysym = 0xFF9A
-let _KP_Page_Up : keysym = 0xFF9A
-let _KP_Next : keysym = 0xFF9B
-let _KP_Page_Down : keysym = 0xFF9B
-let _KP_End : keysym = 0xFF9C
-let _KP_Begin : keysym = 0xFF9D
-let _KP_Insert : keysym = 0xFF9E
-let _KP_Delete : keysym = 0xFF9F
-let _KP_Equal : keysym = 0xFFBD
-let _KP_Multiply : keysym = 0xFFAA
-let _KP_Add : keysym = 0xFFAB
-let _KP_Separator : keysym = 0xFFAC
-let _KP_Subtract : keysym = 0xFFAD
-let _KP_Decimal : keysym = 0xFFAE
-let _KP_Divide : keysym = 0xFFAF
-let _KP_0 : keysym = 0xFFB0
-let _KP_1 : keysym = 0xFFB1
-let _KP_2 : keysym = 0xFFB2
-let _KP_3 : keysym = 0xFFB3
-let _KP_4 : keysym = 0xFFB4
-let _KP_5 : keysym = 0xFFB5
-let _KP_6 : keysym = 0xFFB6
-let _KP_7 : keysym = 0xFFB7
-let _KP_8 : keysym = 0xFFB8
-let _KP_9 : keysym = 0xFFB9
-let _F1 : keysym = 0xFFBE
-let _F2 : keysym = 0xFFBF
-let _F3 : keysym = 0xFFC0
-let _F4 : keysym = 0xFFC1
-let _F5 : keysym = 0xFFC2
-let _F6 : keysym = 0xFFC3
-let _F7 : keysym = 0xFFC4
-let _F8 : keysym = 0xFFC5
-let _F9 : keysym = 0xFFC6
-let _F10 : keysym = 0xFFC7
-let _F11 : keysym = 0xFFC8
-let _L1 : keysym = 0xFFC8
-let _F12 : keysym = 0xFFC9
-let _L2 : keysym = 0xFFC9
-let _F13 : keysym = 0xFFCA
-let _L3 : keysym = 0xFFCA
-let _F14 : keysym = 0xFFCB
-let _L4 : keysym = 0xFFCB
-let _F15 : keysym = 0xFFCC
-let _L5 : keysym = 0xFFCC
-let _F16 : keysym = 0xFFCD
-let _L6 : keysym = 0xFFCD
-let _F17 : keysym = 0xFFCE
-let _L7 : keysym = 0xFFCE
-let _F18 : keysym = 0xFFCF
-let _L8 : keysym = 0xFFCF
-let _F19 : keysym = 0xFFD0
-let _L9 : keysym = 0xFFD0
-let _F20 : keysym = 0xFFD1
-let _L10 : keysym = 0xFFD1
-let _F21 : keysym = 0xFFD2
-let _R1 : keysym = 0xFFD2
-let _F22 : keysym = 0xFFD3
-let _R2 : keysym = 0xFFD3
-let _F23 : keysym = 0xFFD4
-let _R3 : keysym = 0xFFD4
-let _F24 : keysym = 0xFFD5
-let _R4 : keysym = 0xFFD5
-let _F25 : keysym = 0xFFD6
-let _R5 : keysym = 0xFFD6
-let _F26 : keysym = 0xFFD7
-let _R6 : keysym = 0xFFD7
-let _F27 : keysym = 0xFFD8
-let _R7 : keysym = 0xFFD8
-let _F28 : keysym = 0xFFD9
-let _R8 : keysym = 0xFFD9
-let _F29 : keysym = 0xFFDA
-let _R9 : keysym = 0xFFDA
-let _F30 : keysym = 0xFFDB
-let _R10 : keysym = 0xFFDB
-let _F31 : keysym = 0xFFDC
-let _R11 : keysym = 0xFFDC
-let _F32 : keysym = 0xFFDD
-let _R12 : keysym = 0xFFDD
-let _F33 : keysym = 0xFFDE
-let _R13 : keysym = 0xFFDE
-let _F34 : keysym = 0xFFDF
-let _R14 : keysym = 0xFFDF
-let _F35 : keysym = 0xFFE0
-let _R15 : keysym = 0xFFE0
-let _Shift_L : keysym = 0xFFE1
-let _Shift_R : keysym = 0xFFE2
-let _Control_L : keysym = 0xFFE3
-let _Control_R : keysym = 0xFFE4
-let _Caps_Lock : keysym = 0xFFE5
-let _Shift_Lock : keysym = 0xFFE6
-let _Meta_L : keysym = 0xFFE7
-let _Meta_R : keysym = 0xFFE8
-let _Alt_L : keysym = 0xFFE9
-let _Alt_R : keysym = 0xFFEA
-let _Super_L : keysym = 0xFFEB
-let _Super_R : keysym = 0xFFEC
-let _Hyper_L : keysym = 0xFFED
-let _Hyper_R : keysym = 0xFFEE
-let _ISO_Lock : keysym = 0xFE01
-let _ISO_Level2_Latch : keysym = 0xFE02
-let _ISO_Level3_Shift : keysym = 0xFE03
-let _ISO_Level3_Latch : keysym = 0xFE04
-let _ISO_Level3_Lock : keysym = 0xFE05
-let _ISO_Group_Shift : keysym = 0xFF7E
-let _ISO_Group_Latch : keysym = 0xFE06
-let _ISO_Group_Lock : keysym = 0xFE07
-let _ISO_Next_Group : keysym = 0xFE08
-let _ISO_Next_Group_Lock : keysym = 0xFE09
-let _ISO_Prev_Group : keysym = 0xFE0A
-let _ISO_Prev_Group_Lock : keysym = 0xFE0B
-let _ISO_First_Group : keysym = 0xFE0C
-let _ISO_First_Group_Lock : keysym = 0xFE0D
-let _ISO_Last_Group : keysym = 0xFE0E
-let _ISO_Last_Group_Lock : keysym = 0xFE0F
-let _ISO_Left_Tab : keysym = 0xFE20
-let _ISO_Move_Line_Up : keysym = 0xFE21
-let _ISO_Move_Line_Down : keysym = 0xFE22
-let _ISO_Partial_Line_Up : keysym = 0xFE23
-let _ISO_Partial_Line_Down : keysym = 0xFE24
-let _ISO_Partial_Space_Left : keysym = 0xFE25
-let _ISO_Partial_Space_Right : keysym = 0xFE26
-let _ISO_Set_Margin_Left : keysym = 0xFE27
-let _ISO_Set_Margin_Right : keysym = 0xFE28
-let _ISO_Release_Margin_Left : keysym = 0xFE29
-let _ISO_Release_Margin_Right : keysym = 0xFE2A
-let _ISO_Release_Both_Margins : keysym = 0xFE2B
-let _ISO_Fast_Cursor_Left : keysym = 0xFE2C
-let _ISO_Fast_Cursor_Right : keysym = 0xFE2D
-let _ISO_Fast_Cursor_Up : keysym = 0xFE2E
-let _ISO_Fast_Cursor_Down : keysym = 0xFE2F
-let _ISO_Continuous_Underline : keysym = 0xFE30
-let _ISO_Discontinuous_Underline : keysym = 0xFE31
-let _ISO_Emphasize : keysym = 0xFE32
-let _ISO_Center_Object : keysym = 0xFE33
-let _ISO_Enter : keysym = 0xFE34
-let _dead_grave : keysym = 0xFE50
-let _dead_acute : keysym = 0xFE51
-let _dead_circumflex : keysym = 0xFE52
-let _dead_tilde : keysym = 0xFE53
-let _dead_macron : keysym = 0xFE54
-let _dead_breve : keysym = 0xFE55
-let _dead_abovedot : keysym = 0xFE56
-let _dead_diaeresis : keysym = 0xFE57
-let _dead_abovering : keysym = 0xFE58
-let _dead_doubleacute : keysym = 0xFE59
-let _dead_caron : keysym = 0xFE5A
-let _dead_cedilla : keysym = 0xFE5B
-let _dead_ogonek : keysym = 0xFE5C
-let _dead_iota : keysym = 0xFE5D
-let _dead_voiced_sound : keysym = 0xFE5E
-let _dead_semivoiced_sound : keysym = 0xFE5F
-let _dead_belowdot : keysym = 0xFE60
-let _First_Virtual_Screen : keysym = 0xFED0
-let _Prev_Virtual_Screen : keysym = 0xFED1
-let _Next_Virtual_Screen : keysym = 0xFED2
-let _Last_Virtual_Screen : keysym = 0xFED4
-let _Terminate_Server : keysym = 0xFED5
-let _AccessX_Enable : keysym = 0xFE70
-let _AccessX_Feedback_Enable : keysym = 0xFE71
-let _RepeatKeys_Enable : keysym = 0xFE72
-let _SlowKeys_Enable : keysym = 0xFE73
-let _BounceKeys_Enable : keysym = 0xFE74
-let _StickyKeys_Enable : keysym = 0xFE75
-let _MouseKeys_Enable : keysym = 0xFE76
-let _MouseKeys_Accel_Enable : keysym = 0xFE77
-let _Overlay1_Enable : keysym = 0xFE78
-let _Overlay2_Enable : keysym = 0xFE79
-let _AudibleBell_Enable : keysym = 0xFE7A
-let _Pointer_Left : keysym = 0xFEE0
-let _Pointer_Right : keysym = 0xFEE1
-let _Pointer_Up : keysym = 0xFEE2
-let _Pointer_Down : keysym = 0xFEE3
-let _Pointer_UpLeft : keysym = 0xFEE4
-let _Pointer_UpRight : keysym = 0xFEE5
-let _Pointer_DownLeft : keysym = 0xFEE6
-let _Pointer_DownRight : keysym = 0xFEE7
-let _Pointer_Button_Dflt : keysym = 0xFEE8
-let _Pointer_Button1 : keysym = 0xFEE9
-let _Pointer_Button2 : keysym = 0xFEEA
-let _Pointer_Button3 : keysym = 0xFEEB
-let _Pointer_Button4 : keysym = 0xFEEC
-let _Pointer_Button5 : keysym = 0xFEED
-let _Pointer_DblClick_Dflt : keysym = 0xFEEE
-let _Pointer_DblClick1 : keysym = 0xFEEF
-let _Pointer_DblClick2 : keysym = 0xFEF0
-let _Pointer_DblClick3 : keysym = 0xFEF1
-let _Pointer_DblClick4 : keysym = 0xFEF2
-let _Pointer_DblClick5 : keysym = 0xFEF3
-let _Pointer_Drag_Dflt : keysym = 0xFEF4
-let _Pointer_Drag1 : keysym = 0xFEF5
-let _Pointer_Drag2 : keysym = 0xFEF6
-let _Pointer_Drag3 : keysym = 0xFEF7
-let _Pointer_Drag4 : keysym = 0xFEF8
-let _Pointer_Drag5 : keysym = 0xFEFD
-let _Pointer_EnableKeys : keysym = 0xFEF9
-let _Pointer_Accelerate : keysym = 0xFEFA
-let _Pointer_DfltBtnNext : keysym = 0xFEFB
-let _Pointer_DfltBtnPrev : keysym = 0xFEFC
-let _3270_Duplicate : keysym = 0xFD01
-let _3270_FieldMark : keysym = 0xFD02
-let _3270_Right2 : keysym = 0xFD03
-let _3270_Left2 : keysym = 0xFD04
-let _3270_BackTab : keysym = 0xFD05
-let _3270_EraseEOF : keysym = 0xFD06
-let _3270_EraseInput : keysym = 0xFD07
-let _3270_Reset : keysym = 0xFD08
-let _3270_Quit : keysym = 0xFD09
-let _3270_PA1 : keysym = 0xFD0A
-let _3270_PA2 : keysym = 0xFD0B
-let _3270_PA3 : keysym = 0xFD0C
-let _3270_Test : keysym = 0xFD0D
-let _3270_Attn : keysym = 0xFD0E
-let _3270_CursorBlink : keysym = 0xFD0F
-let _3270_AltCursor : keysym = 0xFD10
-let _3270_KeyClick : keysym = 0xFD11
-let _3270_Jump : keysym = 0xFD12
-let _3270_Ident : keysym = 0xFD13
-let _3270_Rule : keysym = 0xFD14
-let _3270_Copy : keysym = 0xFD15
-let _3270_Play : keysym = 0xFD16
-let _3270_Setup : keysym = 0xFD17
-let _3270_Record : keysym = 0xFD18
-let _3270_ChangeScreen : keysym = 0xFD19
-let _3270_DeleteWord : keysym = 0xFD1A
-let _3270_ExSelect : keysym = 0xFD1B
-let _3270_CursorSelect : keysym = 0xFD1C
-let _3270_PrintScreen : keysym = 0xFD1D
-let _3270_Enter : keysym = 0xFD1E
-let _space : keysym = 0x020
-let _exclam : keysym = 0x021
-let _quotedbl : keysym = 0x022
-let _numbersign : keysym = 0x023
-let _dollar : keysym = 0x024
-let _percent : keysym = 0x025
-let _ampersand : keysym = 0x026
-let _apostrophe : keysym = 0x027
-let _quoteright : keysym = 0x027
-let _parenleft : keysym = 0x028
-let _parenright : keysym = 0x029
-let _asterisk : keysym = 0x02a
-let _plus : keysym = 0x02b
-let _comma : keysym = 0x02c
-let _minus : keysym = 0x02d
-let _period : keysym = 0x02e
-let _slash : keysym = 0x02f
-let _0 : keysym = 0x030
-let _1 : keysym = 0x031
-let _2 : keysym = 0x032
-let _3 : keysym = 0x033
-let _4 : keysym = 0x034
-let _5 : keysym = 0x035
-let _6 : keysym = 0x036
-let _7 : keysym = 0x037
-let _8 : keysym = 0x038
-let _9 : keysym = 0x039
-let _colon : keysym = 0x03a
-let _semicolon : keysym = 0x03b
-let _less : keysym = 0x03c
-let _equal : keysym = 0x03d
-let _greater : keysym = 0x03e
-let _question : keysym = 0x03f
-let _at : keysym = 0x040
-let _A : keysym = 0x041
-let _B : keysym = 0x042
-let _C : keysym = 0x043
-let _D : keysym = 0x044
-let _E : keysym = 0x045
-let _F : keysym = 0x046
-let _G : keysym = 0x047
-let _H : keysym = 0x048
-let _I : keysym = 0x049
-let _J : keysym = 0x04a
-let _K : keysym = 0x04b
-let _L : keysym = 0x04c
-let _M : keysym = 0x04d
-let _N : keysym = 0x04e
-let _O : keysym = 0x04f
-let _P : keysym = 0x050
-let _Q : keysym = 0x051
-let _R : keysym = 0x052
-let _S : keysym = 0x053
-let _T : keysym = 0x054
-let _U : keysym = 0x055
-let _V : keysym = 0x056
-let _W : keysym = 0x057
-let _X : keysym = 0x058
-let _Y : keysym = 0x059
-let _Z : keysym = 0x05a
-let _bracketleft : keysym = 0x05b
-let _backslash : keysym = 0x05c
-let _bracketright : keysym = 0x05d
-let _asciicircum : keysym = 0x05e
-let _underscore : keysym = 0x05f
-let _grave : keysym = 0x060
-let _quoteleft : keysym = 0x060
-let _a : keysym = 0x061
-let _b : keysym = 0x062
-let _c : keysym = 0x063
-let _d : keysym = 0x064
-let _e : keysym = 0x065
-let _f : keysym = 0x066
-let _g : keysym = 0x067
-let _h : keysym = 0x068
-let _i : keysym = 0x069
-let _j : keysym = 0x06a
-let _k : keysym = 0x06b
-let _l : keysym = 0x06c
-let _m : keysym = 0x06d
-let _n : keysym = 0x06e
-let _o : keysym = 0x06f
-let _p : keysym = 0x070
-let _q : keysym = 0x071
-let _r : keysym = 0x072
-let _s : keysym = 0x073
-let _t : keysym = 0x074
-let _u : keysym = 0x075
-let _v : keysym = 0x076
-let _w : keysym = 0x077
-let _x : keysym = 0x078
-let _y : keysym = 0x079
-let _z : keysym = 0x07a
-let _braceleft : keysym = 0x07b
-let _bar : keysym = 0x07c
-let _braceright : keysym = 0x07d
-let _asciitilde : keysym = 0x07e
-let _nobreakspace : keysym = 0x0a0
-let _exclamdown : keysym = 0x0a1
-let _cent : keysym = 0x0a2
-let _sterling : keysym = 0x0a3
-let _currency : keysym = 0x0a4
-let _yen : keysym = 0x0a5
-let _brokenbar : keysym = 0x0a6
-let _section : keysym = 0x0a7
-let _diaeresis : keysym = 0x0a8
-let _copyright : keysym = 0x0a9
-let _ordfeminine : keysym = 0x0aa
-let _guillemotleft : keysym = 0x0ab
-let _notsign : keysym = 0x0ac
-let _hyphen : keysym = 0x0ad
-let _registered : keysym = 0x0ae
-let _macron : keysym = 0x0af
-let _degree : keysym = 0x0b0
-let _plusminus : keysym = 0x0b1
-let _twosuperior : keysym = 0x0b2
-let _threesuperior : keysym = 0x0b3
-let _acute : keysym = 0x0b4
-let _mu : keysym = 0x0b5
-let _paragraph : keysym = 0x0b6
-let _periodcentered : keysym = 0x0b7
-let _cedilla : keysym = 0x0b8
-let _onesuperior : keysym = 0x0b9
-let _masculine : keysym = 0x0ba
-let _guillemotright : keysym = 0x0bb
-let _onequarter : keysym = 0x0bc
-let _onehalf : keysym = 0x0bd
-let _threequarters : keysym = 0x0be
-let _questiondown : keysym = 0x0bf
-let _Agrave : keysym = 0x0c0
-let _Aacute : keysym = 0x0c1
-let _Acircumflex : keysym = 0x0c2
-let _Atilde : keysym = 0x0c3
-let _Adiaeresis : keysym = 0x0c4
-let _Aring : keysym = 0x0c5
-let _AE : keysym = 0x0c6
-let _Ccedilla : keysym = 0x0c7
-let _Egrave : keysym = 0x0c8
-let _Eacute : keysym = 0x0c9
-let _Ecircumflex : keysym = 0x0ca
-let _Ediaeresis : keysym = 0x0cb
-let _Igrave : keysym = 0x0cc
-let _Iacute : keysym = 0x0cd
-let _Icircumflex : keysym = 0x0ce
-let _Idiaeresis : keysym = 0x0cf
-let _ETH : keysym = 0x0d0
-let _Eth : keysym = 0x0d0
-let _Ntilde : keysym = 0x0d1
-let _Ograve : keysym = 0x0d2
-let _Oacute : keysym = 0x0d3
-let _Ocircumflex : keysym = 0x0d4
-let _Otilde : keysym = 0x0d5
-let _Odiaeresis : keysym = 0x0d6
-let _multiply : keysym = 0x0d7
-let _Ooblique : keysym = 0x0d8
-let _Ugrave : keysym = 0x0d9
-let _Uacute : keysym = 0x0da
-let _Ucircumflex : keysym = 0x0db
-let _Udiaeresis : keysym = 0x0dc
-let _Yacute : keysym = 0x0dd
-let _THORN : keysym = 0x0de
-let _Thorn : keysym = 0x0de
-let _ssharp : keysym = 0x0df
-let _agrave : keysym = 0x0e0
-let _aacute : keysym = 0x0e1
-let _acircumflex : keysym = 0x0e2
-let _atilde : keysym = 0x0e3
-let _adiaeresis : keysym = 0x0e4
-let _aring : keysym = 0x0e5
-let _ae : keysym = 0x0e6
-let _ccedilla : keysym = 0x0e7
-let _egrave : keysym = 0x0e8
-let _eacute : keysym = 0x0e9
-let _ecircumflex : keysym = 0x0ea
-let _ediaeresis : keysym = 0x0eb
-let _igrave : keysym = 0x0ec
-let _iacute : keysym = 0x0ed
-let _icircumflex : keysym = 0x0ee
-let _idiaeresis : keysym = 0x0ef
-let _eth : keysym = 0x0f0
-let _ntilde : keysym = 0x0f1
-let _ograve : keysym = 0x0f2
-let _oacute : keysym = 0x0f3
-let _ocircumflex : keysym = 0x0f4
-let _otilde : keysym = 0x0f5
-let _odiaeresis : keysym = 0x0f6
-let _division : keysym = 0x0f7
-let _oslash : keysym = 0x0f8
-let _ugrave : keysym = 0x0f9
-let _uacute : keysym = 0x0fa
-let _ucircumflex : keysym = 0x0fb
-let _udiaeresis : keysym = 0x0fc
-let _yacute : keysym = 0x0fd
-let _thorn : keysym = 0x0fe
-let _ydiaeresis : keysym = 0x0ff
-let _Aogonek : keysym = 0x1a1
-let _breve : keysym = 0x1a2
-let _Lstroke : keysym = 0x1a3
-let _Lcaron : keysym = 0x1a5
-let _Sacute : keysym = 0x1a6
-let _Scaron : keysym = 0x1a9
-let _Scedilla : keysym = 0x1aa
-let _Tcaron : keysym = 0x1ab
-let _Zacute : keysym = 0x1ac
-let _Zcaron : keysym = 0x1ae
-let _Zabovedot : keysym = 0x1af
-let _aogonek : keysym = 0x1b1
-let _ogonek : keysym = 0x1b2
-let _lstroke : keysym = 0x1b3
-let _lcaron : keysym = 0x1b5
-let _sacute : keysym = 0x1b6
-let _caron : keysym = 0x1b7
-let _scaron : keysym = 0x1b9
-let _scedilla : keysym = 0x1ba
-let _tcaron : keysym = 0x1bb
-let _zacute : keysym = 0x1bc
-let _doubleacute : keysym = 0x1bd
-let _zcaron : keysym = 0x1be
-let _zabovedot : keysym = 0x1bf
-let _Racute : keysym = 0x1c0
-let _Abreve : keysym = 0x1c3
-let _Lacute : keysym = 0x1c5
-let _Cacute : keysym = 0x1c6
-let _Ccaron : keysym = 0x1c8
-let _Eogonek : keysym = 0x1ca
-let _Ecaron : keysym = 0x1cc
-let _Dcaron : keysym = 0x1cf
-let _Dstroke : keysym = 0x1d0
-let _Nacute : keysym = 0x1d1
-let _Ncaron : keysym = 0x1d2
-let _Odoubleacute : keysym = 0x1d5
-let _Rcaron : keysym = 0x1d8
-let _Uring : keysym = 0x1d9
-let _Udoubleacute : keysym = 0x1db
-let _Tcedilla : keysym = 0x1de
-let _racute : keysym = 0x1e0
-let _abreve : keysym = 0x1e3
-let _lacute : keysym = 0x1e5
-let _cacute : keysym = 0x1e6
-let _ccaron : keysym = 0x1e8
-let _eogonek : keysym = 0x1ea
-let _ecaron : keysym = 0x1ec
-let _dcaron : keysym = 0x1ef
-let _dstroke : keysym = 0x1f0
-let _nacute : keysym = 0x1f1
-let _ncaron : keysym = 0x1f2
-let _odoubleacute : keysym = 0x1f5
-let _udoubleacute : keysym = 0x1fb
-let _rcaron : keysym = 0x1f8
-let _uring : keysym = 0x1f9
-let _tcedilla : keysym = 0x1fe
-let _abovedot : keysym = 0x1ff
-let _Hstroke : keysym = 0x2a1
-let _Hcircumflex : keysym = 0x2a6
-let _Iabovedot : keysym = 0x2a9
-let _Gbreve : keysym = 0x2ab
-let _Jcircumflex : keysym = 0x2ac
-let _hstroke : keysym = 0x2b1
-let _hcircumflex : keysym = 0x2b6
-let _idotless : keysym = 0x2b9
-let _gbreve : keysym = 0x2bb
-let _jcircumflex : keysym = 0x2bc
-let _Cabovedot : keysym = 0x2c5
-let _Ccircumflex : keysym = 0x2c6
-let _Gabovedot : keysym = 0x2d5
-let _Gcircumflex : keysym = 0x2d8
-let _Ubreve : keysym = 0x2dd
-let _Scircumflex : keysym = 0x2de
-let _cabovedot : keysym = 0x2e5
-let _ccircumflex : keysym = 0x2e6
-let _gabovedot : keysym = 0x2f5
-let _gcircumflex : keysym = 0x2f8
-let _ubreve : keysym = 0x2fd
-let _scircumflex : keysym = 0x2fe
-let _kra : keysym = 0x3a2
-let _kappa : keysym = 0x3a2
-let _Rcedilla : keysym = 0x3a3
-let _Itilde : keysym = 0x3a5
-let _Lcedilla : keysym = 0x3a6
-let _Emacron : keysym = 0x3aa
-let _Gcedilla : keysym = 0x3ab
-let _Tslash : keysym = 0x3ac
-let _rcedilla : keysym = 0x3b3
-let _itilde : keysym = 0x3b5
-let _lcedilla : keysym = 0x3b6
-let _emacron : keysym = 0x3ba
-let _gcedilla : keysym = 0x3bb
-let _tslash : keysym = 0x3bc
-let _ENG : keysym = 0x3bd
-let _eng : keysym = 0x3bf
-let _Amacron : keysym = 0x3c0
-let _Iogonek : keysym = 0x3c7
-let _Eabovedot : keysym = 0x3cc
-let _Imacron : keysym = 0x3cf
-let _Ncedilla : keysym = 0x3d1
-let _Omacron : keysym = 0x3d2
-let _Kcedilla : keysym = 0x3d3
-let _Uogonek : keysym = 0x3d9
-let _Utilde : keysym = 0x3dd
-let _Umacron : keysym = 0x3de
-let _amacron : keysym = 0x3e0
-let _iogonek : keysym = 0x3e7
-let _eabovedot : keysym = 0x3ec
-let _imacron : keysym = 0x3ef
-let _ncedilla : keysym = 0x3f1
-let _omacron : keysym = 0x3f2
-let _kcedilla : keysym = 0x3f3
-let _uogonek : keysym = 0x3f9
-let _utilde : keysym = 0x3fd
-let _umacron : keysym = 0x3fe
-let _overline : keysym = 0x47e
-let _kana_fullstop : keysym = 0x4a1
-let _kana_openingbracket : keysym = 0x4a2
-let _kana_closingbracket : keysym = 0x4a3
-let _kana_comma : keysym = 0x4a4
-let _kana_conjunctive : keysym = 0x4a5
-let _kana_middledot : keysym = 0x4a5
-let _kana_WO : keysym = 0x4a6
-let _kana_a : keysym = 0x4a7
-let _kana_i : keysym = 0x4a8
-let _kana_u : keysym = 0x4a9
-let _kana_e : keysym = 0x4aa
-let _kana_o : keysym = 0x4ab
-let _kana_ya : keysym = 0x4ac
-let _kana_yu : keysym = 0x4ad
-let _kana_yo : keysym = 0x4ae
-let _kana_tsu : keysym = 0x4af
-let _kana_tu : keysym = 0x4af
-let _prolongedsound : keysym = 0x4b0
-let _kana_A : keysym = 0x4b1
-let _kana_I : keysym = 0x4b2
-let _kana_U : keysym = 0x4b3
-let _kana_E : keysym = 0x4b4
-let _kana_O : keysym = 0x4b5
-let _kana_KA : keysym = 0x4b6
-let _kana_KI : keysym = 0x4b7
-let _kana_KU : keysym = 0x4b8
-let _kana_KE : keysym = 0x4b9
-let _kana_KO : keysym = 0x4ba
-let _kana_SA : keysym = 0x4bb
-let _kana_SHI : keysym = 0x4bc
-let _kana_SU : keysym = 0x4bd
-let _kana_SE : keysym = 0x4be
-let _kana_SO : keysym = 0x4bf
-let _kana_TA : keysym = 0x4c0
-let _kana_CHI : keysym = 0x4c1
-let _kana_TI : keysym = 0x4c1
-let _kana_TSU : keysym = 0x4c2
-let _kana_TU : keysym = 0x4c2
-let _kana_TE : keysym = 0x4c3
-let _kana_TO : keysym = 0x4c4
-let _kana_NA : keysym = 0x4c5
-let _kana_NI : keysym = 0x4c6
-let _kana_NU : keysym = 0x4c7
-let _kana_NE : keysym = 0x4c8
-let _kana_NO : keysym = 0x4c9
-let _kana_HA : keysym = 0x4ca
-let _kana_HI : keysym = 0x4cb
-let _kana_FU : keysym = 0x4cc
-let _kana_HU : keysym = 0x4cc
-let _kana_HE : keysym = 0x4cd
-let _kana_HO : keysym = 0x4ce
-let _kana_MA : keysym = 0x4cf
-let _kana_MI : keysym = 0x4d0
-let _kana_MU : keysym = 0x4d1
-let _kana_ME : keysym = 0x4d2
-let _kana_MO : keysym = 0x4d3
-let _kana_YA : keysym = 0x4d4
-let _kana_YU : keysym = 0x4d5
-let _kana_YO : keysym = 0x4d6
-let _kana_RA : keysym = 0x4d7
-let _kana_RI : keysym = 0x4d8
-let _kana_RU : keysym = 0x4d9
-let _kana_RE : keysym = 0x4da
-let _kana_RO : keysym = 0x4db
-let _kana_WA : keysym = 0x4dc
-let _kana_N : keysym = 0x4dd
-let _voicedsound : keysym = 0x4de
-let _semivoicedsound : keysym = 0x4df
-let _kana_switch : keysym = 0xFF7E
-let _Arabic_comma : keysym = 0x5ac
-let _Arabic_semicolon : keysym = 0x5bb
-let _Arabic_question_mark : keysym = 0x5bf
-let _Arabic_hamza : keysym = 0x5c1
-let _Arabic_maddaonalef : keysym = 0x5c2
-let _Arabic_hamzaonalef : keysym = 0x5c3
-let _Arabic_hamzaonwaw : keysym = 0x5c4
-let _Arabic_hamzaunderalef : keysym = 0x5c5
-let _Arabic_hamzaonyeh : keysym = 0x5c6
-let _Arabic_alef : keysym = 0x5c7
-let _Arabic_beh : keysym = 0x5c8
-let _Arabic_tehmarbuta : keysym = 0x5c9
-let _Arabic_teh : keysym = 0x5ca
-let _Arabic_theh : keysym = 0x5cb
-let _Arabic_jeem : keysym = 0x5cc
-let _Arabic_hah : keysym = 0x5cd
-let _Arabic_khah : keysym = 0x5ce
-let _Arabic_dal : keysym = 0x5cf
-let _Arabic_thal : keysym = 0x5d0
-let _Arabic_ra : keysym = 0x5d1
-let _Arabic_zain : keysym = 0x5d2
-let _Arabic_seen : keysym = 0x5d3
-let _Arabic_sheen : keysym = 0x5d4
-let _Arabic_sad : keysym = 0x5d5
-let _Arabic_dad : keysym = 0x5d6
-let _Arabic_tah : keysym = 0x5d7
-let _Arabic_zah : keysym = 0x5d8
-let _Arabic_ain : keysym = 0x5d9
-let _Arabic_ghain : keysym = 0x5da
-let _Arabic_tatweel : keysym = 0x5e0
-let _Arabic_feh : keysym = 0x5e1
-let _Arabic_qaf : keysym = 0x5e2
-let _Arabic_kaf : keysym = 0x5e3
-let _Arabic_lam : keysym = 0x5e4
-let _Arabic_meem : keysym = 0x5e5
-let _Arabic_noon : keysym = 0x5e6
-let _Arabic_ha : keysym = 0x5e7
-let _Arabic_heh : keysym = 0x5e7
-let _Arabic_waw : keysym = 0x5e8
-let _Arabic_alefmaksura : keysym = 0x5e9
-let _Arabic_yeh : keysym = 0x5ea
-let _Arabic_fathatan : keysym = 0x5eb
-let _Arabic_dammatan : keysym = 0x5ec
-let _Arabic_kasratan : keysym = 0x5ed
-let _Arabic_fatha : keysym = 0x5ee
-let _Arabic_damma : keysym = 0x5ef
-let _Arabic_kasra : keysym = 0x5f0
-let _Arabic_shadda : keysym = 0x5f1
-let _Arabic_sukun : keysym = 0x5f2
-let _Arabic_switch : keysym = 0xFF7E
-let _Serbian_dje : keysym = 0x6a1
-let _Macedonia_gje : keysym = 0x6a2
-let _Cyrillic_io : keysym = 0x6a3
-let _Ukrainian_ie : keysym = 0x6a4
-let _Ukranian_je : keysym = 0x6a4
-let _Macedonia_dse : keysym = 0x6a5
-let _Ukrainian_i : keysym = 0x6a6
-let _Ukranian_i : keysym = 0x6a6
-let _Ukrainian_yi : keysym = 0x6a7
-let _Ukranian_yi : keysym = 0x6a7
-let _Cyrillic_je : keysym = 0x6a8
-let _Serbian_je : keysym = 0x6a8
-let _Cyrillic_lje : keysym = 0x6a9
-let _Serbian_lje : keysym = 0x6a9
-let _Cyrillic_nje : keysym = 0x6aa
-let _Serbian_nje : keysym = 0x6aa
-let _Serbian_tshe : keysym = 0x6ab
-let _Macedonia_kje : keysym = 0x6ac
-let _Byelorussian_shortu : keysym = 0x6ae
-let _Cyrillic_dzhe : keysym = 0x6af
-let _Serbian_dze : keysym = 0x6af
-let _numerosign : keysym = 0x6b0
-let _Serbian_DJE : keysym = 0x6b1
-let _Macedonia_GJE : keysym = 0x6b2
-let _Cyrillic_IO : keysym = 0x6b3
-let _Ukrainian_IE : keysym = 0x6b4
-let _Ukranian_JE : keysym = 0x6b4
-let _Macedonia_DSE : keysym = 0x6b5
-let _Ukrainian_I : keysym = 0x6b6
-let _Ukranian_I : keysym = 0x6b6
-let _Ukrainian_YI : keysym = 0x6b7
-let _Ukranian_YI : keysym = 0x6b7
-let _Cyrillic_JE : keysym = 0x6b8
-let _Serbian_JE : keysym = 0x6b8
-let _Cyrillic_LJE : keysym = 0x6b9
-let _Serbian_LJE : keysym = 0x6b9
-let _Cyrillic_NJE : keysym = 0x6ba
-let _Serbian_NJE : keysym = 0x6ba
-let _Serbian_TSHE : keysym = 0x6bb
-let _Macedonia_KJE : keysym = 0x6bc
-let _Byelorussian_SHORTU : keysym = 0x6be
-let _Cyrillic_DZHE : keysym = 0x6bf
-let _Serbian_DZE : keysym = 0x6bf
-let _Cyrillic_yu : keysym = 0x6c0
-let _Cyrillic_a : keysym = 0x6c1
-let _Cyrillic_be : keysym = 0x6c2
-let _Cyrillic_tse : keysym = 0x6c3
-let _Cyrillic_de : keysym = 0x6c4
-let _Cyrillic_ie : keysym = 0x6c5
-let _Cyrillic_ef : keysym = 0x6c6
-let _Cyrillic_ghe : keysym = 0x6c7
-let _Cyrillic_ha : keysym = 0x6c8
-let _Cyrillic_i : keysym = 0x6c9
-let _Cyrillic_shorti : keysym = 0x6ca
-let _Cyrillic_ka : keysym = 0x6cb
-let _Cyrillic_el : keysym = 0x6cc
-let _Cyrillic_em : keysym = 0x6cd
-let _Cyrillic_en : keysym = 0x6ce
-let _Cyrillic_o : keysym = 0x6cf
-let _Cyrillic_pe : keysym = 0x6d0
-let _Cyrillic_ya : keysym = 0x6d1
-let _Cyrillic_er : keysym = 0x6d2
-let _Cyrillic_es : keysym = 0x6d3
-let _Cyrillic_te : keysym = 0x6d4
-let _Cyrillic_u : keysym = 0x6d5
-let _Cyrillic_zhe : keysym = 0x6d6
-let _Cyrillic_ve : keysym = 0x6d7
-let _Cyrillic_softsign : keysym = 0x6d8
-let _Cyrillic_yeru : keysym = 0x6d9
-let _Cyrillic_ze : keysym = 0x6da
-let _Cyrillic_sha : keysym = 0x6db
-let _Cyrillic_e : keysym = 0x6dc
-let _Cyrillic_shcha : keysym = 0x6dd
-let _Cyrillic_che : keysym = 0x6de
-let _Cyrillic_hardsign : keysym = 0x6df
-let _Cyrillic_YU : keysym = 0x6e0
-let _Cyrillic_A : keysym = 0x6e1
-let _Cyrillic_BE : keysym = 0x6e2
-let _Cyrillic_TSE : keysym = 0x6e3
-let _Cyrillic_DE : keysym = 0x6e4
-let _Cyrillic_IE : keysym = 0x6e5
-let _Cyrillic_EF : keysym = 0x6e6
-let _Cyrillic_GHE : keysym = 0x6e7
-let _Cyrillic_HA : keysym = 0x6e8
-let _Cyrillic_I : keysym = 0x6e9
-let _Cyrillic_SHORTI : keysym = 0x6ea
-let _Cyrillic_KA : keysym = 0x6eb
-let _Cyrillic_EL : keysym = 0x6ec
-let _Cyrillic_EM : keysym = 0x6ed
-let _Cyrillic_EN : keysym = 0x6ee
-let _Cyrillic_O : keysym = 0x6ef
-let _Cyrillic_PE : keysym = 0x6f0
-let _Cyrillic_YA : keysym = 0x6f1
-let _Cyrillic_ER : keysym = 0x6f2
-let _Cyrillic_ES : keysym = 0x6f3
-let _Cyrillic_TE : keysym = 0x6f4
-let _Cyrillic_U : keysym = 0x6f5
-let _Cyrillic_ZHE : keysym = 0x6f6
-let _Cyrillic_VE : keysym = 0x6f7
-let _Cyrillic_SOFTSIGN : keysym = 0x6f8
-let _Cyrillic_YERU : keysym = 0x6f9
-let _Cyrillic_ZE : keysym = 0x6fa
-let _Cyrillic_SHA : keysym = 0x6fb
-let _Cyrillic_E : keysym = 0x6fc
-let _Cyrillic_SHCHA : keysym = 0x6fd
-let _Cyrillic_CHE : keysym = 0x6fe
-let _Cyrillic_HARDSIGN : keysym = 0x6ff
-let _Greek_ALPHAaccent : keysym = 0x7a1
-let _Greek_EPSILONaccent : keysym = 0x7a2
-let _Greek_ETAaccent : keysym = 0x7a3
-let _Greek_IOTAaccent : keysym = 0x7a4
-let _Greek_IOTAdiaeresis : keysym = 0x7a5
-let _Greek_OMICRONaccent : keysym = 0x7a7
-let _Greek_UPSILONaccent : keysym = 0x7a8
-let _Greek_UPSILONdieresis : keysym = 0x7a9
-let _Greek_OMEGAaccent : keysym = 0x7ab
-let _Greek_accentdieresis : keysym = 0x7ae
-let _Greek_horizbar : keysym = 0x7af
-let _Greek_alphaaccent : keysym = 0x7b1
-let _Greek_epsilonaccent : keysym = 0x7b2
-let _Greek_etaaccent : keysym = 0x7b3
-let _Greek_iotaaccent : keysym = 0x7b4
-let _Greek_iotadieresis : keysym = 0x7b5
-let _Greek_iotaaccentdieresis : keysym = 0x7b6
-let _Greek_omicronaccent : keysym = 0x7b7
-let _Greek_upsilonaccent : keysym = 0x7b8
-let _Greek_upsilondieresis : keysym = 0x7b9
-let _Greek_upsilonaccentdieresis : keysym = 0x7ba
-let _Greek_omegaaccent : keysym = 0x7bb
-let _Greek_ALPHA : keysym = 0x7c1
-let _Greek_BETA : keysym = 0x7c2
-let _Greek_GAMMA : keysym = 0x7c3
-let _Greek_DELTA : keysym = 0x7c4
-let _Greek_EPSILON : keysym = 0x7c5
-let _Greek_ZETA : keysym = 0x7c6
-let _Greek_ETA : keysym = 0x7c7
-let _Greek_THETA : keysym = 0x7c8
-let _Greek_IOTA : keysym = 0x7c9
-let _Greek_KAPPA : keysym = 0x7ca
-let _Greek_LAMDA : keysym = 0x7cb
-let _Greek_LAMBDA : keysym = 0x7cb
-let _Greek_MU : keysym = 0x7cc
-let _Greek_NU : keysym = 0x7cd
-let _Greek_XI : keysym = 0x7ce
-let _Greek_OMICRON : keysym = 0x7cf
-let _Greek_PI : keysym = 0x7d0
-let _Greek_RHO : keysym = 0x7d1
-let _Greek_SIGMA : keysym = 0x7d2
-let _Greek_TAU : keysym = 0x7d4
-let _Greek_UPSILON : keysym = 0x7d5
-let _Greek_PHI : keysym = 0x7d6
-let _Greek_CHI : keysym = 0x7d7
-let _Greek_PSI : keysym = 0x7d8
-let _Greek_OMEGA : keysym = 0x7d9
-let _Greek_alpha : keysym = 0x7e1
-let _Greek_beta : keysym = 0x7e2
-let _Greek_gamma : keysym = 0x7e3
-let _Greek_delta : keysym = 0x7e4
-let _Greek_epsilon : keysym = 0x7e5
-let _Greek_zeta : keysym = 0x7e6
-let _Greek_eta : keysym = 0x7e7
-let _Greek_theta : keysym = 0x7e8
-let _Greek_iota : keysym = 0x7e9
-let _Greek_kappa : keysym = 0x7ea
-let _Greek_lamda : keysym = 0x7eb
-let _Greek_lambda : keysym = 0x7eb
-let _Greek_mu : keysym = 0x7ec
-let _Greek_nu : keysym = 0x7ed
-let _Greek_xi : keysym = 0x7ee
-let _Greek_omicron : keysym = 0x7ef
-let _Greek_pi : keysym = 0x7f0
-let _Greek_rho : keysym = 0x7f1
-let _Greek_sigma : keysym = 0x7f2
-let _Greek_finalsmallsigma : keysym = 0x7f3
-let _Greek_tau : keysym = 0x7f4
-let _Greek_upsilon : keysym = 0x7f5
-let _Greek_phi : keysym = 0x7f6
-let _Greek_chi : keysym = 0x7f7
-let _Greek_psi : keysym = 0x7f8
-let _Greek_omega : keysym = 0x7f9
-let _Greek_switch : keysym = 0xFF7E
-let _leftradical : keysym = 0x8a1
-let _topleftradical : keysym = 0x8a2
-let _horizconnector : keysym = 0x8a3
-let _topintegral : keysym = 0x8a4
-let _botintegral : keysym = 0x8a5
-let _vertconnector : keysym = 0x8a6
-let _topleftsqbracket : keysym = 0x8a7
-let _botleftsqbracket : keysym = 0x8a8
-let _toprightsqbracket : keysym = 0x8a9
-let _botrightsqbracket : keysym = 0x8aa
-let _topleftparens : keysym = 0x8ab
-let _botleftparens : keysym = 0x8ac
-let _toprightparens : keysym = 0x8ad
-let _botrightparens : keysym = 0x8ae
-let _leftmiddlecurlybrace : keysym = 0x8af
-let _rightmiddlecurlybrace : keysym = 0x8b0
-let _topleftsummation : keysym = 0x8b1
-let _botleftsummation : keysym = 0x8b2
-let _topvertsummationconnector : keysym = 0x8b3
-let _botvertsummationconnector : keysym = 0x8b4
-let _toprightsummation : keysym = 0x8b5
-let _botrightsummation : keysym = 0x8b6
-let _rightmiddlesummation : keysym = 0x8b7
-let _lessthanequal : keysym = 0x8bc
-let _notequal : keysym = 0x8bd
-let _greaterthanequal : keysym = 0x8be
-let _integral : keysym = 0x8bf
-let _therefore : keysym = 0x8c0
-let _variation : keysym = 0x8c1
-let _infinity : keysym = 0x8c2
-let _nabla : keysym = 0x8c5
-let _approximate : keysym = 0x8c8
-let _similarequal : keysym = 0x8c9
-let _ifonlyif : keysym = 0x8cd
-let _implies : keysym = 0x8ce
-let _identical : keysym = 0x8cf
-let _radical : keysym = 0x8d6
-let _includedin : keysym = 0x8da
-let _includes : keysym = 0x8db
-let _intersection : keysym = 0x8dc
-let _union : keysym = 0x8dd
-let _logicaland : keysym = 0x8de
-let _logicalor : keysym = 0x8df
-let _partialderivative : keysym = 0x8ef
-let _function : keysym = 0x8f6
-let _leftarrow : keysym = 0x8fb
-let _uparrow : keysym = 0x8fc
-let _rightarrow : keysym = 0x8fd
-let _downarrow : keysym = 0x8fe
-let _blank : keysym = 0x9df
-let _soliddiamond : keysym = 0x9e0
-let _checkerboard : keysym = 0x9e1
-let _ht : keysym = 0x9e2
-let _ff : keysym = 0x9e3
-let _cr : keysym = 0x9e4
-let _lf : keysym = 0x9e5
-let _nl : keysym = 0x9e8
-let _vt : keysym = 0x9e9
-let _lowrightcorner : keysym = 0x9ea
-let _uprightcorner : keysym = 0x9eb
-let _upleftcorner : keysym = 0x9ec
-let _lowleftcorner : keysym = 0x9ed
-let _crossinglines : keysym = 0x9ee
-let _horizlinescan1 : keysym = 0x9ef
-let _horizlinescan3 : keysym = 0x9f0
-let _horizlinescan5 : keysym = 0x9f1
-let _horizlinescan7 : keysym = 0x9f2
-let _horizlinescan9 : keysym = 0x9f3
-let _leftt : keysym = 0x9f4
-let _rightt : keysym = 0x9f5
-let _bott : keysym = 0x9f6
-let _topt : keysym = 0x9f7
-let _vertbar : keysym = 0x9f8
-let _emspace : keysym = 0xaa1
-let _enspace : keysym = 0xaa2
-let _em3space : keysym = 0xaa3
-let _em4space : keysym = 0xaa4
-let _digitspace : keysym = 0xaa5
-let _punctspace : keysym = 0xaa6
-let _thinspace : keysym = 0xaa7
-let _hairspace : keysym = 0xaa8
-let _emdash : keysym = 0xaa9
-let _endash : keysym = 0xaaa
-let _signifblank : keysym = 0xaac
-let _ellipsis : keysym = 0xaae
-let _doubbaselinedot : keysym = 0xaaf
-let _onethird : keysym = 0xab0
-let _twothirds : keysym = 0xab1
-let _onefifth : keysym = 0xab2
-let _twofifths : keysym = 0xab3
-let _threefifths : keysym = 0xab4
-let _fourfifths : keysym = 0xab5
-let _onesixth : keysym = 0xab6
-let _fivesixths : keysym = 0xab7
-let _careof : keysym = 0xab8
-let _figdash : keysym = 0xabb
-let _leftanglebracket : keysym = 0xabc
-let _decimalpoint : keysym = 0xabd
-let _rightanglebracket : keysym = 0xabe
-let _marker : keysym = 0xabf
-let _oneeighth : keysym = 0xac3
-let _threeeighths : keysym = 0xac4
-let _fiveeighths : keysym = 0xac5
-let _seveneighths : keysym = 0xac6
-let _trademark : keysym = 0xac9
-let _signaturemark : keysym = 0xaca
-let _trademarkincircle : keysym = 0xacb
-let _leftopentriangle : keysym = 0xacc
-let _rightopentriangle : keysym = 0xacd
-let _emopencircle : keysym = 0xace
-let _emopenrectangle : keysym = 0xacf
-let _leftsinglequotemark : keysym = 0xad0
-let _rightsinglequotemark : keysym = 0xad1
-let _leftdoublequotemark : keysym = 0xad2
-let _rightdoublequotemark : keysym = 0xad3
-let _prescription : keysym = 0xad4
-let _minutes : keysym = 0xad6
-let _seconds : keysym = 0xad7
-let _latincross : keysym = 0xad9
-let _hexagram : keysym = 0xada
-let _filledrectbullet : keysym = 0xadb
-let _filledlefttribullet : keysym = 0xadc
-let _filledrighttribullet : keysym = 0xadd
-let _emfilledcircle : keysym = 0xade
-let _emfilledrect : keysym = 0xadf
-let _enopencircbullet : keysym = 0xae0
-let _enopensquarebullet : keysym = 0xae1
-let _openrectbullet : keysym = 0xae2
-let _opentribulletup : keysym = 0xae3
-let _opentribulletdown : keysym = 0xae4
-let _openstar : keysym = 0xae5
-let _enfilledcircbullet : keysym = 0xae6
-let _enfilledsqbullet : keysym = 0xae7
-let _filledtribulletup : keysym = 0xae8
-let _filledtribulletdown : keysym = 0xae9
-let _leftpointer : keysym = 0xaea
-let _rightpointer : keysym = 0xaeb
-let _club : keysym = 0xaec
-let _diamond : keysym = 0xaed
-let _heart : keysym = 0xaee
-let _maltesecross : keysym = 0xaf0
-let _dagger : keysym = 0xaf1
-let _doubledagger : keysym = 0xaf2
-let _checkmark : keysym = 0xaf3
-let _ballotcross : keysym = 0xaf4
-let _musicalsharp : keysym = 0xaf5
-let _musicalflat : keysym = 0xaf6
-let _malesymbol : keysym = 0xaf7
-let _femalesymbol : keysym = 0xaf8
-let _telephone : keysym = 0xaf9
-let _telephonerecorder : keysym = 0xafa
-let _phonographcopyright : keysym = 0xafb
-let _caret : keysym = 0xafc
-let _singlelowquotemark : keysym = 0xafd
-let _doublelowquotemark : keysym = 0xafe
-let _cursor : keysym = 0xaff
-let _leftcaret : keysym = 0xba3
-let _rightcaret : keysym = 0xba6
-let _downcaret : keysym = 0xba8
-let _upcaret : keysym = 0xba9
-let _overbar : keysym = 0xbc0
-let _downtack : keysym = 0xbc2
-let _upshoe : keysym = 0xbc3
-let _downstile : keysym = 0xbc4
-let _underbar : keysym = 0xbc6
-let _jot : keysym = 0xbca
-let _quad : keysym = 0xbcc
-let _uptack : keysym = 0xbce
-let _circle : keysym = 0xbcf
-let _upstile : keysym = 0xbd3
-let _downshoe : keysym = 0xbd6
-let _rightshoe : keysym = 0xbd8
-let _leftshoe : keysym = 0xbda
-let _lefttack : keysym = 0xbdc
-let _righttack : keysym = 0xbfc
-let _hebrew_doublelowline : keysym = 0xcdf
-let _hebrew_aleph : keysym = 0xce0
-let _hebrew_bet : keysym = 0xce1
-let _hebrew_beth : keysym = 0xce1
-let _hebrew_gimel : keysym = 0xce2
-let _hebrew_gimmel : keysym = 0xce2
-let _hebrew_dalet : keysym = 0xce3
-let _hebrew_daleth : keysym = 0xce3
-let _hebrew_he : keysym = 0xce4
-let _hebrew_waw : keysym = 0xce5
-let _hebrew_zain : keysym = 0xce6
-let _hebrew_zayin : keysym = 0xce6
-let _hebrew_chet : keysym = 0xce7
-let _hebrew_het : keysym = 0xce7
-let _hebrew_tet : keysym = 0xce8
-let _hebrew_teth : keysym = 0xce8
-let _hebrew_yod : keysym = 0xce9
-let _hebrew_finalkaph : keysym = 0xcea
-let _hebrew_kaph : keysym = 0xceb
-let _hebrew_lamed : keysym = 0xcec
-let _hebrew_finalmem : keysym = 0xced
-let _hebrew_mem : keysym = 0xcee
-let _hebrew_finalnun : keysym = 0xcef
-let _hebrew_nun : keysym = 0xcf0
-let _hebrew_samech : keysym = 0xcf1
-let _hebrew_samekh : keysym = 0xcf1
-let _hebrew_ayin : keysym = 0xcf2
-let _hebrew_finalpe : keysym = 0xcf3
-let _hebrew_pe : keysym = 0xcf4
-let _hebrew_finalzade : keysym = 0xcf5
-let _hebrew_finalzadi : keysym = 0xcf5
-let _hebrew_zade : keysym = 0xcf6
-let _hebrew_zadi : keysym = 0xcf6
-let _hebrew_qoph : keysym = 0xcf7
-let _hebrew_kuf : keysym = 0xcf7
-let _hebrew_resh : keysym = 0xcf8
-let _hebrew_shin : keysym = 0xcf9
-let _hebrew_taw : keysym = 0xcfa
-let _hebrew_taf : keysym = 0xcfa
-let _Hebrew_switch : keysym = 0xFF7E
-let _Thai_kokai : keysym = 0xda1
-let _Thai_khokhai : keysym = 0xda2
-let _Thai_khokhuat : keysym = 0xda3
-let _Thai_khokhwai : keysym = 0xda4
-let _Thai_khokhon : keysym = 0xda5
-let _Thai_khorakhang : keysym = 0xda6
-let _Thai_ngongu : keysym = 0xda7
-let _Thai_chochan : keysym = 0xda8
-let _Thai_choching : keysym = 0xda9
-let _Thai_chochang : keysym = 0xdaa
-let _Thai_soso : keysym = 0xdab
-let _Thai_chochoe : keysym = 0xdac
-let _Thai_yoying : keysym = 0xdad
-let _Thai_dochada : keysym = 0xdae
-let _Thai_topatak : keysym = 0xdaf
-let _Thai_thothan : keysym = 0xdb0
-let _Thai_thonangmontho : keysym = 0xdb1
-let _Thai_thophuthao : keysym = 0xdb2
-let _Thai_nonen : keysym = 0xdb3
-let _Thai_dodek : keysym = 0xdb4
-let _Thai_totao : keysym = 0xdb5
-let _Thai_thothung : keysym = 0xdb6
-let _Thai_thothahan : keysym = 0xdb7
-let _Thai_thothong : keysym = 0xdb8
-let _Thai_nonu : keysym = 0xdb9
-let _Thai_bobaimai : keysym = 0xdba
-let _Thai_popla : keysym = 0xdbb
-let _Thai_phophung : keysym = 0xdbc
-let _Thai_fofa : keysym = 0xdbd
-let _Thai_phophan : keysym = 0xdbe
-let _Thai_fofan : keysym = 0xdbf
-let _Thai_phosamphao : keysym = 0xdc0
-let _Thai_moma : keysym = 0xdc1
-let _Thai_yoyak : keysym = 0xdc2
-let _Thai_rorua : keysym = 0xdc3
-let _Thai_ru : keysym = 0xdc4
-let _Thai_loling : keysym = 0xdc5
-let _Thai_lu : keysym = 0xdc6
-let _Thai_wowaen : keysym = 0xdc7
-let _Thai_sosala : keysym = 0xdc8
-let _Thai_sorusi : keysym = 0xdc9
-let _Thai_sosua : keysym = 0xdca
-let _Thai_hohip : keysym = 0xdcb
-let _Thai_lochula : keysym = 0xdcc
-let _Thai_oang : keysym = 0xdcd
-let _Thai_honokhuk : keysym = 0xdce
-let _Thai_paiyannoi : keysym = 0xdcf
-let _Thai_saraa : keysym = 0xdd0
-let _Thai_maihanakat : keysym = 0xdd1
-let _Thai_saraaa : keysym = 0xdd2
-let _Thai_saraam : keysym = 0xdd3
-let _Thai_sarai : keysym = 0xdd4
-let _Thai_saraii : keysym = 0xdd5
-let _Thai_saraue : keysym = 0xdd6
-let _Thai_sarauee : keysym = 0xdd7
-let _Thai_sarau : keysym = 0xdd8
-let _Thai_sarauu : keysym = 0xdd9
-let _Thai_phinthu : keysym = 0xdda
-let _Thai_maihanakat_maitho : keysym = 0xdde
-let _Thai_baht : keysym = 0xddf
-let _Thai_sarae : keysym = 0xde0
-let _Thai_saraae : keysym = 0xde1
-let _Thai_sarao : keysym = 0xde2
-let _Thai_saraaimaimuan : keysym = 0xde3
-let _Thai_saraaimaimalai : keysym = 0xde4
-let _Thai_lakkhangyao : keysym = 0xde5
-let _Thai_maiyamok : keysym = 0xde6
-let _Thai_maitaikhu : keysym = 0xde7
-let _Thai_maiek : keysym = 0xde8
-let _Thai_maitho : keysym = 0xde9
-let _Thai_maitri : keysym = 0xdea
-let _Thai_maichattawa : keysym = 0xdeb
-let _Thai_thanthakhat : keysym = 0xdec
-let _Thai_nikhahit : keysym = 0xded
-let _Thai_leksun : keysym = 0xdf0
-let _Thai_leknung : keysym = 0xdf1
-let _Thai_leksong : keysym = 0xdf2
-let _Thai_leksam : keysym = 0xdf3
-let _Thai_leksi : keysym = 0xdf4
-let _Thai_lekha : keysym = 0xdf5
-let _Thai_lekhok : keysym = 0xdf6
-let _Thai_lekchet : keysym = 0xdf7
-let _Thai_lekpaet : keysym = 0xdf8
-let _Thai_lekkao : keysym = 0xdf9
-let _Hangul : keysym = 0xff31
-let _Hangul_Start : keysym = 0xff32
-let _Hangul_End : keysym = 0xff33
-let _Hangul_Hanja : keysym = 0xff34
-let _Hangul_Jamo : keysym = 0xff35
-let _Hangul_Romaja : keysym = 0xff36
-let _Hangul_Codeinput : keysym = 0xff37
-let _Hangul_Jeonja : keysym = 0xff38
-let _Hangul_Banja : keysym = 0xff39
-let _Hangul_PreHanja : keysym = 0xff3a
-let _Hangul_PostHanja : keysym = 0xff3b
-let _Hangul_SingleCandidate : keysym = 0xff3c
-let _Hangul_MultipleCandidate : keysym = 0xff3d
-let _Hangul_PreviousCandidate : keysym = 0xff3e
-let _Hangul_Special : keysym = 0xff3f
-let _Hangul_switch : keysym = 0xFF7E
-let _Hangul_Kiyeog : keysym = 0xea1
-let _Hangul_SsangKiyeog : keysym = 0xea2
-let _Hangul_KiyeogSios : keysym = 0xea3
-let _Hangul_Nieun : keysym = 0xea4
-let _Hangul_NieunJieuj : keysym = 0xea5
-let _Hangul_NieunHieuh : keysym = 0xea6
-let _Hangul_Dikeud : keysym = 0xea7
-let _Hangul_SsangDikeud : keysym = 0xea8
-let _Hangul_Rieul : keysym = 0xea9
-let _Hangul_RieulKiyeog : keysym = 0xeaa
-let _Hangul_RieulMieum : keysym = 0xeab
-let _Hangul_RieulPieub : keysym = 0xeac
-let _Hangul_RieulSios : keysym = 0xead
-let _Hangul_RieulTieut : keysym = 0xeae
-let _Hangul_RieulPhieuf : keysym = 0xeaf
-let _Hangul_RieulHieuh : keysym = 0xeb0
-let _Hangul_Mieum : keysym = 0xeb1
-let _Hangul_Pieub : keysym = 0xeb2
-let _Hangul_SsangPieub : keysym = 0xeb3
-let _Hangul_PieubSios : keysym = 0xeb4
-let _Hangul_Sios : keysym = 0xeb5
-let _Hangul_SsangSios : keysym = 0xeb6
-let _Hangul_Ieung : keysym = 0xeb7
-let _Hangul_Jieuj : keysym = 0xeb8
-let _Hangul_SsangJieuj : keysym = 0xeb9
-let _Hangul_Cieuc : keysym = 0xeba
-let _Hangul_Khieuq : keysym = 0xebb
-let _Hangul_Tieut : keysym = 0xebc
-let _Hangul_Phieuf : keysym = 0xebd
-let _Hangul_Hieuh : keysym = 0xebe
-let _Hangul_A : keysym = 0xebf
-let _Hangul_AE : keysym = 0xec0
-let _Hangul_YA : keysym = 0xec1
-let _Hangul_YAE : keysym = 0xec2
-let _Hangul_EO : keysym = 0xec3
-let _Hangul_E : keysym = 0xec4
-let _Hangul_YEO : keysym = 0xec5
-let _Hangul_YE : keysym = 0xec6
-let _Hangul_O : keysym = 0xec7
-let _Hangul_WA : keysym = 0xec8
-let _Hangul_WAE : keysym = 0xec9
-let _Hangul_OE : keysym = 0xeca
-let _Hangul_YO : keysym = 0xecb
-let _Hangul_U : keysym = 0xecc
-let _Hangul_WEO : keysym = 0xecd
-let _Hangul_WE : keysym = 0xece
-let _Hangul_WI : keysym = 0xecf
-let _Hangul_YU : keysym = 0xed0
-let _Hangul_EU : keysym = 0xed1
-let _Hangul_YI : keysym = 0xed2
-let _Hangul_I : keysym = 0xed3
-let _Hangul_J_Kiyeog : keysym = 0xed4
-let _Hangul_J_SsangKiyeog : keysym = 0xed5
-let _Hangul_J_KiyeogSios : keysym = 0xed6
-let _Hangul_J_Nieun : keysym = 0xed7
-let _Hangul_J_NieunJieuj : keysym = 0xed8
-let _Hangul_J_NieunHieuh : keysym = 0xed9
-let _Hangul_J_Dikeud : keysym = 0xeda
-let _Hangul_J_Rieul : keysym = 0xedb
-let _Hangul_J_RieulKiyeog : keysym = 0xedc
-let _Hangul_J_RieulMieum : keysym = 0xedd
-let _Hangul_J_RieulPieub : keysym = 0xede
-let _Hangul_J_RieulSios : keysym = 0xedf
-let _Hangul_J_RieulTieut : keysym = 0xee0
-let _Hangul_J_RieulPhieuf : keysym = 0xee1
-let _Hangul_J_RieulHieuh : keysym = 0xee2
-let _Hangul_J_Mieum : keysym = 0xee3
-let _Hangul_J_Pieub : keysym = 0xee4
-let _Hangul_J_PieubSios : keysym = 0xee5
-let _Hangul_J_Sios : keysym = 0xee6
-let _Hangul_J_SsangSios : keysym = 0xee7
-let _Hangul_J_Ieung : keysym = 0xee8
-let _Hangul_J_Jieuj : keysym = 0xee9
-let _Hangul_J_Cieuc : keysym = 0xeea
-let _Hangul_J_Khieuq : keysym = 0xeeb
-let _Hangul_J_Tieut : keysym = 0xeec
-let _Hangul_J_Phieuf : keysym = 0xeed
-let _Hangul_J_Hieuh : keysym = 0xeee
-let _Hangul_RieulYeorinHieuh : keysym = 0xeef
-let _Hangul_SunkyeongeumMieum : keysym = 0xef0
-let _Hangul_SunkyeongeumPieub : keysym = 0xef1
-let _Hangul_PanSios : keysym = 0xef2
-let _Hangul_KkogjiDalrinIeung : keysym = 0xef3
-let _Hangul_SunkyeongeumPhieuf : keysym = 0xef4
-let _Hangul_YeorinHieuh : keysym = 0xef5
-let _Hangul_AraeA : keysym = 0xef6
-let _Hangul_AraeAE : keysym = 0xef7
-let _Hangul_J_PanSios : keysym = 0xef8
-let _Hangul_J_KkogjiDalrinIeung : keysym = 0xef9
-let _Hangul_J_YeorinHieuh : keysym = 0xefa
-let _Korean_Won : keysym = 0xeff
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk_tags.var b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gdk_tags.var
deleted file mode 100644 (file)
index a443fc0..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-(* $Id$ *)
-
-exception ml_raise_gdk
-
-type gdkEventType = "GDK_"
-  [ `NOTHING | `DELETE | `DESTROY | `EXPOSE | `MOTION_NOTIFY | `BUTTON_PRESS
-  | `TWO_BUTTON_PRESS "GDK_2BUTTON_PRESS"
-  | `THREE_BUTTON_PRESS "GDK_3BUTTON_PRESS"
-  | `BUTTON_RELEASE | `KEY_PRESS
-  | `KEY_RELEASE | `ENTER_NOTIFY | `LEAVE_NOTIFY | `FOCUS_CHANGE
-  | `CONFIGURE | `MAP | `UNMAP | `PROPERTY_NOTIFY | `SELECTION_CLEAR
-  | `SELECTION_REQUEST | `SELECTION_NOTIFY | `PROXIMITY_IN
-  | `PROXIMITY_OUT
-  | `DRAG_ENTER | `DRAG_LEAVE | `DRAG_MOTION | `DRAG_STATUS
-  | `DROP_START | `DROP_FINISHED | `CLIENT_EVENT | `VISIBILITY_NOTIFY
-  | `NO_EXPOSE ]
-
-type event_mask = "GDK_"
-  [ `EXPOSURE
-  | `POINTER_MOTION | `POINTER_MOTION_HINT
-  | `BUTTON_MOTION | `BUTTON1_MOTION | `BUTTON2_MOTION | `BUTTON3_MOTION
-  | `BUTTON_PRESS | `BUTTON_RELEASE
-  | `KEY_PRESS | `KEY_RELEASE
-  | `ENTER_NOTIFY | `LEAVE_NOTIFY | `FOCUS_CHANGE
-  | `STRUCTURE | `PROPERTY_CHANGE | `VISIBILITY_NOTIFY
-  | `PROXIMITY_IN | `PROXIMITY_OUT | `SUBSTRUCTURE
-  | `ALL_EVENTS ] "_MASK"
-
-type public extension_events = "GDK_EXTENSION_EVENTS_"
-  [ `NONE | `ALL | `CURSOR ]
-
-type gdkVisibilityState = "GDK_VISIBILITY_"
-  [ `UNOBSCURED | `PARTIAL | `FULLY_OBSCURED ]
-
-type gdkInputSource = "GDK_SOURCE_"
-  [ `MOUSE | `PEN | `ERASER | `CURSOR ]
-
-type gdkCrossingMode = "GDK_CROSSING_"
-  [ `NORMAL | `GRAB | `UNGRAB ]
-
-type gdkNotifyType = "GDK_NOTIFY_"
-  [ `ANCESTOR | `VIRTUAL | `INFERIOR | `NONLINEAR | `NONLINEAR_VIRTUAL
-  | `UNKNOWN ] 
-
-type gdkFillRule = "GDK_"
-  [ `EVEN_ODD_RULE | `WINDING_RULE ]
-
-type gdkOverlapType = "GDK_OVERLAP_RECTANGLE_"
-  [ `IN | `OUT | `PART ]
-
-type gdkFunction = "GDK_"
-  [ `COPY | `INVERT | `XOR ]
-
-type gdkFill = "GDK_"
-  [ `SOLID | `TILED | `STIPPLED | `OPAQUE_STIPPLED ]
-
-type gdkSubwindowMode = "GDK_"
-  [ `CLIP_BY_CHILDREN | `INCLUDE_INFERIORS ]
-
-type gdkLineStyle = "GDK_LINE_"
-  [ `SOLID | `ON_OFF_DASH | `DOUBLE_DASH ]
-
-type gdkCapStyle = "GDK_CAP_"
-  [ `NOT_LAST | `BUTT | `ROUND | `PROJECTING ]
-
-type gdkJoinStyle = "GDK_JOIN_"
-  [ `MITER | `ROUND | `BEVEL ]
-
-type gdkModifier = "GDK_"
-  [ `SHIFT | `LOCK | `CONTROL | `MOD1 | `MOD2 | `MOD3 | `MOD4 | `MOD5
-  | `BUTTON1 | `BUTTON2 | `BUTTON3 | `BUTTON4 | `BUTTON5 ] "_MASK"
-
-type gdkImageType = "GDK_IMAGE_"
-  [ `NORMAL | `SHARED | `FASTEST ]
-
-type gdkVisualType = "GDK_VISUAL_"
-  [ `STATIC_GRAY | `GRAYSCALE | `STATIC_COLOR | `PSEUDO_COLOR
-  | `TRUE_COLOR | `DIRECT_COLOR ]
-
-type gdkFontType = "GDK_FONT_"
-  [ `FONT | `FONTSET ]
-
-type gdkDragAction = "GDK_ACTION_"
-  [ `DEFAULT | `COPY | `MOVE | `LINK | `PRIVATE | `ASK ]
-
-type gdkCursorType = "GDK_" [
-  | `NUM_GLYPHS
-  | `X_CURSOR
-  | `ARROW
-  | `BASED_ARROW_DOWN
-  | `BASED_ARROW_UP
-  | `BOAT
-  | `BOGOSITY
-  | `BOTTOM_LEFT_CORNER
-  | `BOTTOM_RIGHT_CORNER
-  | `BOTTOM_SIDE
-  | `BOTTOM_TEE
-  | `BOX_SPIRAL
-  | `CENTER_PTR
-  | `CIRCLE
-  | `CLOCK
-  | `COFFEE_MUG
-  | `CROSS
-  | `CROSS_REVERSE
-  | `CROSSHAIR
-  | `DIAMOND_CROSS
-  | `DOT
-  | `DOTBOX
-  | `DOUBLE_ARROW
-  | `DRAFT_LARGE
-  | `DRAFT_SMALL
-  | `DRAPED_BOX
-  | `EXCHANGE
-  | `FLEUR
-  | `GOBBLER
-  | `GUMBY
-  | `HAND1
-  | `HAND2
-  | `HEART
-  | `ICON
-  | `IRON_CROSS
-  | `LEFT_PTR
-  | `LEFT_SIDE
-  | `LEFT_TEE
-  | `LEFTBUTTON
-  | `LL_ANGLE
-  | `LR_ANGLE
-  | `MAN
-  | `MIDDLEBUTTON
-  | `MOUSE
-  | `PENCIL
-  | `PIRATE
-  | `PLUS
-  | `QUESTION_ARROW
-  | `RIGHT_PTR
-  | `RIGHT_SIDE
-  | `RIGHT_TEE
-  | `RIGHTBUTTON
-  | `RTL_LOGO
-  | `SAILBOAT
-  | `SB_DOWN_ARROW
-  | `SB_H_DOUBLE_ARROW
-  | `SB_LEFT_ARROW
-  | `SB_RIGHT_ARROW
-  | `SB_UP_ARROW
-  | `SB_V_DOUBLE_ARROW
-  | `SHUTTLE
-  | `SIZING
-  | `SPIDER
-  | `SPRAYCAN
-  | `STAR
-  | `TARGET
-  | `TCROSS
-  | `TOP_LEFT_ARROW
-  | `TOP_LEFT_CORNER
-  | `TOP_RIGHT_CORNER
-  | `TOP_SIDE
-  | `TOP_TEE
-  | `TREK
-  | `UL_ANGLE
-  | `UMBRELLA
-  | `UR_ANGLE
-  | `WATCH
-  | `XTERM
-  ]
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.ml
deleted file mode 100644 (file)
index c7020a4..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-
-type visual_options = [
-  | `USE_GL
-  | `BUFFER_SIZE of int
-  | `LEVEL of int
-  | `RGBA
-  | `DOUBLEBUFFER
-  | `STEREO
-  | `AUX_BUFFERS of int
-  | `RED_SIZE of int
-  | `GREEN_SIZE of int
-  | `BLUE_SIZE of int
-  | `ALPHA_SIZE of int
-  | `DEPTH_SIZE of int
-  | `STENCIL_SIZE of int
-  | `ACCUM_GREEN_SIZE of int
-  | `ACCUM_ALPHA_SIZE of int
-]
-
-type gl_area = [`widget|`drawing|`glarea]
-
-module Raw = struct
-  external create :
-    visual_options list -> share:[>`glarea] optobj -> gl_area obj
-    = "ml_gtk_gl_area_new"
-
-  external swap_buffers : [>`glarea] obj -> unit
-    = "ml_gtk_gl_area_swapbuffers"
-
-  external make_current : [>`glarea] obj -> bool
-    = "ml_gtk_gl_area_make_current"
-end
-
-class area_signals obj =
-object (connect)
-  inherit GObj.widget_signals obj
-  method display ~callback =
-    (new GObj.event_signals ~after obj)#expose ~callback:
-      begin fun ev ->
-       if GdkEvent.Expose.count ev = 0 then
-         if Raw.make_current obj then callback ()
-         else prerr_endline "GlGtk-WARNING **: could not make current";
-       true
-      end
-  method reshape ~callback =
-    (new GObj.event_signals ~after obj)#configure ~callback:
-      begin fun ev ->
-       if Raw.make_current obj then begin
-         callback ~width:(GdkEvent.Configure.width ev)
-           ~height:(GdkEvent.Configure.height ev)
-       end
-       else prerr_endline "GlGtk-WARNING **: could not make current";
-       true
-      end
-  method realize ~callback =
-    let connect = new GObj.misc_signals ~after (GtkBase.Widget.coerce obj) in
-    connect#realize ~callback:
-      begin fun ev ->
-       if Raw.make_current obj then callback ()
-       else prerr_endline "GlGtk-WARNING **: could not make current"
-      end
-end
-
-class area obj = object (self)
-  inherit GObj.widget (obj : gl_area obj)
-  method as_area = obj
-  method event = new GObj.event_ops obj
-  method connect = new area_signals obj
-  method set_size = GtkMisc.DrawingArea.size obj
-  method swap_buffers () = Raw.swap_buffers obj
-  method make_current () =
-    if not (Raw.make_current obj) then
-      raise (Gl.GLerror "make_current")
-end
-
-let area options ?share ?(width=0) ?(height=0) ?packing ?show () =
-  let share =
-    match share with Some (x : area) -> Some x#as_area | None -> None in
-  let w = Raw.create options ~share:(Gpointer.optboxed share) in
-  if width <> 0 || height <> 0 then GtkMisc.DrawingArea.size w ~width ~height;
-  GtkBase.Widget.add_events w [`EXPOSURE];
-  GObj.pack_return (new area w) ~packing ~show
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glGtk.mli
deleted file mode 100644 (file)
index 599f24a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-open GObj
-
-type visual_options = [
-    `USE_GL
-  | `BUFFER_SIZE of int
-  | `LEVEL of int
-  | `RGBA
-  | `DOUBLEBUFFER
-  | `STEREO
-  | `AUX_BUFFERS of int
-  | `RED_SIZE of int
-  | `GREEN_SIZE of int
-  | `BLUE_SIZE of int
-  | `ALPHA_SIZE of int
-  | `DEPTH_SIZE of int
-  | `STENCIL_SIZE of int
-  | `ACCUM_GREEN_SIZE of int
-  | `ACCUM_ALPHA_SIZE of int
-]
-type gl_area = [`widget|`drawing|`glarea]
-
-module Raw :
-  sig
-    external create :
-      visual_options list -> share:[>`glarea] optobj -> gl_area obj
-      = "ml_gtk_gl_area_new"
-    external swap_buffers : [>`glarea] obj -> unit
-      = "ml_gtk_gl_area_swapbuffers"
-    external make_current : [>`glarea] obj -> bool
-      = "ml_gtk_gl_area_make_current"
-  end
-
-class area_signals : 'a obj ->
-  object
-    inherit widget_signals
-    constraint 'a = [>`glarea|`widget]
-    val obj : 'a obj
-    method display : callback:(unit -> unit) -> GtkSignal.id
-    method realize : callback:(unit -> unit) -> GtkSignal.id
-    method reshape :
-      callback:(width:int -> height:int -> unit) -> GtkSignal.id
-  end
-
-class area : gl_area obj ->
-  object
-    inherit widget
-    val obj : gl_area obj
-    method event : event_ops
-    method as_area : gl_area obj
-    method connect : area_signals
-    method make_current : unit -> unit
-    method set_size : width:int -> height:int -> unit
-    method swap_buffers : unit -> unit
-  end
-
-val area :
-  visual_options list ->
-  ?share:area ->
-  ?width:int ->
-  ?height:int -> ?packing:(widget -> unit) -> ?show:bool -> unit -> area
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glib.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/glib.ml
deleted file mode 100644 (file)
index 2fd0140..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-(* $Id$ *)
-
-type warning_func = string -> unit
-
-external set_warning_handler : (string -> unit) -> warning_func
-    = "ml_g_set_warning_handler"
-
-type print_func = string -> unit
-
-external set_print_handler : (string -> unit) -> print_func
-    = "ml_g_set_print_handler"
-
-module Main = struct
-  type t
-  external create : bool -> t = "ml_g_main_new"
-  external iteration : bool -> bool = "ml_g_main_iteration"
-  external pending : unit -> bool = "ml_g_main_pending"
-  external is_running : t -> bool = "ml_g_main_is_running"
-  external quit : t -> unit = "ml_g_main_quit"
-  external destroy : t -> unit = "ml_g_main_destroy"
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gpointer.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gpointer.ml
deleted file mode 100644 (file)
index 7d28a1f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-(* $Id$ *)
-
-(* marked pointers *)
-type 'a optaddr
-
-let optaddr : 'a option -> 'a optaddr =
-  function
-      None -> Obj.magic 0
-    | Some x -> Obj.magic x
-
-(* naked pointers *)
-type optstring
-
-external get_null : unit -> optstring = "ml_get_null"
-let raw_null = get_null ()
-
-let optstring : string option -> optstring =
-  function
-      None -> raw_null
-    | Some x -> Obj.magic x
-
-(* boxed pointers *)
-type boxed
-let boxed_null : boxed = Obj.magic (0, raw_null)
-
-type 'a optboxed
-
-let optboxed : 'a option -> 'a optboxed =
-  function
-      None -> Obj.magic boxed_null
-    | Some obj -> Obj.magic obj
-
-let may_box ~f obj : 'a optboxed =
-  match obj with
-    None -> Obj.magic boxed_null
-  | Some obj -> Obj.magic (f obj : 'a)
-
-(* Exceptions *)
-
-exception Null
-let _ =  Callback.register_exception "null_pointer" Null
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk.ml
deleted file mode 100644 (file)
index 0c7892e..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-(* $Id$ *)
-
-exception Error of string
-exception Warning of string
-exception Cannot_cast of string * string
-type 'a obj
-type 'a optobj = 'a obj Gpointer.optboxed
-type clampf = float
-
-module Tags = struct
-  type arrow_type = [ `UP|`DOWN|`LEFT|`RIGHT ]
-  type attach_options = [ `EXPAND|`SHRINK|`FILL ]
-  type direction_type = [ `TAB_FORWARD|`TAB_BACKWARD|`UP|`DOWN|`LEFT|`RIGHT ]
-  type justification = [ `LEFT|`RIGHT|`CENTER|`FILL ]
-  type match_type = [ `ALL|`ALL_TAIL|`HEAD|`TAIL|`EXACT|`LAST ]
-  type metric_type = [ `PIXELS|`INCHES|`CENTIMETERS ]
-  type orientation = [ `HORIZONTAL|`VERTICAL ]
-  type corner_type = [ `TOP_LEFT|`BOTTOM_LEFT|`TOP_RIGHT|`BOTTOM_RIGHT ]
-  type pack_type = [ `START|`END ]
-  type path_type = [ `WIDGET|`WIDGET_CLASS|`CLASS ]
-  type policy_type = [ `ALWAYS|`AUTOMATIC|`NEVER ]
-  type position = [ `LEFT|`RIGHT|`TOP|`BOTTOM ]
-  type preview_type = [ `COLOR|`GRAYSCALE ]
-  type relief_style = [ `NORMAL|`HALF|`NONE ]
-  type resize_mode = [ `PARENT|`QUEUE|`IMMEDIATE ]
-  type signal_run_type = [ `FIRST|`LAST|`BOTH|`NO_RECURSE|`ACTION|`NO_HOOKS ]
-  type scroll_type =
-      [ `NONE|`STEP_FORWARD|`STEP_BACKWARD|`PAGE_BACKWARD|`PAGE_FORWARD|`JUMP ]
-  type selection_mode = [ `SINGLE|`BROWSE|`MULTIPLE|`EXTENDED ]
-  type shadow_type = [ `NONE|`IN|`OUT|`ETCHED_IN|`ETCHED_OUT ]
-  type state_type = [ `NORMAL|`ACTIVE|`PRELIGHT|`SELECTED|`INSENSITIVE ] 
-  type submenu_direction = [ `LEFT|`RIGHT ]
-  type submenu_placement = [ `TOP_BOTTOM|`LEFT_RIGHT ]
-  type toolbar_style = [ `ICONS|`TEXT|`BOTH ]
-  type trough_type = [ `NONE|`START|`END|`JUMP ]
-  type update_type = [ `CONTINUOUS|`DISCONTINUOUS|`DELAYED ]
-  type visibility = [ `NONE|`PARTIAL|`FULL ]
-  type window_position = [ `NONE|`CENTER|`MOUSE|`CENTER_ALWAYS ]
-  type window_type = [ `TOPLEVEL|`DIALOG|`POPUP ]
-  type sort_type = [ `ASCENDING|`DESCENDING ]
-  type fundamental_type =
-    [ `INVALID|`NONE|`CHAR|`BOOL|`INT|`UINT|`LONG|`ULONG|`FLOAT|`DOUBLE
-     |`STRING|`ENUM|`FLAGS|`BOXED|`FOREIGN|`CALLBACK|`ARGS|`POINTER
-     |`SIGNAL|`C_CALLBACK|`OBJECT ]
-
-  type accel_flag = [ `VISIBLE|`SIGNAL_VISIBLE|`LOCKED ]
-  type button_box_style = [ `DEFAULT_STYLE|`SPREAD|`EDGE|`START|`END ]
-  type expand_type = [ `X|`Y|`BOTH|`NONE ]
-  type packer_options = [ `PACK_EXPAND|`FILL_X|`FILL_Y ]
-  type side_type = [ `TOP|`BOTTOM|`LEFT|`RIGHT ]
-  type anchor_type = [ `CENTER|`NORTH|`NW|`NE|`SOUTH|`SW|`SE|`WEST|`EAST ]
-  type update_policy = [ `ALWAYS|`IF_VALID|`SNAP_TO_TICKS ]
-  type cell_type = [ `EMPTY|`TEXT|`PIXMAP|`PIXTEXT|`WIDGET ]
-  type button_action = [ `SELECTS|`DRAGS|`EXPANDS ]
-  type calendar_display_options =
-    [ `SHOW_HEADING|`SHOW_DAY_NAMES|`NO_MONTH_CHANGE|`SHOW_WEEK_NUMBERS
-     |`WEEK_START_MONDAY ]
-  type spin_button_update_policy = [ `ALWAYS|`IF_VALID ]
-  type spin_type =
-    [ `STEP_FORWARD|`STEP_BACKWARD|`PAGE_FORWARD|`PAGE_BACKWARD
-     |`HOME|`END|`USER_DEFINED of float ]
-  type progress_bar_style = [ `CONTINUOUS|`DISCRETE ]
-  type progress_bar_orientation =
-    [ `LEFT_TO_RIGHT|`RIGHT_TO_LEFT|`BOTTOM_TO_TOP|`TOP_TO_BOTTOM ]
-  type dest_defaults = [ `MOTION|`HIGHLIGHT|`DROP|`ALL ]
-  type target_flags = [ `SAME_APP|`SAME_WIDGET ]
-  type font_metric_type = [ `PIXELS|`POINTS ]
-  type font_type = [ `BITMAP|`SCALABLE|`SCALABLE_BITMAP|`ALL ]
-  type font_filter_type = [ `BASE|`USER ]
-end
-open Tags
-
-type gtk_type
-type gtk_class
-
-type accel_group
-
-type style
-type 'a group = 'a obj option
-
-type statusbar_message
-type statusbar_context
-
-type color = { red: float; green: float; blue: float; opacity: float }
-type rectangle  = { x: int; y: int; width: int; height: int }
-type target_entry = { target: string; flags: target_flags list; info: int }
-
-type data = [`data]
-type adjustment = [`data|`adjustment]
-type tooltips = [`data|`tooltips]
-type widget = [`widget]
-type container = [`widget|`container]
-type alignment = [`widget|`container|`bin|`alignment]
-type event_box = [`widget|`container|`bin|`eventbox]
-type frame = [`widget|`container|`bin|`frame]
-type aspect_frame = [`widget|`container|`bin|`frame|`aspect]
-type handle_box = [`widget|`container|`bin|`handlebox]
-type invisible = [`widget|`container|`bin|`invisible]
-type item = [`widget|`container|`bin|`item]
-type list_item = [`widget|`container|`bin|`item|`listitem]
-type menu_item = [`widget|`container|`bin|`item|`menuitem]
-type check_menu_item = [`widget|`container|`bin|`item|`menuitem|`checkmenuitem]
-type radio_menu_item =
-    [`widget|`container|`bin|`item|`menuitem|`checkmenuitem|`radiomenuitem]
-type tree_item = [`widget|`container|`bin|`item|`treeitem]
-type viewport = [`widget|`container|`bin|`viewport]
-type window = [`widget|`container|`bin|`window]
-type color_selection_dialog = [`widget|`container|`window|`colorseldialog]
-type dialog = [`widget|`container|`bin|`window|`dialog]
-type input_dialog = [`widget|`container|`bin|`window|`dialog|`inputdialog]
-type file_selection = [`widget|`container|`bin|`window|`filesel]
-type font_selection_dialog = [`widget|`container|`bin|`window|`fontseldialog]
-type plug = [`widget|`container|`bin|`window|`plug]
-type box = [`widget|`container|`box]
-type button_box = [`widget|`container|`box|`bbox]
-type gamma_curve = [`widget|`container|`bbox|`gamma]
-type color_selection = [`widget|`container|`box|`colorsel]
-type combo = [`widget|`container|`box|`combo]
-type statusbar = [`widget|`container|`box|`statusbar]
-type button = [`widget|`container|`button]
-type toggle_button = [`widget|`container|`button|`toggle]
-type radio_button = [`widget|`container|`button|`toggle|`radio]
-type option_menu = [`widget|`container|`button|`optionmenu]
-type clist = [`widget|`container|`clist]
-type fixed = [`widget|`container|`fixed]
-type layout = [`widget|`container|`layout]
-type liste = [`widget|`container|`list]
-type menu_shell = [`widget|`container|`menushell]
-type menu = [`widget|`container|`menushell|`menu]
-type menu_bar = [`widget|`container|`menushell|`menubar]
-type notebook = [`widget|`container|`notebook]
-type font_selection = [`widget|`container|`notebook|`fontsel]
-type packer = [`widget|`container|`packer]
-type paned = [`widget|`container|`paned]
-type scrolled_window = [`widget|`container|`scrolled]
-type socket = [`widget|`container|`socket]
-type table = [`widget|`container|`table]
-type toolbar = [`widget|`container|`toolbar]
-type tree = [`widget|`container|`tree]
-type calendar = [`widget|`calendar]
-type drawing_area = [`widget|`drawing]
-type editable = [`widget|`editable]
-type entry = [`widget|`editable|`entry]
-type spin_button = [`widget|`editable|`entry|`spinbutton]
-type text = [`widget|`editable|`text]
-type misc = [`widget|`misc]
-type arrow = [`widget|`misc|`arrow]
-type image = [`widget|`misc|`image]
-type label = [`widget|`misc|`label]
-type tips_query = [`widget|`misc|`label|`tipsquery]
-type pixmap = [`widget|`misc|`pixmap]
-type progress = [`widget|`progress]
-type progress_bar = [`widget|`progress|`progressbar]
-type range = [`widget|`range]
-type scale = [`widget|`range|`scale]
-type scrollbar = [`widget|`range|`scrollbar]
-type ruler = [`widget|`ruler]
-type separator = [`widget|`separator]
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkArgv.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkArgv.ml
deleted file mode 100644 (file)
index 5e60c8d..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-
-type data =
-  | NONE
-  | CHAR of char
-  | BOOL of bool
-  | INT of int
-  | FLOAT of float
-  | STRING of string option
-  | OBJECT of unit obj option
-  | POINTER of Gpointer.boxed option
-
-type 'a result =
-  [ `NONE
-  | `CHAR of char | `BOOL of bool | `INT of int
-  | `UINT of int32 | `LONG of nativeint | `ULONG of nativeint
-  | `FLOAT of float | `DOUBLE of float
-  | `STRING of string option | `ENUM of int | `FLAGS of int32
-  | `BOXED of Gpointer.boxed option
-  | `POINTER of Gpointer.boxed option
-  | `OBJECT of 'a obj option ]
-
-module Arg = struct
-  type t
-  external shift : t -> pos:int -> t = "ml_gtk_arg_shift"
-  external get_type : t -> gtk_type = "ml_gtk_arg_get_type"
-  external get : t -> data = "ml_gtk_arg_get"
-  external set_retloc : t -> 'a result -> unit = "ml_gtk_arg_set_retloc"
-  external get_pointer : t -> Gpointer.boxed = "ml_gtk_arg_get_pointer"
-  external get_nativeint : t -> nativeint = "ml_gtk_arg_get_nativeint"
-
-  (* Safely get an argument *)
-  (*
-  external get_char : t -> char = "ml_gtk_arg_get_char"
-  external get_bool : t -> bool = "ml_gtk_arg_get_bool"
-  external get_int : t -> int = "ml_gtk_arg_get_int"
-  external get_float : t -> float = "ml_gtk_arg_get_float"
-  external get_string : t -> string option = "ml_gtk_arg_get_string"
-  external get_object : t -> unit obj option = "ml_gtk_arg_get_object"
-  *)
-  (* Safely set a result
-     Beware: this is not the opposite of get, arguments and results
-     are two different ways to use GtkArg. *)
-  (*
-  external set_char : t -> char -> unit = "ml_gtk_arg_set_char"
-  external set_bool : t -> bool -> unit = "ml_gtk_arg_set_bool"
-  external set_int : t -> int -> unit = "ml_gtk_arg_set_int"
-  external set_nativeint : t -> nativeint -> unit = "ml_gtk_arg_set_nativeint"
-  external set_float : t -> float -> unit = "ml_gtk_arg_set_float"
-  external set_string : t -> string -> unit = "ml_gtk_arg_set_string"
-  external set_pointer : t -> Gpointer.boxed -> unit = "ml_gtk_arg_set_pointer"
-  external set_object : t -> 'a obj -> unit = "ml_gtk_arg_set_object"
-  *)
-end
-
-open Arg
-type raw_obj
-type t = { referent: raw_obj; nargs: int; args: Arg.t }
-let nth arg ~pos =
-  if pos < 0 || pos >= arg.nargs then invalid_arg "GtkArg.Vect.nth";
-  shift arg.args ~pos
-let result arg =
-  if arg.nargs < 0 then invalid_arg "GtkArgv.result";
-  shift arg.args ~pos:arg.nargs
-external wrap_object : raw_obj -> unit obj = "Val_GtkObject"
-let referent arg =
-  if arg.referent == Obj.magic (-1) then invalid_arg "GtkArgv.referent";
-  wrap_object arg.referent
-let get_result_type arg = get_type (result arg)
-let get_type arg ~pos = get_type (nth arg ~pos)
-let get arg ~pos = get (nth arg ~pos)
-let set_result arg = set_retloc (result arg)
-
-let get_args arg =
-  let rec loop args ~pos =
-    if pos < 0 then args
-    else loop (get arg ~pos :: args) ~pos:(pos-1)
-  in loop [] ~pos:(arg.nargs - 1)
-
-let get_pointer arg ~pos = get_pointer (nth arg ~pos)
-let get_nativeint arg ~pos = get_nativeint (nth arg ~pos)
-
-(*
-let get_char arg ~pos = get_char (nth arg ~pos)
-let get_bool arg ~pos = get_bool (nth arg ~pos)
-let get_int arg ~pos = get_int (nth arg ~pos)
-let get_float arg ~pos = get_float (nth arg ~pos)
-let get_string arg ~pos = get_string (nth arg ~pos)
-let get_object arg ~pos = get_object (nth arg ~pos)
-let set_result_char arg = set_char (result arg)
-let set_result_bool arg = set_bool (result arg)
-let set_result_int arg = set_int (result arg)
-let set_result_nativeint arg = set_nativeint (result arg)
-let set_result_float arg = set_float (result arg)
-let set_result_string arg = set_string (result arg)
-let set_result_pointer arg = set_pointer (result arg)
-let set_result_object arg = set_object (result arg)
-*)
-
-external string_at_pointer : ?pos:int -> ?len:int -> Gpointer.boxed -> string
-    = "ml_string_at_pointer"
-external int_at_pointer : Gpointer.boxed -> int
-    = "ml_int_at_pointer"
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBase.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBase.ml
deleted file mode 100644 (file)
index 3b1a00f..0000000
+++ /dev/null
@@ -1,414 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-
-module Type = struct
-  external name : gtk_type -> string = "ml_gtk_type_name"
-  external from_name : string -> gtk_type = "ml_gtk_type_from_name"
-  external parent : gtk_type -> gtk_type = "ml_gtk_type_parent"
-  external get_class : gtk_type -> gtk_class = "ml_gtk_type_class"
-  external parent_class : gtk_type -> gtk_class = "ml_gtk_type_parent_class"
-  external is_a : gtk_type -> gtk_type -> bool = "ml_gtk_type_is_a"
-  external fundamental : gtk_type -> fundamental_type
-      = "ml_gtk_type_fundamental"
-end
-
-module Object = struct
-  external get_type : 'a obj -> gtk_type = "ml_gtk_object_type"
-  let is_a obj name =
-    Type.is_a (get_type obj) (Type.from_name name)
-  external destroy : 'a obj -> unit = "ml_gtk_object_destroy"
-  external coerce : 'a obj -> unit obj = "%identity"
-  external unsafe_cast : 'a obj -> 'b obj = "%identity"
-  let try_cast w name =
-    if is_a w name then unsafe_cast w
-    else raise (Cannot_cast(Type.name(get_type w), name))
-  let get_id (obj : 'a obj) : int = (snd (Obj.magic obj) lor 0)
-  module Signals = struct
-    open GtkSignal
-    let destroy : (_,_) t =
-      { name = "destroy"; marshaller = marshal_unit }
-  end
-end
-
-module Widget = struct
-  let cast w : widget obj = Object.try_cast w "GtkWidget"
-  external coerce : [>`widget] obj -> widget obj = "%identity"
-  external unparent : [>`widget] obj -> unit = "ml_gtk_widget_unparent"
-  external show : [>`widget] obj -> unit = "ml_gtk_widget_show"
-  external show_now : [>`widget] obj -> unit = "ml_gtk_widget_show_now"
-  external show_all : [>`widget] obj -> unit = "ml_gtk_widget_show_all"
-  external hide : [>`widget] obj -> unit = "ml_gtk_widget_hide"
-  external hide_all : [>`widget] obj -> unit = "ml_gtk_widget_hide_all"
-  external map : [>`widget] obj -> unit = "ml_gtk_widget_map"
-  external unmap : [>`widget] obj -> unit = "ml_gtk_widget_unmap"
-  external realize : [>`widget] obj -> unit = "ml_gtk_widget_realize"
-  external unrealize : [>`widget] obj -> unit = "ml_gtk_widget_unrealize"
-  external queue_draw : [>`widget] obj -> unit = "ml_gtk_widget_queue_draw"
-  external queue_resize : [>`widget] obj -> unit = "ml_gtk_widget_queue_resize"
-  external draw : [>`widget] obj -> Gdk.Rectangle.t option -> unit
-      = "ml_gtk_widget_draw"
-  external draw_focus : [>`widget] obj -> unit
-      = "ml_gtk_widget_draw_focus"
-  external draw_default : [>`widget] obj -> unit
-      = "ml_gtk_widget_draw_default"
-  external event : [>`widget] obj -> 'a Gdk.event -> bool
-      = "ml_gtk_widget_event"
-  external activate : [>`widget] obj -> bool
-      = "ml_gtk_widget_activate"
-  external reparent : [>`widget] obj -> [>`widget] obj -> unit
-      = "ml_gtk_widget_reparent"
-  external popup : [>`widget] obj -> x:int -> y:int -> unit
-      = "ml_gtk_widget_popup"
-  external intersect :
-      [>`widget] obj -> Gdk.Rectangle.t -> Gdk.Rectangle.t option
-      = "ml_gtk_widget_intersect"
-  external set_can_default : [>`widget] obj -> bool -> unit
-      = "ml_gtk_widget_set_can_default"
-  external set_can_focus : [>`widget] obj -> bool -> unit
-      = "ml_gtk_widget_set_can_focus"
-  external grab_focus : [>`widget] obj -> unit
-      = "ml_gtk_widget_grab_focus"
-  external grab_default : [>`widget] obj -> unit
-      = "ml_gtk_widget_grab_default"
-  external set_name : [>`widget] obj -> string -> unit
-      = "ml_gtk_widget_set_name"
-  external get_name : [>`widget] obj -> string
-      = "ml_gtk_widget_get_name"
-  external set_state : [>`widget] obj -> state_type -> unit
-      = "ml_gtk_widget_set_state"
-  external set_sensitive : [>`widget] obj -> bool -> unit
-      = "ml_gtk_widget_set_sensitive"
-  external set_uposition : [>`widget] obj -> x:int -> y:int -> unit
-      = "ml_gtk_widget_set_uposition"
-  external set_usize : [>`widget] obj -> width:int -> height:int -> unit
-      = "ml_gtk_widget_set_usize"
-  external add_events : [>`widget] obj -> Gdk.Tags.event_mask list -> unit
-      = "ml_gtk_widget_add_events"
-  external set_events : [>`widget] obj -> Gdk.Tags.event_mask list -> unit
-      = "ml_gtk_widget_set_events"
-  external set_extension_events :
-      [>`widget] obj -> Gdk.Tags.extension_events -> unit
-      = "ml_gtk_widget_set_extension_events"
-  external get_toplevel : [>`widget] obj -> widget obj
-      = "ml_gtk_widget_get_toplevel"
-  external get_ancestor : [>`widget] obj -> gtk_type -> widget obj
-      = "ml_gtk_widget_get_ancestor"
-  external get_colormap : [>`widget] obj -> Gdk.colormap
-      = "ml_gtk_widget_get_colormap"
-  external get_visual : [>`widget] obj -> Gdk.visual
-      = "ml_gtk_widget_get_visual"
-  external get_pointer : [>`widget] obj -> int * int
-      = "ml_gtk_widget_get_pointer"
-  external is_ancestor : [>`widget] obj -> [>`widget] obj -> bool
-      = "ml_gtk_widget_is_ancestor"
-  external set_style : [>`widget] obj -> style -> unit
-      = "ml_gtk_widget_set_style"
-  external set_rc_style : [>`widget] obj -> unit
-      = "ml_gtk_widget_set_rc_style"
-  external ensure_style : [>`widget] obj -> unit
-      = "ml_gtk_widget_ensure_style"
-  external get_style : [>`widget] obj -> style
-      = "ml_gtk_widget_get_style"
-  external restore_default_style : [>`widget] obj -> unit
-      = "ml_gtk_widget_restore_default_style"
-  external add_accelerator :
-      ([>`widget] as 'a) obj -> sgn:('a,unit->unit) GtkSignal.t ->
-      accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list ->
-      ?flags:accel_flag list -> unit
-      = "ml_gtk_widget_add_accelerator_bc" "ml_gtk_widget_add_accelerator"
-  external remove_accelerator :
-      [>`widget] obj -> accel_group ->
-      key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> unit
-      = "ml_gtk_widget_remove_accelerator"
-  external lock_accelerators : [>`widget] obj -> unit
-      = "ml_gtk_widget_lock_accelerators"
-  external unlock_accelerators : [>`widget] obj -> unit
-      = "ml_gtk_widget_unlock_accelerators"
-  external accelerators_locked : [>`widget] obj -> bool
-      = "ml_gtk_widget_accelerators_locked"
-  external window : [>`widget] obj -> Gdk.window
-      = "ml_GtkWidget_window"
-  external visible : [>`widget] obj -> bool
-      = "ml_GTK_WIDGET_VISIBLE"
-  external has_focus : [>`widget] obj -> bool
-      = "ml_GTK_WIDGET_HAS_FOCUS"
-  external parent : [>`widget] obj -> widget obj
-      = "ml_gtk_widget_parent"
-  external set_app_paintable : [>`widget] obj -> bool -> unit
-      = "ml_gtk_widget_set_app_paintable"
-  external allocation : [>`widget] obj -> rectangle
-      = "ml_gtk_widget_allocation"
-  external set_colormap : [>`widget] obj -> Gdk.colormap -> unit
-      = "ml_gtk_widget_set_colormap"
-  external set_visual : [>`widget] obj -> Gdk.visual -> unit
-      = "ml_gtk_widget_set_visual"
-  external set_default_colormap : Gdk.colormap -> unit
-      = "ml_gtk_widget_set_default_colormap"
-  external set_default_visual : Gdk.visual -> unit
-      = "ml_gtk_widget_set_default_visual"
-  external get_default_colormap : unit -> Gdk.colormap
-      = "ml_gtk_widget_get_default_colormap"
-  external get_default_visual : unit -> Gdk.visual
-      = "ml_gtk_widget_get_default_visual"
-  external push_colormap : Gdk.colormap -> unit
-      = "ml_gtk_widget_push_colormap"
-  external push_visual : Gdk.visual -> unit
-      = "ml_gtk_widget_push_visual"
-  external pop_colormap : unit -> unit
-      = "ml_gtk_widget_pop_colormap"
-  external pop_visual : unit -> unit
-      = "ml_gtk_widget_pop_visual"
-  module Signals = struct
-    open GtkArgv
-    open GtkSignal
-    let marshal f _ = function
-      | OBJECT(Some p) :: _ -> f (cast p)
-      |        _ -> invalid_arg "GtkBase.Widget.Signals.marshal"
-    let marshal_opt f _ = function
-      | OBJECT(Some obj) :: _ -> f (Some (cast obj))
-      | OBJECT None :: _ -> f None
-      | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_opt"
-    let marshal_style f _ = function
-      | POINTER p :: _ -> f (Obj.magic p : Gtk.style option)
-      | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_opt"
-    let marshal_drag1 f _ = function
-      | POINTER(Some p) :: _ -> f (Obj.magic p : Gdk.drag_context)
-      |        _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag1"
-    let marshal_drag2 f _ = function
-      | POINTER(Some p) :: INT time :: _ ->
-         f (Obj.magic p : Gdk.drag_context) ~time
-      |        _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag2"
-    let marshal_drag3 f argv = function
-      | POINTER(Some p) :: INT x :: INT y :: INT time :: _ ->
-         let res = f (Obj.magic p : Gdk.drag_context) ~x ~y ~time
-         in GtkArgv.set_result argv (`BOOL res)
-      |        _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag3"
-    let show : ([>`widget],_) t =
-      { name = "show"; marshaller = marshal_unit }
-    let hide : ([>`widget],_) t =
-      { name = "hide"; marshaller = marshal_unit }
-    let map : ([>`widget],_) t =
-      { name = "map"; marshaller = marshal_unit }
-    let unmap : ([>`widget],_) t =
-      { name = "unmap"; marshaller = marshal_unit }
-    let realize : ([>`widget],_) t =
-      { name = "realize"; marshaller = marshal_unit }
-    let draw : ([>`widget],_) t =
-      let marshal f _ = function
-       | POINTER(Some p) :: _ -> f (Obj.magic p : Gdk.Rectangle.t)
-       | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_draw"
-      in { name = "draw"; marshaller = marshal }
-    let draw_focus : ([>`widget],_) t =
-      { name = "draw_focus"; marshaller = marshal_unit }
-    let draw_default : ([>`widget],_) t =
-      { name = "draw_default"; marshaller = marshal_unit }
-    external val_state : int -> state_type = "ml_Val_state_type"
-    let state_changed : ([>`widget],_) t =
-      let marshal f = marshal_int (fun x -> f (val_state x)) in
-      { name = "state_changed"; marshaller = marshal }
-    let parent_set : ([>`widget],_) t =
-      { name = "parent_set"; marshaller = marshal_opt }
-    let style_set : ([>`widget],_) t =
-      { name = "style_set"; marshaller = marshal_style }
-    let drag_begin : ([>`widget],_) t =
-      { name = "drag_begin"; marshaller = marshal_drag1 }
-    let drag_end : ([>`widget],_) t =
-      { name = "drag_end"; marshaller = marshal_drag1 }
-    let drag_data_delete : ([>`widget],_) t =
-      { name = "drag_data_delete"; marshaller = marshal_drag1 }
-    let drag_leave : ([>`widget],_) t =
-      { name = "drag_leave"; marshaller = marshal_drag2 }
-    let drag_motion : ([>`widget],_) t =
-      { name = "drag_motion"; marshaller = marshal_drag3 }
-    let drag_drop : ([>`widget],_) t =
-      { name = "drag_drop"; marshaller = marshal_drag3 }
-    let drag_data_get : ([>`widget],_) t =
-      let marshal f argv = function
-        | POINTER(Some p) :: POINTER(Some q) :: INT info :: INT time :: _ ->
-           f (Obj.magic p : Gdk.drag_context)
-             (Obj.magic q : GtkData.Selection.t) 
-             ~info
-             ~time
-       | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag_data_get"
-      in
-      { name = "drag_data_get"; marshaller = marshal }
-    let drag_data_received : ([>`widget],_) t =
-      let marshal f _ = function
-        | POINTER(Some p) :: INT x :: INT y :: POINTER(Some q) ::
-          INT info :: INT time :: _ ->
-           f (Obj.magic p : Gdk.drag_context) ~x ~y
-              (Obj.magic q : GtkData.Selection.t)
-             ~info ~time
-       | _ -> invalid_arg "GtkBase.Widget.Signals.marshal_drag_data_received"
-      in
-      { name = "drag_data_received"; marshaller = marshal }
-
-    module Event = struct
-      let marshal f argv = function
-        | [POINTER(Some p)] ->
-           let ev = GdkEvent.unsafe_copy p in
-            GtkArgv.set_result argv (`BOOL(f ev))
-       | _ -> invalid_arg "GtkBase.Widget.Event.marshal"
-      let any : ([>`widget], Gdk.Tags.event_type Gdk.event -> bool) t =
-       { name = "event"; marshaller = marshal }
-      let button_press : ([>`widget], GdkEvent.Button.t -> bool) t =
-       { name = "button_press_event"; marshaller = marshal }
-      let button_release : ([>`widget], GdkEvent.Button.t -> bool) t =
-       { name = "button_release_event"; marshaller = marshal }
-      let motion_notify : ([>`widget], GdkEvent.Motion.t -> bool) t =
-       { name = "motion_notify_event"; marshaller = marshal }
-      let delete : ([>`widget], [`DELETE] Gdk.event -> bool) t =
-       { name = "delete_event"; marshaller = marshal }
-      let destroy : ([>`widget], [`DESTROY] Gdk.event -> bool) t =
-       { name = "destroy_event"; marshaller = marshal }
-      let expose : ([>`widget], GdkEvent.Expose.t -> bool) t =
-       { name = "expose_event"; marshaller = marshal }
-      let key_press : ([>`widget], GdkEvent.Key.t -> bool) t =
-       { name = "key_press_event"; marshaller = marshal }
-      let key_release : ([>`widget], GdkEvent.Key.t -> bool) t =
-       { name = "key_release_event"; marshaller = marshal }
-      let enter_notify : ([>`widget], GdkEvent.Crossing.t -> bool) t =
-       { name = "enter_notify_event"; marshaller = marshal }
-      let leave_notify : ([>`widget], GdkEvent.Crossing.t -> bool) t =
-       { name = "leave_notify_event"; marshaller = marshal }
-      let configure : ([>`widget], GdkEvent.Configure.t -> bool) t =
-       { name = "configure_event"; marshaller = marshal }
-      let focus_in : ([>`widget], GdkEvent.Focus.t -> bool) t =
-       { name = "focus_in_event"; marshaller = marshal }
-      let focus_out : ([>`widget], GdkEvent.Focus.t -> bool) t =
-       { name = "focus_out_event"; marshaller = marshal }
-      let map : ([>`widget], [`MAP] Gdk.event -> bool) t =
-       { name = "map_event"; marshaller = marshal }
-      let unmap : ([>`widget], [`UNMAP] Gdk.event -> bool) t =
-       { name = "unmap_event"; marshaller = marshal }
-      let property_notify : ([>`widget], GdkEvent.Property.t -> bool) t =
-       { name = "property_notify_event"; marshaller = marshal }
-      let selection_clear : ([>`widget], GdkEvent.Selection.t -> bool) t =
-       { name = "selection_clear_event"; marshaller = marshal }
-      let selection_request : ([>`widget], GdkEvent.Selection.t -> bool) t =
-       { name = "selection_request_event"; marshaller = marshal }
-      let selection_notify : ([>`widget], GdkEvent.Selection.t -> bool) t =
-       { name = "selection_notify_event"; marshaller = marshal }
-      let proximity_in : ([>`widget], GdkEvent.Proximity.t -> bool) t =
-       { name = "proximity_in_event"; marshaller = marshal }
-      let proximity_out : ([>`widget], GdkEvent.Proximity.t -> bool) t =
-       { name = "proximity_out_event"; marshaller = marshal }
-    end
-  end
-end
-
-module Container = struct
-  let cast w : container obj = Object.try_cast w "GtkContainer"
-  external coerce : [>`container] obj -> container obj = "%identity"
-  external set_border_width : [>`container] obj -> int -> unit
-      = "ml_gtk_container_set_border_width"
-  external set_resize_mode : [>`container] obj -> resize_mode -> unit
-      = "ml_gtk_container_set_resize_mode"
-  external add : [>`container] obj -> [>`widget] obj -> unit
-      = "ml_gtk_container_add"
-  external remove : [>`container] obj -> [>`widget] obj -> unit
-      = "ml_gtk_container_remove"
-  let set ?border_width ?(width = -2) ?(height = -2) w =
-    may border_width ~f:(set_border_width w);
-    if width <> -2 || height <> -2 then
-      Widget.set_usize w ?width ?height
-  external foreach : [>`container] obj -> f:(widget obj-> unit) -> unit
-      = "ml_gtk_container_foreach"
-  let children w =
-    let l = ref [] in
-    foreach w ~f:(fun c -> l := c :: !l);
-    List.rev !l
-  external focus : [>`container] obj -> direction_type -> bool
-      = "ml_gtk_container_focus"
-  (* Called by Widget.grab_focus *)
-  external set_focus_child : [>`container] obj -> [>`widget] optobj -> unit
-      = "ml_gtk_container_set_focus_child"
-  external set_focus_vadjustment :
-      [>`container] obj -> [>`adjustment] optobj -> unit
-      = "ml_gtk_container_set_focus_vadjustment"
-  external set_focus_hadjustment :
-      [>`container] obj -> [>`adjustment] optobj -> unit
-      = "ml_gtk_container_set_focus_hadjustment"
-  module Signals = struct
-    open GtkSignal
-    let add : ([>`container],_) t =
-      { name = "add"; marshaller = Widget.Signals.marshal }
-    let remove : ([>`container],_) t =
-      { name = "remove"; marshaller = Widget.Signals.marshal }
-    let need_resize : ([>`container],_) t =
-      let marshal f argv _ = GtkArgv.set_result argv (`BOOL(f ())) in
-      { name = "need_resize"; marshaller = marshal }
-    external val_direction : int -> direction_type = "ml_Val_direction_type"
-    let focus : ([>`container],_) t =
-      let marshal f argv = function
-        | GtkArgv.INT dir :: _ ->
-            GtkArgv.set_result argv (`BOOL(f (val_direction dir)))
-        | _ -> invalid_arg "GtkBase.Container.Signals.marshal_focus"
-      in { name = "focus"; marshaller = marshal }
-  end
-end
-
-module Item = struct
-  let cast w : item obj = Object.try_cast w "GtkItem"
-  external coerce : [>`item] obj -> item obj = "%identity"
-  external select : [>`item] obj -> unit = "ml_gtk_item_select"
-  external deselect : [>`item] obj -> unit = "ml_gtk_item_deselect"
-  external toggle : [>`item] obj -> unit = "ml_gtk_item_toggle"
-  module Signals = struct
-    open GtkSignal
-    let select : ([>`item],_) t =
-      { name = "select"; marshaller = marshal_unit }
-    let deselect : ([>`item],_) t =
-      { name = "deselect"; marshaller = marshal_unit }
-    let toggle : ([>`item],_) t =
-      { name = "toggle"; marshaller = marshal_unit }
-  end
-end
-
-
-module DnD = struct
-  external dest_set :
-      [>`widget] obj -> flags:dest_defaults list ->
-      targets:target_entry array -> actions:Gdk.Tags.drag_action list -> unit 
-    = "ml_gtk_drag_dest_set"
-  external dest_unset : [>`widget] obj -> unit
-      = "ml_gtk_drag_dest_unset"
-  external finish :
-      Gdk.drag_context -> success:bool -> del:bool -> time:int -> unit
-      = "ml_gtk_drag_finish"
-  external get_data :
-      [>`widget] obj -> Gdk.drag_context -> target:Gdk.atom -> time:int -> unit
-      = "ml_gtk_drag_get_data"
-  external get_source_widget : Gdk.drag_context -> widget obj
-      = "ml_gtk_drag_get_source_widget"
-  external highlight : [>`widget] obj -> unit = "ml_gtk_drag_highlight"
-  external unhighlight : [>`widget] obj -> unit = "ml_gtk_drag_unhighlight"
-  external set_icon_widget :
-      Gdk.drag_context -> [>`widget] obj -> hot_x:int -> hot_y:int -> unit
-      = "ml_gtk_drag_set_icon_widget"
-  external set_icon_pixmap :
-      Gdk.drag_context -> colormap:Gdk.colormap ->
-      Gdk.pixmap -> ?mask:Gdk.bitmap -> hot_x:int -> hot_y:int -> unit
-      = "ml_gtk_drag_set_icon_pixmap_bc" "ml_gtk_drag_set_icon_pixmap"
-  external set_icon_default : Gdk.drag_context -> unit
-      = "ml_gtk_drag_set_icon_default"
-  external set_default_icon :
-      colormap:Gdk.colormap -> Gdk.pixmap ->
-      ?mask:Gdk.bitmap -> hot_x:int -> hot_y:int -> unit
-      = "ml_gtk_drag_set_default_icon"
-  external source_set :
-      [>`widget] obj -> ?modi:Gdk.Tags.modifier list ->
-      targets:target_entry array -> actions:Gdk.Tags.drag_action list -> unit
-      = "ml_gtk_drag_source_set"
-  external source_set_icon :
-      [>`widget] obj -> colormap:Gdk.colormap ->
-      Gdk.pixmap -> ?mask:Gdk.bitmap -> unit
-      = "ml_gtk_drag_source_set_icon"
-  external source_unset : [>`widget] obj -> unit
-      = "ml_gtk_drag_source_unset"
-(*  external dest_handle_event : [>`widget] -> *)
-end
-
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBin.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkBin.ml
deleted file mode 100644 (file)
index ab4cc7e..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module Alignment = struct
-  let cast w : alignment obj = Object.try_cast w "GtkAlignment"
-  external create :
-      x:clampf -> y:clampf -> xscale:clampf -> yscale:clampf -> alignment obj
-      = "ml_gtk_alignment_new"
-  let create ?(x=0.5) ?(y=0.5) ?(xscale=1.) ?(yscale=1.) () =
-    create ~x ~y ~xscale ~yscale
-  external set :
-      ?x:clampf -> ?y:clampf -> ?xscale:clampf -> ?yscale:clampf ->
-      [>`alignment] obj -> unit
-      = "ml_gtk_alignment_set"
-end
-
-module EventBox = struct
-  let cast w : event_box obj = Object.try_cast w "GtkEventBox"
-  external create : unit -> event_box obj = "ml_gtk_event_box_new"
-end
-
-module Frame = struct
-  let cast w : frame obj = Object.try_cast w "GtkFrame"
-  external coerce : [>`frame] obj -> frame obj = "%identity"
-  external create : string -> frame obj = "ml_gtk_frame_new"
-  external set_label : [>`frame] obj -> string -> unit
-      = "ml_gtk_frame_set_label"
-  external set_label_align : [>`frame] obj -> x:clampf -> y:clampf -> unit
-      = "ml_gtk_frame_set_label_align"
-  external set_shadow_type : [>`frame] obj -> shadow_type -> unit
-      = "ml_gtk_frame_set_shadow_type"
-  external get_label_xalign : [>`frame] obj -> float
-      = "ml_gtk_frame_get_label_xalign"
-  external get_label_yalign : [>`frame] obj -> float
-      = "ml_gtk_frame_get_label_yalign"
-  let set_label_align' ?x ?y w =
-    set_label_align w
-      ~x:(may_default get_label_xalign w ~opt:x)
-      ~y:(may_default get_label_yalign w ~opt:y)
-  let set ?label ?label_xalign ?label_yalign ?shadow_type w =
-    may label ~f:(set_label w);
-    if label_xalign <> None || label_yalign <> None then
-      set_label_align' w ?x:label_xalign ?y:label_yalign;
-    may shadow_type ~f:(set_shadow_type w)
-end
-
-module AspectFrame = struct
-  let cast w : aspect_frame obj = Object.try_cast w "GtkAspectFrame"
-  external create :
-      label:string -> xalign:clampf ->
-      yalign:clampf -> ratio:float -> obey_child:bool -> aspect_frame obj
-      = "ml_gtk_aspect_frame_new"
-  let create ?(label="") ?(xalign=0.5) ?(yalign=0.5)
-      ?(ratio=1.0) ?(obey_child=true) () =
-    create ~label ~xalign ~yalign ~ratio ~obey_child
-  external set :
-      [>`aspect] obj ->
-      xalign:clampf -> yalign:clampf -> ratio:float -> obey_child:bool -> unit
-      = "ml_gtk_aspect_frame_set"
-  external get_xalign : [>`aspect] obj -> clampf
-      = "ml_gtk_aspect_frame_get_xalign"
-  external get_yalign : [>`aspect] obj -> clampf
-      = "ml_gtk_aspect_frame_get_yalign"
-  external get_ratio : [>`aspect] obj -> clampf
-      = "ml_gtk_aspect_frame_get_ratio"
-  external get_obey_child : [>`aspect] obj -> bool
-      = "ml_gtk_aspect_frame_get_obey_child"
-  let set ?xalign ?yalign ?ratio ?obey_child w =
-    if xalign <> None || yalign <> None || ratio <> None || obey_child <> None
-    then set w
-       ~xalign:(may_default get_xalign w ~opt:xalign)
-       ~yalign:(may_default get_yalign w ~opt:yalign)
-       ~ratio:(may_default get_ratio w ~opt:ratio)
-       ~obey_child:(may_default get_obey_child w ~opt:obey_child)
-end
-
-module HandleBox = struct
-  let cast w : handle_box obj = Object.try_cast w "GtkHandleBox"
-  external create : unit -> handle_box obj = "ml_gtk_handle_box_new"
-  external set_shadow_type : [>`handlebox] obj -> shadow_type -> unit =
-   "ml_gtk_handle_box_set_shadow_type"
-  external set_handle_position : [>`handlebox] obj -> position -> unit =
-   "ml_gtk_handle_box_set_handle_position"
-  external set_snap_edge : [>`handlebox] obj -> position -> unit =
-   "ml_gtk_handle_box_set_snap_edge"
-  module Signals = struct
-    open GtkSignal
-    let child_attached : ([>`handlebox],_) t =
-      { name = "child_attached"; marshaller = Widget.Signals.marshal }
-    let child_detached : ([>`handlebox],_) t =
-      { name = "child_detached"; marshaller = Widget.Signals.marshal }
-  end
-end
-
-module Viewport = struct
-  let cast w : viewport obj = Object.try_cast w "GtkViewport"
-  external create :
-      [>`adjustment] optobj -> [>`adjustment] optobj -> viewport obj
-      = "ml_gtk_viewport_new"
-  let create ?hadjustment ?vadjustment () =
-    create (Gpointer.optboxed hadjustment) (Gpointer.optboxed vadjustment)
-  external get_hadjustment : [>`viewport] obj -> adjustment obj
-      = "ml_gtk_viewport_get_hadjustment"
-  external get_vadjustment : [>`viewport] obj -> adjustment obj
-      = "ml_gtk_viewport_get_vadjustment"
-  external set_hadjustment : [>`viewport] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_viewport_set_hadjustment"
-  external set_vadjustment : [>`viewport] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_viewport_set_vadjustment"
-  external set_shadow_type : [>`viewport] obj -> shadow_type -> unit
-      = "ml_gtk_viewport_set_shadow_type"
-  let set ?hadjustment ?vadjustment ?shadow_type w =
-    may hadjustment ~f:(set_hadjustment w);
-    may vadjustment ~f:(set_vadjustment w);
-    may shadow_type ~f:(set_shadow_type w)
-end
-
-module ScrolledWindow = struct
-  let cast w : scrolled_window obj = Object.try_cast w "GtkScrolledWindow"
-  external create :
-      [>`adjustment] optobj -> [>`adjustment] optobj -> scrolled_window obj
-      = "ml_gtk_scrolled_window_new"
-  let create ?hadjustment ?vadjustment () =
-    create (Gpointer.optboxed hadjustment) (Gpointer.optboxed vadjustment)
-  external set_hadjustment : [>`scrolled] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_scrolled_window_set_hadjustment"
-  external set_vadjustment : [>`scrolled] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_scrolled_window_set_vadjustment"
-  external get_hadjustment : [>`scrolled] obj -> adjustment obj
-      = "ml_gtk_scrolled_window_get_hadjustment"
-  external get_vadjustment : [>`scrolled] obj -> adjustment obj
-      = "ml_gtk_scrolled_window_get_vadjustment"
-  external set_policy : [>`scrolled] obj -> policy_type -> policy_type -> unit
-      = "ml_gtk_scrolled_window_set_policy"
-  external add_with_viewport : [>`scrolled] obj -> [>`widget] obj -> unit
-      = "ml_gtk_scrolled_window_add_with_viewport"
-  external get_hscrollbar_policy : [>`scrolled] obj -> policy_type
-      = "ml_gtk_scrolled_window_get_hscrollbar_policy"
-  external get_vscrollbar_policy : [>`scrolled] obj -> policy_type
-      = "ml_gtk_scrolled_window_get_vscrollbar_policy"
-  external set_placement : [>`scrolled] obj -> corner_type -> unit
-      = "ml_gtk_scrolled_window_set_placement"
-  let set_policy' ?hpolicy ?vpolicy w =
-    set_policy w
-      (may_default get_hscrollbar_policy w ~opt:hpolicy)
-      (may_default get_vscrollbar_policy w ~opt:vpolicy)
-  let set ?hpolicy ?vpolicy ?placement w =
-    if hpolicy <> None || vpolicy <> None then
-      set_policy' w ?hpolicy ?vpolicy;
-    may placement ~f:(set_placement w)
-end
-
-module Socket = struct
-  let cast w : socket obj = Object.try_cast w "GtkSocket"
-  external coerce : [>`socket] obj -> socket obj = "%identity"
-  external create : unit -> socket obj = "ml_gtk_socket_new"
-  external steal : [>`socket] obj -> Gdk.xid -> unit = "ml_gtk_socket_steal"
-end
-
-(*
-module Invisible = struct
-  let cast w : socket obj = Object.try_cast w "GtkInvisible"
-  external coerce : [>`invisible] obj -> invisible obj = "%identity"
-  external create : unit -> invisible obj = "ml_gtk_invisible_new"
-end
-*)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkButton.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkButton.ml
deleted file mode 100644 (file)
index 6d9ddf5..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module Button = struct
-  let cast w : button obj = Object.try_cast w "GtkButton"
-  external coerce : [>`button] obj -> button obj = "%identity"
-  external create : unit -> button obj = "ml_gtk_button_new"
-  external create_with_label : string -> button obj
-      = "ml_gtk_button_new_with_label"
-  let create ?label () =
-    match label with None -> create ()
-    | Some x -> create_with_label x
-  external pressed : [>`button] obj -> unit = "ml_gtk_button_pressed"
-  external released : [>`button] obj -> unit = "ml_gtk_button_released"
-  external clicked : [>`button] obj -> unit = "ml_gtk_button_clicked"
-  external enter : [>`button] obj -> unit = "ml_gtk_button_enter"
-  external leave : [>`button] obj -> unit = "ml_gtk_button_leave"
-  module Signals = struct
-    open GtkSignal
-    let pressed : ([>`button],_) t =
-      { name = "pressed"; marshaller = marshal_unit }
-    let released : ([>`button],_) t =
-      { name = "released"; marshaller = marshal_unit }
-    let clicked : ([>`button],_) t =
-      { name = "clicked"; marshaller = marshal_unit }
-    let enter : ([>`button],_) t =
-      { name = "enter"; marshaller = marshal_unit }
-    let leave : ([>`button],_) t =
-      { name = "leave"; marshaller = marshal_unit }
-  end
-end
-
-module ToggleButton = struct
-  let cast w : toggle_button obj = Object.try_cast w "GtkToggleButton"
-  external coerce : [>`toggle] obj -> toggle_button obj = "%identity"
-  external toggle_button_create : unit -> toggle_button obj
-      = "ml_gtk_toggle_button_new"
-  external toggle_button_create_with_label : string -> toggle_button obj
-      = "ml_gtk_toggle_button_new_with_label"
-  external check_button_create : unit -> toggle_button obj
-      = "ml_gtk_check_button_new"
-  external check_button_create_with_label : string -> toggle_button obj
-      = "ml_gtk_check_button_new_with_label"
-  let create_toggle ?label () =
-    match label with None -> toggle_button_create ()
-    | Some label -> toggle_button_create_with_label label
-  let create_check ?label () =
-    match label with None -> check_button_create ()
-    | Some label -> check_button_create_with_label label
-  external set_mode : [>`toggle] obj -> bool -> unit
-      = "ml_gtk_toggle_button_set_mode"
-  external set_active : [>`toggle] obj -> bool -> unit
-      = "ml_gtk_toggle_button_set_active"
-  let set ?active ?draw_indicator w =
-    may ~f:(set_mode w) draw_indicator;
-    may ~f:(set_active w) active
-  external get_active : [>`toggle] obj -> bool
-      = "ml_gtk_toggle_button_get_active"
-  external toggled : [>`toggle] obj -> unit
-      = "ml_gtk_toggle_button_toggled"
-  module Signals = struct
-    open GtkSignal
-    let toggled : ([>`toggle],_) t =
-      { name = "toggled"; marshaller = marshal_unit }
-  end
-end
-
-module RadioButton = struct
-  let cast w : radio_button obj = Object.try_cast w "GtkRadioButton"
-  external create : radio_button group -> radio_button obj
-      = "ml_gtk_radio_button_new"
-  external create_with_label : radio_button group -> string -> radio_button obj
-      = "ml_gtk_radio_button_new_with_label"
-  external set_group : [>`radio] obj -> radio_button group -> unit
-      = "ml_gtk_radio_button_set_group"
-  let create ?(group = None) ?label () =
-    match label with None -> create group
-    | Some label -> create_with_label group label
-end
-
-module Toolbar = struct
-  let cast w : toolbar obj = Object.try_cast w "GtkToolbar"
-  external create : orientation -> style:toolbar_style -> toolbar obj
-      = "ml_gtk_toolbar_new"
-  let create dir ?(style=`BOTH) () = create dir ~style
-  external insert_space : [>`toolbar] obj -> pos:int -> unit
-      = "ml_gtk_toolbar_insert_space"
-  let insert_space w ?(pos = -1) () = insert_space w ~pos
-  external insert_button :
-      [>`toolbar] obj -> kind:[`BUTTON|`TOGGLEBUTTON|`RADIOBUTTON] ->
-      text:string -> tooltip:string ->
-      tooltip_private:string ->
-      icon:[>`widget] optobj -> pos:int -> button obj
-      = "ml_gtk_toolbar_insert_element_bc" "ml_gtk_toolbar_insert_element"
-  let insert_button w ?(kind=`BUTTON) ?(text="") ?(tooltip="")
-      ?(tooltip_private="") ?icon ?(pos = -1) ?callback () =
-    let b =insert_button w ~kind ~text ~tooltip ~tooltip_private ~pos
-        ~icon:(Gpointer.optboxed icon)
-    in
-    match callback with
-    | None   -> b
-    | Some c -> GtkSignal.connect b ~sgn:Button.Signals.clicked
-         ~callback: c; b
-  external insert_widget :
-      [>`toolbar] obj -> [>`widget] obj ->
-      tooltip:string -> tooltip_private:string -> pos:int -> unit
-      = "ml_gtk_toolbar_insert_widget"
-  let insert_widget w ?(tooltip="") ?(tooltip_private="") ?(pos = -1) w' =
-    insert_widget w w' ~tooltip ~tooltip_private ~pos
-  external set_orientation : [>`toolbar] obj -> orientation -> unit =
-    "ml_gtk_toolbar_set_orientation"
-  external set_style : [>`toolbar] obj -> toolbar_style -> unit =
-    "ml_gtk_toolbar_set_style"
-  external set_space_size : [>`toolbar] obj -> int -> unit =
-    "ml_gtk_toolbar_set_space_size"
-  external set_space_style : [>`toolbar] obj -> [ `EMPTY|`LINE ] -> unit =
-    "ml_gtk_toolbar_set_space_style"
-  external set_tooltips : [>`toolbar] obj -> bool -> unit =
-    "ml_gtk_toolbar_set_tooltips"
-  external set_button_relief : [>`toolbar] obj -> relief_style -> unit =
-    "ml_gtk_toolbar_set_button_relief"
-  external get_button_relief : [>`toolbar] obj -> relief_style =
-    "ml_gtk_toolbar_get_button_relief"
-  let set ?orientation ?style ?space_size
-      ?space_style ?tooltips ?button_relief w =
-    may orientation ~f:(set_orientation w);
-    may style ~f:(set_style w);
-    may space_size ~f:(set_space_size w);
-    may space_style ~f:(set_space_style w);
-    may tooltips ~f:(set_tooltips w);
-    may button_relief ~f:(set_button_relief w)
-  module Signals = struct
-    open GtkSignal
-    external val_orientation : int -> orientation = "ml_Val_orientation"
-    external val_toolbar_style : int -> toolbar_style
-       = "ml_Val_toolbar_style"
-    let orientation_changed : ([>`toolbar],_) t =
-      let marshal f = marshal_int (fun x -> f (val_orientation x)) in
-      { name = "orientation_changed"; marshaller = marshal }
-    let style_changed : ([>`toolbar],_) t =
-      let marshal f = marshal_int (fun x -> f (val_toolbar_style x)) in
-      { name = "style_changed"; marshaller = marshal }
-  end
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkData.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkData.ml
deleted file mode 100644 (file)
index 5b7f90e..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-
-module AccelGroup = struct
-  external create : unit -> accel_group = "ml_gtk_accel_group_new"
-  external activate :
-      accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool
-      = "ml_gtk_accel_group_activate"
-  external groups_activate :
-      'a obj -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool
-      = "ml_gtk_accel_groups_activate"
-  external attach : accel_group -> 'a obj -> unit
-      = "ml_gtk_accel_group_attach"
-  external detach : accel_group -> 'a obj -> unit
-      = "ml_gtk_accel_group_detach"
-  external lock : accel_group -> unit
-      = "ml_gtk_accel_group_lock"
-  external unlock : accel_group -> unit
-      = "ml_gtk_accel_group_unlock"
-  external lock_entry :
-      accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool
-      = "ml_gtk_accel_group_lock_entry"
-  external add :
-      accel_group -> key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list ->
-      ?flags:accel_flag list ->
-      call:'a obj -> sgn:('a,unit->unit) GtkSignal.t -> unit
-      = "ml_gtk_accel_group_add_bc" "ml_gtk_accel_group_add"
-  external remove :
-      accel_group ->
-      key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> call:'a obj -> unit
-      = "ml_gtk_accel_group_remove"
-  external valid : key:Gdk.keysym -> ?modi:Gdk.Tags.modifier list -> bool
-      = "ml_gtk_accelerator_valid"
-  external set_default_mod_mask : Gdk.Tags.modifier list option -> unit
-      = "ml_gtk_accelerator_set_default_mod_mask"
-end
-
-module Style = struct
-  external create : unit -> style = "ml_gtk_style_new"
-  external copy : style -> style = "ml_gtk_style_copy"
-  external attach : style -> Gdk.window -> style = "ml_gtk_style_attach"
-  external detach : style -> unit = "ml_gtk_style_detach"
-  external set_background : style -> Gdk.window -> state_type -> unit
-      = "ml_gtk_style_set_background"
-  external draw_hline :
-      style -> Gdk.window -> state_type -> x:int -> x:int -> y:int -> unit
-      = "ml_gtk_draw_hline_bc" "ml_gtk_draw_hline"
-  external draw_vline :
-      style -> Gdk.window -> state_type -> y:int -> y:int -> x:int -> unit
-      = "ml_gtk_draw_vline_bc" "ml_gtk_draw_vline"
-  external get_bg : style -> state:state_type -> Gdk.Color.t
-      = "ml_gtk_style_get_bg"
-  external set_bg : style -> state:state_type -> color:Gdk.Color.t -> unit
-      = "ml_gtk_style_set_bg"
-  external get_dark_gc : style -> state:state_type -> Gdk.gc
-      = "ml_gtk_style_get_dark_gc"
-  external get_light_gc : style -> state:state_type -> Gdk.gc
-      = "ml_gtk_style_get_light_gc"
-  external get_colormap : style -> Gdk.colormap = "ml_gtk_style_get_colormap"
-  external get_font : style -> Gdk.font = "ml_gtk_style_get_font"
-  external set_font : style -> Gdk.font -> unit = "ml_gtk_style_set_font"
-(*
-  let set st ?:background ?:font =
-    let may_set f = may fun:(f st) in
-    may_set set_background background;
-    may_set set_font font
-*)
-end
-
-module Data = struct
-  module Signals = struct
-    open GtkSignal
-    let disconnect : ([>`data],_) t =
-      { name = "disconnect"; marshaller = marshal_unit }
-  end
-end
-
-module Adjustment = struct
-  external create :
-      value:float -> lower:float -> upper:float ->
-      step_incr:float -> page_incr:float -> page_size:float -> adjustment obj
-      = "ml_gtk_adjustment_new_bc" "ml_gtk_adjustment_new"
-  external set_value : [>`adjustment] obj -> float -> unit
-      = "ml_gtk_adjustment_set_value"
-  external clamp_page :
-      [>`adjustment] obj -> lower:float -> upper:float -> unit
-      = "ml_gtk_adjustment_clamp_page"
-  external get_lower : [>`adjustment] obj -> float
-      = "ml_gtk_adjustment_get_lower"
-  external get_upper : [>`adjustment] obj -> float
-      = "ml_gtk_adjustment_get_upper"
-  external get_value : [>`adjustment] obj -> float
-      = "ml_gtk_adjustment_get_value"
-  external get_step_increment : [>`adjustment] obj -> float
-      = "ml_gtk_adjustment_get_step_increment"
-  external get_page_increment : [>`adjustment] obj -> float
-      = "ml_gtk_adjustment_get_page_increment"
-  external get_page_size : [>`adjustment] obj -> float
-      = "ml_gtk_adjustment_get_page_size"
-  module Signals = struct
-    open GtkSignal
-    let changed : ([>`adjustment],_) t =
-      { name = "changed"; marshaller = marshal_unit }
-    let value_changed : ([>`adjustment],_) t =
-      { name = "value_changed"; marshaller = marshal_unit }
-  end
-end
-
-module Tooltips = struct
-  external create : unit -> tooltips obj = "ml_gtk_tooltips_new"
-  external enable : [>`tooltips] obj -> unit = "ml_gtk_tooltips_enable"
-  external disable : [>`tooltips] obj -> unit = "ml_gtk_tooltips_disable"
-  external set_delay : [>`tooltips] obj -> int -> unit
-      = "ml_gtk_tooltips_set_delay"
-  external set_tip :
-      [>`tooltips] obj ->
-      [>`widget] obj -> ?text:string -> ?privat:string -> unit
-      = "ml_gtk_tooltips_set_tip"
-  external set_colors :
-      [>`tooltips] obj ->
-      ?foreground:Gdk.Color.t -> ?background:Gdk.Color.t -> unit -> unit
-      = "ml_gtk_tooltips_set_colors"
-  let set ?delay ?foreground ?background tt =
-    may ~f:(set_delay tt) delay;
-    if foreground <> None || background <> None then
-      set_colors tt ?foreground ?background ()
-end
-
-
-module Selection = struct
-  type t
-  external selection : t -> Gdk.atom
-      = "ml_gtk_selection_data_selection"
-  external target : t -> Gdk.atom
-      = "ml_gtk_selection_data_target"
-  external seltype : t -> Gdk.atom
-      = "ml_gtk_selection_data_type"
-  external format : t -> int
-      = "ml_gtk_selection_data_format"
-  external get_data : t -> string
-      = "ml_gtk_selection_data_get_data"       (* May raise Gpointer.null *)
-  external set :
-      t -> typ:Gdk.atom -> format:int -> ?data:string -> unit
-      = "ml_gtk_selection_data_set"
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkEdit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkEdit.ml
deleted file mode 100644 (file)
index bef2fed..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module Editable = struct
-  let cast w : editable obj = Object.try_cast w "GtkEditable"
-  external coerce : [>`editable] obj -> editable obj = "%identity"
-  external select_region : [>`editable] obj -> start:int -> stop:int -> unit
-      = "ml_gtk_editable_select_region"
-  external insert_text : [>`editable] obj -> string -> pos:int -> int
-      = "ml_gtk_editable_insert_text"
-  external delete_text : [>`editable] obj -> start:int -> stop:int -> unit
-      = "ml_gtk_editable_delete_text"
-  external get_chars : [>`editable] obj -> start:int -> stop:int -> string
-      = "ml_gtk_editable_get_chars"
-  external cut_clipboard : [>`editable] obj -> unit
-      = "ml_gtk_editable_cut_clipboard"
-  external copy_clipboard : [>`editable] obj -> unit
-      = "ml_gtk_editable_copy_clipboard"
-  external paste_clipboard : [>`editable] obj -> unit
-      = "ml_gtk_editable_paste_clipboard"
-  external claim_selection :
-      [>`editable] obj -> claim:bool -> time:int -> unit
-      = "ml_gtk_editable_claim_selection"
-  external delete_selection : [>`editable] obj -> unit
-      = "ml_gtk_editable_delete_selection"
-  external changed : [>`editable] obj -> unit = "ml_gtk_editable_changed"
-  external set_position : [>`editable] obj -> int -> unit
-      = "ml_gtk_editable_set_position"
-  external get_position : [>`editable] obj -> int
-      = "ml_gtk_editable_get_position"
-  external set_editable : [>`editable] obj -> bool -> unit
-      = "ml_gtk_editable_set_editable"
-  external selection_start_pos : [>`editable] obj -> int
-      = "ml_gtk_editable_selection_start_pos"
-  external selection_end_pos : [>`editable] obj -> int
-      = "ml_gtk_editable_selection_end_pos"
-  external has_selection : [>`editable] obj -> bool
-      = "ml_gtk_editable_has_selection"
-  module Signals = struct
-    open GtkArgv
-    open GtkSignal
-    let activate : ([>`editable],_) t =
-      { name = "activate"; marshaller = marshal_unit }
-    let changed : ([>`editable],_) t =
-      { name = "changed"; marshaller = marshal_unit }
-    let marshal_insert f argv = function
-      | STRING _ :: INT len :: POINTER(Some pos) :: _ ->
-          (* XXX These two accesses are implementation-dependent *)
-          let s = string_at_pointer (get_pointer argv ~pos:0) ~len
-          and pos = int_at_pointer pos in
-          f s ~pos
-      | _ -> invalid_arg "GtkEdit.Editable.Signals.marshal_insert"
-    let insert_text : ([>`editable],_) t =
-      { name = "insert_text"; marshaller = marshal_insert }
-    let marshal_delete f _ = function
-      | INT start :: INT stop :: _ ->
-          f ~start ~stop
-      | _ -> invalid_arg "GtkEdit.Editable.Signals.marshal_delete"
-    let delete_text : ([>`editable],_) t =
-      { name = "delete_text"; marshaller = marshal_delete }
-  end
-end
-
-module Entry = struct
-  let cast w : entry obj = Object.try_cast w "GtkEntry"
-  external coerce : [>`entry] obj -> entry obj = "%identity"
-  external create : unit -> entry obj = "ml_gtk_entry_new"
-  external create_with_max_length : int -> entry obj
-      = "ml_gtk_entry_new_with_max_length"
-  let create ?max_length () =
-    match max_length with None -> create ()
-    | Some len -> create_with_max_length len
-  external set_text : [>`entry] obj -> string -> unit
-      = "ml_gtk_entry_set_text"
-  external append_text : [>`entry] obj -> string -> unit
-      = "ml_gtk_entry_append_text"
-  external prepend_text : [>`entry] obj -> string -> unit
-      = "ml_gtk_entry_prepend_text"
-  external get_text : [>`entry] obj -> string = "ml_gtk_entry_get_text"
-  external set_visibility : [>`entry] obj -> bool -> unit
-      = "ml_gtk_entry_set_visibility"
-  external set_max_length : [>`entry] obj -> int -> unit
-      = "ml_gtk_entry_set_max_length"
-  let set ?text ?visibility ?max_length w =
-    let may_set f = may ~f:(f w) in
-    may_set set_text text;
-    may_set set_visibility visibility;
-    may_set set_max_length max_length
-  external text_length : [>`entry] obj -> int
-      = "ml_GtkEntry_text_length"
-end
-
-module SpinButton = struct
-  let cast w : spin_button obj = Object.try_cast w "GtkSpinButton"
-  external create :
-      [>`adjustment] optobj -> rate:float -> digits:int -> spin_button obj
-      = "ml_gtk_spin_button_new"
-  let create ?adjustment ?(rate=0.5) ?(digits=0) () =
-    create (Gpointer.optboxed adjustment) ~rate ~digits
-  external configure :
-    [>`spinbutton] obj -> adjustment:[>`adjustment] obj ->
-    rate:float -> digits:int -> unit
-    = "ml_gtk_spin_button_configure"
-  external set_adjustment : [>`spinbutton] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_spin_button_set_adjustment"
-  external get_adjustment : [>`spinbutton] obj -> adjustment obj
-      = "ml_gtk_spin_button_get_adjustment"
-  external set_digits : [>`spinbutton] obj -> int -> unit
-      = "ml_gtk_spin_button_set_digits"
-  external get_value : [>`spinbutton] obj -> float
-      = "ml_gtk_spin_button_get_value_as_float"
-  let get_value_as_int w = truncate (get_value w +. 0.5)
-  external set_value : [>`spinbutton] obj -> float -> unit
-      = "ml_gtk_spin_button_set_value"
-  external set_update_policy :
-      [>`spinbutton] obj -> [`ALWAYS|`IF_VALID] -> unit
-      = "ml_gtk_spin_button_set_update_policy"
-  external set_numeric : [>`spinbutton] obj -> bool -> unit
-      = "ml_gtk_spin_button_set_numeric"
-  external spin : [>`spinbutton] obj -> spin_type -> unit
-      = "ml_gtk_spin_button_spin"
-  external set_wrap : [>`spinbutton] obj -> bool -> unit
-      = "ml_gtk_spin_button_set_wrap"
-  external set_shadow_type : [>`spinbutton] obj -> shadow_type -> unit
-      = "ml_gtk_spin_button_set_shadow_type"
-  external set_snap_to_ticks : [>`spinbutton] obj -> bool -> unit
-      = "ml_gtk_spin_button_set_snap_to_ticks"
-  external update : [>`spinbutton] obj -> unit
-      = "ml_gtk_spin_button_update"
-  let set ?adjustment ?digits ?value ?update_policy
-      ?numeric ?wrap ?shadow_type ?snap_to_ticks w =
-    let may_set f = may ~f:(f w) in
-    may_set set_adjustment adjustment;
-    may_set set_digits digits;
-    may_set set_value value;
-    may_set set_update_policy update_policy;
-    may_set set_numeric numeric;
-    may_set set_wrap wrap;
-    may_set set_shadow_type shadow_type;
-    may_set set_snap_to_ticks snap_to_ticks
-end
-
-module Text = struct
-  let cast w : text obj = Object.try_cast w "GtkText"
-  external create : [>`adjustment] optobj -> [>`adjustment] optobj -> text obj
-      = "ml_gtk_text_new"
-  let create ?hadjustment ?vadjustment () =
-    create (Gpointer.optboxed hadjustment) (Gpointer.optboxed vadjustment)
-  external set_word_wrap : [>`text] obj -> bool -> unit
-      = "ml_gtk_text_set_word_wrap"
-  external set_line_wrap : [>`text] obj -> bool -> unit
-      = "ml_gtk_text_set_line_wrap"
-  external set_adjustment :
-      [>`text] obj -> ?horizontal:[>`adjustment] obj ->
-      ?vertical:[>`adjustment] obj -> unit -> unit
-      = "ml_gtk_text_set_adjustments"
-  external get_hadjustment : [>`text] obj -> adjustment obj
-      = "ml_gtk_text_get_hadj"
-  external get_vadjustment : [>`text] obj -> adjustment obj
-      = "ml_gtk_text_get_vadj"
-  external set_point : [>`text] obj -> int -> unit
-      = "ml_gtk_text_set_point"
-  external get_point : [>`text] obj -> int = "ml_gtk_text_get_point"
-  external get_length : [>`text] obj -> int = "ml_gtk_text_get_length"
-  external freeze : [>`text] obj -> unit = "ml_gtk_text_freeze"
-  external thaw : [>`text] obj -> unit = "ml_gtk_text_thaw"
-  external insert :
-      [>`text] obj -> ?font:Gdk.font -> ?foreground:Gdk.Color.t ->
-      ?background:Gdk.Color.t -> string -> unit
-      = "ml_gtk_text_insert"
-  let set ?hadjustment ?vadjustment ?word_wrap w =
-    if hadjustment <> None || vadjustment <> None then
-      set_adjustment w ?horizontal: hadjustment ?vertical: vadjustment ();
-    may word_wrap ~f:(set_word_wrap w)
-end
-
-module Combo = struct
-  let cast w : combo obj = Object.try_cast w "GtkCombo"
-  external create : unit -> combo obj = "ml_gtk_combo_new"
-  external set_value_in_list :
-      [>`combo] obj -> ?required:bool -> ?ok_if_empty:bool -> unit -> unit
-      = "ml_gtk_combo_set_value_in_list"
-  external set_use_arrows : [>`combo] obj -> bool -> unit
-      = "ml_gtk_combo_set_use_arrows"
-  external set_use_arrows_always : [>`combo] obj -> bool -> unit
-      = "ml_gtk_combo_set_use_arrows_always"
-  external set_case_sensitive : [>`combo] obj -> bool -> unit
-      = "ml_gtk_combo_set_case_sensitive"
-  external set_item_string : [>`combo] obj -> [>`item] obj -> string -> unit
-      = "ml_gtk_combo_set_item_string"
-  external entry : [>`combo] obj -> entry obj= "ml_gtk_combo_entry"
-  external list : [>`combo] obj -> liste obj= "ml_gtk_combo_list"
-  let set_popdown_strings combo strings =
-    GtkList.Liste.clear_items (list combo) ~start:0 ~stop:(-1);
-    List.iter strings ~f:
-      begin fun s ->
-       let li = GtkList.ListItem.create_with_label s in
-       Widget.show li;
-       Container.add (list combo) li
-      end
-  let set_use_arrows' w (mode : [`NEVER|`DEFAULT|`ALWAYS]) =
-    let def,always =
-      match mode with
-       `NEVER -> false, false
-      |        `DEFAULT -> true, false
-      |        `ALWAYS -> true, true
-    in
-    set_use_arrows w def;
-    set_use_arrows_always w always
-  let set ?popdown_strings ?use_arrows
-      ?case_sensitive ?value_in_list ?ok_if_empty w =
-    may popdown_strings ~f:(set_popdown_strings w);
-    may use_arrows ~f:(set_use_arrows' w);
-    may case_sensitive ~f:(set_case_sensitive w);
-    if value_in_list <> None || ok_if_empty <> None then
-      set_value_in_list w ?required:value_in_list ?ok_if_empty ()
-  external disable_activate : [>`combo] obj -> unit
-      = "ml_gtk_combo_disable_activate"
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkInit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkInit.ml
deleted file mode 100644 (file)
index 5ce40db..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-(* $Id$ *)
-
-(* Does the initialization for toplevels *)
-
-let locale = GtkMain.Main.init ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkList.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkList.ml
deleted file mode 100644 (file)
index 4d2ae09..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module ListItem = struct
-  let cast w : list_item obj = Object.try_cast w "GtkListItem"
-  external create : unit -> list_item obj = "ml_gtk_list_item_new"
-  external create_with_label : string -> list_item obj
-      = "ml_gtk_list_item_new_with_label"
-  let create ?label () =
-    match label with None -> create ()
-    | Some label -> create_with_label label
-end
-
-module Liste = struct
-  let cast w : liste obj = Object.try_cast w "GtkList"
-  external create : unit -> liste obj = "ml_gtk_list_new"
-  external insert_item :
-      [>`list] obj -> [>`listitem] obj -> pos:int -> unit
-      = "ml_gtk_list_insert_item"
-  let insert_items l wl ~pos =
-    let wl = if pos < 0 then wl else List.rev wl in
-    List.iter wl ~f:(insert_item l ~pos)
-  let append_items l = insert_items l ~pos:(-1)
-  let prepend_items l = insert_items l ~pos:0
-  external clear_items : [>`list] obj -> start:int -> stop:int -> unit =
-    "ml_gtk_list_clear_items"
-  external select_item : [>`list] obj -> pos:int -> unit
-      = "ml_gtk_list_select_item"
-  external unselect_item : [>`list] obj -> pos:int -> unit
-      = "ml_gtk_list_unselect_item"
-  external select_child : [>`list] obj -> [>`listitem] obj -> unit
-      = "ml_gtk_list_select_child"
-  external unselect_child : [>`list] obj -> [>`listitem] obj -> unit
-      = "ml_gtk_list_unselect_child"
-  external child_position : [>`list] obj -> [>`listitem] obj -> int
-      = "ml_gtk_list_child_position"
-  external set_selection_mode : [>`list] obj -> selection_mode -> unit
-      = "ml_gtk_list_set_selection_mode"
-  module Signals = struct
-    open GtkSignal
-    let selection_changed : ([>`list],_) t =
-      { name = "selection_changed"; marshaller = marshal_unit }
-    let select_child : ([>`list],_) t =
-      { name = "select_child"; marshaller = Widget.Signals.marshal }
-    let unselect_child : ([>`list],_) t =
-      { name = "unselect_child"; marshaller = Widget.Signals.marshal }
-  end
-end
-
-module CList = struct
-  let cast w : clist obj = Object.try_cast w "GtkCList"
-  external create : cols:int -> clist obj = "ml_gtk_clist_new"
-  external create_with_titles : string array -> clist obj
-      = "ml_gtk_clist_new_with_titles"
-  external get_rows : [>`clist] obj -> int = "ml_gtk_clist_get_rows"
-  external get_columns : [>`clist] obj -> int = "ml_gtk_clist_get_columns"
-  external get_focus_row : [>`clist] obj -> int
-      = "ml_gtk_clist_get_focus_row"
-  external set_hadjustment : [>`clist] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_clist_set_hadjustment"
-  external set_vadjustment : [>`clist] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_clist_set_vadjustment"
-  external get_hadjustment : [>`clist] obj -> adjustment obj
-      = "ml_gtk_clist_get_hadjustment"
-  external get_vadjustment : [>`clist] obj -> adjustment obj
-      = "ml_gtk_clist_get_vadjustment"
-  external set_shadow_type : [>`clist] obj -> shadow_type -> unit
-      = "ml_gtk_clist_set_shadow_type"
-  external set_selection_mode : [>`clist] obj -> selection_mode -> unit
-      = "ml_gtk_clist_set_selection_mode"
-  external set_reorderable : [>`clist] obj -> bool -> unit
-      = "ml_gtk_clist_set_reorderable"
-  external set_use_drag_icons : [>`clist] obj -> bool -> unit
-      = "ml_gtk_clist_set_use_drag_icons"
-  external set_button_actions :
-      [>`clist] obj -> int -> button_action list -> unit
-      = "ml_gtk_clist_set_button_actions"
-  external freeze : [>`clist] obj -> unit = "ml_gtk_clist_freeze"
-  external thaw : [>`clist] obj -> unit = "ml_gtk_clist_thaw"
-  external column_titles_show : [>`clist] obj -> unit
-      = "ml_gtk_clist_column_titles_show"
-  external column_titles_hide : [>`clist] obj -> unit
-      = "ml_gtk_clist_column_titles_hide"
-  external column_title_active : [>`clist] obj -> int -> unit
-      = "ml_gtk_clist_column_title_active"
-  external column_title_passive : [>`clist] obj -> int -> unit
-      = "ml_gtk_clist_column_title_passive"
-  external column_titles_active : [>`clist] obj -> unit
-      = "ml_gtk_clist_column_titles_active"
-  external column_titles_passive : [>`clist] obj -> unit
-      = "ml_gtk_clist_column_titles_passive"
-  external set_column_title : [>`clist] obj -> int -> string -> unit
-      = "ml_gtk_clist_set_column_title"
-  external get_column_title : [>`clist] obj -> int -> string
-      = "ml_gtk_clist_get_column_title"
-  external set_column_widget : [>`clist] obj -> int -> [>`widget] obj -> unit
-      = "ml_gtk_clist_set_column_widget"
-  external get_column_widget : [>`clist] obj -> int -> widget obj
-      = "ml_gtk_clist_get_column_widget"
-  external set_column_justification :
-      [>`clist] obj -> int -> justification -> unit
-      = "ml_gtk_clist_set_column_justification"
-  external set_column_visibility : [>`clist] obj -> int -> bool -> unit
-      = "ml_gtk_clist_set_column_visibility"
-  external set_column_resizeable : [>`clist] obj -> int -> bool -> unit
-      = "ml_gtk_clist_set_column_resizeable"
-  external set_column_auto_resize : [>`clist] obj -> int -> bool -> unit
-      = "ml_gtk_clist_set_column_auto_resize"
-  external columns_autosize : [>`clist] obj -> unit
-      = "ml_gtk_clist_columns_autosize"
-  external optimal_column_width : [>`clist] obj -> int -> int
-      = "ml_gtk_clist_optimal_column_width"
-  external set_column_width : [>`clist] obj -> int -> int -> unit
-      = "ml_gtk_clist_set_column_width"
-  external set_column_min_width : [>`clist] obj -> int -> int -> unit
-      = "ml_gtk_clist_set_column_min_width"
-  external set_column_max_width : [>`clist] obj -> int -> int -> unit
-      = "ml_gtk_clist_set_column_max_width"
-  external set_row_height : [>`clist] obj -> int -> unit
-      = "ml_gtk_clist_set_row_height"
-  external moveto :
-      [>`clist] obj ->
-      int -> int -> row_align:clampf -> col_align:clampf -> unit
-      = "ml_gtk_clist_moveto"
-  external row_is_visible : [>`clist] obj -> int -> visibility
-      = "ml_gtk_clist_row_is_visible"
-  external get_cell_type : [>`clist] obj -> int -> int -> cell_type
-      = "ml_gtk_clist_get_cell_type"
-  external set_text : [>`clist] obj -> int -> int -> string -> unit
-      = "ml_gtk_clist_set_text"
-  external get_text : [>`clist] obj -> int -> int -> string
-      = "ml_gtk_clist_get_text"
-  external set_pixmap :
-      [>`clist] obj ->
-      int -> int -> Gdk.pixmap -> Gdk.bitmap Gpointer.optboxed -> unit
-      = "ml_gtk_clist_set_pixmap"
-  external get_pixmap :
-      [>`clist] obj -> int -> int -> Gdk.pixmap option * Gdk.bitmap option
-      = "ml_gtk_clist_get_pixmap"
-  external set_pixtext :
-      [>`clist] obj -> int -> int ->
-      string -> int -> Gdk.pixmap -> Gdk.bitmap Gpointer.optboxed -> unit
-      = "ml_gtk_clist_set_pixtext_bc" "ml_gtk_clist_set_pixtext"
-  external set_foreground :
-      [>`clist] obj -> row:int -> Gdk.Color.t Gpointer.optboxed -> unit
-      = "ml_gtk_clist_set_foreground"
-  external set_background :
-      [>`clist] obj -> row:int -> Gdk.Color.t Gpointer.optboxed -> unit
-      = "ml_gtk_clist_set_background"
-  external get_cell_style : [>`clist] obj -> int -> int -> Gtk.style
-      = "ml_gtk_clist_get_cell_style"
-  external set_cell_style : [>`clist] obj -> int -> int -> Gtk.style -> unit
-      = "ml_gtk_clist_set_cell_style"
-  external get_row_style : [>`clist] obj -> row:int -> Gtk.style
-      = "ml_gtk_clist_get_row_style"
-  external set_row_style : [>`clist] obj -> row:int -> Gtk.style -> unit
-      = "ml_gtk_clist_set_row_style"
-  external set_selectable : [>`clist] obj -> row:int -> bool -> unit
-      = "ml_gtk_clist_set_selectable"
-  external get_selectable : [>`clist] obj -> row:int -> bool
-      = "ml_gtk_clist_get_selectable"
-  external set_shift :
-      [>`clist] obj -> int -> int -> vertical:int -> horizontal:int -> unit
-      = "ml_gtk_clist_set_shift"
-  external insert : [>`clist] obj -> row:int -> Gpointer.optstring array -> int
-      = "ml_gtk_clist_insert"
-  let insert w ~row texts =
-    let len = get_columns w in
-    if List.length texts > len then invalid_arg "CList.insert";
-    let arr = Array.create (get_columns w) None in
-    List.fold_left texts ~init:0
-      ~f:(fun pos text -> arr.(pos) <- text; pos+1);
-    let r = insert w ~row (Array.map ~f:Gpointer.optstring arr) in
-    if r = -1 then invalid_arg "GtkCList::insert";
-    r
-  external remove : [>`clist] obj -> row:int -> unit
-      = "ml_gtk_clist_remove"
-  external set_row_data : [>`clist] obj -> row:int -> Obj.t -> unit
-      = "ml_gtk_clist_set_row_data"
-  external get_row_data : [>`clist] obj -> row:int -> Obj.t
-      = "ml_gtk_clist_get_row_data"
-  external select : [>`clist] obj -> int -> int -> unit
-      = "ml_gtk_clist_select_row"
-  external unselect : [>`clist] obj -> int -> int -> unit
-      = "ml_gtk_clist_unselect_row"
-  external clear : [>`clist] obj -> unit = "ml_gtk_clist_clear"
-  external get_row_column : [>`clist] obj -> x:int -> y:int -> int * int
-      = "ml_gtk_clist_get_selection_info"
-  external select_all : [>`clist] obj -> unit = "ml_gtk_clist_select_all"
-  external unselect_all : [>`clist] obj -> unit = "ml_gtk_clist_unselect_all"
-  external swap_rows : [>`clist] obj -> int -> int -> unit
-      = "ml_gtk_clist_swap_rows"
-  external row_move : [>`clist] obj -> int -> dst:int -> unit
-      = "ml_gtk_clist_row_move"
-  external set_sort_column : [>`clist] obj -> int -> unit
-      = "ml_gtk_clist_set_sort_column"
-  external set_sort_type : [>`clist] obj -> sort_type -> unit
-      = "ml_gtk_clist_set_sort_type"
-  external sort : [>`clist] obj -> unit
-      = "ml_gtk_clist_sort"
-  external set_auto_sort : [>`clist] obj -> bool -> unit
-      = "ml_gtk_clist_set_auto_sort"
-  let set_titles_show w = function
-      true -> column_titles_show w
-    | false -> column_titles_hide w
-  let set_titles_active w = function
-      true -> column_titles_active w
-    | false -> column_titles_passive w
-  let set ?hadjustment ?vadjustment ?shadow_type
-      ?(button_actions=[]) ?selection_mode ?reorderable
-      ?use_drag_icons ?row_height ?titles_show ?titles_active w =
-    let may_set f param = may param ~f:(f w) in
-    may_set set_hadjustment hadjustment;
-    may_set set_vadjustment vadjustment;
-    may_set set_shadow_type shadow_type;
-    List.iter button_actions ~f:(fun (n,act) -> set_button_actions w n act);
-    may_set set_selection_mode selection_mode;
-    may_set set_reorderable reorderable;
-    may_set set_use_drag_icons use_drag_icons;
-    may_set set_row_height row_height;
-    may_set set_titles_show titles_show;
-    may_set set_titles_active titles_active
-  let set_sort w ?auto ?column ?dir:sort_type () =
-    may auto ~f:(set_auto_sort w);
-    may column ~f:(set_sort_column w);
-    may sort_type ~f:(set_sort_type w)
-  let set_cell w ?text ?pixmap ?mask ?(spacing=0) ?style row col =
-    begin match text, pixmap with
-    | Some text, None ->
-        set_text w row col text
-    | None, Some pm ->
-        set_pixmap w row col pm (Gpointer.optboxed mask)
-    | Some text, Some pm ->
-        set_pixtext w row col text spacing pm (Gpointer.optboxed mask)
-    | _ -> ()
-    end;
-    may style ~f:(set_cell_style w row col)
-  let set_column w ?widget ?title ?title_active ?justification
-      ?visibility ?resizeable ?auto_resize ?width ?min_width ?max_width
-      col =
-    let may_set f param = may param ~f:(f w col) in
-    may_set set_column_widget widget;
-    may_set set_column_title title;
-    may title_active
-      ~f:(fun active -> if active then column_title_active w col
-                                   else column_title_passive w col);
-    may_set set_column_justification justification;
-    may_set set_column_visibility visibility;
-    may_set set_column_resizeable resizeable;
-    may_set set_column_auto_resize auto_resize;
-    may_set set_column_width width;
-    may_set set_column_min_width min_width;
-    may_set set_column_max_width max_width
-  let set_row w ?foreground ?background ?selectable ?style row =
-    let may_set f = may ~f:(f w ~row) in
-    may_set set_foreground foreground;
-    may_set set_background  background;
-    may_set set_selectable  selectable;
-    may_set set_row_style style
-  module Signals = struct
-    open GtkArgv
-    open GtkSignal
-    let marshal_select f argv = function
-      | INT row :: INT column :: POINTER p :: _ ->
-          let event : GdkEvent.Button.t option =
-           may_map ~f:GdkEvent.unsafe_copy p
-          in
-          f ~row ~column ~event
-      | _ -> invalid_arg "GtkList.CList.Signals.marshal_select"
-    let select_row : ([>`clist],_) t =
-      { name = "select_row"; marshaller = marshal_select }
-    let unselect_row : ([>`clist],_) t =
-      { name = "unselect_row"; marshaller = marshal_select }
-    let click_column : ([>`clist],_) t =
-      { name = "click_column"; marshaller = marshal_int }
-    external val_scroll_type : int -> scroll_type = "ml_Val_scroll_type"
-    let marshal_scroll f argv = function
-      | INT st :: FLOAT (pos : clampf) :: _ ->
-          f (val_scroll_type st) ~pos
-      | _ -> invalid_arg "GtkList.CList.Signals.marshal_scroll"
-    let scroll_horizontal : ([>`clist],_) t =
-      { name = "scroll_horizontal"; marshaller = marshal_scroll }
-    let scroll_vertical : ([>`clist],_) t =
-      { name = "scroll_vertical"; marshaller = marshal_scroll }
-    external emit_scroll :
-        'a obj -> name:string -> Tags.scroll_type -> pos:clampf -> unit
-        = "ml_gtk_signal_emit_scroll"
-    let emit_scroll = emit ~emitter:emit_scroll
-  end
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMain.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMain.ml
deleted file mode 100644 (file)
index 7ef3443..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-
-let _ = Callback.register_exception "gtkerror" (Error"")
-
-module Timeout = struct
-  type id
-  external add : ms:int -> callback:(GtkArgv.t -> unit) -> id
-      = "ml_gtk_timeout_add"
-  let add ~ms ~callback =
-    add ~ms ~callback:(fun arg -> GtkArgv.set_result arg (`BOOL(callback ())))
-  external remove : id -> unit = "ml_gtk_timeout_remove"
-end
-
-module Main = struct
-  external init : string array -> string array = "ml_gtk_init"
-  (* external exit : int -> unit = "ml_gtk_exit" *)
-  external set_locale : unit -> string = "ml_gtk_set_locale"
-  (* external main : unit -> unit = "ml_gtk_main" *)
-  let locale = set_locale ()
-  let init () =
-    (* let locale = set_locale () in *)
-    let argv = init Sys.argv in
-    Array.blit ~src:argv ~dst:Sys.argv ~len:(Array.length argv)
-      ~src_pos:0 ~dst_pos:0;
-    Obj.truncate (Obj.repr Sys.argv) ~len:(Array.length argv);
-    locale
-  open Glib
-  let loops = ref [] 
-  let main () =
-    let loop = (Main.create true) in
-    loops := loop :: !loops;
-    while Main.is_running loop do Main.iteration true done;
-    loops := List.tl !loops
-  and quit () = Main.quit (List.hd !loops)
-  external get_version : unit -> int * int * int = "ml_gtk_get_version"
-  let version = get_version ()
-
-  let flush = Gdk.X.flush
-end
-
-module Grab = struct
-  external add : [>`widget] obj -> unit = "ml_gtk_grab_add"
-  external remove : [>`widget] obj -> unit = "ml_gtk_grab_remove"
-  external get_current : unit -> widget obj= "ml_gtk_grab_get_current"
-end
-
-let _ = Glib.set_warning_handler (fun msg -> raise (Warning msg))
-let _ = Glib.set_print_handler (fun msg -> print_string msg)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMenu.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMenu.ml
deleted file mode 100644 (file)
index 2f1eb30..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open GtkBase
-
-module MenuItem = struct
-  let cast w : menu_item obj = Object.try_cast w "GtkMenuItem"
-  external coerce : [>`menuitem] obj -> menu_item obj = "%identity"
-  external create : unit -> menu_item obj = "ml_gtk_menu_item_new"
-  external create_with_label : string -> menu_item obj
-      = "ml_gtk_menu_item_new_with_label"
-  external tearoff_create : unit -> menu_item obj
-      = "ml_gtk_tearoff_menu_item_new"
-  let create ?label () =
-    match label with None -> create ()
-    | Some label -> create_with_label label
-  external set_submenu : [>`menuitem] obj -> [>`menu] obj -> unit
-      = "ml_gtk_menu_item_set_submenu"
-  external remove_submenu : [>`menuitem] obj -> unit
-      = "ml_gtk_menu_item_remove_submenu"
-  external configure :
-      [>`menuitem] obj -> show_toggle:bool -> show_indicator:bool -> unit
-      = "ml_gtk_menu_item_configure"
-  external activate : [>`menuitem] obj -> unit
-      = "ml_gtk_menu_item_activate"
-  external right_justify : [>`menuitem] obj -> unit
-      = "ml_gtk_menu_item_right_justify"
-  module Signals = struct
-    open GtkSignal
-    let activate : ([>`menuitem],_) t =
-      { name = "activate"; marshaller = marshal_unit }
-    let activate_item : ([>`menuitem],_) t =
-      { name = "activate_item"; marshaller = marshal_unit }
-  end
-end
-
-module CheckMenuItem = struct
-  let cast w : check_menu_item obj = Object.try_cast w "GtkCheckMenuItem"
-  external coerce : [>`checkmenuitem] obj -> check_menu_item obj = "%identity"
-  external create : unit -> check_menu_item obj = "ml_gtk_check_menu_item_new"
-  external create_with_label : string -> check_menu_item obj
-      = "ml_gtk_check_menu_item_new_with_label"
-  let create ?label () =
-    match label with None -> create ()
-    | Some label -> create_with_label label
-  external set_active : [>`checkmenuitem] obj -> bool -> unit
-      = "ml_gtk_check_menu_item_set_active"
-  external get_active : [>`checkmenuitem] obj -> bool
-      = "ml_gtk_check_menu_item_get_active"
-  external set_show_toggle : [>`checkmenuitem] obj -> bool -> unit
-      = "ml_gtk_check_menu_item_set_show_toggle"
-  let set ?active ?show_toggle w =
-    may active ~f:(set_active w);
-    may show_toggle ~f:(set_show_toggle w)
-  external toggled : [>`checkmenuitem] obj -> unit
-      = "ml_gtk_check_menu_item_toggled"
-  module Signals = struct
-    open GtkSignal
-    let toggled : ([>`checkmenuitem],_) t =
-      { name = "toggled"; marshaller = marshal_unit }
-  end
-end
-
-module RadioMenuItem = struct
-  let cast w : radio_menu_item obj = Object.try_cast w "GtkRadioMenuItem"
-  external create : radio_menu_item group -> radio_menu_item obj
-      = "ml_gtk_radio_menu_item_new"
-  external create_with_label :
-      radio_menu_item group -> string -> radio_menu_item obj
-      = "ml_gtk_radio_menu_item_new_with_label"
-  let create ?(group = None) ?label () =
-    match label with None -> create group
-    | Some label -> create_with_label group label
-  external set_group : [>`radiomenuitem] obj -> radio_menu_item group -> unit
-      = "ml_gtk_radio_menu_item_set_group"
-end
-
-module OptionMenu = struct
-  let cast w : option_menu obj = Object.try_cast w "GtkOptionMenu"
-  external create : unit -> option_menu obj = "ml_gtk_option_menu_new"
-  external get_menu : [>`optionmenu] obj -> menu obj
-      = "ml_gtk_option_menu_get_menu"
-  external set_menu : [>`optionmenu] obj -> [>`menu] obj -> unit
-      = "ml_gtk_option_menu_set_menu"
-  external remove_menu : [>`optionmenu] obj -> unit
-      = "ml_gtk_option_menu_remove_menu"
-  external set_history : [>`optionmenu] obj -> int -> unit
-      = "ml_gtk_option_menu_set_history"
-  let set ?menu ?history w =
-    may menu ~f:(set_menu w);
-    may history ~f:(set_history w)
-end
-
-module MenuShell = struct
-  let cast w : menu_shell obj = Object.try_cast w "GtkMenuShell"
-  external coerce : [>`menushell] obj -> menu_shell obj = "%identity"
-  external append : [>`menushell] obj -> [>`widget] obj -> unit
-      = "ml_gtk_menu_shell_append"
-  external prepend : [>`menushell] obj -> [>`widget] obj -> unit
-      = "ml_gtk_menu_shell_prepend"
-  external insert : [>`menushell] obj -> [>`widget] obj -> pos:int -> unit
-      = "ml_gtk_menu_shell_insert"
-  external deactivate : [>`menushell] obj -> unit
-      = "ml_gtk_menu_shell_deactivate"
-  module Signals = struct
-    open GtkSignal
-    let deactivate : ([>`menushell],_) t =
-      { name = "deactivate"; marshaller = marshal_unit }
-  end
-end
-
-module Menu = struct
-  let cast w : menu obj = Object.try_cast w "GtkMenu"
-  external create : unit -> menu obj = "ml_gtk_menu_new"
-  external popup :
-      [>`menu] obj -> [>`menushell] optobj ->
-      [>`menuitem] optobj -> button:int -> time:int -> unit
-      = "ml_gtk_menu_popup"
-  let popup ?parent_menu ?parent_item w =
-    popup w (Gpointer.optboxed parent_menu) (Gpointer.optboxed parent_item)
-  external popdown : [>`menu] obj -> unit = "ml_gtk_menu_popdown"
-  external get_active : [>`menu] obj -> widget obj= "ml_gtk_menu_get_active"
-  external set_active : [>`menu] obj -> int -> unit = "ml_gtk_menu_set_active"
-  external set_accel_group : [>`menu] obj -> accel_group -> unit
-      = "ml_gtk_menu_set_accel_group"
-  external get_accel_group : [>`menu] obj -> accel_group
-      = "ml_gtk_menu_get_accel_group"
-  external ensure_uline_accel_group : [>`menu] obj -> accel_group
-      = "ml_gtk_menu_ensure_uline_accel_group"
-  external attach_to_widget : [>`menu] obj -> [>`widget] obj -> unit
-      = "ml_gtk_menu_attach_to_widget"
-  external get_attach_widget : [>`menu] obj -> widget obj
-      = "ml_gtk_menu_get_attach_widget"
-  external detach : [>`menu] obj -> unit = "ml_gtk_menu_detach"
-  let set ?active ?accel_group w =
-    may active ~f:(set_active w);
-    may accel_group ~f:(set_accel_group w)
-end
-
-module MenuBar = struct
-  let cast w : menu_bar obj = Object.try_cast w "GtkMenuBar"
-  external create : unit -> menu_bar obj = "ml_gtk_menu_bar_new"
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMisc.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkMisc.ml
deleted file mode 100644 (file)
index ded7f48..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module GammaCurve = struct
-  let cast w : gamma_curve obj = Object.try_cast w "GtkGammaCurve"
-  external create : unit -> gamma_curve obj = "ml_gtk_gamma_curve_new"
-  external get_gamma : [>`gamma] obj -> float = "ml_gtk_gamma_curve_get_gamma"
-end
-
-module ColorSelection = struct
-  let cast w : color_selection obj = Object.try_cast w "GtkColorSelection"
-  external create : unit -> color_selection obj = "ml_gtk_color_selection_new"
-  external create_dialog : string -> color_selection_dialog obj
-      = "ml_gtk_color_selection_dialog_new"
-  external set_update_policy : [>`colorsel] obj -> update_type -> unit
-      = "ml_gtk_color_selection_set_update_policy"
-  external set_opacity : [>`colorsel] obj -> bool -> unit
-      = "ml_gtk_color_selection_set_opacity"
-  let set ?update_policy ?opacity w =
-    may update_policy ~f:(set_update_policy w);
-    may opacity ~f:(set_opacity w)
-  external set_color :
-      [>`colorsel] obj ->
-      red:float -> green:float -> blue:float -> ?opacity:float -> unit
-      = "ml_gtk_color_selection_set_color"
-  external get_color : [>`colorsel] obj -> color
-      = "ml_gtk_color_selection_get_color"
-
-  external ok_button : [>`colorseldialog] obj -> button obj =
-    "ml_gtk_color_selection_dialog_ok_button"
-  external cancel_button : [>`colorseldialog] obj -> button obj =
-    "ml_gtk_color_selection_dialog_cancel_button"
-  external help_button : [>`colorseldialog] obj -> button obj =
-    "ml_gtk_color_selection_dialog_help_button"
-  external colorsel : [>`colorseldialog] obj -> color_selection obj =
-    "ml_gtk_color_selection_dialog_colorsel"
-  module Signals = struct
-    open GtkSignal
-    let color_changed : ([>`colorsel],_) t =
-      { name = "color_changed"; marshaller = marshal_unit }
-  end
-end
-
-module Statusbar = struct
-  let cast w : statusbar obj = Object.try_cast w "GtkStatusbar"
-  external create : unit -> statusbar obj = "ml_gtk_statusbar_new"
-  external get_context : [>`statusbar] obj -> string -> statusbar_context
-      = "ml_gtk_statusbar_get_context_id"
-  external push :
-      [>`statusbar] obj ->
-      statusbar_context -> text:string -> statusbar_message
-      = "ml_gtk_statusbar_push"
-  external pop : [>`statusbar] obj -> statusbar_context ->  unit
-      = "ml_gtk_statusbar_pop"
-  external remove :
-      [>`statusbar] obj -> statusbar_context -> statusbar_message -> unit
-      = "ml_gtk_statusbar_remove"
-  module Signals = struct
-    open GtkSignal
-    let text_pushed : ([>`statusbar],_) t =
-      let marshal f _ = function
-        | GtkArgv.INT ctx :: GtkArgv.STRING s :: _ ->
-           f (Obj.magic ctx : statusbar_context) s
-        | _ -> invalid_arg "GtkMisc.Statusbar.Signals.marshal_text"
-      in
-      { name = "text_pushed"; marshaller = marshal }
-  end
-end
-
-module Calendar = struct
-  let cast w : calendar obj = Object.try_cast w "GtkCalendar"
-  external create : unit -> calendar obj = "ml_gtk_calendar_new"
-  external select_month : [>`calendar] obj -> month:int -> year:int -> unit
-      = "ml_gtk_calendar_select_month"
-  external select_day : [>`calendar] obj -> int -> unit
-      = "ml_gtk_calendar_select_day"
-  external mark_day : [>`calendar] obj -> int -> unit
-      = "ml_gtk_calendar_mark_day"
-  external unmark_day : [>`calendar] obj -> int -> unit
-      = "ml_gtk_calendar_unmark_day"
-  external clear_marks : [>`calendar] obj -> unit
-      = "ml_gtk_calendar_clear_marks"
-  external display_options :
-      [>`calendar] obj -> Tags.calendar_display_options list -> unit
-      = "ml_gtk_calendar_display_options"
-  external get_date : [>`calendar] obj -> int * int * int
-      = "ml_gtk_calendar_get_date"   (* year * month * day *)
-  external freeze : [>`calendar] obj -> unit
-      = "ml_gtk_calendar_freeze"
-  external thaw : [>`calendar] obj -> unit
-      = "ml_gtk_calendar_thaw"
-  module Signals = struct
-    open GtkSignal
-    let month_changed : ([>`calendar],_) t =
-      { name = "month_changed"; marshaller = marshal_unit }
-    let day_selected : ([>`calendar],_) t =
-      { name = "day_selected"; marshaller = marshal_unit }
-    let day_selected_double_click : ([>`calendar],_) t =
-      { name = "day_selected_double_click"; marshaller = marshal_unit }
-    let prev_month : ([>`calendar],_) t =
-      { name = "prev_month"; marshaller = marshal_unit }
-    let next_month : ([>`calendar],_) t =
-      { name = "next_month"; marshaller = marshal_unit }
-    let prev_year : ([>`calendar],_) t =
-      { name = "prev_year"; marshaller = marshal_unit }
-    let next_year : ([>`calendar],_) t =
-      { name = "next_year"; marshaller = marshal_unit }
-  end
-end
-
-module DrawingArea = struct
-  let cast w : drawing_area obj = Object.try_cast w "GtkDrawingArea"
-  external create : unit -> drawing_area obj = "ml_gtk_drawing_area_new"
-  external size : [>`drawing] obj -> width:int -> height:int -> unit
-      = "ml_gtk_drawing_area_size"
-end
-
-(* Does not seem very useful ...
-module Curve = struct
-  type t = [widget drawing curve] obj
-  let cast w : t = Object.try_cast w "GtkCurve"
-  external create : unit -> t = "ml_gtk_curve_new"
-  external reset : [>`curve] obj -> unit = "ml_gtk_curve_reset"
-  external set_gamma : [>`curve] obj -> float -> unit
-      = "ml_gtk_curve_set_gamma"
-  external set_range :
-      [>`curve] obj -> min_x:float -> max_x:float ->
-      min_y:float -> max_y:float -> unit
-      = "ml_gtk_curve_set_gamma"
-end
-*)
-
-module Misc = struct
-  let cast w : misc obj = Object.try_cast w "GtkMisc"
-  external coerce : [>`misc] obj -> misc obj = "%identity"
-  external set_alignment : [>`misc] obj -> x:float -> y:float -> unit
-      = "ml_gtk_misc_set_alignment"
-  external set_padding : [>`misc] obj -> x:int -> y:int -> unit
-      = "ml_gtk_misc_set_padding"
-  external get_xalign : [>`misc] obj -> float = "ml_gtk_misc_get_xalign"
-  external get_yalign : [>`misc] obj -> float = "ml_gtk_misc_get_yalign"
-  external get_xpad : [>`misc] obj -> int = "ml_gtk_misc_get_xpad"
-  external get_ypad : [>`misc] obj -> int = "ml_gtk_misc_get_ypad"
-  let set_alignment w ?x ?y () =
-    set_alignment w ~x:(may_default get_xalign w ~opt:x)
-      ~y:(may_default get_yalign w ~opt:y)
-  let set_padding w ?x ?y () =
-    set_padding w ~x:(may_default get_xpad w ~opt:x)
-      ~y:(may_default get_ypad w ~opt:y)
-  let set ?xalign ?yalign ?xpad ?ypad ?(width = -2) ?(height = -2) w =
-    if xalign <> None || yalign <> None then
-      set_alignment w ?x:xalign ?y:yalign ();
-    if xpad <> None || ypad <> None then
-      set_padding w ?x:xpad ?y:ypad ();
-    if width <> -2 || height <> -2 then Widget.set_usize w ~width ~height
-end
-
-module Arrow = struct
-  let cast w : arrow obj = Object.try_cast w "GtkArrow"
-  external create : kind:arrow_type -> shadow:shadow_type -> arrow obj
-      = "ml_gtk_arrow_new"
-  external set : [>`arrow] obj -> kind:arrow_type -> shadow:shadow_type -> unit
-      = "ml_gtk_arrow_set"
-end
-
-module Image = struct
-  let cast w : image obj = Object.try_cast w "GtkImage"
-  external create : Gdk.image -> ?mask:Gdk.bitmap -> image obj
-      = "ml_gtk_image_new"
-  let create ?mask img = create img ?mask
-  external set : [>`image] obj -> Gdk.image -> ?mask:Gdk.bitmap -> unit
-      = "ml_gtk_image_set"
-end
-
-module Label = struct
-  let cast w : label obj = Object.try_cast w "GtkLabel"
-  external coerce : [>`label] obj -> label obj = "%identity"
-  external create : string -> label obj = "ml_gtk_label_new"
-  external set_text : [>`label] obj -> string -> unit = "ml_gtk_label_set_text"
-  external set_justify : [>`label] obj -> justification -> unit
-      = "ml_gtk_label_set_justify"
-  external set_pattern : [>`label] obj -> string -> unit
-      = "ml_gtk_label_set_pattern"
-  external set_line_wrap : [>`label] obj -> bool -> unit
-      = "ml_gtk_label_set_line_wrap"
-  let set ?text ?justify ?line_wrap ?pattern w =
-    may ~f:(set_text w) text;
-    may ~f:(set_justify w) justify;
-    may ~f:(set_line_wrap w) line_wrap;
-    may ~f:(set_pattern w) pattern
-  external get_text : [>`label] obj -> string = "ml_gtk_label_get_label"
-end
-
-module TipsQuery = struct
-  let cast w : tips_query obj = Object.try_cast w "GtkTipsQuery"
-  external create : unit -> tips_query obj = "ml_gtk_tips_query_new"
-  external start : [>`tipsquery] obj -> unit = "ml_gtk_tips_query_start_query"
-  external stop : [>`tipsquery] obj -> unit = "ml_gtk_tips_query_stop_query"
-  external set_caller : [>`tipsquery] obj -> [>`widget] obj -> unit
-      = "ml_gtk_tips_query_set_caller"
-  external set_labels :
-      [>`tipsquery] obj -> inactive:string -> no_tip:string -> unit
-      = "ml_gtk_tips_query_set_labels"
-  external set_emit_always : [>`tipsquery] obj -> bool -> unit
-      = "ml_gtk_tips_query_set_emit_always"
-  external get_caller : [>`tipsquery] obj -> widget obj
-      = "ml_gtk_tips_query_get_caller"
-  external get_label_inactive : [>`tipsquery] obj -> string
-      = "ml_gtk_tips_query_get_label_inactive"
-  external get_label_no_tip : [>`tipsquery] obj -> string
-      = "ml_gtk_tips_query_get_label_no_tip"
-  external get_emit_always : [>`tipsquery] obj -> bool
-      = "ml_gtk_tips_query_get_emit_always"
-  let set_labels ?inactive ?no_tip w =
-    set_labels w
-      ~inactive:(may_default get_label_inactive w ~opt:inactive)
-      ~no_tip:(may_default get_label_no_tip w ~opt:no_tip)
-  let set ?caller ?emit_always ?label_inactive ?label_no_tip w =
-    may caller ~f:(set_caller w);
-    may emit_always ~f:(set_emit_always w);
-    if label_inactive <> None || label_no_tip <> None then
-      set_labels w ?inactive:label_inactive ?no_tip:label_no_tip
-  module Signals = struct
-    open GtkArgv
-    open GtkSignal
-    let start_query : ([>`tipsquery],_) t =
-      { name = "start_query"; marshaller = marshal_unit }
-    let stop_query : ([>`tipsquery],_) t =
-      { name = "stop_query"; marshaller = marshal_unit }
-    let widget_entered :
-       ([>`tipsquery],
-        widget obj option ->
-        text:string option -> privat:string option -> unit) t =
-      let marshal f _ = function
-        | OBJECT opt :: STRING text :: STRING privat :: _ ->
-           f (may_map ~f:Widget.cast opt) ~text ~privat
-        | _ -> invalid_arg "GtkMisc.TipsQuery.Signals.marshal_entered"
-      in
-      { name = "widget_entered"; marshaller = marshal }
-    let widget_selected :
-       ([>`tipsquery],
-        widget obj option ->
-        text:string option ->
-        privat:string option -> GdkEvent.Button.t option -> bool) t =
-      let marshal f argv = function
-        | OBJECT obj :: STRING text :: STRING privat :: POINTER p :: _ ->
-           let stop = 
-             f (may_map ~f:Widget.cast obj) ~text ~privat
-               (may_map ~f:GdkEvent.unsafe_copy p)
-            in set_result argv (`BOOL stop)
-        | _ -> invalid_arg "GtkMisc.TipsQuery.Signals.marshal_selected"
-      in
-      { name = "widget_selected"; marshaller = marshal }
-  end
-end
-
-module Pixmap = struct
-  let cast w : pixmap obj = Object.try_cast w "GtkPixmap"
-  external create : Gdk.pixmap -> ?mask:Gdk.bitmap -> pixmap obj
-      = "ml_gtk_pixmap_new"
-  let create ?mask img = create img ?mask
-  external set :
-      [>`pixmap] obj -> ?pixmap:Gdk.pixmap -> ?mask:Gdk.bitmap -> unit
-      = "ml_gtk_pixmap_set"
-  external pixmap : [>`pixmap] obj -> Gdk.pixmap = "ml_GtkPixmap_pixmap"
-  external mask : [>`pixmap] obj -> Gdk.bitmap = "ml_GtkPixmap_mask"
-end
-
-module Separator = struct
-  let cast w : separator obj = Object.try_cast w "GtkSeparator"
-  external hseparator_new : unit -> separator obj = "ml_gtk_hseparator_new"
-  external vseparator_new : unit -> separator obj = "ml_gtk_vseparator_new"
-  let create (dir : Tags.orientation) =
-    if dir = `HORIZONTAL then hseparator_new () else vseparator_new ()
-end
-
-module FontSelection = struct
-  type null_terminated
-  let null_terminated arg : null_terminated =
-    match arg with None -> Obj.magic Gpointer.raw_null
-    | Some l ->
-       let len = List.length l in
-       let arr = Array.create (len + 1) "" in
-       let rec loop i = function
-           [] -> arr.(i) <- Obj.magic Gpointer.raw_null
-         | s::l -> arr.(i) <- s; loop (i+1) l
-       in loop 0 l;
-       Obj.magic (arr : string array)
-  let cast w : font_selection obj =
-    Object.try_cast w "GtkFontSelection"
-  external create : unit -> font_selection obj
-      = "ml_gtk_font_selection_new"
-  external get_font : [>`fontsel] obj -> Gdk.font
-      = "ml_gtk_font_selection_get_font"
-  let get_font w =
-    try Some (get_font w) with Gpointer.Null -> None
-  external get_font_name : [>`fontsel] obj -> string
-      = "ml_gtk_font_selection_get_font_name"
-  let get_font_name w =
-    try Some (get_font_name w) with Gpointer.Null -> None
-  external set_font_name : [>`fontsel] obj -> string -> unit
-      = "ml_gtk_font_selection_set_font_name"
-  external set_filter :
-    [>`fontsel] obj -> font_filter_type -> font_type list ->
-    null_terminated -> null_terminated -> null_terminated ->
-    null_terminated -> null_terminated -> null_terminated -> unit
-    = "ml_gtk_font_selection_set_filter_bc"
-      "ml_gtk_font_selection_set_filter"
-  let set_filter w ?kind:(tl=[`ALL]) ?foundry
-      ?weight ?slant ?setwidth ?spacing ?charset filter =
-    set_filter w filter tl (null_terminated foundry)
-      (null_terminated weight) (null_terminated slant)
-      (null_terminated setwidth) (null_terminated spacing)
-      (null_terminated charset)
-  external get_preview_text : [>`fontsel] obj -> string
-      = "ml_gtk_font_selection_get_preview_text"
-  external set_preview_text : [>`fontsel] obj -> string -> unit
-      = "ml_gtk_font_selection_set_preview_text"
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkNew.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkNew.ml
deleted file mode 100644 (file)
index 532a709..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-
-type t
-
-(* if you modify this type modify widget_info_array 
-   in ml_gtk.c in accordance *)
-type object_type =
-  | OBJECT  | WIDGET  | MISC  | LABEL  | ACCELLABEL  | TIPSQUERY  | ARROW
-  | IMAGE   | PIXMAP  | CONTAINER  | BIN  | ALIGNMENT  | FRAME  | ASPECTFRAME
-  | BUTTON  | TOGGLEBUTTON  | CHECKBUTTON  | RADIOBUTTON  | OPTIONMENU
-  | ITEM  | MENUITEM  | CHECKMENUITEM  | RADIOMENUITEM  | TEAROFFMENUITEM
-  | LISTITEM  | TREEITEM  | WINDOW  | COLORSELECTIONDIALOG  | DIALOG
-  | INPUTDIALOG  | FILESELECTION  | FONTSELECTIONDIALOG  | PLUG
-  | EVENTBOX  | HANDLEBOX  | SCROLLEDWINDOW  | VIEWPORT  | BOX
-  | BUTTONBOX  | HBUTTONBOX  | VBUTTONBOX  | VBOX  | COLORSELECTION
-  | GAMMACURVE  | HBOX  | COMBO  | STATUSBAR  | CLIST  | CTREE  | FIXED
-  | NOTEBOOK  | FONTSELECTION  | PANED  | HPANED  | VPANED  | LAYOUT
-  | LIST  | MENUSHELL  | MENUBAR  | MENU  | PACKER  | SOCKET  | TABLE
-  | TOOLBAR  | TREE  | CALENDAR  | DRAWINGAREA  | CURVE  | EDITABLE
-  | ENTRY  | SPINBUTTON  | TEXT  | RULER  | HRULER  | VRULER  | RANGE
-  | SCALE  | HSCALE  | VSCALE  | SCROLLBAR  | HSCROLLBAR  | VSCROLLBAR
-  | SEPARATOR  | HSEPARATOR  | VSEPARATOR  | PREVIEW  | PROGRESS
-  | PROGRESSBAR  | DATA  | ADJUSTMENT  | TOOLTIPS  | ITEMFACTORY
-
-external set_ml_class_init  : (t -> unit) -> unit = "set_ml_class_init"
-external signal_new : string -> int -> t -> object_type -> int  -> int
-    = "ml_gtk_signal_new"
-external object_class_add_signals : t -> int array -> int -> unit
-    = "ml_gtk_object_class_add_signals"
-external type_unique :
-    name:string -> parent:object_type -> nsignals:int -> gtk_type
-    = "ml_gtk_type_unique"
-external type_new : gtk_type -> unit obj
-    = "ml_gtk_type_new"
-
-open GtkSignal
-
-let make_new_widget ~name ~parent
-    ~(signals : ('a, unit -> unit) GtkSignal.t list) =
-  let nsignals = List.length signals in
-  let new_type = type_unique ~name ~parent ~nsignals in
-  let signal_num_array = Array.create nsignals 0 in
-  let class_init_func classe =
-    List.fold_left signals ~init:0 ~f:
-      (fun i signal ->
-       signal_num_array.(i) <- signal_new signal.name 1 classe parent i;
-       i+1);
-    object_class_add_signals classe signal_num_array nsignals
-  in
-  new_type,
-  (fun () ->
-    set_ml_class_init class_init_func;
-    type_new new_type)
-  (* , signal_num_array *)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkPack.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkPack.ml
deleted file mode 100644 (file)
index 20adb05..0000000
+++ /dev/null
@@ -1,318 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module Box = struct
-  let cast w : box obj = Object.try_cast w "GtkBox"
-  external coerce : [>`box] obj -> box obj = "%identity"
-  external pack_start :
-      [>`box] obj -> [>`widget] obj ->
-      expand:bool -> fill:bool -> padding:int -> unit
-      = "ml_gtk_box_pack_start"
-  external pack_end :
-      [>`box] obj -> [>`widget] obj ->
-      expand:bool -> fill:bool -> padding:int -> unit
-      = "ml_gtk_box_pack_end"
-  let pack box ?from:( dir = (`START : pack_type))
-      ?(expand=false) ?(fill=true) ?(padding=0) child =
-    (match dir with `START -> pack_start | `END -> pack_end)
-      box child ~expand ~fill ~padding
-  external reorder_child : [>`box] obj -> [>`widget] obj -> pos:int -> unit
-      = "ml_gtk_box_reorder_child"
-  external set_homogeneous : [>`box] obj -> bool -> unit
-      = "ml_gtk_box_set_homogeneous"
-  external set_spacing : [>`box] obj -> int -> unit
-      = "ml_gtk_box_set_spacing"
-  let set ?homogeneous ?spacing w =
-    may homogeneous ~f:(set_homogeneous w);
-    may spacing ~f:(set_spacing w)
-  type packing =
-      { expand: bool; fill: bool; padding: int; pack_type: pack_type }
-  external query_child_packing : [>`box] obj -> [>`widget] obj -> packing
-      = "ml_gtk_box_query_child_packing"
-  external set_child_packing :
-      [>`box] obj -> [>`widget] obj ->
-      ?expand:bool -> ?fill:bool -> ?padding:int -> ?from:pack_type -> unit
-      = "ml_gtk_box_set_child_packing_bc" "ml_gtk_box_set_child_packing"
-  external hbox_new : homogeneous:bool -> spacing:int -> box obj
-      = "ml_gtk_hbox_new"
-  external vbox_new : homogeneous:bool -> spacing:int -> box obj
-      = "ml_gtk_vbox_new"
-  let create (dir : orientation) ?(homogeneous=false) ?(spacing=0) () =
-    (match dir with `HORIZONTAL -> hbox_new | `VERTICAL -> vbox_new)
-      ~homogeneous ~spacing
-end
-
-module BBox = struct
-  (* Omitted defaults setting *)
-  let cast w : button_box obj = Object.try_cast w "GtkBBox"
-  external coerce : [>`bbox] obj -> button_box obj = "%identity"
-  type bbox_style = [ `DEFAULT_STYLE|`SPREAD|`EDGE|`START|`END ]
-  external get_spacing : [>`bbox] obj -> int = "ml_gtk_button_box_get_spacing"
-  external get_child_width : [>`bbox] obj -> int
-      = "ml_gtk_button_box_get_child_min_width"
-  external get_child_height : [>`bbox] obj -> int
-      = "ml_gtk_button_box_get_child_min_height"
-  external get_child_ipadx : [>`bbox] obj -> int
-      = "ml_gtk_button_box_get_child_ipad_x"
-  external get_child_ipady : [>`bbox] obj -> int
-      = "ml_gtk_button_box_get_child_ipad_y"
-  external get_layout : [>`bbox] obj -> bbox_style
-      = "ml_gtk_button_box_get_layout_style"
-  external set_spacing : [>`bbox] obj -> int -> unit
-      = "ml_gtk_button_box_set_spacing"
-  external set_child_size : [>`bbox] obj -> width:int -> height:int -> unit
-      = "ml_gtk_button_box_set_child_size"
-  external set_child_ipadding : [>`bbox] obj -> x:int -> y:int -> unit
-      = "ml_gtk_button_box_set_child_ipadding"
-  external set_layout : [>`bbox] obj -> bbox_style -> unit
-      = "ml_gtk_button_box_set_layout"
-  let set_child_size w ?width ?height () =
-    set_child_size w ~width:(may_default get_child_width w ~opt:width)
-      ~height:(may_default get_child_height w ~opt:height)
-  let set_child_ipadding w ?x ?y () =
-    set_child_ipadding w
-      ~x:(may_default get_child_ipadx w ~opt:x)
-      ~y:(may_default get_child_ipady w ~opt:y)
-  let set ?spacing ?child_width ?child_height ?child_ipadx
-      ?child_ipady ?layout w =
-    may spacing ~f:(set_spacing w);
-    if child_width <> None || child_height <> None then
-      set_child_size w ?width:child_width ?height:child_height ();
-    if child_ipadx <> None || child_ipady <> None then
-      set_child_ipadding w ?x:child_ipadx ?y:child_ipady ();
-    may layout ~f:(set_layout w)
-  external set_child_size_default : width:int -> height:int -> unit
-      = "ml_gtk_button_box_set_child_size_default"
-  external set_child_ipadding_default : x:int -> y:int -> unit
-      = "ml_gtk_button_box_set_child_ipadding_default"
-  external create_hbbox : unit -> button_box obj = "ml_gtk_hbutton_box_new"
-  external create_vbbox : unit -> button_box obj = "ml_gtk_vbutton_box_new"
-  let create (dir : orientation) =
-    if dir = `HORIZONTAL then create_hbbox () else create_vbbox ()
-end
-
-module Fixed = struct
-  let cast w : fixed obj = Object.try_cast w "GtkFixed"
-  external create : unit -> fixed obj = "ml_gtk_fixed_new"
-  external put : [>`fixed] obj -> [>`widget] obj -> x:int -> y:int -> unit
-      = "ml_gtk_fixed_put"
-  external move : [>`fixed] obj -> [>`widget] obj -> x:int -> y:int -> unit
-      = "ml_gtk_fixed_move"
-end
-
-module Layout = struct
-  let cast w : layout obj = Object.try_cast w "GtkLayout"
-  external create :
-      [>`adjustment] optobj -> [>`adjustment] optobj -> layout obj
-      = "ml_gtk_layout_new"
-  external put : [>`layout] obj -> [>`widget] obj -> x:int -> y:int -> unit
-      = "ml_gtk_layout_put"
-  external move : [>`layout] obj -> [>`widget] obj -> x:int -> y:int -> unit
-      = "ml_gtk_layout_move"
-  external set_size : [>`layout] obj -> width:int -> height:int -> unit
-      = "ml_gtk_layout_set_size"
-  external get_hadjustment : [>`layout] obj -> adjustment obj
-      = "ml_gtk_layout_get_hadjustment"
-  external get_vadjustment : [>`layout] obj -> adjustment obj
-      = "ml_gtk_layout_get_vadjustment"
-  external set_hadjustment : [>`layout] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_layout_set_hadjustment"
-  external set_vadjustment : [>`layout] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_layout_set_vadjustment"
-  external freeze : [>`layout] obj -> unit
-      = "ml_gtk_layout_freeze"
-  external thaw : [>`layout] obj -> unit
-      = "ml_gtk_layout_thaw"
-  external get_height : [>`layout] obj -> int
-      = "ml_gtk_layout_get_height"
-  external get_width : [>`layout] obj -> int
-      = "ml_gtk_layout_get_width"
-  let set_size ?width ?height w =
-    set_size w ~width:(may_default get_width w ~opt:width)
-      ~height:(may_default get_height w ~opt:height)
-end
-
-
-module Packer = struct
-  let cast w : packer obj = Object.try_cast w "GtkPacker"
-  external create : unit -> packer obj = "ml_gtk_packer_new"
-  external add :
-      [>`packer] obj -> [>`widget] obj ->
-      ?side:side_type -> ?anchor:anchor_type ->
-      ?options:packer_options list ->
-      ?border_width:int -> ?pad_x:int -> ?pad_y:int ->
-      ?i_pad_x:int -> ?i_pad_y:int -> unit
-      = "ml_gtk_packer_add_bc" "ml_gtk_packer_add"
-  external add_defaults :
-      [>`packer] obj -> [>`widget] obj ->
-      ?side:side_type -> ?anchor:anchor_type ->
-      ?options:packer_options list -> unit
-      = "ml_gtk_packer_add_defaults"
-  external set_child_packing :
-      [>`packer] obj -> [>`widget] obj ->
-      ?side:side_type -> ?anchor:anchor_type ->
-      ?options:packer_options list ->
-      ?border_width:int -> ?pad_x:int -> ?pad_y:int ->
-      ?i_pad_x:int -> ?i_pad_y:int -> unit
-      = "ml_gtk_packer_set_child_packing_bc" "ml_gtk_packer_set_child_packing"
-  external reorder_child : [>`packer] obj -> [>`widget] obj -> pos:int -> unit
-      = "ml_gtk_packer_reorder_child"
-  external set_spacing : [>`packer] obj -> int -> unit
-      = "ml_gtk_packer_set_spacing"
-  external set_defaults :
-      [>`packer] obj -> ?border_width:int -> ?pad_x:int -> ?pad_y:int ->
-      ?i_pad_x:int -> ?i_pad_y:int -> unit -> unit
-      = "ml_gtk_packer_set_defaults_bc" "ml_gtk_packer_set_defaults"
-
-  let build_options ?(expand=false) ?(fill=`BOTH) () =
-    (if expand then [`PACK_EXPAND] else []) @
-    (match (fill : expand_type) with `NONE -> []
-    | `X -> [`FILL_X]
-    | `Y -> [`FILL_Y]
-    | `BOTH -> [`FILL_X;`FILL_Y])
-end
-
-module Paned = struct
-  let cast w : paned obj = Object.try_cast w "GtkPaned"
-  external add1 : [>`paned] obj -> [>`widget] obj -> unit
-      = "ml_gtk_paned_add1"
-  external add2 : [>`paned] obj -> [>`widget] obj -> unit
-      = "ml_gtk_paned_add2"
-  external set_handle_size : [>`paned] obj -> int -> unit
-      = "ml_gtk_paned_set_handle_size"
-  external set_gutter_size : [>`paned] obj -> int -> unit
-      = "ml_gtk_paned_set_gutter_size"
-  let set ?handle_size ?gutter_size w =
-    may ~f:(set_handle_size w) handle_size;
-    may ~f:(set_gutter_size w) gutter_size
-  external child1 : [>`paned] obj -> widget obj = "ml_gtk_paned_child1"
-  external child2 : [>`paned] obj -> widget obj = "ml_gtk_paned_child2"
-  external handle_size : [>`paned] obj -> int = "ml_gtk_paned_handle_size"
-  external gutter_size : [>`paned] obj -> int = "ml_gtk_paned_handle_size"
-  external hpaned_new : unit -> paned obj = "ml_gtk_hpaned_new"
-  external vpaned_new : unit -> paned obj = "ml_gtk_vpaned_new"
-  let create (dir : orientation) =
-    if dir = `HORIZONTAL then hpaned_new () else vpaned_new ()
-end
-
-module Table = struct
-  let cast w : table obj = Object.try_cast w "GtkTable"
-  external create : int -> int -> homogeneous:bool -> table obj
-      = "ml_gtk_table_new"
-  let create ~rows:r ~columns:c ?(homogeneous=false) () =
-    create r c ~homogeneous
-  external attach :
-      [>`table] obj -> [>`widget] obj -> left:int -> right:int ->
-      top:int -> bottom:int -> xoptions:attach_options list ->
-      yoptions:attach_options list -> xpadding:int -> ypadding:int -> unit
-      = "ml_gtk_table_attach_bc" "ml_gtk_table_attach"
-  let has_x : expand_type -> bool =
-    function `X|`BOTH -> true | `Y|`NONE -> false
-  let has_y : expand_type -> bool =
-    function `Y|`BOTH -> true | `X|`NONE -> false
-  let attach t ~left ~top ?(right=left+1) ?(bottom=top+1)
-      ?(expand=`NONE) ?(fill=`BOTH) ?(shrink=`NONE)
-      ?(xpadding=0) ?(ypadding=0) w =
-    let xoptions = if has_x shrink then [`SHRINK] else [] in
-    let xoptions = if has_x fill then `FILL::xoptions else xoptions in
-    let xoptions = if has_x expand then `EXPAND::xoptions else xoptions in
-    let yoptions = if has_y shrink then [`SHRINK] else [] in
-    let yoptions = if has_y fill then `FILL::yoptions else yoptions in
-    let yoptions = if has_y expand then `EXPAND::yoptions else yoptions in
-    attach t w ~left ~top ~right ~bottom ~xoptions ~yoptions
-      ~xpadding ~ypadding
-  external set_row_spacing : [>`table] obj -> int -> int -> unit
-      = "ml_gtk_table_set_row_spacing"
-  external set_col_spacing : [>`table] obj -> int -> int -> unit
-      = "ml_gtk_table_set_col_spacing"
-  external set_row_spacings : [>`table] obj -> int -> unit
-      = "ml_gtk_table_set_row_spacings"
-  external set_col_spacings : [>`table] obj -> int -> unit
-      = "ml_gtk_table_set_col_spacings"
-  external set_homogeneous : [>`table] obj -> bool -> unit
-      = "ml_gtk_table_set_homogeneous"
-  let set ?homogeneous ?row_spacings ?col_spacings w =
-    may row_spacings ~f:(set_row_spacings w);
-    may col_spacings ~f:(set_col_spacings w);
-    may homogeneous ~f:(set_homogeneous w)
-end
-
-module Notebook = struct
-  let cast w : notebook obj = Object.try_cast w "GtkNotebook"
-  external create : unit -> notebook obj = "ml_gtk_notebook_new"
-  external insert_page :
-      [>`notebook] obj -> [>`widget] obj -> tab_label:[>`widget] optobj ->
-      menu_label:[>`widget] optobj -> pos:int -> unit
-      = "ml_gtk_notebook_insert_page_menu"
-      (* default is append to end *)
-  external remove_page : [>`notebook] obj -> int -> unit
-      = "ml_gtk_notebook_remove_page"
-  external get_current_page : [>`notebook] obj -> int
-      = "ml_gtk_notebook_get_current_page"
-  external set_page : [>`notebook] obj -> int -> unit
-      = "ml_gtk_notebook_set_page"
-  external set_tab_pos : [>`notebook] obj -> position -> unit
-      = "ml_gtk_notebook_set_tab_pos"
-  external set_homogeneous_tabs : [>`notebook] obj -> bool -> unit
-      = "ml_gtk_notebook_set_homogeneous_tabs"
-  external set_show_tabs : [>`notebook] obj -> bool -> unit
-      = "ml_gtk_notebook_set_show_tabs"
-  external set_show_border : [>`notebook] obj -> bool -> unit
-      = "ml_gtk_notebook_set_show_border"
-  external set_scrollable : [>`notebook] obj -> bool -> unit
-      = "ml_gtk_notebook_set_scrollable"
-  external set_tab_border : [>`notebook] obj -> int -> unit
-      = "ml_gtk_notebook_set_tab_border"
-  external popup_enable : [>`notebook] obj -> unit
-      = "ml_gtk_notebook_popup_enable"
-  external popup_disable : [>`notebook] obj -> unit
-      = "ml_gtk_notebook_popup_disable"
-  external get_nth_page : [>`notebook] obj -> int -> widget obj
-      = "ml_gtk_notebook_get_nth_page"
-  external page_num : [>`notebook] obj -> [>`widget] obj -> int
-      = "ml_gtk_notebook_page_num"
-  external next_page : [>`notebook] obj -> unit
-      = "ml_gtk_notebook_next_page"
-  external prev_page : [>`notebook] obj -> unit
-      = "ml_gtk_notebook_prev_page"
-  external get_tab_label : [>`notebook] obj -> [>`widget] obj -> widget obj
-      = "ml_gtk_notebook_get_tab_label"
-  external set_tab_label :
-      [>`notebook] obj -> [>`widget] obj -> [>`widget] obj -> unit
-      = "ml_gtk_notebook_set_tab_label"
-  external get_menu_label : [>`notebook] obj -> [>`widget] obj -> widget obj
-      = "ml_gtk_notebook_get_menu_label"
-  external set_menu_label :
-      [>`notebook] obj -> [>`widget] obj -> [>`widget] obj -> unit
-      = "ml_gtk_notebook_set_menu_label"
-  external reorder_child : [>`notebook] obj -> [>`widget] obj -> int -> unit
-      = "ml_gtk_notebook_reorder_child"
-
-  let set_popup w = function
-      true -> popup_enable w
-    | false -> popup_disable w
-  let set ?page ?tab_pos ?show_tabs ?homogeneous_tabs
-      ?show_border ?scrollable ?tab_border ?popup w =
-    let may_set f = may ~f:(f w) in
-    may_set set_page page;
-    may_set set_tab_pos tab_pos;
-    may_set set_show_tabs show_tabs;
-    may_set set_homogeneous_tabs homogeneous_tabs;
-    may_set set_show_border show_border;
-    may_set set_scrollable scrollable;
-    may_set set_tab_border tab_border;
-    may_set set_popup popup
-  module Signals = struct
-    open GtkArgv
-    open GtkSignal
-    let marshal_page f argv = function
-      |        _ :: INT page :: _ -> f page
-      |        _ -> invalid_arg "GtkPack.Notebook.Signals.marshal_page"
-    let switch_page : ([>`notebook],_) t =
-      { name = "switch_page"; marshaller = marshal_page }
-  end
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkRange.ml
deleted file mode 100644 (file)
index b67e49b..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module Progress = struct
-  let cast w : progress obj = Object.try_cast w "GtkProgress"
-  external set_show_text : [>`progress] obj -> bool -> unit
-      = "ml_gtk_progress_set_show_text"
-  external set_text_alignment :
-      [>`progress] obj -> ?x:float -> ?y:float -> unit -> unit
-      = "ml_gtk_progress_set_show_text"
-  external set_format_string : [>`progress] obj -> string -> unit
-      = "ml_gtk_progress_set_format_string"
-  external set_adjustment : [>`progress] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_progress_set_adjustment"
-  external configure :
-      [>`progress] obj -> current:float -> min:float -> max:float -> unit
-      = "ml_gtk_progress_configure"
-  external set_percentage : [>`progress] obj -> float -> unit
-      = "ml_gtk_progress_set_percentage"
-  external set_value : [>`progress] obj -> float -> unit
-      = "ml_gtk_progress_set_value"
-  external get_value : [>`progress] obj -> float
-      = "ml_gtk_progress_get_value"
-  external get_percentage : [>`progress] obj -> float
-      = "ml_gtk_progress_get_current_percentage"
-  external set_activity_mode : [>`progress] obj -> bool -> unit
-      = "ml_gtk_progress_set_activity_mode"
-  external get_current_text : [>`progress] obj -> string
-      = "ml_gtk_progress_get_current_text"
-  external get_adjustment : [>`progress] obj -> adjustment obj
-      = "ml_gtk_progress_get_adjustment"
-  let set ?value ?percentage ?activity_mode
-      ?show_text ?format_string ?text_xalign ?text_yalign w =
-    may value ~f:(set_value w);
-    may percentage ~f:(set_percentage w);
-    may activity_mode ~f:(set_activity_mode w);
-    may show_text ~f:(set_show_text w);
-    may format_string ~f:(set_format_string w);
-    if text_xalign <> None || text_yalign <> None then
-      set_text_alignment w ?x:text_xalign ?y:text_yalign ()
-end
-
-module ProgressBar = struct
-  let cast w : progress_bar obj = Object.try_cast w "GtkProgressBar"
-  external create : unit -> progress_bar obj = "ml_gtk_progress_bar_new"
-  external create_with_adjustment : [>`adjustment] obj -> progress_bar obj
-      = "ml_gtk_progress_bar_new_with_adjustment"
-  external set_bar_style :
-      [>`progressbar] obj -> [`CONTINUOUS|`DISCRETE] -> unit
-      = "ml_gtk_progress_bar_set_bar_style"
-  external set_discrete_blocks : [>`progressbar] obj -> int -> unit
-      = "ml_gtk_progress_bar_set_discrete_blocks"
-  external set_activity_step : [>`progressbar] obj -> int -> unit
-      = "ml_gtk_progress_bar_set_activity_step"
-  external set_activity_blocks : [>`progressbar] obj -> int -> unit
-      = "ml_gtk_progress_bar_set_activity_blocks"
-  external set_orientation :
-      [>`progressbar] obj -> Tags.progress_bar_orientation -> unit
-      = "ml_gtk_progress_bar_set_orientation"
-  let set ?bar_style ?discrete_blocks ?activity_step ?activity_blocks w =
-    let may_set f opt = may opt ~f:(f w) in
-    may_set set_bar_style bar_style;
-    may_set set_discrete_blocks discrete_blocks;
-    may_set set_activity_step activity_step;
-    may_set set_activity_blocks activity_blocks
-end
-
-module Range = struct
-  let cast w : range obj = Object.try_cast w "GtkRange"
-  external coerce : [>`range] obj -> range obj = "%identity"
-  external get_adjustment : [>`range] obj -> adjustment obj
-      = "ml_gtk_range_get_adjustment"
-  external set_adjustment : [>`range] obj -> [>`adjustment] obj -> unit
-      = "ml_gtk_range_set_adjustment"
-  external set_update_policy : [>`range] obj -> update_type -> unit
-      = "ml_gtk_range_set_update_policy"
-  let set ?adjustment ?update_policy w =
-    may adjustment ~f:(set_adjustment w);
-    may update_policy ~f:(set_update_policy w)
-end
-
-module Scale = struct
-  let cast w : scale obj = Object.try_cast w "GtkScale"
-  external hscale_new : [>`adjustment] optobj -> scale obj
-      = "ml_gtk_hscale_new"
-  external vscale_new : [>`adjustment] optobj -> scale obj
-      = "ml_gtk_vscale_new"
-  let create ?adjustment (dir : orientation) =
-    let create = if dir = `HORIZONTAL then hscale_new else vscale_new  in
-    create (Gpointer.optboxed adjustment)
-  external set_digits : [>`scale] obj -> int -> unit
-      = "ml_gtk_scale_set_digits"
-  external set_draw_value : [>`scale] obj -> bool -> unit
-      = "ml_gtk_scale_set_draw_value"
-  external set_value_pos : [>`scale] obj -> position -> unit
-      = "ml_gtk_scale_set_value_pos"
-  external get_value_width : [>`scale] obj -> int
-      = "ml_gtk_scale_get_value_width"
-  external draw_value : [>`scale] obj -> unit
-      = "ml_gtk_scale_draw_value"
-  let set ?digits ?draw_value ?value_pos w =
-    may digits ~f:(set_digits w);
-    may draw_value ~f:(set_draw_value w);
-    may value_pos ~f:(set_value_pos w)
-end
-
-module Scrollbar = struct
-  let cast w : scrollbar obj = Object.try_cast w "GtkScrollbar"
-  external hscrollbar_new : [>`adjustment] optobj -> scrollbar obj
-      = "ml_gtk_hscrollbar_new"
-  external vscrollbar_new : [>`adjustment] optobj -> scrollbar obj
-      = "ml_gtk_vscrollbar_new"
-  let create ?adjustment (dir : orientation) =
-    let create = if dir = `HORIZONTAL then hscrollbar_new else vscrollbar_new
-    in create (Gpointer.optboxed adjustment)
-end
-
-module Ruler = struct
-  let cast w : ruler obj = Object.try_cast w "GtkRuler"
-  external hruler_new : unit -> ruler obj = "ml_gtk_hruler_new"
-  external vruler_new : unit -> ruler obj = "ml_gtk_vruler_new"
-  let create (dir : orientation) =
-    if dir = `HORIZONTAL then hruler_new () else vruler_new ()
-  external set_metric : [>`ruler] obj -> metric_type -> unit
-      = "ml_gtk_ruler_set_metric"
-  external set_range :
-      [>`ruler] obj ->
-      lower:float -> upper:float -> position:float -> max_size:float -> unit
-      = "ml_gtk_ruler_set_range"
-  external get_lower : [>`ruler] obj -> float = "ml_gtk_ruler_get_lower"
-  external get_upper : [>`ruler] obj -> float = "ml_gtk_ruler_get_upper"
-  external get_position : [>`ruler] obj -> float = "ml_gtk_ruler_get_position"
-  external get_max_size : [>`ruler] obj -> float = "ml_gtk_ruler_get_max_size"
-  let set_range ?lower ?upper ?position ?max_size w =
-    set_range w ~lower:(may_default get_lower w ~opt:lower)
-      ~upper:(may_default get_upper w ~opt:upper)
-      ~position:(may_default get_position w ~opt:position)
-      ~max_size:(may_default get_max_size w ~opt:max_size)
-  let set ?metric ?lower ?upper ?position ?max_size w =
-    may metric ~f:(set_metric w);
-    if lower <> None || upper <> None || position <> None || max_size <> None
-    then set_range w ?lower ?upper ?position ?max_size
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.ml
deleted file mode 100644 (file)
index 8fa4602..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-
-type id
-type ('a,'b) t =
- { name: string;
-   marshaller: ('b -> GtkArgv.t -> GtkArgv.data list -> unit) }
-
-let enter_callback = ref (fun () -> ())
-and exit_callback = ref (fun () -> ())
-
-let stop_emit_ref = ref false
-let stop_emit () = stop_emit_ref := true
-
-type saved_state = State of bool
-let push_callback () =
-  !enter_callback ();
-  let old = !stop_emit_ref in
-  stop_emit_ref := false;
-  State old
-
-let pop_callback (State old) =
-  let res = !stop_emit_ref in
-  stop_emit_ref := old;
-  !exit_callback ();
-  res
-
-external connect :
-  'a obj -> name:string -> callback:(GtkArgv.t -> unit) -> after:bool -> id
-  = "ml_gtk_signal_connect"
-external emit_stop_by_name : 'a obj -> name:string -> unit
-  = "ml_gtk_signal_emit_stop_by_name"
-let connect  ~(sgn : ('a, _) t) ~callback ?(after=false) (obj : 'a obj) =
-  let callback argv =
-    let old = push_callback () in
-    let exn =
-      try sgn.marshaller callback argv (GtkArgv.get_args argv); None
-      with exn -> Some exn
-    in
-    if pop_callback old then emit_stop_by_name obj ~name:sgn.name;
-    Gaux.may ~f:raise exn
-  in
-  connect obj ~name:sgn.name ~callback ~after
-external disconnect : 'a obj -> id -> unit
-  = "ml_gtk_signal_disconnect"
-external handler_block : 'a obj -> id -> unit
-  = "ml_gtk_signal_handler_block"
-external handler_unblock : 'a obj -> id -> unit
-  = "ml_gtk_signal_handler_unblock"
-
-let marshal_unit f _ _ = f ()
-let marshal_int f _ = function
-  | GtkArgv.INT n :: _ -> f n
-  | _ -> invalid_arg "GtkSignal.marshal_int"
-
-let emit (obj : 'a obj) ~(sgn : ('a, 'b) t)
-    ~(emitter : 'a obj -> name:string -> 'b) =
-  emitter obj ~name:sgn.name
-external emit_none : 'a obj -> name:string -> unit -> unit
-    = "ml_gtk_signal_emit_none"
-let emit_unit obj ~sgn = emit obj ~emitter:emit_none ~sgn ()
-external emit_int : 'a obj -> name:string -> int -> unit
-    = "ml_gtk_signal_emit_int"
-let emit_int = emit ~emitter:emit_int
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli
deleted file mode 100644 (file)
index 0ef2ab2..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-
-type id
-type ('a,'b) t =
- { name: string;
-   marshaller: ('b -> GtkArgv.t -> GtkArgv.data list -> unit) }
-
-val stop_emit : unit -> unit
-    (* Call [stop_emit ()] in a callback to prohibit further handling
-       of the current signal invocation, by calling [emit_stop_by_name].
-       Be careful about where you use it, since the concept of current
-       signal may be tricky. *)
-
-val connect :
-  sgn:('a, 'b) t -> callback:'b -> ?after:bool -> 'a obj -> id
-    (* You may use [stop_emit] inside the callback *)
-
-external disconnect : 'a obj -> id -> unit
-  = "ml_gtk_signal_disconnect"
-external emit_stop_by_name : 'a obj -> name:string -> unit
-  = "ml_gtk_signal_emit_stop_by_name"
-    (* Unsafe: use [stop_emit] instead. *)
-external handler_block : 'a obj -> id -> unit
-  = "ml_gtk_signal_handler_block"
-external handler_unblock : 'a obj -> id -> unit
-  = "ml_gtk_signal_handler_unblock"
-
-(* Some marshaller functions, to build signals *)
-val marshal_unit : (unit -> unit) -> GtkArgv.t -> GtkArgv.data list -> unit
-val marshal_int : (int -> unit) -> GtkArgv.t -> GtkArgv.data list -> unit
-
-(* Emitter functions *)
-val emit :
-  'a obj -> sgn:('a, 'b) t -> emitter:('a obj -> name:string -> 'b) -> 'b
-val emit_unit : 'a obj -> sgn:('a, unit -> unit) t -> unit
-val emit_int : 'a obj -> sgn:('a, int -> unit) t -> int -> unit
-
-(* Internal functions. *)
-val enter_callback : (unit -> unit) ref
-val exit_callback : (unit -> unit) ref
-type saved_state
-val push_callback : unit -> saved_state
-val pop_callback : saved_state -> bool
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThInit.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThInit.ml
deleted file mode 100644 (file)
index 517f80b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-(* $Id$ *)
-
-(* Start the main thread in a threaded toplevel *)
-
-let thread = GtkThread.start ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThread.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkThread.ml
deleted file mode 100644 (file)
index 3ab577e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-(* $Id$ *)
-
-open GtkMain
-
-(* We check first whether there are some event pending, and run
-   some iterations. We then need to delay, thus focing a thread switch. *)
-
-let main () =
-  try
-    let loop = (Glib.Main.create true) in
-    Main.loops := loop :: !Main.loops;
-    while Glib.Main.is_running loop do
-      let i = ref 0 in
-      while !i < 100 && Glib.Main.pending () do
-       Glib.Main.iteration true;
-       incr i
-      done;
-      Thread.delay 0.001
-    done;
-    Main.loops := List.tl !Main.loops
-  with exn ->
-    Main.loops := List.tl !Main.loops;
-    raise exn
-      
-let start = Thread.create main
-
-let _ =
-  let mutex = Mutex.create () in
-  let depth = ref 0 in
-  GtkSignal.enter_callback :=
-    (fun () -> if !depth = 0 then Mutex.lock mutex; incr depth);
-  GtkSignal.exit_callback :=
-    (fun () -> decr depth; if !depth = 0 then Mutex.unlock mutex)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkTree.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkTree.ml
deleted file mode 100644 (file)
index 9260741..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module TreeItem = struct
-  let cast w : tree_item obj = Object.try_cast w "GtkTreeItem"
-  external create : unit -> tree_item obj = "ml_gtk_tree_item_new"
-  external create_with_label : string -> tree_item obj
-      = "ml_gtk_tree_item_new_with_label"
-  let create ?label () =
-    match label with None -> create ()
-    | Some label -> create_with_label label
-  external set_subtree : [>`treeitem] obj -> [>`widget] obj -> unit
-      = "ml_gtk_tree_item_set_subtree"
-  external remove_subtree : [>`treeitem] obj -> unit
-      = "ml_gtk_tree_item_remove_subtree"
-  external expand : [>`treeitem] obj -> unit
-      = "ml_gtk_tree_item_expand"
-  external collapse : [>`treeitem] obj -> unit
-      = "ml_gtk_tree_item_collapse"
-  external subtree : [>`treeitem] obj -> tree obj
-      = "ml_GTK_TREE_ITEM_SUBTREE"
-  module Signals = struct
-    open GtkSignal
-    let expand : ([>`treeitem],_) t =
-      { name = "expand"; marshaller = marshal_unit }
-    let collapse : ([>`treeitem],_) t =
-      { name = "collapse"; marshaller = marshal_unit }
-  end
-end
-
-module Tree = struct
-  let cast w : tree obj = Object.try_cast w "GtkTree"
-  external coerce : [>`tree] obj -> tree obj = "%identity"
-  external create : unit -> tree obj = "ml_gtk_tree_new"
-  external insert : [>`tree] obj -> [>`treeitem] obj -> pos:int -> unit
-      = "ml_gtk_tree_insert"
-  external remove_items : [>`tree] obj -> [>`treeitem] obj list -> unit
-      = "ml_gtk_tree_remove_items"
-  external clear_items : [>`tree] obj -> start:int -> stop:int -> unit
-      = "ml_gtk_tree_clear_items"
-  external select_item : [>`tree] obj -> pos:int -> unit
-      = "ml_gtk_tree_select_item"
-  external unselect_item : [>`tree] obj -> pos:int -> unit
-      = "ml_gtk_tree_unselect_item"
-  external child_position : [>`tree] obj -> [>`treeitem] obj -> int
-      = "ml_gtk_tree_child_position"
-  external set_selection_mode : [>`tree] obj -> selection_mode -> unit
-      = "ml_gtk_tree_set_selection_mode"
-  external set_view_mode : [>`tree] obj -> [`LINE|`ITEM] -> unit
-      = "ml_gtk_tree_set_view_mode"
-  external set_view_lines : [>`tree] obj -> bool -> unit
-      = "ml_gtk_tree_set_view_lines"
-  external selection : [>`tree] obj -> tree_item obj list =
-    "ml_gtk_tree_selection"
-  let set ?selection_mode ?view_mode ?view_lines w =
-    let may_set f = may ~f:(f w) in
-    may_set set_selection_mode selection_mode;
-    may_set set_view_mode view_mode;
-    may_set set_view_lines view_lines
-  module Signals = struct
-    open GtkSignal
-    let selection_changed : ([>`tree],_) t =
-      { name = "selection_changed"; marshaller = marshal_unit }
-    let select_child : ([>`tree],_) t =
-      { name = "select_child"; marshaller = Widget.Signals.marshal }
-    let unselect_child : ([>`tree],_) t =
-      { name = "unselect_child"; marshaller = Widget.Signals.marshal }
-  end
-end
-(*
-module CTree = struct
-  type t
-  type node =  [`ctree] obj * t
-  let cast w : ctree obj = Object.try_cast w "GtkCTree"
-  external create : cols:int -> treecol:int -> ctree obj = "ml_gtk_ctree_new"
-  external insert_node :
-      [>`ctree] obj -> ?parent:node -> ?sibling:node ->
-      titles:optstring array ->
-      spacing:int -> ?pclosed:Gdk.pixmap -> ?mclosed:Gdk.bitmap obj ->
-      ?popened:Gdk.pixmap -> ?mopened:Gdk.bitmap obj ->
-      is_leaf:bool -> expanded:bool -> node
-      = "ml_gtk_ctree_insert_node_bc" "ml_gtk_ctree_insert_node"
-  let insert_node'
-      w ?parent ?sibling ?(spacing = 0) ?(is_leaf = true)
-      ?(expanded = false)
-      ?pclosed ?mclosed ?popened ?mopened titles =
-    let len = GtkList.CList.get_columns w in
-    if List.length titles > len then invalid_arg "CTree.insert_node";
-    let arr = Array.create ~len None in
-    List.fold_left titles ~acc:0
-      ~f:(fun ~acc text -> arr.(acc) <- Some text; acc+1);
-    insert_node w
-      ?parent ?sibling ~titles:(Array.map ~f:optstring arr)
-      ~spacing ~is_leaf ~expanded
-      ?pclosed ?mclosed ?popened ?mopened 
-  external node_set_row_data : [>`ctree] obj -> node:node -> Obj.t -> unit
-      = "ml_gtk_ctree_node_set_row_data"
-  external node_get_row_data : [>`ctree] obj -> node:node -> Obj.t
-      = "ml_gtk_ctree_node_get_row_data"
-  external set_indent : [>`ctree] obj -> int -> unit
-      = "ml_gtk_ctree_set_indent"
-  module Signals = struct
-    open GtkSignal
-    let marshal_select f argv =
-      let node : node =
-        match GtkArgv.get_pointer argv ~pos:0 with
-          Some p -> Obj.magic p
-        | None -> invalid_arg "GtkTree.CTree.Signals.marshal_select"
-      in
-      f ~node ~column:(GtkArgv.get_int argv ~pos:1)
-
-    let tree_select_row : ([>`ctree],_) t =
-      { name = "tree_select_row"; marshaller = marshal_select }
-    let tree_unselect_row : ([>`ctree],_) t =
-      { name = "tree_unselect_row"; marshaller = marshal_select }
-  end
-end
-*)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkWindow.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkWindow.ml
deleted file mode 100644 (file)
index ffe00e9..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-(* $Id$ *)
-
-open Gaux
-open Gtk
-open Tags
-open GtkBase
-
-module Window = struct
-  let cast w : window obj = Object.try_cast w "GtkWindow"
-  external coerce : [>`window] obj -> window obj = "%identity"
-  external create : window_type -> window obj = "ml_gtk_window_new"
-  external set_title : [>`window] obj -> string -> unit
-      = "ml_gtk_window_set_title"
-  external set_wmclass : [>`window] obj -> name:string -> clas:string -> unit
-      = "ml_gtk_window_set_title"
-  external get_wmclass_name : [>`window] obj -> string
-      = "ml_gtk_window_get_wmclass_name"
-  external get_wmclass_class : [>`window] obj -> string
-      = "ml_gtk_window_get_wmclass_class"
-  (* set_focus/default are called by Widget.grab_focus/default *)
-  external set_focus : [>`window] obj -> [>`widget] obj -> unit
-      = "ml_gtk_window_set_focus"
-  external set_default : [>`window] obj -> [>`widget] obj -> unit
-      = "ml_gtk_window_set_default"
-  external set_policy :
-      [>`window] obj ->
-      allow_shrink:bool -> allow_grow:bool -> auto_shrink:bool -> unit
-      = "ml_gtk_window_set_policy"
-  external get_allow_shrink : [>`window] obj -> bool
-      = "ml_gtk_window_get_allow_shrink"
-  external get_allow_grow : [>`window] obj -> bool
-      = "ml_gtk_window_get_allow_grow"
-  external get_auto_shrink : [>`window] obj -> bool
-      = "ml_gtk_window_get_auto_shrink"
-  external activate_focus : [>`window] obj -> bool
-      = "ml_gtk_window_activate_focus"
-  external activate_default : [>`window] obj -> bool
-      = "ml_gtk_window_activate_default"
-  external set_modal : [>`window] obj -> bool -> unit
-      = "ml_gtk_window_set_modal"
-  external set_default_size :
-      [>`window] obj -> width:int -> height:int -> unit
-      = "ml_gtk_window_set_default_size"
-  external set_position : [>`window] obj -> window_position -> unit
-      = "ml_gtk_window_set_position"
-  external set_transient_for : [>`window] obj ->[>`window] obj -> unit
-      = "ml_gtk_window_set_transient_for"
-
-  let set_wmclass ?name ?clas:wm_class w =
-    set_wmclass w ~name:(may_default get_wmclass_name w ~opt:name)
-      ~clas:(may_default get_wmclass_class w ~opt:wm_class)
-  let set_policy ?allow_shrink ?allow_grow ?auto_shrink w =
-    set_policy w
-      ~allow_shrink:(may_default get_allow_shrink w ~opt:allow_shrink)
-      ~allow_grow:(may_default get_allow_grow w ~opt:allow_grow)
-      ~auto_shrink:(may_default get_auto_shrink w ~opt:auto_shrink)
-  let set ?title ?wm_name ?wm_class ?position ?allow_shrink ?allow_grow
-      ?auto_shrink ?modal ?(x = -2) ?(y = -2) w =
-    may title ~f:(set_title w);
-    if wm_name <> None || wm_class <> None then
-      set_wmclass w ?name:wm_name ?clas:wm_class;
-    may position ~f:(set_position w);
-    if allow_shrink <> None || allow_grow <> None || auto_shrink <> None then
-      set_policy w ?allow_shrink ?allow_grow ?auto_shrink;
-    may ~f:(set_modal w) modal;
-    if x <> -2 || y <> -2 then Widget.set_uposition w ~x ~y
-  external add_accel_group : [>`window] obj -> accel_group -> unit
-      = "ml_gtk_window_add_accel_group"
-  external remove_accel_group :
-      [>`window] obj -> accel_group -> unit
-      = "ml_gtk_window_remove_accel_group"
-  external activate_focus : [>`window] obj -> unit
-      = "ml_gtk_window_activate_focus"
-  external activate_default : [>`window] obj -> unit
-      = "ml_gtk_window_activate_default"
-  module Signals = struct
-    open GtkSignal
-    let move_resize : ([>`window],_) t =
-      { name = "move_resize"; marshaller = marshal_unit }
-    let set_focus : ([>`window],_) t =
-      { name = "set_focus"; marshaller = Widget.Signals.marshal_opt }
-  end
-end
-
-module Dialog = struct
-  let cast w : dialog obj = Object.try_cast w "GtkDialog"
-  external coerce : [>`dialog] obj -> dialog obj = "%identity"
-  external create : unit -> dialog obj = "ml_gtk_dialog_new"
-  external action_area : [>`dialog] obj -> box obj
-      = "ml_GtkDialog_action_area"
-  external vbox : [>`dialog] obj -> box obj
-      = "ml_GtkDialog_vbox"
-end
-
-module InputDialog = struct
-  let cast w : input_dialog obj = Object.try_cast w "GtkInputDialog"
-  external create : unit -> input_dialog obj = "ml_gtk_input_dialog_new"
-  module Signals = struct
-    open GtkSignal
-    let enable_device : ([>`inputdialog],_) t =
-      { name = "enable_device"; marshaller = marshal_int }
-    let disable_device : ([>`inputdialog],_) t =
-      { name = "disable_device"; marshaller = marshal_int }
-  end
-end
-
-module FileSelection = struct
-  let cast w : file_selection obj = Object.try_cast w "GtkFileSelection"
-  external create : string -> file_selection obj = "ml_gtk_file_selection_new"
-  external set_filename : [>`filesel] obj -> string -> unit
-      = "ml_gtk_file_selection_set_filename"
-  external get_filename : [>`filesel] obj -> string
-      = "ml_gtk_file_selection_get_filename"
-  external show_fileop_buttons : [>`filesel] obj -> unit
-      = "ml_gtk_file_selection_show_fileop_buttons"
-  external hide_fileop_buttons : [>`filesel] obj -> unit
-      = "ml_gtk_file_selection_hide_fileop_buttons"
-  external get_ok_button : [>`filesel] obj -> button obj
-      = "ml_gtk_file_selection_get_ok_button"
-  external get_cancel_button : [>`filesel] obj -> button obj
-      = "ml_gtk_file_selection_get_cancel_button"
-  external get_help_button : [>`filesel] obj -> button obj
-      = "ml_gtk_file_selection_get_help_button"
-  let set_fileop_buttons w = function
-      true -> show_fileop_buttons w
-    | false -> hide_fileop_buttons w
-  let set ?filename ?fileop_buttons w =
-    may filename ~f:(set_filename w);
-    may fileop_buttons ~f:(set_fileop_buttons w)
-end
-
-module FontSelectionDialog = struct
-  let cast w : font_selection_dialog obj =
-    Object.try_cast w "GtkFontSelectionDialog"
-  external create : ?title:string -> unit -> font_selection_dialog obj
-      = "ml_gtk_font_selection_dialog_new"
-  external font_selection : [>`fontseldialog] obj -> font_selection obj
-      = "ml_gtk_font_selection_dialog_fontsel"
-  external ok_button : [>`fontseldialog] obj -> button obj
-      = "ml_gtk_font_selection_dialog_ok_button"
-  external apply_button : [>`fontseldialog] obj -> button obj
-      = "ml_gtk_font_selection_dialog_apply_button"
-  external cancel_button : [>`fontseldialog] obj -> button obj
-      = "ml_gtk_font_selection_dialog_cancel_button"
-(*
-  type null_terminated
-  let null_terminated arg : null_terminated =
-    match arg with None -> Obj.magic Gpointer.raw_null
-    | Some l ->
-       let len = List.length l in
-       let arr = Array.create (len + 1) "" in
-       let rec loop i = function
-           [] -> arr.(i) <- Obj.magic Gpointer.raw_null
-         | s::l -> arr.(i) <- s; loop (i+1) l
-       in loop 0 l;
-       Obj.magic (arr : string array)
-  external get_font : [>`fontseldialog] obj -> Gdk.font
-      = "ml_gtk_font_selection_dialog_get_font"
-  let get_font w =
-    try Some (get_font w) with Gpointer.Null -> None
-  external get_font_name : [>`fontseldialog] obj -> string
-      = "ml_gtk_font_selection_dialog_get_font_name"
-  let get_font_name w =
-    try Some (get_font_name w) with Gpointer.Null -> None
-  external set_font_name : [>`fontseldialog] obj -> string -> unit
-      = "ml_gtk_font_selection_dialog_set_font_name"
-  external set_filter :
-    [>`fontseldialog] obj -> font_filter_type -> font_type list ->
-    null_terminated -> null_terminated -> null_terminated ->
-    null_terminated -> null_terminated -> null_terminated -> unit
-    = "ml_gtk_font_selection_dialog_set_filter_bc"
-      "ml_gtk_font_selection_dialog_set_filter"
-  let set_filter w ?kind:(tl=[`ALL]) ?foundry
-      ?weight ?slant ?setwidth ?spacing ?charset filter =
-    set_filter w filter tl (null_terminated foundry)
-      (null_terminated weight) (null_terminated slant)
-      (null_terminated setwidth) (null_terminated spacing)
-      (null_terminated charset)
-  external get_preview_text : [>`fontseldialog] obj -> string
-      = "ml_gtk_font_selection_dialog_get_preview_text"
-  external set_preview_text : [>`fontseldialog] obj -> string -> unit
-      = "ml_gtk_font_selection_dialog_set_preview_text"
-*)
-end
-
-module Plug = struct
-  let cast w : plug obj = Object.try_cast w "GtkPlug"
-  external create : Gdk.xid -> plug obj = "ml_gtk_plug_new"
-end
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkXmHTML.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkXmHTML.ml
deleted file mode 100644 (file)
index 3bf5791..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-(* $Id$ *)
-
-open Gtk
-
-type string_direction = [
-  | `R_TO_L
-  | `L_TO_R
-]
-
-type position = [
-  | `END
-  | `CENTER
-  | `BEGINNING
-]
-
-type line_type = [
-  | `SOLID
-  | `DASHED
-  | `SINGLE
-  | `DOUBLE
-  | `STRIKE
-  | `UNDER
-  | `NONE
-]
-
-type dither_type = [
-  | `QUICK
-  | `BEST
-  | `FAST
-  | `SLOW
-  | `DISABLED
-]
-
-type xmhtml = [`widget|`container|`xmhtml]
-
-external create : unit -> xmhtml obj = "ml_gtk_xmhtml_new"
-external freeze : [> `xmhtml] obj -> unit = "ml_gtk_xmhtml_freeze"
-external thaw : [> `xmhtml] obj -> unit = "ml_gtk_xmhtml_thaw"
-external source : [> `xmhtml] obj -> string -> unit = "ml_gtk_xmhtml_source"
-(* external get_source : [> `xmhtml] obj -> string = "ml_gtk_xmhtml_get_source" *)
-external set_string_direction : [> `xmhtml] obj -> string_direction -> unit
-  = "ml_gtk_xmhtml_set_string_direction"
-external set_alignment : [> `xmhtml] obj -> position -> unit
-  = "ml_gtk_xmhtml_set_alignment"
-(* external set_outline : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_outline" *)
-external set_font_familty :
-  [> `xmhtml] obj -> family:string -> sizes:string -> unit
-  = "ml_gtk_xmhtml_set_font_familty"
-external set_font_familty_fixed :
-  [> `xmhtml] obj -> family:string -> sizes:string -> unit
-  = "ml_gtk_xmhtml_set_font_familty_fixed"
-external set_font_charset : [> `xmhtml] obj -> string -> unit
-  = "ml_gtk_xmhtml_set_font_charset"
-external set_allow_body_colors : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_allow_body_colors"
-external set_hilight_on_enter : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_hilight_on_enter"
-external set_anchor_underline_type : [> `xmhtml] obj -> line_type list -> unit
-  = "ml_gtk_xmhtml_set_anchor_underline_type"
-external set_anchor_visited_underline_type :
-  [> `xmhtml] obj -> line_type list -> unit
-  = "ml_gtk_xmhtml_set_anchor_visited_underline_type"
-external set_anchor_target_underline_type :
-  [> `xmhtml] obj -> line_type list -> unit
-  = "ml_gtk_xmhtml_set_anchor_target_underline_type"
-external set_allow_color_switching : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_allow_color_switching"
-external set_dithering : [> `xmhtml] obj -> dither_type -> unit
-  = "ml_gtk_xmhtml_set_dithering"
-external set_allow_font_switching : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_allow_font_switching"
-external set_max_image_colors : [> `xmhtml] obj -> int -> unit
-  = "ml_gtk_xmhtml_set_max_image_colors"
-external set_allow_images : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_allow_images"
-external set_plc_intervals :
-  [> `xmhtml] obj -> min:int -> max:int -> default:int -> unit
-  = "ml_gtk_xmhtml_set_plc_intervals"
-(*
-external set_def_body_image_url : [> `xmhtml] obj -> string -> unit
-  = "ml_gtk_xmhtml_set_def_body_image_url"
-*)
-external set_anchor_buttons : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_anchor_buttons"
-external set_anchor_cursor : [> `xmhtml] obj -> Gdk.cursor option -> unit
-  = "ml_gtk_xmhtml_set_anchor_cursor"
-external set_topline : [> `xmhtml] obj -> int -> unit
-  = "ml_gtk_xmhtml_set_topline"
-external get_topline : [> `xmhtml] obj -> int
-  = "ml_gtk_xmhtml_get_topline"
-external set_freeze_animations : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_freeze_animations"
-external set_screen_gamma : [> `xmhtml] obj -> float -> unit
-  = "ml_gtk_xmhtml_set_screen_gamma"
-external set_perfect_colors : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_perfect_colors"
-external set_uncompress_command : [> `xmhtml] obj -> string -> unit
-  = "ml_gtk_xmhtml_set_uncompress_command"
-external set_strict_checking : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_strict_checking"
-external set_bad_html_warnings : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_bad_html_warnings"
-external set_allow_form_coloring : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_allow_form_coloring"
-external set_imagemap_draw : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_imagemap_draw"
-external set_alpha_processing : [> `xmhtml] obj -> bool -> unit
-  = "ml_gtk_xmhtml_set_alpha_processing"
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk_tags.var b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtk_tags.var
deleted file mode 100644 (file)
index eb4ead7..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-(* $Id$ *)
-
-exception ml_raise_gtk
-
-type arrow_type = "GTK_ARROW_"
-  [ `UP | `DOWN | `LEFT | `RIGHT ]
-
-type attach_options = "GTK_"
-  [ `EXPAND | `SHRINK | `FILL ]
-
-type button_box_style = "GTK_BUTTONBOX_"
-  [ `DEFAULT_STYLE | `SPREAD | `EDGE | `START | `END ]
-
-type direction_type = "GTK_DIR_"
-  [ `TAB_FORWARD | `TAB_BACKWARD | `UP | `DOWN | `LEFT | `RIGHT ]
-
-type justification = "GTK_JUSTIFY_"
-  [ `LEFT | `RIGHT | `CENTER | `FILL ]
-
-type match_type = "GTK_MATCH_"
-  [ `ALL | `ALL_TAIL | `HEAD | `TAIL | `EXACT | `LAST ]
-
-type metric_type = "GTK_"
-  [ `PIXELS | `INCHES | `CENTIMETERS ]
-
-type orientation = "GTK_ORIENTATION_"
-  [ `HORIZONTAL | `VERTICAL ]
-
-type corner_type = "GTK_CORNER_"
-  [ `TOP_LEFT | `BOTTOM_LEFT | `TOP_RIGHT | `BOTTOM_RIGHT ]
-
-type pack_type = "GTK_PACK_"
-  [ `START | `END ]
-
-type path_type = "GTK_PATH_"
-  [ `WIDGET | `WIDGET_CLASS | `CLASS ]
-
-type policy_type = "GTK_POLICY_"
-  [ `ALWAYS | `AUTOMATIC | `NEVER ]
-
-type position = "GTK_POS_"
-  [ `LEFT | `RIGHT | `TOP | `BOTTOM ]
-
-type preview_type = "GTK_PREVIEW_"
-  [ `COLOR | `GRAYSCALE ]
-
-type relief_style = "GTK_RELIEF_"
-  [ `NORMAL | `HALF | `NONE ]
-
-type resize_mode = "GTK_RESIZE_"
-  [ `PARENT | `QUEUE | `IMMEDIATE ]
-
-type signal_run_type = "GTK_RUN_"
-  [ `FIRST | `LAST | `BOTH | `NO_RECURSE | `ACTION | `NO_HOOKS ]
-
-type scroll_type = "GTK_SCROLL_"
-  [ `NONE | `STEP_FORWARD | `STEP_BACKWARD | `PAGE_BACKWARD
-  | `PAGE_FORWARD | `JUMP ]
-
-type selection_mode = "GTK_SELECTION_"
-  [ `SINGLE | `BROWSE | `MULTIPLE | `EXTENDED ]
-
-type shadow_type = "GTK_SHADOW_"
-  [ `NONE | `IN | `OUT | `ETCHED_IN | `ETCHED_OUT ]
-
-type state_type = "GTK_STATE_"
-  [ `NORMAL | `ACTIVE | `PRELIGHT | `SELECTED | `INSENSITIVE ] 
-
-type submenu_direction = "GTK_DIRECTION_"
-  [ `LEFT | `RIGHT ]
-
-type submenu_placement = "GTK_"
-  [ `TOP_BOTTOM | `LEFT_RIGHT ]
-
-type toolbar_style = "GTK_TOOLBAR_"
-  [ `ICONS | `TEXT | `BOTH ]
-
-type trough_type = "GTK_TROUGH_"
-  [ `NONE | `START | `END | `JUMP ]
-
-type update_type = "GTK_UPDATE_"
-  [ `CONTINUOUS | `DISCONTINUOUS | `DELAYED ]
-
-type visibility = "GTK_VISIBILITY_"
-  [ `NONE | `PARTIAL | `FULL ]
-
-type window_position = "GTK_WIN_POS_"
-  [ `NONE | `CENTER | `MOUSE | `CENTER_ALWAYS ]
-
-type window_type = "GTK_WINDOW_"
-  [ `TOPLEVEL | `DIALOG | `POPUP ]
-
-type sort_type = "GTK_SORT_"
-  [ `ASCENDING | `DESCENDING ]
-
-
-type fundamental_type = "GTK_TYPE_"
-  [ `INVALID | `NONE | `CHAR | `BOOL | `INT | `UINT | `LONG | `ULONG
-  | `FLOAT | `DOUBLE | `STRING | `ENUM | `FLAGS | `BOXED | `FOREIGN
-  | `CALLBACK | `ARGS | `POINTER | `SIGNAL | `C_CALLBACK | `OBJECT ]
-
-type cell_type = "GTK_CELL_"
-  [ `EMPTY | `TEXT | `PIXMAP | `PIXTEXT | `WIDGET ]
-
-type toolbar_child = "GTK_TOOLBAR_CHILD_"
-  [ `SPACE | `BUTTON | `TOGGLEBUTTON | `RADIOBUTTON | `WIDGET ]
-
-type toolbar_space_style = "GTK_TOOLBAR_SPACE_"
-  [ `EMPTY | `LINE ]
-
-type tree_view_mode = "GTK_TREE_VIEW_"
-  [ `LINE | `ITEM ]
-
-type spin_type = "GTK_SPIN_"
-  [ `STEP_FORWARD | `STEP_BACKWARD | `PAGE_FORWARD | `PAGE_BACKWARD
-  | `HOME | `END | `USER_DEFINED ]
-
-type accel_flag = "GTK_ACCEL_"
-  [ `VISIBLE | `SIGNAL_VISIBLE | `LOCKED ]
-
-type packer_options = "GTK_"
-  [ `PACK_EXPAND | `FILL_X | `FILL_Y ]
-
-type side_type = "GTK_SIDE_"
-  [ `TOP | `BOTTOM | `LEFT | `RIGHT ]
-
-type anchor_type = "GTK_ANCHOR_"
-  [ `CENTER | `NORTH | `NW | `NE | `SOUTH | `SW | `SE | `WEST | `EAST ]
-
-type button_action = "GTK_BUTTON_"
-  [ `SELECTS | `DRAGS | `EXPANDS ]
-
-type calendar_display_options = "GTK_CALENDAR_"
-  [ `SHOW_HEADING | `SHOW_DAY_NAMES | `NO_MONTH_CHANGE | `SHOW_WEEK_NUMBERS
-  | `WEEK_START_MONDAY ]
-
-type progress_bar_style = "GTK_PROGRESS_"
-  [ `CONTINUOUS | `DISCRETE ]
-
-type progress_bar_orientation = "GTK_PROGRESS_"
-  [ `LEFT_TO_RIGHT | `RIGHT_TO_LEFT | `BOTTOM_TO_TOP | `TOP_TO_BOTTOM ]
-
-type dest_defaults = "GTK_DEST_DEFAULT_"
-  [ `MOTION | `HIGHLIGHT | `DROP | `ALL ]
-
-type target_flags = "GTK_TARGET_"
-  [ `SAME_APP | `SAME_WIDGET ]
-
-type font_metric_type = "GTK_FONT_METRIC_"
-  [ `PIXELS | `POINTS ]
-
-type font_type = "GTK_FONT_"
-  [ `BITMAP | `SCALABLE | `SCALABLE_BITMAP | `ALL ]
-
-type font_filter_type = "GTK_FONT_FILTER_"
-  [ `BASE | `USER ]
-
-(*
-type tree_pos = "GTK_CTREE_POS_"
-  [ `BEFORE | `AS_CHILD | `AFTER ]
-
-type tree_line_style = "GTK_CTREE_LINES_"
-  [ `NONE | `SOLID | `DOTTED | `TABBED ]
-
-type tree_expander_style = "GTK_CTREE_EXPANDER_"
-  [ `NONE | `SQUARE | `TRIANGLE | `CIRCULAR ]
-
-type tree_expansion_type = "GTK_CTREE_EXPANSION_"
-  [ `EXPAND | `EXPAND_RECURSIVE | `COLLAPSE | `COLLAPSE_RECURSIVE
-  | `TOGGLE | `TOGGLE_RECURSIVE ]
-*)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkgl_tags.var b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkgl_tags.var
deleted file mode 100644 (file)
index 57a9f73..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-(* $Id$ *)
-
-type visual_options = "GDK_GL_" [
-  | `USE_GL
-  | `BUFFER_SIZE
-  | `LEVEL
-  | `RGBA
-  | `DOUBLEBUFFER
-  | `STEREO
-  | `AUX_BUFFERS
-  | `RED_SIZE
-  | `GREEN_SIZE
-  | `BLUE_SIZE
-  | `ALPHA_SIZE
-  | `DEPTH_SIZE
-  | `STENCIL_SIZE
-  | `ACCUM_GREEN_SIZE
-  | `ACCUM_ALPHA_SIZE
-]
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkxmhtml_tags.var b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkxmhtml_tags.var
deleted file mode 100644 (file)
index ad93931..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-(* $Id$ *)
-
-type string_direction = "TSTRING_DIRECTION_" [
-  | `R_TO_L
-  | `L_TO_R
-]
-
-type position = "TALIGNMENT_" [
-  | `END
-  | `CENTER
-  | `BEGINNING
-]
-
-type line_type = "LINE_" [
-  | `SOLID
-  | `DASHED
-  | `SINGLE
-  | `DOUBLE
-  | `STRIKE
-  | `UNDER
-  | `NONE "NO_LINE"
-]
-
-type dither_type = "Xm" [
-  | `QUICK
-  | `BEST
-  | `FAST
-  | `SLOW
-  | `DISABLED
-]
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgl.patch b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgl.patch
deleted file mode 100644 (file)
index c48de24..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-Index: Makefile
-===================================================================
-RCS file: /staff2/garrigue/repos/lablGL/Makefile,v
-retrieving revision 1.33
-retrieving revision 1.34
-diff -c -r1.33 -r1.34
-*** Makefile   1998/09/17 03:16:06     1.33
---- Makefile   1999/06/18 07:39:08     1.34
-***************
-*** 12,22 ****
-  OTHERLIBS=-L$(LABLTKDIR) -llabltk41 $(LIBS)
-  
-  # Files
-! MLOBJS =     raw.cmo         togl.cmo \
-               gl.cmo          glLight.cmo     glList.cmo      glMap.cmo \
-               glMat.cmo       glMisc.cmo      glPix.cmo       glClear.cmo \
-               glTex.cmo       glDraw.cmo      glFunc.cmo      gluMisc.cmo \
-               gluNurbs.cmo    gluQuadric.cmo  gluTess.cmo     gluMat.cmo
-  OPTOBJS = $(MLOBJS:.cmo=.cmx)
-  COBJS =              ml_gl.o         ml_glu.o        ml_togl.o       ml_raw.o \
-               $(TOGLDIR)/togl.o
---- 12,23 ----
-  OTHERLIBS=-L$(LABLTKDIR) -llabltk41 $(LIBS)
-  
-  # Files
-! LIBOBJS =    raw.cmo \
-               gl.cmo          glLight.cmo     glList.cmo      glMap.cmo \
-               glMat.cmo       glMisc.cmo      glPix.cmo       glClear.cmo \
-               glTex.cmo       glDraw.cmo      glFunc.cmo      gluMisc.cmo \
-               gluNurbs.cmo    gluQuadric.cmo  gluTess.cmo     gluMat.cmo
-+ MLOBJS = $(LIBOBJS)  togl.cmo
-  OPTOBJS = $(MLOBJS:.cmo=.cmx)
-  COBJS =              ml_gl.o         ml_glu.o        ml_togl.o       ml_raw.o \
-               $(TOGLDIR)/togl.o
-***************
-*** 53,60 ****
-  var2switch: var2switch.cmo
-       $(LINKER) var2switch.cmo -o $@
-  
-! lablgl.cma: $(MLOBJS)
-!      $(LIBRARIAN) -o lablgl.cma $(MLOBJS)
-  
-  lablgl.cmxa: $(OPTOBJS)
-       $(OPTLIB) -o lablgl.cmxa $(OPTOBJS)
---- 54,61 ----
-  var2switch: var2switch.cmo
-       $(LINKER) var2switch.cmo -o $@
-  
-! lablgl.cma: $(LIBOBJS)
-!      $(LIBRARIAN) -o lablgl.cma $(LIBOBJS)
-  
-  lablgl.cmxa: $(OPTOBJS)
-       $(OPTLIB) -o lablgl.cmxa $(OPTOBJS)
-***************
-*** 66,74 ****
-  $(TOGLDIR)/togl.o:
-       cd $(TOGLDIR) && $(MAKE) togl.o
-  
-! lablgltop: lablgl.cma liblablgl.a
-       olablmktop $(OLABLINC) -custom -o lablgltop \
-!              unix.cma tk41.cma lablgl.cma \
-               -cclib "-L. -llablgl -lunix $(OTHERLIBS)"
-  
-  lablgl: lablgl.in Makefile.config
---- 67,75 ----
-  $(TOGLDIR)/togl.o:
-       cd $(TOGLDIR) && $(MAKE) togl.o
-  
-! lablgltop: lablgl.cma togl.cmo liblablgl.a
-       olablmktop $(OLABLINC) -custom -o lablgltop \
-!              unix.cma tk41.cma lablgl.cma togl.cmo \
-               -cclib "-L. -llablgl -lunix $(OTHERLIBS)"
-  
-  lablgl: lablgl.in Makefile.config
-***************
-*** 107,113 ****
-       if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi
-       cp $(MLOBJS:.cmo=.cmi) $(INSTALLDIR)
-       cp $(MLOBJS:.cmo=.mli) $(INSTALLDIR)
-!      cp lablgl.cma liblablgl.a $(INSTALLDIR)
-       cp lablgltop $(INSTALLDIR)
-       cp lablgl lablgllink $(BINDIR)
-       if test -f lablgl.cmxa; then : ; \
---- 108,114 ----
-       if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi
-       cp $(MLOBJS:.cmo=.cmi) $(INSTALLDIR)
-       cp $(MLOBJS:.cmo=.mli) $(INSTALLDIR)
-!      cp lablgl.cma togl.cmo liblablgl.a $(INSTALLDIR)
-       cp lablgltop $(INSTALLDIR)
-       cp lablgl lablgllink $(BINDIR)
-       if test -f lablgl.cmxa; then : ; \
-Index: lablgllink.in
-===================================================================
-RCS file: /staff2/garrigue/repos/lablGL/lablgllink.in,v
-retrieving revision 1.2
-retrieving revision 1.3
-diff -c -r1.2 -r1.3
-*** lablgllink.in      1998/09/16 10:26:17     1.2
---- lablgllink.in      1999/06/18 07:39:09     1.3
-***************
-*** 1,5 ****
-  #!/bin/sh
-  
-  exec olablc -custom @INCLUDES@ -I @INSTALLDIR@ \
-!      tk41.cma lablgl.cma $* -cclib "-L@INSTALLDIR@ -llablgl" \
-       -cclib "@OTHERLIBS@"
---- 1,5 ----
-  #!/bin/sh
-  
-  exec olablc -custom @INCLUDES@ -I @INSTALLDIR@ \
-!      tk41.cma lablgl.cma togl.cmo $* -cclib "-L@INSTALLDIR@ -llablgl" \
-       -cclib "@OTHERLIBS@"
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgtk.in b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/lablgtk.in
deleted file mode 100644 (file)
index 9801514..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-thread="no"
-
-case $1 in
--help)
-    echo "Usage: lablgtk [-thread] <options> [script-file]"
-    echo "  -thread  use the threaded version of the toplevel"
-    ;;
--thread)
-    thread=yes
-    shift
-    ;;
-esac
-
-if test $thread = yes; then
-    toplevel="@INSTALLDIR@/lablgtktop_t -I @LIBDIR@/threads"
-else
-    toplevel=@INSTALLDIR@/lablgtktop
-fi
-
-exec $toplevel -w s \
-               -I @LABLGLDIR@ \
-               -I @INSTALLDIR@ $*
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.c
deleted file mode 100644 (file)
index 9ab1c1e..0000000
+++ /dev/null
@@ -1,522 +0,0 @@
-/* $Id$ */
-
-#include <string.h>
-#include <gdk/gdk.h>
-#ifdef _WIN32
-#include <gdk/win32/gdkwin32.h>
-#else
-#include <gdk/gdkx.h>
-#endif
-#include <caml/mlvalues.h>
-#include <caml/alloc.h>
-#include <caml/memory.h>
-#include <caml/callback.h>
-
-#include "wrappers.h"
-#include "ml_glib.h"
-#include "ml_gdk.h"
-#include "gdk_tags.h"
-
-void ml_raise_gdk (const char *errmsg)
-{
-  static value * exn = NULL;
-  if (exn == NULL)
-      exn = caml_named_value ("gdkerror");
-  raise_with_string (*exn, (char*)errmsg);
-}
-
-#include "gdk_tags.c"
-
-Make_OptFlags_val (GdkModifier_val)
-Make_Flags_val (Event_mask_val)
-
-#define Make_test(conv) \
-value ml_test_##conv (value mask, value test) \
-{ return Val_bool (conv(mask) & Int_val(test)); }
-
-Make_test(GdkModifier_val)
-
-/* Colormap */
-
-Make_Val_final_pointer (GdkColormap, gdk_colormap_ref, gdk_colormap_unref, 0)
-ML_0 (gdk_colormap_get_system, Val_GdkColormap)
-
-/* Screen geometry */
-ML_0 (gdk_screen_width, Val_int)
-ML_0 (gdk_screen_height, Val_int)
-
-/* Visual */
-value ml_gdk_visual_get_best (value depth, value type)
-{
-     GdkVisual *vis;
-     if (type == Val_unit)
-          if (depth == Val_unit) vis = gdk_visual_get_best ();
-          else vis = gdk_visual_get_best_with_depth (Int_val(Field(depth,0)));
-     else
-          if (depth == Val_unit)
-               vis = gdk_visual_get_best_with_type
-                    (GdkVisualType_val(Field(type,0)));
-          else vis = gdk_visual_get_best_with_both
-                    (Int_val(Field(depth,0)),GdkVisualType_val(Field(type,0)));
-     if (!vis) ml_raise_gdk("Gdk.Visual.get_best");
-     return Val_GdkVisual(vis);
-}
-
-Make_Extractor (GdkVisual,GdkVisual_val,type,Val_gdkVisualType)
-Make_Extractor (GdkVisual,GdkVisual_val,depth,Val_int)
-Make_Extractor (GdkVisual,GdkVisual_val,red_mask,Val_int)
-Make_Extractor (GdkVisual,GdkVisual_val,red_shift,Val_int)
-Make_Extractor (GdkVisual,GdkVisual_val,red_prec,Val_int)
-Make_Extractor (GdkVisual,GdkVisual_val,green_mask,Val_int)
-Make_Extractor (GdkVisual,GdkVisual_val,green_shift,Val_int)
-Make_Extractor (GdkVisual,GdkVisual_val,green_prec,Val_int)
-Make_Extractor (GdkVisual,GdkVisual_val,blue_mask,Val_int)
-Make_Extractor (GdkVisual,GdkVisual_val,blue_shift,Val_int)
-Make_Extractor (GdkVisual,GdkVisual_val,blue_prec,Val_int)
-
-/* Image */
-
-Make_Val_final_pointer (GdkImage, Ignore, gdk_image_destroy, 0)
-GdkImage *GdkImage_val(value val)
-{
-    if (!Field(val,1)) ml_raise_gdk ("attempt to use destroyed GdkImage");
-    return (GdkImage*)(Field(val,1));
-}
-value ml_gdk_image_destroy (value val)
-{
-    if (Field(val,1)) gdk_image_destroy((GdkImage*)(Field(val,1)));
-    Field(val,1) = NULL;
-    return Val_unit;
-}
-ML_4 (gdk_image_new_bitmap, GdkVisual_val, String_val, Int_val, Int_val,
-      Val_GdkImage)
-ML_4 (gdk_image_new, GdkImageType_val, GdkVisual_val, Int_val, Int_val,
-      Val_GdkImage)
-ML_5 (gdk_image_get, GdkWindow_val, Int_val, Int_val, Int_val, Int_val,
-      Val_GdkImage)
-ML_4 (gdk_image_put_pixel, GdkImage_val, Int_val, Int_val, Int_val, Unit)
-ML_3 (gdk_image_get_pixel, GdkImage_val, Int_val, Int_val, Val_int)
-
-/* Color */
-
-ML_2 (gdk_colormap_new, GdkVisual_val, Bool_val, Val_GdkColormap)
-
-value ml_gdk_color_white (value cmap)
-{
-    GdkColor color;
-    gdk_color_white (GdkColormap_val(cmap), &color);
-    return Val_copy(color);
-}
-    
-value ml_gdk_color_black (value cmap)
-{
-    GdkColor color;
-    gdk_color_black (GdkColormap_val(cmap), &color);
-    return Val_copy(color);
-}
-
-value ml_gdk_color_parse (char *spec)
-{
-    GdkColor color;
-    if (!gdk_color_parse (spec, &color))
-       ml_raise_gdk ("color_parse");
-    return Val_copy(color);
-}
-
-ML_2 (gdk_color_alloc, GdkColormap_val, GdkColor_val, Val_bool)
-
-value ml_GdkColor (value red, value green, value blue)
-{
-    GdkColor color;
-    color.red = Int_val(red);
-    color.green = Int_val(green);
-    color.blue = Int_val(blue);
-    color.pixel = 0;
-    return Val_copy(color);
-}
-
-Make_Extractor (GdkColor, GdkColor_val, red, Val_int)
-Make_Extractor (GdkColor, GdkColor_val, green, Val_int)
-Make_Extractor (GdkColor, GdkColor_val, blue, Val_int)
-Make_Extractor (GdkColor, GdkColor_val, pixel, Val_int)
-
-/* Rectangle */
-
-value ml_GdkRectangle (value x, value y, value width, value height)
-{
-    GdkRectangle rectangle;
-    rectangle.x = Int_val(x);
-    rectangle.y = Int_val(y);
-    rectangle.width = Int_val(width);
-    rectangle.height = Int_val(height);
-    return Val_copy(rectangle);
-}
-
-Make_Extractor (GdkRectangle, GdkRectangle_val, x, Val_int)
-Make_Extractor (GdkRectangle, GdkRectangle_val, y, Val_int)
-Make_Extractor (GdkRectangle, GdkRectangle_val, width, Val_int)
-Make_Extractor (GdkRectangle, GdkRectangle_val, height, Val_int)
-
-/* Window */
-
-Make_Val_final_pointer (GdkWindow, gdk_window_ref, gdk_window_unref, 0)
-Make_Extractor (gdk_visual_get, GdkVisual_val, depth, Val_int)
-ML_1 (gdk_window_get_visual, GdkWindow_val, Val_GdkVisual)
-ML_3 (gdk_window_set_back_pixmap, GdkWindow_val, GdkPixmap_val, Int_val, Unit)
-ML_1 (gdk_window_clear, GdkWindow_val, Unit)
-ML_0 (GDK_ROOT_PARENT, Val_GdkWindow)
-ML_1 (gdk_window_get_parent, GdkWindow_val, Val_GdkWindow)
-ML_1 (GDK_WINDOW_XWINDOW, GdkWindow_val, Val_XID)
-value ml_gdk_window_get_position (value window)
-{
-  int x, y;
-  value ret;
-
-  gdk_window_get_position (GdkWindow_val(window), &x, &y);
-  
-  ret = alloc_small (2,0);
-  Field(ret,0) = Val_int(x);
-  Field(ret,1) = Val_int(y);
-  return ret;
-}
-
-value ml_gdk_window_get_size (value window)
-{
-  int x, y;
-  value ret;
-
-  gdk_window_get_size (GdkWindow_val(window), &x, &y);
-  
-  ret = alloc_small (2,0);
-  Field(ret,0) = Val_int(x);
-  Field(ret,1) = Val_int(y);
-  return ret;
-}
-
-/* Cursor */
-
-ML_1 (gdk_cursor_new, GdkCursorType_val, Val_GdkCursor)
-ML_6 (gdk_cursor_new_from_pixmap, GdkPixmap_val, GdkPixmap_val,
-      GdkColor_val, GdkColor_val, Int_val, Int_val, Val_GdkCursor)
-ML_bc6 (ml_gdk_cursor_new_from_pixmap)
-ML_1 (gdk_cursor_destroy, GdkCursor_val, Unit)
-
-/* Pixmap */
-
-Make_Val_final_pointer (GdkPixmap, gdk_pixmap_ref, gdk_pixmap_unref, 0)
-Make_Val_final_pointer (GdkBitmap, gdk_bitmap_ref, gdk_bitmap_unref, 0)
-Make_Val_final_pointer_ext (GdkPixmap, _no_ref, Ignore, gdk_pixmap_unref, 20)
-Make_Val_final_pointer_ext (GdkBitmap, _no_ref, Ignore, gdk_bitmap_unref, 20)
-ML_4 (gdk_pixmap_new, GdkWindow_val, Int_val, Int_val, Int_val,
-      Val_GdkPixmap_no_ref)
-ML_4 (gdk_bitmap_create_from_data, GdkWindow_val,
-      String_val, Int_val, Int_val, Val_GdkBitmap_no_ref)
-ML_7 (gdk_pixmap_create_from_data, GdkWindow_val, String_val,
-      Int_val, Int_val, Int_val, GdkColor_val, GdkColor_val,
-      Val_GdkPixmap_no_ref)
-ML_bc7 (ml_gdk_pixmap_create_from_data)
-
-value ml_gdk_pixmap_colormap_create_from_xpm
-       (value window, value colormap, value transparent, char *filename)
-{
-    CAMLparam0();
-    GdkBitmap *mask;
-    CAMLlocal2(vpixmap, vmask);
-    value ret;
-
-    vpixmap = Val_GdkPixmap_no_ref
-       (gdk_pixmap_colormap_create_from_xpm
-        (GdkWindow_val(window), Option_val(colormap,GdkColormap_val,NULL),
-         &mask, Option_val(transparent,GdkColor_val,NULL), filename));
-    vmask = Val_GdkBitmap_no_ref (mask);
-
-    ret = alloc_small (2,0);
-    Field(ret,0) = vpixmap;
-    Field(ret,1) = vmask;
-    CAMLreturn(ret);
-}
-
-value ml_gdk_pixmap_colormap_create_from_xpm_d
-       (value window, value colormap, value transparent, char **data)
-{
-    CAMLparam0();
-    GdkBitmap *mask;
-    CAMLlocal2(vpixmap, vmask);
-    value ret;
-
-    vpixmap = Val_GdkPixmap_no_ref
-       (gdk_pixmap_colormap_create_from_xpm_d
-        (GdkWindow_val(window), Option_val(colormap,GdkColormap_val,NULL),
-         &mask, Option_val(transparent,GdkColor_val,NULL), data));
-    vmask = Val_GdkBitmap_no_ref (mask);
-
-    ret = alloc_small (2, 0);
-    Field(ret,0) = vpixmap;
-    Field(ret,1) = vmask;
-    CAMLreturn(ret);
-}
-
-/* Font */
-
-Make_Val_final_pointer (GdkFont, gdk_font_ref, gdk_font_unref, 0)
-Make_Val_final_pointer_ext (GdkFont, _no_ref, Ignore, gdk_font_unref, 20)
-ML_1 (gdk_font_load, String_val, Val_GdkFont_no_ref)
-ML_1 (gdk_fontset_load, String_val, Val_GdkFont_no_ref)
-ML_2 (gdk_string_width, GdkFont_val, String_val, Val_int)
-ML_2 (gdk_char_width, GdkFont_val, (gchar)Long_val, Val_int)
-ML_2 (gdk_string_height, GdkFont_val, String_val, Val_int)
-ML_2 (gdk_char_height, GdkFont_val, (gchar)Long_val, Val_int)
-ML_2 (gdk_string_measure, GdkFont_val, String_val, Val_int)
-ML_2 (gdk_char_measure, GdkFont_val, (char)Long_val, Val_int)
-Make_Extractor (GdkFont, GdkFont_val, type, Val_gdkFontType)
-Make_Extractor (GdkFont, GdkFont_val, ascent, Val_int)
-Make_Extractor (GdkFont, GdkFont_val, descent, Val_int)
-
-/* Region */
-
-#define PointArray_val(val) ((GdkPoint*)&Field(val,1))
-#define PointArrayLen_val(val) Int_val(Field(val,0))
-Make_Val_final_pointer (GdkRegion, Ignore, gdk_region_destroy, 0)
-GdkRegion *GdkRegion_val(value val)
-{
-    if (!Field(val,1)) ml_raise_gdk ("attempt to use destroyed GdkRegion");
-    return (GdkRegion*)(Field(val,1));
-}
-value ml_gdk_region_destroy (value val)
-{
-    if (Field(val,1)) gdk_region_destroy((GdkRegion*)(Field(val,1)));
-    Field(val,1) = NULL;
-    return Val_unit;
-}
-ML_0 (gdk_region_new, Val_GdkRegion)
-ML_2 (gdk_region_polygon, Insert(PointArray_val(arg1)) PointArrayLen_val,
-      GdkFillRule_val, Val_GdkRegion)
-ML_2 (gdk_regions_intersect, GdkRegion_val, GdkRegion_val, Val_GdkRegion)
-ML_2 (gdk_regions_union, GdkRegion_val, GdkRegion_val, Val_GdkRegion)
-ML_2 (gdk_regions_subtract, GdkRegion_val, GdkRegion_val, Val_GdkRegion)
-ML_2 (gdk_regions_xor, GdkRegion_val, GdkRegion_val, Val_GdkRegion)
-ML_2 (gdk_region_union_with_rect, GdkRegion_val, GdkRectangle_val,
-      Val_GdkRegion)
-ML_3 (gdk_region_offset, GdkRegion_val, Int_val, Int_val, Unit)
-ML_3 (gdk_region_shrink, GdkRegion_val, Int_val, Int_val, Unit)
-ML_1 (gdk_region_empty, GdkRegion_val, Val_bool)
-ML_2 (gdk_region_equal, GdkRegion_val, GdkRegion_val, Val_bool)
-ML_3 (gdk_region_point_in, GdkRegion_val, Int_val, Int_val, Val_bool)
-ML_2 (gdk_region_rect_in, GdkRegion_val, GdkRectangle_val, Val_gdkOverlapType)
-ML_2 (gdk_region_get_clipbox, GdkRegion_val, GdkRectangle_val, Unit)
-
-
-/* GC */
-
-Make_Val_final_pointer (GdkGC, gdk_gc_ref, gdk_gc_unref, 0)
-Make_Val_final_pointer_ext (GdkGC, _no_ref, Ignore, gdk_gc_unref, 20)
-ML_1 (gdk_gc_new, GdkWindow_val, Val_GdkGC_no_ref)
-ML_2 (gdk_gc_set_foreground, GdkGC_val, GdkColor_val, Unit)
-ML_2 (gdk_gc_set_background, GdkGC_val, GdkColor_val, Unit)
-ML_2 (gdk_gc_set_font, GdkGC_val, GdkFont_val, Unit)
-ML_2 (gdk_gc_set_function, GdkGC_val, GdkFunction_val, Unit)
-ML_2 (gdk_gc_set_fill, GdkGC_val, GdkFill_val, Unit)
-ML_2 (gdk_gc_set_tile, GdkGC_val, GdkPixmap_val, Unit)
-ML_2 (gdk_gc_set_stipple, GdkGC_val, GdkPixmap_val, Unit)
-ML_3 (gdk_gc_set_ts_origin, GdkGC_val, Int_val, Int_val, Unit)
-ML_3 (gdk_gc_set_clip_origin, GdkGC_val, Int_val, Int_val, Unit)
-ML_2 (gdk_gc_set_clip_mask, GdkGC_val, GdkBitmap_val, Unit)
-ML_2 (gdk_gc_set_clip_rectangle, GdkGC_val, GdkRectangle_val, Unit)
-ML_2 (gdk_gc_set_clip_region, GdkGC_val, GdkRegion_val, Unit)
-ML_2 (gdk_gc_set_subwindow, GdkGC_val, GdkSubwindowMode_val, Unit)
-ML_2 (gdk_gc_set_exposures, GdkGC_val, Bool_val, Unit)
-ML_5 (gdk_gc_set_line_attributes, GdkGC_val, Int_val, GdkLineStyle_val,
-      GdkCapStyle_val, GdkJoinStyle_val, Unit)
-ML_2 (gdk_gc_copy, GdkGC_val, GdkGC_val, Unit)
-value ml_gdk_gc_get_values (value gc)
-{
-    CAMLparam0();
-    GdkGCValues values;
-    int i;
-    CAMLlocal2(ret, tmp);
-
-    gdk_gc_get_values (GdkGC_val(gc), &values);
-    ret = alloc (18, 0);
-    tmp = Val_copy(values.foreground); Store_field(ret, 0, tmp);
-    tmp = Val_copy(values.background); Store_field(ret, 1, tmp);
-    if (values.font) {
-        tmp = ml_some(Val_GdkFont(values.font));
-        Store_field(ret, 2, tmp);
-    }
-    Field(ret,3) = Val_gdkFunction(values.function);
-    Field(ret,4) = Val_gdkFill(values.fill);
-    if (values.tile) {
-        tmp = ml_some(Val_GdkPixmap(values.tile));
-        Store_field(ret, 5, tmp);
-    }
-    if (values.tile) {
-        tmp = ml_some(Val_GdkPixmap(values.stipple));
-        Store_field(ret, 6, tmp);
-    }
-    if (values.tile) {
-        tmp = ml_some(Val_GdkPixmap(values.clip_mask));
-        Store_field(ret, 7, tmp);
-    }
-    Field(ret,8) = Val_gdkSubwindowMode(values.subwindow_mode);
-    Field(ret,9) = Val_int(values.ts_x_origin);
-    Field(ret,10) = Val_int(values.ts_y_origin);
-    Field(ret,11) = Val_int(values.clip_x_origin);
-    Field(ret,12) = Val_int(values.clip_y_origin);
-    Field(ret,13) = Val_bool(values.graphics_exposures);
-    Field(ret,14) = Val_int(values.line_width);
-    Field(ret,15) = Val_gdkLineStyle(values.line_style);
-    Field(ret,16) = Val_gdkCapStyle(values.cap_style);
-    Field(ret,17) = Val_gdkJoinStyle(values.join_style);
-    CAMLreturn(ret);
-}
-
-/* Draw */
-
-value ml_point_array_new (value len)
-{
-    value ret = alloc (1 + Wosize_asize(Int_val(len)*sizeof(GdkPoint)),
-                      Abstract_tag);
-    Field(ret,0) = len;
-    return ret;
-}
-value ml_point_array_set (value arr, value pos, value x, value y)
-{
-    GdkPoint *pt = PointArray_val(arr) + Int_val(pos);
-    pt->x = Int_val(x);
-    pt->y = Int_val(y);
-    return Val_unit;
-}
-
-ML_4 (gdk_draw_point, GdkDrawable_val, GdkGC_val, Int_val, Int_val, Unit)
-ML_6 (gdk_draw_line, GdkDrawable_val, GdkGC_val, Int_val, Int_val,
-      Int_val, Int_val, Unit)
-ML_bc6 (ml_gdk_draw_line)
-ML_7 (gdk_draw_rectangle, GdkDrawable_val, GdkGC_val, Bool_val,
-      Int_val, Int_val, Int_val, Int_val, Unit)
-ML_bc7 (ml_gdk_draw_rectangle)
-ML_9 (gdk_draw_arc, GdkDrawable_val, GdkGC_val, Bool_val, Int_val, Int_val,
-      Int_val, Int_val, Int_val, Int_val, Unit)
-ML_bc9 (ml_gdk_draw_arc)
-ML_4 (gdk_draw_polygon, GdkDrawable_val, GdkGC_val, Bool_val,
-      Insert(PointArray_val(arg4)) PointArrayLen_val, Unit)
-ML_6 (gdk_draw_string, GdkDrawable_val, GdkFont_val, GdkGC_val, Int_val, Int_val, String_val, Unit)
-ML_bc6 (ml_gdk_draw_string)
-
-ML_9 (gdk_draw_image, GdkDrawable_val, GdkGC_val, GdkImage_val, Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit)
-ML_bc9 (ml_gdk_draw_image)
-
-/* RGB */
-
-ML_0 (gdk_rgb_init, Unit)
-ML_0 (gdk_rgb_get_visual, Val_GdkVisual)
-ML_0 (gdk_rgb_get_cmap, Val_GdkColormap)
-
-/* Events */
-
-/* Have a major collection every 1000 events */
-Make_Val_final_pointer (GdkEvent, Ignore, gdk_event_free, 1)
-ML_1 (gdk_event_copy, GdkEvent_val, Val_GdkEvent)
-
-value ml_gdk_event_new (value event_type)
-{
-    GdkEvent event;
-    memset (&event, 0, sizeof(GdkEvent));
-    event.type = GdkEventType_val(event_type);
-    event.any.send_event = TRUE;
-    return Val_copy(event);
-}
-
-#define GdkEvent_arg(type) (GdkEvent##type*)GdkEvent_val
-
-Make_Extractor (GdkEventAny, GdkEvent_arg(Any), type, Val_gdkEventType)
-Make_Extractor (GdkEventAny, GdkEvent_arg(Any), window, Val_GdkWindow)
-Make_Extractor (GdkEventAny, GdkEvent_arg(Any), send_event, Val_bool)
-Make_Setter (gdk_event_set, GdkEvent_arg(Any), GdkEventType_val, type)
-Make_Setter (gdk_event_set, GdkEvent_arg(Any), GdkWindow_val, window)
-
-Make_Extractor (GdkEventExpose, GdkEvent_arg(Expose), area, Val_copy)
-Make_Extractor (GdkEventExpose, GdkEvent_arg(Expose), count, Val_int)
-
-Make_Extractor (GdkEventVisibility, GdkEvent_arg(Visibility), state,
-               Val_gdkVisibilityState)
-
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), time, Val_int)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), x, copy_double)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), y, copy_double)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), pressure, copy_double)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), xtilt, copy_double)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), ytilt, copy_double)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), state, Val_int)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), is_hint, Val_int)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), source, Val_gdkInputSource)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), deviceid, Val_int)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), x_root, copy_double)
-Make_Extractor (GdkEventMotion, GdkEvent_arg(Motion), y_root, copy_double)
-
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), time, Val_int)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), x, copy_double)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), y, copy_double)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), pressure, copy_double)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), xtilt, copy_double)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), ytilt, copy_double)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), state, Val_int)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), button, Val_int)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), source, Val_gdkInputSource)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), deviceid, Val_int)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), x_root, copy_double)
-Make_Extractor (GdkEventButton, GdkEvent_arg(Button), y_root, copy_double)
-
-Make_Setter (gdk_event_button_set, GdkEvent_arg(Button), Int_val, button)
-
-Make_Extractor (GdkEventKey, GdkEvent_arg(Key), time, Val_int)
-Make_Extractor (GdkEventKey, GdkEvent_arg(Key), state, Val_int)
-Make_Extractor (GdkEventKey, GdkEvent_arg(Key), keyval, Val_int)
-Make_Extractor (GdkEventKey, GdkEvent_arg(Key), string, Val_string)
-
-Make_Extractor (GdkEventCrossing, GdkEvent_arg(Crossing), subwindow,
-               Val_GdkWindow)
-Make_Extractor (GdkEventCrossing, GdkEvent_arg(Crossing), detail,
-               Val_gdkNotifyType)
-
-Make_Extractor (GdkEventFocus, GdkEvent_arg(Focus), in, Val_int)
-
-Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), x, Val_int)
-Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), y, Val_int)
-Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), width, Val_int)
-Make_Extractor (GdkEventConfigure, GdkEvent_arg(Configure), height, Val_int)
-
-Make_Extractor (GdkEventProperty, GdkEvent_arg(Property), atom, Val_int)
-Make_Extractor (GdkEventProperty, GdkEvent_arg(Property), time, Val_int)
-Make_Extractor (GdkEventProperty, GdkEvent_arg(Property), state, Val_int)
-
-Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), selection, Val_int)
-Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), target, Val_int)
-Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), property, Val_int)
-Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), requestor, Val_int)
-Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), time, Val_int)
-
-Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity), time, Val_int)
-Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity), source,
-               Val_gdkInputSource)
-Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity), deviceid, Val_int)
-
-/* DnD */
-Make_Val_final_pointer (GdkDragContext, gdk_drag_context_ref, gdk_drag_context_unref, 0)
-Make_Flags_val (GdkDragAction_val)
-ML_3 (gdk_drag_status, GdkDragContext_val, Flags_GdkDragAction_val, Int_val, Unit)
-Make_Extractor (GdkDragContext, GdkDragContext_val, suggested_action, Val_gdkDragAction)
-value val_int(gpointer i)
-{
-  return Val_int (GPOINTER_TO_INT(i));
-}
-value ml_GdkDragContext_targets (value c)
-{
-  GList *t;
-
-  t = (GdkDragContext_val(c))->targets;
-  return Val_GList (t, val_int);
-}
-
-/* Misc */
-ML_0 (gdk_flush, Unit)
-ML_0 (gdk_beep, Unit)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gdk.h
deleted file mode 100644 (file)
index 5d699ac..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* $Id$ */
-
-#define GdkColormap_val(val) ((GdkColormap*)Pointer_val(val))
-extern value Val_GdkColormap (GdkColormap *);
-
-#define GdkColor_val(val) ((GdkColor*)MLPointer_val(val))
-#define Val_GdkColor Val_pointer
-
-#define GdkRectangle_val(val) ((GdkRectangle*)MLPointer_val(val))
-#define Val_GdkRectangle Val_pointer
-
-#define GdkDrawable_val(val) ((GdkDrawable*)Pointer_val(val))
-
-#define GdkWindow_val(val) ((GdkWindow*)Pointer_val(val))
-extern value Val_GdkWindow (GdkWindow *);
-
-#define GdkCursor_val(val) ((GdkCursor*)Pointer_val(val))
-#define Val_GdkCursor Val_pointer
-
-#define GdkPixmap_val(val) ((GdkPixmap*)Pointer_val(val))
-extern value Val_GdkPixmap (GdkPixmap *);
-
-#define GdkBitmap_val(val) ((GdkBitmap*)Pointer_val(val))
-extern value Val_GdkBitmap (GdkBitmap *);
-
-extern GdkImage *GdkImage_val (value); /* check argument */
-extern value Val_GdkImage (GdkImage *); /* finalizer is destroy! */
-
-#define GdkFont_val(val) ((GdkFont*)Pointer_val(val))
-extern value Val_GdkFont (GdkFont *);
-
-extern GdkRegion *GdkRegion_val (value); /* check argument */
-extern value Val_GdkRegion (GdkRegion *); /* finalizer is destroy! */
-
-#define GdkGC_val(val) ((GdkGC*)Pointer_val(val))
-extern value Val_GdkGC (GdkGC *);
-
-#define GdkEvent_val (GdkEvent*)MLPointer_val
-
-#define GdkVisual_val(val) ((GdkVisual*) val)
-#define Val_GdkVisual(visual) ((value) visual)
-
-#define Val_XID copy_int32
-#define XID_val Int32_val
-
-extern int OptFlags_GdkModifier_val (value);
-extern int Flags_Event_mask_val (value);
-extern lookup_info ml_table_extension_events[];
-#define Extension_events_val(key) ml_lookup_to_c (ml_table_extension_events, key)
-
-#define GdkDragContext_val(val) ((GdkDragContext*)Pointer_val(val))
-extern value Val_GdkDragContext (GdkDragContext *);
-extern int Flags_GdkDragAction_val (value);
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.c
deleted file mode 100644 (file)
index b7d3fcb..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/* $Id$ */
-
-#include <glib.h>
-#include <caml/mlvalues.h>
-#include <caml/alloc.h>
-#include <caml/memory.h>
-#include <caml/callback.h>
-
-#include "wrappers.h"
-#include "ml_glib.h"
-
-/*
-value Val_GSList (GSList *list, value (*func)(gpointer))
-{
-    value new_cell, result, last_cell, cell;
-
-    if (list == NULL) return Val_unit;
-
-    last_cell = cell = Val_unit;
-    result = func(list->data);
-    Begin_roots3 (last_cell, cell, result);
-    cell = last_cell = alloc_tuple (2);
-    Field(cell,0) = result;
-    Field(cell,1) = Val_unit;
-    list = list->next;
-    while (list != NULL) {
-       result = func(list->data);
-       new_cell = alloc_tuple(2);
-       Field(new_cell,0) = result;
-       Field(new_cell,1) = Val_unit;
-       modify(&Field(last_cell,1), new_cell);
-       last_cell = new_cell;
-       list = list->next;
-    }
-    End_roots ();
-    return cell;
-}
-
-GSList *GSList_val (value list, gpointer (*func)(value))
-{
-    GSList *res = NULL;
-    GSList **current = &res;
-    value cell = list;
-    if (list == Val_unit) return res;
-    Begin_root (cell);
-    while (cell != Val_unit) {
-       *current = g_slist_alloc ();
-       (*current)->data = func(Field(cell,0));
-       cell = Field(cell,1);
-       current = &(*current)->next;
-    }
-    End_roots ();
-    return res;
-}
-*/
-
-value Val_GList (GList *list, value (*func)(gpointer))
-{
-    value new_cell, result, last_cell, cell;
-
-    if (list == NULL) return Val_unit;
-
-    last_cell = cell = Val_unit;
-    result = func(list->data);
-    Begin_roots3 (last_cell, cell, result);
-    cell = last_cell = alloc_small(2,0);
-    Field(cell,0) = result;
-    Field(cell,1) = Val_unit;
-    list = list->next;
-    while (list != NULL) {
-       result = func(list->data);
-       new_cell = alloc_small(2,0);
-       Field(new_cell,0) = result;
-       Field(new_cell,1) = Val_unit;
-       modify(&Field(last_cell,1), new_cell);
-       last_cell = new_cell;
-       list = list->next;
-    }
-    End_roots ();
-    return cell;
-}
-
-GList *GList_val (value list, gpointer (*func)(value))
-{
-    CAMLparam1(list);
-    GList *res = NULL;
-    if (list == Val_unit) CAMLreturn (res);
-    for (; Is_block(list); list = Field(list,1))
-      res = g_list_append (res, func(Field(list,0)));
-    CAMLreturn (res);
-}
-
-static value ml_warning_handler = 0L;
-
-static void ml_warning_wrapper (const gchar *msg)
-{
-    value arg = copy_string ((char*)msg);
-    callback (ml_warning_handler, arg);
-}
-    
-value ml_g_set_warning_handler (value clos)
-{
-    value old_handler = ml_warning_handler ? ml_warning_handler : clos;
-    if (!ml_warning_handler) register_global_root (&ml_warning_handler);
-    g_set_warning_handler (ml_warning_wrapper);
-    ml_warning_handler = clos;
-    return old_handler;
-}
-
-static value ml_print_handler = 0L;
-
-static void ml_print_wrapper (const gchar *msg)
-{
-    value arg = copy_string ((char*)msg);
-    callback (ml_print_handler, arg);
-}
-    
-value ml_g_set_print_handler (value clos)
-{
-    value old_handler = ml_print_handler ? ml_print_handler : clos;
-    if (!ml_print_handler) register_global_root (&ml_print_handler);
-    g_set_print_handler (ml_print_wrapper);
-    ml_print_handler = clos;
-    return old_handler;
-}
-
-value ml_get_null (value unit) { return 0L; }
-
-#define GMainLoop_val(val) ((GMainLoop*)Addr_val(val))
-ML_1 (g_main_new, Bool_val, Val_addr)
-ML_1 (g_main_iteration, Bool_val, Val_bool)
-ML_0 (g_main_pending, Val_bool)
-ML_1 (g_main_is_running, GMainLoop_val, Val_bool)
-ML_1 (g_main_quit, GMainLoop_val, Unit)
-ML_1 (g_main_destroy, GMainLoop_val, Unit)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_glib.h
deleted file mode 100644 (file)
index f0b45db..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/* $Id$ */
-
-/*
-value Val_GSList (GSList *list, value (*func)(gpointer));
-
-GSList *GSList_val (value list, gpointer (*func)(value));
-*/
-
-value Val_GList (GList *list, value (*func)(gpointer));
-GList *GList_val (value list, gpointer (*func)(value));
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.c
deleted file mode 100644 (file)
index 0ee12a2..0000000
+++ /dev/null
@@ -1,2170 +0,0 @@
-/* $Id$ */
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include <caml/mlvalues.h>
-#include <caml/alloc.h>
-#include <caml/memory.h>
-#include <caml/callback.h>
-#include <caml/fail.h>
-
-#include "wrappers.h"
-#include "ml_glib.h"
-#include "ml_gdk.h"
-#include "ml_gtk.h"
-#include "gtk_tags.h"
-
-void ml_raise_gtk (const char *errmsg)
-{
-  static value * exn = NULL;
-  if (exn == NULL)
-      exn = caml_named_value ("gtkerror");
-  raise_with_string (*exn, (char*)errmsg);
-}
-
-value copy_string_and_free (char *str)
-{
-    value res;
-    res = copy_string_check (str);
-    g_free (str);
-    return res;
-}
-
-value *ml_gtk_root_new (value v)
-{
-    value *p = stat_alloc(sizeof(value));
-    *p = v;
-    register_global_root (p);
-    return p;
-}
-
-void ml_gtk_root_destroy (gpointer data)
-{
-    remove_global_root ((value *)data);
-    stat_free (data);
-}
-
-/* conversion functions */
-
-#include "gtk_tags.c"
-
-ML_1 (Val_direction_type, Int_val, Id)
-ML_1 (Val_orientation, Int_val, Id)
-ML_1 (Val_toolbar_style, Int_val, Id)
-ML_1 (Val_state_type, Int_val, Id)
-ML_1 (Val_scroll_type, Int_val, Id)
-
-Make_Flags_val (Attach_options_val)
-Make_Flags_val (Button_action_val)
-Make_Flags_val (Dest_defaults_val)
-Make_Flags_val (Target_flags_val)
-Make_Flags_val (Font_type_val)
-
-/* gtkobject.h */
-
-Make_Val_final_pointer(GtkObject, gtk_object_ref, gtk_object_unref, 0)
-
-#define gtk_object_ref_and_sink(w) (gtk_object_ref(w), gtk_object_sink(w))
-Make_Val_final_pointer_ext(GtkObject, _sink , gtk_object_ref_and_sink,
-                           gtk_object_unref, 20)
-
-/* gtkaccelgroup.h */
-
-#define GtkAccelGroup_val(val) ((GtkAccelGroup*)Pointer_val(val))
-Make_Val_final_pointer (GtkAccelGroup, gtk_accel_group_ref,
-                       gtk_accel_group_unref, 0)
-Make_Val_final_pointer_ext (GtkAccelGroup, _no_ref, Ignore,
-                            gtk_accel_group_unref, 20)
-Make_OptFlags_val (Accel_flag_val)
-
-#define Signal_name_val(val) String_val(Field(val,0))
-
-ML_0 (gtk_accel_group_new, Val_GtkAccelGroup_no_ref)
-ML_0 (gtk_accel_group_get_default, Val_GtkAccelGroup)
-ML_3 (gtk_accel_group_activate, GtkAccelGroup_val, Int_val,
-      OptFlags_GdkModifier_val, Val_bool)
-ML_3 (gtk_accel_groups_activate, GtkObject_val, Int_val,
-      OptFlags_GdkModifier_val, Val_bool)
-ML_2 (gtk_accel_group_attach, GtkAccelGroup_val, GtkObject_val, Unit)
-ML_2 (gtk_accel_group_detach, GtkAccelGroup_val, GtkObject_val, Unit)
-ML_1 (gtk_accel_group_lock, GtkAccelGroup_val, Unit)
-ML_1 (gtk_accel_group_unlock, GtkAccelGroup_val, Unit)
-ML_3 (gtk_accel_group_lock_entry, GtkAccelGroup_val, Int_val,
-      OptFlags_GdkModifier_val, Unit)
-ML_3 (gtk_accel_group_unlock_entry, GtkAccelGroup_val, Int_val,
-      OptFlags_GdkModifier_val, Unit)
-ML_6 (gtk_accel_group_add, GtkAccelGroup_val, Int_val,
-      OptFlags_GdkModifier_val, OptFlags_Accel_flag_val,
-      GtkObject_val, Signal_name_val, Unit)
-ML_bc6 (ml_gtk_accel_group_add)
-ML_4 (gtk_accel_group_remove, GtkAccelGroup_val, Int_val,
-      OptFlags_GdkModifier_val, GtkObject_val, Unit)
-ML_2 (gtk_accelerator_valid, Int_val, OptFlags_GdkModifier_val, Val_bool)
-ML_1 (gtk_accelerator_set_default_mod_mask, OptFlags_GdkModifier_val, Unit)
-
-/* gtkstyle.h */
-
-#define GtkStyle_val(val) ((GtkStyle*)Pointer_val(val))
-Make_Val_final_pointer (GtkStyle, gtk_style_ref, gtk_style_unref, 0)
-Make_Val_final_pointer_ext (GtkStyle, _no_ref, Ignore, gtk_style_unref, 20)
-ML_0 (gtk_style_new, Val_GtkStyle_no_ref)
-ML_1 (gtk_style_copy, GtkStyle_val, Val_GtkStyle_no_ref)
-ML_2 (gtk_style_attach, GtkStyle_val, GdkWindow_val, Val_GtkStyle)
-ML_1 (gtk_style_detach, GtkStyle_val, Unit)
-ML_3 (gtk_style_set_background, GtkStyle_val, GdkWindow_val, State_type_val, Unit)
-ML_6 (gtk_draw_hline, GtkStyle_val, GdkWindow_val, State_type_val,
-      Int_val, Int_val, Int_val, Unit)
-ML_bc6 (ml_gtk_draw_hline)
-ML_6 (gtk_draw_vline, GtkStyle_val, GdkWindow_val, State_type_val,
-      Int_val, Int_val, Int_val, Unit)
-ML_bc6 (ml_gtk_draw_vline)
-Make_Array_Extractor (gtk_style_get, GtkStyle_val, State_type_val,  bg, Val_copy)
-Make_Array_Setter (gtk_style_set, GtkStyle_val, State_type_val, *GdkColor_val, bg)
-Make_Extractor (gtk_style_get, GtkStyle_val, colormap, Val_GdkColormap)
-Make_Extractor (gtk_style_get, GtkStyle_val, depth, Val_int)
-Make_Extractor (gtk_style_get, GtkStyle_val, font, Val_GdkFont)
-/* Make_Setter (gtk_style_set, GtkStyle_val, GdkFont_val, font) */
-value ml_gtk_style_set_font (value st, value font)
-{
-    GtkStyle *style = GtkStyle_val(st);
-    if (style->font) gdk_font_unref(style->font);
-    style->font = GdkFont_val(font);
-    gdk_font_ref(style->font);
-    return Val_unit;
-}   
-Make_Array_Extractor (gtk_style_get, GtkStyle_val, State_type_val,  dark_gc, Val_GdkGC)
-Make_Array_Extractor (gtk_style_get, GtkStyle_val, State_type_val,  light_gc, Val_GdkGC)
-
-/* gtktypeutils.h */
-
-ML_1 (gtk_type_name, Int_val, Val_string)
-ML_1 (gtk_type_from_name, String_val, Val_int)
-ML_1 (gtk_type_parent, Int_val, Val_int)
-ML_1 (gtk_type_class, Int_val, (value))
-ML_1 (gtk_type_parent_class, Int_val, (value))
-ML_2 (gtk_type_is_a, Int_val, Int_val, Val_bool)
-value ml_gtk_type_fundamental (value type)
-{
-    return Val_fundamental_type (GTK_FUNDAMENTAL_TYPE (Int_val(type)));
-}
-
-/* gtkobject.h */
-
-/* ML_1 (GTK_OBJECT_TYPE, GtkObject_val, Val_int) */
-value ml_gtk_object_type (value val)
-{
-    return Val_int (GtkObject_val(val)->klass->type);
-}
-
-ML_1 (gtk_object_destroy, GtkObject_val, Unit)
-ML_1 (gtk_object_ref, GtkObject_val, Unit)
-ML_1 (gtk_object_unref, GtkObject_val, Unit)
-ML_1 (gtk_object_sink, GtkObject_val, Unit)
-
-Make_Extractor (gtk_class,(GtkObjectClass *),type,Val_int)
-
-/* gtkdata.h */
-
-/* gtkadjustment.h */
-
-#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val)
-ML_6 (gtk_adjustment_new, Float_val, Float_val, Float_val, Float_val,
-      Float_val, Float_val, Val_GtkObject_sink)
-ML_bc6 (ml_gtk_adjustment_new)
-ML_2 (gtk_adjustment_set_value, GtkAdjustment_val, Float_val, Unit)
-ML_3 (gtk_adjustment_clamp_page, GtkAdjustment_val,
-      Float_val, Float_val, Unit)
-Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, lower, copy_double)
-Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, upper, copy_double)
-Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, value, copy_double)
-Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, step_increment,
-               copy_double)
-Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, page_increment,
-               copy_double)
-Make_Extractor (gtk_adjustment_get, GtkAdjustment_val, page_size, copy_double)
-
-/* gtktooltips.h */
-
-#define GtkWidget_val(val) check_cast(GTK_WIDGET,val)
-#define GtkTooltips_val(val) check_cast(GTK_TOOLTIPS,val)
-ML_0 (gtk_tooltips_new, Val_GtkAny)
-ML_1 (gtk_tooltips_enable, GtkTooltips_val, Unit)
-ML_1 (gtk_tooltips_disable, GtkTooltips_val, Unit)
-ML_2 (gtk_tooltips_set_delay, GtkTooltips_val, Int_val, Unit)
-ML_4 (gtk_tooltips_set_tip, GtkTooltips_val, GtkWidget_val,
-      String_option_val, String_option_val, Unit)
-ML_3 (gtk_tooltips_set_colors, GtkTooltips_val,
-      Option_val(arg2, GdkColor_val, NULL) Ignore,
-      Option_val(arg3, GdkColor_val, NULL) Ignore,
-      Unit)
-
-/* gtkwidget.h */
-
-value ml_gtk_widget_set_can_default (value val, value bool)
-{
-    GtkWidget *w = GtkWidget_val(val);
-    guint32 saved_flags = GTK_WIDGET_FLAGS(w);
-    if (Bool_val(bool)) GTK_WIDGET_SET_FLAGS(w, GTK_CAN_DEFAULT);
-    else GTK_WIDGET_UNSET_FLAGS(w, GTK_CAN_DEFAULT);
-    if (saved_flags != GTK_WIDGET_FLAGS(w))
-       gtk_widget_queue_resize (w);
-    return Val_unit;
-}
-value ml_gtk_widget_set_can_focus (value val, value bool)
-{
-    GtkWidget *w = GtkWidget_val(val);
-    guint32 saved_flags = GTK_WIDGET_FLAGS(w);
-    if (Bool_val(bool)) GTK_WIDGET_SET_FLAGS(w, GTK_CAN_FOCUS);
-    else GTK_WIDGET_UNSET_FLAGS(w, GTK_CAN_FOCUS);
-    if (saved_flags != GTK_WIDGET_FLAGS(w))
-       gtk_widget_queue_resize (w);
-    return Val_unit;
-}
-ML_1 (gtk_widget_unparent, GtkWidget_val, Unit)
-ML_1 (gtk_widget_show, GtkWidget_val, Unit)
-ML_1 (gtk_widget_show_now, GtkWidget_val, Unit)
-ML_1 (gtk_widget_show_all, GtkWidget_val, Unit)
-ML_1 (gtk_widget_hide, GtkWidget_val, Unit)
-ML_1 (gtk_widget_hide_all, GtkWidget_val, Unit)
-ML_1 (gtk_widget_map, GtkWidget_val, Unit)
-ML_1 (gtk_widget_unmap, GtkWidget_val, Unit)
-ML_1 (gtk_widget_realize, GtkWidget_val, Unit)
-ML_1 (gtk_widget_unrealize, GtkWidget_val, Unit)
-ML_1 (gtk_widget_queue_draw, GtkWidget_val, Unit)
-ML_1 (gtk_widget_queue_resize, GtkWidget_val, Unit)
-ML_2 (gtk_widget_draw, GtkWidget_val,
-      Option_val(arg2,GdkRectangle_val,NULL) Ignore, Unit)
-ML_1 (gtk_widget_draw_focus, GtkWidget_val, Unit)
-ML_1 (gtk_widget_draw_default, GtkWidget_val, Unit)
-/* ML_1 (gtk_widget_draw_children, GtkWidget_val, Unit) */
-ML_2 (gtk_widget_event, GtkWidget_val, GdkEvent_val, Val_bool)
-ML_1 (gtk_widget_activate, GtkWidget_val, Val_bool)
-ML_2 (gtk_widget_reparent, GtkWidget_val, GtkWidget_val, Unit)
-ML_3 (gtk_widget_popup, GtkWidget_val, Int_val, Int_val, Unit)
-value ml_gtk_widget_intersect (value w, value area)
-{
-    GdkRectangle inter;
-    if (gtk_widget_intersect(GtkWidget_val(w), GdkRectangle_val(area), &inter))
-       return ml_some (Val_copy (inter));
-    return Val_unit;
-}
-/* ML_1 (gtk_widget_basic, GtkWidget_val, Val_bool) */
-ML_1 (gtk_widget_grab_focus, GtkWidget_val, Unit)
-ML_1 (gtk_widget_grab_default, GtkWidget_val, Unit)
-ML_2 (gtk_widget_set_name, GtkWidget_val, String_val, Unit)
-ML_1 (gtk_widget_get_name, GtkWidget_val, Val_string)
-ML_2 (gtk_widget_set_state, GtkWidget_val, State_type_val, Unit)
-ML_2 (gtk_widget_set_sensitive, GtkWidget_val, Bool_val, Unit)
-ML_3 (gtk_widget_set_uposition, GtkWidget_val, Int_val, Int_val, Unit)
-ML_3 (gtk_widget_set_usize, GtkWidget_val, Int_val, Int_val, Unit)
-ML_2 (gtk_widget_add_events, GtkWidget_val, Flags_Event_mask_val, Unit)
-ML_2 (gtk_widget_set_events, GtkWidget_val, Flags_Event_mask_val, Unit)
-ML_2 (gtk_widget_set_extension_events, GtkWidget_val, Extension_events_val,
-      Unit)
-ML_1 (gtk_widget_get_toplevel, GtkWidget_val, Val_GtkWidget)
-ML_2 (gtk_widget_get_ancestor, GtkWidget_val, Int_val, Val_GtkWidget)
-ML_1 (gtk_widget_get_colormap, GtkWidget_val, Val_GdkColormap)
-ML_1 (gtk_widget_get_visual, GtkWidget_val, (value))
-value ml_gtk_widget_get_pointer (value w)
-{
-    int x,y;
-    value ret;
-    gtk_widget_get_pointer (GtkWidget_val(w), &x, &y);
-    ret = alloc_small (2,0);
-    Field(ret,0) = Val_int(x);
-    Field(ret,1) = Val_int(y);
-    return ret;
-}
-ML_2 (gtk_widget_is_ancestor, GtkWidget_val, GtkWidget_val, Val_bool)
-/* ML_2 (gtk_widget_is_child, GtkWidget_val, GtkWidget_val, Val_bool) */
-ML_2 (gtk_widget_set_style, GtkWidget_val, GtkStyle_val, Unit)
-ML_1 (gtk_widget_set_rc_style, GtkWidget_val, Unit)
-ML_1 (gtk_widget_ensure_style, GtkWidget_val, Unit)
-ML_1 (gtk_widget_get_style, GtkWidget_val, Val_GtkStyle)
-ML_1 (gtk_widget_restore_default_style, GtkWidget_val, Unit)
-
-ML_6 (gtk_widget_add_accelerator, GtkWidget_val, Signal_name_val,
-      GtkAccelGroup_val, Char_val, OptFlags_GdkModifier_val,
-      OptFlags_Accel_flag_val, Unit)
-ML_bc6 (ml_gtk_widget_add_accelerator)
-ML_4 (gtk_widget_remove_accelerator, GtkWidget_val, GtkAccelGroup_val,
-      Char_val, OptFlags_GdkModifier_val, Unit)
-ML_1 (gtk_widget_lock_accelerators, GtkWidget_val, Unit)
-ML_1 (gtk_widget_unlock_accelerators, GtkWidget_val, Unit)
-ML_1 (gtk_widget_accelerators_locked, GtkWidget_val, Val_bool)
-
-ML_1 (GTK_WIDGET_VISIBLE, GtkWidget_val, Val_bool)
-ML_1 (GTK_WIDGET_HAS_FOCUS, GtkWidget_val, Val_bool)
-
-Make_Extractor (GtkWidget, GtkWidget_val, window, Val_GdkWindow)
-Make_Extractor (gtk_widget, GtkWidget_val, parent, Val_GtkWidget)
-static value Val_GtkAllocation (GtkAllocation allocation)
-{
-    value ret = alloc_small (4, 0);
-    Field(ret,0) = Val_int(allocation.x);
-    Field(ret,1) = Val_int(allocation.y);
-    Field(ret,2) = Val_int(allocation.width);
-    Field(ret,3) = Val_int(allocation.height);
-    return ret;
-}
-Make_Extractor (gtk_widget, GtkWidget_val, allocation, Val_GtkAllocation)
-/*
-#define GtkAllocation_val(val) ((GtkAllocation*)Pointer_val(val))
-Make_Extractor (gtk_allocation, GtkAllocation_val, x, Val_int)
-Make_Extractor (gtk_allocation, GtkAllocation_val, y, Val_int)
-Make_Extractor (gtk_allocation, GtkAllocation_val, width, Val_int)
-Make_Extractor (gtk_allocation, GtkAllocation_val, height, Val_int)
-*/
-
-ML_2 (gtk_widget_set_app_paintable, GtkWidget_val, Bool_val, Unit)
-
-ML_2 (gtk_widget_set_visual, GtkWidget_val, GdkVisual_val, Unit)
-ML_2 (gtk_widget_set_colormap, GtkWidget_val, GdkColormap_val, Unit)
-ML_1 (gtk_widget_set_default_visual, GdkVisual_val, Unit)
-ML_1 (gtk_widget_set_default_colormap, GdkColormap_val, Unit)
-ML_0 (gtk_widget_get_default_visual, Val_GdkVisual)
-ML_0 (gtk_widget_get_default_colormap, Val_GdkColormap)
-ML_1 (gtk_widget_push_visual, GdkVisual_val, Unit)
-ML_1 (gtk_widget_push_colormap, GdkColormap_val, Unit)
-ML_0 (gtk_widget_pop_visual, Unit)
-ML_0 (gtk_widget_pop_colormap, Unit)
-
-/* gtkdnd.h */
-
-value ml_gtk_drag_dest_set (value w, value f, value t, value a)
-{
-  GtkTargetEntry *targets = (GtkTargetEntry *)Val_unit;
-  int n_targets, i;
-  
-  CAMLparam4 (w,f,t,a);
-  n_targets = Wosize_val(t);
-  if (n_targets)
-      targets = (GtkTargetEntry *)
-         alloc (Wosize_asize(n_targets * sizeof(GtkTargetEntry)),
-                Abstract_tag);
-  for (i=0; i<n_targets; i++) {
-    targets[i].target = String_val(Field(Field(t, i), 0));
-    targets[i].flags = Flags_Target_flags_val(Field(Field(t, i), 1));
-    targets[i].info = Int_val(Field(Field(t, i), 2));
-  }
-  gtk_drag_dest_set (GtkWidget_val(w), Flags_Dest_defaults_val(f),
-                    targets, n_targets, Flags_GdkDragAction_val(a));
-  CAMLreturn(Val_unit);
-}
-ML_1 (gtk_drag_dest_unset, GtkWidget_val, Unit)
-ML_4 (gtk_drag_finish, GdkDragContext_val, Bool_val, Bool_val, Int_val, Unit)
-ML_4 (gtk_drag_get_data, GtkWidget_val, GdkDragContext_val, Int_val, Int_val, Unit)
-ML_1 (gtk_drag_get_source_widget, GdkDragContext_val, Val_GtkWidget)
-ML_1 (gtk_drag_highlight, GtkWidget_val, Unit)
-ML_1 (gtk_drag_unhighlight, GtkWidget_val, Unit)
-ML_4 (gtk_drag_set_icon_widget, GdkDragContext_val, GtkWidget_val,
-      Int_val, Int_val, Unit)
-ML_6 (gtk_drag_set_icon_pixmap, GdkDragContext_val, GdkColormap_val,
-      GdkPixmap_val, Option_val(arg4, GdkBitmap_val, NULL) Ignore,
-      Int_val, Int_val, Unit)
-ML_bc6 (ml_gtk_drag_set_icon_pixmap)
-ML_1 (gtk_drag_set_icon_default, GdkDragContext_val, Unit)
-ML_5 (gtk_drag_set_default_icon, GdkColormap_val,
-      GdkPixmap_val, Option_val(arg3, GdkBitmap_val, NULL) Ignore,
-      Int_val, Int_val, Unit)
-value ml_gtk_drag_source_set (value w, value m, value t, value a)
-{
-  GtkTargetEntry *targets = (GtkTargetEntry *)Val_unit;
-  int n_targets, i;
-  CAMLparam4 (w,m,t,a);
-  
-  n_targets = Wosize_val(t);
-  if (n_targets)
-      targets = (GtkTargetEntry *)
-         alloc (Wosize_asize(n_targets * sizeof(GtkTargetEntry)),
-                Abstract_tag);
-  for (i=0; i<n_targets; i++) {
-    targets[i].target = String_val(Field(Field(t, i), 0));
-    targets[i].flags = Flags_Target_flags_val(Field(Field(t, i), 1));
-    targets[i].info = Int_val(Field(Field(t, i), 2));
-  }
-  gtk_drag_source_set (GtkWidget_val(w), OptFlags_GdkModifier_val(m),
-                      targets, n_targets, Flags_GdkDragAction_val(a));
-  CAMLreturn(Val_unit);
-}
-ML_4 (gtk_drag_source_set_icon, GtkWidget_val, GdkColormap_val,
-      GdkPixmap_val, Option_val(arg4, GdkBitmap_val, NULL) Ignore, Unit)
-ML_1 (gtk_drag_source_unset, GtkWidget_val, Unit)
-
-/* gtkwidget.h / gtkselection.h */
-
-#define GtkSelectionData_val(val) ((GtkSelectionData *)Pointer_val(val))
-
-Make_Extractor (gtk_selection_data, GtkSelectionData_val, selection, Val_int)
-Make_Extractor (gtk_selection_data, GtkSelectionData_val, target, Val_int)
-Make_Extractor (gtk_selection_data, GtkSelectionData_val, type, Val_int)
-Make_Extractor (gtk_selection_data, GtkSelectionData_val, format, Val_int)
-value ml_gtk_selection_data_get_data (value val)
-{
-    value ret;
-    GtkSelectionData *data = GtkSelectionData_val(val);
-
-    if (data->length < 0) ml_raise_null_pointer();
-    ret = alloc_string (data->length);
-    if (data->length) memcpy ((void*)ret, data->data, data->length);
-    return ret;
-}
-
-ML_4 (gtk_selection_data_set, GtkSelectionData_val, Int_val, Int_val,
-      Insert((guchar*)String_option_val(arg4))
-      Option_val(arg4, string_length, -1) Ignore,
-      Unit)
-
-/* gtkcontainer.h */
-
-#define GtkContainer_val(val) check_cast(GTK_CONTAINER,val)
-ML_2 (gtk_container_set_border_width, GtkContainer_val, Int_val, Unit)
-ML_2 (gtk_container_set_resize_mode, GtkContainer_val, Resize_mode_val, Unit)
-ML_2 (gtk_container_add, GtkContainer_val, GtkWidget_val, Unit)
-ML_2 (gtk_container_remove, GtkContainer_val, GtkWidget_val, Unit)
-static void ml_gtk_simple_callback (GtkWidget *w, gpointer data)
-{
-    value val, *clos = (value*)data;
-    val = Val_GtkWidget(w);
-    callback (*clos, val);
-}
-value ml_gtk_container_foreach (value w, value clos)
-{
-    CAMLparam1(clos);
-    gtk_container_foreach (GtkContainer_val(w), ml_gtk_simple_callback,
-                          &clos);
-    CAMLreturn(Val_unit);
-}
-ML_1 (gtk_container_register_toplevel, GtkContainer_val, Unit)
-ML_1 (gtk_container_unregister_toplevel, GtkContainer_val, Unit)
-ML_2 (gtk_container_focus, GtkContainer_val, Direction_type_val, Val_bool)
-ML_2 (gtk_container_set_focus_child, GtkContainer_val, GtkWidget_val, Unit)
-ML_2 (gtk_container_set_focus_vadjustment, GtkContainer_val,
-      GtkAdjustment_val, Unit)
-ML_2 (gtk_container_set_focus_hadjustment, GtkContainer_val,
-      GtkAdjustment_val, Unit)
-
-/* gtkbin.h */
-
-/* gtkalignment.h */
-
-#define GtkAlignment_val(val) check_cast(GTK_ALIGNMENT,val)
-ML_4 (gtk_alignment_new, Float_val, Float_val, Float_val, Float_val,
-      Val_GtkWidget_sink)
-value ml_gtk_alignment_set (value x, value y,
-                          value xscale, value yscale, value val)
-{
-    GtkAlignment *alignment = GtkAlignment_val(val);
-    gtk_alignment_set (alignment,
-                      Option_val(x, Float_val, alignment->xalign),
-                      Option_val(y, Float_val, alignment->yalign),
-                      Option_val(xscale, Float_val, alignment->xscale),
-                      Option_val(yscale, Float_val, alignment->xscale));
-    return Val_unit;
-}
-
-/* gtkeventbox.h */
-
-ML_0 (gtk_event_box_new, Val_GtkWidget_sink)
-
-/* gtkframe.h */
-
-#define GtkFrame_val(val) check_cast(GTK_FRAME,val)
-ML_1 (gtk_frame_new, Optstring_val, Val_GtkWidget_sink)
-ML_2 (gtk_frame_set_label, GtkFrame_val, Optstring_val, Unit)
-ML_3 (gtk_frame_set_label_align, GtkFrame_val, Float_val, Float_val, Unit)
-ML_2 (gtk_frame_set_shadow_type, GtkFrame_val, Shadow_type_val, Unit)
-Make_Extractor (gtk_frame_get, GtkFrame_val, label_xalign, copy_double)
-Make_Extractor (gtk_frame_get, GtkFrame_val, label_yalign, copy_double)
-
-/* gtkaspectframe.h */
-
-#define GtkAspectFrame_val(val) check_cast(GTK_ASPECT_FRAME,val)
-ML_5 (gtk_aspect_frame_new, Optstring_val,
-      Float_val, Float_val, Float_val, Bool_val, Val_GtkWidget_sink)
-ML_5 (gtk_aspect_frame_set, GtkAspectFrame_val, Float_val, Float_val,
-      Float_val, Bool_val, Unit)
-Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, xalign, copy_double)
-Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, yalign, copy_double)
-Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, ratio, copy_double)
-Make_Extractor (gtk_aspect_frame_get, GtkAspectFrame_val, obey_child, Val_bool)
-
-/* gtkhandlebox.h */
-
-#define GtkHandleBox_val(val) check_cast(GTK_HANDLE_BOX,val)
-ML_0 (gtk_handle_box_new, Val_GtkWidget_sink)
-ML_2 (gtk_handle_box_set_shadow_type, GtkHandleBox_val, Shadow_type_val, Unit)
-ML_2 (gtk_handle_box_set_handle_position, GtkHandleBox_val, Position_val, Unit)
-ML_2 (gtk_handle_box_set_snap_edge, GtkHandleBox_val, Position_val, Unit)
-
-/* gtkinvisible.h */
-/* private class
-ML_0 (gtk_invisible_new, Val_GtkWidget_sink)
-*/
-
-/* gtkitem.h */
-
-#define GtkItem_val(val) check_cast(GTK_ITEM,val)
-ML_1 (gtk_item_select, GtkItem_val, Unit)
-ML_1 (gtk_item_deselect, GtkItem_val, Unit)
-ML_1 (gtk_item_toggle, GtkItem_val, Unit)
-
-/* gtklistitem.h */
-
-ML_0 (gtk_list_item_new, Val_GtkWidget_sink)
-ML_1 (gtk_list_item_new_with_label, String_val, Val_GtkWidget_sink)
-
-/* gtkmenuitem.h */
-
-#define GtkMenuItem_val(val) check_cast(GTK_MENU_ITEM,val)
-ML_0 (gtk_menu_item_new, Val_GtkWidget_sink)
-ML_0 (gtk_tearoff_menu_item_new, Val_GtkWidget_sink)
-ML_1 (gtk_menu_item_new_with_label, String_val, Val_GtkWidget_sink)
-ML_2 (gtk_menu_item_set_submenu, GtkMenuItem_val, GtkWidget_val, Unit)
-ML_1 (gtk_menu_item_remove_submenu, GtkMenuItem_val, Unit)
-ML_2 (gtk_menu_item_set_placement, GtkMenuItem_val,
-      Submenu_placement_val, Unit)
-ML_3 (gtk_menu_item_configure, GtkMenuItem_val, Bool_val, Bool_val, Unit)
-ML_1 (gtk_menu_item_activate, GtkMenuItem_val, Unit)
-ML_1 (gtk_menu_item_right_justify, GtkMenuItem_val, Unit)
-
-/* gtkcheckmenuitem.h */
-
-#define GtkCheckMenuItem_val(val) check_cast(GTK_CHECK_MENU_ITEM,val)
-ML_0 (gtk_check_menu_item_new, Val_GtkWidget_sink)
-ML_1 (gtk_check_menu_item_new_with_label, String_val, Val_GtkWidget_sink)
-ML_2 (gtk_check_menu_item_set_active, GtkCheckMenuItem_val, Bool_val, Unit)
-ML_2 (gtk_check_menu_item_set_show_toggle, GtkCheckMenuItem_val,
-      Bool_val, Unit)
-ML_1 (gtk_check_menu_item_toggled, GtkCheckMenuItem_val, Unit)
-Make_Extractor (gtk_check_menu_item_get, GtkCheckMenuItem_val,
-               active, Val_bool)
-
-/* gtkradiomenuitem.h */
-
-#define GtkRadioMenuItem_val(val) check_cast(GTK_RADIO_MENU_ITEM,val)
-static GSList* item_group_val(value val)
-{
-    return (val == Val_unit ? NULL :
-            gtk_radio_menu_item_group(GtkRadioMenuItem_val(Field(val,0))));
-}
-ML_1 (gtk_radio_menu_item_new, item_group_val, Val_GtkWidget_sink)
-ML_2 (gtk_radio_menu_item_new_with_label, item_group_val,
-      String_val, Val_GtkWidget_sink)
-ML_2 (gtk_radio_menu_item_set_group, GtkRadioMenuItem_val,
-      item_group_val, Unit)
-
-/* gtktreeitem.h */
-
-#define GtkTreeItem_val(val) check_cast(GTK_TREE_ITEM,val)
-ML_0 (gtk_tree_item_new, Val_GtkWidget_sink)
-ML_1 (gtk_tree_item_new_with_label, String_val, Val_GtkWidget_sink)
-ML_2 (gtk_tree_item_set_subtree, GtkTreeItem_val, GtkWidget_val, Unit)
-ML_1 (gtk_tree_item_remove_subtree, GtkTreeItem_val, Unit)
-ML_1 (gtk_tree_item_expand, GtkTreeItem_val, Unit)
-ML_1 (gtk_tree_item_collapse, GtkTreeItem_val, Unit)
-ML_1 (GTK_TREE_ITEM_SUBTREE, GtkTreeItem_val, Val_GtkWidget)
-
-/* gtkviewport.h */
-
-#define GtkViewport_val(val) check_cast(GTK_VIEWPORT,val)
-ML_2 (gtk_viewport_new, GtkAdjustment_val, GtkAdjustment_val,
-      Val_GtkWidget_sink)
-ML_1 (gtk_viewport_get_hadjustment, GtkViewport_val, Val_GtkWidget_sink)
-ML_1 (gtk_viewport_get_vadjustment, GtkViewport_val, Val_GtkWidget)
-ML_2 (gtk_viewport_set_hadjustment, GtkViewport_val, GtkAdjustment_val, Unit)
-ML_2 (gtk_viewport_set_vadjustment, GtkViewport_val, GtkAdjustment_val, Unit)
-ML_2 (gtk_viewport_set_shadow_type, GtkViewport_val, Shadow_type_val, Unit)
-
-/* gtkdialog.h */
-
-static void window_unref (GtkObject *w)
-{
-    /* If the window exists and is still not visible, then unreference twice.
-       This should be enough to destroy it. */
-    if (!GTK_OBJECT_DESTROYED(w) && !GTK_WIDGET_VISIBLE(w))
-       gtk_object_unref (w);
-    gtk_object_unref (w);
-}
-Make_Val_final_pointer_ext (GtkObject, _window, gtk_object_ref, window_unref,
-                            20)
-#define Val_GtkWidget_window(w) Val_GtkObject_window((GtkObject*)w)
-
-#define GtkDialog_val(val) check_cast(GTK_DIALOG,val)
-ML_0 (gtk_dialog_new, Val_GtkWidget_window)
-Make_Extractor (GtkDialog, GtkDialog_val, action_area, Val_GtkWidget)
-Make_Extractor (GtkDialog, GtkDialog_val, vbox, Val_GtkWidget)
-
-/* gtkinputdialog.h */
-
-ML_0 (gtk_input_dialog_new, Val_GtkWidget_window)
-
-/* gtkfileselection.h */
-
-#define GtkFileSelection_val(val) check_cast(GTK_FILE_SELECTION,val)
-ML_1 (gtk_file_selection_new, String_val, Val_GtkWidget_window)
-ML_2 (gtk_file_selection_set_filename, GtkFileSelection_val, String_val, Unit)
-ML_1 (gtk_file_selection_get_filename, GtkFileSelection_val, Val_string)
-ML_1 (gtk_file_selection_show_fileop_buttons, GtkFileSelection_val, Unit)
-ML_1 (gtk_file_selection_hide_fileop_buttons, GtkFileSelection_val, Unit)
-Make_Extractor (gtk_file_selection_get, GtkFileSelection_val, ok_button,
-               Val_GtkWidget)
-Make_Extractor (gtk_file_selection_get, GtkFileSelection_val, cancel_button,
-               Val_GtkWidget)
-Make_Extractor (gtk_file_selection_get, GtkFileSelection_val, help_button,
-               Val_GtkWidget)
-
-/* gtkwindow.h */
-
-#define GtkWindow_val(val) check_cast(GTK_WINDOW,val)
-ML_1 (gtk_window_new, Window_type_val, Val_GtkWidget_window)
-ML_2 (gtk_window_set_title, GtkWindow_val, String_val, Unit)
-ML_3 (gtk_window_set_wmclass, GtkWindow_val, String_val, String_val, Unit)
-Make_Extractor (gtk_window_get, GtkWindow_val, wmclass_name, Val_optstring)
-Make_Extractor (gtk_window_get, GtkWindow_val, wmclass_class, Val_optstring)
-ML_2 (gtk_window_set_focus, GtkWindow_val, GtkWidget_val, Unit)
-ML_2 (gtk_window_set_default, GtkWindow_val, GtkWidget_val, Unit)
-ML_4 (gtk_window_set_policy, GtkWindow_val, Bool_val, Bool_val, Bool_val, Unit)
-Make_Extractor (gtk_window_get, GtkWindow_val, allow_shrink, Val_bool)
-Make_Extractor (gtk_window_get, GtkWindow_val, allow_grow, Val_bool)
-Make_Extractor (gtk_window_get, GtkWindow_val, auto_shrink, Val_bool)
-ML_2 (gtk_window_add_accel_group, GtkWindow_val,
-      GtkAccelGroup_val, Unit)
-ML_2 (gtk_window_remove_accel_group, GtkWindow_val,
-      GtkAccelGroup_val, Unit)
-ML_1 (gtk_window_activate_focus, GtkWindow_val, Val_bool)
-ML_1 (gtk_window_activate_default, GtkWindow_val, Val_bool)
-ML_2 (gtk_window_set_modal, GtkWindow_val, Bool_val, Unit)
-ML_3 (gtk_window_set_default_size, GtkWindow_val, Int_val, Int_val, Unit)
-ML_2 (gtk_window_set_position, GtkWindow_val, Window_position_val, Unit)
-ML_2 (gtk_window_set_transient_for, GtkWindow_val, GtkWindow_val, Unit)
-
-/* gtkcolorsel.h */
-
-#define GtkColorSelection_val(val) check_cast(GTK_COLOR_SELECTION,val)
-#define GtkColorSelectionDialog_val(val) check_cast(GTK_COLOR_SELECTION_DIALOG,val)
-ML_0 (gtk_color_selection_new, Val_GtkWidget_sink)
-ML_2 (gtk_color_selection_set_update_policy, GtkColorSelection_val,
-      Update_type_val, Unit)
-ML_2 (gtk_color_selection_set_opacity, GtkColorSelection_val,
-      Bool_val, Unit)
-value ml_gtk_color_selection_set_color (value w, value red, value green,
-                                       value blue, value opacity)
-{
-    double color[4];
-    color[0] = Double_val(red);
-    color[1] = Double_val(green);
-    color[2] = Double_val(blue);
-    color[3] = Option_val(opacity,Double_val,0.0);
-    gtk_color_selection_set_color (GtkColorSelection_val(w), color);
-    return Val_unit;
-}
-value ml_gtk_color_selection_get_color (value w)
-{
-    value ret;
-    double color[4];
-    color[3] = 0.0;
-    gtk_color_selection_get_color (GtkColorSelection_val(w), color);
-    ret = alloc (4*Double_wosize, Double_array_tag);
-    Store_double_field (ret, 0, color[0]);
-    Store_double_field (ret, 1, color[1]);
-    Store_double_field (ret, 2, color[2]);
-    Store_double_field (ret, 3, color[3]);
-    return ret;
-}
-ML_1 (gtk_color_selection_dialog_new, String_val, Val_GtkWidget_window)
-Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, ok_button, Val_GtkWidget)
-Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, cancel_button, Val_GtkWidget)
-Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, help_button, Val_GtkWidget)
-Make_Extractor (gtk_color_selection_dialog, GtkColorSelectionDialog_val, colorsel, Val_GtkWidget)
-
-/* gtkfontsel.h */
-
-#define GtkFontSelection_val(val) \
-   check_cast(GTK_FONT_SELECTION,val)
-ML_0 (gtk_font_selection_new, Val_GtkWidget_sink)
-ML_1 (gtk_font_selection_get_font, GtkFontSelection_val,
-      Val_GdkFont)
-ML_1 (gtk_font_selection_get_font_name, GtkFontSelection_val,
-      copy_string_check)
-ML_2 (gtk_font_selection_set_font_name, GtkFontSelection_val,
-      String_val, Val_bool)
-ML_9 (gtk_font_selection_set_filter, GtkFontSelection_val,
-      Font_filter_type_val, Flags_Font_type_val,
-      (gchar**), (gchar**), (gchar**),
-      (gchar**), (gchar**), (gchar**), Unit)
-ML_bc9 (ml_gtk_font_selection_set_filter)
-ML_1 (gtk_font_selection_get_preview_text, GtkFontSelection_val,
-      copy_string)
-ML_2 (gtk_font_selection_set_preview_text, GtkFontSelection_val,
-      String_val, Unit)
-
-#define GtkFontSelectionDialog_val(val) \
-   check_cast(GTK_FONT_SELECTION_DIALOG,val)
-ML_1 (gtk_font_selection_dialog_new, String_option_val, Val_GtkWidget_window)
-/*
-ML_1 (gtk_font_selection_dialog_get_font, GtkFontSelectionDialog_val,
-      Val_GdkFont)
-ML_1 (gtk_font_selection_dialog_get_font_name, GtkFontSelectionDialog_val,
-      copy_string_check)
-ML_2 (gtk_font_selection_dialog_set_font_name, GtkFontSelectionDialog_val,
-      String_val, Val_bool)
-ML_9 (gtk_font_selection_dialog_set_filter, GtkFontSelectionDialog_val,
-      Font_filter_type_val, Flags_Font_type_val,
-      (gchar**), (gchar**), (gchar**),
-      (gchar**), (gchar**), (gchar**), Unit)
-ML_bc9 (ml_gtk_font_selection_dialog_set_filter)
-ML_1 (gtk_font_selection_dialog_get_preview_text, GtkFontSelectionDialog_val,
-      copy_string)
-ML_2 (gtk_font_selection_dialog_set_preview_text, GtkFontSelectionDialog_val,
-      String_val, Unit)
-*/
-Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val,
-                fontsel, Val_GtkWidget)
-Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val,
-               ok_button, Val_GtkWidget)
-Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val,
-               apply_button, Val_GtkWidget)
-Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val,
-               cancel_button, Val_GtkWidget)
-
-/* gtkplug.h */
-
-ML_1 (gtk_plug_new, XID_val, Val_GtkWidget_window)
-
-/* gtkbox.h */
-
-#define GtkBox_val(val) check_cast(GTK_BOX,val)
-ML_5 (gtk_box_pack_start, GtkBox_val, GtkWidget_val, Bool_val, Bool_val,
-      Int_val, Unit)
-ML_5 (gtk_box_pack_end, GtkBox_val, GtkWidget_val, Bool_val, Bool_val,
-      Int_val, Unit)
-ML_2 (gtk_box_set_homogeneous, GtkBox_val, Bool_val, Unit)
-ML_2 (gtk_box_set_spacing, GtkBox_val, Int_val, Unit)
-ML_3 (gtk_box_reorder_child, GtkBox_val, GtkWidget_val, Int_val, Unit)
-value ml_gtk_box_query_child_packing (value box, value child)
-{
-    int expand, fill;
-    unsigned int padding;
-    GtkPackType pack_type;
-    value ret;
-    gtk_box_query_child_packing (GtkBox_val(box), GtkWidget_val(child),
-                                &expand, &fill, &padding, &pack_type);
-    ret = alloc_small(4,0);
-    Field(ret,0) = Val_bool(expand);
-    Field(ret,1) = Val_bool(fill);
-    Field(ret,2) = Val_int(padding);
-    Field(ret,3) = Val_pack_type(pack_type);
-    return ret;
-}
-value ml_gtk_box_set_child_packing (value vbox, value vchild, value vexpand,
-                                   value vfill, value vpadding, value vpack)
-{
-    GtkBox *box = GtkBox_val(vbox);
-    GtkWidget *child = GtkWidget_val(vchild);
-    int expand, fill;
-    unsigned int padding;
-    GtkPackType pack;
-    gtk_box_query_child_packing (box, child, &expand, &fill, &padding, &pack);
-    gtk_box_set_child_packing (box, child,
-                              Option_val(vexpand, Bool_val, expand),
-                              Option_val(vfill, Bool_val, fill),
-                              Option_val(vpadding, Int_val, padding),
-                              Option_val(vpack, Pack_type_val, pack));
-    return Val_unit;
-}
-ML_bc6 (ml_gtk_box_set_child_packing)
-
-ML_2 (gtk_hbox_new, Bool_val, Int_val, Val_GtkWidget_sink)
-ML_2 (gtk_vbox_new, Bool_val, Int_val, Val_GtkWidget_sink)
-
-/* gtkbbox.h */
-    
-#define GtkButtonBox_val(val) check_cast(GTK_BUTTON_BOX,val)
-Make_Extractor (gtk_button_box_get, GtkButtonBox_val, spacing, Val_int)
-Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_min_width, Val_int)
-Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_min_height,
-               Val_int)
-Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_ipad_x, Val_int)
-Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_ipad_y, Val_int)
-Make_Extractor (gtk_button_box_get, GtkButtonBox_val, layout_style,
-               Val_button_box_style)
-ML_2 (gtk_button_box_set_spacing, GtkButtonBox_val, Int_val, Unit)
-ML_3 (gtk_button_box_set_child_size, GtkButtonBox_val,
-      Int_val, Int_val, Unit)
-ML_3 (gtk_button_box_set_child_ipadding, GtkButtonBox_val,
-      Int_val, Int_val, Unit)
-ML_2 (gtk_button_box_set_layout, GtkButtonBox_val, Button_box_style_val, Unit)
-ML_2 (gtk_button_box_set_child_size_default, Int_val, Int_val, Unit)
-ML_2 (gtk_button_box_set_child_ipadding_default, Int_val, Int_val, Unit)
-
-ML_0 (gtk_hbutton_box_new, Val_GtkWidget_sink)
-ML_0 (gtk_vbutton_box_new, Val_GtkWidget_sink)
-
-/* gtklist.h */
-
-#define GtkList_val(val) check_cast(GTK_LIST,val)
-ML_0 (gtk_list_new, Val_GtkWidget_sink)
-value ml_gtk_list_insert_item (value list, value item, value pos)
-{
-    GList *tmp_list = g_list_alloc ();
-    tmp_list->data = GtkWidget_val(item);
-    tmp_list->next = NULL;
-    tmp_list->prev = NULL;
-    gtk_list_insert_items (GtkList_val(list), tmp_list, Int_val(pos));
-    return Val_unit;
-}
-ML_3 (gtk_list_clear_items, GtkList_val, Int_val, Int_val, Unit)
-ML_2 (gtk_list_select_item, GtkList_val, Int_val, Unit)
-ML_2 (gtk_list_unselect_item, GtkList_val, Int_val, Unit)
-ML_2 (gtk_list_select_child, GtkList_val, GtkWidget_val, Unit)
-ML_2 (gtk_list_unselect_child, GtkList_val, GtkWidget_val, Unit)
-ML_2 (gtk_list_child_position, GtkList_val, GtkWidget_val, Val_int)
-ML_2 (gtk_list_set_selection_mode, GtkList_val, Selection_mode_val, Unit)
-
-/* gtkcombo.h */
-
-#define GtkCombo_val(val) check_cast(GTK_COMBO,val)
-ML_0 (gtk_combo_new, Val_GtkWidget_sink)
-ML_3 (gtk_combo_set_value_in_list, GtkCombo_val,
-      Option_val(arg2, Bool_val, GtkCombo_val(arg1)->value_in_list) Ignore,
-      Option_val(arg3, Bool_val, GtkCombo_val(arg1)->ok_if_empty) Ignore,
-      Unit)
-ML_2 (gtk_combo_set_use_arrows, GtkCombo_val, Bool_val, Unit)
-ML_2 (gtk_combo_set_use_arrows_always, GtkCombo_val, Bool_val, Unit)
-ML_2 (gtk_combo_set_case_sensitive, GtkCombo_val, Bool_val, Unit)
-ML_3 (gtk_combo_set_item_string, GtkCombo_val, GtkItem_val, String_val, Unit)
-ML_1 (gtk_combo_disable_activate, GtkCombo_val, Unit)
-Make_Extractor (gtk_combo, GtkCombo_val, entry, Val_GtkWidget)
-Make_Extractor (gtk_combo, GtkCombo_val, list, Val_GtkWidget)
-
-/* gtkstatusbar.h */
-
-#define GtkStatusbar_val(val) check_cast(GTK_STATUSBAR,val)
-ML_0 (gtk_statusbar_new, Val_GtkWidget_sink)
-ML_2 (gtk_statusbar_get_context_id, GtkStatusbar_val, String_val, Val_int)
-ML_3 (gtk_statusbar_push, GtkStatusbar_val, Int_val, String_val, Val_int)
-ML_2 (gtk_statusbar_pop, GtkStatusbar_val, Int_val, Unit)
-ML_3 (gtk_statusbar_remove, GtkStatusbar_val, Int_val, Int_val, Unit)
-
-/* gtkgamma.h */
-
-#define GtkGammaCurve_val(val) check_cast(GTK_GAMMA_CURVE,val)
-ML_0 (gtk_gamma_curve_new, Val_GtkWidget_sink)
-Make_Extractor (gtk_gamma_curve_get, GtkGammaCurve_val, gamma, copy_double)
-
-/* gtkbutton.h */
-
-#define GtkButton_val(val) check_cast(GTK_BUTTON,val)
-ML_0 (gtk_button_new, Val_GtkWidget_sink)
-ML_1 (gtk_button_new_with_label, String_val, Val_GtkWidget_sink)
-ML_1 (gtk_button_pressed, GtkButton_val, Unit)
-ML_1 (gtk_button_released, GtkButton_val, Unit)
-ML_1 (gtk_button_clicked, GtkButton_val, Unit)
-ML_1 (gtk_button_enter, GtkButton_val, Unit)
-ML_1 (gtk_button_leave, GtkButton_val, Unit)
-
-/* gtkoptionmenu.h */
-
-#define GtkOptionMenu_val(val) check_cast(GTK_OPTION_MENU,val)
-ML_0 (gtk_option_menu_new, Val_GtkWidget_sink)
-ML_1 (gtk_option_menu_get_menu, GtkOptionMenu_val, Val_GtkWidget_sink)
-ML_2 (gtk_option_menu_set_menu, GtkOptionMenu_val, GtkWidget_val, Unit)
-ML_1 (gtk_option_menu_remove_menu, GtkOptionMenu_val, Unit)
-ML_2 (gtk_option_menu_set_history, GtkOptionMenu_val, Int_val, Unit)
-
-/* gtktogglebutton.h */
-
-#define GtkToggleButton_val(val) check_cast(GTK_TOGGLE_BUTTON,val)
-ML_0 (gtk_toggle_button_new, Val_GtkWidget_sink)
-ML_1 (gtk_toggle_button_new_with_label, String_val, Val_GtkWidget_sink)
-ML_2 (gtk_toggle_button_set_mode, GtkToggleButton_val, Bool_val, Unit)
-ML_2 (gtk_toggle_button_set_active, GtkToggleButton_val, Bool_val, Unit)
-ML_1 (gtk_toggle_button_toggled, GtkToggleButton_val, Unit)
-Make_Extractor (gtk_toggle_button_get, GtkToggleButton_val, active, Val_bool)
-
-/* gtkcheckbutton.h */
-
-#define GtkCheckButton_val(val) check_cast(GTK_CHECK_BUTTON,val)
-ML_0 (gtk_check_button_new, Val_GtkWidget_sink)
-ML_1 (gtk_check_button_new_with_label, String_val, Val_GtkWidget_sink)
-
-/* gtkradiobutton.h */
-
-#define GtkRadioButton_val(val) check_cast(GTK_RADIO_BUTTON,val)
-static GSList* button_group_val(value val)
-{
-    return (val == Val_unit ? NULL :
-            gtk_radio_button_group(GtkRadioButton_val(Field(val,0))));
-}
-ML_1 (gtk_radio_button_new, button_group_val,
-      Val_GtkWidget_sink)
-ML_2 (gtk_radio_button_new_with_label, button_group_val,
-      String_val, Val_GtkWidget_sink)
-ML_2 (gtk_radio_button_set_group, GtkRadioButton_val, button_group_val, Unit)
-
-/* gtkclist.h */
-
-#define GtkCList_val(val) check_cast(GTK_CLIST,val)
-ML_1 (gtk_clist_new, Int_val, Val_GtkWidget_sink)
-ML_1 (gtk_clist_new_with_titles, Insert(Wosize_val(arg1)) (char **),
-      Val_GtkWidget_sink)
-Make_Extractor (gtk_clist_get, GtkCList_val, rows, Val_int)
-Make_Extractor (gtk_clist_get, GtkCList_val, columns, Val_int)
-Make_Extractor (gtk_clist_get, GtkCList_val, focus_row, Val_int)
-ML_2 (gtk_clist_set_hadjustment, GtkCList_val, GtkAdjustment_val, Unit)
-ML_2 (gtk_clist_set_vadjustment, GtkCList_val, GtkAdjustment_val, Unit)
-ML_1 (gtk_clist_get_hadjustment, GtkCList_val, Val_GtkAny)
-ML_1 (gtk_clist_get_vadjustment, GtkCList_val, Val_GtkAny)
-ML_2 (gtk_clist_set_shadow_type, GtkCList_val, Shadow_type_val, Unit)
-ML_2 (gtk_clist_set_selection_mode, GtkCList_val, Selection_mode_val, Unit)
-ML_2 (gtk_clist_set_reorderable, GtkCList_val, Bool_val, Unit)
-ML_2 (gtk_clist_set_use_drag_icons, GtkCList_val, Bool_val, Unit)
-ML_3 (gtk_clist_set_button_actions, GtkCList_val, Int_val,
-      (guint8)Flags_Button_action_val, Unit)
-ML_1 (gtk_clist_freeze, GtkCList_val, Unit)
-ML_1 (gtk_clist_thaw, GtkCList_val, Unit)
-ML_1 (gtk_clist_column_titles_show, GtkCList_val, Unit)
-ML_1 (gtk_clist_column_titles_hide, GtkCList_val, Unit)
-ML_2 (gtk_clist_column_title_active, GtkCList_val, Int_val, Unit)
-ML_2 (gtk_clist_column_title_passive, GtkCList_val, Int_val, Unit)
-ML_1 (gtk_clist_column_titles_active, GtkCList_val, Unit)
-ML_1 (gtk_clist_column_titles_passive, GtkCList_val, Unit)
-ML_3 (gtk_clist_set_column_title, GtkCList_val, Int_val, String_val, Unit)
-ML_2 (gtk_clist_get_column_title, GtkCList_val, Int_val, Val_string)
-ML_3 (gtk_clist_set_column_widget, GtkCList_val, Int_val, GtkWidget_val, Unit)
-ML_2 (gtk_clist_get_column_widget, GtkCList_val, Int_val, Val_GtkWidget)
-ML_3 (gtk_clist_set_column_justification, GtkCList_val, Int_val,
-      Justification_val, Unit)
-ML_3 (gtk_clist_set_column_visibility, GtkCList_val, Int_val, Bool_val, Unit)
-ML_3 (gtk_clist_set_column_resizeable, GtkCList_val, Int_val, Bool_val, Unit)
-ML_3 (gtk_clist_set_column_auto_resize, GtkCList_val, Int_val, Bool_val, Unit)
-ML_1 (gtk_clist_columns_autosize, GtkCList_val, Unit)
-ML_2 (gtk_clist_optimal_column_width, GtkCList_val, Int_val, Val_int)
-ML_3 (gtk_clist_set_column_width, GtkCList_val, Int_val, Int_val, Unit)
-ML_3 (gtk_clist_set_column_min_width, GtkCList_val, Int_val, Int_val, Unit)
-ML_3 (gtk_clist_set_column_max_width, GtkCList_val, Int_val, Int_val, Unit)
-ML_2 (gtk_clist_set_row_height, GtkCList_val, Int_val, Unit)
-ML_5 (gtk_clist_moveto, GtkCList_val, Int_val, Int_val,
-      Double_val, Double_val, Unit)
-ML_2 (gtk_clist_row_is_visible, GtkCList_val, Int_val, Val_visibility)
-ML_3 (gtk_clist_get_cell_type, GtkCList_val, Int_val, Int_val, Val_cell_type)
-ML_4 (gtk_clist_set_text, GtkCList_val, Int_val, Int_val, Optstring_val, Unit)
-value ml_gtk_clist_get_text (value clist, value row, value column)
-{
-    char *text;
-    if (!gtk_clist_get_text (GtkCList_val(clist), Int_val(row),
-                            Int_val(column), &text))
-       invalid_argument ("Gtk.Clist.get_text");
-    return Val_optstring(text);
-}
-ML_5 (gtk_clist_set_pixmap, GtkCList_val, Int_val, Int_val, GdkPixmap_val,
-      GdkBitmap_val, Unit)
-value ml_gtk_clist_get_pixmap (value clist, value row, value column)
-{
-    CAMLparam0 ();
-    GdkPixmap *pixmap;
-    GdkBitmap *bitmap;
-    CAMLlocal2 (vpixmap,vbitmap);
-    value ret;
-
-    if (!gtk_clist_get_pixmap (GtkCList_val(clist), Int_val(row),
-                              Int_val(column), &pixmap, &bitmap))
-       invalid_argument ("Gtk.Clist.get_pixmap");
-    vpixmap = Val_option (pixmap, Val_GdkPixmap);
-    vbitmap = Val_option (bitmap, Val_GdkBitmap);
-
-    ret = alloc_small (2,0);
-    Field(ret,0) = vpixmap;
-    Field(ret,1) = vbitmap;
-    CAMLreturn(ret);
-}
-ML_7 (gtk_clist_set_pixtext, GtkCList_val, Int_val, Int_val, String_val,
-      (guint8)Long_val, GdkPixmap_val, GdkBitmap_val, Unit)
-ML_bc7 (ml_gtk_clist_set_pixtext)
-ML_3 (gtk_clist_set_foreground, GtkCList_val, Int_val, GdkColor_val, Unit)
-ML_3 (gtk_clist_set_background, GtkCList_val, Int_val, GdkColor_val, Unit)
-ML_3 (gtk_clist_get_cell_style, GtkCList_val, Int_val, Int_val, Val_GtkStyle)
-ML_4 (gtk_clist_set_cell_style, GtkCList_val, Int_val, Int_val, GtkStyle_val,
-      Unit)
-ML_2 (gtk_clist_get_row_style, GtkCList_val, Int_val, Val_GtkStyle)
-ML_3 (gtk_clist_set_row_style, GtkCList_val, Int_val, GtkStyle_val, Unit)
-ML_3 (gtk_clist_set_selectable, GtkCList_val, Int_val, Bool_val, Unit)
-ML_2 (gtk_clist_get_selectable, GtkCList_val, Int_val, Val_bool)
-ML_5 (gtk_clist_set_shift, GtkCList_val, Int_val, Int_val, Int_val, Int_val,
-      Unit)
-/* ML_2 (gtk_clist_append, GtkCList_val, (char **), Val_int) */
-ML_3 (gtk_clist_insert, GtkCList_val, Int_val, (char **), Val_int)
-ML_2 (gtk_clist_remove, GtkCList_val, Int_val, Unit)
-value ml_gtk_clist_set_row_data (value w, value row, value data)
-{
-     value *data_p = ml_gtk_root_new (data);
-     gtk_clist_set_row_data_full (GtkCList_val(w), Int_val(row),
-                                 data_p, ml_gtk_root_destroy);
-     return Val_unit;
-}
-ML_2 (gtk_clist_get_row_data, GtkCList_val, Int_val, *(value*)Check_null)
-ML_3 (gtk_clist_select_row, GtkCList_val, Int_val, Int_val, Unit)
-ML_3 (gtk_clist_unselect_row, GtkCList_val, Int_val, Int_val, Unit)
-ML_1 (gtk_clist_clear, GtkCList_val, Unit)
-value ml_gtk_clist_get_selection_info (value clist, value x, value y)
-{
-    int row, column;
-    value ret;
-    if (!gtk_clist_get_selection_info (GtkCList_val(clist), Int_val(x),
-                            Int_val(y), &row, &column))
-       invalid_argument ("Gtk.Clist.get_selection_info");
-    ret = alloc_small (2,0);
-    Field(ret,0) = row;
-    Field(ret,1) = column;
-    return ret;
-}
-ML_1 (gtk_clist_select_all, GtkCList_val, Unit)
-ML_1 (gtk_clist_unselect_all, GtkCList_val, Unit)
-ML_3 (gtk_clist_swap_rows, GtkCList_val, Int_val, Int_val, Unit)
-ML_3 (gtk_clist_row_move, GtkCList_val, Int_val, Int_val, Unit)
-ML_2 (gtk_clist_set_sort_column, GtkCList_val, Int_val, Unit)
-ML_2 (gtk_clist_set_sort_type, GtkCList_val, Sort_type_val, Unit)
-ML_1 (gtk_clist_sort, GtkCList_val, Unit)
-ML_2 (gtk_clist_set_auto_sort, GtkCList_val, Bool_val, Unit)
-
-/* gtkctree.h */
-#define GtkCTree_val(val) check_cast(GTK_CTREE,val)
-/* Beware: this definition axpects arg1 to be a GtkCTree */
-/*
-#define GtkCTreeNode_val(val) \
-     (gtk_ctree_find(GtkCTree_val(arg1),NULL,(GtkCTreeNode*)(val-1)) \
-     ? (GtkCTreeNode*)(val-1) : (ml_raise_gtk ("Bad GtkCTreeNode"), NULL))
-#define Val_GtkCTreeNode Val_addr
-ML_2 (gtk_ctree_new, Int_val, Int_val, Val_GtkWidget_sink)
-ML_3 (gtk_ctree_new_with_titles, Int_val, Int_val, (char **),
-      Val_GtkWidget_sink)
-ML_11 (gtk_ctree_insert_node, GtkCTree_val, GtkCTreeNode_val,
-       GtkCTreeNode_val, (char**), Int_val, GdkPixmap_val, GdkBitmap_val,
-       GdkPixmap_val, GdkBitmap_val, Bool_val, Bool_val,
-       Val_GtkCTreeNode)
-ML_2 (gtk_ctree_remove_node, GtkCTree_val, GtkCTreeNode_val, Unit)
-ML_2 (gtk_ctree_is_viewable, GtkCTree_val, GtkCTreeNode_val, Val_bool)
-*/
-
-/* gtkfixed.h */
-
-#define GtkFixed_val(val) check_cast(GTK_FIXED,val)
-ML_0 (gtk_fixed_new, Val_GtkWidget_sink)
-ML_4 (gtk_fixed_put, GtkFixed_val, GtkWidget_val, (gint16)Long_val, (gint16)Long_val, Unit)
-ML_4 (gtk_fixed_move, GtkFixed_val, GtkWidget_val, (gint16)Long_val, (gint16)Long_val, Unit)
-
-/* gtklayout.h */
-
-#define GtkLayout_val(val) check_cast(GTK_LAYOUT,val)
-ML_2 (gtk_layout_new, GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink)
-ML_4 (gtk_layout_put, GtkLayout_val, GtkWidget_val, Int_val, Int_val, Unit)
-ML_4 (gtk_layout_move, GtkLayout_val, GtkWidget_val, Int_val, Int_val, Unit)
-ML_3 (gtk_layout_set_size, GtkLayout_val, Int_val, Int_val, Unit)
-ML_1 (gtk_layout_get_hadjustment, GtkLayout_val, Val_GtkAny)
-ML_1 (gtk_layout_get_vadjustment, GtkLayout_val, Val_GtkAny)
-ML_2 (gtk_layout_set_hadjustment, GtkLayout_val, GtkAdjustment_val, Unit)
-ML_2 (gtk_layout_set_vadjustment, GtkLayout_val, GtkAdjustment_val, Unit)
-ML_1 (gtk_layout_freeze, GtkLayout_val, Unit)
-ML_1 (gtk_layout_thaw, GtkLayout_val, Unit)
-Make_Extractor (gtk_layout_get, GtkLayout_val, width, Val_int)
-Make_Extractor (gtk_layout_get, GtkLayout_val, height, Val_int)
-
-/* gtkmenushell.h */
-
-#define GtkMenuShell_val(val) check_cast(GTK_MENU_SHELL,val)
-ML_2 (gtk_menu_shell_append, GtkMenuShell_val, GtkWidget_val, Unit)
-ML_2 (gtk_menu_shell_prepend, GtkMenuShell_val, GtkWidget_val, Unit)
-ML_3 (gtk_menu_shell_insert, GtkMenuShell_val, GtkWidget_val, Int_val, Unit)
-ML_1 (gtk_menu_shell_deactivate, GtkMenuShell_val, Unit)
-
-/* gtkmenu.h */
-
-#define GtkMenu_val(val) check_cast(GTK_MENU,val)
-ML_0 (gtk_menu_new, Val_GtkWidget_sink)
-ML_5 (gtk_menu_popup, GtkMenu_val, GtkWidget_val, GtkWidget_val,
-      Insert(NULL) Insert(NULL) Int_val, Int_val, Unit)
-ML_1 (gtk_menu_popdown, GtkMenu_val, Unit)
-ML_1 (gtk_menu_get_active, GtkMenu_val, Val_GtkWidget)
-ML_2 (gtk_menu_set_active, GtkMenu_val, Int_val, Unit)
-ML_2 (gtk_menu_set_accel_group, GtkMenu_val, GtkAccelGroup_val, Unit)
-ML_1 (gtk_menu_get_accel_group, GtkMenu_val, Val_GtkAccelGroup)
-ML_1 (gtk_menu_ensure_uline_accel_group, GtkMenu_val, Val_GtkAccelGroup)
-value ml_gtk_menu_attach_to_widget (value menu, value widget)
-{
-    gtk_menu_attach_to_widget (GtkMenu_val(menu), GtkWidget_val(widget), NULL);
-    return Val_unit;
-}
-ML_1 (gtk_menu_get_attach_widget, GtkMenu_val, Val_GtkWidget)
-ML_1 (gtk_menu_detach, GtkMenu_val, Unit)
-
-/* gtkmenubar.h */
-
-#define GtkMenuBar_val(val) check_cast(GTK_MENU_BAR,val)
-ML_0 (gtk_menu_bar_new, Val_GtkWidget_sink)
-
-/* gtknotebook.h */
-
-#define GtkNotebook_val(val) check_cast(GTK_NOTEBOOK,val)
-ML_0 (gtk_notebook_new, Val_GtkWidget_sink)
-
-ML_5 (gtk_notebook_insert_page_menu, GtkNotebook_val, GtkWidget_val,
-      GtkWidget_val, GtkWidget_val, Int_val, Unit)
-ML_2 (gtk_notebook_remove_page, GtkNotebook_val, Int_val, Unit)
-
-ML_2 (gtk_notebook_set_tab_pos, GtkNotebook_val, Position_val, Unit)
-ML_2 (gtk_notebook_set_homogeneous_tabs, GtkNotebook_val, Bool_val, Unit)
-ML_2 (gtk_notebook_set_show_tabs, GtkNotebook_val, Bool_val, Unit)
-ML_2 (gtk_notebook_set_show_border, GtkNotebook_val, Bool_val, Unit)
-ML_2 (gtk_notebook_set_scrollable, GtkNotebook_val, Bool_val, Unit)
-ML_2 (gtk_notebook_set_tab_border, GtkNotebook_val, Int_val, Unit)
-ML_1 (gtk_notebook_popup_enable, GtkNotebook_val, Unit)
-ML_1 (gtk_notebook_popup_disable, GtkNotebook_val, Unit)
-
-ML_1 (gtk_notebook_get_current_page, GtkNotebook_val, Val_int)
-ML_2 (gtk_notebook_set_page, GtkNotebook_val, Int_val, Unit)
-ML_2 (gtk_notebook_get_nth_page, GtkNotebook_val, Int_val, Val_GtkWidget)
-ML_2 (gtk_notebook_page_num, GtkNotebook_val, GtkWidget_val, Val_int)
-ML_1 (gtk_notebook_next_page, GtkNotebook_val, Unit)
-ML_1 (gtk_notebook_prev_page, GtkNotebook_val, Unit)
-
-ML_2 (gtk_notebook_get_tab_label, GtkNotebook_val, GtkWidget_val,
-      Val_GtkWidget)
-ML_3 (gtk_notebook_set_tab_label, GtkNotebook_val, GtkWidget_val,
-      GtkWidget_val, Unit)
-ML_2 (gtk_notebook_get_menu_label, GtkNotebook_val, GtkWidget_val,
-      Val_GtkWidget)
-ML_3 (gtk_notebook_set_menu_label, GtkNotebook_val, GtkWidget_val,
-      GtkWidget_val, Unit)
-ML_3 (gtk_notebook_reorder_child, GtkNotebook_val, GtkWidget_val,
-      Int_val, Unit)
-
-
-/* gtkpacker.h */
-
-Make_OptFlags_val(Packer_options_val)
-
-#define GtkPacker_val(val) check_cast(GTK_PACKER,val)
-ML_0 (gtk_packer_new, Val_GtkWidget_sink)
-ML_10 (gtk_packer_add, GtkPacker_val, GtkWidget_val,
-       Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore,
-       Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore,
-       OptFlags_Packer_options_val,
-       Option_val(arg6,Int_val,GtkPacker_val(arg1)->default_border_width) Ignore,
-       Option_val(arg7,Int_val,GtkPacker_val(arg1)->default_pad_x) Ignore,
-       Option_val(arg8,Int_val,GtkPacker_val(arg1)->default_pad_y) Ignore,
-       Option_val(arg9,Int_val,GtkPacker_val(arg1)->default_i_pad_x) Ignore,
-       Option_val(arg10,Int_val,GtkPacker_val(arg1)->default_i_pad_y) Ignore,
-       Unit)
-ML_bc10 (ml_gtk_packer_add)
-ML_5 (gtk_packer_add_defaults, GtkPacker_val, GtkWidget_val,
-       Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore,
-       Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore,
-       OptFlags_Packer_options_val, Unit)
-ML_10 (gtk_packer_set_child_packing, GtkPacker_val, GtkWidget_val,
-       Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore,
-       Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore,
-       OptFlags_Packer_options_val,
-       Option_val(arg6,Int_val,GtkPacker_val(arg1)->default_border_width) Ignore,
-       Option_val(arg7,Int_val,GtkPacker_val(arg1)->default_pad_x) Ignore,
-       Option_val(arg8,Int_val,GtkPacker_val(arg1)->default_pad_y) Ignore,
-       Option_val(arg9,Int_val,GtkPacker_val(arg1)->default_i_pad_x) Ignore,
-       Option_val(arg10,Int_val,GtkPacker_val(arg1)->default_i_pad_y) Ignore,
-       Unit)
-ML_bc10 (ml_gtk_packer_set_child_packing)
-ML_3 (gtk_packer_reorder_child, GtkPacker_val, GtkWidget_val,
-      Int_val, Unit)
-ML_2 (gtk_packer_set_spacing, GtkPacker_val, Int_val, Unit)
-value ml_gtk_packer_set_defaults (value w, value border_width,
-                                 value pad_x, value pad_y,
-                                 value i_pad_x, value i_pad_y)
-{
-    GtkPacker *p = GtkPacker_val(w);
-    if (Is_block(border_width))
-       gtk_packer_set_default_border_width (p,Int_val(Field(border_width,0)));
-    if (Is_block(pad_x) || Is_block(pad_y))
-       gtk_packer_set_default_pad
-           (p, Option_val(pad_x,Int_val,p->default_pad_x),
-               Option_val(pad_y,Int_val,p->default_pad_y));
-    if (Is_block(i_pad_x) || Is_block(i_pad_y))
-       gtk_packer_set_default_ipad
-           (p, Option_val(pad_x,Int_val,p->default_i_pad_x),
-               Option_val(pad_y,Int_val,p->default_i_pad_y));
-    return Val_unit;
-}
-ML_bc6 (ml_gtk_packer_set_defaults)
-
-/* gtkpaned.h */
-
-#define GtkPaned_val(val) check_cast(GTK_PANED,val)
-ML_0 (gtk_hpaned_new, Val_GtkWidget_sink)
-ML_0 (gtk_vpaned_new, Val_GtkWidget_sink)
-ML_2 (gtk_paned_add1, GtkPaned_val, GtkWidget_val, Unit)
-ML_2 (gtk_paned_add2, GtkPaned_val, GtkWidget_val, Unit)
-ML_2 (gtk_paned_set_handle_size, GtkPaned_val, (gint16)Int_val, Unit)
-ML_2 (gtk_paned_set_gutter_size, GtkPaned_val, (gint16)Int_val, Unit)
-Make_Extractor (gtk_paned, GtkPaned_val, child1, Val_GtkWidget)
-Make_Extractor (gtk_paned, GtkPaned_val, child2, Val_GtkWidget)
-Make_Extractor (gtk_paned, GtkPaned_val, handle_size, Val_int)
-Make_Extractor (gtk_paned, GtkPaned_val, gutter_size, Val_int)
-
-/* gtkscrolledwindow.h */
-
-#define GtkScrolledWindow_val(val) check_cast(GTK_SCROLLED_WINDOW,val)
-ML_2 (gtk_scrolled_window_new, GtkAdjustment_val ,GtkAdjustment_val,
-      Val_GtkWidget_sink)
-ML_2 (gtk_scrolled_window_set_hadjustment, GtkScrolledWindow_val ,
-      GtkAdjustment_val, Unit)
-ML_2 (gtk_scrolled_window_set_vadjustment, GtkScrolledWindow_val ,
-      GtkAdjustment_val, Unit)
-ML_1 (gtk_scrolled_window_get_hadjustment, GtkScrolledWindow_val,
-      Val_GtkWidget)
-ML_1 (gtk_scrolled_window_get_vadjustment, GtkScrolledWindow_val,
-      Val_GtkWidget)
-ML_3 (gtk_scrolled_window_set_policy, GtkScrolledWindow_val,
-      Policy_type_val, Policy_type_val, Unit)
-Make_Extractor (gtk_scrolled_window_get, GtkScrolledWindow_val,
-               hscrollbar_policy, Val_policy_type)
-Make_Extractor (gtk_scrolled_window_get, GtkScrolledWindow_val,
-               vscrollbar_policy, Val_policy_type)
-ML_2 (gtk_scrolled_window_set_placement, GtkScrolledWindow_val,
-      Corner_type_val, Unit)
-ML_2 (gtk_scrolled_window_add_with_viewport, GtkScrolledWindow_val,
-      GtkWidget_val, Unit)
-
-/* gtksocket.h */
-
-#define GtkSocket_val(val) check_cast(GTK_SOCKET,val)
-ML_0 (gtk_socket_new, Val_GtkWidget_sink)
-ML_2 (gtk_socket_steal, GtkSocket_val, XID_val, Unit)
-
-/* gtktable.h */
-
-#define GtkTable_val(val) check_cast(GTK_TABLE,val)
-ML_3 (gtk_table_new, Int_val, Int_val, Int_val, Val_GtkWidget_sink)
-ML_10 (gtk_table_attach, GtkTable_val, GtkWidget_val,
-       Int_val, Int_val, Int_val, Int_val,
-       Flags_Attach_options_val, Flags_Attach_options_val,
-       Int_val, Int_val, Unit)
-ML_bc10 (ml_gtk_table_attach)
-ML_3 (gtk_table_set_row_spacing, GtkTable_val, Int_val, Int_val, Unit)
-ML_3 (gtk_table_set_col_spacing, GtkTable_val, Int_val, Int_val, Unit)
-ML_2 (gtk_table_set_row_spacings, GtkTable_val, Int_val, Unit)
-ML_2 (gtk_table_set_col_spacings, GtkTable_val, Int_val, Unit)
-ML_2 (gtk_table_set_homogeneous, GtkTable_val, Bool_val, Unit)
-
-/* gtktoolbar.h */
-
-#define GtkToolbar_val(val) check_cast(GTK_TOOLBAR,val)
-ML_2 (gtk_toolbar_new, Orientation_val, Toolbar_style_val, Val_GtkWidget_sink)
-ML_2 (gtk_toolbar_insert_space, GtkToolbar_val, Int_val, Unit)
-ML_7 (gtk_toolbar_insert_element, GtkToolbar_val, Toolbar_child_val,
-      Insert(NULL) Optstring_val, Optstring_val, Optstring_val, GtkWidget_val,
-      Insert(NULL) Insert(NULL) Int_val, Val_GtkWidget)
-ML_bc7 (ml_gtk_toolbar_insert_element)
-ML_5 (gtk_toolbar_insert_widget, GtkToolbar_val, GtkWidget_val,
-      Optstring_val, Optstring_val, Int_val, Unit)
-ML_2 (gtk_toolbar_set_orientation, GtkToolbar_val, Orientation_val, Unit)
-ML_2 (gtk_toolbar_set_style, GtkToolbar_val, Toolbar_style_val, Unit)
-ML_2 (gtk_toolbar_set_space_size, GtkToolbar_val, Int_val, Unit)
-ML_2 (gtk_toolbar_set_space_style, GtkToolbar_val, Toolbar_space_style_val, Unit)
-ML_2 (gtk_toolbar_set_tooltips, GtkToolbar_val, Bool_val, Unit)
-ML_2 (gtk_toolbar_set_button_relief, GtkToolbar_val, Relief_style_val, Unit)
-ML_1 (gtk_toolbar_get_button_relief, GtkToolbar_val, Val_relief_style)
-
-/* gtktree.h */
-
-#define GtkTree_val(val) check_cast(GTK_TREE,val)
-ML_0 (gtk_tree_new, Val_GtkWidget_sink)
-ML_3 (gtk_tree_insert, GtkTree_val, GtkWidget_val, Int_val, Unit)
-ML_3 (gtk_tree_clear_items, GtkTree_val, Int_val, Int_val, Unit)
-ML_2 (gtk_tree_select_item, GtkTree_val, Int_val, Unit)
-ML_2 (gtk_tree_unselect_item, GtkTree_val, Int_val, Unit)
-ML_2 (gtk_tree_child_position, GtkTree_val, GtkWidget_val, Val_int)
-ML_2 (gtk_tree_set_selection_mode, GtkTree_val, Selection_mode_val, Unit)
-ML_2 (gtk_tree_set_view_mode, GtkTree_val, Tree_view_mode_val, Unit)
-ML_2 (gtk_tree_set_view_lines, GtkTree_val, Bool_val, Unit)
-
-static value val_gtkany (gpointer p) { return Val_GtkAny(p); }
-value ml_gtk_tree_selection (value tree)
-{
-  GList *selection = GTK_TREE_SELECTION(GtkTree_val(tree));
-  return Val_GList(selection, val_gtkany);
-}
-static gpointer gtkobject_val (value val) { return GtkObject_val(val); }
-value ml_gtk_tree_remove_items (value tree, value items)
-{
-  GList *items_list = GList_val (items, gtkobject_val);
-  gtk_tree_remove_items (GtkTree_val(tree), items_list);
-  return Val_unit;
-}
-
-/* gtkcalendar.h */
-
-#define GtkCalendar_val(val) check_cast(GTK_CALENDAR,val)
-ML_0 (gtk_calendar_new, Val_GtkWidget_sink)
-ML_3 (gtk_calendar_select_month, GtkCalendar_val, Int_val, Int_val, Unit)
-ML_2 (gtk_calendar_select_day, GtkCalendar_val, Int_val, Unit)
-ML_2 (gtk_calendar_mark_day, GtkCalendar_val, Int_val, Unit)
-ML_2 (gtk_calendar_unmark_day, GtkCalendar_val, Int_val, Unit)
-ML_1 (gtk_calendar_clear_marks, GtkCalendar_val, Unit)
-Make_Flags_val (Calendar_display_options_val)
-ML_2 (gtk_calendar_display_options, GtkCalendar_val,
-      Flags_Calendar_display_options_val, Unit)
-value ml_gtk_calendar_get_date (value w)
-{
-    guint year, month, day;
-    value ret;
-
-    gtk_calendar_get_date (GtkCalendar_val(w), &year, &month, &day);
-    ret = alloc_small (3, 0);
-    Field(ret,0) = Val_int(year);
-    Field(ret,1) = Val_int(month);
-    Field(ret,2) = Val_int(day);
-    return ret;
-}
-ML_1 (gtk_calendar_freeze, GtkCalendar_val, Unit)
-ML_1 (gtk_calendar_thaw, GtkCalendar_val, Unit)
-
-/* gtkdrawingarea.h */
-
-#define GtkDrawingArea_val(val) check_cast(GTK_DRAWING_AREA,val)
-ML_0 (gtk_drawing_area_new, Val_GtkWidget_sink)
-ML_3 (gtk_drawing_area_size, GtkDrawingArea_val, Int_val, Int_val, Unit)
-
-/* gtkeditable.h */
-
-#define GtkEditable_val(val) check_cast(GTK_EDITABLE,val)
-ML_3 (gtk_editable_select_region, GtkEditable_val, Int_val, Int_val, Unit)
-value ml_gtk_editable_insert_text (value w, value s, value pos)
-{
-    int position = Int_val(pos);
-    gtk_editable_insert_text (GtkEditable_val(w), String_val(s),
-                             string_length(s), &position);
-    return Val_int(position);
-}
-ML_3 (gtk_editable_delete_text, GtkEditable_val, Int_val, Int_val, Unit)
-ML_3 (gtk_editable_get_chars, GtkEditable_val, Int_val, Int_val,
-      copy_string_and_free)
-ML_1 (gtk_editable_cut_clipboard, GtkEditable_val, Unit)
-ML_1 (gtk_editable_copy_clipboard, GtkEditable_val, Unit)
-ML_1 (gtk_editable_paste_clipboard, GtkEditable_val, Unit)
-ML_3 (gtk_editable_claim_selection, GtkEditable_val, Bool_val, Int_val, Unit)
-ML_1 (gtk_editable_delete_selection, GtkEditable_val, Unit)
-ML_1 (gtk_editable_changed, GtkEditable_val, Unit)
-ML_2 (gtk_editable_set_position, GtkEditable_val, Int_val, Unit)
-ML_1 (gtk_editable_get_position, GtkEditable_val, Val_int)
-ML_2 (gtk_editable_set_editable, GtkEditable_val, Bool_val, Unit)
-Make_Extractor (gtk_editable, GtkEditable_val, selection_start_pos, Val_int)
-Make_Extractor (gtk_editable, GtkEditable_val, selection_end_pos, Val_int)
-Make_Extractor (gtk_editable, GtkEditable_val, has_selection, Val_bool)
-
-/* gtkentry.h */
-
-#define GtkEntry_val(val) check_cast(GTK_ENTRY,val)
-ML_0 (gtk_entry_new, Val_GtkWidget_sink)
-ML_1 (gtk_entry_new_with_max_length, (gint16)Long_val, Val_GtkWidget_sink)
-ML_2 (gtk_entry_set_text, GtkEntry_val, String_val, Unit)
-ML_2 (gtk_entry_append_text, GtkEntry_val, String_val, Unit)
-ML_2 (gtk_entry_prepend_text, GtkEntry_val, String_val, Unit)
-ML_1 (gtk_entry_get_text, GtkEntry_val, Val_string)
-ML_3 (gtk_entry_select_region, GtkEntry_val, Int_val, Int_val, Unit)
-ML_2 (gtk_entry_set_visibility, GtkEntry_val, Bool_val, Unit)
-ML_2 (gtk_entry_set_max_length, GtkEntry_val, (gint16)Long_val, Unit)
-Make_Extractor (GtkEntry, GtkEntry_val, text_length, Val_int)
-
-/* gtkspinbutton.h */
-
-#define GtkSpinButton_val(val) check_cast(GTK_SPIN_BUTTON,val)
-ML_3 (gtk_spin_button_new, GtkAdjustment_val,
-      Float_val, Int_val, Val_GtkWidget_sink)
-ML_2 (gtk_spin_button_set_adjustment, GtkSpinButton_val, GtkAdjustment_val,
-      Unit)
-ML_1 (gtk_spin_button_get_adjustment, GtkSpinButton_val, Val_GtkAny)
-ML_2 (gtk_spin_button_set_digits, GtkSpinButton_val, Int_val, Unit)
-ML_1 (gtk_spin_button_get_value_as_float, GtkSpinButton_val, copy_double)
-ML_2 (gtk_spin_button_set_value, GtkSpinButton_val, Float_val, Unit)
-ML_2 (gtk_spin_button_set_update_policy, GtkSpinButton_val,
-      Update_type_val, Unit)
-ML_2 (gtk_spin_button_set_numeric, GtkSpinButton_val, Bool_val, Unit)
-ML_2 (gtk_spin_button_spin, GtkSpinButton_val,
-      Insert (Is_long(arg2) ? Spin_type_val(arg2) : GTK_SPIN_USER_DEFINED)
-      (Is_long(arg2) ? 0.0 : Float_val(Field(arg2,1))) Ignore, Unit)
-ML_2 (gtk_spin_button_set_wrap, GtkSpinButton_val, Bool_val, Unit)
-ML_2 (gtk_spin_button_set_shadow_type, GtkSpinButton_val, Shadow_type_val, Unit)
-ML_2 (gtk_spin_button_set_snap_to_ticks, GtkSpinButton_val, Bool_val, Unit)
-ML_4 (gtk_spin_button_configure, GtkSpinButton_val, GtkAdjustment_val,
-      Float_val, Int_val, Unit)
-ML_1 (gtk_spin_button_update, GtkSpinButton_val, Unit)
-
-/* gtktext.h */
-
-#define GtkText_val(val) check_cast(GTK_TEXT,val)
-ML_2 (gtk_text_new, GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink)
-ML_2 (gtk_text_set_word_wrap, GtkText_val, Bool_val, Unit)
-ML_2 (gtk_text_set_line_wrap, GtkText_val, Bool_val, Unit)
-ML_3 (gtk_text_set_adjustments, GtkText_val,
-      Option_val(arg2,GtkAdjustment_val,GtkText_val(arg1)->hadj) Ignore,
-      Option_val(arg3,GtkAdjustment_val,GtkText_val(arg1)->vadj) Ignore,
-      Unit)
-Make_Extractor (gtk_text_get, GtkText_val, hadj, Val_GtkWidget)
-Make_Extractor (gtk_text_get, GtkText_val, vadj, Val_GtkWidget)
-ML_2 (gtk_text_set_point, GtkText_val, Int_val, Unit)
-ML_1 (gtk_text_get_point, GtkText_val, Val_int)
-ML_1 (gtk_text_get_length, GtkText_val, Val_int)
-ML_1 (gtk_text_freeze, GtkText_val, Unit)
-ML_1 (gtk_text_thaw, GtkText_val, Unit)
-value ml_gtk_text_insert (value text, value font, value fore, value back,
-                         value str)
-{
-    gtk_text_insert (GtkText_val(text),
-                    Option_val(font,GdkFont_val,NULL),
-                    Option_val(fore,GdkColor_val,NULL),
-                    Option_val(back,GdkColor_val,NULL),
-                    String_val(str), string_length(str));
-    return Val_unit;
-}
-ML_2 (gtk_text_forward_delete, GtkText_val, Int_val, Val_int)
-ML_2 (gtk_text_backward_delete, GtkText_val, Int_val, Val_int)
-
-/* gtkmisc.h */
-
-#define GtkMisc_val(val) check_cast(GTK_MISC,val)
-ML_3 (gtk_misc_set_alignment, GtkMisc_val, Double_val, Double_val, Unit)
-ML_3 (gtk_misc_set_padding, GtkMisc_val, Int_val, Int_val, Unit)
-Make_Extractor (gtk_misc_get, GtkMisc_val, xalign, copy_double)
-Make_Extractor (gtk_misc_get, GtkMisc_val, yalign, copy_double)
-Make_Extractor (gtk_misc_get, GtkMisc_val, xpad, Val_int)
-Make_Extractor (gtk_misc_get, GtkMisc_val, ypad, Val_int)
-
-/* gtkarrow.h */
-
-#define GtkArrow_val(val) check_cast(GTK_ARROW,val)
-ML_2 (gtk_arrow_new, Arrow_type_val, Shadow_type_val, Val_GtkWidget_sink)
-ML_3 (gtk_arrow_set, GtkArrow_val, Arrow_type_val, Shadow_type_val, Unit)
-
-/* gtkimage.h */
-
-#define GtkImage_val(val) check_cast(GTK_IMAGE,val)
-ML_2 (gtk_image_new, GdkImage_val,
-      Option_val (arg2, GdkBitmap_val, NULL) Ignore, Val_GtkWidget_sink)
-ML_3 (gtk_image_set, GtkImage_val, GdkImage_val,
-      Option_val (arg2, GdkBitmap_val, NULL) Ignore, Unit)
-
-/* gtklabel.h */
-
-#define GtkLabel_val(val) check_cast(GTK_LABEL,val)
-ML_1 (gtk_label_new, String_val, Val_GtkWidget_sink)
-ML_2 (gtk_label_set_text, GtkLabel_val, String_val, Unit)
-ML_2 (gtk_label_set_pattern, GtkLabel_val, String_val, Unit)
-ML_2 (gtk_label_set_justify, GtkLabel_val, Justification_val, Unit)
-ML_2 (gtk_label_set_line_wrap, GtkLabel_val, Bool_val, Unit)
-Make_Extractor (gtk_label_get, GtkLabel_val, label, Val_string)
-
-/* gtktipsquery.h */
-
-#define GtkTipsQuery_val(val) check_cast(GTK_TIPS_QUERY,val)
-ML_0 (gtk_tips_query_new, Val_GtkWidget_sink)
-ML_1 (gtk_tips_query_start_query, GtkTipsQuery_val, Unit)
-ML_1 (gtk_tips_query_stop_query, GtkTipsQuery_val, Unit)
-ML_2 (gtk_tips_query_set_caller, GtkTipsQuery_val, GtkWidget_val, Unit)
-ML_3 (gtk_tips_query_set_labels, GtkTipsQuery_val,
-      String_val, String_val, Unit)
-value ml_gtk_tips_query_set_emit_always (value w, value arg)
-{
-    GtkTipsQuery_val(w)->emit_always = Bool_val(arg);
-    return Val_unit;
-}
-Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, emit_always, Val_bool)
-Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, caller, Val_GtkWidget)
-Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, label_inactive,
-               Val_string)
-Make_Extractor (gtk_tips_query_get, GtkTipsQuery_val, label_no_tip,
-               Val_string)
-
-/* gtkpixmap.h */
-
-#define GtkPixmap_val(val) check_cast(GTK_PIXMAP,val)
-ML_2 (gtk_pixmap_new, GdkPixmap_val,
-      Option_val (arg2, GdkBitmap_val, NULL) Ignore,
-      Val_GtkWidget_sink)
-value ml_gtk_pixmap_set (value val, value pixmap, value mask)
-{
-    GtkPixmap *w = GtkPixmap_val(val);
-    gtk_pixmap_set (w, Option_val(pixmap,GdkPixmap_val,w->pixmap),
-                   Option_val(mask,GdkBitmap_val,w->mask));
-    return Val_unit;
-}
-Make_Extractor (GtkPixmap, GtkPixmap_val, pixmap, Val_GdkPixmap)
-Make_Extractor (GtkPixmap, GtkPixmap_val, mask, Val_GdkBitmap)
-
-/* gtkpreview.h */
-/*
-#define GtkPreview_val(val) GTK_PREVIEW(Pointer_val(val))
-ML_1 (gtk_preview_new, Preview_val, Val_GtkWidget_sink)
-ML_3 (gtk_preview_size, GtkPreview_val, Int_val, Int_val, Unit)
-ML_9 (gtk_preview_put, GtkPreview_val, GdkWindow_val, GdkGC_val,
-      Int_val, Int_val, Int_val, Int_val, Int_val, Int_val, Unit)
-ML_bc9 (ml_gtk_preview_put)
-*/
-
-/* gtkprogress.h */
-
-#define GtkProgress_val(val) check_cast(GTK_PROGRESS,val)
-ML_2 (gtk_progress_set_show_text, GtkProgress_val, Bool_val, Unit)
-ML_3 (gtk_progress_set_text_alignment, GtkProgress_val,
-      Option_val(arg2,Float_val,(GtkProgress_val(arg1))->x_align) Ignore,
-      Option_val(arg3,Float_val,(GtkProgress_val(arg1))->y_align) Ignore, Unit)
-ML_2 (gtk_progress_set_format_string, GtkProgress_val, String_val, Unit)
-ML_2 (gtk_progress_set_adjustment, GtkProgress_val, GtkAdjustment_val, Unit)
-ML_4 (gtk_progress_configure, GtkProgress_val,
-      Float_val, Float_val, Float_val, Unit)
-ML_2 (gtk_progress_set_percentage, GtkProgress_val, Float_val, Unit)
-ML_2 (gtk_progress_set_value, GtkProgress_val, Float_val, Unit)
-ML_1 (gtk_progress_get_value, GtkProgress_val, copy_double)
-ML_1 (gtk_progress_get_current_percentage, GtkProgress_val, copy_double)
-ML_2 (gtk_progress_set_activity_mode, GtkProgress_val, Bool_val, Unit)
-ML_1 (gtk_progress_get_current_text, GtkProgress_val, Val_string)
-Make_Extractor (gtk_progress_get, GtkProgress_val, adjustment,
-               Val_GtkAny)
-
-/* gtkprogressbar.h */
-
-#define GtkProgressBar_val(val) check_cast(GTK_PROGRESS_BAR,val)
-ML_0 (gtk_progress_bar_new, Val_GtkWidget_sink)
-ML_1 (gtk_progress_bar_new_with_adjustment, GtkAdjustment_val,
-      Val_GtkWidget_sink)
-ML_2 (gtk_progress_bar_set_bar_style, GtkProgressBar_val,
-      Progress_bar_style_val, Unit)
-ML_2 (gtk_progress_bar_set_discrete_blocks, GtkProgressBar_val, Int_val, Unit)
-ML_2 (gtk_progress_bar_set_activity_step, GtkProgressBar_val, Int_val, Unit)
-ML_2 (gtk_progress_bar_set_activity_blocks, GtkProgressBar_val, Int_val, Unit)
-ML_2 (gtk_progress_bar_set_orientation, GtkProgressBar_val,
-      Progress_bar_orientation_val, Unit)
-/* ML_2 (gtk_progress_bar_update, GtkProgressBar_val, Float_val, Unit) */
-
-/* gtkrange.h */
-
-#define GtkRange_val(val) check_cast(GTK_RANGE,val)
-ML_1 (gtk_range_get_adjustment, GtkRange_val, Val_GtkAny)
-ML_2 (gtk_range_set_adjustment, GtkRange_val, GtkAdjustment_val, Unit)
-ML_2 (gtk_range_set_update_policy, GtkRange_val, Update_type_val, Unit)
-
-/* gtkscale.h */
-
-#define GtkScale_val(val) check_cast(GTK_SCALE,val)
-ML_2 (gtk_scale_set_digits, GtkScale_val, Int_val, Unit)
-ML_2 (gtk_scale_set_draw_value, GtkScale_val, Bool_val, Unit)
-ML_2 (gtk_scale_set_value_pos, GtkScale_val, Position_val, Unit)
-ML_1 (gtk_scale_get_value_width, GtkScale_val, Val_int)
-ML_1 (gtk_scale_draw_value, GtkScale_val, Unit)
-ML_1 (gtk_hscale_new, GtkAdjustment_val, Val_GtkWidget_sink)
-ML_1 (gtk_vscale_new, GtkAdjustment_val, Val_GtkWidget_sink)
-
-/* gtkscrollbar.h */
-
-ML_1 (gtk_hscrollbar_new, GtkAdjustment_val, Val_GtkWidget_sink)
-ML_1 (gtk_vscrollbar_new, GtkAdjustment_val, Val_GtkWidget_sink)
-
-/* gtkruler.h */
-
-#define GtkRuler_val(val) check_cast(GTK_RULER,val)
-ML_2 (gtk_ruler_set_metric, GtkRuler_val, Metric_type_val, Unit)
-ML_5 (gtk_ruler_set_range, GtkRuler_val, Float_val,
-      Float_val, Float_val, Float_val, Unit)
-Make_Extractor (gtk_ruler_get, GtkRuler_val, lower, copy_double)
-Make_Extractor (gtk_ruler_get, GtkRuler_val, upper, copy_double)
-Make_Extractor (gtk_ruler_get, GtkRuler_val, position, copy_double)
-Make_Extractor (gtk_ruler_get, GtkRuler_val, max_size, copy_double)
-ML_1 (gtk_ruler_draw_ticks, GtkRuler_val, Unit)
-ML_1 (gtk_ruler_draw_pos, GtkRuler_val, Unit)
-ML_0 (gtk_hruler_new, Val_GtkWidget_sink)
-ML_0 (gtk_vruler_new, Val_GtkWidget_sink)
-
-/* gtk[hv]separator.h */
-
-ML_0 (gtk_hseparator_new, Val_GtkWidget_sink)
-ML_0 (gtk_vseparator_new, Val_GtkWidget_sink)
-
-/* gtkmain.h */
-
-value ml_gtk_init (value argv)
-{
-    CAMLparam1 (argv);
-    int argc = Wosize_val(argv), i;
-    CAMLlocal1 (copy);
-
-    copy = (argc ? alloc (argc, Abstract_tag) : Atom(0));
-    for (i = 0; i < argc; i++) Field(copy,i) = Field(argv,i);
-    gtk_init (&argc, (char ***)&copy);
-
-    argv = (argc ? alloc (argc, 0) : Atom(0));
-    for (i = 0; i < argc; i++) modify(&Field(argv,i), Field(copy,i));
-    CAMLreturn (argv);
-}
-ML_1 (gtk_exit, Int_val, Unit)
-ML_0 (gtk_set_locale, Val_string)
-ML_0 (gtk_main, Unit)
-ML_1 (gtk_main_iteration_do, Bool_val, Val_bool)
-ML_0 (gtk_main_quit, Unit)
-ML_1 (gtk_grab_add, GtkWidget_val, Unit)
-ML_1 (gtk_grab_remove, GtkWidget_val, Unit)
-ML_0 (gtk_grab_get_current, Val_GtkWidget)
-value ml_gtk_get_version (value unit)
-{
-    value ret = alloc_small(3,0);
-    Field(ret,0) = Val_int(gtk_major_version);
-    Field(ret,1) = Val_int(gtk_minor_version);
-    Field(ret,2) = Val_int(gtk_micro_version);
-    return ret;
-}
-
-/* Marshalling */
-
-void ml_gtk_callback_marshal (GtkObject *object, gpointer data,
-                              guint nargs, GtkArg *args)
-{
-    value vargs = alloc_small(3,0);
-
-    CAMLparam1 (vargs);
-    Field(vargs,0) = (value) object;
-    Field(vargs,1) = Val_int(nargs);
-    Field(vargs,2) = (value) args;
-
-    callback (*(value*)data, vargs);
-
-    Field(vargs,0) = Val_int(-1);
-    Field(vargs,1) = Val_int(-1);
-    CAMLreturn0;
-}
-
-value ml_gtk_arg_shift (GtkArg *args, value index)
-{
-    return (value) (&args[Int_val(index)]);
-}
-
-value ml_gtk_arg_get_type (GtkArg *arg)
-{
-    return Val_int (arg->type);
-}
-
-value ml_gtk_arg_get (GtkArg *arg)
-{
-    CAMLparam0();
-    CAMLlocal1(tmp);
-    value ret;
-    GtkFundamentalType type = GTK_FUNDAMENTAL_TYPE(arg->type);
-    int tag;
-
-    switch (type) {
-    case GTK_TYPE_CHAR:
-        tag = 0;
-        tmp = Int_val(GTK_VALUE_CHAR(*arg));
-        break;
-    case GTK_TYPE_BOOL:
-        tag = 1;
-        tmp = Val_bool(GTK_VALUE_BOOL(*arg));
-        break;
-    case GTK_TYPE_INT:
-    case GTK_TYPE_ENUM:
-    case GTK_TYPE_UINT:
-    case GTK_TYPE_FLAGS:
-        tag = 2;
-        tmp = Val_int (GTK_VALUE_INT(*arg)); break;
-    case GTK_TYPE_LONG:
-    case GTK_TYPE_ULONG:
-        tag = 2;
-        tmp = Val_int (GTK_VALUE_LONG(*arg)); break;
-    case GTK_TYPE_FLOAT:
-        tag = 3;
-        tmp = copy_double ((double)GTK_VALUE_FLOAT(*arg)); break;
-    case GTK_TYPE_DOUBLE:
-        tag = 3;
-        tmp = copy_double (GTK_VALUE_DOUBLE(*arg)); break;
-    case GTK_TYPE_STRING:
-        tag = 4;
-        tmp = Val_option (GTK_VALUE_STRING(*arg), copy_string); break;
-    case GTK_TYPE_OBJECT:
-        tag = 5;
-        tmp = Val_option (GTK_VALUE_OBJECT(*arg), Val_GtkObject); break;
-    case GTK_TYPE_BOXED:
-    case GTK_TYPE_POINTER:
-        tag = 6;
-        tmp = Val_option (GTK_VALUE_POINTER(*arg), Val_pointer); break;
-    default:
-        tag = -1; ret = Val_unit;
-    }
-    if (tag != -1) {
-        ret = alloc_small(1,tag);
-        Field(ret,0) = tmp;
-    }
-    CAMLreturn(ret);
-}
-
-value ml_gtk_arg_set_retloc (GtkArg *arg, value val)
-{
-    value type = Fundamental_type_val(Is_block(val) ? Field(val,0) : val);
-    value data = (Is_block(val) ? Field(val,1) : 0);
-    if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_POINTER
-        && GTK_FUNDAMENTAL_TYPE(arg->type) != type)
-       ml_raise_gtk ("GtkArgv.Arg.set : argument type mismatch");
-    switch (type) {
-    case GTK_TYPE_CHAR:   *GTK_RETLOC_CHAR(*arg) = Int_val(data); break;
-    case GTK_TYPE_BOOL:   *GTK_RETLOC_BOOL(*arg) = Int_val(data); break;
-    case GTK_TYPE_INT:
-    case GTK_TYPE_ENUM:   *GTK_RETLOC_INT(*arg) = Int_val(data); break;
-    case GTK_TYPE_UINT:
-    case GTK_TYPE_FLAGS:  *GTK_RETLOC_UINT(*arg) = Int32_val(data); break;
-    case GTK_TYPE_LONG:
-    case GTK_TYPE_ULONG:  *GTK_RETLOC_LONG(*arg) = Nativeint_val(data); break;
-    case GTK_TYPE_FLOAT:  *GTK_RETLOC_FLOAT(*arg) = Float_val(data); break;
-    case GTK_TYPE_DOUBLE: *GTK_RETLOC_DOUBLE(*arg) = Double_val(data); break;
-    case GTK_TYPE_STRING:
-         *GTK_RETLOC_STRING(*arg) = Option_val(data, String_val, NULL);
-         break;
-    case GTK_TYPE_BOXED:
-    case GTK_TYPE_POINTER:
-    case GTK_TYPE_OBJECT:
-         *GTK_RETLOC_POINTER(*arg) = Option_val(data, Pointer_val, NULL);
-         break;
-    }
-    return Val_unit;
-}
-
-/*
-value ml_gtk_arg_get_char (GtkArg *arg)
-{
-    if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_CHAR)
-       ml_raise_gtk ("argument type mismatch");
-    return Val_char (GTK_VALUE_CHAR(*arg));
-}
-
-value ml_gtk_arg_get_bool (GtkArg *arg)
-{
-    if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_BOOL)
-       ml_raise_gtk ("argument type mismatch");
-    return Val_bool (GTK_VALUE_BOOL(*arg));
-}
-
-value ml_gtk_arg_get_int (GtkArg *arg)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_INT:
-    case GTK_TYPE_UINT:
-       return Val_int (GTK_VALUE_INT(*arg));
-    case GTK_TYPE_LONG:
-    case GTK_TYPE_ULONG:
-       return Val_long (GTK_VALUE_LONG(*arg));
-    case GTK_TYPE_ENUM:
-       return Val_int (GTK_VALUE_ENUM(*arg));
-    case GTK_TYPE_FLAGS:
-       return Val_int (GTK_VALUE_FLAGS(*arg));
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-*/
-value ml_gtk_arg_get_nativeint(GtkArg *arg) {
-
-     switch(GTK_FUNDAMENTAL_TYPE(arg->type)) {
-     case GTK_TYPE_INT:
-     case GTK_TYPE_UINT:
-          return copy_nativeint (GTK_VALUE_INT(*arg));
-     case GTK_TYPE_LONG:
-     case GTK_TYPE_ULONG:
-          return copy_nativeint (GTK_VALUE_LONG(*arg));
-     case GTK_TYPE_ENUM:
-          return copy_nativeint (GTK_VALUE_ENUM(*arg));
-     case GTK_TYPE_FLAGS:
-          return copy_nativeint (GTK_VALUE_FLAGS(*arg));
-     default:
-          ml_raise_gtk ("argument type mismatch");
-     }
-     return Val_unit;
-}
-/*
-value ml_gtk_arg_get_float (GtkArg *arg)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_FLOAT:
-       return copy_double ((double)GTK_VALUE_FLOAT(*arg));
-    case GTK_TYPE_DOUBLE:
-       return copy_double (GTK_VALUE_DOUBLE(*arg));
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-
-value ml_gtk_arg_get_string (GtkArg *arg)
-{
-    char *p;
-    if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_STRING)
-       ml_raise_gtk ("argument type mismatch");
-    p = GTK_VALUE_STRING(*arg);
-    return Val_option (p, copy_string);
-}
-*/
-value ml_gtk_arg_get_pointer (GtkArg *arg)
-{
-    gpointer p = NULL;
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_STRING:
-    case GTK_TYPE_BOXED:
-    case GTK_TYPE_POINTER:
-    case GTK_TYPE_OBJECT:
-        p = GTK_VALUE_POINTER(*arg); break;
-    default:
-       ml_raise_gtk ("GtkArgv.get_pointer : argument type mismatch");
-    }
-    return Val_pointer(p);
-}
-/*
-value ml_gtk_arg_get_object (GtkArg *arg)
-{
-    GtkObject *p;
-    if (GTK_FUNDAMENTAL_TYPE(arg->type) != GTK_TYPE_OBJECT)
-       ml_raise_gtk ("argument type mismatch");
-    p = GTK_VALUE_OBJECT(*arg);
-    return Val_option (p, Val_GtkObject);
-}
-*/
-
-value ml_string_at_pointer (value ofs, value len, value ptr)
-{
-    char *start = ((char*)Pointer_val(ptr)) + Option_val(ofs, Int_val, 0);
-    int length = Option_val(len, Int_val, strlen(start));
-    value ret = alloc_string(length);
-    memcpy ((char*)ret, start, length);
-    return ret;
-}
-
-value ml_int_at_pointer (value ptr)
-{
-    return Val_int(*(int*)Pointer_val(ptr));
-}
-
-/*
-value ml_gtk_arg_set_char (GtkArg *arg, value val)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_POINTER:
-    case GTK_TYPE_CHAR:
-         *GTK_RETLOC_CHAR(*arg) = Char_val(val); break;
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-
-value ml_gtk_arg_set_bool (GtkArg *arg, value val)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_POINTER:
-    case GTK_TYPE_BOOL:
-         *GTK_RETLOC_BOOL(*arg) = Bool_val(val); break;
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-
-value ml_gtk_arg_set_int (GtkArg *arg, value val)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_POINTER:
-    case GTK_TYPE_INT:
-    case GTK_TYPE_UINT:
-       *GTK_RETLOC_INT(*arg) = Int_val(val); break;
-    case GTK_TYPE_LONG:
-    case GTK_TYPE_ULONG:
-       *GTK_RETLOC_LONG(*arg) = Long_val(val); break;
-    case GTK_TYPE_ENUM:
-       *GTK_RETLOC_ENUM(*arg) = Int_val(val); break;
-    case GTK_TYPE_FLAGS:
-       *GTK_RETLOC_FLAGS(*arg) = Int_val(val); break;
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-
-value ml_gtk_arg_set_nativeint (GtkArg *arg, value val)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_POINTER:
-    case GTK_TYPE_INT:
-    case GTK_TYPE_UINT:
-       *GTK_RETLOC_INT(*arg) = Nativeint_val(val); break;
-    case GTK_TYPE_LONG:
-    case GTK_TYPE_ULONG:
-       *GTK_RETLOC_LONG(*arg) = Nativeint_val(val); break;
-    case GTK_TYPE_ENUM:
-       *GTK_RETLOC_ENUM(*arg) = Nativeint_val(val); break;
-    case GTK_TYPE_FLAGS:
-       *GTK_RETLOC_FLAGS(*arg) = Nativeint_val(val); break;
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-
-value ml_gtk_arg_set_float (GtkArg *arg, value val)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_POINTER:
-    case GTK_TYPE_FLOAT:
-       *GTK_RETLOC_FLOAT(*arg) = (float) Double_val(val); break;
-    case GTK_TYPE_DOUBLE:
-       *GTK_RETLOC_DOUBLE(*arg) = Double_val(val); break;
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-
-value ml_gtk_arg_set_string (GtkArg *arg, value val)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_POINTER:
-    case GTK_TYPE_STRING:
-         *GTK_RETLOC_STRING(*arg) = String_val(val); break;
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-
-value ml_gtk_arg_set_pointer (GtkArg *arg, value val)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_BOXED:
-       *GTK_RETLOC_BOXED(*arg) = Pointer_val(val); break;
-    case GTK_TYPE_POINTER:
-       *GTK_RETLOC_POINTER(*arg) = Pointer_val(val); break;
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-
-value ml_gtk_arg_set_object (GtkArg *arg, value val)
-{
-    switch (GTK_FUNDAMENTAL_TYPE(arg->type)) {
-    case GTK_TYPE_POINTER:
-    case GTK_TYPE_OBJECT:
-         *GTK_RETLOC_OBJECT(*arg) = GtkObject_val(val); break;
-    default:
-       ml_raise_gtk ("argument type mismatch");
-    }
-    return Val_unit;
-}
-*/
-
-/* gtksignal.h */
-
-value ml_gtk_signal_connect (value object, value name, value clos, value after)
-{
-    value *clos_p = ml_gtk_root_new (clos);
-    return Val_int (gtk_signal_connect_full
-                   (GtkObject_val(object), String_val(name), NULL,
-                    ml_gtk_callback_marshal, clos_p,
-                    ml_gtk_root_destroy, FALSE, Bool_val(after)));
-}
-
-ML_2 (gtk_signal_disconnect, GtkObject_val, Int_val, Unit)
-ML_2 (gtk_signal_emit_stop_by_name, GtkObject_val, String_val, Unit)
-ML_2 (gtk_signal_handler_block, GtkObject_val, Int_val, Unit)
-ML_2 (gtk_signal_handler_unblock, GtkObject_val, Int_val, Unit)
-ML_2_name (ml_gtk_signal_emit_none, gtk_signal_emit_by_name,
-           GtkObject_val, String_val, Unit)
-ML_3_name (ml_gtk_signal_emit_int, gtk_signal_emit_by_name,
-           GtkObject_val, String_val, Int_val, Unit)
-ML_4_name (ml_gtk_signal_emit_scroll, gtk_signal_emit_by_name,
-           GtkObject_val, String_val, Scroll_type_val, Double_val, Unit)
-
-/* gtkmain.h (again) */
-
-value ml_gtk_timeout_add (value interval, value clos)
-{
-    value *clos_p = ml_gtk_root_new (clos);
-    return Val_int (gtk_timeout_add_full
-                   (Int_val(interval), NULL, ml_gtk_callback_marshal, clos_p,
-                    ml_gtk_root_destroy));
-}
-ML_1 (gtk_timeout_remove, Int_val, Unit)
-
-/*
-#include "ml_gtkcaller.h"
-ML_0 (gtk_caller_new, Val_GtkWidget)
-*/
-
-static value ml_class_init=0;
-
-static void class_init (value class)
-{
-  callback(ml_class_init, class);
-}
-
-
-value set_ml_class_init (value class_func)
-{
-  if (!ml_class_init) register_global_root (&ml_class_init);
-  ml_class_init = class_func;
-  return Val_unit;
-}
-
-value ml_gtk_type_new (value type)
-{
-  return Val_GtkWidget_sink(gtk_type_new(Int_val(type)));
-}
-
-
-struct widget_info {
-  guint size;
-  guint class_size;
-  guint (*get_type_func)(void);
-}
-widget_info_array[] = {
-  { sizeof(GtkObject), sizeof(GtkObjectClass), gtk_object_get_type },
-  { sizeof(GtkWidget), sizeof(GtkWidgetClass), gtk_widget_get_type },
-  { sizeof(GtkMisc), sizeof(GtkMiscClass), gtk_misc_get_type },
-  { sizeof(GtkLabel), sizeof(GtkLabelClass), gtk_label_get_type },
-  { sizeof(GtkAccelLabel), sizeof(GtkAccelLabelClass), gtk_accel_label_get_type },
-  { sizeof(GtkTipsQuery), sizeof(GtkTipsQueryClass), gtk_tips_query_get_type },
-  { sizeof(GtkArrow), sizeof(GtkArrowClass), gtk_arrow_get_type },
-  { sizeof(GtkImage), sizeof(GtkImageClass), gtk_image_get_type },
-  { sizeof(GtkPixmap), sizeof(GtkPixmapClass), gtk_pixmap_get_type },
-  { sizeof(GtkContainer), sizeof(GtkContainerClass), gtk_container_get_type },
-  { sizeof(GtkBin), sizeof(GtkBinClass), gtk_bin_get_type },
-  { sizeof(GtkAlignment), sizeof(GtkAlignmentClass), gtk_alignment_get_type },
-  { sizeof(GtkFrame), sizeof(GtkFrameClass), gtk_frame_get_type },
-  { sizeof(GtkAspectFrame), sizeof(GtkAspectFrameClass), gtk_aspect_frame_get_type },
-  { sizeof(GtkButton), sizeof(GtkButtonClass), gtk_button_get_type },
-  { sizeof(GtkToggleButton), sizeof(GtkToggleButtonClass), gtk_toggle_button_get_type },
-  { sizeof(GtkCheckButton), sizeof(GtkCheckButtonClass), gtk_check_button_get_type },
-  { sizeof(GtkRadioButton), sizeof(GtkRadioButtonClass), gtk_radio_button_get_type },
-  { sizeof(GtkOptionMenu), sizeof(GtkOptionMenuClass), gtk_option_menu_get_type },
-  { sizeof(GtkItem), sizeof(GtkItemClass), gtk_item_get_type },
-  { sizeof(GtkMenuItem), sizeof(GtkMenuItemClass), gtk_menu_item_get_type },
-  { sizeof(GtkCheckMenuItem), sizeof(GtkCheckMenuItemClass), gtk_check_menu_item_get_type },
-  { sizeof(GtkRadioMenuItem), sizeof(GtkRadioMenuItemClass), gtk_radio_menu_item_get_type },
-  { sizeof(GtkTearoffMenuItem), sizeof(GtkTearoffMenuItemClass), gtk_tearoff_menu_item_get_type },
-  { sizeof(GtkListItem), sizeof(GtkListItemClass), gtk_list_item_get_type },
-  { sizeof(GtkTreeItem), sizeof(GtkTreeItemClass), gtk_tree_item_get_type },
-  { sizeof(GtkWindow), sizeof(GtkWindowClass), gtk_window_get_type },
-  { sizeof(GtkColorSelectionDialog), sizeof(GtkColorSelectionDialogClass), gtk_color_selection_dialog_get_type },
-  { sizeof(GtkDialog), sizeof(GtkDialogClass), gtk_dialog_get_type },
-  { sizeof(GtkInputDialog), sizeof(GtkInputDialogClass), gtk_input_dialog_get_type },
-  { sizeof(GtkFileSelection), sizeof(GtkFileSelectionClass), gtk_file_selection_get_type },
-  { sizeof(GtkFontSelectionDialog), sizeof(GtkFontSelectionDialogClass), gtk_font_selection_dialog_get_type },
-  { sizeof(GtkPlug), sizeof(GtkPlugClass), gtk_plug_get_type },
-  { sizeof(GtkEventBox), sizeof(GtkEventBoxClass), gtk_event_box_get_type },
-  { sizeof(GtkHandleBox), sizeof(GtkHandleBoxClass), gtk_handle_box_get_type },
-  { sizeof(GtkScrolledWindow), sizeof(GtkScrolledWindowClass), gtk_scrolled_window_get_type },
-  { sizeof(GtkViewport), sizeof(GtkViewportClass), gtk_viewport_get_type },
-  { sizeof(GtkBox), sizeof(GtkBoxClass), gtk_box_get_type },
-  { sizeof(GtkButtonBox), sizeof(GtkButtonBoxClass), gtk_button_box_get_type },
-  { sizeof(GtkHButtonBox), sizeof(GtkHButtonBoxClass), gtk_hbutton_box_get_type },
-  { sizeof(GtkVButtonBox), sizeof(GtkVButtonBoxClass), gtk_vbutton_box_get_type },
-  { sizeof(GtkVBox), sizeof(GtkVBoxClass), gtk_vbox_get_type },
-  { sizeof(GtkColorSelection), sizeof(GtkColorSelectionClass), gtk_color_selection_get_type },
-  { sizeof(GtkGammaCurve), sizeof(GtkGammaCurveClass), gtk_gamma_curve_get_type },
-  { sizeof(GtkHBox), sizeof(GtkHBoxClass), gtk_hbox_get_type },
-  { sizeof(GtkCombo), sizeof(GtkComboClass), gtk_combo_get_type },
-  { sizeof(GtkStatusbar), sizeof(GtkStatusbarClass), gtk_statusbar_get_type },
-  { sizeof(GtkCList), sizeof(GtkCListClass), gtk_clist_get_type },
-  { sizeof(GtkCTree), sizeof(GtkCTreeClass), gtk_ctree_get_type },
-  { sizeof(GtkFixed), sizeof(GtkFixedClass), gtk_fixed_get_type },
-  { sizeof(GtkNotebook), sizeof(GtkNotebookClass), gtk_notebook_get_type },
-  { sizeof(GtkFontSelection), sizeof(GtkFontSelectionClass), gtk_font_selection_get_type },
-  { sizeof(GtkPaned), sizeof(GtkPanedClass), gtk_paned_get_type },
-  { sizeof(GtkHPaned), sizeof(GtkHPanedClass), gtk_hpaned_get_type },
-  { sizeof(GtkVPaned), sizeof(GtkVPanedClass), gtk_vpaned_get_type },
-  { sizeof(GtkLayout), sizeof(GtkLayoutClass), gtk_layout_get_type },
-  { sizeof(GtkList), sizeof(GtkListClass), gtk_list_get_type },
-  { sizeof(GtkMenuShell), sizeof(GtkMenuShellClass), gtk_menu_shell_get_type },
-  { sizeof(GtkMenuBar), sizeof(GtkMenuBarClass), gtk_menu_bar_get_type },
-  { sizeof(GtkMenu), sizeof(GtkMenuClass), gtk_menu_get_type },
-  { sizeof(GtkPacker), sizeof(GtkPackerClass), gtk_packer_get_type },
-  { sizeof(GtkSocket), sizeof(GtkSocketClass), gtk_socket_get_type },
-  { sizeof(GtkTable), sizeof(GtkTableClass), gtk_table_get_type },
-  { sizeof(GtkToolbar), sizeof(GtkToolbarClass), gtk_toolbar_get_type },
-  { sizeof(GtkTree), sizeof(GtkTreeClass), gtk_tree_get_type },
-  { sizeof(GtkCalendar), sizeof(GtkCalendarClass), gtk_calendar_get_type },
-  { sizeof(GtkDrawingArea), sizeof(GtkDrawingAreaClass), gtk_drawing_area_get_type },
-  { sizeof(GtkCurve), sizeof(GtkCurveClass), gtk_curve_get_type },
-  { sizeof(GtkEditable), sizeof(GtkEditableClass), gtk_editable_get_type },
-  { sizeof(GtkEntry), sizeof(GtkEntryClass), gtk_entry_get_type },
-  { sizeof(GtkSpinButton), sizeof(GtkSpinButtonClass), gtk_spin_button_get_type },
-  { sizeof(GtkText), sizeof(GtkTextClass), gtk_text_get_type },
-  { sizeof(GtkRuler), sizeof(GtkRulerClass), gtk_ruler_get_type },
-  { sizeof(GtkHRuler), sizeof(GtkHRulerClass), gtk_hruler_get_type },
-  { sizeof(GtkVRuler), sizeof(GtkVRulerClass), gtk_vruler_get_type },
-  { sizeof(GtkRange), sizeof(GtkRangeClass), gtk_range_get_type },
-  { sizeof(GtkScale), sizeof(GtkScaleClass), gtk_scale_get_type },
-  { sizeof(GtkHScale), sizeof(GtkHScaleClass), gtk_hscale_get_type },
-  { sizeof(GtkVScale), sizeof(GtkVScaleClass), gtk_vscale_get_type },
-  { sizeof(GtkScrollbar), sizeof(GtkScrollbarClass), gtk_scrollbar_get_type },
-  { sizeof(GtkHScrollbar), sizeof(GtkHScrollbarClass), gtk_hscrollbar_get_type },
-  { sizeof(GtkVScrollbar), sizeof(GtkVScrollbarClass), gtk_vscrollbar_get_type },
-  { sizeof(GtkSeparator), sizeof(GtkSeparatorClass), gtk_separator_get_type },
-  { sizeof(GtkHSeparator), sizeof(GtkHSeparatorClass), gtk_hseparator_get_type },
-  { sizeof(GtkVSeparator), sizeof(GtkVSeparatorClass), gtk_vseparator_get_type },
-  { sizeof(GtkPreview), sizeof(GtkPreviewClass), gtk_preview_get_type },
-  { sizeof(GtkProgress), sizeof(GtkProgressClass), gtk_progress_get_type },
-  { sizeof(GtkProgressBar), sizeof(GtkProgressBarClass), gtk_progress_bar_get_type },
-  { sizeof(GtkData), sizeof(GtkDataClass), gtk_data_get_type },
-  { sizeof(GtkAdjustment), sizeof(GtkAdjustmentClass), gtk_adjustment_get_type },
-  { sizeof(GtkTooltips), sizeof(GtkTooltipsClass), gtk_tooltips_get_type },
-  { sizeof(GtkItemFactory), sizeof(GtkItemFactoryClass), gtk_item_factory_get_type }
-};
-
-
-value ml_gtk_type_unique (value name, value parent, value nsignals)
-{
-  struct widget_info * wi;
-  GtkTypeInfo ttt_info;
-
-  wi = widget_info_array + Int_val(parent);
-  ttt_info.type_name = String_val(name);
-  ttt_info.object_size = wi->size;
-  ttt_info.class_size = wi->class_size + Int_val(nsignals)*sizeof(void *);
-  ttt_info.class_init_func = (GtkClassInitFunc) class_init;
-  ttt_info.object_init_func = (GtkObjectInitFunc) NULL;
-  ttt_info.reserved_1 = NULL;
-  ttt_info.reserved_2 = NULL;
-  ttt_info.base_class_init_func = (GtkClassInitFunc) NULL;
-
-  return Val_int(gtk_type_unique(wi->get_type_func (), &ttt_info));
-}
-
-static guint sig[100];
-
-value ml_gtk_object_class_add_signals (value class, value signals,
-                                      value nsignals)
-{
-  int i;
-  for (i=0; i<nsignals; i++)
-    sig[i] = Int_val(Field(signals, i));
-  gtk_object_class_add_signals ((GtkObjectClass *)class,
-              sig, Int_val(nsignals));
-  return Val_unit;
-}
-
-value ml_gtk_signal_new (value name, value run_type, value classe,
-                        value parent, value num)
-{
-  struct widget_info * wi;
-  int offset;
-
-  wi = widget_info_array + Int_val(parent);
-  offset = wi->class_size+Int_val(num)*sizeof(void *);
-  return Val_int(gtk_signal_new (String_val(name), Int_val(run_type),
-                  ((GtkObjectClass *)classe)->type, offset,
-                  gtk_signal_default_marshaller, GTK_TYPE_NONE, 0));
-  *(((int *)classe)+offset) = 0;
-}
-
-ML_1 (gtk_rc_add_default_file, String_val, Unit)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtk.h
deleted file mode 100644 (file)
index 29c2da5..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* $Id$ */
-
-#define GtkObject_val(obj) ((GtkObject*)Field(obj,1))
-value Val_GtkObject (GtkObject *w);
-value Val_GtkObject_sink (GtkObject *w);
-#define Val_GtkAny(w) Val_GtkObject((GtkObject*)w)
-#define Val_GtkAny_sink(w) Val_GtkObject_sink((GtkObject*)w)
-#define Val_GtkWidget Val_GtkAny
-#define Val_GtkWidget_sink Val_GtkAny_sink
-
-#ifdef GTK_NO_CHECK_CASTS
-#define check_cast(f,v) f(Pointer_val(v))
-#else
-#define check_cast(f,v) (Pointer_val(v) == NULL ? NULL : f(Pointer_val(v)))
-#endif
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkgl.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkgl.c
deleted file mode 100644 (file)
index 5e0efd7..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* $Id$ */
-
-#include <gtk/gtk.h>
-#include <gtkgl/gtkglarea.h>
-#include <caml/mlvalues.h>
-#include <caml/alloc.h>
-#include <caml/memory.h>
-#include <caml/callback.h>
-#include <caml/fail.h>
-
-#include "wrappers.h"
-#include "ml_glib.h"
-#include "ml_gdk.h"
-#include "ml_gtk.h"
-#include "gtkgl_tags.h"
-
-/* Conversion functions */
-#include "gtkgl_tags.c"
-
-#define GtkGLArea_val(val) ((GtkGLArea*)GtkObject_val(val))
-
-value ml_gtk_gl_area_new (value list, value share)
-{
-    value cursor, res;
-    int len, i;
-    int *attrs;
-
-    for (len = 0, cursor = list; cursor != Val_unit; cursor = Field(cursor,1))
-    {
-       if (Is_block(Field(cursor,0))) len += 2;
-       else len++;
-    }
-
-    attrs = (int*) stat_alloc ((len+1)*sizeof(int));
-    
-    for (i = 0, cursor = list; cursor != Val_unit; cursor = Field(cursor,1))
-    {
-       value option = Field(cursor,0);
-       if (Is_block(option)) {
-           attrs[i++] = Visual_options_val(Field(option,0));
-           attrs[i++] = Int_val(Field(option,1));
-       }
-       else attrs[i++] = Visual_options_val(option);
-    }
-    attrs[i] = GDK_GL_NONE;
-
-    res = Val_GtkObject
-       ((GtkObject*)gtk_gl_area_share_new(attrs,GtkGLArea_val(share)));
-    stat_free(attrs);
-    return res;
-}
-
-ML_1 (gtk_gl_area_make_current, GtkGLArea_val, Val_bool)
-ML_1 (gtk_gl_area_swapbuffers, GtkGLArea_val, Unit)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkxmhtml.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/ml_gtkxmhtml.c
deleted file mode 100644 (file)
index 3f9c3c6..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* $Id$ */
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include <gtk-xmhtml/gtk-xmhtml.h>
-#include <caml/mlvalues.h>
-#include <caml/alloc.h>
-#include <caml/memory.h>
-#include <caml/callback.h>
-#include <caml/fail.h>
-
-#include "wrappers.h"
-#include "ml_glib.h"
-#include "ml_gdk.h"
-#include "ml_gtk.h"
-#include "gtkxmhtml_tags.h"
-
-/* conversion functions */
-
-#include "gtkxmhtml_tags.c"
-
-Make_Flags_val (Line_type_val)
-
-#define GtkXmHTML_val(val) ((GtkXmHTML*)GtkObject_val(val))
-
-ML_0 (gtk_xmhtml_new, Val_GtkAny_sink)
-ML_1 (gtk_xmhtml_freeze, GtkXmHTML_val, Unit)
-ML_1 (gtk_xmhtml_thaw, GtkXmHTML_val, Unit)
-ML_2 (gtk_xmhtml_source, GtkXmHTML_val, String_val, Unit)
-ML_2 (gtk_xmhtml_set_string_direction, GtkXmHTML_val, String_direction_val,
-      Unit)
-ML_2 (gtk_xmhtml_set_alignment, GtkXmHTML_val, Position_val, Unit)
-/* ML_2 (gtk_xmhtml_outline, GtkXmHTML_val, Bool_val, Unit) */
-ML_3 (gtk_xmhtml_set_font_familty, GtkXmHTML_val, String_val, String_val, Unit)
-ML_3 (gtk_xmhtml_set_font_familty_fixed, GtkXmHTML_val, String_val, String_val,
-      Unit)
-ML_2 (gtk_xmhtml_set_font_charset, GtkXmHTML_val, String_val, Unit)
-ML_2 (gtk_xmhtml_set_allow_body_colors, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_hilight_on_enter, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_anchor_underline_type, GtkXmHTML_val, Flags_Line_type_val,
-      Unit)
-ML_2 (gtk_xmhtml_set_anchor_visited_underline_type, GtkXmHTML_val,
-      Flags_Line_type_val, Unit)
-ML_2 (gtk_xmhtml_set_anchor_target_underline_type, GtkXmHTML_val,
-      Flags_Line_type_val, Unit)
-ML_2 (gtk_xmhtml_set_allow_color_switching, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_dithering, GtkXmHTML_val, Dither_type_val, Unit)
-ML_2 (gtk_xmhtml_set_allow_font_switching, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_max_image_colors, GtkXmHTML_val, Int_val, Unit)
-ML_2 (gtk_xmhtml_set_allow_images, GtkXmHTML_val, Bool_val, Unit)
-ML_4 (gtk_xmhtml_set_plc_intervals, GtkXmHTML_val, Int_val, Int_val, Int_val,
-      Unit)
-/* ML_2 (gtk_xmhtml_set_def_body_image_url, GtkXmHTML_val, String_val, Unit) */
-ML_2 (gtk_xmhtml_set_anchor_buttons, GtkXmHTML_val, Bool_val, Unit)
-value ml_gtk_xmhtml_set_anchor_cursor(value html, value cursor)
-{
-     gtk_xmhtml_set_anchor_cursor
-          (GtkXmHTML_val(html), Option_val(cursor, GdkCursor_val, NULL),
-           Bool_val(cursor));
-     return Val_unit;
-}
-ML_2 (gtk_xmhtml_set_topline, GtkXmHTML_val, Int_val, Unit)
-ML_1 (gtk_xmhtml_get_topline, GtkXmHTML_val, Val_int)
-ML_2 (gtk_xmhtml_set_freeze_animations, GtkXmHTML_val, Bool_val, Unit)
-/* ML_1 (gtk_xmhtml_get_source, GtkXmHTML_val, copy_string) */
-ML_2 (gtk_xmhtml_set_screen_gamma, GtkXmHTML_val, Float_val, Unit)
-/* ML_2 (gtk_xmhtml_set_event_proc, GtkXmHTML_val, ???, Unit) */
-ML_2 (gtk_xmhtml_set_perfect_colors, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_uncompress_command, GtkXmHTML_val, String_val, Unit)
-ML_2 (gtk_xmhtml_set_strict_checking, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_bad_html_warnings, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_allow_form_coloring, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_imagemap_draw, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_mime_type, GtkXmHTML_val, String_val, Unit)
-ML_2 (gtk_xmhtml_set_alpha_processing, GtkXmHTML_val, Bool_val, Unit)
-ML_2 (gtk_xmhtml_set_rgb_conv_mode, GtkXmHTML_val, Dither_type_val, Unit)
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2conv.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2conv.ml
deleted file mode 100644 (file)
index 6730d14..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-(* $Id$ *)
-
-(* Compile a list of variant tags into CPP defines *) 
-
-(* hash_variant, from ctype.ml *)
-
-let hash_variant s =
-  let accu = ref 0 in
-  for i = 0 to String.length s - 1 do
-    accu := 223 * !accu + Char.code s.[i]
-  done;
-  (* reduce to 31 bits *)
-  accu := !accu land (1 lsl 31 - 1);
-  (* make it signed for 64 bits architectures *)
-  if !accu > 0x3FFFFFFF then !accu - (1 lsl 31) else !accu
-
-open Genlex
-
-let lexer = make_lexer ["type"; "public"; "exception"; "="; "["; "]"; "`"; "|"]
-
-let exn_name = ref "invalid_argument"
-
-let may_string = parser
-    [< ' String s >] -> s
-  | [< >] -> ""
-
-let may_bar = parser
-    [< ' Kwd "|" >] -> ()
-  | [< >] -> ()
-
-let rec ident_list = parser
-    [< ' Kwd "`"; ' Ident x; trans = may_string; _ = may_bar; s >] ->
-      (x, trans) :: ident_list s
-  | [< >] -> []
-
-let may_public = parser
-    [< ' Kwd "public" >] -> true
-  | [< >] -> false
-
-open Printf
-
-let declaration = parser
-    [< ' Kwd "type"; public = may_public; ' Ident name; ' Kwd "=";
-       prefix = may_string; ' Kwd "["; _ = may_bar;
-       tags = ident_list; ' Kwd "]"; suffix = may_string >] ->
-    let ctag tag trans =
-      if trans <> "" then trans else
-      let tag =
-       if tag.[0] = '_' then
-         String.sub tag ~pos:1 ~len:(String.length tag -1)
-       else tag
-      in
-      match
-       if prefix = "" then None, ""
-       else
-         Some (prefix.[String.length prefix - 1]), 
-         String.sub prefix ~pos:0 ~len:(String.length prefix - 1)
-      with
-       Some '#', prefix ->
-         prefix ^ String.uncapitalize tag ^ suffix
-      |        Some '^', prefix ->
-         prefix ^ String.uppercase tag ^ suffix
-      |        _ ->
-         prefix ^ tag ^ suffix
-    and cname =
-      String.capitalize name
-    in
-    let tags =
-      Sort.list tags
-       ~order:(fun (tag1,_) (tag2,_) -> hash_variant tag1 < hash_variant tag2)
-    in
-    printf "/* %s : conversion table */\n" name;
-    if not public then printf "static ";
-    printf "lookup_info ml_table_%s[] = {\n" name;
-    printf "  { 0, %d },\n" (List.length tags);
-    List.iter tags ~f:
-      begin fun (tag,trans) ->
-       printf "  { MLTAG_%s, %s },\n" tag (ctag tag trans)
-      end;
-    printf "};\n\n";
-    printf "#define Val_%s(data) ml_lookup_from_c (ml_table_%s, data)\n"
-      name name;
-    printf "#define %s_val(key) ml_lookup_to_c (ml_table_%s, key)\n\n"
-      cname name;
-  | [< 'Kwd"exception"; 'Ident name >] ->
-      exn_name := name
-  | [< >] -> raise End_of_file
-
-let main () =
-  let chars = Stream.of_channel stdin in
-  let s = lexer chars in
-  try
-    while true do declaration s done
-  with End_of_file -> ()
-  | Stream.Error err ->
-      Printf.eprintf "Parsing error \"%s\" at character %d on input stream"
-        err (Stream.count chars)
-
-let _ = Printexc.print main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2def.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/var2def.ml
deleted file mode 100644 (file)
index 617c4c6..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-(* $Id$ *)
-
-(* Compile a list of variant tags into CPP defines *) 
-
-(* hash_variant, from ctype.ml *)
-
-let hash_variant s =
-  let accu = ref 0 in
-  for i = 0 to String.length s - 1 do
-    accu := 223 * !accu + Char.code s.[i]
-  done;
-  (* reduce to 31 bits *)
-  accu := !accu land (1 lsl 31 - 1);
-  (* make it signed for 64 bits architectures *)
-  if !accu > 0x3FFFFFFF then !accu - (1 lsl 31) else !accu
-
-open Genlex
-
-let lexer = make_lexer ["`"; "["; "]"; "|"]
-
-let main () =
-  let s = lexer (Stream.of_channel stdin) in
-  let tags = Hashtbl.create 57 in
-  while match s with parser
-    [< ' Kwd "`"; ' Ident tag >] ->
-      let hash = hash_variant tag in
-      begin try
-       let tag' = Hashtbl.find tags hash in
-       if tag <> tag' then
-         failwith (String.concat ~sep:" " ["Doublon tag:";tag;"and";tag'])
-      with Not_found ->
-       Hashtbl.add ~key:hash ~data:tag tags;
-       print_string "#define MLTAG_";
-       print_string tag;
-       print_string "\tVal_int(";
-       print_int hash;
-       print_string ")\n"
-      end;
-      true
-  | [< ' _ >] -> true
-  | [< >] -> false
-  do () done
-
-let _ = Printexc.print main ()
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.c b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.c
deleted file mode 100644 (file)
index 7e83aa9..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* $Id$ */
-
-#include <string.h>
-#include <caml/mlvalues.h>
-#include <caml/alloc.h>
-#include <caml/memory.h>
-#include <caml/callback.h>
-#include <caml/fail.h>
-
-#include "wrappers.h"
-
-value copy_memblock_indirected (void *src, asize_t size)
-{
-    value ret = alloc (Wosize_asize(size)+2, Abstract_tag);
-    if (!src) ml_raise_null_pointer ();
-    
-    Field(ret,1) = 2;
-    memcpy (&Field(ret,2), src, size);
-    return ret;
-}
-
-value ml_some (value v)
-{
-     CAMLparam1(v);
-     value ret = alloc_small(1,0);
-     Field(ret,0) = v;
-     CAMLreturn(ret);
-}
-
-void ml_raise_null_pointer ()
-{
-  static value * exn = NULL;
-  if (exn == NULL)
-      exn = caml_named_value ("null_pointer");
-  raise_constant (*exn);
-}   
-
-value Val_pointer (void *ptr)
-{
-    value ret = alloc_small (2, Abstract_tag);
-    if (!ptr) ml_raise_null_pointer ();
-    Field(ret,1) = (value)ptr;
-    return ret;
-}
-
-value copy_string_check (const char*str)
-{
-    if (!str) ml_raise_null_pointer ();
-    return copy_string ((char*) str);
-}
-
-value copy_string_or_null (const char*str)
-{
-    return copy_string (str ? (char*) str : "");
-}
-
-value ml_lookup_from_c (lookup_info *table, int data)
-{
-    int i;
-    for (i = table[0].data; i > 0; i--)
-       if (table[i].data == data) return table[i].key;
-    invalid_argument ("ml_lookup_from_c");
-}
-    
-int ml_lookup_to_c (lookup_info *table, value key)
-{
-    int first = 1, last = table[0].data, current;
-
-    while (first < last) {
-       current = (first+last)/2;
-       if (table[current].key >= key) last = current;
-       else first = current + 1;
-    }
-    if (table[first].key == key) return table[first].data;
-    invalid_argument ("ml_lookup_to_c");
-}
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.h b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/wrappers.h
deleted file mode 100644 (file)
index 1fcffcf..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/* $Id$ */
-
-#ifndef _wrappers_
-#define _wrappers_
-
-#include <caml/mlvalues.h>
-#include <caml/fail.h>
-
-value copy_memblock_indirected (void *src, asize_t size);
-value ml_some (value);
-void ml_raise_null_pointer (void) Noreturn;
-value Val_pointer (void *);
-value copy_string_check (const char*);
-value copy_string_or_null (const char *);
-
-typedef struct { value key; int data; } lookup_info;
-value ml_lookup_from_c (lookup_info *table, int data);
-int ml_lookup_to_c (lookup_info *table, value key);
-
-/* Wrapper generators */
-
-#define ML_0(cname, conv) \
-value ml_##cname (value unit) { return conv (cname ()); }
-#define ML_1(cname, conv1, conv) \
-value ml_##cname (value arg1) { return conv (cname (conv1 (arg1))); }
-#define ML_1_post(cname, conv1, conv, post) \
-value ml_##cname (value arg1) \
-{ value ret = conv (cname (conv1(arg1))); post; return ret; }
-#define ML_2(cname, conv1, conv2, conv) \
-value ml_##cname (value arg1, value arg2) \
-{ return conv (cname (conv1(arg1), conv2(arg2))); }
-#define ML_2_name(mlname, cname, conv1, conv2, conv) \
-value mlname (value arg1, value arg2) \
-{ return conv (cname (conv1(arg1), conv2(arg2))); }
-#define ML_3(cname, conv1, conv2, conv3, conv) \
-value ml_##cname (value arg1, value arg2, value arg3) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3))); }
-#define ML_3_name(mlname, cname, conv1, conv2, conv3, conv) \
-value mlname (value arg1, value arg2, value arg3) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3))); }
-#define ML_4(cname, conv1, conv2, conv3, conv4, conv) \
-value ml_##cname (value arg1, value arg2, value arg3, value arg4) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4))); }
-#define ML_4_name(mlname, cname, conv1, conv2, conv3, conv4, conv) \
-value mlname (value arg1, value arg2, value arg3, value arg4) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4))); }
-#define ML_5(cname, conv1, conv2, conv3, conv4, conv5, conv) \
-value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \
-                     conv5(arg5))); }
-#define ML_6(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv) \
-value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \
-                 value arg6) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \
-                     conv5(arg5), conv6(arg6))); }
-#define ML_7(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv) \
-value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \
-                 value arg6, value arg7) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \
-                     conv5(arg5), conv6(arg6), conv7(arg7))); }
-#define ML_8(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \
-            conv) \
-value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \
-                 value arg6, value arg7, value arg8) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \
-                     conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8))); }
-#define ML_9(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \
-             conv9, conv) \
-value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \
-                 value arg6, value arg7, value arg8, value arg9) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \
-                     conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \
-                     conv9(arg9))); }
-#define ML_10(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \
-             conv9, conv10, conv) \
-value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \
-                 value arg6, value arg7, value arg8, value arg9, value arg10)\
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \
-                     conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \
-                     conv9(arg9), conv10(arg10))); }
-#define ML_11(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \
-             conv9, conv10, conv11, conv) \
-value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \
-                 value arg6, value arg7, value arg8, value arg9, value arg10,\
-                 value arg11) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \
-                     conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \
-                     conv9(arg9), conv10(arg10), conv11(arg11))); }
-#define ML_12(cname, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8, \
-             conv9, conv10, conv11, conv12, conv) \
-value ml_##cname (value arg1, value arg2, value arg3, value arg4, value arg5, \
-                 value arg6, value arg7, value arg8, value arg9, value arg10,\
-                 value arg11, value arg12) \
-{ return conv (cname (conv1(arg1), conv2(arg2), conv3(arg3), conv4(arg4), \
-                     conv5(arg5), conv6(arg6), conv7(arg7), conv8(arg8), \
-                     conv9(arg9), conv10(arg10), conv11(arg11), \
-                     conv12(arg12))); }
-
-/* Use with care: needs the argument index */
-#define Ignore(x)
-#define Insert(x) (x),
-#define Split(x,f,g) f(x), g(x) Ignore
-#define Split3(x,f,g,h) f(x), g(x), h(x) Ignore
-#define Pair(x,f,g) f(Field(x,0)), g(Field(x,1)) Ignore
-#define Triple(x,f,g,h) f(Field(x,0)), g(Field(x,1)), h(Field(x,2)) Ignore
-
-/* For more than 5 arguments */
-#define ML_bc6(cname) \
-value cname##_bc (value *argv, int argn) \
-{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5]); }
-#define ML_bc7(cname) \
-value cname##_bc (value *argv, int argn) \
-{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6]); }
-#define ML_bc8(cname) \
-value cname##_bc (value *argv, int argn) \
-{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \
-              argv[7]); }
-#define ML_bc9(cname) \
-value cname##_bc (value *argv, int argn) \
-{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \
-              argv[7],argv[8]); }
-#define ML_bc10(cname) \
-value cname##_bc (value *argv, int argn) \
-{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \
-              argv[7],argv[8],argv[9]); }
-#define ML_bc11(cname) \
-value cname##_bc (value *argv, int argn) \
-{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \
-              argv[7],argv[8],argv[9],argv[10]); }
-#define ML_bc12(cname) \
-value cname##_bc (value *argv, int argn) \
-{ return cname(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6], \
-              argv[7],argv[8],argv[9],argv[10],argv[11]); }
-
-/* result conversion */
-#define Unit(x) ((x), Val_unit)
-#define Id(x) x
-#define Val_char Val_int
-
-/* parameter conversion */
-#define Bool_ptr(x) ((long) x - 1)
-#define Char_val Int_val
-#define Float_val(x) ((float)Double_val(x))
-
-#define Option_val(val,unwrap,default) \
-((long)val-1 ? unwrap(Field(val,0)) : default)
-#define String_option_val(s) Option_val(s,String_val,NULL)
-
-/* Utility */
-
-#define Copy_array(ret,l,src,conv) \
- if (!l) ret = Atom(0); \
- else if (l <= Max_young_wosize) { int i; ret = alloc_tuple(l); \
-   for(i=0;i<l;i++) Field(ret,i) = conv(src[i]); } \
- else { int i; ret = alloc_shr(l,0); \
-   for(i=0;i<l;i++) initialize (&Field(ret,i), conv(src[i])); }
-
-#define Make_Val_final_pointer(type, init, final, adv) \
-static void ml_final_##type (value val) \
-{ if (Field(val,1)) final ((type*)Field(val,1)); } \
-value Val_##type (type *p) \
-{ value ret; if (!p) ml_raise_null_pointer(); \
-  ret = alloc_final (2, ml_final_##type, adv, 1000); \
-  initialize (&Field(ret,1), (value) p); init(p); return ret; }
-
-#define Make_Val_final_pointer_ext(type, ext, init, final, adv) \
-static void ml_final_##type##ext (value val) \
-{ if (Field(val,1)) final ((type*)Field(val,1)); } \
-value Val_##type##ext (type *p) \
-{ value ret; if (!p) ml_raise_null_pointer(); \
-  ret = alloc_final (2, ml_final_##type##ext, adv, 1000); \
-  initialize (&Field(ret,1), (value) p); init(p); return ret; }
-
-#define Pointer_val(val) ((void*)Field(val,1))
-#define MLPointer_val(val) (Field(val,1) == 2 ? &Field(val,2) : (void*)Field(val,1))
-
-#define Val_addr(ptr) (1+(value)ptr)
-#define Addr_val(val) ((void*)(val-1))
-
-#define Wosize_asize(x) ((x-1)/sizeof(value)+1)
-#define Wosizeof(x) Wosize_asize(sizeof(x))
-
-#define Make_Extractor(name,conv1,field,conv2) \
-value ml_##name##_##field (value val) \
-{ return conv2 ((conv1(val))->field); }
-
-#define Make_Setter(name,conv1,conv2,field) \
-value ml_##name##_##field (value val, value new) \
-{ (conv1(val))->field = conv2(new); return Val_unit; }
-
-#define Make_Array_Extractor(name,conv1,conv2,field,conv) \
-value ml_##name##_##field (value val, value index) \
-{ return conv ((conv1(val))->field[conv2(index)]); }
-
-#define Make_Array_Setter(name,conv1,conv2,conv3,field) \
-value ml_##name##_##field (value val, value index, value new) \
-{ (conv1(val))->field[conv2(index)] = conv3(new); return Val_unit; }
-
-/* ML value is [flag list] */
-#define Make_Flags_val(conv) \
-int Flags_##conv (value list) \
-{ int flags = 0L; \
-  while Is_block(list) { flags |= conv(Field(list,0)); list = Field(list,1); }\
-  return flags; }
-
-/* ML value is [flag list option] */
-#define Make_OptFlags_val(conv) \
-int OptFlags_##conv (value list) \
-{ int flags = 0L; \
-  if Is_block(list) list = Field(list,0); \
-  while Is_block(list) { flags |= conv(Field(list,0)); list = Field(list,1); }\
-  return flags; }
-
-#define Val_copy(val) copy_memblock_indirected (&val, sizeof(val))
-#define Val_string copy_string_check
-#define Val_optstring copy_string_or_null
-#define Optstring_val(v) (string_length(v) ? String_val(v) : (char*)NULL)
-#define Val_option(v,f) (v ? ml_some(f(v)) : Val_unit)
-
-#define Check_null(v) (v ? v : (ml_raise_null_pointer (), v))
-
-#endif /* _wrappers_ */
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.i386.rpm b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.i386.rpm
deleted file mode 100644 (file)
index e759a66..0000000
Binary files a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.i386.rpm and /dev/null differ
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.spec b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.spec
deleted file mode 100644 (file)
index 63b197d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Summary: GtkMathView : the binding for lablgtk of the GtkMathView widget
-Name: lablgtk-20000829_gtkmathview
-Version: 0.1.0
-Release: 1
-Copyright: LGPL
-Group: Development/Libraries
-Requires: lablgtk_20000829 gtkmathview
-Source: www.cs.unibo.it:/~lpadovan/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz
-%description
-GtkMathView is the binding for lablgtk of the GtkMathView widget.
-
-%prep
-%setup
-
-%build
-make
-make opt
-
-%install
-make install
-
-%files
-%doc COPYING
-
-/usr/lib/ocaml/lablgtk/mathview
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.src.rpm b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.src.rpm
deleted file mode 100644 (file)
index 3377d3c..0000000
Binary files a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0-1.src.rpm and /dev/null differ
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz
deleted file mode 100644 (file)
index 73f44b3..0000000
Binary files a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz and /dev/null differ
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/.depend b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/.depend
deleted file mode 100644 (file)
index 600449b..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-gMathView.cmo: gtkMathView.cmo gtk_mathview.cmo 
-gMathView.cmx: gtkMathView.cmx gtk_mathview.cmx 
-gtkMathView.cmo: gtk_mathview.cmo 
-gtkMathView.cmx: gtk_mathview.cmx 
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/COPYING b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/COPYING
deleted file mode 100644 (file)
index 20b480a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-This library is made available under the LGPL.
-You should have got a copy of the LGPL with Objective Caml.
-The LGPL applies to all the files in this directory, but not in
-subdirectories.
-
-For the test subdirectory, there is no specific licensing policy,
-but you may freely take inspiration from the code, and copy parts of
-it in your application.
-
-Author:
-       Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/Makefile
deleted file mode 100644 (file)
index 1195de5..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-# Makefile for lablgtk_mathview.
-
-LABLGTKDIR = /usr/local/lib/ocaml/lablgtk
-MLFLAGS += -I $(LABLGTKDIR)
-
-TARGETS = ml_gtk_mathview.o lablgtkmathview.cma
-
-all: $(TARGETS)
-
-opt: lablgtkmathviewopt
-
-configure:
-       @rm -f config.make
-       @$(MAKE) --no-print-directory -f configure.mk
-
-depend:
-       @rm -f .depend
-       @$(MAKE) --no-print-directory -f configure.mk .depend
-
-.depend config.make:
-       @$(MAKE) --no-print-directory -f configure.mk
-
-COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c
-LINKER = $(CAMLC) $(MLFLAGS)
-COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c
-LINKOPT = $(CAMLOPT) $(MLFLAGS)
-
-include config.make
-
-INSTALLDIR = $(LIBDIR)/lablgtk/mathview
-
-MLLIBS = lablgtkmathview.cma
-CLIBS = 
-MLLINK = unix.cma str.cma
-
-ifdef DEBUG
-CFLAGS = -g $(GTKCFLAGS)
-MLLINK += -cclib -lcamlrund
-MLFLAGS += -g
-else
-CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS)
-endif
-
-THFLAGS = -thread
-THLINK = unix.cma threads.cma
-
-ifdef USE_CC
-CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS)
-else
-CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)"
-endif
-
-# Rules
-.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def
-.c.o:
-       $(CCOMPILER) $<
-.ml.cmo:
-       $(COMPILER) $<
-.mli.cmi:
-       $(COMPILER) $<
-.ml.cmx:
-       $(COMPOPT) $<
-.var.h:
-       ./var2def < $< > $@
-.var.c:
-       ./var2conv < $< > $@
-
-# Targets
-COBJS = ml_gtk_mathview.o
-MLOBJS = gtk_mathview.cmo gtkMathView.cmo gMathView.cmo
-ALLOBJS = $(MLOBJS)
-
-lablgtkmathviewopt: $(CLIBS) $(MLLIBS:.cma=.cmxa)
-
-install:
-       if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi
-       cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR)
-       if test -f *.mli ; then cp *.mli $(INSTALLDIR) ; fi
-       cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR)
-       cp $(MLLIBS) $(INSTALLDIR)
-       cp $(COBJS) $(INSTALLDIR)
-       if test ! -z "$(CLIBS)" ; then cp $(CLIBS) $(INSTALLDIR) ; fi
-       if test -f lablgtkmathview.cmxa; then \
-          cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \
-             $(INSTALLDIR); fi
-
-lablgtkmathview.cma: $(MLOBJS)
-       $(LINKER) -a -custom -o $@ $(MLOBJS) $(GTKLIBS) $(GTKMATHVIEWLIBS)
-lablgtkmathview.cmxa: $(MLOBJS:.cmo=.cmx)
-       $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) $(GTKLIBS) $(GTKMATHVIEWLIBS)
-
-ml_gtk.o: $(LABLGTKDIR)/gtk_tags.c $(LABLGTKDIR)/gtk_tags.h \
-          $(LABLGTKDIR)/ml_gtk.h $(LABLGTKDIR)/ml_gdk.h $(LABLGTKDIR)/wrappers.h
-
-clean:
-       rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS)
-
-include .depend
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/config.make b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/config.make
deleted file mode 100644 (file)
index d50ffb5..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-CAMLC=ocamlc
-CAMLOPT=ocamlopt
-USE_GL=
-USE_GNOME=
-USE_CC=
-DEBUG=
-CC=cc
-RANLIB=ranlib
-LIBDIR=/usr/lib/ocaml
-BINDIR=/usr/bin
-INSTALLDIR=/usr/lib/ocaml/lablgtk/mathview
-GTKCFLAGS=-I/usr/lib/glib/include -I/usr/X11R6/include -I/usr/lib/ocaml/lablgtk
-GTKLIBS=-ccopt -L/usr/lib -ccopt -L/usr/X11R6/lib -cclib -lgtk -cclib -lgdk -ccopt -rdynamic -cclib -lgmodule -cclib -lglib -cclib -ldl -cclib -lXi -cclib -lXext -cclib -lX11 -cclib -lm
-GTKMATHVIEWLIBS=-ccopt -L/usr/local/lib/gtkmathview -cclib -lgtkmathview 
-GNOMELIBS=
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/configure.mk b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/configure.mk
deleted file mode 100644 (file)
index 73cfc3d..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# makefile for configuring lablGTK_mathview
-
-# Default compilers
-CAMLC = ocamlc
-CAMLOPT = ocamlopt
-
-# Default installation directories
-BINDIR = `$(GETBINDIR)`
-INSTALLDIR = $(LIBDIR)/lablgtk/mathview
-
-# Autoconf
-GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//'
-LIBDIR = `$(GETLIBDIR)`
-GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|'
-GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/'
-
-ifdef USE_GNOME
-GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir
-GNOMELIBS = `gnome-config --libs gtkxmhtml`
-else
-GTKGETCFLAGS = gtk-config --cflags
-endif
-
-GTKGETLIBS = gtk-config --libs
-
-configure: .depend config.make
-
-.depend:
-       ocamldep *.ml *.mli > .depend
-
-config.make:
-       @echo CAMLC=$(CAMLC) > config.make
-       @echo CAMLOPT=$(CAMLOPT) >> config.make
-       @echo USE_GL=$(USE_GL) >> config.make
-       @echo USE_GNOME=$(USE_GNOME) >> config.make
-       @echo USE_CC=$(USE_CC) >> config.make
-       @echo DEBUG=$(DEBUG) >> config.make
-       @echo CC=$(CC) >> config.make
-       @echo RANLIB=`$(GETRANLIB)` >> config.make
-       @echo LIBDIR=$(LIBDIR) >> config.make
-       @echo BINDIR=`$(GETBINDIR)` >> config.make
-       @echo INSTALLDIR=$(INSTALLDIR) >> config.make
-       @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I/usr/lib/ocaml/lablgtk >> config.make
-       @echo GTKLIBS=`$(GTKGETLIBS)` | \
-         sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \
-         >> config.make
-       #<CSC>
-       echo GTKMATHVIEWLIBS="-ccopt -L/usr/local/lib/gtkmathview -cclib -lgtkmathview " >> config.make
-       #</CSC>
-       @echo GNOMELIBS=$(GNOMELIBS) | \
-         sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \
-         >> config.make
-       cat config.make
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gMathView.ml
deleted file mode 100644 (file)
index b79c812..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-open Gaux
-open Gtk
-open Gtk_mathview
-open GtkBase
-open GtkMathView
-open GObj
-
-exception ErrorLoadingFile of string;;
-
-class math_view_signals obj = object
-  inherit GContainer.container_signals obj
-  method jump = GtkSignal.connect ~sgn:MathView.Signals.jump obj ~after
-  method clicked = GtkSignal.connect ~sgn:MathView.Signals.clicked obj ~after
-end
-
-class math_view obj = object
- inherit GContainer.container (obj : Gtk_mathview.math_view obj)
- method connect = new math_view_signals obj
- method load ~filename =
-  if not (MathView.load obj ~filename) then raise (ErrorLoadingFile filename)
- method get_selection = MathView.get_selection obj
- method unload = MathView.unload obj
- method dump = MathView.dump obj
- method get_width = MathView.get_width obj
- method get_height = MathView.get_height obj
- method set_adjustments =
-  fun adj1 adj2 ->
-   MathView.set_adjustments obj (GData.as_adjustment adj1)
-   (GData.as_adjustment adj2)
- method get_hadjustment = new GData.adjustment (MathView.get_hadjustment obj)
- method get_vadjustment = new GData.adjustment (MathView.get_vadjustment obj)
- method get_buffer = MathView.get_buffer obj
- method get_frame = new GBin.frame (MathView.get_frame obj)
- method set_font_size = MathView.set_font_size obj
- (*method get_top = MathView.get_top obj
- method set_top = MathView.set_top obj*)
-end
-
-let math_view ?adjustmenth ?adjustmentv ?border_width ?width ?height
- ?packing ?show ()
-=
- let w =
-   MathView.create
-    ?adjustmenth:(may_map ~f:GData.as_adjustment adjustmenth)
-    ?adjustmentv:(may_map ~f:GData.as_adjustment adjustmentv)
-    ()
- in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new math_view w) ~packing ~show
-;;
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtkMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtkMathView.ml
deleted file mode 100644 (file)
index 9ed42b8..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-open Gtk
-open Gtk_mathview
-open Tags
-open GtkBase
-open Gpointer
-
-module MathView = struct
-  let cast w : math_view obj = Object.try_cast w "GtkMathView"
-  external create : Gtk.adjustment optobj -> Gtk.adjustment optobj ->
-   math_view obj = "ml_gtk_math_view_new"
-  let create ~adjustmenth ~adjustmentv () =
-   create (optboxed adjustmenth) (optboxed adjustmentv)
-  external load : [>`math_view] obj -> filename:string -> bool =
-   "ml_gtk_math_view_load"
-  external get_selection : [>`math_view] obj -> string option =
-   "ml_gtk_math_view_get_selection"
-  external unload : [>`math_view] obj -> unit =
-   "ml_gtk_math_view_unload"
-  external dump : [>`math_view] obj -> unit =
-   "ml_gtk_math_view_dump"
-  external get_width : [>`math_view] obj -> int =
-   "ml_gtk_math_view_get_width"
-  external get_height : [>`math_view] obj -> int =
-   "ml_gtk_math_view_get_height"
-  external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit =
-   "ml_gtk_math_view_set_adjustments"
-  external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj =
-   "ml_gtk_math_view_get_hadjustment"
-  external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj =
-   "ml_gtk_math_view_get_vadjustment"
-  external get_buffer : [>`math_view] obj -> Gdk.pixmap =
-   "ml_gtk_math_view_get_buffer"
-  external get_frame : [>`math_view] obj -> [`frame] obj =
-   "ml_gtk_math_view_get_frame"
-  external set_font_size : [>`math_view] obj -> int -> unit =
-   "ml_gtk_math_view_set_font_size"
-  (*external get_top : [>`math_view] obj -> (int * int) =
-   "ml_gtk_math_view_get_top"
-  external set_top : [>`math_view] obj -> int -> int -> unit =
-   "ml_gtk_math_view_set_top"*)
-
-  module Signals = struct
-    open GtkSignal
-
-    let jump : ([>`math_view],_) t =
-     let marshal_jump f _ =
-      function
-         [GtkArgv.STRING (Some str)] -> f str
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_jump"
-     in
-      { name = "jump"; marshaller = marshal_jump }
-
-    let clicked : ([>`math_view],_) t =
-     let marshal_clicked f _ =
-      function
-         [] -> f ()
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked"
-     in
-      { name = "clicked"; marshaller = marshal_clicked }
-  end
-end
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtk_mathview.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/gtk_mathview.ml
deleted file mode 100644 (file)
index 745a1ba..0000000
+++ /dev/null
@@ -1 +0,0 @@
-type math_view = [`widget|`container|`bin|`eventbox|`math_view]
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/ml_gtk_mathview.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/ml_gtk_mathview.c
deleted file mode 100644 (file)
index b16f68e..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <string.h>
-#include <gtk/gtk.h>
-#include <caml/mlvalues.h>
-#include <caml/alloc.h>
-#include <caml/memory.h>
-#include <caml/callback.h>
-#include <caml/fail.h>
-
-#include <gtkmathview/gtkmathview.h>
-#include <ml_gtk.h>
-
-#include <wrappers.h>
-#include <ml_glib.h>
-#include <ml_gdk.h>
-#include <ml_gtk.h>
-#include <gtk_tags.h>
-
-/* <CSC/>: Next row should be put in a .h of lablgtk. */
-#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val)
-
-#define GtkMathView_val(val) check_cast(GTK_MATH_VIEW,val)
-ML_2 (gtk_math_view_new,GtkAdjustment_val, GtkAdjustment_val,Val_GtkWidget_sink)
-ML_2 (gtk_math_view_load, GtkMathView_val, String_val, Val_bool)
-ML_1 (gtk_math_view_unload, GtkMathView_val, Unit)
-ML_1 (gtk_math_view_dump, GtkMathView_val, Unit)
-ML_1 (gtk_math_view_get_width, GtkMathView_val, Val_int)
-ML_1 (gtk_math_view_get_height, GtkMathView_val, Val_int)
-//ML_3 (gtk_math_view_set_top, GtkMathView_val, Int_val, Int_val, Unit)
-ML_3 (gtk_math_view_set_adjustments, GtkMathView_val, GtkAdjustment_val, GtkAdjustment_val, Unit)
-ML_1 (gtk_math_view_get_hadjustment, GtkMathView_val, Val_GtkWidget)
-ML_1 (gtk_math_view_get_vadjustment, GtkMathView_val, Val_GtkWidget)
-ML_1 (gtk_math_view_get_buffer, GtkMathView_val, Val_GdkPixmap)
-ML_1 (gtk_math_view_get_frame, GtkMathView_val, Val_GtkWidget)
-ML_2 (gtk_math_view_set_font_size, GtkMathView_val, Int_val, Unit)
-
-/*
-value ml_gtk_math_view_get_top (value arg1)
-{
-   CAMLparam1(arg1);
-   CAMLlocal1 (result);
-   int x, y;
-   gtk_math_view_get_top(GtkMathView_val (arg1), &x, &y);
-   result = alloc(2, 0);
-   Store_field(result, 0, Val_int(x));
-   Store_field(result, 0, Val_int(y));
-   CAMLreturn (result);
-}
-*/
-
-value ml_gtk_math_view_get_selection (value arg1)
-{
-   const char *stringa;
-   stringa = gtk_math_view_get_selection (GtkMathView_val (arg1));
-   return Val_option (stringa, Val_string);
-}
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/Makefile
deleted file mode 100644 (file)
index cc5bd50..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-LABLGTK_DIR = ../../lablgtk-20000829
-LABLGTK_MATHVIEW_DIR = ..
-OCAMLC = ocamlc -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) -I mlmathview
-OCAMLOPT = ocamlopt -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) -I mlmathview
-
-all: test
-opt: test.opt
-
-test: test.cmo
-       $(OCAMLC) -custom -o test lablgtk.cma gtkInit.cmo \
-                  $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cma \
-                  test.cmo \
-                  -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \
-                  -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \
-                  -L/usr/local/lib/gtkmathview -lgtkmathview \
-                  $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o"
-
-test.opt: test.cmx
-       $(OCAMLOPT) -o test.opt lablgtk.cmxa gtkInit.cmx \
-                  $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cmxa \
-                  test.cmx \
-                  -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \
-                  -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \
-                  -L/usr/local/lib/gtkmathview -lgtkmathview \
-                  $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o"
-
-.SUFFIXES: .ml .mli .cmo .cmi .cmx
-.ml.cmo:
-       $(OCAMLC) -c $<
-.mli.cmi:
-       $(OCAMLC) -c $<
-.ml.cmx:
-       $(OCAMLOPT) -c $<
-
-clean:
-       rm -f *.cm[iox] *.o test test.opt
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.ml
deleted file mode 100644 (file)
index e914f4d..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-(******************************************************************************)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 25/09/2000                                 *)
-(*                                                                            *)
-(*     This is a simple test for the OCaml (LablGtk indeed) binding of the    *)
-(*                             MathView widget                                *)
-(******************************************************************************)
-
-(* Callbacks *)
-let jump s =
- print_string ("jump: " ^ s ^ "\n") ;
- flush stdout
-;;
-
-let clicked () =
- print_string "clicked: IT WORKS\n" ;
- flush stdout
-;;
-
-let load mathview () =
- mathview#load "test.xml" ;
- print_string "load: SEEMS TO WORK\n" ;
- flush stdout
-;;
-
-exception Ok;;
-let get_selection mathview () =
- let selection =
-  match mathview#get_selection with
-     None -> "NO SELECTION"
-   | Some s -> s
- in
-  print_string ("get_selection: " ^ selection ^ "\n") ;
-  flush stdout
-;;
-
-let unload mathview () =
- mathview#unload ;
- print_string "unload: SEEMS TO WORK\n" ;
- flush stdout
-;;
-
-let dump mathview () =
- mathview#dump ;
- print_string "dump: SEEMS TO WORK\n" ;
- flush stdout
-;;
-
-let get_width mathview () =
- print_string ("get_width: " ^ string_of_int (mathview#get_width) ^ "\n") ;
- flush stdout
-;;
-
-let get_height mathview () =
- print_string ("get_height: " ^ string_of_int (mathview#get_height) ^ "\n") ;
- flush stdout
-;;
-
-let set_adjustments mathview () =
- let adj1 = GData.adjustment () in
- let adj2 = GData.adjustment () in
-  mathview#set_adjustments adj1 adj2 ;
-  adj1#set_value ((adj1#lower +. adj1#upper) /. 2.0) ;
-  adj2#set_value ((adj2#lower +. adj2#upper) /. 2.0) ;
-  print_string "set_adjustments: SEEM TO WORK\n" ;
-  flush stdout
-;;
-
-let get_hadjustment mathview () =
- let adj = mathview#get_hadjustment in
-  adj#set_value ((adj#lower +. adj#upper) /. 2.0) ;
-  print_string "get_hadjustment: SEEM TO WORK\n" ;
-  flush stdout
-;;
-
-let get_vadjustment mathview () =
- let adj = mathview#get_vadjustment in
-  adj#set_value ((adj#lower +. adj#upper) /. 2.0) ;
-  print_string "get_vadjustment: SEEM TO WORK\n" ;
-  flush stdout
-;;
-
-let get_buffer mathview () =
- let buffer = mathview#get_buffer in
-  Gdk.Draw.rectangle buffer (Gdk.GC.create buffer) ~x:0 ~y:0
-   ~width:50 ~height:50 ~filled:true () ;
-  print_string "get_buffer: SEEMS TO WORK (hint: force the widget redrawing)\n";
-  flush stdout
-;;
-
-let get_frame mathview () =
- let frame = mathview#get_frame in
-  frame#set_shadow_type `NONE ;
-  print_string "get_frame: SEEMS TO WORK\n" ;
-  flush stdout
-;;
-
-let set_font_size mathview () =
- mathview#set_font_size 24 ;
- print_string "set_font_size: FONT IS NOW 24\n" ;
- flush stdout
-;;
-(* Widget creation *)
-let main_window = GWindow.window ~title:"GtkMathView test" () in
-let vbox = GPack.vbox ~packing:main_window#add () in
-let sw = GBin.scrolled_window ~width:50 ~height:50 ~packing:vbox#pack () in
-(*let mathview = GMathView.math_view ~packing:sw#add_with_viewport ~width:50 ~height:50 () in*)
-let mathview = GMathView.math_view ~packing:sw#add ~width:50 ~height:50 () in
-let hbox = GPack.hbox ~packing:vbox#pack () in
-let button_load = GButton.button ~label:"load" ~packing:hbox#pack () in
-let button_get_selection = GButton.button ~label:"get_selection" ~packing:hbox#pack () in
-let button_unload = GButton.button ~label:"unload" ~packing:hbox#pack () in
-let button_dump = GButton.button ~label:"dump" ~packing:hbox#pack () in
-let button_get_width = GButton.button ~label:"get_width" ~packing:hbox#pack () in
-let button_get_height = GButton.button ~label:"get_height" ~packing:hbox#pack () in
-let button_set_adjustments = GButton.button ~label:"set_adjustments" ~packing:hbox#pack () in
-let button_get_hadjustment = GButton.button ~label:"get_hadjustment" ~packing:hbox#pack () in
-let button_get_vadjustment = GButton.button ~label:"get_vadjustment" ~packing:hbox#pack () in
-let button_get_buffer = GButton.button ~label:"get_buffer" ~packing:hbox#pack () in
-let button_get_frame = GButton.button ~label:"get_frame" ~packing:hbox#pack () in
-let button_set_font_size = GButton.button ~label:"set_font_size" ~packing:hbox#pack () in
-(* Signals connection *)
-ignore(button_load#connect#clicked (load mathview)) ;
-ignore(button_get_selection#connect#clicked (get_selection mathview)) ;
-ignore(button_unload#connect#clicked (unload mathview)) ;
-ignore(button_dump#connect#clicked (dump mathview)) ;
-ignore(button_get_width#connect#clicked (get_width mathview)) ;
-ignore(button_get_height#connect#clicked (get_height mathview)) ;
-ignore(button_set_adjustments#connect#clicked (set_adjustments mathview)) ;
-ignore(button_get_hadjustment#connect#clicked (get_hadjustment mathview)) ;
-ignore(button_get_vadjustment#connect#clicked (get_vadjustment mathview)) ;
-ignore(button_get_buffer#connect#clicked (get_buffer mathview)) ;
-ignore(button_get_frame#connect#clicked (get_frame mathview)) ;
-ignore(button_set_font_size#connect#clicked (set_font_size mathview)) ;
-ignore(mathview#connect#jump jump) ;
-ignore(mathview#connect#clicked clicked) ;
-(* Main Loop *)
-main_window#show () ;
-GMain.Main.main ()
-;;
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0/test/test.xml
deleted file mode 100644 (file)
index b0f8c15..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-<math display="block">
-  <mrow helm:xref="SELECTION OK">
-    <mo>&int;</mo>
-    <mo>&ApplyFunction;</mo>
-    <mfrac>
-      <mrow>
-        <mrow>
-          <mi>a</mi>
-         <mo>&InvisibleTimes;</mo>
-         <mi>x</mi>
-       </mrow>
-       <mo>+</mo>
-       <mi>b</mi>
-      </mrow>
-      <mrow>
-        <msup>
-         <mi>x</mi>
-         <mn>2</mn>
-       </msup>
-       <mo>+</mo>
-       <mrow>
-         <mi>p</mi>
-         <mo>&InvisibleTimes;</mo>
-         <mi>x</mi>
-       </mrow>
-       <mo>+</mo>
-       <mi>q</mi>
-      </mrow>
-    </mfrac>
-  </mrow>
-  <mo fontstyle="italic">d</mo>
-  <mi>x</mi>
-  <mo>=</mo>
-  <mrow>
-    <mrow>
-      <mfrac><mi>a</mi><mn>2</mn></mfrac>
-      <mo>&InvisibleTimes;</mo>
-      <mrow>
-        <mi>ln</mi>
-       <mo>&ApplyFunction;</mo>
-       <mrow>
-         <mo>(</mo>
-         <mrow>
-           <msup><mi>x</mi><mn>2</mn></msup>
-           <mo>+</mo>
-           <mrow>
-             <mi>p</mi>
-             <mo>&InvisibleTimes;</mo>
-             <mi>x</mi>
-           </mrow>
-           <mo>+</mo>
-           <mi>q</mi>
-         </mrow>
-         <mo>)</mo>
-       </mrow>
-      </mrow>
-    </mrow>
-    <mo>+</mo>
-    <mrow>
-      <mfrac>
-        <mrow>
-         <mrow>
-           <mn>2</mn>
-           <mo>&InvisibleTimes;</mo>
-           <mi>b</mi>
-         </mrow>
-         <mo>-</mo>
-         <mrow>
-           <mi>a</mi>
-           <mo>&InvisibleTimes;</mo>
-           <mi>p</mi>
-         </mrow>
-       </mrow>
-       <msqrt>
-         <mrow>
-           <mrow>
-             <mn>4</mn>
-             <mo>&InvisibleTimes;</mo>
-             <mi>q</mi>
-           </mrow>
-           <mo>-</mo>
-           <msup>
-             <mi>p</mi>
-             <mn>2</mn>
-           </msup>
-         </mrow>
-       </msqrt>
-      </mfrac>
-      <mo>&InvisibleTimes;</mo>
-      <mrow>
-        <mi xlink:href="JUMPS WORK">arctg</mi>
-       <mo>&ApplyFunction;</mo>
-       <mfrac>
-         <mrow>
-           <mrow>
-             <mn>2</mn>
-             <mo>&InvisibleTimes;</mo>
-             <mi>x</mi>
-           </mrow>
-           <mo>+</mo>
-           <mi>p</mi>
-         </mrow>
-         <msqrt>
-           <mrow>
-             <mrow>
-               <mn>4</mn>
-               <mo>&InvisibleTimes;</mo>
-               <mi>q</mi>
-             </mrow>
-             <mo>-</mo>
-             <msup>
-               <mi>p</mi>
-               <mn>2</mn>
-             </msup>
-           </mrow>
-         </msqrt>
-       </mfrac>
-      </mrow>
-    </mrow>
-    <mo>+</mo>
-    <mi>c</mi>
-  </mrow>  
-</math>
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0-1.spec b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0-1.spec
deleted file mode 100644 (file)
index 59a3298..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Summary: GtkMathView : the binding for lablgtk of the GtkMathView widget
-Name: lablgtk-20000829_gtkmathview
-Version: 0.2.0
-Release: 1
-Copyright: LGPL
-Group: Development/Libraries
-Requires: lablgtk_20000829 gtkmathview
-Source: www.cs.unibo.it:/~lpadovan/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.1.0.tar.gz
-%description
-GtkMathView is the binding for lablgtk of the GtkMathView widget.
-
-%prep
-%setup
-
-%build
-make
-make opt
-
-%install
-make install
-
-%files
-%doc COPYING
-
-/usr/lib/ocaml/lablgtk/mathview
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0.tar.gz b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0.tar.gz
deleted file mode 100644 (file)
index 489f3c7..0000000
Binary files a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0.tar.gz and /dev/null differ
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/.cvsignore
deleted file mode 100644 (file)
index 8e6f4f9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.cmi *.cmo *.cmx *.cma *.cmxa test test.opt
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/.depend b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/.depend
deleted file mode 100644 (file)
index 600449b..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-gMathView.cmo: gtkMathView.cmo gtk_mathview.cmo 
-gMathView.cmx: gtkMathView.cmx gtk_mathview.cmx 
-gtkMathView.cmo: gtk_mathview.cmo 
-gtkMathView.cmx: gtk_mathview.cmx 
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/COPYING b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/COPYING
deleted file mode 100644 (file)
index 20b480a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-This library is made available under the LGPL.
-You should have got a copy of the LGPL with Objective Caml.
-The LGPL applies to all the files in this directory, but not in
-subdirectories.
-
-For the test subdirectory, there is no specific licensing policy,
-but you may freely take inspiration from the code, and copy parts of
-it in your application.
-
-Author:
-       Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/Makefile
deleted file mode 100644 (file)
index d5a1685..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-# Makefile for lablgtk_mathview.
-
-LABLGTKDIR = /usr/lib/ocaml/lablgtk
-MINIDOMDIR = ./minidom
-MLFLAGS += -I $(LABLGTKDIR) -I $(MINIDOMDIR)
-
-TARGETS = ml_gtk_mathview.o lablgtkmathview.cma
-
-all: Minidom $(TARGETS)
-
-opt: Minidom.opt lablgtkmathviewopt
-
-Minidom:
-       cd minidom ; make
-
-Minidom.opt:
-       cd minidom ; make opt
-
-configure:
-       @rm -f config.make
-       @$(MAKE) --no-print-directory -f configure.mk
-
-depend:
-       @rm -f .depend
-       @$(MAKE) --no-print-directory -f configure.mk .depend
-
-.depend config.make:
-       @$(MAKE) --no-print-directory -f configure.mk
-
-COMPILER = $(CAMLC) $(MLFLAGS) -w s -labels -c
-LINKER = $(CAMLC) $(MLFLAGS)
-COMPOPT = $(CAMLOPT) $(MLFLAGS) -w s -labels -c
-LINKOPT = $(CAMLOPT) $(MLFLAGS)
-
-include config.make
-
-INSTALLDIR = $(LIBDIR)/lablgtk/mathview
-
-MLLIBS = lablgtkmathview.cma
-CLIBS = 
-MLLINK = unix.cma str.cma
-
-ifdef DEBUG
-CFLAGS = -g $(GTKCFLAGS)
-MLLINK += -cclib -lcamlrund
-MLFLAGS += -g
-else
-CFLAGS = -O -DGTK_NO_CHECK_CASTS -DGTK_DISABLE_COMPAT_H $(GTKCFLAGS)
-endif
-
-THFLAGS = -thread
-THLINK = unix.cma threads.cma
-
-ifdef USE_CC
-CCOMPILER = $(CC) -c -I$(LIBDIR) $(CFLAGS)
-else
-CCOMPILER = ocamlc -c -ccopt "$(CFLAGS)"
-endif
-
-# Rules
-.SUFFIXES: .ml .mli .cmo .cmi .cmx .c .o .var .h .opt .def
-.c.o:
-       $(CCOMPILER) $<
-.ml.cmo:
-       $(COMPILER) $<
-.mli.cmi:
-       $(COMPILER) $<
-.ml.cmx:
-       $(COMPOPT) $<
-.var.h:
-       ./var2def < $< > $@
-.var.c:
-       ./var2conv < $< > $@
-
-# Targets
-COBJS = ml_gtk_mathview.o
-MLOBJS = gtk_mathview.cmo gtkMathView.cmo gMathView.cmo
-ALLOBJS = $(MLOBJS)
-
-lablgtkmathviewopt: $(CLIBS) $(MLLIBS:.cma=.cmxa)
-
-install:
-       if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi
-       cp $(ALLOBJS:.cmo=.cmi) $(INSTALLDIR)
-       if test -f *.mli ; then cp *.mli $(INSTALLDIR) ; fi
-       cp $(ALLOBJS:.cmo=.ml) $(INSTALLDIR)
-       cp $(MLLIBS) $(INSTALLDIR)
-       cp $(COBJS) $(INSTALLDIR)
-       if test ! -z "$(CLIBS)" ; then cp $(CLIBS) $(INSTALLDIR) ; fi
-       if test -f lablgtkmathview.cmxa; then \
-          cp $(MLLIBS:.cma=.cmxa) $(MLLIBS:.cma=.a) \
-             $(INSTALLDIR); fi
-       cd minidom ; make install
-
-lablgtkmathview.cma: $(MLOBJS)
-       $(LINKER) -a -custom -o $@ $(MLOBJS) $(GTKLIBS) $(GTKMATHVIEWLIBS)
-lablgtkmathview.cmxa: $(MLOBJS:.cmo=.cmx)
-       $(LINKOPT) -a -o $@ $(MLOBJS:.cmo=.cmx) $(GTKLIBS) $(GTKMATHVIEWLIBS)
-
-ml_gtk.o: $(LABLGTKDIR)/gtk_tags.c $(LABLGTKDIR)/gtk_tags.h \
-          $(LABLGTKDIR)/ml_gtk.h $(LABLGTKDIR)/ml_gdk.h $(LABLGTKDIR)/wrappers.h
-
-clean:
-       rm -f *.cm* *.o *.a *_tags.[ch] $(TARGETS)
-       cd minidom ; make clean
-
-include .depend
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/config.make b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/config.make
deleted file mode 100644 (file)
index d7e9241..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-CAMLC=ocamlc
-CAMLOPT=ocamlopt
-USE_GL=
-USE_GNOME=
-USE_CC=
-DEBUG=
-CC=cc
-RANLIB=ranlib
-LIBDIR=/usr/lib/ocaml
-BINDIR=/usr/bin
-INSTALLDIR=/usr/lib/ocaml/lablgtk/mathview
-GTKCFLAGS=-I/usr/lib/glib/include -I/usr/X11R6/include -I/usr/include/libxml -I/usr/include -I/usr/local/include/gtkmathview -I/usr/lib/ocaml/lablgtk
-GTKLIBS=-ccopt -L/usr/lib -ccopt -L/usr/X11R6/lib -cclib -lgtk -cclib -lgdk -ccopt -rdynamic -cclib -lgmodule -cclib -lglib -cclib -ldl -cclib -lXi -cclib -lXext -cclib -lX11 -cclib -lm
-GTKMATHVIEWLIBS=-ccopt -L/usr/local/lib/gtkmathview -cclib -lgtkmathview 
-GNOMELIBS=
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/configure.mk b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/configure.mk
deleted file mode 100644 (file)
index ec5f799..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# makefile for configuring lablGTK_mathview
-
-# Default compilers
-CAMLC = ocamlc
-CAMLOPT = ocamlopt
-
-# Default installation directories
-BINDIR = `$(GETBINDIR)`
-INSTALLDIR = $(LIBDIR)/lablgtk/mathview
-
-# Autoconf
-GETLIBDIR = ocamlc -v | grep "^Standard" | sed 's/^.*: *//'
-LIBDIR = `$(GETLIBDIR)`
-GETBINDIR = $(GETLIBDIR) | sed -e 's|/lib/[^/]*$$|/bin|' -e 's|/lib$$|/bin|'
-GETRANLIB = which ranlib 2>/dev/null | sed -e 's|.*/ranlib$$|!|' -e 's/^[^!]*$$/:/' -e 's/!/ranlib/'
-
-ifdef USE_GNOME
-GTKGETCFLAGS = gtk-config --cflags`" -I"`gnome-config --includedir" "`xml-config --cflags`" "`gtkmathview-config --cflags
-GNOMELIBS = `gnome-config --libs gtkxmhtml`
-else
-GTKGETCFLAGS = gtk-config --cflags`" "`xml-config --cflags`" "`gtkmathview-config --cflags
-endif
-
-GTKGETLIBS = gtk-config --libs
-
-configure: .depend config.make
-
-.depend:
-       ocamldep *.ml *.mli > .depend
-
-config.make:
-       @echo CAMLC=$(CAMLC) > config.make
-       @echo CAMLOPT=$(CAMLOPT) >> config.make
-       @echo USE_GL=$(USE_GL) >> config.make
-       @echo USE_GNOME=$(USE_GNOME) >> config.make
-       @echo USE_CC=$(USE_CC) >> config.make
-       @echo DEBUG=$(DEBUG) >> config.make
-       @echo CC=$(CC) >> config.make
-       @echo RANLIB=`$(GETRANLIB)` >> config.make
-       @echo LIBDIR=$(LIBDIR) >> config.make
-       @echo BINDIR=`$(GETBINDIR)` >> config.make
-       @echo INSTALLDIR=$(INSTALLDIR) >> config.make
-       @echo GTKCFLAGS=`$(GTKGETCFLAGS)` -I/usr/lib/ocaml/lablgtk >> config.make
-       @echo GTKLIBS=`$(GTKGETLIBS)` | \
-         sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \
-         >> config.make
-       #<CSC>
-       echo GTKMATHVIEWLIBS="-ccopt -L/usr/local/lib/gtkmathview -cclib -lgtkmathview " >> config.make
-       #</CSC>
-       @echo GNOMELIBS=$(GNOMELIBS) | \
-         sed -e 's/-l/-cclib &/g' -e 's/-[LRWr][^ ]*/-ccopt &/g' \
-         >> config.make
-       cat config.make
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gMathView.ml
deleted file mode 100644 (file)
index 87f0d50..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-open Gaux
-open Gtk
-open Gtk_mathview
-open GtkBase
-open GtkMathView
-open GObj
-
-exception ErrorLoadingFile of string;;
-exception ErrorWritingFile of string;;
-
-class math_view_signals obj = object
-  inherit GContainer.container_signals obj
-  method clicked = GtkSignal.connect ~sgn:MathView.Signals.clicked obj ~after
-  method jump = GtkSignal.connect ~sgn:MathView.Signals.jump obj ~after
-  method selection_changed =
-  GtkSignal.connect ~sgn:MathView.Signals.selection_changed obj ~after
-end
-
-class math_view obj = object
- inherit GContainer.container (obj : Gtk_mathview.math_view obj)
- method connect = new math_view_signals obj
- method load ~filename =
-  if not (MathView.load obj ~filename) then raise (ErrorLoadingFile filename)
- method unload = MathView.unload obj
- method get_selection = MathView.get_selection obj
- method set_selection = MathView.set_selection obj
- method get_width = MathView.get_width obj
- method get_height = MathView.get_height obj
- method get_top = MathView.get_top obj
- method set_top = MathView.set_top obj
- method set_adjustments =
-  fun adj1 adj2 ->
-   MathView.set_adjustments obj (GData.as_adjustment adj1)
-   (GData.as_adjustment adj2)
- method get_hadjustment = new GData.adjustment (MathView.get_hadjustment obj)
- method get_vadjustment = new GData.adjustment (MathView.get_vadjustment obj)
- method get_buffer = MathView.get_buffer obj
- method get_frame = new GBin.frame (MathView.get_frame obj)
- method set_font_size = MathView.set_font_size obj
- method get_font_size = MathView.get_font_size obj
- method set_anti_aliasing = MathView.set_anti_aliasing obj
- method get_anti_aliasing = MathView.get_anti_aliasing obj
- method set_kerning = MathView.set_kerning obj
- method get_kerning = MathView.get_kerning obj
- method set_log_verbosity = MathView.set_log_verbosity obj
- method get_log_verbosity = MathView.get_log_verbosity obj
- method export_to_postscript ~filename =
-  if not (MathView.export_to_postscript obj ~filename) then
-   raise (ErrorWritingFile filename)
-end
-
-let math_view ?adjustmenth ?adjustmentv ?(use_t1_lib=false) ?border_width
- ?width ?height ?packing ?show ()
-=
- let w =
-   MathView.create
-    ?adjustmenth:(may_map ~f:GData.as_adjustment adjustmenth)
-    ?adjustmentv:(may_map ~f:GData.as_adjustment adjustmentv)
-    ?use_t1_lib
-    ()
- in
-  Container.set w ?border_width ?width ?height;
-  pack_return (new math_view w) ~packing ~show
-;;
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtkMathView.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtkMathView.ml
deleted file mode 100644 (file)
index 97ae38e..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-open Gtk
-open Gtk_mathview
-open Tags
-open GtkBase
-open Gpointer
-
-external mDOMNode_of_boxed_option :
- Gpointer.boxed option -> Minidom.mDOMNode =
-  "ml_gtk_math_view_mDOMNode_of_bodex_option"
-
-external mDOMNode_option_of_boxed_option :
- Gpointer.boxed option -> Minidom.mDOMNode option =
-  "ml_gtk_math_view_mDOMNode_option_of_bodex_option"
-
-module MathView = struct
-  let cast w : math_view obj = Object.try_cast w "GtkMathView"
-  external create : Gtk.adjustment optobj -> Gtk.adjustment optobj -> bool ->
-   math_view obj = "ml_gtk_math_view_new"
-  let create ~adjustmenth ~adjustmentv ~use_t1_lib () =
-   create (optboxed adjustmenth) (optboxed adjustmentv) use_t1_lib
-  external load : [>`math_view] obj -> filename:string -> bool =
-   "ml_gtk_math_view_load"
-  external unload : [>`math_view] obj -> unit =
-   "ml_gtk_math_view_unload"
-  external get_selection : [>`math_view] obj -> Minidom.mDOMNode option =
-   "ml_gtk_math_view_get_selection"
-  external set_selection : [>`math_view] obj -> Minidom.mDOMNode option -> unit=
-   "ml_gtk_math_view_set_selection"
-  external get_width : [>`math_view] obj -> int =
-   "ml_gtk_math_view_get_width"
-  external get_height : [>`math_view] obj -> int =
-   "ml_gtk_math_view_get_height"
-  external get_top : [>`math_view] obj -> (int * int) =
-   "ml_gtk_math_view_get_top"
-  external set_top : [>`math_view] obj -> int -> int -> unit =
-   "ml_gtk_math_view_set_top"
-  external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit =
-   "ml_gtk_math_view_set_adjustments"
-  external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj =
-   "ml_gtk_math_view_get_hadjustment"
-  external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj =
-   "ml_gtk_math_view_get_vadjustment"
-  external get_buffer : [>`math_view] obj -> Gdk.pixmap =
-   "ml_gtk_math_view_get_buffer"
-  external get_frame : [>`math_view] obj -> [`frame] obj =
-   "ml_gtk_math_view_get_frame"
-  external set_font_size : [>`math_view] obj -> int -> unit =
-   "ml_gtk_math_view_set_font_size"
-  external get_font_size : [>`math_view] obj -> int =
-   "ml_gtk_math_view_get_font_size"
-  external set_anti_aliasing : [>`math_view] obj -> bool -> unit =
-   "ml_gtk_math_view_set_anti_aliasing"
-  external get_anti_aliasing : [>`math_view] obj -> bool =
-   "ml_gtk_math_view_get_anti_aliasing"
-  external set_kerning : [>`math_view] obj -> bool -> unit =
-   "ml_gtk_math_view_set_kerning"
-  external get_kerning : [>`math_view] obj -> bool =
-   "ml_gtk_math_view_get_kerning"
-  external set_log_verbosity : [>`math_view] obj -> int -> unit =
-   "ml_gtk_math_view_set_log_verbosity"
-  external get_log_verbosity : [>`math_view] obj -> int =
-   "ml_gtk_math_view_get_log_verbosity"
-  external export_to_postscript : [>`math_view] obj -> filename:string -> bool =
-   "ml_gtk_math_view_export_to_postscript"
-
-  module Signals = struct
-    open GtkSignal
-
-    let clicked : ([>`math_view],_) t =
-     let marshal_clicked f _ =
-      function
-         [GtkArgv.POINTER node] -> f (mDOMNode_of_boxed_option node)
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked"
-     in
-      { name = "clicked"; marshaller = marshal_clicked }
-
-    let jump : ([>`math_view],_) t =
-     let marshal_jump f _ =
-      function
-         [GtkArgv.POINTER node] -> f (mDOMNode_of_boxed_option node)
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_jump"
-     in
-      { name = "jump"; marshaller = marshal_jump }
-
-    let selection_changed : ([>`math_view],_) t =
-     let marshal_selection_changed f _ =
-      function
-         [GtkArgv.POINTER node] -> f (mDOMNode_option_of_boxed_option node)
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_selection_changed"
-     in
-      { name = "selection_changed"; marshaller = marshal_selection_changed }
-  end
-end
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtk_mathview.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/gtk_mathview.ml
deleted file mode 100644 (file)
index 745a1ba..0000000
+++ /dev/null
@@ -1 +0,0 @@
-type math_view = [`widget|`container|`bin|`eventbox|`math_view]
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/.cvsignore
deleted file mode 100644 (file)
index 84bdd8e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.cmi *.cmo *.cmx test test.opt
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/Makefile
deleted file mode 100644 (file)
index 7463870..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-LIBDIR = /usr/lib/ocaml
-INSTALLDIR = $(LIBDIR)/lablgtk/mathview/minidom
-OBJECTS = minidom.cmi minidom.cmo minidom.cmx minidom.mli ml_minidom.h \
-          ml_minidom.o minidom.o
-
-all: test
-
-opt: test.opt
-
-ml_minidom.o: ml_minidom.c
-       gcc -c -I/usr/lib/ocaml/caml/ `glib-config --cflags` `xml-config --cflags` `gtkmathview-config --cflags` $<
-
-minidom.cmi: minidom.mli
-       ocamlc -c $<
-
-minidom.cmo: minidom.ml minidom.cmi
-       ocamlc -c $<
-
-minidom.cmx: minidom.ml minidom.cmi
-       ocamlopt -c $<
-
-test.cmo: test.ml minidom.cmo
-       ocamlc -c test.ml
-
-test.cmx: test.ml minidom.cmx
-       ocamlopt -c test.ml
-
-test: test.cmo minidom.cmo ml_minidom.o
-       ocamlc -custom -o test minidom.cmo test.cmo ml_minidom.o \
-        -cclib "`xml-config --libs`" -cclib "`glib-config --libs`" \
-        -cclib "`gtkmathview-config --libs`"
-
-test.opt: test.cmx minidom.cmx ml_minidom.o
-       ocamlopt -o test.opt minidom.cmx test.cmx ml_minidom.o \
-        -cclib "`xml-config --libs`" -cclib "`glib-config --libs`" \
-        -cclib "`gtkmathview-config --libs`"
-
-install:
-       if test -d $(INSTALLDIR); then : ; else mkdir -p $(INSTALLDIR); fi
-       cp $(OBJECTS) $(INSTALLDIR)
-
-clean:
-       rm -f *.o *.cm? test test.opt
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.ml
deleted file mode 100644 (file)
index 31e677b..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-
-type mDOMString
-type mDOMDoc
-type mDOMNode
-type mDOMAttr
-type mDOMEntity
-
-external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString"
-external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string"
-external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq"
-
-external doc_load : string -> mDOMDoc = "ml_doc_load"
-external doc_unload : mDOMDoc -> unit = "ml_doc_unload"
-
-external doc_new : mDOMString -> mDOMDoc = "ml_doc_new"
-external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node"
-
-external doc_add_entity : mDOMDoc -> mDOMString -> mDOMString -> mDOMEntity = "ml_doc_add_entity"
-external doc_get_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_entity"
-external doc_get_predefined_entity : mDOMDoc -> mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity"
-external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content"
-
-external node_is_text  : mDOMNode -> bool = "ml_node_is_text"
-external node_is_element : mDOMNode -> bool = "ml_node_is_element"
-external node_is_blank : mDOMNode -> bool = "ml_node_is_blank"
-external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref"
-external node_get_type : mDOMNode -> int = "ml_node_get_type"
-external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name"
-external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri"
-external node_get_attribute : mDOMNode -> mDOMString -> mDOMString option = "ml_node_get_attribute"
-external node_get_attribute_ns : mDOMNode -> mDOMString -> mDOMString -> mDOMString option = "ml_node_get_attribute_ns"
-external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content"
-external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent"
-external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling"
-external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling"
-external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child"
-external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute"
-external node_is_first : mDOMNode -> bool = "ml_node_is_first"
-external node_is_last : mDOMNode -> bool = "ml_node_is_last"
-
-external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name"
-external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri"
-external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value"
-external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling"
-external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling"
-external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent"
-
-let rec node_list_of_node_first =
-  function None -> []
-  |        Some node -> node :: (node_list_of_node_first (node_get_next_sibling node))
-
-let rec attr_list_of_attr_first =
-  function None -> []
-  |        Some attr -> attr :: (attr_list_of_attr_first (attr_get_next_sibling attr))
-  
-let node_get_children node =
-  (node_list_of_node_first (node_get_first_child node))
-
-let node_get_attributes node =
-  (attr_list_of_attr_first (node_get_first_attribute node))
-
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.mli b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/minidom.mli
deleted file mode 100644 (file)
index 0b65595..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-
-type mDOMString
-type mDOMDoc
-type mDOMNode
-type mDOMAttr
-type mDOMEntity
-
-external string_of_mDOMString : mDOMString -> string = "ml_string_of_mDOMString"
-external mDOMString_of_string : string -> mDOMString = "ml_mDOMString_of_string"
-external mDOMString_eq : string -> string -> bool = "ml_mDOMString_eq"
-
-external doc_load : string -> mDOMDoc = "ml_doc_load"
-external doc_unload : mDOMDoc -> unit = "ml_doc_unload"
-
-external doc_new : mDOMString -> mDOMDoc = "ml_doc_new"
-external doc_get_root_node : mDOMDoc -> mDOMNode = "ml_doc_get_root_node"
-
-external doc_add_entity : doc:mDOMDoc -> name:mDOMString -> content:mDOMString -> mDOMEntity = "ml_doc_add_entity"
-external doc_get_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_entity"
-external doc_get_predefined_entity : doc:mDOMDoc -> name:mDOMString -> mDOMEntity option = "ml_doc_get_predefined_entity"
-external entity_get_content : mDOMEntity -> mDOMString = "ml_entity_get_content"
-
-external node_is_text  : mDOMNode -> bool = "ml_node_is_text"
-external node_is_element : mDOMNode -> bool = "ml_node_is_element"
-external node_is_blank : mDOMNode -> bool = "ml_node_is_blank"
-external node_is_entity_ref : mDOMNode -> bool = "ml_node_is_entity_ref"
-external node_get_type : mDOMNode -> int = "ml_node_get_type"
-external node_get_name : mDOMNode -> mDOMString option = "ml_node_get_name"
-external node_get_ns_uri : mDOMNode -> mDOMString option = "ml_node_get_ns_uri"
-external node_get_attribute : node:mDOMNode -> name:mDOMString -> mDOMString option = "ml_node_get_attribute"
-external node_get_attribute_ns : node:mDOMNode -> name:mDOMString -> ns_uri:mDOMString -> mDOMString option = "ml_node_get_attribute_ns"
-external node_get_content : mDOMNode -> mDOMString option = "ml_node_get_content"
-external node_get_parent : mDOMNode -> mDOMNode option = "ml_node_get_parent"
-external node_get_prev_sibling : mDOMNode -> mDOMNode option = "ml_node_get_prev_sibling"
-external node_get_next_sibling : mDOMNode -> mDOMNode option = "ml_node_get_next_sibling"
-external node_get_first_child : mDOMNode -> mDOMNode option = "ml_node_get_first_child"
-external node_get_first_attribute : mDOMNode -> mDOMAttr option = "ml_node_get_first_attribute"
-external node_is_first : mDOMNode -> bool = "ml_node_is_first"
-external node_is_last : mDOMNode -> bool = "ml_node_is_last"
-
-external attr_get_name : mDOMAttr -> mDOMString option = "ml_attr_get_name"
-external attr_get_ns_uri : mDOMAttr -> mDOMString option = "ml_attr_get_ns_uri"
-external attr_get_value : mDOMAttr -> mDOMString option = "ml_attr_get_value"
-external attr_get_prev_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_prev_sibling"
-external attr_get_next_sibling : mDOMAttr -> mDOMAttr option = "ml_attr_get_next_sibling"
-external attr_get_parent : mDOMAttr -> mDOMNode option = "ml_attr_get_parent"
-
-val node_get_children : mDOMNode -> mDOMNode list
-val node_get_attributes : mDOMNode -> mDOMAttr list
-
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.c
deleted file mode 100644 (file)
index 1062614..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-
-#include <assert.h>
-#include <mlvalues.h>
-#include <memory.h>
-
-#include "minidom.h"
-
-#define Val_ptr(p)        ((value) (p))
-#define Val_option(p,f)   ((p != NULL) ? ml_some(f(p)) : Val_unit)
-#define Val_mDOMString(s) (copy_string((char*) (s)))
-#define mDOMString_val(v) ((mDOMStringRef) String_val(v))
-
-static value
-ml_some(value v)
-{
-  CAMLparam1(v);
-  value ret = alloc_small(1,0);
-  Field(ret,0) = v;
-  CAMLreturn(ret);
-}
-
-value
-ml_string_of_mDOMString(value s)
-{
-  CAMLparam1(s);
-  CAMLreturn(s);
-}
-
-value
-ml_mDOMString_of_string(value s)
-{
-  CAMLparam1(s);
-  CAMLreturn(s);
-}
-
-value
-ml_doc_load(value file_name)
-{
-  mDOMDocRef doc_ref;
-
-  CAMLparam1(file_name);
-
-  doc_ref = mdom_load(String_val(file_name), FALSE, NULL);
-  if (doc_ref == NULL) failwith("minidom: could not load document");
-
-  CAMLreturn((value) doc_ref);
-}
-
-value
-ml_doc_unload(value doc)
-{
-  CAMLparam1(doc);
-
-  mdom_unload((mDOMDocRef) doc);
-
-  CAMLreturn(Val_unit);
-}
-
-value
-ml_doc_new(value s)
-{
-  mDOMDocRef doc_ref;
-
-  CAMLparam1(s);
-
-  doc_ref = mdom_doc_new(mDOMString_val(s));
-  if (doc_ref == NULL) failwith("minidom: could not create new document");
-
-  CAMLreturn((value) doc_ref);
-}
-
-
-value
-ml_doc_get_root_node(value doc)
-{
-  mDOMNodeRef root;
-
-  CAMLparam1(doc);
-  root = mdom_doc_get_root_node((mDOMDocRef) doc);
-  if (root == NULL) failwith("minidom: document has no root node!");
-
-  CAMLreturn((value) root);
-}
-
-value
-ml_doc_add_entity(value doc, value name, value content)
-{
-  mDOMEntityRef ent;
-
-  CAMLparam3(doc, name, content);
-  ent = mdom_doc_add_entity((mDOMDocRef) doc, mDOMString_val(name), mDOMString_val(content));
-  if (ent == NULL) failwith("minidom: could not add entity");
-
-  CAMLreturn((value) ent);
-}
-
-value
-ml_doc_get_entity(value doc, value name)
-{
-  mDOMEntityRef ent;
-
-  CAMLparam2(doc, name);
-  ent = mdom_doc_get_entity((mDOMDocRef) doc, mDOMString_val(name));
-
-  CAMLreturn(Val_option(ent, Val_ptr));
-}
-
-value
-ml_doc_get_predefined_entity(value name)
-{
-  mDOMEntityRef ent;
-
-  CAMLparam1(name);
-  ent = mdom_get_predefined_entity(mDOMString_val(name));
-
-  CAMLreturn(Val_option(ent, Val_ptr));
-}
-
-value
-ml_entity_get_content(value ent)
-{
-  CAMLparam1(ent);
-  CAMLreturn(Val_mDOMString(mdom_entity_get_content((mDOMEntityRef) ent)));
-}
-
-value
-ml_node_is_text(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_bool(mdom_node_is_text((mDOMNodeRef) node)));
-}
-
-value
-ml_node_is_element(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_bool(mdom_node_is_element((mDOMNodeRef) node)));
-}
-
-value
-ml_node_is_blank(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_bool(mdom_node_is_blank((mDOMNodeRef) node)));
-}
-
-value
-ml_node_is_entity_ref(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_bool(mdom_node_is_entity_ref((mDOMNodeRef) node)));
-}
-
-value
-ml_node_get_type(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_int(mdom_node_get_type((mDOMNodeRef) node)));
-}
-
-value
-ml_node_get_name(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_option(mdom_node_get_name((mDOMNodeRef) node), Val_mDOMString));
-}
-
-value
-ml_node_get_content(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_option(mdom_node_get_content((mDOMNodeRef) node), Val_mDOMString));
-}
-
-value
-ml_node_get_ns_uri(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_option(mdom_node_get_ns_uri((mDOMNodeRef) node), Val_mDOMString));
-}
-
-value
-ml_node_get_attribute(value node, value name)
-{
-  CAMLparam2(node,name);
-  CAMLreturn(Val_option(mdom_node_get_attribute((mDOMNodeRef) node, String_val(name)), Val_mDOMString));
-}
-
-value
-ml_node_get_attribute_ns(value node, value name, value ns_uri)
-{
-  CAMLparam2(node,name);
-  CAMLreturn(Val_option(mdom_node_get_attribute_ns((mDOMNodeRef) node,
-                                                  String_val(name),
-                                                  String_val(ns_uri)), Val_mDOMString));
-}
-
-value
-ml_node_get_parent(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_option(mdom_node_get_parent((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_get_prev_sibling(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_option(mdom_node_get_prev_sibling((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_get_next_sibling(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_option(mdom_node_get_next_sibling((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_get_first_child(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_option(mdom_node_get_first_child((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_get_first_attribute(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_option(mdom_node_get_first_attribute((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_is_first(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_bool(mdom_node_is_first((mDOMNodeRef) node)));
-}
-
-value
-ml_node_is_last(value node)
-{
-  CAMLparam1(node);
-  CAMLreturn(Val_bool(mdom_node_is_last((mDOMNodeRef) node)));
-}
-
-value
-ml_attr_get_name(value attr)
-{
-  CAMLparam1(attr);
-  CAMLreturn(Val_option(mdom_attr_get_name((mDOMAttrRef) attr), Val_mDOMString));
-}
-
-value
-ml_attr_get_ns_uri(value attr)
-{
-  CAMLparam1(attr);
-  CAMLreturn(Val_option(mdom_attr_get_ns_uri((mDOMAttrRef) attr), Val_mDOMString));
-}
-
-value
-ml_attr_get_value(value attr)
-{
-  CAMLparam1(attr);
-  CAMLreturn(Val_option(mdom_attr_get_value((mDOMAttrRef) attr), Val_mDOMString));
-}
-
-value
-ml_attr_get_prev_sibling(value attr)
-{
-  CAMLparam1(attr);
-  CAMLreturn(Val_option(mdom_attr_get_prev_sibling((mDOMAttrRef) attr), Val_ptr));
-}
-
-value
-ml_attr_get_next_sibling(value attr)
-{
-  CAMLparam1(attr);
-  CAMLreturn(Val_option(mdom_attr_get_next_sibling((mDOMAttrRef) attr), Val_ptr));
-}
-
-value
-ml_attr_get_parent(value attr)
-{
-  CAMLparam1(attr);
-  CAMLreturn(Val_option(mdom_attr_get_parent((mDOMAttrRef) attr), Val_ptr));
-}
-
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.h b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/ml_minidom.h
deleted file mode 100644 (file)
index cf1be3a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#define Val_ptr(p)        ((value) (p))
-#define Val_option(p,f)   ((p != NULL) ? ml_some(f(p)) : Val_unit)
-#define Val_mDOMString(s) (copy_string((char*) (s)))
-#define mDOMString_val(v) ((mDOMStringRef) String_val(v))
-#define mDOMNode_val(v) ((mDOMNodeRef) v)
-
-#define mDOMNode_option_mDOMNodeRef(p) (((p) != NULL) ? ml_some((value) (p)) : Val_unit)
-#define mDOMNodeRef_mDOMNode_option(v) ((v == Val_unit) ? NULL : (mDOMNodeRef)Field((v),0))
-#define Val_mDOMNodeRef(p)             (mDOMNode_option_mDOMNodeRef(p))
-#define mDOMNodeRef_val(v)             (mDOMNodeRef_mDOMNode_option(v))
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.ml
deleted file mode 100644 (file)
index 3c7a092..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-
-let doc = Minidom.doc_load "test.xml"
-
-let root = Minidom.doc_get_root_node doc
-
-let check_attribute_ns attr =
-  Printf.printf "\n\n";
-  let ns_uri = Minidom.attr_get_ns_uri attr
-  and attr_name = Minidom.attr_get_name attr
-  and attr_value = Minidom.attr_get_value attr
-  and parent = Minidom.attr_get_parent attr
-  in
-  match parent,ns_uri,attr_name,attr_value with
-    Some parent_node,Some uri,Some attribute_name,Some attribute_value ->
-      let attr_value = Minidom.node_get_attribute_ns parent_node attribute_name uri
-      in begin
-        match attr_value with
-          Some attr1 ->
-           Printf.printf "found the attribute with ns %s (was %s)\n"
-              (Minidom.string_of_mDOMString attr1) (Minidom.string_of_mDOMString attribute_value)
-        | None ->
-           Printf.printf "attribute not found (uri was %s)!!!!\n" (Minidom.string_of_mDOMString uri)
-      end
-  | _ ->
-      Printf.printf "parent_node == NULL || uri == NULL || attribute_name == NULL || attribute_value == NULL\n"
-;;
-    
-let print_attribute attr =
-  check_attribute_ns attr;
-  let ns_uri = Minidom.attr_get_ns_uri attr
-  in
-  begin
-    match ns_uri with
-      Some uri -> Printf.printf " %s:" (Minidom.string_of_mDOMString uri);
-    | None -> ()
-  end;
-  match ((Minidom.attr_get_name attr), (Minidom.attr_get_value attr)) with
-    (Some attr_name, Some attr_value) ->
-      Printf.printf " %s=\"%s\"" (Minidom.string_of_mDOMString attr_name) (Minidom.string_of_mDOMString attr_value) 
-  | (Some attr_name, _) ->
-      Printf.printf " ??? attribute %s has no value !!!" (Minidom.string_of_mDOMString attr_name)
-  | (_,_) ->
-      Printf.printf " ??? very strange attribute !!!"
-;;
-
-let rec print_node n node =
-  if Minidom.node_is_blank node then ()
-  else if Minidom.node_is_element node then begin
-    match Minidom.node_get_name node with
-      Some node_name -> 
-        begin
-          let children = Minidom.node_get_children node
-          and attributes = Minidom.node_get_attributes node
-          and ns_uri = Minidom.node_get_ns_uri node
-          and is_first,is_last = (Minidom.node_is_first node), (Minidom.node_is_last node)
-          in
-          for i = 1 to n do print_char ' ' done;
-          Printf.printf "<";
-          begin
-            match ns_uri with
-              Some uri -> Printf.printf "%s:" (Minidom.string_of_mDOMString uri)
-            | None     -> ()
-          end;
-          Printf.printf "%s" (Minidom.string_of_mDOMString node_name);
-          List.iter print_attribute attributes;
-          Printf.printf ">\n";
-          List.iter (print_node (n + 2)) children;
-          for i = 1 to n do print_char ' ' done;
-          Printf.printf "</%s>\n" (Minidom.string_of_mDOMString node_name)
-        end
-    | None -> Printf.printf "??? this node has no name !!!\n"
-  end else if Minidom.node_is_text node then begin
-    match Minidom.node_get_content node with
-      Some node_content ->
-        for i = 1 to n do print_char ' ' done;
-        Printf.printf "%s\n" (Minidom.string_of_mDOMString node_content)
-    | None -> Printf.printf "??? this node has no content !!!\n"
-  end else begin
-    Printf.printf "don't know how to manage a node with type %d\n" (Minidom.node_get_type node)
-  end
-;;
-  
-print_node 0 root;;
-
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/minidom/test.xml
deleted file mode 100644 (file)
index 83d2eef..0000000
+++ /dev/null
@@ -1,505 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<?cocoon-format type="text/xhtml"?>
-<m:math xmlns:helm="http://www.cs.unibo.it/helm" xmlns:m="http://www.w3.org/1998/Math/MathML">
-    <m:mtable helm:xref="i0" columnalign="left" equalrows="false" align="baseline 1">
-        <m:mtr>
-            <m:mtd>
-                <m:mrow>
-                    <m:mtext>DEFINITION and_ind() OF TYPE</m:mtext>
-                </m:mrow>
-            </m:mtd>
-        </m:mtr>
-        <m:mtr>
-            <m:mtd>
-                <m:mrow>
-                    <m:mphantom>
-                        <m:mtext>__</m:mtext>
-                    </m:mphantom>
-                    <m:semantics xmlns:xlink="http://www.w3.org/1999/xlink">
-                        <m:mrow helm:xref="i22">
-                            <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                <m:mtr>
-                                    <m:mtd>
-                                        <m:mrow>
-                                            <m:mo stretchy="false">(</m:mo>
-                                            <m:mrow helm:xref="i23">
-                                                <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                                    <m:mtr>
-                                                        <m:mtd>
-                                                            <m:mo color="Blue">&#928;</m:mo>
-                                                            <m:mi>A</m:mi>
-                                                            <m:mo>:</m:mo>
-                                                            <m:mrow helm:xref="i24">
-                                                                <m:mo>Prop</m:mo>
-                                                            </m:mrow>
-                                                        </m:mtd>
-                                                    </m:mtr>
-                                                    <m:mtr>
-                                                        <m:mtd>
-                                                            <m:mrow>
-                                                                <m:mo>.</m:mo>
-                                                                <m:mrow helm:xref="i25">
-                                                                    <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                                                        <m:mtr>
-                                                                            <m:mtd>
-                                                                                <m:mo color="Blue">&#928;</m:mo>
-                                                                                <m:mi>B</m:mi>
-                                                                                <m:mo>:</m:mo>
-                                                                                <m:mrow helm:xref="i26">
-                                                                                    <m:mo>Prop</m:mo>
-                                                                                </m:mrow>
-                                                                            </m:mtd>
-                                                                        </m:mtr>
-                                                                        <m:mtr>
-                                                                            <m:mtd>
-                                                                                <m:mrow>
-                                                                                    <m:mo>.</m:mo>
-                                                                                    <m:mrow helm:xref="i27">
-                                                                                        <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                                                                            <m:mtr>
-                                                                                                <m:mtd>
-                                                                                                    <m:mo color="Blue">&#928;</m:mo>
-                                                                                                    <m:mi>P</m:mi>
-                                                                                                    <m:mo>:</m:mo>
-                                                                                                    <m:mrow helm:xref="i28">
-                                                                                                        <m:mo>Prop</m:mo>
-                                                                                                    </m:mrow>
-                                                                                                </m:mtd>
-                                                                                            </m:mtr>
-                                                                                            <m:mtr>
-                                                                                                <m:mtd>
-                                                                                                    <m:mrow>
-                                                                                                        <m:mo>.</m:mo>
-                                                                                                        <m:mrow helm:xref="i29">
-                                                                                                            <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                                                                                                <m:mtr>
-                                                                                                                    <m:mtd>
-                                                                                                                        <m:mo color="Blue">&#928;</m:mo>
-                                                                                                                        <m:mi>f</m:mi>
-                                                                                                                        <m:mo>:</m:mo>
-                                                                                                                        <m:mrow helm:xref="i30">
-                                                                                                                            <m:mo stretchy="false">(</m:mo>
-                                                                                                                            <m:mi helm:xref="i31">A</m:mi>
-                                                                                                                            <m:mo color="Blue">&#8594;</m:mo>
-                                                                                                                            <m:mrow helm:xref="i32">
-                                                                                                                                <m:mo stretchy="false">(</m:mo>
-                                                                                                                                <m:mi helm:xref="i33">B</m:mi>
-                                                                                                                                <m:mo color="Blue">&#8594;</m:mo>
-                                                                                                                                <m:mi helm:xref="i34">P</m:mi>
-                                                                                                                                <m:mo stretchy="false">)</m:mo>
-                                                                                                                            </m:mrow>
-                                                                                                                            <m:mo stretchy="false">)</m:mo>
-                                                                                                                        </m:mrow>
-                                                                                                                    </m:mtd>
-                                                                                                                </m:mtr>
-                                                                                                                <m:mtr>
-                                                                                                                    <m:mtd>
-                                                                                                                        <m:mrow>
-                                                                                                                            <m:mo>.</m:mo>
-                                                                                                                            <m:mrow helm:xref="i35">
-                                                                                                                                <m:mo color="Blue">&#928;</m:mo>
-                                                                                                                                <m:mi>a</m:mi>
-                                                                                                                                <m:mo>:</m:mo>
-                                                                                                                                <m:mrow helm:xref="i36">
-                                                                                                                                    <m:mo stretchy="false">(</m:mo>
-                                                                                                                                    <m:mi xlink:href="cic:/coq/INIT/Logic/Conjunction/and.ind" helm:xref="i37">and</m:mi>
-                                                                                                                                    <m:mphantom>
-                                                                                                                                        <m:mtext>_</m:mtext>
-                                                                                                                                    </m:mphantom>
-                                                                                                                                    <m:mi helm:xref="i38">A</m:mi>
-                                                                                                                                    <m:mphantom>
-                                                                                                                                        <m:mtext>_</m:mtext>
-                                                                                                                                    </m:mphantom>
-                                                                                                                                    <m:mi helm:xref="i39">B</m:mi>
-                                                                                                                                    <m:mo stretchy="false">)</m:mo>
-                                                                                                                                </m:mrow>
-                                                                                                                                <m:mo>.</m:mo>
-                                                                                                                                <m:mi helm:xref="i40">P</m:mi>
-                                                                                                                            </m:mrow>
-                                                                                                                        </m:mrow>
-                                                                                                                    </m:mtd>
-                                                                                                                </m:mtr>
-                                                                                                            </m:mtable>
-                                                                                                        </m:mrow>
-                                                                                                    </m:mrow>
-                                                                                                </m:mtd>
-                                                                                            </m:mtr>
-                                                                                        </m:mtable>
-                                                                                    </m:mrow>
-                                                                                </m:mrow>
-                                                                            </m:mtd>
-                                                                        </m:mtr>
-                                                                    </m:mtable>
-                                                                </m:mrow>
-                                                            </m:mrow>
-                                                        </m:mtd>
-                                                    </m:mtr>
-                                                </m:mtable>
-                                            </m:mrow>
-                                        </m:mrow>
-                                    </m:mtd>
-                                </m:mtr>
-                                <m:mtr>
-                                    <m:mtd>
-                                        <m:mrow>
-                                            <m:mo color="#b03060">:&gt;</m:mo>
-                                            <m:mrow helm:xref="i41">
-                                                <m:mo>Prop</m:mo>
-                                            </m:mrow>
-                                        </m:mrow>
-                                    </m:mtd>
-                                </m:mtr>
-                                <m:mtr>
-                                    <m:mtd>
-                                        <m:mrow>
-                                            <m:mo stretchy="false">)</m:mo>
-                                        </m:mrow>
-                                    </m:mtd>
-                                </m:mtr>
-                            </m:mtable>
-                        </m:mrow>
-                        <m:annotation-xml encoding="MathML">
-                            <m:apply helm:xref="i22">
-                                <m:csymbol>cast</m:csymbol>
-                                <m:apply helm:xref="i23">
-                                    <m:csymbol>prod</m:csymbol>
-                                    <m:bvar>
-                                        <m:ci>A</m:ci>
-                                        <m:type>
-                                            <m:apply helm:xref="i24">
-                                                <m:csymbol>Prop</m:csymbol>
-                                            </m:apply>
-                                        </m:type>
-                                    </m:bvar>
-                                    <m:apply helm:xref="i25">
-                                        <m:csymbol>prod</m:csymbol>
-                                        <m:bvar>
-                                            <m:ci>B</m:ci>
-                                            <m:type>
-                                                <m:apply helm:xref="i26">
-                                                    <m:csymbol>Prop</m:csymbol>
-                                                </m:apply>
-                                            </m:type>
-                                        </m:bvar>
-                                        <m:apply helm:xref="i27">
-                                            <m:csymbol>prod</m:csymbol>
-                                            <m:bvar>
-                                                <m:ci>P</m:ci>
-                                                <m:type>
-                                                    <m:apply helm:xref="i28">
-                                                        <m:csymbol>Prop</m:csymbol>
-                                                    </m:apply>
-                                                </m:type>
-                                            </m:bvar>
-                                            <m:apply helm:xref="i29">
-                                                <m:csymbol>prod</m:csymbol>
-                                                <m:bvar>
-                                                    <m:ci>f</m:ci>
-                                                    <m:type>
-                                                        <m:apply helm:xref="i30">
-                                                            <m:csymbol>arrow</m:csymbol>
-                                                            <m:ci helm:xref="i31">A</m:ci>
-                                                            <m:apply helm:xref="i32">
-                                                                <m:csymbol>arrow</m:csymbol>
-                                                                <m:ci helm:xref="i33">B</m:ci>
-                                                                <m:ci helm:xref="i34">P</m:ci>
-                                                            </m:apply>
-                                                        </m:apply>
-                                                    </m:type>
-                                                </m:bvar>
-                                                <m:apply helm:xref="i35">
-                                                    <m:csymbol>prod</m:csymbol>
-                                                    <m:bvar>
-                                                        <m:ci>a</m:ci>
-                                                        <m:type>
-                                                            <m:apply helm:xref="i36">
-                                                                <m:csymbol>app</m:csymbol>
-                                                                <m:ci definitionURL="cic:/coq/INIT/Logic/Conjunction/and.ind" helm:xref="i37">and</m:ci>
-                                                                <m:ci helm:xref="i38">A</m:ci>
-                                                                <m:ci helm:xref="i39">B</m:ci>
-                                                            </m:apply>
-                                                        </m:type>
-                                                    </m:bvar>
-                                                    <m:ci helm:xref="i40">P</m:ci>
-                                                </m:apply>
-                                            </m:apply>
-                                        </m:apply>
-                                    </m:apply>
-                                </m:apply>
-                                <m:apply helm:xref="i41">
-                                    <m:csymbol>Prop</m:csymbol>
-                                </m:apply>
-                            </m:apply>
-                        </m:annotation-xml>
-                    </m:semantics>
-                </m:mrow>
-            </m:mtd>
-        </m:mtr>
-        <m:mtr>
-            <m:mtd>
-                <m:mrow>
-                    <m:mtext>AS</m:mtext>
-                </m:mrow>
-            </m:mtd>
-        </m:mtr>
-        <m:mtr>
-            <m:mtd>
-                <m:mrow>
-                    <m:mphantom>
-                        <m:mtext>__</m:mtext>
-                    </m:mphantom>
-                    <m:semantics xmlns:xlink="http://www.w3.org/1999/xlink">
-                        <m:mrow helm:xref="i1">
-                            <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                <m:mtr>
-                                    <m:mtd>
-                                        <m:mo color="Red">&#955;</m:mo>
-                                        <m:mi>A</m:mi>
-                                        <m:mo>:</m:mo>
-                                        <m:mrow helm:xref="i2">
-                                            <m:mo>Prop</m:mo>
-                                        </m:mrow>
-                                    </m:mtd>
-                                </m:mtr>
-                                <m:mtr>
-                                    <m:mtd>
-                                        <m:mrow>
-                                            <m:mo>.</m:mo>
-                                            <m:mrow helm:xref="i3">
-                                                <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                                    <m:mtr>
-                                                        <m:mtd>
-                                                            <m:mo color="Red">&#955;</m:mo>
-                                                            <m:mi>B</m:mi>
-                                                            <m:mo>:</m:mo>
-                                                            <m:mrow helm:xref="i4">
-                                                                <m:mo>Prop</m:mo>
-                                                            </m:mrow>
-                                                        </m:mtd>
-                                                    </m:mtr>
-                                                    <m:mtr>
-                                                        <m:mtd>
-                                                            <m:mrow>
-                                                                <m:mo>.</m:mo>
-                                                                <m:mrow helm:xref="i5">
-                                                                    <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                                                        <m:mtr>
-                                                                            <m:mtd>
-                                                                                <m:mo color="Red">&#955;</m:mo>
-                                                                                <m:mi>P</m:mi>
-                                                                                <m:mo>:</m:mo>
-                                                                                <m:mrow helm:xref="i6">
-                                                                                    <m:mo>Prop</m:mo>
-                                                                                </m:mrow>
-                                                                            </m:mtd>
-                                                                        </m:mtr>
-                                                                        <m:mtr>
-                                                                            <m:mtd>
-                                                                                <m:mrow>
-                                                                                    <m:mo>.</m:mo>
-                                                                                    <m:mrow helm:xref="i7">
-                                                                                        <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                                                                            <m:mtr>
-                                                                                                <m:mtd>
-                                                                                                    <m:mo color="Red">&#955;</m:mo>
-                                                                                                    <m:mi>f</m:mi>
-                                                                                                    <m:mo>:</m:mo>
-                                                                                                    <m:mrow helm:xref="i8">
-                                                                                                        <m:mo stretchy="false">(</m:mo>
-                                                                                                        <m:mi helm:xref="i9">A</m:mi>
-                                                                                                        <m:mo color="Blue">&#8594;</m:mo>
-                                                                                                        <m:mrow helm:xref="i10">
-                                                                                                            <m:mo stretchy="false">(</m:mo>
-                                                                                                            <m:mi helm:xref="i11">B</m:mi>
-                                                                                                            <m:mo color="Blue">&#8594;</m:mo>
-                                                                                                            <m:mi helm:xref="i12">P</m:mi>
-                                                                                                            <m:mo stretchy="false">)</m:mo>
-                                                                                                        </m:mrow>
-                                                                                                        <m:mo stretchy="false">)</m:mo>
-                                                                                                    </m:mrow>
-                                                                                                </m:mtd>
-                                                                                            </m:mtr>
-                                                                                            <m:mtr>
-                                                                                                <m:mtd>
-                                                                                                    <m:mrow>
-                                                                                                        <m:mo>.</m:mo>
-                                                                                                        <m:mrow helm:xref="i13">
-                                                                                                            <m:mtable columnalign="left" equalrows="false" align="baseline 1">
-                                                                                                                <m:mtr>
-                                                                                                                    <m:mtd>
-                                                                                                                        <m:mo color="Red">&#955;</m:mo>
-                                                                                                                        <m:mi>a</m:mi>
-                                                                                                                        <m:mo>:</m:mo>
-                                                                                                                        <m:mrow helm:xref="i14">
-                                                                                                                            <m:mo stretchy="false">(</m:mo>
-                                                                                                                            <m:mi xlink:href="cic:/coq/INIT/Logic/Conjunction/and.ind" helm:xref="i15">and</m:mi>
-                                                                                                                            <m:mphantom>
-                                                                                                                                <m:mtext>_</m:mtext>
-                                                                                                                            </m:mphantom>
-                                                                                                                            <m:mi helm:xref="i16">A</m:mi>
-                                                                                                                            <m:mphantom>
-                                                                                                                                <m:mtext>_</m:mtext>
-                                                                                                                            </m:mphantom>
-                                                                                                                            <m:mi helm:xref="i17">B</m:mi>
-                                                                                                                            <m:mo stretchy="false">)</m:mo>
-                                                                                                                        </m:mrow>
-                                                                                                                    </m:mtd>
-                                                                                                                </m:mtr>
-                                                                                                                <m:mtr>
-                                                                                                                    <m:mtd>
-                                                                                                                        <m:mrow>
-                                                                                                                            <m:mo>.</m:mo>
-                                                                                                                            <m:mrow helm:xref="i18">
-                                                                                                                                <m:mo>&lt;</m:mo>
-                                                                                                                                <m:mi helm:xref="i19">P</m:mi>
-                                                                                                                                <m:mo>&gt;</m:mo>
-                                                                                                                                <m:mo>CASES</m:mo>
-                                                                                                                                <m:mphantom>
-                                                                                                                                    <m:mtext>_</m:mtext>
-                                                                                                                                </m:mphantom>
-                                                                                                                                <m:mi helm:xref="i20">a</m:mi>
-                                                                                                                                <m:mphantom>
-                                                                                                                                    <m:mtext>_</m:mtext>
-                                                                                                                                </m:mphantom>
-                                                                                                                                <m:mo>OF</m:mo>
-                                                                                                                                <m:mrow>
-                                                                                                                                    <m:mo stretchy="false">(</m:mo>
-                                                                                                                                    <m:mi>conj</m:mi>
-                                                                                                                                    <m:mphantom>
-                                                                                                                                        <m:mtext>_</m:mtext>
-                                                                                                                                    </m:mphantom>
-                                                                                                                                    <m:mi>$1</m:mi>
-                                                                                                                                    <m:mphantom>
-                                                                                                                                        <m:mtext>_</m:mtext>
-                                                                                                                                    </m:mphantom>
-                                                                                                                                    <m:mi>$2</m:mi>
-                                                                                                                                    <m:mo stretchy="false">)</m:mo>
-                                                                                                                                </m:mrow>
-                                                                                                                                <m:mo color="Green">&#8658;</m:mo>
-                                                                                                                                <m:mrow>
-                                                                                                                                    <m:mo stretchy="false">(</m:mo>
-                                                                                                                                    <m:mi helm:xref="i21">f</m:mi>
-                                                                                                                                    <m:mphantom>
-                                                                                                                                        <m:mtext>_</m:mtext>
-                                                                                                                                    </m:mphantom>
-                                                                                                                                    <m:mi>$1</m:mi>
-                                                                                                                                    <m:mphantom>
-                                                                                                                                        <m:mtext>_</m:mtext>
-                                                                                                                                    </m:mphantom>
-                                                                                                                                    <m:mi>$2</m:mi>
-                                                                                                                                    <m:mo stretchy="false">)</m:mo>
-                                                                                                                                </m:mrow>
-                                                                                                                                <m:mphantom>
-                                                                                                                                    <m:mtext>_</m:mtext>
-                                                                                                                                </m:mphantom>
-                                                                                                                                <m:mo>END</m:mo>
-                                                                                                                            </m:mrow>
-                                                                                                                        </m:mrow>
-                                                                                                                    </m:mtd>
-                                                                                                                </m:mtr>
-                                                                                                            </m:mtable>
-                                                                                                        </m:mrow>
-                                                                                                    </m:mrow>
-                                                                                                </m:mtd>
-                                                                                            </m:mtr>
-                                                                                        </m:mtable>
-                                                                                    </m:mrow>
-                                                                                </m:mrow>
-                                                                            </m:mtd>
-                                                                        </m:mtr>
-                                                                    </m:mtable>
-                                                                </m:mrow>
-                                                            </m:mrow>
-                                                        </m:mtd>
-                                                    </m:mtr>
-                                                </m:mtable>
-                                            </m:mrow>
-                                        </m:mrow>
-                                    </m:mtd>
-                                </m:mtr>
-                            </m:mtable>
-                        </m:mrow>
-                        <m:annotation-xml encoding="MathML">
-                            <m:lambda helm:xref="i1">
-                                <m:bvar>
-                                    <m:ci>A</m:ci>
-                                    <m:type>
-                                        <m:apply helm:xref="i2">
-                                            <m:csymbol>Prop</m:csymbol>
-                                        </m:apply>
-                                    </m:type>
-                                </m:bvar>
-                                <m:lambda helm:xref="i3">
-                                    <m:bvar>
-                                        <m:ci>B</m:ci>
-                                        <m:type>
-                                            <m:apply helm:xref="i4">
-                                                <m:csymbol>Prop</m:csymbol>
-                                            </m:apply>
-                                        </m:type>
-                                    </m:bvar>
-                                    <m:lambda helm:xref="i5">
-                                        <m:bvar>
-                                            <m:ci>P</m:ci>
-                                            <m:type>
-                                                <m:apply helm:xref="i6">
-                                                    <m:csymbol>Prop</m:csymbol>
-                                                </m:apply>
-                                            </m:type>
-                                        </m:bvar>
-                                        <m:lambda helm:xref="i7">
-                                            <m:bvar>
-                                                <m:ci>f</m:ci>
-                                                <m:type>
-                                                    <m:apply helm:xref="i8">
-                                                        <m:csymbol>arrow</m:csymbol>
-                                                        <m:ci helm:xref="i9">A</m:ci>
-                                                        <m:apply helm:xref="i10">
-                                                            <m:csymbol>arrow</m:csymbol>
-                                                            <m:ci helm:xref="i11">B</m:ci>
-                                                            <m:ci helm:xref="i12">P</m:ci>
-                                                        </m:apply>
-                                                    </m:apply>
-                                                </m:type>
-                                            </m:bvar>
-                                            <m:lambda helm:xref="i13">
-                                                <m:bvar>
-                                                    <m:ci>a</m:ci>
-                                                    <m:type>
-                                                        <m:apply helm:xref="i14">
-                                                            <m:csymbol>app</m:csymbol>
-                                                            <m:ci definitionURL="cic:/coq/INIT/Logic/Conjunction/and.ind" helm:xref="i15">and</m:ci>
-                                                            <m:ci helm:xref="i16">A</m:ci>
-                                                            <m:ci helm:xref="i17">B</m:ci>
-                                                        </m:apply>
-                                                    </m:type>
-                                                </m:bvar>
-                                                <m:apply helm:xref="i18">
-                                                    <m:csymbol>mutcase</m:csymbol>
-                                                    <m:ci helm:xref="i19">P</m:ci>
-                                                    <m:ci helm:xref="i20">a</m:ci>
-                                                    <m:apply>
-                                                        <m:csymbol>app</m:csymbol>
-                                                        <m:ci>conj</m:ci>
-                                                        <m:ci>$1</m:ci>
-                                                        <m:ci>$2</m:ci>
-                                                    </m:apply>
-                                                    <m:apply>
-                                                        <m:csymbol>app</m:csymbol>
-                                                        <m:ci helm:xref="i21">f</m:ci>
-                                                        <m:ci>$1</m:ci>
-                                                        <m:ci>$2</m:ci>
-                                                    </m:apply>
-                                                </m:apply>
-                                            </m:lambda>
-                                        </m:lambda>
-                                    </m:lambda>
-                                </m:lambda>
-                            </m:lambda>
-                        </m:annotation-xml>
-                    </m:semantics>
-                </m:mrow>
-            </m:mtd>
-        </m:mtr>
-    </m:mtable>
-</m:math>
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/ml_gtk_mathview.c b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/ml_gtk_mathview.c
deleted file mode 100644 (file)
index 39f3d74..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-#include <string.h>
-#include <assert.h>
-#include <gtk/gtk.h>
-#include <caml/mlvalues.h>
-#include <caml/alloc.h>
-#include <caml/memory.h>
-#include <caml/callback.h>
-#include <caml/fail.h>
-
-#include <gtkmathview/gtkmathview.h>
-#include <ml_gtk.h>
-
-#include <wrappers.h>
-#include <ml_glib.h>
-#include <ml_gdk.h>
-#include <ml_gtk.h>
-#include <gtk_tags.h>
-
-#include "minidom/ml_minidom.h"
-
-/* <CSC/>: Next row should be put in a .h of lablgtk. */
-#define GtkAdjustment_val(val) check_cast(GTK_ADJUSTMENT,val)
-
-#define GtkMathView_val(val) check_cast(GTK_MATH_VIEW,val)
-ML_3 (gtk_math_view_new,GtkAdjustment_val, GtkAdjustment_val, Bool_val, Val_GtkWidget_sink)
-ML_2 (gtk_math_view_load, GtkMathView_val, String_val, Val_bool)
-ML_1 (gtk_math_view_unload, GtkMathView_val, Unit)
-/*ML_1 (gtk_math_view_dump, GtkMathView_val, Unit)*/
-ML_1 (gtk_math_view_get_selection, GtkMathView_val, Val_mDOMNodeRef)
-ML_2 (gtk_math_view_set_selection, GtkMathView_val, mDOMNodeRef_val, Unit)
-ML_1 (gtk_math_view_get_width, GtkMathView_val, Val_int)
-ML_1 (gtk_math_view_get_height, GtkMathView_val, Val_int)
-ML_3 (gtk_math_view_set_top, GtkMathView_val, Int_val, Int_val, Unit)
-ML_3 (gtk_math_view_set_adjustments, GtkMathView_val, GtkAdjustment_val, GtkAdjustment_val, Unit)
-ML_1 (gtk_math_view_get_hadjustment, GtkMathView_val, Val_GtkWidget)
-ML_1 (gtk_math_view_get_vadjustment, GtkMathView_val, Val_GtkWidget)
-ML_1 (gtk_math_view_get_buffer, GtkMathView_val, Val_GdkPixmap)
-ML_1 (gtk_math_view_get_frame, GtkMathView_val, Val_GtkWidget)
-ML_2 (gtk_math_view_set_font_size, GtkMathView_val, Int_val, Unit)
-ML_1 (gtk_math_view_get_font_size, GtkMathView_val, Val_int)
-ML_2 (gtk_math_view_set_anti_aliasing, GtkMathView_val, Bool_val, Unit)
-ML_1 (gtk_math_view_get_anti_aliasing, GtkMathView_val, Val_bool)
-ML_2 (gtk_math_view_set_kerning, GtkMathView_val, Bool_val, Unit)
-ML_1 (gtk_math_view_get_kerning, GtkMathView_val, Val_bool)
-ML_2 (gtk_math_view_set_log_verbosity, GtkMathView_val, Int_val, Unit)
-ML_1 (gtk_math_view_get_log_verbosity, GtkMathView_val, Val_int)
-
-
-value ml_gtk_math_view_export_to_postscript (value arg1, value arg2)
-{
-   CAMLparam1(arg1);
-   char *filename;
-   FILE *fd;
-   int res;
-   filename = String_val (arg2);
-   if ((fd = fopen(filename, "w"))) {
-      gtk_math_view_export_to_postscript (GtkMathView_val (arg1), fd);
-      fclose (fd);
-      res = 1;
-   } else {
-      fprintf(stderr, "Error opening file %s for writing\n", filename);
-      res = 0;
-   }
-   CAMLreturn (Val_bool(res));
-}
-
-value ml_gtk_math_view_get_top (value arg1)
-{
-   CAMLparam1(arg1);
-   CAMLlocal1 (result);
-   int x, y;
-   gtk_math_view_get_top(GtkMathView_val (arg1), &x, &y);
-   result = alloc(2, 0);
-   Store_field(result, 0, Val_int(x));
-   Store_field(result, 0, Val_int(y));
-   CAMLreturn (result);
-}
-
-
-value ml_gtk_math_view_mDOMNode_of_bodex_option (value arg1)
-{
-   CAMLparam1(arg1);
-
-   mDOMNodeRef nr;
-   CAMLlocal1 (tmp);
-   CAMLlocal1 (optval);
-   CAMLlocal1 (res);
-
-   if (arg1==Val_int(0)) {
-      assert(0);
-   } else {
-      tmp = Field(arg1, 0);
-      nr = (mDOMNodeRef) Field(tmp, 1);
-   }
-   optval = Val_mDOMNodeRef(nr);
-   if (optval==Val_int(0)) {
-      assert(0);
-   } else {
-      res = Field(optval, 0);
-   }
-
-  CAMLreturn(res);
-}
-
-value ml_gtk_math_view_mDOMNode_option_of_bodex_option (value arg1)
-{
-   CAMLparam1(arg1);
-
-   mDOMNodeRef nr;
-   CAMLlocal1 (tmp);
-
-   if (arg1==Val_int(0)) {
-      nr=NULL;
-   } else {
-      tmp = Field(arg1, 0);
-      nr = (mDOMNodeRef) Field(tmp, 1);
-   }
-
-  CAMLreturn(Val_mDOMNodeRef(nr));
-}
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/.cvsignore b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/.cvsignore
deleted file mode 100644 (file)
index 1968614..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*.cmo *.cmi *.cmx t1lib.log test test.opt test.ps test.o
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/Makefile b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/Makefile
deleted file mode 100644 (file)
index 1d5f5e1..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-LABLGTK_DIR = /usr/lib/ocaml/lablgtk
-LABLGTK_MATHVIEW_DIR = ..
-MINIDOM_DIR = ../minidom
-OCAMLC = ocamlc -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \
- -I $(MINIDOM_DIR) -I mlmathview
-OCAMLOPT = ocamlopt -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) \
- -I $(MINIDOM_DIR) -I mlmathview
-
-all: test
-opt: test.opt
-
-test: test.cmo
-       $(OCAMLC) -custom -o test lablgtk.cma gtkInit.cmo \
-                  $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cma \
-                  $(MINIDOM_DIR)/minidom.cmo \
-                  -cclib "$(MINIDOM_DIR)/ml_minidom.o" \
-                  test.cmo \
-                  -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \
-                  -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \
-                  -L/usr/local/lib/gtkmathview -lgtkmathview \
-                  $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o"
-
-test.opt: test.cmx
-       $(OCAMLOPT) -o test.opt lablgtk.cmxa gtkInit.cmx \
-                  $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cmxa \
-                  $(MINIDOM_DIR)/minidom.cmx \
-                  -cclib "$(MINIDOM_DIR)/ml_minidom.o" \
-                  test.cmx \
-                  -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \
-                  -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \
-                  -L/usr/local/lib/gtkmathview -lgtkmathview \
-                  $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o"
-
-.SUFFIXES: .ml .mli .cmo .cmi .cmx
-.ml.cmo:
-       $(OCAMLC) -c $<
-.mli.cmi:
-       $(OCAMLC) -c $<
-.ml.cmx:
-       $(OCAMLOPT) -c $<
-
-clean:
-       rm -f *.cm[iox] *.o test test.opt t1lib.log
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/t1.config b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/t1.config
deleted file mode 100644 (file)
index afb669e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-ENCODING=.
-AFM=/usr/share/texmf/fonts/afm/
-TYPE1=/usr/share/texmf/fonts/type1/bluesky/cm/:/usr/X11R6/lib/X11/fonts/Type1/:.
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.ml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.ml
deleted file mode 100644 (file)
index af65d74..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-(******************************************************************************)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 25/09/2000                                 *)
-(*                                                                            *)
-(*     This is a simple test for the OCaml (LablGtk indeed) binding of the    *)
-(*                             MathView widget                                *)
-(******************************************************************************)
-
-(* Callbacks *)
-let jump node =
- let module M = Minidom in
-  print_string ("jump: " ^
-   (match
-     M.node_get_attribute node
-      (M.mDOMString_of_string "href")
-    with
-       None   -> "DOES NOT WORKS (if you have clicked on the hyperlink)!!!!!" 
-     | Some s -> M.string_of_mDOMString s
-   ) ^ "\n");
-  flush stdout
-;;
-
-let selection_changed node =
- let module M = Minidom in
-  print_string ("selection_changed: " ^
-   (match node with
-       None -> "selection_changed on nothing"
-     | Some node ->
-        match M.node_get_name node with
-           None   -> "selection_changed on a node without name" 
-         | Some s -> "selection changed on " ^ M.string_of_mDOMString s
-   ) ^ "\n");
-  flush stdout
-;;
-
-
-let clicked node =
- let module M = Minidom in
-  print_string ("clicked: " ^
-   (match M.node_get_name node with
-       None   -> "Nothing clicked (???)" 
-     | Some s -> M.string_of_mDOMString s ^ " clicked"
-   ) ^ "\n");
-  flush stdout
-;;
-
-
-let activate_t1 mathview sw () =
- sw#remove !mathview#coerce ;
- mathview :=
- (GMathView.math_view ~packing:sw#add ~width:50 ~height:50
-  ~use_t1_lib:true ()) ;
- ignore(!mathview#connect#jump jump) ;
- ignore(!mathview#connect#clicked clicked) ;
- ignore(!mathview#connect#selection_changed selection_changed) ;
- print_string "WIDGET RECREATED WITH T1 FONTS ACTIVATED\n" ;
-;;
-
-let load mathview () =
- !mathview#load "test.xml" ;
- print_string "load: SEEMS TO WORK\n" ;
- flush stdout
-;;
-
-let get_selection mathview () =
- let selection =
-  match !mathview#get_selection with
-     None -> "NO SELECTION"
-   | Some node ->
-      match Minidom.node_get_name node with
-        None   -> "selection is on nothing" 
-      | Some s -> "selection is on " ^ Minidom.string_of_mDOMString s
- in
-  print_string ("get_selection: " ^ selection ^ "\n") ;
-  flush stdout
-;;
-
-let set_selection mathview () =
- begin
-  try
-   match !mathview#get_selection with
-      None -> raise Not_found
-    | Some node ->
-       match Minidom.node_get_parent node with
-          None -> raise Not_found
-        | Some node ->
-           !mathview#set_selection (Some node) ;
-           print_string "set_selection: SEEMS TO WORK\n"
-  with
-   Not_found ->
-    print_string "set_selection: YOU MUST PREVIOUSLY SELECT A NON-ROOT NODE" 
- end ;
- flush stdout
-;;
-
-let unload mathview () =
- !mathview#unload ;
- print_string "unload: SEEMS TO WORK\n" ;
- flush stdout
-;;
-
-let get_width mathview () =
- print_string ("get_width: " ^ string_of_int (!mathview#get_width) ^ "\n") ;
- flush stdout
-;;
-
-let get_height mathview () =
- print_string ("get_height: " ^ string_of_int (!mathview#get_height) ^ "\n") ;
- flush stdout
-;;
-
-let get_top mathview () =
- let (x,y) = !mathview#get_top in
-  print_string ("get_top: ("^ string_of_int x ^ "," ^ string_of_int y ^ ")\n") ;
-  flush stdout
-;;
-
-let set_top mathview () =
- !mathview#set_top 0 0;
- print_string "set_top: SEEM TO WORK\n" ;
- flush stdout
-;;
-
-let set_adjustments mathview () =
- let adj1 = GData.adjustment () in
- let adj2 = GData.adjustment () in
-  !mathview#set_adjustments adj1 adj2 ;
-  adj1#set_value ((adj1#lower +. adj1#upper) /. 2.0) ;
-  adj2#set_value ((adj2#lower +. adj2#upper) /. 2.0) ;
-  print_string "set_adjustments: SEEM TO WORK\n" ;
-  flush stdout
-;;
-
-let get_hadjustment mathview () =
- let adj = !mathview#get_hadjustment in
-  adj#set_value ((adj#lower +. adj#upper) /. 2.0) ;
-  print_string "get_hadjustment: SEEM TO WORK\n" ;
-  flush stdout
-;;
-
-let get_vadjustment mathview () =
- let adj = !mathview#get_vadjustment in
-  adj#set_value ((adj#lower +. adj#upper) /. 2.0) ;
-  print_string "get_vadjustment: SEEM TO WORK\n" ;
-  flush stdout
-;;
-
-let get_buffer mathview () =
- let buffer = !mathview#get_buffer in
-  Gdk.Draw.rectangle buffer (Gdk.GC.create buffer) ~x:0 ~y:0
-   ~width:50 ~height:50 ~filled:true () ;
-  print_string "get_buffer: SEEMS TO WORK (hint: force the widget redrawing)\n";
-  flush stdout
-;;
-
-let get_frame mathview () =
- let frame = !mathview#get_frame in
-  frame#set_shadow_type `NONE ;
-  print_string "get_frame: SEEMS TO WORK\n" ;
-  flush stdout
-;;
-
-let set_font_size mathview () =
- !mathview#set_font_size 24 ;
- print_string "set_font_size: FONT IS NOW 24\n" ;
- flush stdout
-;;
-let get_font_size mathview () =
- print_string ("get_font_size: " ^ string_of_int (!mathview#get_font_size) ^ "\n") ;
- flush stdout
-;;
-let set_anti_aliasing mathview () =
- !mathview#set_anti_aliasing true ;
- print_string "set_anti_aliasing: ON\n" ;
- flush stdout
-;;
-let get_anti_aliasing mathview () =
- print_string ("get_anti_aliasing: " ^
-  (match !mathview#get_anti_aliasing with true -> "ON" | false -> "OFF") ^
-  "\n") ;
- flush stdout
-;;
-let set_kerning mathview () =
- !mathview#set_kerning true ;
- print_string "set_kerning: ON\n" ;
- flush stdout
-;;
-let get_kerning mathview () =
- print_string ("get_kerning: " ^
-  (match !mathview#get_kerning with true -> "ON" | false -> "OFF") ^
-  "\n") ;
- flush stdout
-;;
-
-let set_log_verbosity mathview () =
- !mathview#set_log_verbosity 3 ;
- print_string "set_log_verbosity: NOW IS 3\n" ;
- flush stdout
-;;
-let get_log_verbosity mathview () =
- print_string ("get_log_verbosity: " ^
-  string_of_int !mathview#get_log_verbosity ^
-  "\n") ;
- flush stdout
-;;
-
-let export_to_postscript mathview () =
- !mathview#export_to_postscript "test.ps" ;
- print_string "expor_to_postscript: SEEMS TO WORK (hint: look at test.ps)\n";
- flush stdout
-;;
-(* Widget creation *)
-let main_window = GWindow.window ~title:"GtkMathView test" () in
-let vbox = GPack.vbox ~packing:main_window#add () in
-let sw = GBin.scrolled_window ~width:50 ~height:50 ~packing:vbox#pack () in
-let mathview= ref (GMathView.math_view ~packing:sw#add ~width:50 ~height:50 ()) in
-let table = GPack.table ~rows:5 ~columns:5 ~packing:vbox#pack () in
-let button_t1=GButton.button ~label:"activate t1 fonts" ~packing:(table#attach ~left:0 ~top:0) () in
-let button_load = GButton.button ~label:"load" ~packing:(table#attach ~left:1 ~top:0) () in
-let button_unload = GButton.button ~label:"unload" ~packing:(table#attach ~left:2 ~top:0) () in
-let button_get_selection = GButton.button ~label:"get_selection" ~packing:(table#attach ~left:3 ~top:0) () in
-let button_set_selection = GButton.button ~label:"set_selection" ~packing:(table#attach ~left:4 ~top:0) () in
-let button_get_width = GButton.button ~label:"get_width" ~packing:(table#attach ~left:0 ~top:1) () in
-let button_get_height = GButton.button ~label:"get_height" ~packing:(table#attach ~left:1 ~top:1) () in
-let button_get_top = GButton.button ~label:"get_top" ~packing:(table#attach ~left:2 ~top:1) () in
-let button_set_top = GButton.button ~label:"set_top" ~packing:(table#attach ~left:3 ~top:1) () in
-let button_set_adjustments = GButton.button ~label:"set_adjustments" ~packing:(table#attach ~left:4 ~top:1) () in
-let button_get_hadjustment = GButton.button ~label:"get_hadjustment" ~packing:(table#attach ~left:0 ~top:2) () in
-let button_get_vadjustment = GButton.button ~label:"get_vadjustment" ~packing:(table#attach ~left:1 ~top:2) () in
-let button_get_buffer = GButton.button ~label:"get_buffer" ~packing:(table#attach ~left:2 ~top:2) () in
-let button_get_frame = GButton.button ~label:"get_frame" ~packing:(table#attach ~left:3 ~top:2) () in
-let button_set_font_size = GButton.button ~label:"set_font_size" ~packing:(table#attach ~left:4 ~top:2) () in
-let button_get_font_size = GButton.button ~label:"get_font_size" ~packing:(table#attach ~left:0 ~top:3) () in
-let button_set_anti_aliasing = GButton.button ~label:"set_anti_aliasing" ~packing:(table#attach ~left:1 ~top:3) () in
-let button_get_anti_aliasing = GButton.button ~label:"get_anti_aliasing" ~packing:(table#attach ~left:2 ~top:3) () in
-let button_set_kerning = GButton.button ~label:"set_kerning" ~packing:(table#attach ~left:3 ~top:3) () in
-let button_get_kerning = GButton.button ~label:"get_kerning" ~packing:(table#attach ~left:4 ~top:3) () in
-let button_set_log_verbosity = GButton.button ~label:"set_log_verbosity" ~packing:(table#attach ~left:0 ~top:4) () in
-let button_get_log_verbosity = GButton.button ~label:"get_log_verbosity" ~packing:(table#attach ~left:1 ~top:4) () in
-let button_export_to_postscript = GButton.button ~label:"export_to_postscript" ~packing:(table#attach ~left:2 ~top:4) () in
-(* Signals connection *)
-ignore(button_t1#connect#clicked (activate_t1 mathview sw)) ;
-ignore(button_load#connect#clicked (load mathview)) ;
-ignore(button_unload#connect#clicked (unload mathview)) ;
-ignore(button_get_selection#connect#clicked (get_selection mathview)) ;
-ignore(button_set_selection#connect#clicked (set_selection mathview)) ;
-ignore(button_get_width#connect#clicked (get_width mathview)) ;
-ignore(button_get_height#connect#clicked (get_height mathview)) ;
-ignore(button_get_top#connect#clicked (get_top mathview)) ;
-ignore(button_set_top#connect#clicked (set_top mathview)) ;
-ignore(button_set_adjustments#connect#clicked (set_adjustments mathview)) ;
-ignore(button_get_hadjustment#connect#clicked (get_hadjustment mathview)) ;
-ignore(button_get_vadjustment#connect#clicked (get_vadjustment mathview)) ;
-ignore(button_get_buffer#connect#clicked (get_buffer mathview)) ;
-ignore(button_get_frame#connect#clicked (get_frame mathview)) ;
-ignore(button_set_font_size#connect#clicked (set_font_size mathview)) ;
-ignore(button_get_font_size#connect#clicked (get_font_size mathview)) ;
-ignore(button_set_anti_aliasing#connect#clicked (set_anti_aliasing mathview)) ;
-ignore(button_get_anti_aliasing#connect#clicked (get_anti_aliasing mathview)) ;
-ignore(button_set_kerning#connect#clicked (set_kerning mathview)) ;
-ignore(button_get_kerning#connect#clicked (get_kerning mathview)) ;
-ignore(button_set_log_verbosity#connect#clicked (set_log_verbosity mathview)) ;
-ignore(button_get_log_verbosity#connect#clicked (get_log_verbosity mathview)) ;
-ignore(button_export_to_postscript#connect#clicked (export_to_postscript mathview)) ;
-ignore(!mathview#connect#jump jump) ;
-ignore(!mathview#connect#clicked clicked) ;
-ignore(!mathview#connect#selection_changed selection_changed) ;
-(* Main Loop *)
-main_window#show () ;
-GMain.Main.main ()
-;;
diff --git a/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.xml b/helm/DEVEL/lablgtk_gtkmathview/lablgtk-20000829_gtkmathview-0.2.0/test/test.xml
deleted file mode 100644 (file)
index b0f8c15..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-<math display="block">
-  <mrow helm:xref="SELECTION OK">
-    <mo>&int;</mo>
-    <mo>&ApplyFunction;</mo>
-    <mfrac>
-      <mrow>
-        <mrow>
-          <mi>a</mi>
-         <mo>&InvisibleTimes;</mo>
-         <mi>x</mi>
-       </mrow>
-       <mo>+</mo>
-       <mi>b</mi>
-      </mrow>
-      <mrow>
-        <msup>
-         <mi>x</mi>
-         <mn>2</mn>
-       </msup>
-       <mo>+</mo>
-       <mrow>
-         <mi>p</mi>
-         <mo>&InvisibleTimes;</mo>
-         <mi>x</mi>
-       </mrow>
-       <mo>+</mo>
-       <mi>q</mi>
-      </mrow>
-    </mfrac>
-  </mrow>
-  <mo fontstyle="italic">d</mo>
-  <mi>x</mi>
-  <mo>=</mo>
-  <mrow>
-    <mrow>
-      <mfrac><mi>a</mi><mn>2</mn></mfrac>
-      <mo>&InvisibleTimes;</mo>
-      <mrow>
-        <mi>ln</mi>
-       <mo>&ApplyFunction;</mo>
-       <mrow>
-         <mo>(</mo>
-         <mrow>
-           <msup><mi>x</mi><mn>2</mn></msup>
-           <mo>+</mo>
-           <mrow>
-             <mi>p</mi>
-             <mo>&InvisibleTimes;</mo>
-             <mi>x</mi>
-           </mrow>
-           <mo>+</mo>
-           <mi>q</mi>
-         </mrow>
-         <mo>)</mo>
-       </mrow>
-      </mrow>
-    </mrow>
-    <mo>+</mo>
-    <mrow>
-      <mfrac>
-        <mrow>
-         <mrow>
-           <mn>2</mn>
-           <mo>&InvisibleTimes;</mo>
-           <mi>b</mi>
-         </mrow>
-         <mo>-</mo>
-         <mrow>
-           <mi>a</mi>
-           <mo>&InvisibleTimes;</mo>
-           <mi>p</mi>
-         </mrow>
-       </mrow>
-       <msqrt>
-         <mrow>
-           <mrow>
-             <mn>4</mn>
-             <mo>&InvisibleTimes;</mo>
-             <mi>q</mi>
-           </mrow>
-           <mo>-</mo>
-           <msup>
-             <mi>p</mi>
-             <mn>2</mn>
-           </msup>
-         </mrow>
-       </msqrt>
-      </mfrac>
-      <mo>&InvisibleTimes;</mo>
-      <mrow>
-        <mi xlink:href="JUMPS WORK">arctg</mi>
-       <mo>&ApplyFunction;</mo>
-       <mfrac>
-         <mrow>
-           <mrow>
-             <mn>2</mn>
-             <mo>&InvisibleTimes;</mo>
-             <mi>x</mi>
-           </mrow>
-           <mo>+</mo>
-           <mi>p</mi>
-         </mrow>
-         <msqrt>
-           <mrow>
-             <mrow>
-               <mn>4</mn>
-               <mo>&InvisibleTimes;</mo>
-               <mi>q</mi>
-             </mrow>
-             <mo>-</mo>
-             <msup>
-               <mi>p</mi>
-               <mn>2</mn>
-             </msup>
-           </mrow>
-         </msqrt>
-       </mfrac>
-      </mrow>
-    </mrow>
-    <mo>+</mo>
-    <mi>c</mi>
-  </mrow>  
-</math>
diff --git a/helm/configuration/install b/helm/configuration/install
deleted file mode 100755 (executable)
index de25074..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-echo "********************************************************"
-echo "* Insert the root dir \$root                           *"
-echo "* Files will be installed in \$root/local/lib/helm and *"
-echo "* in \$root/local/lib/etc/helm/                        *"
-echo "********************************************************"
-echo -n "\$root="
-read ROOT
-
-echo cp local/lib/helm/configuration.pl $ROOT/local/lib/helm/
-cp local/lib/helm/configuration.pl $ROOT/local/lib/helm/
-
-echo cp local/etc/helm/configuration.xml $ROOT/local/etc/helm/
-cp local/etc/helm/configuration.xml $ROOT/local/etc/helm/
-
-echo cp local/etc/helm/configuration.dtd $ROOT/local/etc/helm/
-cp local/etc/helm/configuration.dtd $ROOT/local/etc/helm/
diff --git a/helm/configuration/local/etc/helm/configuration.dtd b/helm/configuration/local/etc/helm/configuration.dtd
deleted file mode 100644 (file)
index 2a2428d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml encoding="ISO-8859-1"?>
-
-<!--*****************************************************************-->
-<!-- DTD FOR HELM CONFIGURATION FILE:                                -->
-<!--  First draft: June 6 2000, Claudio Sacerdoti Coen               -->
-<!--  Last Revision: June 6 2000, Claudio Sacerdoti Coen             -->
-<!--*****************************************************************-->
-
-<!ELEMENT configuration (helm_dir, dtd_dir, servers_file, uris_dbm, dest,
-                        indexname, tmpdir, helm_url_path,
-                         getheader_url, style_url, webeq_url, webeqp_url,
-                         use_webeqp_url, html_link, getter_url)>
-
-<!ENTITY % expr '(#PCDATA | value-of)*'>
-
-<!ELEMENT value-of EMPTY>
-<!ATTLIST value-of
-       var NMTOKEN #REQUIRED >
-
-<!ELEMENT helm_dir       %expr;>
-<!ELEMENT dtd_dir        %expr;>
-<!ELEMENT servers_file   %expr;>
-<!ELEMENT uris_dbm       %expr;>
-<!ELEMENT dest           %expr;>
-<!ELEMENT indexname      %expr;>
-<!ELEMENT tmpdir         %expr;>
-<!ELEMENT helm_url_path  %expr;>
-<!ELEMENT getheader_url  %expr;>
-<!ELEMENT style_url      %expr;>
-<!ELEMENT webeq_url      %expr;>
-<!ELEMENT webeqp_url     %expr;>
-<!ELEMENT use_webeqp_url %expr;>
-<!ELEMENT html_link      %expr;>
-<!ELEMENT getter_url     %expr;>
diff --git a/helm/configuration/local/etc/helm/configuration.xml b/helm/configuration/local/etc/helm/configuration.xml
deleted file mode 100644 (file)
index 89dbae7..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE configuration SYSTEM "configuration.dtd">
-
-<configuration>
- <helm_dir>/home/pauillac/coq3/sacerdot/HELM/interface/V6.2/examples</helm_dir>
-
- <dtd_dir><value-of var="helm_dir"/>/dtd</dtd_dir>
- <servers_file>/home/pauillac/coq3/sacerdot/HELM/interface/V6.2/servers.txt</servers_file>
- <uris_dbm>/home/pauillac/coq3/sacerdot/HELM/interface/V6.2/urls_of_uris</uris_dbm>
- <dest><value-of var="helm_dir"/></dest>
- <indexname>index.txt</indexname>
- <tmpdir>/tmp</tmpdir>
-
- <helm_url_path>/home/lpadovan/helm/PARSER/examples</helm_url_path>
- <getheader_url>http://localhost/really_very_local/helm/header/getheader.xml</getheader_url>
- <style_url>http://localhost/really_very_local/helm/style/</style_url>
- <webeq_url>http://localhost/cgi-bin/helm/webeq.pl</webeq_url>
- <webeqp_url>http://localhost/cgi-bin/helm/webeqp.pl</webeqp_url>
- <use_webeqp_url>http://localhost/cgi-bin/helm/use_webeqp.pl</use_webeqp_url>
- <html_link><value-of var="getheader_url"/>?baseurl=<value-of var="style_url"/>&amp;stylesheet1=rootcontent.xsl&amp;stylesheet2=content_to_html.xsl&amp;xmlfile=</html_link>
- <getter_url>http://localhost:8081/getwithtypes?url=</getter_url>
-</configuration>
diff --git a/helm/configuration/local/lib/helm/configuration.pl b/helm/configuration/local/lib/helm/configuration.pl
deleted file mode 100644 (file)
index f761e71..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-use XML::Parser;
-
-use Env;
-my $HELM_CONFIGURATION_PREFIX = $ENV{"HELM_CONFIGURATION_PREFIX"};
-# this should be the only fixed constant
-$configuration_file =
- $HELM_CONFIGURATION_PREFIX."/local/etc/helm/configuration.xml";
-
-$parser = new XML::Parser(Handlers => {Start => \&handle_start,
-                                       End   => \&handle_end,
-                                       Char  => \&handle_char});
-
-
-$parser->parsefile($configuration_file, ErrorContext => 3);
-
-
-sub handle_start
-{
-   if ($_[1] eq "value-of") {
-      $$varname .= ${$_[3]};
-   } elsif ($_[1] ne "configuration") {
-      $varname = $_[1];
-   }
-}
-
-sub handle_end
-{
-   if ($_[1] ne "value-of" && $_[1] ne "configuration") {
-      # Next line for debugging only:
-      # print "OK: #$_[1]# := #$$varname#\n";
-      $varname = undef;
-   }
-}
-
-sub handle_char
-{
-   $$varname .= $_[1];
-}
diff --git a/helm/interface/.cvsignore b/helm/interface/.cvsignore
deleted file mode 100644 (file)
index 3a68425..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-*.cmo
-*.cmx
-*.cmi
-
-experiment
-experiment.opt
-fix_params
-fix_params.opt
-mmlinterface
-mmlinterface.opt
-reduction
-reduction.opt
-t1lib.log
-output.ps
-output2.ps
diff --git a/helm/interface/.depend b/helm/interface/.depend
deleted file mode 100644 (file)
index 6402ae5..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-experiment.cmo: cicCache.cmi cicPp.cmi configuration.cmo getter.cmi \
-    uriManager.cmi 
-experiment.cmx: cicCache.cmx cicPp.cmx configuration.cmx getter.cmx \
-    uriManager.cmx 
-cicCache.cmo: annotationParser.cmo cic.cmo cicParser.cmi cicSubstitution.cmi \
-    deannotate.cmo getter.cmi uriManager.cmi cicCache.cmi 
-cicCache.cmx: annotationParser.cmx cic.cmx cicParser.cmx cicSubstitution.cmx \
-    deannotate.cmx getter.cmx uriManager.cmx cicCache.cmi 
-cicCache.cmi: cic.cmo uriManager.cmi 
-cicPp.cmo: cic.cmo cicCache.cmi uriManager.cmi cicPp.cmi 
-cicPp.cmx: cic.cmx cicCache.cmx uriManager.cmx cicPp.cmi 
-cicPp.cmi: cic.cmo 
-cicParser.cmo: cicParser2.cmi cicParser3.cmi pxpUriResolver.cmo \
-    uriManager.cmi cicParser.cmi 
-cicParser.cmx: cicParser2.cmx cicParser3.cmx pxpUriResolver.cmx \
-    uriManager.cmx cicParser.cmi 
-cicParser.cmi: cic.cmo uriManager.cmi 
-cicParser2.cmo: cic.cmo cicParser3.cmi uriManager.cmi cicParser2.cmi 
-cicParser2.cmx: cic.cmx cicParser3.cmx uriManager.cmx cicParser2.cmi 
-cicParser2.cmi: cic.cmo cicParser3.cmi 
-cicParser3.cmo: cic.cmo uriManager.cmi cicParser3.cmi 
-cicParser3.cmx: cic.cmx uriManager.cmx cicParser3.cmi 
-cicParser3.cmi: cic.cmo uriManager.cmi 
-cic.cmo: uriManager.cmi 
-cic.cmx: uriManager.cmx 
-getter.cmo: configuration.cmo uriManager.cmi getter.cmi 
-getter.cmx: configuration.cmx uriManager.cmx getter.cmi 
-getter.cmi: uriManager.cmi 
-cicReduction.cmo: cic.cmo cicCache.cmi cicPp.cmi cicSubstitution.cmi \
-    uriManager.cmi cicReduction.cmi 
-cicReduction.cmx: cic.cmx cicCache.cmx cicPp.cmx cicSubstitution.cmx \
-    uriManager.cmx cicReduction.cmi 
-cicReduction.cmi: cic.cmo 
-cicTypeChecker.cmo: cic.cmo cicCache.cmi cicPp.cmi cicReduction.cmi \
-    cicSubstitution.cmi uriManager.cmi cicTypeChecker.cmi 
-cicTypeChecker.cmx: cic.cmx cicCache.cmx cicPp.cmx cicReduction.cmx \
-    cicSubstitution.cmx uriManager.cmx cicTypeChecker.cmi 
-cicTypeChecker.cmi: uriManager.cmi 
-reduction.cmo: cic.cmo cicCache.cmi cicPp.cmi cicReduction.cmi \
-    cicTypeChecker.cmi configuration.cmo getter.cmi uriManager.cmi 
-reduction.cmx: cic.cmx cicCache.cmx cicPp.cmx cicReduction.cmx \
-    cicTypeChecker.cmx configuration.cmx getter.cmx uriManager.cmx 
-theoryParser.cmo: pxpUriResolver.cmo theoryParser2.cmo 
-theoryParser.cmx: pxpUriResolver.cmx theoryParser2.cmx 
-theoryParser2.cmo: theory.cmo 
-theoryParser2.cmx: theory.cmx 
-theoryTypeChecker.cmo: cicCache.cmi cicTypeChecker.cmi theory.cmo \
-    theoryCache.cmo uriManager.cmi 
-theoryTypeChecker.cmx: cicCache.cmx cicTypeChecker.cmx theory.cmx \
-    theoryCache.cmx uriManager.cmx 
-cicCooking.cmo: cic.cmo cicCache.cmi uriManager.cmi cicCooking.cmi 
-cicCooking.cmx: cic.cmx cicCache.cmx uriManager.cmx cicCooking.cmi 
-cicCooking.cmi: cic.cmo uriManager.cmi 
-cicFindParameters.cmo: cic.cmo cic2Xml.cmo cicCache.cmi configuration.cmo \
-    uriManager.cmi xml.cmi 
-cicFindParameters.cmx: cic.cmx cic2Xml.cmx cicCache.cmx configuration.cmx \
-    uriManager.cmx xml.cmx 
-theoryCache.cmo: getter.cmi theoryParser.cmo 
-theoryCache.cmx: getter.cmx theoryParser.cmx 
-fix_params.cmo: cicFindParameters.cmo configuration.cmo deannotate.cmo \
-    getter.cmi uriManager.cmi 
-fix_params.cmx: cicFindParameters.cmx configuration.cmx deannotate.cmx \
-    getter.cmx uriManager.cmx 
-cic2Xml.cmo: cic.cmo uriManager.cmi xml.cmi 
-cic2Xml.cmx: cic.cmx uriManager.cmx xml.cmx 
-xml.cmo: xml.cmi 
-xml.cmx: xml.cmi 
-uriManager.cmo: uriManager.cmi 
-uriManager.cmx: uriManager.cmi 
-cicSubstitution.cmo: cic.cmo cicSubstitution.cmi 
-cicSubstitution.cmx: cic.cmx cicSubstitution.cmi 
-cicSubstitution.cmi: cic.cmo uriManager.cmi 
-mmlinterface.cmo: annotation2Xml.cmo cicAnnotationHinter.cmo cicCache.cmi \
-    cicTypeChecker.cmi cicXPath.cmo configuration.cmo getter.cmi \
-    theoryTypeChecker.cmo uriManager.cmi xml.cmi xsltProcessor.cmo 
-mmlinterface.cmx: annotation2Xml.cmx cicAnnotationHinter.cmx cicCache.cmx \
-    cicTypeChecker.cmx cicXPath.cmx configuration.cmx getter.cmx \
-    theoryTypeChecker.cmx uriManager.cmx xml.cmx xsltProcessor.cmx 
-xsltProcessor.cmo: configuration.cmo uriManager.cmi 
-xsltProcessor.cmx: configuration.cmx uriManager.cmx 
-deannotate.cmo: cic.cmo 
-deannotate.cmx: cic.cmx 
-cicXPath.cmo: cic.cmo 
-cicXPath.cmx: cic.cmx 
-pxpUriResolver.cmo: configuration.cmo 
-pxpUriResolver.cmx: configuration.cmx 
-annotationParser.cmo: annotationParser2.cmo pxpUriResolver.cmo 
-annotationParser.cmx: annotationParser2.cmx pxpUriResolver.cmx 
-annotationParser2.cmo: cic.cmo 
-annotationParser2.cmx: cic.cmx 
-annotation2Xml.cmo: cic.cmo uriManager.cmi xml.cmi 
-annotation2Xml.cmx: cic.cmx uriManager.cmx xml.cmx 
-cicAnnotationHinter.cmo: cic.cmo 
-cicAnnotationHinter.cmx: cic.cmx 
diff --git a/helm/interface/ISTRUZIONI b/helm/interface/ISTRUZIONI
deleted file mode 100644 (file)
index fe6c09e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-==============================
-ISTRUZIONI PER CHI USA LA TCSH
-==============================
-
-Lanciare:
-
- source PER_FARLO_ANDARE_TCSH
-
-Poi far partire altri due xterm.
-Nel primo lanciare:
-
- make start-xaland3
-
-Nel secondo lanciare:
-
- make start-http-getter
-
-Se non funziona significa che ce ne e' gia' uno attivo.
-
-Infini lanciare, dall'ultima shell,
-
- ./mmlinterface.opt.saved
diff --git a/helm/interface/Makefile b/helm/interface/Makefile
deleted file mode 100644 (file)
index ef50685..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-LABLGTK_DIR = /usr/lib/ocaml/lablgtk
-LABLGTK_MATHVIEW_DIR = /usr/lib/ocaml/lablgtk/mathview
-MINIDOM_DIR = /usr/lib/ocaml/lablgtk/mathview/minidom
-PXP_DIR = /usr/lib/ocaml/site-lib/pxp
-NETSTRING_DIR = /usr/lib/ocaml/site-lib/netstring
-OCAMLC = ocamlc -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) -I $(PXP_DIR) -I $(NETSTRING_DIR) -I $(MINIDOM_DIR) -I mlmathview
-OCAMLOPT = ocamlopt -I $(LABLGTK_DIR) -I $(LABLGTK_MATHVIEW_DIR) -I mlgtk_devel -I $(PXP_DIR) -I $(NETSTRING_DIR) -I $(MINIDOM_DIR) -I mlmathview
-OCAMLDEP = ocamldep
-
-all: experiment reduction fix_params mmlinterface
-opt: experiment.opt reduction.opt fix_params.opt mmlinterface.opt
-
-PXPLIBS = netstring.cma netmappings_iso.cmo netmappings_other.cmo \
-          pxp_types.cma \
-          pxp_lex_iso88591.cma pxp_lex_utf8.cma pxp_engine.cma \
-          pxp_utf8.cmo
-
-PXPLIBSOPT = netstring.cmxa netmappings_iso.cmx netmappings_other.cmx \
-             pxp_types.cmxa \
-             pxp_lex_iso88591.cmxa pxp_lex_utf8.cmxa pxp_engine.cmxa \
-             pxp_utf8.cmx
-
-
-DEPOBJS = experiment.ml cicCache.ml cicCache.mli cicPp.ml cicPp.mli \
-          cicParser.ml cicParser.mli cicParser2.ml cicParser2.mli \
-          cicParser3.ml cicParser3.mli cic.ml getter.ml getter.mli \
-          gtkInterface.ml cicReduction.ml cicReduction.mli cicTypeChecker.ml \
-          cicTypeChecker.mli reduction.ml tgtkInterface.ml theory.ml \
-          theoryParser.ml theoryParser2.ml theoryPp.ml theoryTypeChecker.ml \
-          cicCooking.ml cicCooking.mli cicFindParameters.ml theoryCache.ml \
-          fix_params.ml cic2Xml.ml xml.ml uriManager.ml uriManager.mli \
-          cicSubstitution.ml cicSubstitution.mli mml.ml \
-          mmlinterface.ml configuration.ml \
-          xsltProcessor.ml deannotate.ml cicXPath.ml pxpUriResolver.ml \
-          annotationParser.ml annotationParser2.ml annotation2Xml.ml \
-          cicAnnotationHinter.ml
-
-MMLINTERFACEOBJS = configuration.cmo uriManager.cmo getter.cmo cic.cmo \
-                   pxpUriResolver.cmo \
-                   cicParser3.cmo cicParser2.cmo cicParser.cmo deannotate.cmo \
-                   cicSubstitution.cmo annotationParser2.cmo \
-                   annotationParser.cmo cicCache.cmo cicCooking.cmo cicPp.cmo \
-                   cicReduction.cmo cicTypeChecker.cmo mml.cmo \
-                   xml.cmo \
-                   xsltProcessor.cmo cic2Xml.cmo annotation2Xml.cmo \
-                   cicXPath.cmo theory.cmo theoryParser2.cmo theoryParser.cmo \
-                   theoryCache.cmo theoryTypeChecker.cmo \
-                   cicAnnotationHinter.cmo mmlinterface.cmo
-
-MMLINTERFACEOPTOBJS = configuration.cmx uriManager.cmx getter.cmx cic.cmx \
-                      pxpUriResolver.cmx \
-                      cicParser3.cmx cicParser2.cmx cicParser.cmx \
-                      deannotate.cmx cicSubstitution.cmx annotationParser2.cmx \
-                      annotationParser.cmx cicCache.cmx \
-                      cicCooking.cmx cicPp.cmx cicReduction.cmx \
-                      cicTypeChecker.cmx mml.cmx \
-                      xml.cmx xsltProcessor.cmx \
-                      cic2Xml.cmx annotation2Xml.cmx cicXPath.cmx \
-                      theory.cmx theoryParser2.cmx theoryParser.cmx \
-                      theoryCache.cmx theoryTypeChecker.cmx \
-                      cicAnnotationHinter.cmx mmlinterface.cmx
-
-FIX_PARAMSOBJS = configuration.cmo uriManager.cmo getter.cmo cic.cmo \
-                 pxpUriResolver.cmo \
-                 cicParser3.cmo cicParser2.cmo cicParser.cmo deannotate.cmo \
-                 cicSubstitution.cmo annotationParser2.cmo \
-                 annotationParser.cmo  cicCache.cmo cicPp.cmo xml.cmo \
-                 cic2Xml.cmo cicFindParameters.cmo fix_params.cmo
-
-FIX_PARAMSOPTOBJS = configuration.cmx uriManager.cmx getter.cmx cic.cmx \
-                    pxpUriResolver.cmx \
-                    cicParser3.cmx cicParser2.cmx cicParser.cmx deannotate.cmx \
-                    cicSubstitution.cmx annotationParser2.cmx \
-                    annotationParser.cmx cicCache.cmx cicPp.cmx xml.cmx \
-                    cic2Xml.cmx cicFindParameters.cmx fix_params.cmx
-
-REDUCTIONOBJS = configuration.cmo uriManager.cmo getter.cmo cic.cmo \
-                pxpUriResolver.cmo \
-                cicParser3.cmo cicParser2.cmo cicParser.cmo deannotate.cmo \
-                cicSubstitution.cmo annotationParser2.cmo annotationParser.cmo \
-                cicCache.cmo cicPp.cmo cicCooking.cmo \
-                cicReduction.cmo cicTypeChecker.cmo reduction.cmo
-
-REDUCTIONOPTOBJS = configuration.cmx uriManager.cmx getter.cmx cic.cmx \
-                   pxpUriResolver.cmx \
-                   cicParser3.cmx cicParser2.cmx cicParser.cmx deannotate.cmx \
-                   cicSubstitution.cmx annotationParser2.cmx \
-                   annotationParser.cmx cicCache.cmx cicPp.cmx cicCooking.cmx \
-                   cicReduction.cmx cicTypeChecker.cmx reduction.cmx
-
-EXPERIMENTOBJS = configuration.cmo uriManager.cmo getter.cmo cic.cmo \
-                 pxpUriResolver.cmo \
-                 cicParser3.cmo cicParser2.cmo cicParser.cmo deannotate.cmo \
-                 cicSubstitution.cmo annotationParser2.cmo \
-                 annotationParser.cmo cicCache.cmo cicPp.cmo experiment.cmo
-
-EXPERIMENTOPTOBJS = configuration.cmx uriManager.cmx getter.cmx cic.cmx \
-                    pxpUriResolver.cmx \
-                    cicParser3.cmx cicParser2.cmx cicParser.cmx deannotate.cmx \
-                    cicSubstitution.cmx annotationParser2.cmx \
-                    annotationParser.cmx cicCache.cmx cicPp.cmx experiment.cmx
-
-depend:
-       $(OCAMLDEP) $(DEPOBJS) > .depend
-
-mmlinterface: $(MMLINTERFACEOBJS)
-       $(OCAMLC) -custom -o mmlinterface str.cma unix.cma $(PXPLIBS) dbm.cma \
-                  lablgtk.cma gtkInit.cmo \
-                  $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cma \
-                  $(MINIDOM_DIR)/minidom.cmo \
-                  $(MMLINTERFACEOBJS) \
-                  -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \
-                  -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \
-                  -lunix -L/usr/local/lib/gtkmathview -lgtkmathview \
-                  $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o \
-                  $(MINIDOM_DIR)/ml_minidom.o" \
-                  -cclib -lmldbm -cclib -lndbm
-
-mmlinterface.opt: $(MMLINTERFACEOPTOBJS)
-       $(OCAMLOPT) -o mmlinterface.opt str.cmxa $(PXPLIBSOPT) unix.cmxa \
-                    dbm.cmxa lablgtk.cmxa gtkInit.cmx \
-                    $(LABLGTK_MATHVIEW_DIR)/lablgtkmathview.cmxa \
-                    $(MINIDOM_DIR)/minidom.cmx \
-                    $(MMLINTERFACEOPTOBJS) \
-                    -cclib "-lstr -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk \
-                    -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm \
-                    -lunix -L/usr/local/lib/gtkmathview -lgtkmathview \
-                    $(LABLGTK_MATHVIEW_DIR)/ml_gtk_mathview.o \
-                    $(MINIDOM_DIR)/ml_minidom.o" \
-                    -cclib -lmldbm -cclib -lndbm
-
-fix_params: $(FIX_PARAMSOBJS)
-       $(OCAMLC) -custom -o fix_params str.cma $(PXPLIBS) dbm.cma \
-                  $(FIX_PARAMSOBJS) -cclib -lstr -cclib -lmldbm -cclib -lndbm
-
-fix_params.opt: $(FIX_PARAMSOPTOBJS)
-       $(OCAMLOPT) -o fix_params.opt str.cmxa $(PXPLIBSOPT) dbm.cmxa \
-                    $(FIX_PARAMSOPTOBJS) -cclib -lstr -cclib -lmldbm \
-                    -cclib -lndbm
-
-reduction: $(REDUCTIONOBJS)
-       $(OCAMLC) -custom -o reduction str.cma $(PXPLIBS) dbm.cma \
-                  $(REDUCTIONOBJS) -cclib -lstr -cclib -lmldbm -cclib -lndbm
-
-reduction.opt: $(REDUCTIONOPTOBJS)
-       $(OCAMLOPT) -o reduction.opt str.cmxa $(PXPLIBSOPT) dbm.cmxa \
-                    $(REDUCTIONOPTOBJS) -cclib -lstr -cclib -lmldbm \
-                    -cclib -lndbm
-
-experiment: $(EXPERIMENTOBJS)
-       $(OCAMLC) -custom -o experiment str.cma $(PXPLIBS) dbm.cma \
-                  $(EXPERIMENTOBJS) -cclib -lstr -cclib -lmldbm -cclib -lndbm
-
-experiment.opt: $(EXPERIMENTOPTOBJS)
-       $(OCAMLOPT) -o experiment.opt str.cmxa $(PXPLIBSOPT) dbm.cmxa \
-                    $(EXPERIMENTOPTOBJS) -cclib -lstr -cclib -lmldbm \
-                    -cclib -lndbm
-
-.SUFFIXES: .ml .mli .cmo .cmi .cmx
-.ml.cmo:
-       $(OCAMLC) -c $<
-.mli.cmi:
-       $(OCAMLC) -c $<
-.ml.cmx:
-       $(OCAMLOPT) -c $<
-
-clean:
-       rm -f *.cm[iox] *.o experiment experiment.opt reduction \
-           reduction.opt fix_params fix_params.opt mmlinterface \
-           mmlinterface.opt mmlinterface2 mmlinterface2.opt
-
-start-xaland:
-       java -ss1024K -oss8192K \
-           xaland 12345 12346 \
-           $(COQV)/examples/style/rootcontent.xsl \
-           $(COQV)/examples/style/annotatedpres.xsl \
-           $(COQV)/examples/style/theory_content.xsl \
-           $(COQV)/examples/style/theory_pres.xsl
-
-start-xaland-2:
-       java -ss1024K -oss8192K \
-           xaland2 12345 12346 \
-           $(COQV)/examples/style/rootcontent.xsl \
-           $(COQV)/examples/style/annotatedpres.xsl \
-           $(COQV)/examples/style/theory_content.xsl \
-           $(COQV)/examples/style/theory_pres.xsl
-
-start-xaland-old:
-       java xaland 12345 12346 \
-         $(COQV)/examples/style/style_prima_del_linguaggio_naturale/rootcontent.xsl \
-         $(COQV)/examples/style/style_prima_del_linguaggio_naturale/annotatedpres.xsl \
-         $(COQV)/examples/style/style_prima_del_linguaggio_naturale/theory_content.xsl \
-         $(COQV)/examples/style/style_prima_del_linguaggio_naturale/theory_pres.xsl
-
-start-xaland3:
-       java xaland 12347 12348 \
-           $(COQV)/examples/style/rootcontent.xsl \
-           $(COQV)/examples/style/annotatedpres.xsl \
-           $(COQV)/examples/style/theory_content.xsl \
-           $(COQV)/examples/style/theory_pres.xsl
-
-start-http-getter:
-       http_getter/http_getter.pl
-
-include .depend
diff --git a/helm/interface/NON_VA b/helm/interface/NON_VA
deleted file mode 100644 (file)
index 3754471..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-
- ***********************************************************************
-
-                         A T T E N Z I O N E ! ! !
-
- Quando si usa fix_params.opt, scrivere
-
-       find /really_very_local/helm/PARSER/examples
-
- invece di examples
-
- ***********************************************************************
-
- PROBLEMA NON FIXATO CON fix_params
-
- LA SOLUZIONE E'
-
-
-
-Correggere:
-
- examples/coq/SETS/Powerset_facts/Sets_as_an_algebra/setcover_intro.con.xml
-
-aggiungendo paramMode="POSSIBLE"
-
-Un esempio che altrimenti non funziona e':
-
-examples/coq/SETS/Powerset_Classical_facts/Sets_as_an_algebra/Add_covers.con.xml
-
diff --git a/helm/interface/PER_FARLO_ANDARE b/helm/interface/PER_FARLO_ANDARE
deleted file mode 100644 (file)
index 20fb52a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-export LD_LIBRARY_PATH=.:/really_very_local/helm/proveluca/mml-browser/
-export no_proxy=cs.unibo.it
diff --git a/helm/interface/PER_FARLO_ANDARE_TCSH b/helm/interface/PER_FARLO_ANDARE_TCSH
deleted file mode 100644 (file)
index b527fab..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-setenv PATH "/home/projects/java/jdk1.2.2/bin:$PATH"
-setenv CLASSPATH "/really_very_local/helm/java/xalan_1_1/xalan.jar:/really_very_local/helm/java/xalan_1_1/xerces.jar:."
-setenv CLASSPATH "/really_very_local/helm/java/saxon-5.3.2/saxon.jar:$CLASSPATH"
-setenv LD_LIBRARY_PATH ".:/really_very_local/helm/proveluca/mml-browser/"
diff --git a/helm/interface/PER_FARLO_ANDARE_TCSH_D01 b/helm/interface/PER_FARLO_ANDARE_TCSH_D01
deleted file mode 100644 (file)
index 208f00a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-setenv PATH "/home/projects/java/jdk1.2.2/bin:$PATH"
-setenv CLASSPATH "/really_very_local/helm/java/xalan_1_2_D01/xalan.jar:/really_very_local/helm/java/xalan_1_2_D01/xerces.jar:."
-setenv CLASSPATH "/really_very_local/helm/java/saxon-5.3.2/saxon.jar:$CLASSPATH"
-setenv LD_LIBRARY_PATH ".:/really_very_local/helm/proveluca/mml-browser/"
diff --git a/helm/interface/README b/helm/interface/README
deleted file mode 100644 (file)
index 89265ca..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                     A tactic to print Coq objects in XML                   *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 22/11/1999                                 *)
-(******************************************************************************)
-
-This is the main directory of the coq-like pretty printer for cic terms exported
-in xml from Coq. Once compiled four different executables are made:
-
- experiment            a command-line pretty-printer (interpreted)
- experiment.opt        same as experiment (compiled)
- gtkInterface          a gtk-based pretty-printer (interpreted)
- gtkInterface.opt      a gtk-based pretty-printer (compiled)
-
-To use one of the previous pretty-printer the syntax is 
-
-        pretty_printer_name file1 ... filen
-
-where filei is an xml cic object
-
-Code files:
-
- cic.ml            the internal definition of cic objects and terms
- getter.ml         converts uris to filenames retrieving the correspondent file
- cache.ml          a cache for cic objects (actually a simple hash-table)
- cicParser.ml      a parser from xml to internal definition: top level
- cicParser2.ml     a parser from xml to internal definition: objects level
- cicParser3.ml     a parser from xml to internal definition: terms level
- cicPp.ml          a pretty-printer for the internal definition of cic objects
- experiment.ml     a textual interface to cicPp
- gtkInterface.ml   a gtk interface to cicPp
-
-Interface files:
- cache.mli getter.mli cicPp.mli cicParser.mli cicParser2.mli cicParser3.mli
-
-Other files:
-
- Makefile     the targets are "all" "opt" "depend" "clean"
- .depend      dependencies file used by make
- examples     symbolic link to the root of the exported library
diff --git a/helm/interface/TEMPI b/helm/interface/TEMPI
deleted file mode 100644 (file)
index dc2bc85..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-prima di UriManager.ml:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m50.266s
-   user        0m44.160s
-   sys 0m0.700s
-
-dopo UriManager.ml, ma prima di passare da = a ==:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m51.388s
-   user        0m45.430s
-   sys 0m0.530s
-
-dopo UriManager.ml e popo il passaggio (parziale?) da = a ==:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m50.767s
-   user        0m44.750s
-   sys 0m0.510s
-
-dopo il passaggio alla cache che usa ancora =:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m50.646s
-   user        0m44.680s
-   sys 0m0.530s
-
-dopo il passaggio alla cache con utilizzo di ==:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m50.861s
-   user        0m45.030s
-   sys 0m0.500s
-
-con funzione di hashing costante ;-(
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m51.442s
-   user        0m45.440s
-   sys 0m0.530s
-
-con implementazione isomorfa all'albero delle uri:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m54.081s
-   user        0m47.590s
-   sys 0m0.780s
-
-con implementazione con doppio RB-albero:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m52.504s
-   user        0m46.120s
-   sys 0m0.720s
-
-con implementazione semplice, gestite anche le uri delle var:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m51.850s
-   user        0m46.060s
-   sys 0m0.530s
-
-con implementazione con doppio RB-albero, gestite anche le uri delle var:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m51.495s
-   user        0m45.660s
-   sys 0m0.540s
-
-=========================================================
-
-con implementazione con doppio RB-albero, gestite anche le uri delle var
-e spostata nell'uri-manager is_prefix:
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m50.465s
-   user        0m45.710s
-   sys 0m0.590s
-
-con implementazione semplice (e tutto il resto):
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m49.710s
-   user        0m43.850s
-   sys 0m0.500s
-
-con implementazione banale (e tutto il resto):
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m49.289s
-   user        0m44.840s
-   sys 0m0.570s
-
-con implementazione banale SOLO PARSING ;-)
-
- [ABCI]* (terza passata, uguale alla seconda):
-
-   real        0m48.395s
-   user        0m42.830s
-   sys 0m0.850s
-
-=========================================================
-
-con implementazione con doppio RB-albero, gestite anche le uri delle var
-e spostata nell'uri-manager is_prefix:
-
- REAL (prima passata, dopo un sync):
-
-   real        10m58.033s
-   user        10m37.690s
-   sys 0m2.570s
-
-con implementazione semplice (e tutto il resto):
-
- REAL (prima passata, dopo un sync):
-
-   real        10m31.035s
-   user        10m9.350s
-   sys 0m3.230s
-
-con implementazione banale (e tutto il resto):
-
- REAL (prima passata, dopo un sync):
-
-   real        11m4.026s
-   user        10m43.930s
-   sys 0m3.070s
-
-=================================================
-
-con implementazione banale, SOLO PARSING di tutto:
-
-   real        6m54.336s
-   user        6m13.850s
-   sys 0m6.580s
-
-con implementazione banale, anche typechecking di tutto:
-
-   real        20m17.739s
-   user        19m14.740s
-   sys 0m8.550s
-
-con implementazione semplice, anche typechecking di tutto:
-
-   real        19m36.079s
-   user        18m36.480s
-   sys 0m7.760s
-
-con implementazione con doppio RB-albero, anche typechecking di tutto:
-
-   real        17m30.423s
-   user        16m30.840s
-   sys 0m6.170s
-
-***************************************************************************
-                         APPLICATA EURISTICA
-***************************************************************************
-
-con implementazione con doppio RB-albero, anche typechecking di tutto
-(universita') ????????:
-
-real    5m37.805s
-user    5m1.640s
-sys     0m5.010s
-
-tutto (ma a casa):
-
-real   7m36.663s
-user   6m52.220s
-sys    0m5.860s
-
-
-solo REAL:
-
-real   2m52.860s
-user   2m41.050s
-sys    0m2.820s
-
-==========================================================================
-
-tutto (ma a casa) dopo eliminazione buri:
-
-real   7m52.773s
-user   6m52.110s
-sys    0m7.130s
-
-"solo parsing" di tutto dopo eliminazione buri:
-
-real   7m8.379s
-user   6m15.250s
-sys    0m6.700s
-
-===========================================================================
-
-TUTTO ALL'UNIVERSITA' CON EURISTICA MA SENZA UNIVERSI:
-
-real    5m47.920s
-user    5m14.600s
-sys     0m5.010s
-
diff --git a/helm/interface/WGET b/helm/interface/WGET
deleted file mode 100644 (file)
index f1cca6c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
--P directory di destinazione
--q no output (quiet mode)
--c continue retrieving (no uri.1, uri.2, ...)
diff --git a/helm/interface/annotation2Xml.ml b/helm/interface/annotation2Xml.ml
deleted file mode 100644 (file)
index a9fca07..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-(*CSC codice cut & paste da cicPp e xmlcommand *)
-
-exception ImpossiblePossible;;
-exception NotImplemented;;
-exception BinderNotSpecified;;
-
-let dtdname = "http://localhost:8081/getdtd?url=annotations.dtd";;
-
-(*CSC ottimizzazione: al posto di curi cdepth (vedi codice) *)
-let print_term =
- let rec aux =
-  let module C = Cic in
-  let module X = Xml in
-  let module U = UriManager in
-    function
-       C.ARel (id,ann,_,_) ->
-        (match !ann with
-            None -> [<>]
-          | Some ann -> (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-        )
-     | C.AVar (id,ann,_) ->
-        (match !ann with
-            None -> [<>]
-          | Some ann -> (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-        )
-     | C.AMeta (id,ann,_) ->
-        (match !ann with
-            None -> [<>]
-          | Some ann -> (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-        )
-     | C.ASort (id,ann,_) ->
-        (match !ann with
-            None -> [<>]
-          | Some ann -> (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-        )
-     | C.AImplicit _ -> raise NotImplemented
-     | C.AProd (id,ann,_,s,t) ->
-        [< (match !ann with
-               None -> [<>]
-             | Some ann ->
-                (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-           ) ;
-           aux s ;
-           aux t
-        >]
-     | C.ACast (id,ann,v,t) ->
-        [< (match !ann with
-               None -> [<>]
-             | Some ann ->
-                (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-           ) ;
-           aux v ;
-           aux t
-        >]
-     | C.ALambda (id,ann,_,s,t) ->
-        [< (match !ann with
-               None -> [<>]
-             | Some ann ->
-                (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-           ) ;
-           aux s ;
-           aux t
-        >]
-     | C.AAppl (id,ann,li) ->
-        [< (match !ann with
-               None -> [<>]
-             | Some ann ->
-                (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-           ) ;
-           List.fold_right (fun x i -> [< (aux x) ; i >]) li [<>]
-        >]
-     | C.AConst (id,ann,_,_) ->
-        (match !ann with
-            None -> [<>]
-          | Some ann -> (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-        )
-     | C.AAbst (id,ann,_) -> raise NotImplemented
-     | C.AMutInd (id,ann,_,_,_) ->
-        (match !ann with
-            None -> [<>]
-          | Some ann -> (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-        )
-     | C.AMutConstruct (id,ann,_,_,_,_) ->
-        (match !ann with
-            None -> [<>]
-          | Some ann -> (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-        )
-     | C.AMutCase (id,ann,_,_,_,ty,te,patterns) ->
-        [< (match !ann with
-               None -> [<>]
-             | Some ann ->
-                (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-           ) ;
-           aux ty ;
-           aux te ;
-           List.fold_right
-            (fun x i -> [< aux x ; i>])
-            patterns [<>]
-        >]
-     | C.AFix (id, ann, _, funs) ->
-        [< (match !ann with
-               None -> [<>]
-             | Some ann ->
-                (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-           ) ;
-           List.fold_right
-            (fun (_,_,ti,bi) i -> [< aux ti ; aux bi ; i >]) funs [<>]
-        >]
-     | C.ACoFix (id, ann,no,funs) ->
-        [< (match !ann with
-               None -> [<>]
-             | Some ann ->
-                (X.xml_nempty "Annotation" ["of", id] (X.xml_cdata ann))
-           ) ;
-           List.fold_right
-            (fun (_,ti,bi) i -> [< aux ti ; aux bi ; i >]) funs [<>]
-        >]
- in
-  aux
-;;
-
-let print_mutual_inductive_type (_,_,arity,constructors) =
- [< print_term arity ;
-    List.fold_right
-     (fun (name,ty,_) i -> [< print_term ty ; i >]) constructors [<>]
- >]
-;;
-
-let target_uri_of_annotation_uri uri =
- Str.replace_first (Str.regexp "\.ann$") "" (UriManager.string_of_uri uri)
-;;
-
-let pp_annotation obj curi =
- let module C = Cic in
- let module X = Xml in
-  [< X.xml_cdata "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" ;
-     X.xml_cdata ("<!DOCTYPE Annotations SYSTEM \"" ^ dtdname ^ "\">\n\n") ;
-     X.xml_nempty "Annotations" ["of", target_uri_of_annotation_uri curi]
-      begin
-       match obj with
-         C.ADefinition (xid, ann, _, te, ty, _) ->
-          [< (match !ann with
-                 None -> [<>]
-               | Some ann ->
-                  X.xml_nempty "Annotation" ["of", xid] (X.xml_cdata ann)
-             ) ;
-             print_term te ;
-             print_term ty
-          >]
-       | C.AAxiom (xid, ann, _, ty, _) ->
-          [< (match !ann with
-                 None -> [<>]
-               | Some ann ->
-                  X.xml_nempty "Annotation" ["of", xid] (X.xml_cdata ann)
-             ) ;
-             print_term ty
-          >]
-       | C.AVariable (xid, ann, _, ty) ->
-          [< (match !ann with
-                 None -> [<>]
-               | Some ann ->
-                  X.xml_nempty "Annotation" ["of", xid] (X.xml_cdata ann)
-             ) ;
-             print_term ty
-          >]
-       | C.ACurrentProof (xid, ann, _, conjs, bo, ty) ->
-          [< (match !ann with
-                 None -> [<>]
-               | Some ann ->
-                  X.xml_nempty "Annotation" ["of", xid] (X.xml_cdata ann)
-             ) ;
-             List.fold_right
-              (fun (_,t) i -> [< print_term t ; i >])
-              conjs [<>] ;
-             print_term bo ;
-             print_term ty
-          >]
-       | C.AInductiveDefinition (xid, ann, tys, params, paramsno) ->
-          [< (match !ann with
-                 None -> [<>]
-               | Some ann ->
-                  X.xml_nempty "Annotation" ["of", xid] (X.xml_cdata ann)
-             ) ;
-             List.fold_right
-              (fun x i -> [< print_mutual_inductive_type x ; i >])
-              tys [< >]
-          >]
-      end
-  >]
-;;
diff --git a/helm/interface/annotationParser.ml b/helm/interface/annotationParser.ml
deleted file mode 100644 (file)
index 3c645fe..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-exception Warnings;;
-
-class warner =
-  object 
-    method warn w =
-      print_endline ("WARNING: " ^ w) ;
-      (raise Warnings : unit)
-  end
-;;
-
-exception EmptyUri;;
-
-let annotate filename ids_to_targets =
- let module Y = Pxp_yacc in
-  try 
-    let d =
-     let config = {Y.default_config with Y.warner = new warner} in
-      Y.parse_document_entity config
-(*PXP       (Y.ExtID (Pxp_types.System filename,
-         new Pxp_reader.resolve_as_file ~url_of_id ()))
-*)     (PxpUriResolver.from_file filename)
-       Y.default_spec
-
-    in
-     AnnotationParser2.annotate ids_to_targets d#root
-  with
-   e ->
-     print_endline (Pxp_types.string_of_exn e) ;
-     raise e
-;;
diff --git a/helm/interface/annotationParser2.ml b/helm/interface/annotationParser2.ml
deleted file mode 100644 (file)
index 5e5042e..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-exception IllFormedXml of int;;
-
-(* Utility functions that transform a Pxp attribute into something useful *)
-
-let string_of_attr a =
- let module T = Pxp_types in
-  match a with
-     T.Value s -> s
-   | _ -> raise (IllFormedXml 0)
-;;
-
-exception DontKnowWhatToDo;;
-
-let rec string_of_annotations n =
- let module D = Pxp_document in
- let module T = Pxp_types in
-  match n#node_type with
-     D.T_element s ->
-      "<" ^ s ^
-      List.fold_right
-       (fun att i ->
-         match n#attribute att with
-            T.Value s -> " " ^ att ^ "=\"" ^ s ^ "\"" ^ i
-          | T.Implied_value -> i
-          | T.Valuelist l -> " " ^ att ^ "=\"" ^ String.concat " " l ^ "\"" ^ i
-       ) (n#attribute_names) "" ^
-      (match n#sub_nodes with
-          [] -> "/>"
-        | l ->
-           ">" ^
-           String.concat "" (List.map string_of_annotations l) ^
-           "</" ^ s ^ ">"
-      )
-   | D.T_data -> n#data
-   | _ -> raise DontKnowWhatToDo
-;;
-
-let get_annotation n =
- String.concat "" (List.map string_of_annotations (n#sub_nodes))
-;;
-
-let annotate_object ann obj =
- let module C = Cic in
-  let rann =
-   match obj with
-      C.ADefinition (_, rann, _, _, _, _) -> rann
-    | C.AAxiom (_, rann, _, _, _) -> rann
-    | C.AVariable (_, rann, _, _) -> rann
-    | C.ACurrentProof (_, rann, _, _, _, _) -> rann
-    | C.AInductiveDefinition (_, rann, _, _, _) -> rann
-  in
-   rann := Some ann
-;;
-
-let annotate_term ann term =
- let module C = Cic in
-  let rann =
-   match term with
-      C.ARel (_, rann, _, _) -> rann
-    | C.AVar (_, rann, _) -> rann
-    | C.AMeta (_, rann, _) -> rann
-    | C.ASort (_, rann, _) -> rann
-    | C.AImplicit (_, rann) -> rann
-    | C.ACast (_, rann, _, _) -> rann
-    | C.AProd (_, rann, _, _, _) -> rann
-    | C.ALambda (_, rann, _, _, _) -> rann
-    | C.AAppl (_, rann, _) -> rann
-    | C.AConst (_, rann, _, _) -> rann
-    | C.AAbst (_, rann, _) -> rann
-    | C.AMutInd (_, rann, _, _, _) -> rann
-    | C.AMutConstruct (_, rann, _, _, _, _) -> rann
-    | C.AMutCase (_, rann, _, _, _, _, _, _) -> rann
-    | C.AFix (_, rann, _, _) -> rann
-    | C.ACoFix (_, rann, _, _) -> rann
-  in
-   rann := Some ann
-;;
-
-let annotate ids_to_targets n =
- let module D = Pxp_document in
- let module C = Cic in
-  let annotate_elem n =
-   let ntype = n # node_type in
-   match ntype with
-     D.T_element "Annotation" ->
-       let of_uri = string_of_attr (n # attribute "of") in
-        begin
-         try
-          match Hashtbl.find ids_to_targets of_uri with
-             C.Object o -> annotate_object (get_annotation n) o
-           | C.Term t -> annotate_term (get_annotation n) t
-         with
-          Not_found -> assert false
-        end
-   | D.T_element _ | D.T_data ->
-      raise (IllFormedXml 1)
-   | _ -> raise DontKnowWhatToDo
-  in
-   match n # node_type with
-      D.T_element "Annotations" ->
-       List.iter annotate_elem (n # sub_nodes)
-    | _ -> raise (IllFormedXml 2)
-;;
diff --git a/helm/interface/cadet b/helm/interface/cadet
deleted file mode 100755 (executable)
index fc24779..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /bin/sh
-
-export PATH=~/HELM/installation/jdk118/bin:$PATH
-
-#export CLASSPATH=/home/cadet/sacerdot/xalan-j_1_1/xalan.jar:/home/cadet/sacerdot/xalan-j_1_1/xerces.jar:.
-export CLASSPATH=~/HELM/installation/xalan-j_1_2/xalan.jar:~/HELM/installation/xalan-j_1_2/xerces.jar:.
-#export CLASSPATH=~/HELM/installation/xalan-j_1_2_1/xalan.jar:~/HELM/installation/xalan-j_1_2_1/xerces.jar:.
-#export CLASSPATH=/home/cadet/sacerdot/xalan-j_2_0_D01/bin/xalan.jar:/home/cadet/sacerdot/xalan-j_2_0_D01/bin/xerces.jar:.
-
-#export CLASSPATH=$CLASSPATH:/home/lpadovan/helm/java/xalan_1_1/xalan.jar
-#export CLASSPATH=$CLASSPATH:/home/lpadovan/helm/java/xalan_1_1/xerces.jar
-#export CLASSPATH=$CLASSPATH:/home/lpadovan/helm/java/saxon-5.3.2/saxon.jar
-
-# Per (my)Coq 6.3.0
-export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
-
-# WARNING!!! No "//" in the middle of the path, nor a "/" at the end!!!!
-export HELM_CONFIGURATION_PREFIX=~/HELM/installation
-export COQV=V6.2
-
-#export HELM_CONFIGURATION_PREFIX=/home/cadet/sacerdot
-#export COQV=V7
-
-export T1LIB_CONFIG=./t1.config
-
-# Stix font
-xset fp
-xset fp+ ~/HELM/installation/fonts/
-xset fp rehash
diff --git a/helm/interface/cic.ml b/helm/interface/cic.ml
deleted file mode 100644 (file)
index dd91925..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 14/06/2000                                 *)
-(*                                                                            *)
-(* This module defines the internal representation of the objects (variables, *)
-(* blocks of (co)inductive definitions and constants) and the terms of cic    *)
-(*                                                                            *)
-(******************************************************************************)
-
-(* STUFF TO MANAGE IDENTIFIERS *)
-type id = string  (* the abstract type of the (annotated) node identifiers *)
-type anntarget =
-   Object of annobj
- | Term of annterm
-
-(* INTERNAL REPRESENTATION OF CIC OBJECTS AND TERMS *)
-and sort =
-   Prop
- | Set
- | Type
-and name =
-   Name of string
- | Anonimous
-and term =
-   Rel of int                                       (* DeBrujin index *)
- | Var of UriManager.uri                            (* uri *)
- | Meta of int                                      (* numeric id *)
- | Sort of sort                                     (* sort *)
- | Implicit                                         (* *)
- | Cast of term * term                              (* value, type *)
- | Prod of name * term * term                       (* binder, source, target *)
- | Lambda of name * term * term                     (* binder, source, target *)
- | Appl of term list                                (* arguments *)
- | Const of UriManager.uri * int                    (* uri, number of cookings*)
- | Abst of UriManager.uri                           (* uri *)
- | MutInd of UriManager.uri * int * int             (* uri, cookingsno, typeno*)
- | MutConstruct of UriManager.uri * int *           (* uri, cookingsno, *)
-    int * int                                       (*  typeno, consno  *)
- (*CSC: serve cookingsno?*)
- | MutCase of UriManager.uri * int *                (* ind. uri, cookingsno, *)
-    int *                                           (*  ind. typeno,         *)
-    term * term *                                   (*  outtype, ind. term   *)
-    term list                                       (*  patterns             *)
- | Fix of int * inductiveFun list                   (* funno, functions *)
- | CoFix of int * coInductiveFun list               (* funno, functions *)
-and obj =
-   Definition of string * term * term *           (* id, value, type,         *)
-    (int * UriManager.uri list) list              (*  parameters              *)
- | Axiom of string * term *
-    (int * UriManager.uri list) list              (* id, type, parameters     *)
- | Variable of string * term                      (* name, type               *)
- | CurrentProof of string * (int * term) list *   (* name, conjectures,       *)
-    term * term                                   (*  value, type             *)
- | InductiveDefinition of inductiveType list *    (* inductive types,         *)
-    (int * UriManager.uri list) list * int        (*  parameters, n ind. pars *)
-and inductiveType = 
- string * bool * term *                       (* typename, inductive, arity *)
-  constructor list                            (*  constructors              *)
-and constructor =
- string * term * bool list option ref         (* id, type, really recursive *)
-and inductiveFun =
- string * int * term * term                   (* name, ind. index, type, body *)
-and coInductiveFun =
- string * term * term                         (* name, type, body *)
-
-and annterm =
-   ARel of id * annotation option ref *
-    int * string option                             (* DeBrujin index, binder *)
- | AVar of id * annotation option ref *             
-    UriManager.uri                                  (* uri *)
- | AMeta of id * annotation option ref * int        (* numeric id *)
- | ASort of id * annotation option ref * sort       (* sort *)
- | AImplicit of id * annotation option ref          (* *)
- | ACast of id * annotation option ref *
-    annterm * annterm                               (* value, type *)
- | AProd of id * annotation option ref *
-    name * annterm * annterm                        (* binder, source, target *)
- | ALambda of id * annotation option ref *
-    name * annterm * annterm                        (* binder, source, target *)
- | AAppl of id * annotation option ref *
-    annterm list                                    (* arguments *)
- | AConst of id * annotation option ref *
-    UriManager.uri * int                            (* uri, number of cookings*)
- | AAbst of id * annotation option ref *
-    UriManager.uri                                  (* uri *)
- | AMutInd of id * annotation option ref *
-    UriManager.uri * int * int                      (* uri, cookingsno, typeno*)
- | AMutConstruct of id * annotation option ref *
-    UriManager.uri * int *                          (* uri, cookingsno, *)
-    int * int                                       (*  typeno, consno  *)
- (*CSC: serve cookingsno?*)
- | AMutCase of id * annotation option ref *
-    UriManager.uri * int *                          (* ind. uri, cookingsno  *)
-    int *                                           (*  ind. typeno,         *)
-    annterm * annterm *                             (*  outtype, ind. term   *)
-    annterm list                                    (*  patterns             *)
- | AFix of id * annotation option ref *
-    int * anninductiveFun list                      (* funno, functions *)
- | ACoFix of id * annotation option ref *
-    int * anncoInductiveFun list                    (* funno, functions *)
-and annobj =
-   ADefinition of id * annotation option ref *
-    string *                                        (* id,           *)
-    annterm * annterm *                             (*  value, type, *)
-    (int * UriManager.uri list) list exactness      (*  parameters   *)
- | AAxiom of id * annotation option ref *
-    string * annterm *                              (* id, type    *)
-    (int * UriManager.uri list) list                (*  parameters *)
- | AVariable of id * annotation option ref *
-    string * annterm                                (* name, type *)
- | ACurrentProof of id * annotation option ref *
-    string * (int * annterm) list *                 (*  name, conjectures, *)
-    annterm * annterm                               (*  value, type        *)
- | AInductiveDefinition of id *
-    annotation option ref * anninductiveType list * (* inductive types ,      *)
-    (int * UriManager.uri list) list * int          (*  parameters,n ind. pars*)
-and anninductiveType = 
- string * bool * annterm *                    (* typename, inductive, arity *)
-  annconstructor list                         (*  constructors              *)
-and annconstructor =
- string * annterm * bool list option ref      (* id, type, really recursive *)
-and anninductiveFun =
- string * int * annterm * annterm             (* name, ind. index, type, body *)
-and anncoInductiveFun =
- string * annterm * annterm                   (* name, type, body *)
-and annotation =
- string
-and 'a exactness =
-   Possible of 'a                            (* an approximation to something *)
- | Actual of 'a                              (* something *)
-;;
diff --git a/helm/interface/cic2Xml.ml b/helm/interface/cic2Xml.ml
deleted file mode 100644 (file)
index ff16e2f..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-(*CSC codice cut & paste da cicPp e xmlcommand *)
-
-exception ImpossiblePossible;;
-exception NotImplemented;;
-exception BinderNotSpecified;;
-
-let dtdname = "http://localhost:8081/getdtd?url=cic.dtd";;
-
-(*CSC ottimizzazione: al posto di curi cdepth (vedi codice) *)
-let print_term curi =
- let rec aux =
-  let module C = Cic in
-  let module X = Xml in
-  let module U = UriManager in
-    function
-       C.ARel (id,_,n,Some b) ->
-        X.xml_empty "REL" ["value",(string_of_int n);"binder",b;"id",id]
-     | C.ARel _ -> raise BinderNotSpecified
-     | C.AVar (id,_,uri) ->
-        let vdepth = U.depth_of_uri uri
-        and cdepth = U.depth_of_uri curi in
-         X.xml_empty "VAR"
-          ["relUri",(string_of_int (cdepth - vdepth)) ^ "," ^
-            (U.name_of_uri uri) ;
-           "id",id]
-     | C.AMeta (id,_,n) ->
-        X.xml_empty "META" ["no",(string_of_int n) ; "id",id]
-     | C.ASort (id,_,s) ->
-        let string_of_sort =
-         function
-            C.Prop -> "Prop"
-          | C.Set  -> "Set"
-          | C.Type -> "Type"
-        in
-         X.xml_empty "SORT" ["value",(string_of_sort s) ; "id",id]
-     | C.AImplicit _ -> raise NotImplemented
-     | C.AProd (id,_,C.Anonimous,s,t) ->
-        X.xml_nempty "PROD" ["id",id]
-         [< X.xml_nempty "source" [] (aux s) ;
-            X.xml_nempty "target" [] (aux t)
-         >]
-     | C.AProd (xid,_,C.Name id,s,t) ->
-       X.xml_nempty "PROD" ["id",xid]
-        [< X.xml_nempty "source" [] (aux s) ;
-           X.xml_nempty "target" ["binder",id] (aux t)
-        >]
-     | C.ACast (id,_,v,t) ->
-        X.xml_nempty "CAST" ["id",id]
-         [< X.xml_nempty "term" [] (aux v) ;
-            X.xml_nempty "type" [] (aux t)
-         >]
-     | C.ALambda (id,_,C.Anonimous,s,t) ->
-        X.xml_nempty "LAMBDA" ["id",id]
-         [< X.xml_nempty "source" [] (aux s) ;
-            X.xml_nempty "target" [] (aux t)
-         >]
-     | C.ALambda (xid,_,C.Name id,s,t) ->
-       X.xml_nempty "LAMBDA" ["id",xid]
-        [< X.xml_nempty "source" [] (aux s) ;
-           X.xml_nempty "target" ["binder",id] (aux t)
-        >]
-     | C.AAppl (id,_,li) ->
-        X.xml_nempty "APPLY" ["id",id]
-         [< (List.fold_right (fun x i -> [< (aux x) ; i >]) li [<>])
-         >]
-     | C.AConst (id,_,uri,_) ->
-        X.xml_empty "CONST" ["uri", (U.string_of_uri uri) ; "id",id]
-     | C.AAbst (id,_,uri) -> raise NotImplemented
-     | C.AMutInd (id,_,uri,_,i) ->
-        X.xml_empty "MUTIND"
-         ["uri", (U.string_of_uri uri) ;
-          "noType",(string_of_int i) ;
-          "id",id]
-     | C.AMutConstruct (id,_,uri,_,i,j) ->
-        X.xml_empty "MUTCONSTRUCT"
-         ["uri", (U.string_of_uri uri) ;
-          "noType",(string_of_int i) ; "noConstr",(string_of_int j) ;
-          "id",id]
-     | C.AMutCase (id,_,uri,_,typeno,ty,te,patterns) ->
-        X.xml_nempty "MUTCASE"
-         ["uriType",(U.string_of_uri uri) ;
-          "noType", (string_of_int typeno) ;
-          "id", id]
-         [< X.xml_nempty "patternsType" [] [< (aux ty) >] ;
-            X.xml_nempty "inductiveTerm" [] [< (aux te) >] ;
-            List.fold_right
-             (fun x i -> [< X.xml_nempty "pattern" [] [< aux x >] ; i>])
-             patterns [<>]
-         >]
-     | C.AFix (id, _, no, funs) ->
-       X.xml_nempty "FIX" ["noFun", (string_of_int no) ; "id",id]
-        [< List.fold_right
-            (fun (fi,ai,ti,bi) i ->
-              [< X.xml_nempty "FixFunction"
-                  ["name", fi; "recIndex", (string_of_int ai)]
-                  [< X.xml_nempty "type" [] [< aux ti >] ;
-                     X.xml_nempty "body" [] [< aux bi >]
-                  >] ;
-                 i
-              >]
-            ) funs [<>]
-        >]
-     | C.ACoFix (id,_,no,funs) ->
-       X.xml_nempty "COFIX" ["noFun", (string_of_int no) ; "id",id]
-        [< List.fold_right
-            (fun (fi,ti,bi) i ->
-              [< X.xml_nempty "CofixFunction" ["name", fi]
-                  [< X.xml_nempty "type" [] [< aux ti >] ;
-                     X.xml_nempty "body" [] [< aux bi >]
-                  >] ;
-                 i
-              >]
-            ) funs [<>]
-        >]
- in
-  aux
-;;
-
-let encode params =
- List.fold_right
-  (fun (n,l) i ->
-    match l with
-       [] -> i
-     | _ ->
-       string_of_int n ^ ": " ^ 
-       String.concat " " (List.map UriManager.name_of_uri l) ^
-       i
-  ) params ""
-;;
-
-let print_mutual_inductive_type curi (typename,inductive,arity,constructors) =
- let module C = Cic in
- let module X = Xml in
-  [< X.xml_nempty "InductiveType"
-      ["name",typename ;
-       "inductive",(string_of_bool inductive)
-      ]
-      [< X.xml_nempty "arity" [] (print_term curi arity) ;
-         (List.fold_right
-          (fun (name,ty,_) i ->
-            [< X.xml_nempty "Constructor" ["name",name]
-                (print_term curi ty) ;
-               i
-            >])
-          constructors
-          [<>]
-         )
-      >]
-  >]
-;;
-
-let pp obj curi =
- let module C = Cic in
- let module X = Xml in
-  match obj with
-     C.ADefinition (xid, _, id, te, ty, params) ->
-      [< X.xml_cdata "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" ;
-         X.xml_cdata ("<!DOCTYPE Definition SYSTEM \"" ^ dtdname ^ "\">\n\n") ;
-         X.xml_nempty "Definition"
-          (["name", id ; "id",xid] @
-           match params with
-              C.Possible _ -> raise ImpossiblePossible
-              (*CSC params are kept in inverted order in the internal *)
-              (* representation (the order of application)            *)
-            | C.Actual fv' -> ["params",(encode (List.rev fv'))])
-          [< X.xml_nempty "body" [] (print_term curi te) ;
-             X.xml_nempty "type"  [] (print_term curi ty) >]
-      >]
-   | C.AAxiom (xid, _, id, ty, params) ->
-      [< X.xml_cdata "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" ;
-         X.xml_cdata ("<!DOCTYPE Axiom SYSTEM \"" ^ dtdname ^ "\">\n\n") ;
-         X.xml_nempty "Axiom"
-          (*CSC params are kept in inverted order in the internal *)
-          (* representation (the order of application)            *)
-          ["name",id ; "params",(encode (List.rev params)) ; "id",xid]
-          [< X.xml_nempty "type" [] (print_term curi ty) >]
-      >]
-   | C.AVariable (xid, _, name, ty) ->
-      [< X.xml_cdata "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" ;
-         X.xml_cdata ("<!DOCTYPE Variable SYSTEM \"" ^ dtdname ^ "\">\n\n") ;
-         X.xml_nempty "Variable" ["name",name ; "id",xid]
-          [< X.xml_nempty "type" [] (print_term curi ty) >]
-      >]
-   | C.ACurrentProof (xid, _, name, conjs, bo, ty) ->
-      [< X.xml_cdata "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" ;
-         X.xml_cdata ("<!DOCTYPE CurrentProof SYSTEM \"" ^ dtdname ^ "\">\n\n");
-         X.xml_nempty "CurrentProof" ["name",name ; "id",xid]
-          [< List.fold_right
-              (fun (j,t) i ->
-                [< X.xml_nempty "Conjecture" ["no",(string_of_int j)]
-                    [< print_term curi t >] ; i >])
-              conjs [<>] ;
-             X.xml_nempty "body" [] [< print_term curi bo >] ;
-             X.xml_nempty "type" [] [< print_term curi ty >]
-          >]
-      >]
-   | C.AInductiveDefinition (xid, _, tys, params, paramsno) ->
-      let names =
-       List.map
-        (fun (typename,_,_,_) -> typename)
-        tys
-      in
-       [< X.xml_cdata "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" ;
-          X.xml_cdata ("<!DOCTYPE InductiveDefinition SYSTEM \"" ^
-           dtdname ^ "\">\n\n") ;
-          X.xml_nempty "InductiveDefinition"
-           (*CSC params are kept in inverted order in the internal *)
-           (* representation (the order of application)            *)
-           ["noParams",string_of_int paramsno ;
-            "params",(encode (List.rev params)) ;
-            "id",xid]
-          [< List.fold_right
-              (fun x i -> [< print_mutual_inductive_type curi x ; i >])
-              tys [< >]
-           >]
-       >]
-;;
diff --git a/helm/interface/cicAnnotationHinter.ml b/helm/interface/cicAnnotationHinter.ml
deleted file mode 100644 (file)
index 21f30a7..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 14/06/2000                                 *)
-(*                                                                            *)
-(*                                                                            *)
-(******************************************************************************)
-
-let deactivate_hints_from annotation_window n =
- let annotation_hints = annotation_window#annotation_hints in
-  for i = n to Array.length annotation_hints - 1 do
-   annotation_hints.(i)#misc#hide ()
-  done
-;;
-
-(* CSC: orripilante *)
-(* the list of the signal ids *)
-let sig_ids = ref ([] : GtkSignal.id list);;
-
-let disconnect_hint annotation_window buttonno =
- match !sig_ids with
-    id::ids ->
-     annotation_window#annotation_hints.(buttonno)#misc#disconnect id ;
-     sig_ids := ids
-  | _ -> assert false
-;;
-
-(* link_hint annotation_window n label hint *)
-(* set the label of the nth hint button of annotation_window to label *)
-(* and the correspondent hint to hint                                 *)
-let link_hint annotation_window buttonno label hint =
- let button = annotation_window#annotation_hints.(buttonno) in
-  sig_ids :=
-   (button#connect#clicked
-    (fun () -> (annotation_window#annotation : GEdit.text)#insert hint)
-   ) :: !sig_ids ;
-  button#misc#show () ;
-  match button#children with
-     [labelw] -> (GMisc.label_cast labelw)#set_text label
-   | _ -> assert false
-;;
-
-exception TooManyHints;;
-
-let link_hints annotation_window a =
- if Array.length a > Array.length annotation_window#annotation_hints then
-  raise TooManyHints ;
- for i = List.length !sig_ids - 1 downto 0 do
-  disconnect_hint annotation_window i
- done ;
- Array.iteri
-  (fun i (label,hint) -> link_hint annotation_window i label hint) a ;
- deactivate_hints_from annotation_window (Array.length a)
-;;
-
-let list_mapi f =
- let rec aux n =
-  function
-     [] -> []
-   | he::tl -> (f n he)::(aux (n + 1) tl)
- in
-  aux 0
-;;
-
-let get_id annterm =
- let module C = Cic in
-  match annterm with
-     C.ARel (id,_,_,_)             -> id
-   | C.AVar (id,_,_)               -> id
-   | C.AMeta (id,_,_)              -> id
-   | C.ASort (id,_,_)              -> id
-   | C.AImplicit (id,_)            -> id
-   | C.ACast (id,_,_,_)            -> id
-   | C.AProd (id,_,_,_,_)          -> id
-   | C.ALambda (id,_,_,_,_)        -> id
-   | C.AAppl (id,_,_)              -> id
-   | C.AConst (id,_,_,_)           -> id
-   | C.AAbst (id,_,_)              -> id
-   | C.AMutInd (id,_,_,_,_)        -> id
-   | C.AMutConstruct (id,_,_,_,_,_)-> id
-   | C.AMutCase (id,_,_,_,_,_,_,_) -> id
-   | C.AFix (id,_,_,_)             -> id
-   | C.ACoFix (id,_,_,_)           -> id
-;;
-
-let create_hint_from_term annotation_window annterm =
- let module C = Cic in
-  match annterm with
-     C.ARel (id,_,_,_) ->
-      link_hints annotation_window
-       [| "Binder", "<attribute name = 'binder' id = '" ^ id ^ "'/>" |]
-   | C.AVar (id,_,_) ->
-      link_hints annotation_window
-       [| "relURI???", "<attribute name = 'relUri' id = '" ^ id ^ "'/>" |]
-   | C.AMeta (id,_,_) ->
-      link_hints annotation_window
-       [| "Number", "<attribute name = 'no' id = '" ^ id ^ "'/>" |]
-   | C.ASort (id,_,_) ->
-      link_hints annotation_window
-       [| "Value", "<attribute name = 'value' id = '" ^ id ^ "'/>" |]
-   | C.AImplicit (id,_) ->
-      link_hints annotation_window [| |]
-   | C.ACast (id,_,bo,ty) ->
-      let boid = get_id bo
-      and tyid = get_id ty in
-       link_hints annotation_window
-        [| "Body", "<node id = '" ^ boid ^ "'/>" ;
-           "Type", "<node id = '" ^ tyid ^ "'/>"
-        |]
-   | C.AProd (id,_,_,ty,bo) ->
-      let boid = get_id bo
-      and tyid = get_id ty in
-       link_hints annotation_window
-        [| "Binder",
-            "<attribute child = '2' name = 'binder' id = '" ^ id ^ "'/>" ;
-           "Body", "<node id = '" ^ boid ^ "'/>" ;
-           "Type", "<node id = '" ^ tyid ^ "'/>"
-        |]
-   | C.ALambda (id,_,_,ty,bo) ->
-      let boid = get_id bo
-      and tyid = get_id ty in
-       link_hints annotation_window
-        [| "Binder",
-            "<attribute child = '2' name = 'binder' id = '" ^ id ^ "'/>" ;
-           "Body", "<node id = '" ^ boid ^ "'/>" ;
-           "Type", "<node id = '" ^ tyid ^ "'/>"
-        |]
-   | C.AAppl (id,_,args) ->
-      let argsid =
-       Array.mapi
-        (fun i te -> "Argument " ^ string_of_int i, "<node id ='" ^
-          get_id te ^ "'/>")
-        (Array.of_list args)
-      in
-       link_hints annotation_window argsid
-   | C.AConst (id,_,_,_) ->
-      link_hints annotation_window
-       [| "Uri???", "<attribute name = 'uri' id = '" ^ id ^ "'/>" |]
-   | C.AAbst (id,_,_) ->
-      link_hints annotation_window
-       [| "Uri???", "<attribute name = 'uri' id = '" ^ id ^ "'/>" |]
-   | C.AMutInd (id,_,_,_,_) ->
-      link_hints annotation_window
-       [| "Uri???", "<attribute name = 'uri' id = '" ^ id ^ "'/>" |]
-   | C.AMutConstruct (id,_,_,_,_,_) ->
-      link_hints annotation_window
-       [| "Uri???", "<attribute name = 'uri' id = '" ^ id ^ "'/>" |]
-   | C.AMutCase (id,_,_,_,_,outty,te,pl) ->
-      let outtyid = get_id outty
-      and teid = get_id te
-      and plid =
-       Array.mapi
-        (fun i te -> "Pattern " ^ string_of_int i, "<node id ='" ^
-          get_id te ^ "'/>")
-        (Array.of_list pl)
-      in
-       link_hints annotation_window
-        (Array.append
-         [| "Uri???", "<attribute name = 'uri' id = '" ^ id ^ "'/>" ;
-            "Case Type", "<node id = '" ^ outtyid ^ "'/>" ;
-            "Term", "<node id = '" ^ teid ^ "'/>" ;
-         |]
-         plid)
-   | C.AFix (id,_,_,funl) ->
-      let funtylid =
-       Array.mapi
-        (fun i (_,_,ty,_) ->
-          "Type " ^ string_of_int i, "<node id ='" ^
-          get_id ty ^ "'/>")
-        (Array.of_list funl)
-      and funbolid =
-       Array.mapi
-        (fun i (_,_,_,bo) ->
-          "Body " ^ string_of_int i, "<node id ='" ^
-          get_id bo ^ "'/>")
-        (Array.of_list funl)
-      and funnamel =
-       Array.mapi
-        (fun i (_,_,_,_) ->
-          "Name " ^ string_of_int i, "<attribute id ='" ^ id ^
-           "' name = 'name' child='" ^ string_of_int i ^ "'/>")
-        (Array.of_list funl)
-      and funrecindexl =
-       Array.mapi
-        (fun i (_,_,_,_) ->
-          "Recursive Index??? " ^ string_of_int i, "<attribute id = '" ^ id ^
-           "' name = 'recIndex' child='" ^ string_of_int i ^ "'/>")
-        (Array.of_list funl)
-      in
-       link_hints annotation_window
-        (Array.concat
-         [ funtylid ;
-           funbolid ;
-           funnamel ;
-           funrecindexl ;
-           [| "NoFun???", "<attribute name = 'noFun' id = '" ^ id ^ "'/>" |]
-         ]
-        )
-   | C.ACoFix (id,_,_,funl) ->
-      let funtylid =
-       Array.mapi
-        (fun i (_,ty,_) ->
-          "Type " ^ string_of_int i, "<node id ='" ^
-          get_id ty ^ "'/>")
-        (Array.of_list funl)
-      and funbolid =
-       Array.mapi
-        (fun i (_,_,bo) ->
-          "Body " ^ string_of_int i, "<node id ='" ^
-          get_id bo ^ "'/>")
-        (Array.of_list funl)
-      and funnamel =
-       Array.mapi
-        (fun i (_,_,_) ->
-          "Name " ^ string_of_int i, "<attribute id ='" ^ id ^
-           "' name = 'name' child='" ^ string_of_int i ^ "'/>")
-        (Array.of_list funl)
-      in
-       link_hints annotation_window
-        (Array.concat
-         [ funtylid ;
-           funbolid ;
-           funnamel ;
-           [| "NoFun???", "<attribute name = 'noFun' id = '" ^ id ^ "'/>" |]
-         ]
-        )
-;;
-
-(*CSC: da riscrivere completamente eliminando il paciugo degli array - liste *)
-let create_hint_from_obj annotation_window annobj =
- let module C = Cic in
-  match annobj with
-     C.ADefinition (id,_,_,bo,ty,_) ->
-      let boid = get_id bo
-      and tyid = get_id ty in
-       link_hints annotation_window
-        [| "Name", "<attribute name = 'name' id = '" ^ id ^ "'/>" ;
-           "Ingredients", "<attribute name = 'params' id = '" ^ id ^ "'/>" ;
-           "Body", "<node id = '" ^ boid ^ "'/>" ;
-           "Type", "<node id = '" ^ tyid ^ "'/>"
-        |]
-   | C.AAxiom (id,_,_,ty,_) ->
-      let tyid = get_id ty in
-       link_hints annotation_window
-        [| "Name", "<attribute name = 'name' id = '" ^ id ^ "'/>" ;
-           "Ingredients", "<attribute name = 'params' id = '" ^ id ^ "'/>" ;
-           "Type", "<node id = '" ^ tyid ^ "'/>"
-        |]
-   | C.AVariable (id,_,_,ty) ->
-      let tyid = get_id ty in
-       link_hints annotation_window
-        [| "Name", "<attribute name = 'name' id = '" ^ id ^ "'/>" ;
-           "Type", "<node id = '" ^ tyid ^ "'/>"
-        |]
-   | C.ACurrentProof (id,_,_,conjs,bo,ty) ->
-      let boid = get_id bo
-      and tyid = get_id ty
-      and conjsid = List.map (fun (_,te) -> get_id te) conjs in
-       link_hints annotation_window
-        (Array.append
-          [| "Name", "<attribute name = 'name' id = '" ^ id ^ "'/>" ;
-             "Ingredients", "<attribute name = 'params' id = '" ^ id ^ "'/>" ;
-             "Body", "<node id = '" ^ boid ^ "'/>" ;
-             "Type", "<node id = '" ^ tyid ^ "'/>"
-          |]
-          (Array.mapi
-            (fun i id ->
-              "Conjecture " ^ string_of_int i, "<node id = '" ^ id ^ "'/>"
-            ) (Array.of_list conjsid)
-          )
-        )
-   | C.AInductiveDefinition (id,_,itl,_,_) ->
-      let itlids =
-       List.map
-        (fun (_,_,arity,cons) ->
-          get_id arity,
-          List.map (fun (_,ty,_) -> get_id ty) cons
-        ) itl
-      in
-       link_hints annotation_window
-        (Array.concat
-          [
-           [| "Ingredients","<attribute name = 'params' id = '" ^ id ^ "'/>" |];
-           (Array.mapi
-             (fun i _ ->
-               "Type Name " ^ string_of_int i,
-               "<attribute name = 'name' child = '" ^ string_of_int i ^
-                "' id = '" ^ id ^ "'/>"
-             ) (Array.of_list itlids)
-           ) ;
-           (Array.mapi
-             (fun i (id,_) ->
-               "Type " ^ string_of_int i, "<node id = '" ^ id ^ "'/>"
-             ) (Array.of_list itlids)
-           ) ;
-           (Array.concat
-            (list_mapi
-             (fun i (_,consid) ->
-              (Array.mapi
-                (fun j _ ->
-                  "Constructor Name " ^ string_of_int i ^ " " ^ string_of_int j,
-                  "<attribute name = 'name' id = '" ^ id ^ 
-                   "' child = '" ^ string_of_int i ^ "' grandchild = '" ^
-                   string_of_int j ^ "'/>"
-                ) (Array.of_list consid)
-              ) ;
-             ) itlids
-            )
-           ) ;
-           (Array.concat
-            (list_mapi
-             (fun i (_,consid) ->
-              (Array.mapi
-                (fun j id ->
-                  "Constructor " ^ string_of_int i ^ " " ^ string_of_int j,
-                  "<node id = '" ^ id ^ "'/>"
-                ) (Array.of_list consid)
-              ) ;
-             ) itlids
-            )
-           )
-          ]
-        )
-;;
-
-exception IdUnknown of string;;
-
-let create_hints annotation_window (annobj,ids_to_targets) xpath =
- try
-  match Hashtbl.find ids_to_targets xpath with
-     Cic.Object annobj -> create_hint_from_obj annotation_window annobj
-   | Cic.Term annterm -> create_hint_from_term annotation_window annterm
- with
-  Not_found -> raise (IdUnknown xpath)
-;;
diff --git a/helm/interface/cicCache.ml b/helm/interface/cicCache.ml
deleted file mode 100644 (file)
index 1b8488a..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This module implements a trival cache system (an hash-table) for cic       *)
-(* objects. Uses the getter (getter.ml) and the parser (cicParser.ml)         *)
-(*                                                                            *)
-(******************************************************************************)
-
-let raise e = print_endline "***" ; flush stdout ; print_endline (Printexc.to_string e) ; flush stdout ; raise e;;
-
-(*CSC: forse i due seguenti tipi sono da unificare? *)
-type cooked_obj =
-   Cooked of Cic.obj
- | Frozen of Cic.obj
- | Unchecked of Cic.obj
-type type_checked_obj =
-   CheckedObj of Cic.obj     (* cooked obj *)
- | UncheckedObj of Cic.obj   (* uncooked obj *)
-;;
-
-exception NoFunctionProvided;;
-
-(* CSC: da sostituire con un (...) option ref *)
-let cook_obj = ref (fun obj uri -> raise NoFunctionProvided);;
-
-exception CircularDependency of string;;
-exception CouldNotUnfreeze of string;;
-exception Impossible;;
-exception UncookedObj;;
-
-module HashedType =
- struct
-  type t = UriManager.uri * int    (* uri, livello di cottura *)
-  let equal (u1,n1) (u2,n2) = UriManager.eq u1 u2 && n1 = n2
-  let hash = Hashtbl.hash
- end
-;;
-
-(* Hashtable that uses == instead of = for testing equality *)
-module HashTable = Hashtbl.Make(HashedType);;
-
-let hashtable = HashTable.create 271;;
-
-(* n is the number of time that the object must be cooked *)
-let get_obj_and_type_checking_info uri n =
- try
-   HashTable.find hashtable (uri,n)
- with
-  Not_found -> 
-   try
-    match HashTable.find hashtable (uri,0) with
-        Cooked _
-      | Frozen _ -> raise Impossible
-      | Unchecked _ as t -> t
-   with
-    Not_found ->
-     let filename = Getter.get uri in
-      let (annobj,_) = CicParser.term_of_xml filename uri false in
-       let obj = Deannotate.deannotate_obj annobj in
-        let output = Unchecked obj in
-         HashTable.add hashtable (uri,0) output ;
-         output
-;;
-
-(* DANGEROUS!!!                                *)
-(* USEFUL ONLY DURING THE FIXING OF THE FILES  *)
-(* change_obj uri (Some newobj)                *)
-(*  maps uri to newobj in cache.               *)
-(* change_obj uri None                         *)
-(*  maps uri to a freeze dummy-object.         *)
-let change_obj uri newobj =
- let newobj =
-  match newobj with
-     Some newobj' -> Unchecked newobj'
-   | None         -> Frozen (Cic.Variable ("frozen-dummy", Cic.Implicit))
- in
-  HashTable.remove hashtable (uri,0) ;
-  HashTable.add hashtable (uri,0) newobj
-;;
-
-let is_annotation_uri uri =
- Str.string_match (Str.regexp ".*\.ann$") (UriManager.string_of_uri uri) 0
-;;
-
-(* returns both the annotated and deannotated uncooked forms (plus the *)
-(* map from ids to annotation targets)                                 *)
-let get_annobj_and_type_checking_info uri =
- let filename = Getter.get uri in
-  match CicParser.term_of_xml filename uri true with
-     (_, None) -> raise Impossible
-   | (annobj, Some ids_to_targets) ->
-    (* If uri is the uri of an annotation, let's use the annotation file *)
-    if is_annotation_uri uri  then
-     AnnotationParser.annotate (Getter.get_ann uri) ids_to_targets ;
-    try
-      (annobj, ids_to_targets, HashTable.find hashtable (uri,0))
-    with
-     Not_found -> 
-      let obj = Deannotate.deannotate_obj annobj in
-       let output = Unchecked obj in
-        HashTable.add hashtable (uri,0) output ;
-        (annobj, ids_to_targets, output)
-;;
-
-
-(* get_obj uri                                                               *)
-(* returns the cic object whose uri is uri. If the term is not just in cache, *)
-(* then it is parsed via CicParser.term_of_xml from the file whose name is    *)
-(* the result of Getter.get uri                                               *)
-let get_obj uri =
- match get_obj_and_type_checking_info uri 0 with
-    Unchecked obj -> obj
-  | Frozen    obj -> obj
-  | Cooked    obj -> obj
-;;
-
-(* get_annobj uri                                                             *)
-(* returns the cic object whose uri is uri either in annotated and            *)
-(* deannotated form. The term is put into the cache if it's not there yet.    *)
-let get_annobj uri =
- let (ann, ids_to_targets, deann) = get_annobj_and_type_checking_info uri in
-  let deannobj =
-   match deann with
-      Unchecked obj -> obj
-    | Frozen    _   -> raise (CircularDependency (UriManager.string_of_uri uri))
-    | Cooked    obj -> obj
-  in
-   (ann, ids_to_targets, deannobj)
-;;
-
-(*CSC Commento falso *)
-(* get_obj uri                                                               *)
-(* returns the cooked cic object whose uri is uri. The term must be present  *)
-(* and cooked in cache                                                       *)
-let rec get_cooked_obj uri cookingsno =
- match get_obj_and_type_checking_info uri cookingsno with
-    Unchecked _
-  | Frozen    _ -> raise UncookedObj
-  | Cooked obj -> obj
-;;
-
-(* is_type_checked uri                                              *)
-(* CSC: commento falso ed obsoleto *)
-(* returns true if the term has been type-checked                   *)
-(* otherwise it returns false and freeze the term for type-checking *)
-(* set_type_checking_info must be called to unfreeze the term       *)
-let is_type_checked uri cookingsno =
- match get_obj_and_type_checking_info uri cookingsno with
-    Cooked obj -> CheckedObj obj
-  | Unchecked obj ->
-     HashTable.remove hashtable (uri,0) ;
-     HashTable.add hashtable (uri,0) (Frozen obj) ;
-     UncheckedObj obj
-  | Frozen _ -> raise (CircularDependency (UriManager.string_of_uri uri))
-;;
-
-(* set_type_checking_info uri                               *)
-(* must be called once the type-checking of uri is finished *)
-(* The object whose uri is uri is unfreezed                 *)
-let set_type_checking_info uri =
- match HashTable.find hashtable (uri,0) with
-    Frozen obj ->
-     (* let's cook the object at every level *)
-     HashTable.remove hashtable (uri,0) ;
-     let obj' = CicSubstitution.undebrujin_inductive_def uri obj in
-      HashTable.add hashtable (uri,0) (Cooked obj') ;
-      let cooked_objs = !cook_obj obj' uri in
-       let last_cooked_level = ref 0 in
-       let last_cooked_obj = ref obj' in
-        List.iter
-         (fun (n,cobj) ->
-           for i = !last_cooked_level + 1 to n do
-            HashTable.add hashtable (uri,i) (Cooked !last_cooked_obj)
-           done ;
-           HashTable.add hashtable (uri,n + 1) (Cooked cobj) ;
-           last_cooked_level := n + 1 ;
-           last_cooked_obj := cobj
-         ) cooked_objs ;
-        for i = !last_cooked_level + 1 to UriManager.depth_of_uri uri + 1 do
-         HashTable.add hashtable (uri,i) (Cooked !last_cooked_obj)
-        done
-  | _ -> raise (CouldNotUnfreeze (UriManager.string_of_uri uri))
-;;
diff --git a/helm/interface/cicCache.mli b/helm/interface/cicCache.mli
deleted file mode 100644 (file)
index e6cb313..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This module implements a trival cache system (an hash-table) for cic       *)(* objects. Uses the getter (getter.ml) and the parser (cicParser.ml)         *)(*                                                                            *)
-(******************************************************************************)
-
-exception CircularDependency of string;;
-
-(* get_obj uri                                                                *)
-(* returns the cic object whose uri is uri. If the term is not just in cache, *)
-(* then it is parsed via CicParser.term_of_xml from the file whose name is    *)
-(* the result of Getter.get uri                                               *)
-val get_obj : UriManager.uri -> Cic.obj
-
-(* get_annobj uri                                                             *)
-(* returns the cic object whose uri is uri either in annotated and in         *)
-(* deannotated form. It returns also the map from ids to annotation targets.  *)
-(* The term is put in cache if it's not there yet.                            *)
-(* The functions raise CircularDependency if asked to retrieve a Frozen object*)
-val get_annobj :
- UriManager.uri -> Cic.annobj * (Cic.id, Cic.anntarget) Hashtbl.t * Cic.obj
-
-(* DANGEROUS!!!                                *)
-(* USEFUL ONLY DURING THE FIXING OF THE FILES  *)
-(* change_obj uri (Some newobj)                *)
-(*  maps uri to newobj in cache.               *)
-(* change_obj uri None                         *)
-(*  maps uri to a freeze dummy-object.         *)
-val change_obj : UriManager.uri -> Cic.obj option -> unit
-
-type type_checked_obj =
-   CheckedObj of Cic.obj    (* cooked obj *)
- | UncheckedObj of Cic.obj  (* uncooked obj *)
-
-(* is_type_checked uri cookingsno                                   *)
-(*CSC commento falso ed obsoleto *)
-(* returns (true,object) if the object has been type-checked        *)
-(* otherwise it returns (false,object) and freeze the object for    *)
-(* type-checking                                                    *)
-(* set_type_checking_info must be called to unfreeze the object     *)
-val is_type_checked : UriManager.uri -> int -> type_checked_obj
-
-(* set_type_checking_info uri                                         *)
-(* must be called once the type-checking of uri is finished           *)
-(* The object whose uri is uri is unfreezed and won't be type-checked *)
-(* again in the future (is_type_checked will return true)             *)
-val set_type_checking_info : UriManager.uri -> unit
-
-(* get_cooked_obj uri cookingsno *)
-val get_cooked_obj : UriManager.uri -> int -> Cic.obj
-
-val cook_obj : (Cic.obj -> UriManager.uri -> (int * Cic.obj) list) ref
diff --git a/helm/interface/cicCooking.ml b/helm/interface/cicCooking.ml
deleted file mode 100644 (file)
index 4d72fb3..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-exception Impossible;;
-exception NotImplemented of int * string;;
-exception WrongUriToConstant;;
-exception WrongUriToVariable of string;;
-exception WrongUriToInductiveDefinition;;
-
-(* mem x lol is true if x is a member of one    *)
-(* of the lists of the list of (int * list) lol *)
-let mem x lol =
- List.fold_right (fun (_,l) i -> i || List.mem x l) lol false
-;;
-
-(* cook var term *)
-let cook curi cookingsno var =
- let rec aux k =
-  let module C = Cic in
-   function
-      C.Rel n as t ->
-       (match n with
-           n when n >= k -> C.Rel (n + 1)
-         | _ -> C.Rel n
-       )
-    | C.Var uri as t ->
-       if UriManager.eq uri var then
-        C.Rel k
-       else
-        t
-    | C.Meta _ as t -> t
-    | C.Sort _ as t -> t
-    | C.Implicit as t -> t
-    | C.Cast (te, ty) -> C.Cast (aux k te, aux k ty)
-    | C.Prod (n,s,t) -> C.Prod (n, aux k s, aux (k + 1) t)
-    | C.Lambda (n,s,t) -> C.Lambda (n, aux k s, aux (k + 1) t)
-    | C.Appl (he::tl) ->
-       (* Get rid of C.Appl (C.Appl l1) l2 *)
-       let newtl = List.map (aux k) tl in
-        (match aux k he with
-            C.Appl (he'::tl') -> C.Appl (he'::(tl'@newtl))
-          | t -> C.Appl (t::newtl)
-        )
-    | C.Appl [] -> raise Impossible
-    | C.Const (uri,_) ->
-       if match CicCache.get_obj uri with
-           C.Definition (_,_,_,params) when mem var params -> true
-         | C.Definition _ -> false
-         | C.Axiom (_,_,params) when mem var params -> true
-         | C.Axiom _ -> false
-         | C.CurrentProof _ ->
-            raise (NotImplemented (2,(UriManager.string_of_uri uri)))
-         | _ -> raise WrongUriToConstant
-       then
-        C.Appl
-         ((C.Const (uri,UriManager.relative_depth curi uri cookingsno))::
-          [C.Rel k])
-       else
-        C.Const (uri,UriManager.relative_depth curi uri cookingsno)
-    | C.Abst _ as t -> t
-    | C.MutInd (uri,_,i) ->
-       if match CicCache.get_obj uri with
-           C.InductiveDefinition (_,params,_) when mem var params -> true
-         | C.InductiveDefinition _ -> false
-         | _ -> raise WrongUriToInductiveDefinition
-       then
-        C.Appl ((C.MutInd (uri,UriManager.relative_depth curi uri cookingsno,i))::[C.Rel k])
-       else
-        C.MutInd (uri,UriManager.relative_depth curi uri cookingsno,i)
-    | C.MutConstruct (uri,_,i,j) ->
-       if match CicCache.get_obj uri with
-           C.InductiveDefinition (_,params,_) when mem var params -> true
-         | C.InductiveDefinition _ -> false
-         | _ -> raise WrongUriToInductiveDefinition
-       then
-        C.Appl ((C.MutConstruct (uri,UriManager.relative_depth curi uri cookingsno,i,j))::[C.Rel k])
-       else
-        C.MutConstruct (uri,UriManager.relative_depth curi uri cookingsno,i,j)
-    | C.MutCase (uri,_,i,outt,term,pl) ->
-       let substitutedfl =
-        List.map (aux k) pl
-       in
-        C.MutCase (uri,UriManager.relative_depth curi uri cookingsno,i,
-         aux k outt,aux k term, substitutedfl)
-    | C.Fix (i,fl) ->
-       let len = List.length fl in
-       let substitutedfl =
-         List.map
-          (fun (name,i,ty,bo) -> (name,i,aux k ty, aux (k+len) bo))
-          fl
-       in
-        C.Fix (i, substitutedfl)
-    | C.CoFix (i,fl) ->
-       let len = List.length fl in
-       let substitutedfl =
-         List.map
-          (fun (name,ty,bo) -> (name,aux k ty, aux (k+len) bo))
-          fl
-       in
-        C.CoFix (i, substitutedfl)
- in
-  aux 1 
-;;
-
-let cook_gen add_binder curi cookingsno ty vars =
- let module C = Cic in
- let module U = UriManager in
-  let rec cookrec ty =
-   function
-     var::tl ->
-      let (varname, vartype) =
-       match CicCache.get_obj var with
-          C.Variable (varname, vartype) -> (varname, vartype)
-        | _ -> raise (WrongUriToVariable (U.string_of_uri var))
-      in
-       cookrec (add_binder (C.Name varname) vartype (cook curi cookingsno var ty)) tl
-   | _ -> ty
-  in
-   cookrec ty vars
-;;
-
-let cook_prod =
- cook_gen (fun n s t -> Cic.Prod (n,s,t))
-and cook_lambda =
- cook_gen (fun n s t -> Cic.Lambda (n,s,t))
-;;
-
-(*CSC: sbagliato da rifare e completare *)
-let cook_one_level obj curi cookingsno vars =
- let module C = Cic in
-  match obj with
-     C.Definition (id,te,ty,params) ->
-      let ty' = cook_prod curi cookingsno ty vars in
-      let te' = cook_lambda curi cookingsno te vars in
-       C.Definition (id,te',ty',params)
-   | C.Axiom (id,ty,parameters) ->
-      let ty' = cook_prod curi cookingsno ty vars in
-       C.Axiom (id,ty',parameters)
-   | C.Variable _ as obj -> obj
-   | C.CurrentProof (id,conjs,te,ty) ->
-      let ty' = cook_prod curi cookingsno ty vars in
-      let te' = cook_lambda curi cookingsno te vars in
-       C.CurrentProof (id,conjs,te',ty')
-   | C.InductiveDefinition (dl, params, n_ind_params) ->
-      let dl' =
-       List.map
-        (fun (name,inductive,arity,constructors) ->
-          let constructors' =
-          List.map
-           (fun (name,ty,r) ->
-             let r' = 
-              match !r with
-                 None -> raise Impossible
-               | Some r -> List.map (fun _ -> false) vars @ r
-             in
-             (name,cook_prod curi cookingsno ty vars,ref (Some r')) 
-           ) constructors
-          in
-           (name,inductive,cook_prod curi cookingsno arity vars,constructors')
-        ) dl
-      in
-       C.InductiveDefinition (dl', params, n_ind_params + List.length vars)
-;; 
-
-let cook_obj obj uri =
- let module C = Cic in
-  let params =
-   match obj with
-      C.Definition (_,_,_,params) -> params
-    | C.Axiom (_,_,params) -> params
-    | C.Variable _ -> []
-    | C.CurrentProof _ -> []
-    | C.InductiveDefinition (_,params,_) -> params
-  in
-   let rec cook_all_levels obj =
-    function
-       [] -> []
-     | (n,vars)::tl ->
-        let cooked_obj = cook_one_level obj uri (n + 1) (List.rev vars) in
-         (n,cooked_obj)::(cook_all_levels cooked_obj tl)
-   in
-    cook_all_levels obj (List.rev params)
-;;
-
-CicCache.cook_obj := cook_obj;;
diff --git a/helm/interface/cicCooking.mli b/helm/interface/cicCooking.mli
deleted file mode 100644 (file)
index 586e5d7..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-exception Impossible
-exception NotImplemented of int * string
-exception WrongUriToConstant
-exception WrongUriToVariable of string
-exception WrongUriToInductiveDefinition
-val cook_obj : Cic.obj -> UriManager.uri -> (int * Cic.obj) list
diff --git a/helm/interface/cicFindParameters.ml b/helm/interface/cicFindParameters.ml
deleted file mode 100644 (file)
index 607dd52..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-exception WrongUriToConstant;;
-exception WrongUriToInductiveDefinition;;
-exception CircularDependency of string;;
-
-module OrderedUris =
- struct
-  type t = UriManager.uri
-  let compare (s1 : t) (s2 : t) =
-   (* library function for = *)
-   compare s1 s2
-   (*if s1 = s2 then 0 else if s1 < s2 then (-1) else 1*)
- end
-;;
-
-let filename_of_uri uri =
- let uri' = UriManager.string_of_uri uri in
-  let fn = Str.replace_first (Str.regexp "cic:") Configuration.helm_dir uri' in
-   fn ^ ".xml"
-;;
-
-(* quite inefficient coding of a set of strings: the only operations  *)
-(* performed are mem O(log n), and union O(n * log n?)                *)
-(* Perhaps a better implementation would be an array of bits or a map *)
-(* from uri to booleans                                               *)
-module SetOfUris = Set.Make(OrderedUris);;
-
-let (@@) = SetOfUris.union;;
-
-let rec parameters_of te ty pparams=
- let module S = SetOfUris in
- let module C = Cic in
-   let rec aux =
-    function
-       C.Rel _ -> S.empty
-     | C.Var uri -> S.singleton uri
-     | C.Meta _ -> S.empty
-     | C.Sort _ -> S.empty
-     | C.Implicit -> S.empty
-     | C.Cast (te, ty) -> aux te @@ aux ty
-     | C.Prod (_, s, t) -> aux s @@ aux t
-     | C.Lambda (_, s, t) -> aux s @@ aux t
-     | C.Appl l -> List.fold_right (fun x i -> aux x @@ i) l S.empty
-     | C.Const (uri,_) ->
-        (* the parameters could be not exact but only possible *)
-        fix_params uri (Some (filename_of_uri uri)) ;
-        (* now the parameters are surely possible *)
-        (match CicCache.get_obj uri with
-            C.Definition (_, _, _, params) ->
-              List.fold_right
-               (fun (_,l) i ->
-                 List.fold_right
-                  (fun x i -> S.singleton x @@ i) l i
-               ) params S.empty
-          | C.Axiom (_, _, params) ->
-             List.fold_right
-              (fun (_,l) i ->
-                List.fold_right
-                 (fun x i -> S.singleton x @@ i) l i
-              ) params S.empty
-          | C.CurrentProof _ -> S.empty (*CSC wrong *)
-          | _ -> raise WrongUriToConstant
-        )
-     | C.Abst _ -> S.empty
-     | C.MutInd (uri,_,_) ->
-        (match CicCache.get_obj uri with
-            C.InductiveDefinition (_, params, _) ->
-             List.fold_right
-              (fun (_,l) i ->
-                List.fold_right
-                 (fun x i -> S.singleton x @@ i) l i
-              ) params S.empty
-          | _ -> raise WrongUriToInductiveDefinition
-        )
-     | C.MutConstruct (uri,_,_,_) ->
-        (match CicCache.get_obj uri with
-            C.InductiveDefinition (_, params, _) ->
-             List.fold_right
-              (fun (_,l) i ->
-                List.fold_right
-                 (fun x i -> S.singleton x @@ i) l i
-              ) params S.empty
-          | _ -> raise WrongUriToInductiveDefinition
-        )
-     | C.MutCase (uri,_,_,outtype,term,patterns) ->
-        (*CSC cosa basta? Ci vuole anche uri? *)
-        (match CicCache.get_obj uri with
-            C.InductiveDefinition (_, params, _) ->
-            List.fold_right
-             (fun (_,l) i ->
-               List.fold_right
-                (fun x i -> S.singleton x @@ i) l i
-             ) params S.empty
-          | _ -> raise WrongUriToInductiveDefinition
-        ) @@ aux outtype @@ aux term @@
-         List.fold_right (fun x i -> aux x @@ i) patterns S.empty
-     | C.Fix (_,fl) ->
-        List.fold_right
-         (fun (_,_,ty,bo) i  -> aux ty @@ aux bo @@ i)
-         fl S.empty
-     | C.CoFix (_,fl) ->
-        List.fold_right
-         (fun (_,ty,bo) i -> aux ty @@ aux bo @@ i)
-         fl S.empty
- in
-  let actual_params = aux te @@ aux ty in
-   (* sort_actual_params wants in input the ordered list of possible params *)
-   let rec sort_actual_params2 =
-    function
-       [] -> []
-     | he::tl when S.mem he actual_params -> he::(sort_actual_params2 tl)
-     | _::tl -> sort_actual_params2 tl
-   in
-    let rec sort_actual_params =
-     function
-        [] -> []
-      | (n,l)::tl -> (n, sort_actual_params2 l)::(sort_actual_params tl)
-    in
-     sort_actual_params pparams
-
-and fix_params uri filename =
- let module C = Cic in
-  let (ann, _, deann) = CicCache.get_annobj uri in
-   match ann, deann with
-      (C.ADefinition (xid, ann, id, te, ty, C.Possible pparams),
-       C.Definition (id', te', ty', _)) ->
-        (* let's freeze the object to avoid circular dependencies *)
-        CicCache.change_obj uri None ;
-        let real_params = parameters_of te' ty' pparams in
-         let fixed =
-          C.ADefinition (xid,ann,id,te,ty,C.Actual real_params)
-         in
-          Xml.pp (Cic2Xml.pp fixed uri) filename ;
-          (* unfreeze and fix the object *)
-          CicCache.change_obj uri
-           (Some (C.Definition (id', te', ty', real_params)))
-    | _ -> ()
-;;
diff --git a/helm/interface/cicParser.ml b/helm/interface/cicParser.ml
deleted file mode 100644 (file)
index ec8c5ef..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This is the main (top level) module of a parser for cic objects from xml   *)
-(* files to the internal representation. It uses the modules cicParser2       *)
-(* (objects level) and cicParser3 (terms level)                               *)
-(*                                                                            *)
-(******************************************************************************)
-
-exception Warnings;;
-
-class warner =
-  object 
-    method warn w =
-      print_endline ("WARNING: " ^ w) ;
-      (raise Warnings : unit)
-  end
-;;
-
-exception EmptyUri;;
-
-(* given an uri u it returns the list of tokens of the base uri of u *)
-(* e.g.: token_of_uri "cic:/a/b/c/d.xml" returns ["a" ; "b" ; "c"]   *)
-let tokens_of_uri uri =
- let uri' = UriManager.string_of_uri uri in
- let rec chop_list =
-  function
-     [] -> raise EmptyUri
-   | he::[fn] -> [he]
-   | he::tl -> he::(chop_list tl)
- in
-  let trimmed_uri = Str.replace_first (Str.regexp "cic:") "" uri' in
-   let list_of_tokens = Str.split (Str.regexp "/") trimmed_uri in
-    chop_list list_of_tokens
-;;
-
-(* given the filename of an xml file of a cic object it returns its internal *)
-(* representation. process_annotations is true if the annotations do really  *)
-(* matter                                                                    *)
-let term_of_xml filename uri process_annotations =
- let module Y = Pxp_yacc in
-  try 
-    let d =
-      (* sets the current base uri to resolve relative URIs *)
-      CicParser3.current_sp := tokens_of_uri uri ;
-      CicParser3.current_uri := uri ;
-      CicParser3.process_annotations := process_annotations ;
-      CicParser3.ids_to_targets :=
-       if process_annotations then Some (Hashtbl.create 500) else None ;
-      let config = {Y.default_config with Y.warner = new warner} in
-      Y.parse_document_entity config
-(*PXP       (Y.ExtID (Pxp_types.System filename,
-         new Pxp_reader.resolve_as_file ~url_of_id ()))
-*)     (PxpUriResolver.from_file filename)
-       CicParser3.domspec
-    in
-     let ids_to_targets = !CicParser3.ids_to_targets in
-      let res = (CicParser2.get_term d#root, ids_to_targets) in
-       CicParser3.ids_to_targets := None ; (* let's help the GC *)
-       res
-  with
-   e ->
-     print_endline (Pxp_types.string_of_exn e) ;
-     raise e
-;;
diff --git a/helm/interface/cicParser.mli b/helm/interface/cicParser.mli
deleted file mode 100644 (file)
index 961a262..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 22/03/2000                                 *)
-(*                                                                            *)
-(* This is the main (top level) module of a parser for cic objects from xml   *)
-(* files to the internal representation. It uses the modules cicParser2       *)
-(* (objects level) and cicParser3 (terms level)                               *)
-(*                                                                            *)
-(******************************************************************************)
-
-(* given the filename of an xml file of a cic object and it's uri, it returns *)
-(* its internal annotated representation. The boolean is set to true if the   *)
-(* annotations do really matter                                               *)
-val term_of_xml :
- string -> UriManager.uri -> bool ->
-  Cic.annobj * (Cic.id, Cic.anntarget) Hashtbl.t option
diff --git a/helm/interface/cicParser2.ml b/helm/interface/cicParser2.ml
deleted file mode 100644 (file)
index 343e22b..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@@cs.unibo.it>              *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This module is the objects level of a parser for cic objects from xml      *)
-(* files to the internal representation. It uses the module cicParser3        *)
-(* cicParser3 (terms level) and it is used only through cicParser2 (top       *)
-(* level).                                                                    *)
-(*                                                                            *)
-(******************************************************************************)
-
-exception IllFormedXml of int;;
-exception NotImplemented;;
-
-(* Utility functions that transform a Pxp attribute into something useful *)
-
-(* mk_absolute_uris "n1: v1 ... vn n2 : u1 ... un ...."      *)
-(* returns [(n1,[absolute_uri_for_v1 ; ... ; absolute_uri_for_vn]) ; (n2,...) *)
-let mk_absolute_uris s =
- let l = (Str.split (Str.regexp ":") s) in
-  let absolute_of_relative n v =
-   let module P3 = CicParser3 in
-    let rec mkburi =
-     function
-        (0,_) -> "/"
-      | (n,he::tl) when n > 0 ->
-         "/" ^ he ^ mkburi (n - 1, tl)
-      | _ -> raise (IllFormedXml 12)
-    in
-     let m = List.length !P3.current_sp - (int_of_string n) in
-      let buri = mkburi (m, !P3.current_sp) in
-       UriManager.uri_of_string ("cic:" ^ buri ^ v ^ ".var")
-  in
-   let rec absolutize =
-    function
-       [] -> []
-     | [no ; vs] ->
-        let vars = (Str.split (Str.regexp " ") vs) in
-         [(int_of_string no, List.map (absolute_of_relative no) vars)]
-     | no::vs::tl -> 
-        let vars = (Str.split (Str.regexp " ") vs) in
-         let rec add_prefix =
-          function
-             [no2] -> ([], no2)
-           | he::tl ->
-              let (pvars, no2) = add_prefix tl in
-               ((absolute_of_relative no he)::pvars, no2)
-           | _ -> raise (IllFormedXml 11)
-         in
-          let (pvars, no2) = add_prefix vars in
-           (int_of_string no, pvars)::(absolutize (no2::tl))
-     | _ -> raise (IllFormedXml 10)
-   in
-    (* last parameter must be applied first *)
-    absolutize l
-;;
-
-let option_uri_list_of_attr a1 a2 =
- let module T = Pxp_types in
-  let parameters =
-   match a1 with
-      T.Value s -> mk_absolute_uris s
-    | _ -> raise (IllFormedXml 0)
-  in
-   match a2 with
-      T.Value "POSSIBLE" -> Cic.Possible parameters
-    | T.Implied_value -> Cic.Actual parameters
-    | _ -> raise (IllFormedXml 0)
-;;
-
-let uri_list_of_attr a =
- let module T = Pxp_types in
-  match a with
-     T.Value s -> mk_absolute_uris s
-   | _ -> raise (IllFormedXml 0)
-;;
-
-let string_of_attr a =
- let module T = Pxp_types in
-  match a with
-     T.Value s -> s
-   | _ -> raise (IllFormedXml 0)
-;;
-
-let int_of_attr a =
- int_of_string (string_of_attr a)
-;;
-
-let bool_of_attr a =
- bool_of_string (string_of_attr a)
-;;
-
-(* Other utility functions *)
-
-let get_content n =
- match n#sub_nodes with
-    [ t ] -> t
-  | _     -> raise (IllFormedXml 1)
-;;
-
-let register_id id node =
- if !CicParser3.process_annotations then
-  match !CicParser3.ids_to_targets with
-     None -> assert false
-   | Some ids_to_targets ->
-      Hashtbl.add ids_to_targets id (Cic.Object node)
-;;
-
-(* Functions that, given the list of sons of a node of the cic dom (objects   *)
-(* level), retrieve the internal representation associated to the node.       *)
-(* Everytime a cic term subtree is found, it is translated to the internal    *)
-(* representation using the method to_cic_term defined in cicParser3.         *)
-(* Each function raise IllFormedXml if something goes wrong, but this should  *)
-(* be impossible due to the presence of the dtd                               *)
-(* The functions should really be obvious looking at their name and the cic   *)
-(* dtd                                                                        *)
-
-(* called when a CurrentProof is found *)
-let get_conjs_value_type l =
- let rec rget (c, v, t) l =
-  let module D = Pxp_document in
-   match l with
-      [] -> (c, v, t)
-    | conj::tl when conj#node_type = D.T_element "Conjecture" ->
-       let no = int_of_attr (conj#attribute "no")
-       and typ = (get_content conj)#extension#to_cic_term in
-        rget ((no, typ)::c, v, t) tl
-    | value::tl when value#node_type = D.T_element "body" ->
-       let v' = (get_content value)#extension#to_cic_term in
-        (match v with
-            None -> rget (c, Some v', t) tl
-          | _    -> raise (IllFormedXml 2)
-        )
-    | typ::tl when typ#node_type = D.T_element "type" ->
-       let t' = (get_content typ)#extension#to_cic_term in
-        (match t with
-            None -> rget (c, v, Some t') tl
-          | _    -> raise (IllFormedXml 3)
-        )
-    | _ -> raise (IllFormedXml 4)
- in
-  match rget ([], None, None) l with
-     (c, Some v, Some t) -> (c, v, t)
-   | _ -> raise (IllFormedXml 5)
-;;
-
-(* used only by get_inductive_types; called one time for each inductive  *)
-(* definitions in a block of inductive definitions                       *)
-let get_names_arity_constructors l =
- let rec rget (a,c) l =
-  let module D = Pxp_document in
-   match l with
-      [] -> (a, c)
-    | arity::tl when arity#node_type = D.T_element "arity" ->
-       let a' = (get_content arity)#extension#to_cic_term in
-        rget (Some a',c) tl
-    | con::tl when con#node_type = D.T_element "Constructor" ->
-       let id = string_of_attr (con#attribute "name")
-       and ty = (get_content con)#extension#to_cic_term in
-         rget (a,(id,ty,ref None)::c) tl
-    | _ -> raise (IllFormedXml 9)
- in
-  match rget (None,[]) l with
-     (Some a, c) -> (a, List.rev c)
-   | _ -> raise (IllFormedXml 8)
-;;
-
-(* called when an InductiveDefinition is found *)
-let rec get_inductive_types =
- function
-    []     -> []
-  | he::tl ->
-     let tyname    = string_of_attr (he#attribute "name")
-     and inductive = bool_of_attr   (he#attribute "inductive")
-     and (arity,cons) =
-      get_names_arity_constructors (he#sub_nodes)
-     in
-      (tyname,inductive,arity,cons)::(get_inductive_types tl) (*CSC 0 a caso *)
-;;
-
-(* This is the main function and also the only one used directly from *)
-(* cicParser. Given the root of the dom tree, it returns the internal *)
-(* representation of the cic object described in the tree             *)
-(* It uses the previous functions and the to_cic_term method defined  *)
-(* in cicParser3 (used for subtrees that encode cic terms)            *)
-let rec get_term n =
- let module D = Pxp_document in
- let module C = Cic in
-  let ntype = n # node_type in
-  match ntype with
-    D.T_element "Definition" ->
-      let id = string_of_attr (n # attribute "name")
-      and params =
-       option_uri_list_of_attr (n#attribute "params") (n#attribute "paramMode")
-      and (value, typ) = 
-       let sons = n#sub_nodes in
-        match sons with
-          [v ; t] when
-            v#node_type = D.T_element "body" &&
-            t#node_type = D.T_element "type" ->
-             let v' = get_content v
-             and t' = get_content t in
-              (v'#extension#to_cic_term, t'#extension#to_cic_term)
-        | _ -> raise (IllFormedXml 6)
-      and xid = string_of_attr (n#attribute "id") in
-       let res = C.ADefinition (xid, ref None, id, value, typ, params) in
-        register_id xid res ;
-        res
-  | D.T_element "Axiom" ->
-      let id = string_of_attr (n # attribute "name")
-      and params = uri_list_of_attr (n # attribute "params")
-      and typ = 
-       (get_content (get_content n))#extension#to_cic_term
-      and xid = string_of_attr (n#attribute "id") in
-       let res = C.AAxiom (xid, ref None, id, typ, params) in
-        register_id xid res ;
-        res
-  | D.T_element "CurrentProof" ->
-     let name = string_of_attr (n#attribute "name")
-     and xid = string_of_attr (n#attribute "id") in
-     let sons = n#sub_nodes in
-      let (conjs, value, typ) = get_conjs_value_type sons in
-       let res = C.ACurrentProof (xid, ref None, name, conjs, value, typ) in
-        register_id xid res ;
-        res
-  | D.T_element "InductiveDefinition" ->
-     let sons = n#sub_nodes
-     and xid = string_of_attr (n#attribute "id") in
-      let inductiveTypes = get_inductive_types sons
-      and params = uri_list_of_attr (n#attribute "params")
-      and nparams = int_of_attr (n#attribute "noParams") in
-       let res =
-        C.AInductiveDefinition (xid, ref None, inductiveTypes, params, nparams)
-       in
-        register_id xid res ;
-        res
-  | D.T_element "Variable" ->
-     let name = string_of_attr (n#attribute "name")
-     and xid = string_of_attr (n#attribute "id") in
-      let typ = (get_content (get_content n))#extension#to_cic_term in
-       let res = C.AVariable (xid,ref None,name,typ) in
-        register_id xid res ;
-        res
-  | D.T_element _
-  | D.T_data ->
-     raise (IllFormedXml 7)
-;;
diff --git a/helm/interface/cicParser2.mli b/helm/interface/cicParser2.mli
deleted file mode 100644 (file)
index 50a551f..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This module is the objects level of a parser for cic objects from xml      *)
-(* files to the internal representation. It uses the module cicParser3        *)
-(* cicParser3 (terms level) and it is used only through cicParser2 (top       *)
-(* level).                                                                    *)
-(*                                                                            *)
-(******************************************************************************)
-
-exception IllFormedXml of int
-exception NotImplemented
-
-(* This is the main function and also the only one used directly from *)
-(* cicParser. Given the root of the dom tree, it returns the internal *)
-(* representation of the cic object described in the tree             *)
-(* It uses the previous functions and the to_cic_term method defined  *)
-(* in cicParser3 (used for subtrees that encode cic terms)            *)
-val get_term :
- < attribute : string -> Pxp_types.att_value;
-   node_type : Pxp_document.node_type;
-   sub_nodes : < attribute : string -> Pxp_types.att_value;
-                 node_type : Pxp_document.node_type;
-                 sub_nodes : CicParser3.cic_term Pxp_document.node list;
-                 .. >
-               list;
-   .. > ->
- Cic.annobj
diff --git a/helm/interface/cicParser3.ml b/helm/interface/cicParser3.ml
deleted file mode 100644 (file)
index d0c31b0..0000000
+++ /dev/null
@@ -1,515 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This module is the terms level of a parser for cic objects from xml        *)
-(* files to the internal representation. It is used by the module cicParser2  *)
-(* (objects level). It defines an extension of the standard dom using the     *)
-(* object-oriented extension machinery of markup: an object with a method     *)
-(* to_cic_term that returns the internal representation of the subtree is     *)
-(* added to each node of the dom tree                                         *)
-(*                                                                            *)
-(******************************************************************************)
-
-exception IllFormedXml of int;;
-
-(* The hashtable from the current identifiers to the object or the terms *)
-let ids_to_targets = ref None;;
-
-(* The list of tokens of the current section path. *)
-(* Used to resolve relative URIs                   *)
-let current_sp = ref [];;
-
-(* The uri of the object been parsed *)
-let current_uri = ref (UriManager.uri_of_string "cic:/.xml");;
-
-(* True if annotation really matter *)
-let process_annotations = ref false;;
-
-(* Utility functions to map a markup attribute to something useful *)
-
-let cic_attr_of_xml_attr =
- function
-    Pxp_types.Value s       -> Cic.Name s
-  | Pxp_types.Implied_value -> Cic.Anonimous
-  | _             -> raise (IllFormedXml 1)
-
-let cic_sort_of_xml_attr =
- function
-    Pxp_types.Value "Prop" -> Cic.Prop
-  | Pxp_types.Value "Set"  -> Cic.Set
-  | Pxp_types.Value "Type" -> Cic.Type
-  | _            -> raise (IllFormedXml 2)
-
-let int_of_xml_attr =
- function
-    Pxp_types.Value n -> int_of_string n
-  | _       -> raise (IllFormedXml 3)
-
-let uri_of_xml_attr =
- function
-    Pxp_types.Value s -> UriManager.uri_of_string s
-  | _       -> raise (IllFormedXml 4)
-
-let string_of_xml_attr =
- function
-    Pxp_types.Value s -> s
-  | _       -> raise (IllFormedXml 5)
-
-let binder_of_xml_attr =
- function
-    Pxp_types.Value s -> if !process_annotations then Some s else None
-  | _       -> raise (IllFormedXml 17)
-;;
-
-let register_id id node =
- if !process_annotations then
-  match !ids_to_targets with
-     None -> assert false
-   | Some ids_to_targets ->
-      Hashtbl.add ids_to_targets id (Cic.Term node)
-;;
-
-(* the "interface" of the class linked to each node of the dom tree *)
-
-class virtual cic_term =
-  object (self)
-
-    (* fields and methods ever required by markup *)
-    val mutable node = (None : cic_term Pxp_document.node option)
-
-    method clone = {< >} 
-    method node =
-      match node with
-          None ->
-            assert false
-        | Some n -> n
-    method set_node n =
-      node <- Some n
-
-    (* a method that returns the internal representation of the tree (term) *)
-    (* rooted in this node                                                  *)
-    method virtual to_cic_term : Cic.annterm
-  end
-;;
-
-(* the class of the objects linked to nodes that are not roots of cic terms *)
-class eltype_not_of_cic =
-  object (self)
-
-     inherit cic_term
-
-     method to_cic_term = raise (IllFormedXml 6)
-  end
-;;
-
-(* the class of the objects linked to nodes whose content is a cic term *)
-(* (syntactic sugar xml entities) e.g. <type> ... </type>               *)
-class eltype_transparent =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      match n#sub_nodes with
-         [ t ]  -> t#extension#to_cic_term
-       | _  -> raise (IllFormedXml 7)
-  end
-;;
-
-(* A class for each cic node type *)
-
-class eltype_fix =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let nofun = int_of_xml_attr (n#attribute "noFun")
-      and id = string_of_xml_attr (n#attribute "id")
-      and functions =
-       let sons = n#sub_nodes in
-        List.map
-         (function
-             f when f#node_type = Pxp_document.T_element "FixFunction" ->
-              let name = string_of_xml_attr (f#attribute "name")
-              and recindex = int_of_xml_attr (f#attribute "recIndex")
-              and (ty, body) =
-               match f#sub_nodes with
-                  [t ; b] when
-                    t#node_type = Pxp_document.T_element "type" &&
-                    b#node_type = Pxp_document.T_element "body" ->
-                     (t#extension#to_cic_term, b#extension#to_cic_term)
-                | _ -> raise (IllFormedXml 14)
-              in
-               (name, recindex, ty, body)
-           | _ -> raise (IllFormedXml 13)
-         ) sons
-      in
-       let res = Cic.AFix (id, ref None, nofun, functions) in
-        register_id id res ;
-        res
-  end
-;;
-
-class eltype_cofix =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let nofun = int_of_xml_attr (n#attribute "noFun")
-      and id = string_of_xml_attr (n#attribute "id")
-      and functions =
-       let sons = n#sub_nodes in
-        List.map
-         (function
-             f when f#node_type = Pxp_document.T_element "CofixFunction" ->
-              let name = string_of_xml_attr (f#attribute "name")
-              and (ty, body) =
-               match f#sub_nodes with
-                  [t ; b] when
-                    t#node_type = Pxp_document.T_element "type" &&
-                    b#node_type = Pxp_document.T_element "body" ->
-                     (t#extension#to_cic_term, b#extension#to_cic_term)
-                | _ -> raise (IllFormedXml 16)
-              in
-               (name, ty, body)
-           | _ -> raise (IllFormedXml 15)
-         ) sons
-      in
-       let res = Cic.ACoFix (id, ref None, nofun, functions) in
-        register_id id res ;
-        res
-  end
-;;
-
-class eltype_implicit =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let id = string_of_xml_attr (n#attribute "id") in
-       let res = Cic.AImplicit (id, ref None) in
-        register_id id res ;
-        res
-  end
-;;
-
-class eltype_rel =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let value  = int_of_xml_attr (n#attribute "value")
-      and binder = binder_of_xml_attr (n#attribute "binder")
-      and id = string_of_xml_attr (n#attribute "id") in
-       let res = Cic.ARel (id,ref None,value,binder) in
-        register_id id res ;
-        res
-  end
-;;
-
-class eltype_meta =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let value = int_of_xml_attr (n#attribute "no")
-      and id = string_of_xml_attr (n#attribute "id") in
-       let res = Cic.AMeta (id,ref None,value) in
-        register_id id res ;
-        res
-  end
-;;
-
-class eltype_var =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let name = string_of_xml_attr (n#attribute "relUri")
-      and xid = string_of_xml_attr (n#attribute "id") in
-       match Str.split (Str.regexp ",") name with
-          [index; id] ->
-           let get_prefix n =
-            let rec aux =
-             function
-                (0,_) -> "/"
-              | (n,he::tl) when n > 0 -> "/" ^ he ^ aux (n - 1, tl)
-              | _ -> raise (IllFormedXml 19)
-            in   
-             aux (List.length !current_sp - n,!current_sp)
-           in
-            let res =
-             Cic.AVar
-              (xid,ref None, 
-               (UriManager.uri_of_string
-                ("cic:" ^ get_prefix (int_of_string index) ^ id ^ ".var"))
-              )
-            in
-             register_id id res ;
-             res
-        | _ -> raise (IllFormedXml 18)
-  end
-;;
-
-class eltype_apply =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let children = n#sub_nodes
-      and id = string_of_xml_attr (n#attribute "id") in
-       if List.length children < 2 then raise (IllFormedXml 8)
-       else
-        let res =
-         Cic.AAppl
-          (id,ref None,List.map (fun x -> x#extension#to_cic_term) children)
-        in
-         register_id id res ;
-         res
-  end
-;;
-
-class eltype_cast =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let sons = n#sub_nodes
-      and id = string_of_xml_attr (n#attribute "id") in
-       match sons with
-          [te ; ty] when
-            te#node_type = Pxp_document.T_element "term" &&
-            ty#node_type = Pxp_document.T_element "type" ->
-             let term = te#extension#to_cic_term
-             and typ  = ty#extension#to_cic_term in
-              let res = Cic.ACast (id,ref None,term,typ) in
-               register_id id res ;
-               res
-        | _  -> raise (IllFormedXml 9)
-  end
-;;
-
-class eltype_sort =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let sort = cic_sort_of_xml_attr (n#attribute "value")
-      and id = string_of_xml_attr (n#attribute "id") in
-       let res = Cic.ASort (id,ref None,sort) in
-        register_id id res ;
-        res
-  end
-;;
-
-class eltype_abst =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let value = uri_of_xml_attr (n#attribute "uri")
-      and id = string_of_xml_attr (n#attribute "id") in
-       let res = Cic.AAbst (id,ref None,value) in
-        register_id id res ;
-        res
-  end
-;;
-
-class eltype_const =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let module U = UriManager in
-      let n = self#node in
-       let value = uri_of_xml_attr (n#attribute "uri")
-       and id = string_of_xml_attr (n#attribute "id") in
-        let res =
-         Cic.AConst (id,ref None,value, U.relative_depth !current_uri value 0)
-        in
-         register_id id res ;
-         res
-  end
-;;
-
-class eltype_mutind =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let module U = UriManager in
-      let n = self#node in
-       let name = uri_of_xml_attr (n#attribute "uri")
-       and noType = int_of_xml_attr (n#attribute "noType")
-       and id = string_of_xml_attr (n#attribute "id") in
-        let res =
-         Cic.AMutInd
-          (id,ref None,name, U.relative_depth !current_uri name 0, noType)
-        in
-         register_id id res ;
-         res
-  end
-;;
-
-class eltype_mutconstruct =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let module U = UriManager in
-      let n = self#node in
-       let name = uri_of_xml_attr (n#attribute "uri")
-       and noType = int_of_xml_attr (n#attribute "noType")
-       and noConstr = int_of_xml_attr (n#attribute "noConstr")
-       and id = string_of_xml_attr (n#attribute "id") in
-        let res = 
-         Cic.AMutConstruct
-          (id, ref None, name, U.relative_depth !current_uri name 0,
-          noType, noConstr)
-        in
-         register_id id res ;
-         res
-  end
-;;
-
-class eltype_prod =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let sons = n#sub_nodes
-      and id = string_of_xml_attr (n#attribute "id") in
-       match sons with
-          [s ; t] when
-            s#node_type = Pxp_document.T_element "source" &&
-            t#node_type = Pxp_document.T_element "target" ->
-             let name = cic_attr_of_xml_attr (t#attribute "binder")
-             and source = s#extension#to_cic_term
-             and target = t#extension#to_cic_term in
-              let res = Cic.AProd (id,ref None,name,source,target) in
-               register_id id res ;
-               res
-        | _  -> raise (IllFormedXml 10)
-  end
-;;
-
-class eltype_mutcase =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let module U = UriManager in
-      let n = self#node in
-       let sons = n#sub_nodes
-       and id = string_of_xml_attr (n#attribute "id") in
-        match sons with
-           ty::te::patterns when
-             ty#node_type = Pxp_document.T_element "patternsType" &&
-             te#node_type = Pxp_document.T_element "inductiveTerm" ->
-              let ci = uri_of_xml_attr (n#attribute "uriType")
-              and typeno = int_of_xml_attr (n#attribute "noType")
-              and inductiveType = ty#extension#to_cic_term
-              and inductiveTerm = te#extension#to_cic_term
-              and lpattern= List.map (fun x -> x#extension#to_cic_term) patterns
-              in
-               let res =
-                Cic.AMutCase (id,ref None,ci,U.relative_depth !current_uri ci 0,
-                 typeno,inductiveType,inductiveTerm,lpattern)
-               in
-                register_id id res ;
-                res
-         | _  -> raise (IllFormedXml 11)
-  end
-;;
-
-class eltype_lambda =
-  object (self)
-
-    inherit cic_term
-
-    method to_cic_term =
-     let n = self#node in
-      let sons = n#sub_nodes
-      and id = string_of_xml_attr (n#attribute "id") in
-       match sons with
-          [s ; t] when
-            s#node_type = Pxp_document.T_element "source" &&
-            t#node_type = Pxp_document.T_element "target" ->
-             let name = cic_attr_of_xml_attr (t#attribute "binder")
-             and source = s#extension#to_cic_term
-             and target = t#extension#to_cic_term in
-              let res = Cic.ALambda (id,ref None,name,source,target) in
-               register_id id res ;
-               res
-        | _  -> raise (IllFormedXml 12)
-  end
-;;
-
-(* The definition of domspec, an hashtable that maps each node type to the *)
-(* object that must be linked to it. Used by markup.                       *)
-
-let domspec =
- let module D = Pxp_document in
-  D.make_spec_from_alist
-   ~data_exemplar: (new D.data_impl (new eltype_not_of_cic))
-   ~default_element_exemplar: (new D.element_impl (new eltype_not_of_cic))
-   ~element_alist:
-    [ "REL",           (new D.element_impl (new eltype_rel)) ;
-      "VAR",           (new D.element_impl (new eltype_var)) ;
-      "META",          (new D.element_impl (new eltype_meta)) ;
-      "SORT",          (new D.element_impl (new eltype_sort)) ;
-      "IMPLICIT",      (new D.element_impl (new eltype_implicit)) ;
-      "CAST",          (new D.element_impl (new eltype_cast)) ;
-      "PROD",          (new D.element_impl (new eltype_prod)) ;
-      "LAMBDA",        (new D.element_impl (new eltype_lambda)) ;
-      "APPLY",         (new D.element_impl (new eltype_apply)) ;
-      "CONST",         (new D.element_impl (new eltype_const)) ;
-      "ABST",          (new D.element_impl (new eltype_abst)) ;
-      "MUTIND",        (new D.element_impl (new eltype_mutind)) ;
-      "MUTCONSTRUCT",  (new D.element_impl (new eltype_mutconstruct)) ;
-      "MUTCASE",       (new D.element_impl (new eltype_mutcase)) ;
-      "FIX",           (new D.element_impl (new eltype_fix)) ;
-      "COFIX",         (new D.element_impl (new eltype_cofix)) ;
-      "arity",         (new D.element_impl (new eltype_transparent)) ;
-      "term",          (new D.element_impl (new eltype_transparent)) ;
-      "type",          (new D.element_impl (new eltype_transparent)) ;
-      "body",          (new D.element_impl (new eltype_transparent)) ;
-      "source",        (new D.element_impl (new eltype_transparent)) ;
-      "target",        (new D.element_impl (new eltype_transparent)) ;
-      "patternsType",  (new D.element_impl (new eltype_transparent)) ;
-      "inductiveTerm", (new D.element_impl (new eltype_transparent)) ;
-      "pattern",       (new D.element_impl (new eltype_transparent))
-    ]
-   ()
-;;
diff --git a/helm/interface/cicParser3.mli b/helm/interface/cicParser3.mli
deleted file mode 100644 (file)
index dd71ab6..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This module is the terms level of a parser for cic objects from xml        *)
-(* files to the internal representation. It is used by the module cicParser2  *)
-(* (objects level). It defines an extension of the standard dom using the     *)
-(* object-oriented extension machinery of markup: an object with a method     *)
-(* to_cic_term that returns the internal representation of the subtree is     *)
-(* added to each node of the dom tree                                         *)
-(*                                                                            *)
-(******************************************************************************)
-
-exception IllFormedXml of int
-
-val ids_to_targets : (Cic.id, Cic.anntarget) Hashtbl.t option ref
-val current_sp : string list ref
-val current_uri : UriManager.uri ref
-val process_annotations : bool ref
-
-(* the "interface" of the class linked to each node of the dom tree *)
-class virtual cic_term :
-  object ('a)
-
-    (* fields and methods ever required by markup *)
-    val mutable node : cic_term Pxp_document.node option
-    method clone : 'a
-    method node : cic_term Pxp_document.node
-    method set_node : cic_term Pxp_document.node -> unit
-
-    (* a method that returns the internal representation of the tree (term) *)
-    (* rooted in this node                                                  *)
-    method virtual to_cic_term : Cic.annterm
-
-  end
-
-(* The definition of domspec, an hashtable that maps each node type to the *)
-(* object that must be linked to it. Used by markup.                       *)
-val domspec : cic_term Pxp_document.spec
diff --git a/helm/interface/cicPp.ml b/helm/interface/cicPp.ml
deleted file mode 100644 (file)
index 9329786..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This module implements a very simple Coq-like pretty printer that, given   *)
-(* an object of cic (internal representation) returns a string describing the *)
-(* object in a syntax similar to that of coq                                  *)
-(*                                                                            *)
-(******************************************************************************)
-
-exception CicPpInternalError;;
-
-(* Utility functions *)
-
-let string_of_name =
- function
-    Cic.Name s     -> s
-  | Cic.Anonimous  -> "_"
-;;
-
-(* get_nth l n   returns the nth element of the list l if it exists or raise *)
-(* a CicPpInternalError if l has less than n elements or n < 1               *)
-let rec get_nth l n =
- match (n,l) with
-    (1, he::_) -> he
-  | (n, he::tail) when n > 1 -> get_nth tail (n-1)
-  | (_,_) -> raise CicPpInternalError
-;;
-
-(* pp t l                                                                  *)
-(* pretty-prints a term t of cic in an environment l where l is a list of  *)
-(* identifier names used to resolve DeBrujin indexes. The head of l is the *)
-(* name associated to the greatest DeBrujin index in t                     *)
-let rec pp t l =
- let module C = Cic in
-   match t with
-      C.Rel n ->
-       (match get_nth l n with
-           C.Name s -> s
-         | _        -> raise CicPpInternalError
-       )
-    | C.Var uri -> UriManager.name_of_uri uri
-    | C.Meta n -> "?" ^ (string_of_int n)
-    | C.Sort s ->
-       (match s with
-           C.Prop -> "Prop"
-         | C.Set  -> "Set"
-         | C.Type -> "Type"
-       )
-    | C.Implicit -> "?"
-    | C.Prod (b,s,t) ->
-       (match b with
-          C.Name n -> "(" ^ n ^ ":" ^ pp s l ^ ")" ^ pp t (b::l)
-        | C.Anonimous -> "(" ^ pp s l ^ "->" ^ pp t (b::l) ^ ")"
-       )
-    | C.Cast (v,t) -> pp v l
-    | C.Lambda (b,s,t) ->
-       "[" ^ string_of_name b ^ ":" ^ pp s l ^ "]" ^ pp t (b::l)
-    | C.Appl li ->
-       "(" ^
-       (List.fold_right
-        (fun x i -> pp x l ^ (match i with "" -> "" | _ -> " ") ^ i)
-        li ""
-       ) ^ ")"
-    | C.Const (uri,_) -> UriManager.name_of_uri uri
-    | C.Abst uri -> UriManager.name_of_uri uri
-    | C.MutInd (uri,_,n) ->
-       (match CicCache.get_obj uri with
-           C.InductiveDefinition (dl,_,_) ->
-            let (name,_,_,_) = get_nth dl (n+1) in
-             name
-         | _ -> raise CicPpInternalError
-       )
-    | C.MutConstruct (uri,_,n1,n2) ->
-       (match CicCache.get_obj uri with
-           C.InductiveDefinition (dl,_,_) ->
-            let (_,_,_,cons) = get_nth dl (n1+1) in
-             let (id,_,_) = get_nth cons n2 in
-              id
-         | _ -> raise CicPpInternalError
-       )
-    | C.MutCase (uri,_,n1,ty,te,patterns) ->
-       let connames =
-        (match CicCache.get_obj uri with
-            C.InductiveDefinition (dl,_,_) ->
-             let (_,_,_,cons) = get_nth dl (n1+1) in
-              List.map (fun (id,_,_) -> id) cons
-          | _ -> raise CicPpInternalError
-        )
-       in
-        "\n<" ^ pp ty l ^ ">Cases " ^ pp te l ^ " of " ^
-          List.fold_right (fun (x,y) i -> "\n " ^ x ^ " => " ^ pp y l ^ i)
-           (List.combine connames patterns) "" ^
-          "\nend"
-    | C.Fix (no, funs) ->
-       let snames = List.map (fun (name,_,_,_) -> name) funs in
-        let names = List.rev (List.map (function name -> C.Name name) snames) in
-         "\nFix " ^ get_nth snames (no + 1) ^ " {" ^
-         List.fold_right
-          (fun (name,ind,ty,bo) i -> "\n" ^ name ^ " / " ^ string_of_int ind ^
-            " : " ^ pp ty l ^ " := \n" ^
-            pp bo (names@l) ^ i)
-          funs "" ^
-         "}\n"
-    | C.CoFix (no,funs) ->
-       let snames = List.map (fun (name,_,_) -> name) funs in
-        let names = List.rev (List.map (function name -> C.Name name) snames) in
-         "\nCoFix " ^ get_nth snames (no + 1) ^ " {" ^
-         List.fold_right
-          (fun (name,ty,bo) i -> "\n" ^ name ^ 
-            " : " ^ pp ty l ^ " := \n" ^
-            pp bo (names@l) ^ i)
-          funs "" ^
-         "}\n"
-;;
-
-(* ppinductiveType (typename, inductive, arity, cons) names                 *)
-(* pretty-prints a single inductive definition (typename, inductive, arity, *)
-(*  cons) where the cic terms in the inductive definition need to be        *)
-(*  evaluated in the environment names that is the list of typenames of the *)
-(*  mutual inductive definitions defined in the block of mutual inductive   *)
-(*  definitions to which this one belongs to                                *)
-let ppinductiveType (typename, inductive, arity, cons) names =
-  (if inductive then "\nInductive " else "\nCoInductive ") ^ typename ^ ": " ^
-  (*CSC: bug found: was pp arity names ^ " =\n   " ^*)
-  pp arity [] ^ " =\n   " ^
-  List.fold_right
-   (fun (id,ty,_) i -> id ^ " : " ^ pp ty names ^ 
-    (if i = "" then "\n" else "\n | ") ^ i)
-   cons ""
-;;
-
-(* ppobj obj  returns a string with describing the cic object obj in a syntax *)
-(* similar to the one used by Coq                                             *)
-let ppobj obj =
- let module C = Cic in
- let module U = UriManager in
-  match obj with
-    C.Definition (id, t1, t2, params) ->
-      "Definition of " ^ id ^
-      "(" ^
-      List.fold_right
-       (fun (_,x) i ->
-         List.fold_right
-          (fun x i ->
-            U.string_of_uri x ^ match i with "" -> "" | i' -> " " ^ i'
-          ) x "" ^ match i with "" -> "" | i' -> " " ^ i'
-       ) params "" ^ ")" ^
-      ":\n" ^ pp t1 [] ^ " : " ^ pp t2 []
-   | C.Axiom (id, ty, params) ->
-      "Axiom " ^ id ^ "(" ^
-      List.fold_right
-       (fun (_,x) i ->
-         List.fold_right
-          (fun x i ->
-            U.string_of_uri x ^ match i with "" -> "" | i' -> " " ^ i'
-          ) x "" ^ match i with "" -> "" | i' -> " " ^ i'
-       ) params "" ^
-      "):\n" ^ pp ty []
-   | C.Variable (name, ty) ->
-      "Variable " ^ name ^ ":\n" ^ pp ty []
-   | C.CurrentProof (name, conjectures, value, ty) ->
-      "Current Proof:\n" ^
-      List.fold_right
-       (fun (n, t) i -> "?" ^ (string_of_int n) ^ ": " ^ pp t [] ^ "\n" ^ i)
-       conjectures "" ^
-      "\n" ^ pp value [] ^ " : " ^ pp ty [] 
-   | C.InductiveDefinition (l, params, nparams) ->
-      "Parameters = " ^
-      List.fold_right
-       (fun (_,x) i ->
-         List.fold_right
-          (fun x i ->
-            U.string_of_uri x ^ match i with "" -> "" | i' -> " " ^ i'
-          ) x "" ^ match i with "" -> "" | i' -> " " ^ i'
-       ) params "" ^ "\n" ^
-      "NParams = " ^ string_of_int nparams ^ "\n" ^
-      let names = List.rev (List.map (fun (n,_,_,_) -> C.Name n) l) in
-       List.fold_right (fun x i -> ppinductiveType x names ^ i) l ""
-;;
diff --git a/helm/interface/cicPp.mli b/helm/interface/cicPp.mli
deleted file mode 100644 (file)
index 1660799..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This module implements a very simple Coq-like pretty printer that, given   *)
-(* an object of cic (internal representation) returns a string describing the *)
-(* object in a syntax similar to that of coq                                  *)
-(*                                                                            *)
-(******************************************************************************)
-
-(* ppobj obj  returns a string with describing the cic object obj in a syntax *)
-(* similar to the one used by Coq                                             *)
-val ppobj : Cic.obj -> string
diff --git a/helm/interface/cicReduction.ml b/helm/interface/cicReduction.ml
deleted file mode 100644 (file)
index 6497cd3..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-exception CicReductionInternalError;;
-exception WrongUriToInductiveDefinition;;
-
-let fdebug = ref 1;;
-let debug t env s =
- let rec debug_aux t i =
-  let module C = Cic in
-  let module U = UriManager in
-   CicPp.ppobj (C.Variable ("DEBUG",
-    C.Prod (C.Name "-9", C.Const (U.uri_of_string "cic:/dummy-9",0),
-     C.Prod (C.Name "-8", C.Const (U.uri_of_string "cic:/dummy-8",0),
-      C.Prod (C.Name "-7", C.Const (U.uri_of_string "cic:/dummy-7",0),
-       C.Prod (C.Name "-6", C.Const (U.uri_of_string "cic:/dummy-6",0),
-        C.Prod (C.Name "-5", C.Const (U.uri_of_string "cic:/dummy-5",0),
-         C.Prod (C.Name "-4", C.Const (U.uri_of_string "cic:/dummy-4",0),
-          C.Prod (C.Name "-3", C.Const (U.uri_of_string "cic:/dummy-3",0),
-           C.Prod (C.Name "-2", C.Const (U.uri_of_string "cic:/dummy-2",0),
-            C.Prod (C.Name "-1", C.Const (U.uri_of_string "cic:/dummy-1",0),
-             t
-            )
-           )
-          )
-         )
-        )
-       )
-      )
-     )
-    )
-    )) ^ "\n" ^ i
- in
-  if !fdebug = 0 then
-   begin
-    print_endline (s ^ "\n" ^ List.fold_right debug_aux (t::env) "") ;
-    flush stdout
-   end
-;;
-
-exception Impossible of int;;
-exception ReferenceToDefinition;;
-exception ReferenceToAxiom;;
-exception ReferenceToVariable;;
-exception ReferenceToCurrentProof;;
-exception ReferenceToInductiveDefinition;;
-
-(* takes a well-typed term *)
-let whd =
- let rec whdaux l =
-  let module C = Cic in
-  let module S = CicSubstitution in
-   function
-      C.Rel _ as t -> if l = [] then t else C.Appl (t::l)
-    | C.Var _ as t -> if l = [] then t else C.Appl (t::l)
-    | C.Meta _ as t -> if l = [] then t else C.Appl (t::l)
-    | C.Sort _ as t -> t (* l should be empty *)
-    | C.Implicit as t -> t
-    | C.Cast (te,ty) -> whdaux l te  (*CSC E' GIUSTO BUTTARE IL CAST? *)
-    | C.Prod _ as t -> t (* l should be empty *)
-    | C.Lambda (name,s,t) as t' ->
-       (match l with
-           [] -> t'
-         | he::tl -> whdaux tl (S.subst he t)
-           (* when name is Anonimous the substitution should be superfluous *)
-       )
-    | C.Appl (he::tl) -> whdaux (tl@l) he
-    | C.Appl [] -> raise (Impossible 1)
-    | C.Const (uri,cookingsno) as t ->
-       (match CicCache.get_cooked_obj uri cookingsno with
-           C.Definition (_,body,_,_) -> whdaux l body
-         | C.Axiom _ -> if l = [] then t else C.Appl (t::l)
-         (*CSC: Prossima riga sbagliata: Var punta alle variabili, non Const *)
-         | C.Variable _ -> if l = [] then t else C.Appl (t::l)
-         | C.CurrentProof (_,_,body,_) -> whdaux l body
-         | C.InductiveDefinition _ -> raise ReferenceToInductiveDefinition
-       )
-    | C.Abst _ as t -> t (*CSC l should be empty ????? *)
-    | C.MutInd (uri,_,_) as t -> if l = [] then t else C.Appl (t::l)
-    | C.MutConstruct (uri,_,_,_) as t -> if l = [] then t else C.Appl (t::l)
-    | C.MutCase (mutind,cookingsno,i,_,term,pl) as t ->
-       let decofix =
-        function
-           C.CoFix (i,fl) as t ->
-            let (_,_,body) = List.nth fl i in
-             let body' =
-              let counter = ref (List.length fl) in
-               List.fold_right
-                (fun _ -> decr counter ; S.subst (C.CoFix (!counter,fl)))
-                fl
-                body
-             in
-              whdaux [] body'
-         | C.Appl (C.CoFix (i,fl) :: tl) ->
-            let (_,_,body) = List.nth fl i in
-             let body' =
-              let counter = ref (List.length fl) in
-               List.fold_right
-                (fun _ -> decr counter ; S.subst (C.CoFix (!counter,fl)))
-                fl
-                body
-             in
-              whdaux tl body'
-         | t -> t
-       in
-        (match decofix (whdaux [] term) with
-            C.MutConstruct (_,_,_,j) -> whdaux l (List.nth pl (j-1))
-          | C.Appl (C.MutConstruct (_,_,_,j) :: tl) ->
-             let (arity, r, num_ingredients) =
-              match CicCache.get_obj mutind with
-                 C.InductiveDefinition (tl,ingredients,r) ->
-                   let (_,_,arity,_) = List.nth tl i
-                   and num_ingredients =
-                    List.fold_right
-                     (fun (k,l) i ->
-                       if k < cookingsno then i + List.length l else i
-                     ) ingredients 0
-                   in
-                    (arity,r,num_ingredients)
-               | _ -> raise WrongUriToInductiveDefinition
-             in
-              let ts =
-               let num_to_eat = r + num_ingredients in
-                let rec eat_first =
-                 function
-                    (0,l) -> l
-                  | (n,he::tl) when n > 0 -> eat_first (n - 1, tl)
-                  | _ -> raise (Impossible 5)
-                in
-                 eat_first (num_to_eat,tl)
-              in
-               whdaux (ts@l) (List.nth pl (j-1))
-         | C.Abst _| C.Cast _ | C.Implicit ->
-            raise (Impossible 2) (* we don't trust our whd ;-) *)
-         | _ -> t
-       )
-    | C.Fix (i,fl) as t ->
-       let (_,recindex,_,body) = List.nth fl i in
-        let recparam =
-         try
-          Some (List.nth l recindex)
-         with
-          _ -> None
-        in
-         (match recparam with
-             Some recparam ->
-              (match whdaux [] recparam with
-                  C.MutConstruct _
-                | C.Appl ((C.MutConstruct _)::_) ->
-                   let body' =
-                    let counter = ref (List.length fl) in
-                     List.fold_right
-                      (fun _ -> decr counter ; S.subst (C.Fix (!counter,fl)))
-                      fl
-                      body
-                   in
-                    (* Possible optimization: substituting whd recparam in l *)
-                    whdaux l body'
-               | _ -> if l = [] then t else C.Appl (t::l)
-             )
-          | None -> if l = [] then t else C.Appl (t::l)
-         )
-    | C.CoFix (i,fl) as t ->
-       (*CSC vecchio codice
-       let (_,_,body) = List.nth fl i in
-        let body' =
-         let counter = ref (List.length fl) in
-          List.fold_right
-           (fun _ -> decr counter ; S.subst (C.CoFix (!counter,fl)))
-           fl
-           body
-        in
-         whdaux l body'
-       *)
-       if l = [] then t else C.Appl (t::l)
- in
-  whdaux []
-;;
-
-(* t1, t2 must be well-typed *)
-let are_convertible t1 t2 =
- let module U = UriManager in
- let rec aux t1 t2 =
-  debug t1 [t2] "PREWHD";
-  (* this trivial euristic cuts down the total time of about five times ;-) *)
-  (* this because most of the time t1 and t2 are "sintactically" the same   *)
-  if t1 = t2 then
-   true
-  else
-   begin
-    let module C = Cic in
-     let t1' = whd t1 
-     and t2' = whd t2 in
-     debug t1' [t2'] "POSTWHD";
-     (*if !fdebug = 0 then ignore(Unix.system "read" );*)
-      match (t1',t2') with
-         (C.Rel n1, C.Rel n2) -> n1 = n2
-       | (C.Var uri1, C.Var uri2) -> U.eq uri1 uri2
-       | (C.Meta n1, C.Meta n2) -> n1 = n2
-       | (C.Sort s1, C.Sort s2) -> true (*CSC da finire con gli universi *)
-       | (C.Prod (_,s1,t1), C.Prod(_,s2,t2)) ->
-          aux s1 s2 && aux t1 t2
-       | (C.Lambda (_,s1,t1), C.Lambda(_,s2,t2)) ->
-          aux s1 s2 && aux t1 t2
-       | (C.Appl l1, C.Appl l2) ->
-          (try
-            List.fold_right2 (fun  x y b -> aux x y && b) l1 l2 true 
-           with
-            Invalid_argument _ -> false
-          )
-       | (C.Const (uri1,_), C.Const (uri2,_)) ->
-           (*CSC: questo commento e' chiaro o delirante? Io lo sto scrivendo *)
-           (*CSC: mentre sono delirante, quindi ...                          *)
-           (* WARNING: it is really important that the two cookingsno are not *)
-           (* checked for equality. This allows not to cook an object with no *)
-           (* ingredients only to update the cookingsno. E.g: if a term t has *)
-           (* a reference to a term t1 which does not depend on any variable  *)
-           (* and t1 depends on a term t2 (that can't depend on any variable  *)
-           (* because of t1), then t1 cooked at every level could be the same *)
-           (* as t1 cooked at level 0. Doing so, t2 will be extended in t     *)
-           (* with cookingsno 0 and not 2. But this will not cause any trouble*)
-           (* if here we don't check that the two cookingsno are equal.       *)
-           U.eq uri1 uri2
-       | (C.MutInd (uri1,k1,i1), C.MutInd (uri2,k2,i2)) ->
-           (* WARNIG: see the previous warning *)
-           U.eq uri1 uri2 && i1 = i2
-       | (C.MutConstruct (uri1,_,i1,j1), C.MutConstruct (uri2,_,i2,j2)) ->
-           (* WARNIG: see the previous warning *)
-           U.eq uri1 uri2 && i1 = i2 && j1 = j2
-       | (C.MutCase (uri1,_,i1,outtype1,term1,pl1),
-          C.MutCase (uri2,_,i2,outtype2,term2,pl2)) -> 
-           (* WARNIG: see the previous warning *)
-           (* aux outtype1 outtype2 should be true if aux pl1 pl2 *)
-           U.eq uri1 uri2 && i1 = i2 && aux outtype1 outtype2 &&
-            aux term1 term2 &&
-            List.fold_right2 (fun x y b -> b && aux x y) pl1 pl2 true
-       | (C.Fix (i1,fl1), C.Fix (i2,fl2)) ->
-          i1 = i2 &&
-           List.fold_right2
-            (fun (_,recindex1,ty1,bo1) (_,recindex2,ty2,bo2) b ->
-              b && recindex1 = recindex2 && aux ty1 ty2 && aux bo1 bo2)
-            fl1 fl2 true
-       | (C.CoFix (i1,fl1), C.CoFix (i2,fl2)) ->
-          i1 = i2 &&
-           List.fold_right2
-            (fun (_,ty1,bo1) (_,ty2,bo2) b ->
-              b && aux ty1 ty2 && aux bo1 bo2)
-            fl1 fl2 true
-       | (C.Abst _, _) | (_, C.Abst _) | (C.Cast _, _) | (_, C.Cast _)
-       | (C.Implicit, _) | (_, C.Implicit) ->
-          raise (Impossible 3) (* we don't trust our whd ;-) *)
-       | (_,_) -> false
-   end
- in
-  aux t1 t2
-;;
diff --git a/helm/interface/cicReduction.mli b/helm/interface/cicReduction.mli
deleted file mode 100644 (file)
index bcc91b0..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-exception WrongUriToInductiveDefinition
-exception ReferenceToDefinition
-exception ReferenceToAxiom
-exception ReferenceToVariable
-exception ReferenceToCurrentProof
-exception ReferenceToInductiveDefinition
-val fdebug : int ref
-val whd : Cic.term -> Cic.term
-val are_convertible : Cic.term -> Cic.term -> bool
diff --git a/helm/interface/cicSubstitution.ml b/helm/interface/cicSubstitution.ml
deleted file mode 100644 (file)
index e69a8a9..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-let lift n =
- let rec liftaux k =
-  let module C = Cic in
-   function
-      C.Rel m ->
-       if m < k then
-        C.Rel m
-       else
-        C.Rel (m + n)
-    | C.Var _  as t -> t
-    | C.Meta _ as t -> t
-    | C.Sort _ as t -> t
-    | C.Implicit as t -> t
-    | C.Cast (te,ty) -> C.Cast (liftaux k te, liftaux k ty)
-    | C.Prod (n,s,t) -> C.Prod (n, liftaux k s, liftaux (k+1) t)
-    | C.Lambda (n,s,t) -> C.Lambda (n, liftaux k s, liftaux (k+1) t)
-    | C.Appl l -> C.Appl (List.map (liftaux k) l)
-    | C.Const _ as t -> t
-    | C.Abst _  as t -> t
-    | C.MutInd _ as t -> t
-    | C.MutConstruct _ as t -> t
-    | C.MutCase (sp,cookingsno,i,outty,t,pl) ->
-       C.MutCase (sp, cookingsno, i, liftaux k outty, liftaux k t,
-        List.map (liftaux k) pl)
-    | C.Fix (i, fl) ->
-       let len = List.length fl in
-       let liftedfl =
-        List.map
-         (fun (name, i, ty, bo) -> (name, i, liftaux k ty, liftaux (k+len) bo))
-          fl
-       in
-        C.Fix (i, liftedfl)
-    | C.CoFix (i, fl) ->
-       let len = List.length fl in
-       let liftedfl =
-        List.map
-         (fun (name, ty, bo) -> (name, liftaux k ty, liftaux (k+len) bo))
-          fl
-       in
-        C.CoFix (i, liftedfl)
- in
-  liftaux 1
-;;
-
-let subst arg =
- let rec substaux k =
-  let module C = Cic in
-   function
-      C.Rel n as t ->
-       (match n with
-           n when n = k -> lift (k - 1) arg
-         | n when n < k -> t
-         | _            -> C.Rel (n - 1)
-       )
-    | C.Var _ as t  -> t
-    | C.Meta _ as t -> t
-    | C.Sort _ as t -> t
-    | C.Implicit as t -> t
-    | C.Cast (te,ty) -> C.Cast (substaux k te, substaux k ty) (*CSC ??? *)
-    | C.Prod (n,s,t) -> C.Prod (n, substaux k s, substaux (k + 1) t)
-    | C.Lambda (n,s,t) -> C.Lambda (n, substaux k s, substaux (k + 1) t)
-    | C.Appl l -> C.Appl (List.map (substaux k) l)
-    | C.Const _ as t -> t
-    | C.Abst _ as t -> t
-    | C.MutInd _ as t -> t
-    | C.MutConstruct _ as t -> t
-    | C.MutCase (sp,cookingsno,i,outt,t,pl) ->
-       C.MutCase (sp,cookingsno,i,substaux k outt, substaux k t,
-        List.map (substaux k) pl)
-    | C.Fix (i,fl) ->
-       let len = List.length fl in
-       let substitutedfl =
-        List.map
-         (fun (name,i,ty,bo) -> (name, i, substaux k ty, substaux (k+len) bo))
-          fl
-       in
-        C.Fix (i, substitutedfl)
-    | C.CoFix (i,fl) ->
-       let len = List.length fl in
-       let substitutedfl =
-        List.map
-         (fun (name,ty,bo) -> (name, substaux k ty, substaux (k+len) bo))
-          fl
-       in
-        C.CoFix (i, substitutedfl)
- in
-  substaux 1
-;;
-
-let undebrujin_inductive_def uri =
- function
-    Cic.InductiveDefinition (dl,params,n_ind_params) ->
-     let dl' =
-      List.map
-       (fun (name,inductive,arity,constructors) ->
-         let constructors' =
-          List.map
-           (fun (name,ty,r) ->
-             let ty' =
-              let counter = ref (List.length dl) in
-               List.fold_right
-                (fun _ ->
-                  decr counter ;
-                  subst (Cic.MutInd (uri,0,!counter))
-                ) dl ty
-             in
-              (name,ty',r)
-           ) constructors
-         in
-          (name,inductive,arity,constructors')
-       ) dl
-      in
-       Cic.InductiveDefinition (dl', params, n_ind_params)
-  | obj -> obj
-;;
diff --git a/helm/interface/cicSubstitution.mli b/helm/interface/cicSubstitution.mli
deleted file mode 100644 (file)
index f83cf05..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-val lift : int -> Cic.term -> Cic.term
-val subst : Cic.term -> Cic.term -> Cic.term
-val undebrujin_inductive_def : UriManager.uri -> Cic.obj -> Cic.obj
diff --git a/helm/interface/cicTypeChecker.ml b/helm/interface/cicTypeChecker.ml
deleted file mode 100644 (file)
index 6343393..0000000
+++ /dev/null
@@ -1,1200 +0,0 @@
-exception NotImplemented;;
-exception Impossible;;
-exception NotWellTyped of string;;
-exception WrongUriToConstant of string;;
-exception WrongUriToVariable of string;;
-exception WrongUriToMutualInductiveDefinitions of string;;
-exception ListTooShort;;
-exception NotPositiveOccurrences of string;;
-exception NotWellFormedTypeOfInductiveConstructor of string;;
-exception WrongRequiredArgument of string;;
-
-let fdebug = ref 0;;
-let debug t env =
- let rec debug_aux t i =
-  let module C = Cic in
-  let module U = UriManager in
-   CicPp.ppobj (C.Variable ("DEBUG",
-    C.Prod (C.Name "-15", C.Const (U.uri_of_string "cic:/dummy-15",0),
-    C.Prod (C.Name "-14", C.Const (U.uri_of_string "cic:/dummy-14",0),
-    C.Prod (C.Name "-13", C.Const (U.uri_of_string "cic:/dummy-13",0),
-    C.Prod (C.Name "-12", C.Const (U.uri_of_string "cic:/dummy-12",0),
-    C.Prod (C.Name "-11", C.Const (U.uri_of_string "cic:/dummy-11",0),
-    C.Prod (C.Name "-10", C.Const (U.uri_of_string "cic:/dummy-10",0),
-    C.Prod (C.Name "-9", C.Const (U.uri_of_string "cic:/dummy-9",0),
-    C.Prod (C.Name "-8", C.Const (U.uri_of_string "cic:/dummy-8",0),
-    C.Prod (C.Name "-7", C.Const (U.uri_of_string "cic:/dummy-7",0),
-    C.Prod (C.Name "-6", C.Const (U.uri_of_string "cic:/dummy-6",0),
-     C.Prod (C.Name "-5", C.Const (U.uri_of_string "cic:/dummy-5",0),
-      C.Prod (C.Name "-4", C.Const (U.uri_of_string "cic:/dummy-4",0),
-       C.Prod (C.Name "-3", C.Const (U.uri_of_string "cic:/dummy-3",0),
-        C.Prod (C.Name "-2", C.Const (U.uri_of_string "cic:/dummy-2",0),
-         C.Prod (C.Name "-1", C.Const (U.uri_of_string "cic:/dummy-1",0),
-          t
-         )
-        )
-       )
-      )
-     )
-    )
-    )
-    )
-    )))))))
-    )) ^ "\n" ^ i
- in
-  if !fdebug = 0 then
-   raise (NotWellTyped ("\n" ^ List.fold_right debug_aux (t::env) ""))
-   (*print_endline ("\n" ^ List.fold_right debug_aux (t::env) "") ; flush stdout*)
-;;
-
-let rec split l n =
- match (l,n) with
-    (l,0) -> ([], l)
-  | (he::tl, n) -> let (l1,l2) = split tl (n-1) in (he::l1,l2)
-  | (_,_) -> raise ListTooShort
-;;
-
-exception CicCacheError;;
-
-let rec cooked_type_of_constant uri cookingsno =
- let module C = Cic in
- let module R = CicReduction in
- let module U = UriManager in
-  let cobj =
-   match CicCache.is_type_checked uri cookingsno with
-      CicCache.CheckedObj cobj -> cobj
-    | CicCache.UncheckedObj uobj ->
-       (* let's typecheck the uncooked obj *)
-       (match uobj with
-           C.Definition (_,te,ty,_) ->
-             let _ = type_of ty in
-              if not (R.are_convertible (type_of te) ty) then
-               raise (NotWellTyped ("Constant " ^ (U.string_of_uri uri)))
-         | C.Axiom (_,ty,_) ->
-           (* only to check that ty is well-typed *)
-           let _ = type_of ty in ()
-         | C.CurrentProof (_,_,te,ty) ->
-             let _ = type_of ty in
-              if not (R.are_convertible (type_of te) ty) then
-               raise (NotWellTyped ("CurrentProof" ^ (U.string_of_uri uri)))
-         | _ -> raise (WrongUriToConstant (U.string_of_uri uri))
-       ) ;
-       CicCache.set_type_checking_info uri ;
-       match CicCache.is_type_checked uri cookingsno with
-          CicCache.CheckedObj cobj -> cobj
-        | CicCache.UncheckedObj _ -> raise CicCacheError
-  in
-   match cobj with
-      C.Definition (_,_,ty,_) -> ty
-    | C.Axiom (_,ty,_) -> ty
-    | C.CurrentProof (_,_,_,ty) -> ty
-    | _ -> raise (WrongUriToConstant (U.string_of_uri uri))
-
-and type_of_variable uri =
- let module C = Cic in
- let module R = CicReduction in
-  (* 0 because a variable is never cooked => no partial cooking at one level *)
-  match CicCache.is_type_checked uri 0 with
-     CicCache.CheckedObj (C.Variable (_,ty)) -> ty
-   | CicCache.UncheckedObj (C.Variable (_,ty)) ->
-      (* only to check that ty is well-typed *)
-      let _ = type_of ty in
-       CicCache.set_type_checking_info uri ;
-       ty
-   |  _ -> raise (WrongUriToVariable (UriManager.string_of_uri uri))
-
-and does_not_occur n nn te =
- let module C = Cic in
-   (*CSC: whd sembra essere superflua perche' un caso in cui l'occorrenza *)
-   (*CSC: venga mangiata durante la whd sembra presentare problemi di *)
-   (*CSC: universi                                                    *)
-   match CicReduction.whd te with
-      C.Rel m when m > n && m <= nn -> false
-    | C.Rel _
-    | C.Var _
-    | C.Meta _
-    | C.Sort _
-    | C.Implicit -> true
-    | C.Cast (te,ty) -> does_not_occur n nn te && does_not_occur n nn ty
-    | C.Prod (_,so,dest) ->
-       does_not_occur n nn so && does_not_occur (n + 1) (nn + 1) dest
-    | C.Lambda (_,so,dest) ->
-       does_not_occur n nn so && does_not_occur (n + 1) (nn + 1) dest
-    | C.Appl l ->
-       List.fold_right (fun x i -> i && does_not_occur n nn x) l true
-    | C.Const _
-    | C.Abst _
-    | C.MutInd _
-    | C.MutConstruct _ -> true
-    | C.MutCase (_,_,_,out,te,pl) ->
-       does_not_occur n nn out && does_not_occur n nn te &&
-        List.fold_right (fun x i -> i && does_not_occur n nn x) pl true
-    | C.Fix (_,fl) ->
-       let len = List.length fl in
-        let n_plus_len = n + len in
-        let nn_plus_len = nn + len in
-         List.fold_right
-          (fun (_,_,ty,bo) i ->
-            i && does_not_occur n_plus_len nn_plus_len ty &&
-            does_not_occur n_plus_len nn_plus_len bo
-          ) fl true
-    | C.CoFix (_,fl) ->
-       let len = List.length fl in
-        let n_plus_len = n + len in
-        let nn_plus_len = nn + len in
-         List.fold_right
-          (fun (_,ty,bo) i ->
-            i && does_not_occur n_plus_len nn_plus_len ty &&
-            does_not_occur n_plus_len nn_plus_len bo
-          ) fl true
-
-(*CSC l'indice x dei tipi induttivi e' t.c. n < x <= nn *)
-(*CSC questa funzione e' simile alla are_all_occurrences_positive, ma fa *)
-(*CSC dei controlli leggermente diversi. Viene invocata solamente dalla  *)
-(*CSC strictly_positive                                                  *)
-(*CSC definizione (giusta???) tratta dalla mail di Hugo ;-)              *)
-and weakly_positive n nn uri te =
- let module C = Cic in
-  (*CSC mettere in cicSubstitution *)
-  let rec subst_inductive_type_with_dummy_rel =
-   function
-      C.MutInd (uri',_,0) when UriManager.eq uri' uri ->
-       C.Rel 0 (* dummy rel *)
-    | C.Appl ((C.MutInd (uri',_,0))::tl) when UriManager.eq uri' uri ->
-       C.Rel 0 (* dummy rel *)
-    | C.Cast (te,ty) -> subst_inductive_type_with_dummy_rel te
-    | C.Prod (name,so,ta) ->
-       C.Prod (name, subst_inductive_type_with_dummy_rel so,
-        subst_inductive_type_with_dummy_rel ta)
-    | C.Lambda (name,so,ta) ->
-       C.Lambda (name, subst_inductive_type_with_dummy_rel so,
-        subst_inductive_type_with_dummy_rel ta)
-    | C.Appl tl ->
-       C.Appl (List.map subst_inductive_type_with_dummy_rel tl)
-    | C.MutCase (uri,cookingsno,i,outtype,term,pl) ->
-       C.MutCase (uri,cookingsno,i,
-        subst_inductive_type_with_dummy_rel outtype,
-        subst_inductive_type_with_dummy_rel term,
-        List.map subst_inductive_type_with_dummy_rel pl)
-    | C.Fix (i,fl) ->
-       C.Fix (i,List.map (fun (name,i,ty,bo) -> (name,i,
-        subst_inductive_type_with_dummy_rel ty,
-        subst_inductive_type_with_dummy_rel bo)) fl)
-    | C.CoFix (i,fl) ->
-       C.CoFix (i,List.map (fun (name,ty,bo) -> (name,
-        subst_inductive_type_with_dummy_rel ty,
-        subst_inductive_type_with_dummy_rel bo)) fl)
-    | t -> t
-  in
-  match CicReduction.whd te with
-     C.Appl ((C.MutInd (uri',_,0))::tl) when UriManager.eq uri' uri -> true
-   | C.MutInd (uri',_,0) when UriManager.eq uri' uri -> true
-   | C.Prod (C.Anonimous,source,dest) ->
-      strictly_positive n nn (subst_inductive_type_with_dummy_rel source) &&
-       weakly_positive (n + 1) (nn + 1) uri dest
-   | C.Prod (name,source,dest) when does_not_occur 0 n dest ->
-      (* dummy abstraction, so we behave as in the anonimous case *)
-      strictly_positive n nn (subst_inductive_type_with_dummy_rel source) &&
-       weakly_positive (n + 1) (nn + 1) uri dest
-   | C.Prod (_,source,dest) ->
-      does_not_occur n nn (subst_inductive_type_with_dummy_rel source) &&
-       weakly_positive (n + 1) (nn + 1) uri dest
-   | _ -> raise (NotWellFormedTypeOfInductiveConstructor ("Guess where the error is ;-)"))
-
-(* instantiate_parameters ps (x1:T1)...(xn:Tn)C                             *)
-(* returns ((x_|ps|:T_|ps|)...(xn:Tn)C){ps_1 / x1 ; ... ; ps_|ps| / x_|ps|} *)
-and instantiate_parameters params c =
- let module C = Cic in
-  match (c,params) with
-     (c,[]) -> c
-   | (C.Prod (_,_,ta), he::tl) ->
-       instantiate_parameters tl
-        (CicSubstitution.subst he ta)
-   | (C.Cast (te,_), _) -> instantiate_parameters params te
-   | (t,l) -> raise Impossible
-
-and strictly_positive n nn te =
- let module C = Cic in
- let module U = UriManager in
-  match CicReduction.whd te with
-     C.Rel _ -> true
-   | C.Cast (te,ty) ->
-      (*CSC: bisogna controllare ty????*)
-      strictly_positive n nn te
-   | C.Prod (_,so,ta) ->
-      does_not_occur n nn so &&
-       strictly_positive (n+1) (nn+1) ta
-   | C.Appl ((C.Rel m)::tl) when m > n && m <= nn ->
-      List.fold_right (fun x i -> i && does_not_occur n nn x) tl true
-   | C.Appl ((C.MutInd (uri,_,i))::tl) -> 
-      let (ok,paramsno,cl) =
-       match CicCache.get_obj uri with
-           C.InductiveDefinition (tl,_,paramsno) ->
-            let (_,_,_,cl) = List.nth tl i in
-             (List.length tl = 1, paramsno, cl)
-         | _ -> raise(WrongUriToMutualInductiveDefinitions(U.string_of_uri uri))
-      in
-       let (params,arguments) = split tl paramsno in
-       let lifted_params = List.map (CicSubstitution.lift 1) params in
-       let cl' =
-        List.map (fun (_,te,_) -> instantiate_parameters lifted_params te) cl
-       in
-        ok &&
-         List.fold_right
-          (fun x i -> i && does_not_occur n nn x)
-          arguments true &&
-         (*CSC: MEGAPATCH3 (sara' quella giusta?)*)
-         List.fold_right
-          (fun x i ->
-            i &&
-             weakly_positive (n+1) (nn+1) uri x
-          ) cl' true
-   | C.MutInd (uri,_,i) ->
-      (match CicCache.get_obj uri with
-          C.InductiveDefinition (tl,_,_) ->
-           List.length tl = 1
-        | _ -> raise (WrongUriToMutualInductiveDefinitions(U.string_of_uri uri))
-      )
-   | t -> does_not_occur n nn t
-
-(*CSC l'indice x dei tipi induttivi e' t.c. n < x <= nn *)
-and are_all_occurrences_positive uri indparamsno i n nn te =
- let module C = Cic in
-  match CicReduction.whd te with
-     C.Appl ((C.Rel m)::tl) when m = i ->
-      (*CSC: riscrivere fermandosi a 0 *)
-      (* let's check if the inductive type is applied at least to *)
-      (* indparamsno parameters                                   *)
-      let last =
-       List.fold_left
-        (fun k x ->
-          if k = 0 then 0
-          else
-           match CicReduction.whd x with
-              C.Rel m when m = n - (indparamsno - k) -> k - 1
-            | _ -> raise (WrongRequiredArgument (UriManager.string_of_uri uri))
-        ) indparamsno tl
-      in
-       if last = 0 then
-        List.fold_right (fun x i -> i && does_not_occur n nn x) tl true
-       else
-        raise (WrongRequiredArgument (UriManager.string_of_uri uri))
-   | C.Rel m when m = i ->
-      if indparamsno = 0 then
-       true
-      else
-       raise (WrongRequiredArgument (UriManager.string_of_uri uri))
-   | C.Prod (C.Anonimous,source,dest) ->
-      strictly_positive n nn source &&
-       are_all_occurrences_positive uri indparamsno (i+1) (n + 1) (nn + 1) dest
-   | C.Prod (name,source,dest) when does_not_occur 0 n dest ->
-      (* dummy abstraction, so we behave as in the anonimous case *)
-      strictly_positive n nn source &&
-       are_all_occurrences_positive uri indparamsno (i+1) (n + 1) (nn + 1) dest
-   | C.Prod (_,source,dest) ->
-      does_not_occur n nn source &&
-       are_all_occurrences_positive uri indparamsno (i+1) (n + 1) (nn + 1) dest
-   | _ -> raise (NotWellFormedTypeOfInductiveConstructor (UriManager.string_of_uri uri))
-
-(*CSC: cambiare il nome, torna unit! *)
-and cooked_mutual_inductive_defs uri =
- let module U = UriManager in
-  function
-     Cic.InductiveDefinition (itl, _, indparamsno) ->
-      (* let's check if the arity of the inductive types are well *)
-      (* formed                                                   *)
-      List.iter (fun (_,_,x,_) -> let _ = type_of x in ()) itl ;
-
-      (* let's check if the types of the inductive constructors  *)
-      (* are well formed.                                        *)
-      (* In order not to use type_of_aux we put the types of the *)
-      (* mutual inductive types at the head of the types of the  *)
-      (* constructors using Prods                                *)
-      (*CSC: piccola??? inefficienza                             *)
-      let len = List.length itl in
-       let _ =
-        List.fold_right
-         (fun (_,_,_,cl) i ->
-           List.iter
-            (fun (name,te,r) -> 
-              let augmented_term =
-               List.fold_right
-                (fun (name,_,ty,_) i -> Cic.Prod (Cic.Name name, ty, i))
-                itl te
-              in
-               let _ = type_of augmented_term in
-                (* let's check also the positivity conditions *)
-                if not (are_all_occurrences_positive uri indparamsno i 0 len te)
-                then
-                 raise (NotPositiveOccurrences (U.string_of_uri uri))
-                else
-                 match !r with
-                    Some _ -> raise Impossible
-                  | None -> r := Some (recursive_args 0 len te)
-            ) cl ;
-           (i + 1)
-        ) itl 1
-       in
-        ()
-   | _ ->
-     raise (WrongUriToMutualInductiveDefinitions (U.string_of_uri uri))
-
-and cooked_type_of_mutual_inductive_defs uri cookingsno i =
- let module C = Cic in
- let module R = CicReduction in
- let module U = UriManager in
-  let cobj =
-   match CicCache.is_type_checked uri cookingsno with
-      CicCache.CheckedObj cobj -> cobj
-    | CicCache.UncheckedObj uobj ->
-       cooked_mutual_inductive_defs uri uobj ;
-       CicCache.set_type_checking_info uri ;
-       (match CicCache.is_type_checked uri cookingsno with
-          CicCache.CheckedObj cobj -> cobj
-        | CicCache.UncheckedObj _ -> raise CicCacheError
-       )
-  in
-   match cobj with
-      C.InductiveDefinition (dl,_,_) ->
-       let (_,_,arity,_) = List.nth dl i in
-        arity
-    | _ -> raise (WrongUriToMutualInductiveDefinitions (U.string_of_uri uri))
-
-and cooked_type_of_mutual_inductive_constr uri cookingsno i j =
- let module C = Cic in
- let module R = CicReduction in
- let module U = UriManager in
-  let cobj =
-   match CicCache.is_type_checked uri cookingsno with
-      CicCache.CheckedObj cobj -> cobj
-    | CicCache.UncheckedObj uobj ->
-       cooked_mutual_inductive_defs uri uobj ;
-       CicCache.set_type_checking_info uri ;
-       (match CicCache.is_type_checked uri cookingsno with
-          CicCache.CheckedObj cobj -> cobj
-        | CicCache.UncheckedObj _ -> raise CicCacheError
-       )
-  in
-   match cobj with
-      C.InductiveDefinition (dl,_,_) ->
-       let (_,_,_,cl) = List.nth dl i in
-        let (_,ty,_) = List.nth cl (j-1) in
-         ty
-    | _ -> raise (WrongUriToMutualInductiveDefinitions (U.string_of_uri uri))
-
-and recursive_args n nn te =
- let module C = Cic in
-  match CicReduction.whd te with
-     C.Rel _ -> []
-   | C.Var _
-   | C.Meta _
-   | C.Sort _
-   | C.Implicit
-   | C.Cast _ (*CSC ??? *) -> raise Impossible (* due to type-checking *)
-   | C.Prod (_,so,de) ->
-      (not (does_not_occur n nn so))::(recursive_args (n+1) (nn + 1) de)
-   | C.Lambda _ -> raise Impossible (* due to type-checking *)
-   | C.Appl _ -> []
-   | C.Const _
-   | C.Abst _ -> raise Impossible
-   | C.MutInd _
-   | C.MutConstruct _
-   | C.MutCase _
-   | C.Fix _
-   | C.CoFix _ -> raise Impossible (* due to type-checking *)
-
-and get_new_safes p c rl safes n nn x =
- let module C = Cic in
- let module U = UriManager in
- let module R = CicReduction in
-  match (R.whd c, R.whd p, rl) with
-     (C.Prod (_,_,ta1), C.Lambda (_,_,ta2), b::tl) ->
-       (* we are sure that the two sources are convertible because we *)
-       (* have just checked this. So let's go along ...               *)
-       let safes' =
-        List.map (fun x -> x + 1) safes
-       in
-        let safes'' =
-         if b then 1::safes' else safes'
-        in
-         get_new_safes ta2 ta1 tl safes'' (n+1) (nn+1) (x+1)
-   | (C.MutInd _, e, []) -> (e,safes,n,nn,x)
-   | (C.Appl _, e, []) -> (e,safes,n,nn,x)
-   | (_,_,_) -> raise Impossible
-
-and eat_prods n te =
- let module C = Cic in
- let module R = CicReduction in
-  match (n, R.whd te) with
-     (0, _) -> te
-   | (n, C.Prod (_,_,ta)) when n > 0 -> eat_prods (n - 1) ta
-   | (_, _) -> raise Impossible
-
-and eat_lambdas n te =
- let module C = Cic in
- let module R = CicReduction in
-  match (n, R.whd te) with
-     (0, _) -> (te, 0)
-   | (n, C.Lambda (_,_,ta)) when n > 0 ->
-      let (te, k) = eat_lambdas (n - 1) ta in
-       (te, k + 1)
-   | (_, _) -> raise Impossible
-
-(*CSC: Tutto quello che segue e' l'intuzione di luca ;-) *)
-and check_is_really_smaller_arg n nn kl x safes te =
- (*CSC: forse la whd si puo' fare solo quando serve veramente. *)
- (*CSC: cfr guarded_by_destructors                             *)
- let module C = Cic in
- let module U = UriManager in
- match CicReduction.whd te with
-     C.Rel m when List.mem m safes -> true
-   | C.Rel _ -> false
-   | C.Var _
-   | C.Meta _
-   | C.Sort _
-   | C.Implicit 
-   | C.Cast _
-(*   | C.Cast (te,ty) ->
-      check_is_really_smaller_arg n nn kl x safes te &&
-       check_is_really_smaller_arg n nn kl x safes ty*)
-(*   | C.Prod (_,so,ta) ->
-      check_is_really_smaller_arg n nn kl x safes so &&
-       check_is_really_smaller_arg (n+1) (nn+1) kl (x+1)
-        (List.map (fun x -> x + 1) safes) ta*)
-   | C.Prod _ -> raise Impossible
-   | C.Lambda (_,so,ta) ->
-      check_is_really_smaller_arg n nn kl x safes so &&
-       check_is_really_smaller_arg (n+1) (nn+1) kl (x+1)
-        (List.map (fun x -> x + 1) safes) ta
-   | C.Appl (he::_) ->
-      (*CSC: sulla coda ci vogliono dei controlli? secondo noi no, ma *)
-      (*CSC: solo perche' non abbiamo trovato controesempi            *)
-      check_is_really_smaller_arg n nn kl x safes he
-   | C.Appl [] -> raise Impossible
-   | C.Const _
-   | C.Abst _
-   | C.MutInd _ -> raise Impossible
-   | C.MutConstruct _ -> false
-   | C.MutCase (uri,_,i,outtype,term,pl) ->
-      (match term with
-          C.Rel m when List.mem m safes || m = x ->
-           let (isinductive,paramsno,cl) =
-            match CicCache.get_obj uri with
-               C.InductiveDefinition (tl,_,paramsno) ->
-                let (_,isinductive,_,cl) = List.nth tl i in
-                 let cl' =
-                  List.map (fun (id,ty,r) -> (id, eat_prods paramsno ty, r)) cl
-                 in
-                  (isinductive,paramsno,cl')
-             | _ ->
-               raise (WrongUriToMutualInductiveDefinitions(U.string_of_uri uri))
-           in
-            if not isinductive then
-              List.fold_right
-               (fun p i -> i && check_is_really_smaller_arg n nn kl x safes p)
-               pl true
-            else
-              List.fold_right
-               (fun (p,(_,c,rl)) i ->
-                 let rl' =
-                  match !rl with
-                     Some rl' ->
-                      let (_,rl'') = split rl' paramsno in
-                       rl''
-                   | None -> raise Impossible
-                 in
-                  let (e,safes',n',nn',x') =
-                   get_new_safes p c rl' safes n nn x
-                  in
-                   i &&
-                   check_is_really_smaller_arg n' nn' kl x' safes' e
-               ) (List.combine pl cl) true
-        | C.Appl ((C.Rel m)::tl) when List.mem m safes || m = x ->
-           let (isinductive,paramsno,cl) =
-            match CicCache.get_obj uri with
-               C.InductiveDefinition (tl,_,paramsno) ->
-                let (_,isinductive,_,cl) = List.nth tl i in
-                 let cl' =
-                  List.map (fun (id,ty,r) -> (id, eat_prods paramsno ty, r)) cl
-                 in
-                  (isinductive,paramsno,cl')
-             | _ ->
-               raise (WrongUriToMutualInductiveDefinitions(U.string_of_uri uri))
-           in
-            if not isinductive then
-              List.fold_right
-               (fun p i -> i && check_is_really_smaller_arg n nn kl x safes p)
-               pl true
-            else
-              (*CSC: supponiamo come prima che nessun controllo sia necessario*)
-              (*CSC: sugli argomenti di una applicazione                      *)
-              List.fold_right
-               (fun (p,(_,c,rl)) i ->
-                 let rl' =
-                  match !rl with
-                     Some rl' ->
-                      let (_,rl'') = split rl' paramsno in
-                       rl''
-                   | None -> raise Impossible
-                 in
-                  let (e, safes',n',nn',x') =
-                   get_new_safes p c rl' safes n nn x
-                  in
-                   i &&
-                   check_is_really_smaller_arg n' nn' kl x' safes' e
-               ) (List.combine pl cl) true
-        | _ ->
-          List.fold_right
-           (fun p i -> i && check_is_really_smaller_arg n nn kl x safes p)
-           pl true
-      )
-   | C.Fix (_, fl) ->
-      let len = List.length fl in
-       let n_plus_len = n + len
-       and nn_plus_len = nn + len
-       and x_plus_len = x + len
-       and safes' = List.map (fun x -> x + len) safes in
-        List.fold_right
-         (fun (_,_,ty,bo) i ->
-           i &&
-            check_is_really_smaller_arg n_plus_len nn_plus_len kl x_plus_len
-             safes' bo
-         ) fl true
-   | C.CoFix (_, fl) ->
-      let len = List.length fl in
-       let n_plus_len = n + len
-       and nn_plus_len = nn + len
-       and x_plus_len = x + len
-       and safes' = List.map (fun x -> x + len) safes in
-        List.fold_right
-         (fun (_,ty,bo) i ->
-           i &&
-            check_is_really_smaller_arg n_plus_len nn_plus_len kl x_plus_len
-             safes' bo
-         ) fl true
-
-and guarded_by_destructors n nn kl x safes =
- let module C = Cic in
- let module U = UriManager in
-  function
-     C.Rel m when m > n && m <= nn -> false
-   | C.Rel _
-   | C.Var _
-   | C.Meta _
-   | C.Sort _
-   | C.Implicit -> true
-   | C.Cast (te,ty) ->
-      guarded_by_destructors n nn kl x safes te &&
-       guarded_by_destructors n nn kl x safes ty
-   | C.Prod (_,so,ta) ->
-      guarded_by_destructors n nn kl x safes so &&
-       guarded_by_destructors (n+1) (nn+1) kl (x+1)
-        (List.map (fun x -> x + 1) safes) ta
-   | C.Lambda (_,so,ta) ->
-      guarded_by_destructors n nn kl x safes so &&
-       guarded_by_destructors (n+1) (nn+1) kl (x+1)
-        (List.map (fun x -> x + 1) safes) ta
-   | C.Appl ((C.Rel m)::tl) when m > n && m <= nn ->
-      let k = List.nth kl (m - n - 1) in
-       if not (List.length tl > k) then false
-       else
-        List.fold_right
-         (fun param i ->
-           i && guarded_by_destructors n nn kl x safes param
-         ) tl true &&
-         check_is_really_smaller_arg n nn kl x safes (List.nth tl k)
-   | C.Appl tl ->
-      List.fold_right (fun t i -> i && guarded_by_destructors n nn kl x safes t)
-       tl true
-   | C.Const _
-   | C.Abst _
-   | C.MutInd _
-   | C.MutConstruct _ -> true
-   | C.MutCase (uri,_,i,outtype,term,pl) ->
-      (match term with
-          C.Rel m when List.mem m safes || m = x ->
-           let (isinductive,paramsno,cl) =
-            match CicCache.get_obj uri with
-               C.InductiveDefinition (tl,_,paramsno) ->
-                let (_,isinductive,_,cl) = List.nth tl i in
-                 let cl' =
-                  List.map (fun (id,ty,r) -> (id, eat_prods paramsno ty, r)) cl
-                 in
-                  (isinductive,paramsno,cl')
-             | _ ->
-               raise (WrongUriToMutualInductiveDefinitions(U.string_of_uri uri))
-           in
-            if not isinductive then
-             guarded_by_destructors n nn kl x safes outtype &&
-              guarded_by_destructors n nn kl x safes term &&
-              (*CSC: manca ??? il controllo sul tipo di term? *)
-              List.fold_right
-               (fun p i -> i && guarded_by_destructors n nn kl x safes p)
-               pl true
-            else
-             guarded_by_destructors n nn kl x safes outtype &&
-              (*CSC: manca ??? il controllo sul tipo di term? *)
-              List.fold_right
-               (fun (p,(_,c,rl)) i ->
-                 let rl' =
-                  match !rl with
-                     Some rl' ->
-                      let (_,rl'') = split rl' paramsno in
-                       rl''
-                   | None -> raise Impossible
-                 in
-                  let (e,safes',n',nn',x') =
-                   get_new_safes p c rl' safes n nn x
-                  in
-                   i &&
-                   guarded_by_destructors n' nn' kl x' safes' e
-               ) (List.combine pl cl) true
-        | C.Appl ((C.Rel m)::tl) when List.mem m safes || m = x ->
-           let (isinductive,paramsno,cl) =
-            match CicCache.get_obj uri with
-               C.InductiveDefinition (tl,_,paramsno) ->
-                let (_,isinductive,_,cl) = List.nth tl i in
-                 let cl' =
-                  List.map (fun (id,ty,r) -> (id, eat_prods paramsno ty, r)) cl
-                 in
-                  (isinductive,paramsno,cl')
-             | _ ->
-               raise (WrongUriToMutualInductiveDefinitions(U.string_of_uri uri))
-           in
-            if not isinductive then
-             guarded_by_destructors n nn kl x safes outtype &&
-              guarded_by_destructors n nn kl x safes term &&
-              (*CSC: manca ??? il controllo sul tipo di term? *)
-              List.fold_right
-               (fun p i -> i && guarded_by_destructors n nn kl x safes p)
-               pl true
-            else
-             guarded_by_destructors n nn kl x safes outtype &&
-              (*CSC: manca ??? il controllo sul tipo di term? *)
-              List.fold_right
-               (fun t i -> i && guarded_by_destructors n nn kl x safes t)
-               tl true &&
-              List.fold_right
-               (fun (p,(_,c,rl)) i ->
-                 let rl' =
-                  match !rl with
-                     Some rl' ->
-                      let (_,rl'') = split rl' paramsno in
-                       rl''
-                   | None -> raise Impossible
-                 in
-                  let (e, safes',n',nn',x') =
-                   get_new_safes p c rl' safes n nn x
-                  in
-                   i &&
-                   guarded_by_destructors n' nn' kl x' safes' e
-               ) (List.combine pl cl) true
-        | _ ->
-          guarded_by_destructors n nn kl x safes outtype &&
-           guarded_by_destructors n nn kl x safes term &&
-           (*CSC: manca ??? il controllo sul tipo di term? *)
-           List.fold_right
-            (fun p i -> i && guarded_by_destructors n nn kl x safes p)
-            pl true
-      )
-   | C.Fix (_, fl) ->
-      let len = List.length fl in
-       let n_plus_len = n + len
-       and nn_plus_len = nn + len
-       and x_plus_len = x + len
-       and safes' = List.map (fun x -> x + len) safes in
-        List.fold_right
-         (fun (_,_,ty,bo) i ->
-           i && guarded_by_destructors n_plus_len nn_plus_len kl x_plus_len
-            safes' ty &&
-            guarded_by_destructors n_plus_len nn_plus_len kl x_plus_len
-             safes' bo
-         ) fl true
-   | C.CoFix (_, fl) ->
-      let len = List.length fl in
-       let n_plus_len = n + len
-       and nn_plus_len = nn + len
-       and x_plus_len = x + len
-       and safes' = List.map (fun x -> x + len) safes in
-        List.fold_right
-         (fun (_,ty,bo) i ->
-           i && guarded_by_destructors n_plus_len nn_plus_len kl x_plus_len
-            safes' ty &&
-            guarded_by_destructors n_plus_len nn_plus_len kl x_plus_len safes'
-             bo
-         ) fl true
-
-(*CSC h = 0 significa non ancora protetto *)
-and guarded_by_constructors n nn h =
- let module C = Cic in
-  function
-     C.Rel m when m > n && m <= nn -> h = 1
-   | C.Rel _
-   | C.Var _ 
-   | C.Meta _
-   | C.Sort _
-   | C.Implicit -> true (*CSC: ma alcuni sono impossibili!!!! vedi Prod *)
-   | C.Cast (te,ty) ->
-      guarded_by_constructors n nn h te &&
-       guarded_by_constructors n nn h ty
-   | C.Prod (_,so,de) ->
-      raise Impossible (* the term has just been type-checked *)
-   | C.Lambda (_,so,de) ->
-      does_not_occur n nn so &&
-       guarded_by_constructors (n + 1) (nn + 1) h de
-   | C.Appl ((C.Rel m)::tl) when m > n && m <= nn ->
-      h = 1 &&
-       List.fold_right (fun x i -> i && does_not_occur n nn x) tl true
-   | C.Appl ((C.MutConstruct (uri,cookingsno,i,j))::tl) ->
-      let (is_coinductive, rl) =
-       match CicCache.get_cooked_obj uri cookingsno with
-          C.InductiveDefinition (itl,_,_) ->
-           let (_,is_inductive,_,cl) = List.nth itl i in
-            let (_,cons,rrec_args) = List.nth cl (j - 1) in
-             (match !rrec_args with
-                 None -> raise Impossible
-               | Some rec_args -> (not is_inductive, rec_args)
-             )
-        | _ ->
-         raise (WrongUriToMutualInductiveDefinitions
-          (UriManager.string_of_uri uri))
-      in
-       is_coinductive &&
-       List.fold_right
-        (fun (x,r) i ->
-          i &&
-           if r then
-            guarded_by_constructors n nn 1 x
-           else
-            does_not_occur n nn x
-        ) (List.combine tl rl) true
-   | C.Appl l ->
-      List.fold_right (fun x i -> i && does_not_occur n nn x) l true
-   | C.Const _
-   | C.Abst _
-   | C.MutInd _ 
-   | C.MutConstruct _ -> true (*CSC: ma alcuni sono impossibili!!!! vedi Prod *)
-   | C.MutCase (_,_,_,out,te,pl) ->
-      let rec returns_a_coinductive =
-       function
-          (*CSC: per le regole di tipaggio, la chiamata ricorsiva verra' *)
-          (*CSC: effettata solo una volta, per mangiarsi l'astrazione    *)
-          (*CSC: non dummy                                               *)
-          C.Lambda (_,_,de) -> returns_a_coinductive de
-        | C.MutInd (uri,_,i) ->
-           (*CSC: definire una funzioncina per questo codice sempre replicato *)
-           (match CicCache.get_obj uri with
-               C.InductiveDefinition (itl,_,_) ->
-                let (_,is_inductive,_,_) = List.nth itl i in
-                 not is_inductive
-             | _ ->
-               raise (WrongUriToMutualInductiveDefinitions
-                (UriManager.string_of_uri uri))
-            )
-        (*CSC: bug nella prossima riga (manca la whd) *)
-        | C.Appl ((C.MutInd (uri,_,i))::_) ->
-           (match CicCache.get_obj uri with
-               C.InductiveDefinition (itl,_,_) ->
-                let (_,is_inductive,_,_) = List.nth itl i in
-                 not is_inductive
-             | _ ->
-               raise (WrongUriToMutualInductiveDefinitions
-                (UriManager.string_of_uri uri))
-            )
-        | _ -> false
-      in
-       does_not_occur n nn out &&
-        does_not_occur n nn te &&
-        if returns_a_coinductive out then
-         List.fold_right
-          (fun x i -> i && guarded_by_constructors n nn h x) pl true
-        else
-         List.fold_right (fun x i -> i && does_not_occur n nn x) pl true
-   | C.Fix (_,fl) ->
-      let len = List.length fl in
-       let n_plus_len = n + len
-       and nn_plus_len = nn + len in
-        List.fold_right
-         (fun (_,_,ty,bo) i ->
-           i && does_not_occur n_plus_len nn_plus_len ty &&
-            does_not_occur n_plus_len nn_plus_len bo
-         ) fl true
-   | C.CoFix (_,fl) ->
-      let len = List.length fl in
-       let n_plus_len = n + len
-       and nn_plus_len = nn + len in
-        List.fold_right
-         (fun (_,ty,bo) i ->
-           i && does_not_occur n_plus_len nn_plus_len ty &&
-            does_not_occur n_plus_len nn_plus_len bo
-         ) fl true
-
-and check_allowed_sort_elimination uri i need_dummy ind arity1 arity2 =
- let module C = Cic in
- let module U = UriManager in
-  match (CicReduction.whd arity1, CicReduction.whd arity2) with
-     (C.Prod (_,so1,de1), C.Prod (_,so2,de2))
-      when CicReduction.are_convertible so1 so2 ->
-       check_allowed_sort_elimination uri i need_dummy
-        (C.Appl [CicSubstitution.lift 1 ind ; C.Rel 1]) de1 de2
-   | (C.Sort C.Prop, C.Sort C.Prop) when need_dummy -> true
-   | (C.Sort C.Prop, C.Sort C.Set) when need_dummy ->
-       (match CicCache.get_obj uri with
-           C.InductiveDefinition (itl,_,_) ->
-            let (_,_,_,cl) = List.nth itl i in
-             (* is a singleton definition? *)
-             List.length cl = 1
-         | _ ->
-           raise (WrongUriToMutualInductiveDefinitions (U.string_of_uri uri))
-       )
-   | (C.Sort C.Set, C.Sort C.Prop) when need_dummy -> true
-   | (C.Sort C.Set, C.Sort C.Set) when need_dummy -> true
-   | (C.Sort C.Set, C.Sort C.Type) when need_dummy ->
-       (match CicCache.get_obj uri with
-           C.InductiveDefinition (itl,_,_) ->
-            let (_,_,_,cl) = List.nth itl i in
-             (* is a small inductive type? *)
-             (*CSC: ottimizzare calcolando staticamente *)
-             let rec is_small =
-              function
-                 C.Prod (_,so,de) ->
-                  let s = type_of so in
-                   (s = C.Sort C.Prop || s = C.Sort C.Set) &&
-                   is_small de
-               | _ -> true (*CSC: we trust the type-checker *)
-             in
-              List.fold_right (fun (_,x,_) i -> i && is_small x) cl true
-         | _ ->
-           raise (WrongUriToMutualInductiveDefinitions (U.string_of_uri uri))
-       )
-   | (C.Sort C.Type, C.Sort _) when need_dummy -> true
-   | (C.Sort C.Prop, C.Prod (_,so,ta)) when not need_dummy ->
-       let res = CicReduction.are_convertible so ind
-       in
-        res &&
-        (match CicReduction.whd ta with
-            C.Sort C.Prop -> true
-          | C.Sort C.Set ->
-             (match CicCache.get_obj uri with
-                 C.InductiveDefinition (itl,_,_) ->
-                  let (_,_,_,cl) = List.nth itl i in
-                   (* is a singleton definition? *)
-                   List.length cl = 1
-               | _ ->
-                 raise (WrongUriToMutualInductiveDefinitions
-                  (U.string_of_uri uri))
-             )
-          | _ -> false
-        )
-   | (C.Sort C.Set, C.Prod (_,so,ta)) when not need_dummy ->
-       let res = CicReduction.are_convertible so ind
-       in
-        res &&
-        (match CicReduction.whd ta with
-            C.Sort C.Prop
-          | C.Sort C.Set  -> true
-          | C.Sort C.Type ->
-             (match CicCache.get_obj uri with
-                 C.InductiveDefinition (itl,_,_) ->
-                  let (_,_,_,cl) = List.nth itl i in
-                   (* is a small inductive type? *)
-                   let rec is_small =
-                    function
-                       C.Prod (_,so,de) ->
-                        let s = type_of so in
-                         (s = C.Sort C.Prop || s = C.Sort C.Set) &&
-                         is_small de
-                     | _ -> true (*CSC: we trust the type-checker *)
-                   in
-                    List.fold_right (fun (_,x,_) i -> i && is_small x) cl true
-               | _ ->
-                 raise (WrongUriToMutualInductiveDefinitions
-                  (U.string_of_uri uri))
-             )
-          | _ -> raise Impossible
-        )
-   | (C.Sort C.Type, C.Prod (_,so,_)) when not need_dummy ->
-       CicReduction.are_convertible so ind
-   | (_,_) -> false
-  
-and type_of_branch argsno need_dummy outtype term constype =
- let module C = Cic in
- let module R = CicReduction in
-  match R.whd constype with
-     C.MutInd (_,_,_) ->
-      if need_dummy then
-       outtype
-      else
-       C.Appl [outtype ; term]
-   | C.Appl (C.MutInd (_,_,_)::tl) ->
-      let (_,arguments) = split tl argsno
-      in
-       if need_dummy && arguments = [] then
-        outtype
-       else
-        C.Appl (outtype::arguments@(if need_dummy then [] else [term]))
-   | C.Prod (name,so,de) ->
-      C.Prod (C.Name "pippo",so,type_of_branch argsno need_dummy 
-       (CicSubstitution.lift 1 outtype)
-       (C.Appl [CicSubstitution.lift 1 term ; C.Rel 1]) de)
-  | _ -> raise Impossible
-       
-and type_of t =
- let rec type_of_aux env =
-  let module C = Cic in
-  let module R = CicReduction in
-  let module S = CicSubstitution in
-  let module U = UriManager in
-   function
-      C.Rel n -> S.lift n (List.nth env (n - 1))
-    | C.Var uri ->
-      incr fdebug ;
-      let ty = type_of_variable uri in
-       decr fdebug ;
-       ty
-    | C.Meta n -> raise NotImplemented
-    | C.Sort s -> C.Sort C.Type (*CSC manca la gestione degli universi!!! *)
-    | C.Implicit -> raise Impossible
-    | C.Cast (te,ty) ->
-       let _ = type_of ty in
-        if R.are_convertible (type_of_aux env te) ty then ty
-        else raise (NotWellTyped "Cast")
-    | C.Prod (_,s,t) ->
-       let sort1 = type_of_aux env s
-       and sort2 = type_of_aux (s::env) t in
-        sort_of_prod (sort1,sort2)
-   | C.Lambda (n,s,t) ->
-       let sort1 = type_of_aux env s
-       and type2 = type_of_aux (s::env) t in
-        let sort2 = type_of_aux (s::env) type2 in
-         (* only to check if the product is well-typed *)
-         let _ = sort_of_prod (sort1,sort2) in
-          C.Prod (n,s,type2)
-   | C.Appl (he::tl) when List.length tl > 0 ->
-      let hetype = type_of_aux env he
-      and tlbody_and_type = List.map (fun x -> (x, type_of_aux env x)) tl in
-       (try
-        eat_prods hetype tlbody_and_type
-       with _ -> debug (C.Appl (he::tl)) env ; C.Implicit)
-   | C.Appl _ -> raise (NotWellTyped "Appl: no arguments")
-   | C.Const (uri,cookingsno) ->
-      incr fdebug ;
-      let cty = cooked_type_of_constant uri cookingsno in
-       decr fdebug ;
-       cty
-   | C.Abst _ -> raise Impossible
-   | C.MutInd (uri,cookingsno,i) ->
-      incr fdebug ;
-      let cty = cooked_type_of_mutual_inductive_defs uri cookingsno i in
-       decr fdebug ;
-       cty
-   | C.MutConstruct (uri,cookingsno,i,j) ->
-      let cty = cooked_type_of_mutual_inductive_constr uri cookingsno i j
-      in
-       cty
-   | C.MutCase (uri,cookingsno,i,outtype,term,pl) ->
-      let outsort = type_of_aux env outtype in
-      let (need_dummy, k) =
-       let rec guess_args t =
-        match decast t with
-           C.Sort _ -> (true, 0)
-         | C.Prod (_, s, t) ->
-            let (b, n) = guess_args t in
-             if n = 0 then
-              (* last prod before sort *)
-              match CicReduction.whd s with
-                 (*CSC vedi nota delirante su cookingsno in cicReduction.ml *)
-                 C.MutInd (uri',_,i') when U.eq uri' uri && i' = i -> (false, 1)
-               | C.Appl ((C.MutInd (uri',_,i')) :: _)
-                  when U.eq uri' uri && i' = i -> (false, 1)
-               | _ -> (true, 1)
-             else
-              (b, n + 1)
-         | _ -> raise (NotWellTyped "MutCase: outtype ill-formed")
-       in
-        (*CSC whd non serve dopo type_of_aux ? *)
-        let (b, k) = guess_args outsort in
-         if not b then (b, k - 1) else (b, k)
-      in
-      let (parameters, arguments) =
-        match R.whd (type_of_aux env term) with
-           (*CSC manca il caso dei CAST *)
-           C.MutInd (uri',_,i') ->
-            (*CSC vedi nota delirante sui cookingsno in cicReduction.ml*)
-            if U.eq uri uri' && i = i' then ([],[])
-            else raise (NotWellTyped ("MutCase: the term is of type " ^
-             (U.string_of_uri uri') ^ "," ^ string_of_int i' ^
-             " instead of type " ^ (U.string_of_uri uri') ^ "," ^
-             string_of_int i))
-         | C.Appl (C.MutInd (uri',_,i') :: tl) ->
-            if U.eq uri uri' && i = i' then split tl (List.length tl - k)
-            else raise (NotWellTyped ("MutCase: the term is of type " ^
-             (U.string_of_uri uri') ^ "," ^ string_of_int i' ^
-             " instead of type " ^ (U.string_of_uri uri) ^ "," ^
-             string_of_int i))
-         | _ -> raise (NotWellTyped "MutCase: the term is not an inductive one")
-      in
-       (* let's control if the sort elimination is allowed: [(I q1 ... qr)|B] *)
-       let sort_of_ind_type =
-        if parameters = [] then
-         C.MutInd (uri,cookingsno,i)
-        else
-         C.Appl ((C.MutInd (uri,cookingsno,i))::parameters)
-       in
-        if not (check_allowed_sort_elimination uri i need_dummy
-         sort_of_ind_type (type_of_aux env sort_of_ind_type) outsort)
-        then
-         raise (NotWellTyped "MutCase: not allowed sort elimination") ;
-
-        (* let's check if the type of branches are right *)
-        let (cl,parsno) =
-         match CicCache.get_cooked_obj uri cookingsno with
-            C.InductiveDefinition (tl,_,parsno) ->
-             let (_,_,_,cl) = List.nth tl i in (cl,parsno)
-          | _ ->
-            raise (WrongUriToMutualInductiveDefinitions (U.string_of_uri uri))
-        in
-         let (_,branches_ok) =
-          List.fold_left
-           (fun (j,b) (p,(_,c,_)) ->
-             let cons =
-              if parameters = [] then
-               (C.MutConstruct (uri,cookingsno,i,j))
-              else
-               (C.Appl (C.MutConstruct (uri,cookingsno,i,j)::parameters))
-             in
-              (j + 1, b &&
-               R.are_convertible (type_of_aux env p)
-                (type_of_branch parsno need_dummy outtype cons
-                  (type_of_aux env cons))
-              )
-           ) (1,true) (List.combine pl cl)
-         in
-          if not branches_ok then
-           raise (NotWellTyped "MutCase: wrong type of a branch") ;
-
-          if not need_dummy then
-           C.Appl ((outtype::arguments)@[term])
-          else if arguments = [] then
-           outtype
-          else
-           C.Appl (outtype::arguments)
-   | C.Fix (i,fl) ->
-      let types_times_kl =
-       List.rev
-        (List.map (fun (_,k,ty,_) -> let _ = type_of_aux env ty in (ty,k)) fl)
-      in
-      let (types,kl) = List.split types_times_kl in
-       let len = List.length types in
-        List.iter
-         (fun (name,x,ty,bo) ->
-           if (R.are_convertible (type_of_aux (types @ env) bo)
-            (CicSubstitution.lift len ty))
-           then
-            begin
-             let (m, eaten) = eat_lambdas (x + 1) bo in
-              (*let's control the guarded by destructors conditions D{f,k,x,M}*)
-              if not (guarded_by_destructors eaten (len + eaten) kl 1 [] m) then
-               raise (NotWellTyped "Fix: not guarded by destructors")
-            end
-           else
-            raise (NotWellTyped "Fix: ill-typed bodies")
-         ) fl ;
-      
-        (*CSC: controlli mancanti solo su D{f,k,x,M} *)
-        let (_,_,ty,_) = List.nth fl i in
-        ty
-   | C.CoFix (i,fl) ->
-      let types =
-       List.rev (List.map (fun (_,ty,_) -> let _ = type_of_aux env ty in ty) fl)
-      in
-       let len = List.length types in
-        List.iter
-         (fun (_,ty,bo) ->
-           if (R.are_convertible (type_of_aux (types @ env) bo)
-            (CicSubstitution.lift len ty))
-           then
-            begin
-             (* let's control the guarded by constructors conditions C{f,M} *)
-             if not (guarded_by_constructors 0 len 0 bo) then
-              raise (NotWellTyped "CoFix: not guarded by constructors")
-            end
-           else
-            raise (NotWellTyped "CoFix: ill-typed bodies")
-         ) fl ;
-      
-        let (_,ty,_) = List.nth fl i in
-         ty
-
- and decast =
-  let module C = Cic in
-   function
-      C.Cast (t,_) -> t
-    | t -> t
-
- and sort_of_prod (t1, t2) =
-  let module C = Cic in
-   match (decast t1, decast t2) with
-      (C.Sort s1, C.Sort s2)
-        when (s2 = C.Prop or s2 = C.Set) -> (* different from Coq manual!!! *)
-         C.Sort s2
-    | (C.Sort s1, C.Sort s2) -> C.Sort C.Type (*CSC manca la gestione degli universi!!! *)
-    | (_,_) -> raise (NotWellTyped "Prod")
-
- and eat_prods hetype =
-  (*CSC: siamo sicuri che le are_convertible non lavorino con termini non *)
-  (*CSC: cucinati                                                         *)
-  function
-     [] -> hetype
-   | (hete, hety)::tl ->
-    (match (CicReduction.whd hetype) with
-        Cic.Prod (n,s,t) ->
-         if CicReduction.are_convertible s hety then
-          (CicReduction.fdebug := -1 ;
-          eat_prods (CicSubstitution.subst hete t) tl
-          )
-         else
-          (
-          CicReduction.fdebug := 0 ;
-          let _ = CicReduction.are_convertible s hety in
-          debug hete [hety ; s] ;
-          raise (NotWellTyped "Appl: wrong parameter-type")
-)
-      | _ -> raise (NotWellTyped "Appl: wrong Prod-type")
-    )
- in
-  type_of_aux [] t
-;;
-
-let typecheck uri =
- let module C = Cic in
- let module R = CicReduction in
- let module U = UriManager in
-  match CicCache.is_type_checked uri 0 with
-     CicCache.CheckedObj _ -> ()
-   | CicCache.UncheckedObj uobj ->
-      (* let's typecheck the uncooked object *)
-      (match uobj with
-          C.Definition (_,te,ty,_) ->
-           let _ = type_of ty in
-            if not (R.are_convertible (type_of te ) ty) then
-             raise (NotWellTyped ("Constant " ^ (U.string_of_uri uri)))
-        | C.Axiom (_,ty,_) ->
-          (* only to check that ty is well-typed *)
-          let _ = type_of ty in ()
-        | C.CurrentProof (_,_,te,ty) ->
-           (*CSC [] wrong *)
-           let _ = type_of ty in
-            debug (type_of te) [] ;
-            if not (R.are_convertible (type_of te) ty) then
-             raise (NotWellTyped ("CurrentProof" ^ (U.string_of_uri uri)))
-        | C.Variable (_,ty) ->
-           (* only to check that ty is well-typed *)
-           (*CSC [] wrong *)
-           let _ = type_of ty in ()
-        | C.InductiveDefinition _ ->
-           cooked_mutual_inductive_defs uri uobj
-      ) ;
-      CicCache.set_type_checking_info uri
-;;
diff --git a/helm/interface/cicTypeChecker.mli b/helm/interface/cicTypeChecker.mli
deleted file mode 100644 (file)
index 21f4ab9..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-exception NotWellTyped of string
-exception WrongUriToConstant of string
-exception WrongUriToVariable of string
-exception WrongUriToMutualInductiveDefinitions of string
-exception ListTooShort
-exception NotPositiveOccurrences of string
-exception NotWellFormedTypeOfInductiveConstructor of string
-exception WrongRequiredArgument of string
-val typecheck : UriManager.uri -> unit
diff --git a/helm/interface/cicXPath.ml b/helm/interface/cicXPath.ml
deleted file mode 100644 (file)
index 2df9707..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 14/06/2000                                 *)
-(*                                                                            *)
-(*                                                                            *)
-(******************************************************************************)
-
-let get_annotation_from_term annterm =
- let module C = Cic in
-  match annterm with
-     C.ARel (_,ann,_,_)             -> ann
-   | C.AVar (_,ann,_)               -> ann
-   | C.AMeta (_,ann,_)              -> ann
-   | C.ASort (_,ann,_)              -> ann
-   | C.AImplicit (_,ann)            -> ann
-   | C.ACast (_,ann,_,_)            -> ann
-   | C.AProd (_,ann,_,_,_)          -> ann
-   | C.ALambda (_,ann,_,_,_)        -> ann
-   | C.AAppl (_,ann,_)              -> ann
-   | C.AConst (_,ann,_,_)           -> ann
-   | C.AAbst (_,ann,_)              -> ann
-   | C.AMutInd (_,ann,_,_,_)        -> ann
-   | C.AMutConstruct (_,ann,_,_,_,_)-> ann
-   | C.AMutCase (_,ann,_,_,_,_,_,_) -> ann
-   | C.AFix (_,ann,_,_)             -> ann
-   | C.ACoFix (_,ann,_,_)           -> ann
-;;
-
-let get_annotation_from_obj annobj =
- let module C = Cic in
-  match annobj with
-     C.ADefinition (_,ann,_,_,_,_)        -> ann
-   | C.AAxiom (_,ann,_,_,_)               -> ann
-   | C.AVariable (_,ann,_,_)              -> ann
-   | C.ACurrentProof (_,ann,_,_,_,_)      -> ann
-   | C.AInductiveDefinition (_,ann,_,_,_) -> ann
-;;
-
-exception IdUnknown of string;;
-
-let get_annotation (annobj,ids_to_targets) xpath =
- try
-  match Hashtbl.find ids_to_targets xpath with
-     Cic.Object annobj -> get_annotation_from_obj annobj
-   | Cic.Term annterm -> get_annotation_from_term annterm
- with
-  Not_found -> raise (IdUnknown xpath)
-;;
diff --git a/helm/interface/cicXPath.prima_degli_identificatori.ml b/helm/interface/cicXPath.prima_degli_identificatori.ml
deleted file mode 100644 (file)
index 8a69d1a..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 11/04/2000                                 *)
-(*                                                                            *)
-(*                                                                            *)
-(******************************************************************************)
-
-(* functions to parse an XPath to retrieve the annotation *)
-
-exception WrongXPath of string;;
-
-let rec get_annotation_of_inductiveFun f xpath =
- let module C = Cic in
-  match (xpath,f) with
-     1::tl,(_,_,ty,_) -> get_annotation_of_term ty tl
-   | 2::tl,(_,_,_,te) -> get_annotation_of_term te tl
-   | l,_ ->
-      raise (WrongXPath (List.fold_right (fun n i -> string_of_int n ^ i) l ""))
-
-and get_annotation_of_coinductiveFun f xpath =
- let module C = Cic in
-  match (xpath,f) with
-     1::tl,(_,ty,_) -> get_annotation_of_term ty tl
-   | 2::tl,(_,_,te) -> get_annotation_of_term te tl
-   | l,_ ->
-      raise (WrongXPath (List.fold_right (fun n i -> string_of_int n ^ i) l ""))
-
-and get_annotation_of_inductiveType ty xpath =
- let module C = Cic in
-  match (xpath,ty) with
-     1::tl,(_,_,arity,_) -> get_annotation_of_term arity tl
-   | n::tl,(_,_,_,cons) when n <= List.length cons + 1 ->
-      let (_,ty,_) = List.nth cons (n-2) in
-       get_annotation_of_term ty tl
-   | l,_ ->
-      raise (WrongXPath (List.fold_right (fun n i -> string_of_int n ^ i) l ""))
-
-and get_annotation_of_term term xpath =
- let module C = Cic in
-  match (xpath,term) with
-     [],C.ARel (_,ann,_,_) -> ann
-   | [],C.AVar (_,ann,_) -> ann
-   | [],C.AMeta (_,ann,_) -> ann
-   | [],C.ASort (_,ann,_) -> ann
-   | [],C.AImplicit (_,ann) -> ann
-   | [],C.ACast (_,ann,_,_) -> ann
-   | 1::tl,C.ACast (_,_,te,_) -> get_annotation_of_term te tl
-   | 2::tl,C.ACast (_,_,_,ty) -> get_annotation_of_term ty tl
-   | [],C.AProd (_,ann,_,_,_) -> ann
-   | 1::tl,C.AProd (_,_,_,so,_) -> get_annotation_of_term so tl
-   | 2::tl,C.AProd (_,_,_,_,ta) -> get_annotation_of_term ta tl
-   | [],C.ALambda (_,ann,_,_,_) -> ann
-   | 1::tl,C.ALambda (_,_,_,so,_) -> get_annotation_of_term so tl
-   | 2::tl,C.ALambda (_,_,_,_,ta) -> get_annotation_of_term ta tl
-   | [],C.AAppl (_,ann,_) -> ann
-   | n::tl,C.AAppl (_,_,l) when n <= List.length l ->
-      get_annotation_of_term (List.nth l (n-1)) tl
-   | [],C.AConst (_,ann,_,_) -> ann
-   | [],C.AAbst (_,ann,_) -> ann
-   | [],C.AMutInd (_,ann,_,_,_) -> ann
-   | [],C.AMutConstruct (_,ann,_,_,_,_) -> ann
-   | [],C.AMutCase (_,ann,_,_,_,_,_,_) -> ann
-   | 1::tl,C.AMutCase (_,_,_,_,_,outt,_,_) -> get_annotation_of_term outt tl
-   | 2::tl,C.AMutCase (_,_,_,_,_,_,te,_) -> get_annotation_of_term te tl
-   | n::tl,C.AMutCase (_,_,_,_,_,_,_,pl) when n <= List.length pl ->
-      get_annotation_of_term (List.nth pl (n-1)) tl
-   | [],C.AFix (_,ann,_,_) -> ann
-   | n::tl,C.AFix (_,_,_,fl) when n <= List.length fl ->
-      get_annotation_of_inductiveFun (List.nth fl (n-1)) tl
-   | [],C.ACoFix (_,ann,_,_) -> ann
-   | n::tl,C.ACoFix (_,_,_,fl) when n <= List.length fl ->
-      get_annotation_of_coinductiveFun (List.nth fl (n-1)) tl
-   | l,_ ->
-      raise (WrongXPath (List.fold_right (fun n i -> string_of_int n ^ i) l ""))
-;;
-
-let get_annotation (annobj,_) xpath =
- let module C = Cic in
-  match (xpath,annobj) with
-     [],C.ADefinition (_,ann,_,_,_,_) -> ann
-   | 1::tl,C.ADefinition (_,_,_,bo,_,_) -> get_annotation_of_term bo tl
-   | 2::tl,C.ADefinition (_,_,_,_,ty,_) -> get_annotation_of_term ty tl
-   | [],C.AAxiom (_,ann,_,_,_) -> ann
-   | 1::tl,C.AAxiom (_,_,_,ty,_) -> get_annotation_of_term ty tl
-   | [],C.AVariable (_,ann,_,_) -> ann
-   | 1::tl,C.AVariable (_,_,_,ty) -> get_annotation_of_term ty tl
-   | [],C.ACurrentProof (_,ann,_,_,_,_) -> ann
-   | n::tl,C.ACurrentProof (_,ann,_,conjs,_,_) when n <= List.length conjs ->
-      get_annotation_of_term (snd (List.nth conjs (n-1))) tl
-   | n::tl,C.ACurrentProof (_,ann,_,conjs,bo,_) when n = List.length conjs + 1 ->
-      get_annotation_of_term bo tl
-   | n::tl,C.ACurrentProof (_,ann,_,conjs,_,ty) when n = List.length conjs + 2 ->
-      get_annotation_of_term ty tl
-   | [],C.AInductiveDefinition (_,ann,_,_,_) -> ann
-   | n::tl,C.AInductiveDefinition (_,_,tys,_,_) when n <= List.length tys ->
-      get_annotation_of_inductiveType (List.nth tys (n-1)) tl
-   | l,_ ->
-      raise (WrongXPath (List.fold_right (fun n i -> string_of_int n ^ i) l ""))
-;;
diff --git a/helm/interface/configuration.ml b/helm/interface/configuration.ml
deleted file mode 100644 (file)
index 9a36cb3..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 06/05/2000                                 *)
-(*                                                                            *)
-(* This is the parser that reads the configuration file of helm               *)
-(*                                                                            *)
-(******************************************************************************)
-
-(* this should be the only hard coded constant *)
-let filename =
- let prefix =
-  try
-   Sys.getenv "HELM_CONFIGURATION_PREFIX"
-  with
-   Not_found -> ""
- in
-  prefix ^ "/local/etc/helm/configuration.xml";;
-
-exception Warnings;;
-
-class warner =
-  object 
-    method warn w =
-      print_endline ("WARNING: " ^ w) ;
-      (raise Warnings : unit)
-  end
-;;
-
-let xml_document () =
- let module Y = Pxp_yacc in
-  try 
-   let config = {Y.default_config with Y.warner = new warner} in
-    Y.parse_document_entity config (Y.from_file filename) Y.default_spec
-  with
-   e ->
-     print_endline (Pxp_types.string_of_exn e) ;
-     raise e
-;;
-
-exception Impossible;;
-
-let vars = Hashtbl.create 14;;
-
-(* resolve <value-of> tags and returns the string values of the variable tags *)
-let rec resolve =
- let module D = Pxp_document in
-  function
-     [] -> ""
-   | he::tl when he#node_type = D.T_element "value-of" ->
-      (match he#attribute "var" with
-          Pxp_types.Value var -> Hashtbl.find vars var
-        | _ -> raise Impossible
-      ) ^ resolve tl
-   | he::tl when he#node_type = D.T_data ->
-      he#data ^ resolve tl
-   | _ -> raise Impossible
-;;
-
-(* we trust the xml file to be valid because of the validating xml parser *)
-let _ =
- List.iter
-  (function
-      n ->
-       match n#node_type with
-          Pxp_document.T_element var ->
-           Hashtbl.add vars var (resolve (n#sub_nodes))
-        | _ -> raise Impossible
-  )
-  ((xml_document ())#root#sub_nodes)
-;;
-
-let helm_dir      = Hashtbl.find vars "helm_dir";;
-let dtd_dir       = Hashtbl.find vars "dtd_dir";;
-let servers_file  = Hashtbl.find vars "servers_file";;
-let uris_dbm      = Hashtbl.find vars "uris_dbm";;
-let dest          = Hashtbl.find vars "dest";;
-let indexname     = Hashtbl.find vars "indexname";;
-let tmpdir        = Hashtbl.find vars "tmpdir";;
-let helm_dir      = Hashtbl.find vars "helm_dir";;
-let getter_url    = Hashtbl.find vars "getter_url";;
-
-let _ = Hashtbl.clear vars;;
diff --git a/helm/interface/deannotate.ml b/helm/interface/deannotate.ml
deleted file mode 100644 (file)
index 658554f..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-let expect_possible_parameters = ref false;;
-
-exception NotExpectingPossibleParameters;;
-
-let rec deannotate_term =
- let module C = Cic in
-  function
-     C.ARel (_,_,n,_) -> C.Rel n
-   | C.AVar (_,_,uri) -> C.Var uri
-   | C.AMeta (_,_,n) -> C.Meta n
-   | C.ASort (_,_,s) -> C.Sort s
-   | C.AImplicit _ -> C.Implicit
-   | C.ACast (_,_,va,ty) -> C.Cast (deannotate_term va, deannotate_term ty)
-   | C.AProd (_,_,name,so,ta) ->
-      C.Prod (name, deannotate_term so, deannotate_term ta)
-   | C.ALambda (_,_,name,so,ta) ->
-      C.Lambda (name, deannotate_term so, deannotate_term ta)
-   | C.AAppl (_,_,l) -> C.Appl (List.map deannotate_term l)
-   | C.AConst (_,_,uri, cookingsno) -> C.Const (uri, cookingsno)
-   | C.AAbst (_,_,uri) -> C.Abst uri
-   | C.AMutInd (_,_,uri,cookingsno,i) -> C.MutInd (uri,cookingsno,i)
-   | C.AMutConstruct (_,_,uri,cookingsno,i,j) ->
-      C.MutConstruct (uri,cookingsno,i,j)
-   | C.AMutCase (_,_,uri,cookingsno,i,outtype,te,pl) ->
-      C.MutCase (uri,cookingsno,i,deannotate_term outtype,
-       deannotate_term te, List.map deannotate_term pl)
-   | C.AFix (_,_,funno,ifl) ->
-      C.Fix (funno, List.map deannotate_inductiveFun ifl)
-   | C.ACoFix (_,_,funno,ifl) ->
-      C.CoFix (funno, List.map deannotate_coinductiveFun ifl)
-
-and deannotate_inductiveFun (name,index,ty,bo) =
- (name, index, deannotate_term ty, deannotate_term bo)
-
-and deannotate_coinductiveFun (name,ty,bo) =
- (name, deannotate_term ty, deannotate_term bo)
-;;
-
-let deannotate_inductiveType (name, isinductive, arity, cons) =
- (name, isinductive, deannotate_term arity,
-  List.map (fun (id,ty,recs) -> (id,deannotate_term ty, recs)) cons)
-;;
-
-let deannotate_obj =
- let module C = Cic in
-  function
-     C.ADefinition (_, _, id, bo, ty, params) ->
-      (match params with
-          C.Possible params ->
-           if !expect_possible_parameters then
-            C.Definition (id, deannotate_term bo, deannotate_term ty, params)
-           else
-            raise NotExpectingPossibleParameters
-        | C.Actual params ->
-           C.Definition (id, deannotate_term bo, deannotate_term ty, params)
-      )
-   | C.AAxiom (_, _, id, ty, params) ->
-      C.Axiom (id, deannotate_term ty, params)
-   | C.AVariable (_, _, name, ty) ->
-      C.Variable (name, deannotate_term ty)
-   | C.ACurrentProof (_, _, name, conjs, bo, ty) ->
-      C.CurrentProof (
-       name, List.map (fun (id,con) -> (id,deannotate_term con)) conjs,
-       deannotate_term bo, deannotate_term ty
-      )
-   | C.AInductiveDefinition (_, _, tys, params, parno) ->
-      C.InductiveDefinition ( List.map deannotate_inductiveType tys,
-       params, parno)
-;;
diff --git a/helm/interface/experiment.ml b/helm/interface/experiment.ml
deleted file mode 100644 (file)
index 5c086bb..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This is a textual interface to the Coq-like pretty printer cicPp for cic   *)
-(* terms exported in xml. It uses directly the modules cicPp and cache and    *)
-(* indirectly all the other modules (cicParser, cicParser2, cicParser3,       *)
-(* getter). The syntax is  "experiment[.opt] filename1 ... filenamen" where   *)
-(* filenamei is the path-name of an xml file describing a cic term. On stdout *)
-(* are pretty-printed all the n terms                                         *)
-(*                                                                            *)
-(******************************************************************************)
-
-let pretty_print    = ref true;;
-let read_from_stdin = ref false;;
-let uris_in_input   = ref false;;
-
-let parse uri =
- if !pretty_print then
-  begin
-   print_endline ("^^^" ^ uri ^ "^^^") ;
-   print_string (CicPp.ppobj (CicCache.get_obj (UriManager.uri_of_string uri)));
-   print_endline ("\n$$$" ^ uri ^ "$$$\n")
-  end
- else
-  begin
-   print_string uri ;
-   let _ = CicCache.get_obj  (UriManager.uri_of_string uri) in
-    print_endline " OK!" ;
-    flush stdout
-  end
-;;
-
-let uri_of_filename fn =
- if !uris_in_input then fn
- else
-  let uri =
-   Str.replace_first (Str.regexp (Str.quote Configuration.helm_dir)) "cic:" fn
-  in
-   let uri' = Str.replace_first (Str.regexp "\.xml$") "" uri in
-    uri'
-;;
-
-let read_filenames_from_stdin () =
- let files = ref [] in
-  try
-   while true do
-    let l = Str.split (Str.regexp " ") (read_line ()) in
-     List.iter (fun x -> files := (uri_of_filename x) :: !files) l
-   done
-  with
-   End_of_file ->
-    files := List.rev !files ;
-    List.iter parse !files
-;;
-
-(* filenames are read from command line and converted to uris via *)
-(* uri_of_filenames; then the cic terms are load in cache via     *)
-(* CicCache.get_obj  and then pretty printed via CicPp.ppobj      *)
-
-let main() =
-  let files = ref [] in
-  Arg.parse
-   ["-nopp", Arg.Clear pretty_print, "Do not pretty print, parse only" ;
-    "-stdin", Arg.Set read_from_stdin, "Read from stdin" ;
-    "-uris", Arg.Set uris_in_input, "Read uris, not filenames" ;
-    "-update", Arg.Unit Getter.update, "Update the getter view of the world"]
-   (fun x -> files := (uri_of_filename x) :: !files)
-   "
-usage: experiment file ...
-
-List of options:";
-  if !read_from_stdin then read_filenames_from_stdin ()
-  else
-   begin
-    files := List.rev !files;
-    List.iter parse !files
-   end
-;;
-
-main();;
diff --git a/helm/interface/fix_params.ml b/helm/interface/fix_params.ml
deleted file mode 100644 (file)
index b4de9fa..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-let read_from_stdin = ref false;;
-
-let uri_of_filename fn =
- let uri =
-  Str.replace_first (Str.regexp (Str.quote Configuration.helm_dir)) "cic:" fn
- in
-  let uri' = Str.replace_first (Str.regexp "\.xml$") "" uri in
-   UriManager.uri_of_string uri'
-;;
-
-let main() =
-  Deannotate.expect_possible_parameters := true ;
-  let files = ref [] in
-  Arg.parse
-   ["-stdin", Arg.Set read_from_stdin, "Read from stdin"]
-   (fun x -> files := (x, uri_of_filename x) :: !files)
-      "
-usage: experiment file ...
-
-List of options:";
-  if !read_from_stdin then
-   begin
-    try
-     while true do
-      let l = Str.split (Str.regexp " ") (read_line ()) in
-       List.iter (fun x -> files := (x, uri_of_filename x) :: !files) l
-     done
-    with
-     End_of_file -> ()
-   end ;
-  files := List.rev !files;
-  Getter.update () ;
-  print_endline "ATTENTION: have you changed servers.txt so that you'll try \
-   to repair your own objs instead of others'?" ;
-  flush stdout ;
-  List.iter
-    (function (fn, uri) ->
-      print_string (UriManager.string_of_uri uri) ;
-      flush stdout ;
-      (try
-       CicFindParameters.fix_params uri (Some fn)
-      with
-        e -> print_newline () ; flush stdout ; raise e ) ;
-      print_endline " OK!" ;
-      flush stdout
-    ) !files
-;;
-
-main();;
diff --git a/helm/interface/getter.ml b/helm/interface/getter.ml
deleted file mode 100644 (file)
index 21c1901..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(******************************************************************************)
-
-exception ErrorGetting of string;;
-
-module OrderedStrings =
- struct
-  type t = string
-  let compare (s1 : t) (s2 : t) = compare s1 s2
- end
-;;
-
-module MapOfStrings = Map.Make(OrderedStrings);;
-
-let read_index url =
- let module C = Configuration in
-  if Sys.command ("wget -c -P " ^ C.tmpdir ^ " " ^ url ^ "/\"" ^
-   C.indexname ^ "\"") <> 0
-  then
-   raise (ErrorGetting url) ;
-  let tmpfilename = C.tmpdir ^ "/" ^ C.indexname in
-   let fd = open_in tmpfilename in
-   let uris = ref [] in
-    try
-     while true do
-      uris := (input_line fd) :: !uris
-     done ;
-     [] (* only to make the compiler happy *)
-    with
-     End_of_file ->
-      Sys.remove tmpfilename ;
-      !uris
-;;
-
-(* mk_urls_of_uris list_of_servers_base_urls *)
-let rec mk_urls_of_uris =
- function
-    [] -> MapOfStrings.empty
-  | he::tl ->
-     let map = mk_urls_of_uris tl in
-      let uris = read_index he in
-       let url_of_uri uri =
-        let url = uri  ^ ".xml" in
-         let url' = Str.replace_first (Str.regexp "cic:") he url in
-         let url'' = Str.replace_first (Str.regexp "theory:") he url' in
-          url''
-       in
-        List.fold_right
-         (fun uri m -> MapOfStrings.add uri (url_of_uri uri) m)
-         uris map
-;;
-
-let update () =
- let module C = Configuration in
-  let fd = open_in C.servers_file in
-  let servers = ref [] in
-   try
-    while true do
-     servers := (input_line fd) :: !servers
-    done
-   with
-    End_of_file ->
-     let urls_of_uris = mk_urls_of_uris (List.rev !servers) in
-      (try Sys.remove (C.uris_dbm ^ ".db") with _ -> ()) ;
-      let dbm =
-       Dbm.opendbm C.uris_dbm [Dbm.Dbm_wronly ; Dbm.Dbm_create] 0o660
-      in
-       MapOfStrings.iter (fun uri url -> Dbm.add dbm uri url) urls_of_uris ;
-       Dbm.close dbm
-;;
-
-(* url_of_uri : uri -> url *)
-let url_of_uri uri =
- let dbm = Dbm.opendbm Configuration.uris_dbm [Dbm.Dbm_rdonly] 0o660 in
-  let url = Dbm.find dbm (UriManager.string_of_uri uri) in
-   Dbm.close dbm ;
-   url
-;;
-
-let filedir_of_uri uri =
- let fn = UriManager.buri_of_uri uri in
-  let fn' = Str.replace_first (Str.regexp ".*:") Configuration.dest fn in
-   fn'
-;;
-
-let name_and_ext_of_uri uri =
- let str = UriManager.string_of_uri uri in
-  Str.replace_first (Str.regexp ".*/") "" str
-;;
-
-(* get_file : uri -> filename *)
-let get_file uri =
- let dir = filedir_of_uri uri in
-  let fn = dir ^ "/" ^ name_and_ext_of_uri uri ^ ".xml" in
-   if not (Sys.file_exists fn) then
-    begin
-     let url = url_of_uri uri in
-      (*CSC: use -q for quiet mode *)
-      if Sys.command ("wget -c -P " ^ dir ^ " \"" ^ url ^"\"") <> 0
-      then
-       raise (ErrorGetting url) ;
-    end ;
-   fn
-;;
-
-(* get : uri -> filename *)
-(* If uri is the URI of an annotation, the annotated object is processed *)
-let get uri =
- let module U = UriManager in
-  get_file
-   (U.uri_of_string
-    (Str.replace_first (Str.regexp "\.ann$") ""
-     (Str.replace_first (Str.regexp "\.types$") "" (U.string_of_uri uri))))
-;;
-
-(* get_ann : uri -> filename *)
-(* If uri is the URI of an annotation, the annotation file is processed *)
-let get_ann = get_file;;
-
-(* get_ann_file_name_and_uri : uri -> filename * annuri *)
-(* If given an URI, it returns the name of the corresponding *)
-(* annotation file and the annotation uri                    *)
-let get_ann_file_name_and_uri uri = 
- let module U = UriManager in
-  let uri = U.string_of_uri uri in
-   let annuri =
-    U.uri_of_string (
-     if Str.string_match (Str.regexp ".*\.ann$") uri 0 then
-      uri
-     else
-      uri ^ ".ann"
-    )
-   in
-    let dir = filedir_of_uri annuri in
-     let fn = dir ^ "/" ^ name_and_ext_of_uri annuri ^ ".xml" in
-      (fn, annuri)
-;;
diff --git a/helm/interface/getter.mli b/helm/interface/getter.mli
deleted file mode 100644 (file)
index c0e882c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(*                                                                            *)
-(******************************************************************************)
-
-(* get : uri -> filename *)
-(* If uri is the URI of an annotation, the annotated object is processed *)
-val get : UriManager.uri -> string
-
-(* get_ann : uri -> filename *)
-(* If uri is the URI of an annotation, the annotation file is processed *)
-val get_ann : UriManager.uri -> string
-
-(* get_ann_file_name_and_uri : uri -> filename * annuri *)
-(* If given an URI, it returns the name of the corresponding *)
-(* annotation file and the annotation uri                    *)
-val get_ann_file_name_and_uri : UriManager.uri -> string * UriManager.uri
-
-(* synchronize with the servers *)
-val update : unit -> unit
diff --git a/helm/interface/gmon.out b/helm/interface/gmon.out
deleted file mode 100644 (file)
index c48b840..0000000
Binary files a/helm/interface/gmon.out and /dev/null differ
diff --git a/helm/interface/http_getter/http_getter.pl b/helm/interface/http_getter/http_getter.pl
deleted file mode 100755 (executable)
index 1d99e65..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-#!/usr/bin/perl
-
-# First of all, let's load HELM configuration
-use Env;
-my $HELM_CONFIGURATION_PREFIX = $ENV{"HELM_CONFIGURATION_PREFIX"};
-my $HELM_CONFIGURATION_PATH =
- $HELM_CONFIGURATION_PREFIX."/local/lib/helm/configuration.pl";
-# next require defines: $helm_dir, $html_link
-require $HELM_CONFIGURATION_PATH;
-
-
-
-use HTTP::Daemon;
-use HTTP::Status;
-use HTTP::Request;
-use LWP::UserAgent;
-use DB_File;
-
-my $cont = "";
-my $d = new HTTP::Daemon LocalPort => 8081;
-tie(%map, 'DB_File', $uris_dbm.".db", O_RDONLY, 0664);
-print "Please contact me at: <URL:", $d->url, ">\n";
-print "helm_dir: $helm_dir\n";
-print "urls_of_uris.db: $uris_dbm.db\n";
-$SIG{CHLD} = "IGNORE"; # do not accumulate defunct processes
-while (my $c = $d->accept) {
- if (fork() == 0) {
-    while (my $r = $c->get_request) {
-        #CSC: mancano i controlli di sicurezza
-        
-        $cont = "";
-        my $cicuri = $r->url; 
-        $cicuri =~ s/^[^?]*\?url=(.*)/$1/;
-        print "*".$r->url."\n";
-        my $http_method = $r->method;
-        my $http_path = $r->url->path;
-        if ($http_method eq 'GET' and $http_path eq "/get") {
-            my $filename = $cicuri;
-            $filename =~ s/cic:(.*)/$1/;
-            $filename =~ s/theory:(.*)/$1/;
-            $filename = $helm_dir.$filename.".xml";
-            my $resolved = $map{$cicuri};
-            print "$cicuri ==> $resolved ($filename)\n";
-            if (stat($filename)) {
-               print "Using local copy\n";
-               open(FD, $filename);
-               while(<FD>) { $cont .= $_; }
-               close(FD);
-               my $res = new HTTP::Response;
-               $res->content($cont);
-               $c->send_response($res);
-            } else {
-               print "Downloading\n";
-               $ua = LWP::UserAgent->new;
-               $request = HTTP::Request->new(GET => "$resolved");
-               $response = $ua->request($request, \&callback);
-               
-               print "Storing file\n";
-               mkdirs($filename);
-               open(FD, ">".$filename);
-               print FD $cont;
-               close(FD);
-
-               my $res = new HTTP::Response;
-               $res->content($cont);
-               $c->send_response($res);
-            }
-        } elsif ($http_method eq 'GET' and $http_path eq "/annotate") {
-            my $do_annotate = ($cicuri =~ /\.ann$/);
-            my $target_to_annotate = $cicuri;
-            $target_to_annotate =~ s/(.*)\.ann$/$1/ if $do_annotate;
-            my $filename = $cicuri;
-            $filename =~ s/cic:(.*)/$1/;
-            $filename =~ s/theory:(.*)/$1/;
-            my $filename_target = $helm_dir.$filename if $do_annotate;
-            $filename = $helm_dir.$filename.".xml";
-            $filename_target =~ s/(.*)\.ann$/$1.xml/ if $do_annotate;
-            my $resolved = $map{$cicuri};
-            my $resolved_target = $map{$target_to_annotate} if $do_annotate;
-            if ($do_annotate) {
-               print "($cicuri, $target_to_annotate) ==> ($resolved + $resolved_target) ($filename)\n";
-            } else {
-               print "$cicuri ==> $resolved ($filename)\n";
-            }
-
-            # Retrieves the annotation
-
-            if (stat($filename)) {
-               print "Using local copy for the annotation\n";
-               open(FD, $filename);
-               while(<FD>) { $cont .= $_; }
-               close(FD);
-            } else {
-               print "Downloading the annotation\n";
-               $ua = LWP::UserAgent->new;
-               $request = HTTP::Request->new(GET => "$resolved");
-               $response = $ua->request($request, \&callback);
-               
-               print "Storing file for the annotation\n";
-               mkdirs($filename);
-               open(FD, ">".$filename);
-               print FD $cont;
-               close(FD);
-            }
-            my $annotation = $cont;
-
-            # Retrieves the target to annotate
-
-            $cont = "";
-            if ($do_annotate) {
-               if (stat($filename_target)) {
-                  print "Using local copy for the file to annotate\n";
-                  open(FD, $filename_target);
-                  while(<FD>) { $cont .= $_; }
-                  close(FD);
-               } else {
-                  print "Downloading the file to annotate\n";
-                  $ua = LWP::UserAgent->new;
-                  $request = HTTP::Request->new(GET => "$resolved_target");
-                  $response = $ua->request($request, \&callback);
-               
-                  print "Storing file for the file to annotate\n";
-                  mkdirs($filename_target);
-                  open(FD, ">".$filename_target);
-                  print FD $cont;
-                  close(FD);
-               }
-            }
-            my $target = $cont;
-
-            # Merging the annotation and the target
-
-            $target =~ s/<\?xml [^?]*\?>//sg;
-            $target =~ s/<!DOCTYPE [^>]*>//sg;
-            $annotation =~ s/<\?xml [^?]*\?>//sg;
-            $annotation =~ s/<!DOCTYPE [^>]*>//sg;
-            my $merged = <<EOT;
-<?xml version="1.0" encoding="UTF-8"?>
-<cicxml uri="$target_to_annotate">
-$target
-$annotation
-</cicxml>
-EOT
-
-            # Answering the client
-
-            my $res = new HTTP::Response;
-            $res->content($merged);
-            $c->send_response($res);
-        } elsif ($http_method eq 'GET' and $http_path eq "/getwithtypes") {
-            my $mode;
-            my $do_annotate;
-            if ($cicuri =~ /\.types$/) {
-               $do_annotate = 1;
-               $mode = "types";
-            } elsif ($cicuri =~ /\.ann$/) {
-               $do_annotate = 1;
-               $mode = "ann";
-            } else {
-               $do_annotate = 0;
-            }
-            my $target_to_annotate = $cicuri;
-            if ($mode eq "types") {
-               $target_to_annotate =~ s/(.*)\.types$/$1/;
-            } elsif ($mode eq "ann") {
-               $target_to_annotate =~ s/(.*)\.ann$/$1/;
-            }
-            my $filename = $cicuri;
-            $filename =~ s/cic:(.*)/$1/;
-            $filename =~ s/theory:(.*)/$1/;
-            my $filename_target = $helm_dir.$filename if $do_annotate;
-            $filename = $helm_dir.$filename.".xml";
-            if ($mode eq "types") {
-               $filename_target =~ s/(.*)\.types$/$1.xml/;
-            } elsif ($mode eq "ann") {
-               $filename_target =~ s/(.*)\.ann$/$1.xml/;
-            }
-            my $resolved = $map{$cicuri};
-            my $resolved_target = $map{$target_to_annotate} if $do_annotate;
-            if ($do_annotate) {
-               print "GETWITHTYPES!!\n" if ($mode eq "types");
-               print "GETWITHANN!!\n" if ($mode eq "ann");
-               print "($cicuri, $target_to_annotate) ==> ($resolved + $resolved_target) ($filename)\n";
-             } else {
-               print "$cicuri ==> $resolved ($filename)\n";
-            }
-
-            # Retrieves the annotation
-
-            if (stat($filename)) {
-               print "Using local copy for the types\n" if ($mode eq "types");
-               print "Using local copy for the ann\n" if ($mode eq "ann");
-               open(FD, $filename);
-               while(<FD>) { $cont .= $_; }
-               close(FD);
-            } else {
-               print "Downloading the types\n" if ($mode eq "types");
-               print "Downloading the ann\n" if ($mode eq "ann");
-               $ua = LWP::UserAgent->new;
-               $request = HTTP::Request->new(GET => "$resolved");
-               $response = $ua->request($request, \&callback);
-               
-               print "Storing file for the types\n" if ($mode eq "types");
-               print "Storing file for the ann\n" if ($mode eq "ann");
-               mkdirs($filename);
-               open(FD, ">".$filename);
-               print FD $cont;
-               close(FD);
-            }
-            my $annotation = $cont;
-
-            # Retrieves the target to annotate
-
-            $cont = "";
-            my $target;
-            if ($do_annotate) {
-               if (stat($filename_target)) {
-                  print "Using local copy for the file to type\n";
-                  open(FD, $filename_target);
-                  while(<FD>) { $cont .= $_; }
-                  close(FD);
-               } else {
-                  print "Downloading the file to type\n";
-                  $ua = LWP::UserAgent->new;
-                  $request = HTTP::Request->new(GET => "$resolved_target");
-                  $response = $ua->request($request, \&callback);
-               
-                  print "Storing file for the file to type\n";
-                  mkdirs($filename_target);
-                  open(FD, ">".$filename_target);
-                  print FD $cont;
-                  close(FD);
-               }
-               $target = $cont;
-            } else {
-               $target = $annotation;
-               $annotation = "";
-            }
-
-            # Merging the annotation and the target
-
-            $target =~ s/<\?xml [^?]*\?>//sg;
-            $target =~ s/<!DOCTYPE [^>]*>//sg;
-            $annotation =~ s/<\?xml [^?]*\?>//sg;
-            $annotation =~ s/<!DOCTYPE [^>]*>//sg;
-            my $element, $endelement; 
-            if ($mode eq "types") {
-               $element = "<ALLTYPES>";
-               $endelement = "</ALLTYPES>";
-            } elsif ($mode eq "ann") {
-               $element = "";
-               $endelement = "";
-            }
-            my $merged = <<EOT;
-<?xml version="1.0" encoding="UTF-8"?>
-<cicxml uri="$target_to_annotate">
-$target
-$element
-$annotation
-$endelement
-</cicxml>
-EOT
-
-            # Answering the client
-
-            my $res = new HTTP::Response;
-            $res->content($merged);
-            $c->send_response($res);
-         } elsif ($http_method eq 'GET' and $http_path eq "/getdtd") {
-            my $filename = $cicuri;
-            $filename = $helm_dir."/dtd/".$filename;
-            print "DTD: $cicuri ==> ($filename)\n";
-            if (stat($filename)) {
-               print "Using local copy\n";
-               open(FD, $filename);
-               while(<FD>) { $cont .= $_; }
-               close(FD);
-               my $res = new HTTP::Response;
-               $res->content($cont);
-               $c->send_response($res);
-            } else {
-               die "Could not find DTD!";
-            }
-        } elsif ($http_method eq 'GET' and $http_path eq "/conf") {
-            my $quoted_html_link = $html_link;
-            $quoted_html_link =~ s/&/&amp;/g;
-            $quoted_html_link =~ s/</&lt;/g;
-            $quoted_html_link =~ s/>/&gt;/g;
-            $quoted_html_link =~ s/'/&apos;/g;
-            $quoted_html_link =~ s/"/&quot;/g;
-            print "Configuration requested, returned #$quoted_html_link#\n";
-           $cont = "<?xml version=\"1.0\"?><html_link>$quoted_html_link</html_link>";
-            my $res = new HTTP::Response;
-            $res->content($cont);
-            $c->send_response($res);
-        } else {
-            print "INVALID REQUEST!!!!!\n";
-            $c->send_error(RC_FORBIDDEN)
-        }
-    }
-    $c->close;
-    undef($c);
-    print "\nCONNECTION CLOSED\n\n";
-    exit;
-  } # fork
-}
-
-#================================
-
-sub callback
-{
- my ($data) = @_;
- $cont .= $data;
-}
-
-# Does not raise errors if could not create dirs/files
-
-# Too much powerful: creates even /home, /home/users/, ...
-sub mkdirs
-{
- my ($pathname) = @_;
- my @dirs = split /\//,$pathname;
- my $tmp;
- foreach $dir (@dirs) {
-  $tmp = ((defined($tmp)) ?  $tmp = $tmp."\/".$dir : "");
-  mkdir($tmp,0777);
- }
- rmdir($tmp);
-}
diff --git a/helm/interface/isterix b/helm/interface/isterix
deleted file mode 100755 (executable)
index 61392b0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /bin/sh
-
-export PATH=$PATH:/opt/java/jdk118/bin/
-
-export CLASSPATH=.
-export CLASSPATH=$CLASSPATH:/home/lpadovan/helm/java/xalan_1_1/xalan.jar
-export CLASSPATH=$CLASSPATH:/home/lpadovan/helm/java/xalan_1_1/xerces.jar
-export CLASSPATH=$CLASSPATH:/home/lpadovan/helm/java/saxon-5.3.2/saxon.jar
-
-# Per (my)Coq 6.3.0
-export LD_LIBRARY_PATH=/home/lpadovan/helm/usr/lib/:$LD_LIBRARY_PATH
-export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
diff --git a/helm/interface/javacore15005.txt b/helm/interface/javacore15005.txt
deleted file mode 100644 (file)
index 9920964..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-SIGSEGV received at bfffeacc in /home/cadet/sacerdot/jdk118/lib/linux/native_threads/libjitc.so. Processing terminated
-java full version "JDK 1.1.8 IBM build l118-19991013 (JIT enabled: jitc)"
-args: /home/cadet/sacerdot/jdk118/bin/linux/native_threads/java xaland 12345 12346 examples/style/annotatedcont.xsl examples/style/annotatedpres.xsl examples/style/theory_content.xsl examples/style/theory_pres.xsl
-
-Operating Environment
----------------------
-Host           : cadet.
-OS Level       : 2.2.14-5.0smp.#1 SMP Tue Mar 7 21:01:40 EST 2000
-glibc Version  : 2.1.3
-No. of Procs   : 1
-Memory Info:
-        total:    used:    free:  shared: buffers:  cached:
-Mem:  64503808 55078912  9424896 36126720  1527808 18075648
-Swap: 133885952  7442432 126443520
-MemTotal:     62992 kB
-MemFree:       9204 kB
-MemShared:    35280 kB
-Buffers:       1492 kB
-Cached:       17652 kB
-BigTotal:         0 kB
-BigFree:          0 kB
-SwapTotal:   130748 kB
-SwapFree:    123480 kB
-
-Application Environment
------------------------
-Signal Handlers -
-       SIGQUIT         : ignored
-       SIGILL          : sysThreadIDump (libjava.so)
-       SIGABRT         : sysThreadIDump (libjava.so)
-       SIGFPE          : sysThreadIDump (libjava.so)
-       SIGBUS          : sysThreadIDump (libjava.so)
-       SIGSEGV         : sysThreadIDump (libjava.so)
-       SIGPIPE         : ignored
-       SIGUSR1         : doSuspendLoop (libjava.so)
-
-Environment Variables -
-       LESSOPEN=|/usr/bin/lesspipe.sh %s
-       SAL_DO_NOT_USE_INVERT50=true
-       HISTSIZE=1000
-       HOSTNAME=cadet
-       LOGNAME=sacerdot
-       VISUAL=/usr/bin/emacs
-       LD_LIBRARY_PATH=/home/cadet/sacerdot/jdk118/lib/linux/native_threads:/usr/local/lib/gtkmathview:/home/pauillac/coq3/sacerdot/rvplayer5.0
-       MAIL=/var/spool/mail/sacerdot
-       PAGER=less
-       CLASSPATH=.:/usr/share/java/bsf.jar:/usr/share/java/xalan.jar:/usr/share/java/xerces.jar:/home/cadet/sacerdot/jdk118/classes:/home/cadet/sacerdot/jdk118/lib/classes.jar:/home/cadet/sacerdot/jdk118/lib/rt.jar:/home/cadet/sacerdot/jdk118/lib/i18n.jar:/home/cadet/sacerdot/jdk118/lib/classes.zip
-       LESSCHARDEF=8bcccbcc18b95.33b.
-       ARCH=i586
-       PROMPT=cad: 
-       TERM=xterm
-       HOSTTYPE=i386
-       PATH=/home/cadet/sacerdot/jdk118/bin:/home/pauillac/coq3/sacerdot/bin/i586:/home/pauillac/coq3/sacerdot/bin:/usr/bin/X11:/usr/bin:/usr/local/bin:/usr/ucb:/usr/bin:/bin:/usr/sbin:/sbin:/usr/games:.
-       PRINTER=hp11rv
-       HOME=/home/pauillac/coq3/sacerdot
-       SHELL=/bin/sh
-       ELANLIB=/home/pauillac/coq3/sacerdot/elan-dist.3.00/elanlib
-       PILOTPORT=/dev/ttyS1
-       TEXINPUTS=:.:/home/pauillac/coq3/sacerdot/lib/latex/inputs:/usr/local/lib/tex/inputs3
-       USER=sacerdot
-       ENSCRIPT=-Php11rvl -2 -r -B -L66 -k -h
-       MANPATH=/usr/man/preformat:/usr/man:/usr/X11/man:/usr/local/man:/home/pauillac/coq3/sacerdot/man
-       LESS=-m -e -q -d
-       JAVA_HOME=/home/cadet/sacerdot/jdk118
-       DISPLAY=:0.0
-       MAKEFLAGS=
-       HOST=cadet
-       OSTYPE=Linux
-       NNTPSERVER=news-rocq.inria.fr
-       WINDOWID=54525966
-       SHLVL=4
-       MAKELEVEL=1
-       LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
-       EDITOR=/usr/bin/emacs
-       MFLAGS=
-       CVSROOT=/net/pauillac/constr/ARCHIVE
-
-
-Current Thread Details
-----------------------
-    "main" (TID:0x402e62d8, sys_thread_t:0x804abe0)
-    Native Thread State: ThreadID: 00000400 Reuse: 1 USER PRIMORDIAL RUNNING
-    Native Stack Data  : base: bffff47c pointer bffbf96c used(260880) free(-13072)
-       ----- Monitors held -----
-       ----- Native stack -----
-       
-       
-       
-       
-       
-       
-       
-       
-       ??
-       ??
-       ??
-       
-       java_lang_Compiler_start
-       
-       __irem_trap6
-       ------ Java stack ------        () prio=5 *current thread*
-       org.apache.xalan.xslt.XSLTEngineImpl.createStylesheetRoot(XSLTEngineImpl.java:715)
-       org.apache.xalan.xslt.XSLTEngineImpl.processStylesheet(Compiled Code)
-       org.apache.xalan.xslt.XSLTEngineImpl.processStylesheet(Compiled Code)
-       xaland.main(Compiled Code)
-----------------------------------------------------------------------
-
-
-Total Thread Count:    3
-Active Thread Count:   3
-JNI Thread Count:      0
-
-Full thread dump:
-    "Async Garbage Collector" (TID:0x402e6238, sys_thread_t:0x8091f50)
-    Native Thread State: ThreadID: 00000803 Reuse: 1 DAEMON  MONITOR WAIT
-    Native Stack Data  : base: bf5ffd84 pointer bf5ffb78 used(524) free(247284)
-       ----- Monitors held -----
-       ----- Native stack -----
-       sysMonitorWait
-       sysThreadSleep
-       threadSleep
-       SetOrigArgs
-       sysThread_shell
-       pthread_detach
-       __clone
-       ------ Java stack ------        () prio=1
-----------------------------------------------------------------------
-
-    "Finalizer thread" (TID:0x402e6288, sys_thread_t:0x8091cd0)
-    Native Thread State: ThreadID: 00000402 Reuse: 1 DAEMON  MONITOR WAIT
-    Native Stack Data  : base: bf7ffd84 pointer bf7ffbec used(408) free(247400)
-       ----- Monitors held -----
-       ----- Native stack -----
-       sysMonitorWait - waiting on Finalize me queue lock
-       finalizeOnExit
-       sysThread_shell
-       pthread_detach
-       __clone
-       ------ Java stack ------        () prio=1
-----------------------------------------------------------------------
-
-    "main" (TID:0x402e62d8, sys_thread_t:0x804abe0)
-    Native Thread State: ThreadID: 00000400 Reuse: 1 USER PRIMORDIAL RUNNING
-    Native Stack Data  : base: bffff47c pointer bffbf960 used(260892) free(-13084)
-       ----- Monitors held -----
-       ----- Native stack -----
-       
-       
-       
-       
-       
-       
-       
-       
-       ??
-       ??
-       ??
-       
-       java_lang_Compiler_start
-       
-       __irem_trap6
-       ------ Java stack ------        () prio=5 *current thread*
-       org.apache.xalan.xslt.XSLTEngineImpl.createStylesheetRoot(XSLTEngineImpl.java:715)
-       org.apache.xalan.xslt.XSLTEngineImpl.processStylesheet(Compiled Code)
-       org.apache.xalan.xslt.XSLTEngineImpl.processStylesheet(Compiled Code)
-       xaland.main(Compiled Code)
-----------------------------------------------------------------------
-
-
-System Monitor Status
----------------------
-    JIT monitor:     unowned.
-    JIT monitor:     unowned.
-    JIT monitor:     unowned.
-    JIT monitor:     unowned.
-    JIT monitor:     unowned.
-    Thread queue lock:     unowned.
-    Name and type hash table lock:     unowned.
-    String intern lock:     unowned.
-    JNI pinning lock:     unowned.
-    JNI global reference lock:     unowned.
-    Zip lock:     unowned.
-    BinClass lock:     unowned.
-    Class loading lock:     unowned.
-    Java stack lock:     unowned.
-    Code rewrite lock:     unowned.
-    Heap Lock:     unowned.
-    Has finalization queue lock:     unowned.
-    Finalize me queue lock:     unowned.
-    Integer lock access-lock:     unowned.
-    Monitor cache lock:     unowned.
-    Monitor registry:     unowned.
-
-Object Monitor Status
----------------------
diff --git a/helm/interface/javacore15021.txt b/helm/interface/javacore15021.txt
deleted file mode 100644 (file)
index bac0b8a..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-SIGSEGV received at bfffeacc in /home/cadet/sacerdot/jdk118/lib/linux/native_threads/libjitc.so. Processing terminated
-java full version "JDK 1.1.8 IBM build l118-19991013 (JIT enabled: jitc)"
-args: /home/cadet/sacerdot/jdk118/bin/linux/native_threads/java xaland 12345 12346 examples/style/annotatedcont.xsl examples/style/annotatedpres.xsl examples/style/theory_content.xsl examples/style/theory_pres.xsl
-
-Operating Environment
----------------------
-Host           : cadet.
-OS Level       : 2.2.14-5.0smp.#1 SMP Tue Mar 7 21:01:40 EST 2000
-glibc Version  : 2.1.3
-No. of Procs   : 1
-Memory Info:
-        total:    used:    free:  shared: buffers:  cached:
-Mem:  64503808 55672832  8830976 36130816  1536000 18612224
-Swap: 133885952  7442432 126443520
-MemTotal:     62992 kB
-MemFree:       8624 kB
-MemShared:    35284 kB
-Buffers:       1500 kB
-Cached:       18176 kB
-BigTotal:         0 kB
-BigFree:          0 kB
-SwapTotal:   130748 kB
-SwapFree:    123480 kB
-
-Application Environment
------------------------
-Signal Handlers -
-       SIGQUIT         : ignored
-       SIGILL          : sysThreadIDump (libjava.so)
-       SIGABRT         : sysThreadIDump (libjava.so)
-       SIGFPE          : sysThreadIDump (libjava.so)
-       SIGBUS          : sysThreadIDump (libjava.so)
-       SIGSEGV         : sysThreadIDump (libjava.so)
-       SIGPIPE         : ignored
-       SIGUSR1         : doSuspendLoop (libjava.so)
-
-Environment Variables -
-       LESSOPEN=|/usr/bin/lesspipe.sh %s
-       SAL_DO_NOT_USE_INVERT50=true
-       HISTSIZE=1000
-       HOSTNAME=cadet
-       LOGNAME=sacerdot
-       VISUAL=/usr/bin/emacs
-       LD_LIBRARY_PATH=/home/cadet/sacerdot/jdk118/lib/linux/native_threads:/usr/local/lib/gtkmathview:/home/pauillac/coq3/sacerdot/rvplayer5.0
-       MAIL=/var/spool/mail/sacerdot
-       PAGER=less
-       CLASSPATH=.:/usr/share/java/bsf.jar:/usr/share/java/xalan.jar:/usr/share/java/xerces.jar:/home/cadet/sacerdot/jdk118/classes:/home/cadet/sacerdot/jdk118/lib/classes.jar:/home/cadet/sacerdot/jdk118/lib/rt.jar:/home/cadet/sacerdot/jdk118/lib/i18n.jar:/home/cadet/sacerdot/jdk118/lib/classes.zip
-       LESSCHARDEF=8bcccbcc18b95.33b.
-       ARCH=i586
-       PROMPT=cad: 
-       TERM=xterm
-       HOSTTYPE=i386
-       PATH=/home/cadet/sacerdot/jdk118/bin:/home/pauillac/coq3/sacerdot/bin/i586:/home/pauillac/coq3/sacerdot/bin:/usr/bin/X11:/usr/bin:/usr/local/bin:/usr/ucb:/usr/bin:/bin:/usr/sbin:/sbin:/usr/games:.
-       PRINTER=hp11rv
-       HOME=/home/pauillac/coq3/sacerdot
-       SHELL=/bin/sh
-       ELANLIB=/home/pauillac/coq3/sacerdot/elan-dist.3.00/elanlib
-       PILOTPORT=/dev/ttyS1
-       TEXINPUTS=:.:/home/pauillac/coq3/sacerdot/lib/latex/inputs:/usr/local/lib/tex/inputs3
-       USER=sacerdot
-       ENSCRIPT=-Php11rvl -2 -r -B -L66 -k -h
-       MANPATH=/usr/man/preformat:/usr/man:/usr/X11/man:/usr/local/man:/home/pauillac/coq3/sacerdot/man
-       LESS=-m -e -q -d
-       JAVA_HOME=/home/cadet/sacerdot/jdk118
-       DISPLAY=:0.0
-       MAKEFLAGS=
-       HOST=cadet
-       OSTYPE=Linux
-       NNTPSERVER=news-rocq.inria.fr
-       WINDOWID=54525966
-       SHLVL=4
-       MAKELEVEL=1
-       LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
-       EDITOR=/usr/bin/emacs
-       MFLAGS=
-       CVSROOT=/net/pauillac/constr/ARCHIVE
-
-
-Current Thread Details
-----------------------
-    "main" (TID:0x402e62d8, sys_thread_t:0x804abe0)
-    Native Thread State: ThreadID: 00000400 Reuse: 1 USER PRIMORDIAL RUNNING
-    Native Stack Data  : base: bffff47c pointer bffbf96c used(260880) free(-13072)
-       ----- Monitors held -----
-       ----- Native stack -----
-       
-       
-       
-       
-       
-       
-       
-       
-       ??
-       ??
-       ??
-       
-       java_lang_Compiler_start
-       
-       __irem_trap6
-       ------ Java stack ------        () prio=5 *current thread*
-       org.apache.xalan.xslt.XSLTEngineImpl.createStylesheetRoot(XSLTEngineImpl.java:715)
-       org.apache.xalan.xslt.XSLTEngineImpl.processStylesheet(Compiled Code)
-       org.apache.xalan.xslt.XSLTEngineImpl.processStylesheet(Compiled Code)
-       xaland.main(Compiled Code)
-----------------------------------------------------------------------
-
-
-Total Thread Count:    3
-Active Thread Count:   3
-JNI Thread Count:      0
-
-Full thread dump:
-    "Async Garbage Collector" (TID:0x402e6238, sys_thread_t:0x8091f50)
-    Native Thread State: ThreadID: 00000803 Reuse: 1 DAEMON  MONITOR WAIT
-    Native Stack Data  : base: bf5ffd84 pointer bf5ffb78 used(524) free(247284)
-       ----- Monitors held -----
-       ----- Native stack -----
-       sysMonitorWait
-       sysThreadSleep
-       threadSleep
-       SetOrigArgs
-       sysThread_shell
-       pthread_detach
-       __clone
-       ------ Java stack ------        () prio=1
-----------------------------------------------------------------------
-
-    "Finalizer thread" (TID:0x402e6288, sys_thread_t:0x8091cd0)
-    Native Thread State: ThreadID: 00000402 Reuse: 1 DAEMON  MONITOR WAIT
-    Native Stack Data  : base: bf7ffd84 pointer bf7ffbec used(408) free(247400)
-       ----- Monitors held -----
-       ----- Native stack -----
-       sysMonitorWait - waiting on Finalize me queue lock
-       finalizeOnExit
-       sysThread_shell
-       pthread_detach
-       __clone
-       ------ Java stack ------        () prio=1
-----------------------------------------------------------------------
-
-    "main" (TID:0x402e62d8, sys_thread_t:0x804abe0)
-    Native Thread State: ThreadID: 00000400 Reuse: 1 USER PRIMORDIAL RUNNING
-    Native Stack Data  : base: bffff47c pointer bffbf960 used(260892) free(-13084)
-       ----- Monitors held -----
-       ----- Native stack -----
-       
-       
-       
-       
-       
-       
-       
-       
-       ??
-       ??
-       ??
-       
-       java_lang_Compiler_start
-       
-       __irem_trap6
-       ------ Java stack ------        () prio=5 *current thread*
-       org.apache.xalan.xslt.XSLTEngineImpl.createStylesheetRoot(XSLTEngineImpl.java:715)
-       org.apache.xalan.xslt.XSLTEngineImpl.processStylesheet(Compiled Code)
-       org.apache.xalan.xslt.XSLTEngineImpl.processStylesheet(Compiled Code)
-       xaland.main(Compiled Code)
-----------------------------------------------------------------------
-
-
-System Monitor Status
----------------------
-    JIT monitor:     unowned.
-    JIT monitor:     unowned.
-    JIT monitor:     unowned.
-    JIT monitor:     unowned.
-    JIT monitor:     unowned.
-    Thread queue lock:     unowned.
-    Name and type hash table lock:     unowned.
-    String intern lock:     unowned.
-    JNI pinning lock:     unowned.
-    JNI global reference lock:     unowned.
-    Zip lock:     unowned.
-    BinClass lock:     unowned.
-    Class loading lock:     unowned.
-    Java stack lock:     unowned.
-    Code rewrite lock:     unowned.
-    Heap Lock:     unowned.
-    Has finalization queue lock:     unowned.
-    Finalize me queue lock:     unowned.
-    Integer lock access-lock:     unowned.
-    Monitor cache lock:     unowned.
-    Monitor registry:     unowned.
-
-Object Monitor Status
----------------------
diff --git a/helm/interface/latinize.pl b/helm/interface/latinize.pl
deleted file mode 100755 (executable)
index 7fa6787..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/perl
-
-while(<STDIN>)
-{
-  s/&#8594;/->/g;
-  s/&#8658;/=>/g;
-  s/&#955;/\\/g;
-  s/&#928;/||/g;
-  print;
-}
diff --git a/helm/interface/mkindex.sh b/helm/interface/mkindex.sh
deleted file mode 100755 (executable)
index 75156a0..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-echo `find . -name "*.xml"` | ~/HELM/interface/uris_of_filenames.pl > index.txt
diff --git a/helm/interface/mml.dtd b/helm/interface/mml.dtd
deleted file mode 100644 (file)
index 10ce5cb..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml encoding="ISO-8859-1"?>
-
-<!-- CSC: mio DTD semplificatissimo per la parte presentation di MML -->
-
-<!-- I seguenti presentation elements sono stati tralasciati ;-)
-mspace
-ms
-<mchar>
-<ms>
-mfrac
-msqrt
-mroot
-mstyle
-merror
-mpadded
-mphantom
-msub
-msup
-msubsup
-munder
-mover
-munderover
-mmultiscripts
-mtable
-mtr
-mtd
-maligngroup
-malignmark
-maction
--->
-
-<!-- Dei seguenti elementi, invece, vengono tralasciati quasi tutti gli
-     attributi
-&ApplyFunction;
--->
-
-<!ENTITY % Presentation '(mi|mo|mn|mtext|mrow|mfenced)*'>
-
-<!ELEMENT math %Presentation;>
-
-<!ELEMENT mi (#PCDATA)>
-
-<!ELEMENT mo (#PCDATA)>
-
-<!ELEMENT mn (#PCDATA)>
-
-<!ELEMENT mtext (#PCDATA)>
-
-<!ELEMENT mrow %Presentation;>
-
-<!ELEMENT mfenced %Presentation;>
-<!ATTLIST mfenced
-          open       CDATA #IMPLIED
-          close      CDATA #IMPLIED
-          separators CDATA #IMPLIED>
diff --git a/helm/interface/mml.ml b/helm/interface/mml.ml
deleted file mode 100644 (file)
index 88c2813..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-type expr =
-   Null
- | Mi of string
- | Mo of string
- | Mn of string
- | Mtext of string
- | Mrow of expr list
- | Mfenced of string * string * string * expr list (* open, close, separators *)
-type fragment =
- Math of expr list
-;;
diff --git a/helm/interface/mmlinterface.ml b/helm/interface/mmlinterface.ml
deleted file mode 100755 (executable)
index 784c9f4..0000000
+++ /dev/null
@@ -1,774 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 24/01/2000                                 *)
-(*                                                                            *)
-(* This is a simple gtk interface to the Coq-like pretty printer cicPp for    *)
-(* cic terms exported in xml. It uses directly the modules cicPp and          *)
-(* cicCcache and indirectly all the other modules (cicParser, cicParser2,     *)
-(* cicParser3, getter).                                                       *)
-(* The syntax is  "gtkInterface[.opt] filename1 ... filenamen" where          *)
-(* filenamei is the path-name of an xml file describing a cic term.           *)
-(* The terms are loaded in cache and then pretty-printed one at a time and    *)
-(* only once, when the user wants to look at it: if the user wants to look at *)
-(* a term again, then the pretty-printed term is showed again, but not        *)
-(* recomputed                                                                 *)
-(*                                                                            *)
-(******************************************************************************)
-
-(* DEFINITION OF THE URI TREE AND USEFUL FUNCTIONS ON IT *)
-
-type item =
-   Dir of string * item list ref
- | File of string * UriManager.uri
-;;
-
-let uritree = ref []
-let theoryuritree = ref []
-
-(* Brutti, per via del widget che non e' imperativo *)
-let loaded_uri = ref "";;
-let theory_loaded_uri = ref "";;
-
-let get_name =
- function
-    Dir (name,_) -> name
-  | File (name,_) -> name
-;;
-
-let get_uri =
- function
-    Dir _ -> None
-  | File (_,uri) -> Some uri
-;;
-
-(* STUFF TO BUILD THE URI TREE *)
-
-exception EmptyUri
-exception DuplicatedUri
-exception ConflictingUris
-
-let insert_in_uri_tree uri =
- let rec aux l =
-  function
-     [name] ->
-      (try
-        let _ = List.find (fun item -> name = get_name item) !l in
-         raise DuplicatedUri
-       with
-        Not_found -> l := (File (name,uri))::!l
-      )
-   | name::tl ->
-      (try
-        match List.find (fun item -> name = get_name item) !l with
-           Dir (_,children) -> aux children tl
-         | File _ -> raise ConflictingUris
-       with
-        Not_found ->
-         let children = ref [] in
-          l := (Dir (name,children))::!l ;
-          aux children tl
-      )
-   | [] -> raise EmptyUri
- in
-  aux
-;;
-
-(* Imperative procedure that builds the two uri trees *)
-let build_uri_tree () =
- let dbh = Dbm.opendbm Configuration.uris_dbm [Dbm.Dbm_rdonly] 0 in
-   Dbm.iter 
-    (fun uri _ ->
-      let cicregexp = Str.regexp "cic:"
-      and theoryregexp = Str.regexp "theory:" in
-       if Str.string_match cicregexp uri 0 then
-        let s = Str.replace_first cicregexp "" uri in
-         let l = Str.split (Str.regexp "/") s in
-          insert_in_uri_tree (UriManager.uri_of_string uri) uritree l
-       else if Str.string_match theoryregexp uri 0 then
-        let s = Str.replace_first theoryregexp "" uri in
-         let l = Str.split (Str.regexp "/") s in
-          insert_in_uri_tree (UriManager.uri_of_string uri) theoryuritree l
-    ) dbh ;
-   Dbm.close dbh
-;;
-
-(* GLOBAL REFERENCES (USED BY CALLBACKS) *)
-
-let annotated_obj = ref None;;      (* reference to a couple option where    *)
-                                    (* the first component is the current    *)
-                                    (* annotated object and the second is    *)
-                                    (* the map from ids to annotated targets *)
-let ann = ref (ref None);;          (* current annotation *)
-let radio_some_status = ref false;; (* is the radio_some button selected? *)
-
-let theory_visited_uris = ref [];;
-let theory_to_visit_uris = ref [];;
-let visited_uris = ref [];;
-let to_visit_uris = ref [];;
-
-(* CALLBACKS *)
-
-exception NoCurrentUri;;
-exception NoNextOrPrevUri;;
-exception GtkInterfaceInternalError;;
-
-let theory_get_current_uri () =
- match !theory_visited_uris with
-    [] -> raise NoCurrentUri
-  | uri::_ -> uri
-;;
-
-let get_current_uri () =
- match !visited_uris with
-    [] -> raise NoCurrentUri
-  | uri::_ -> uri
-;;
-
-let get_annotated_obj () =
- match !annotated_obj with
-    None   ->
-     let (annobj, ids_to_targets,_) =
-      (CicCache.get_annobj (get_current_uri ()))
-     in
-      annotated_obj := Some (annobj, ids_to_targets) ;
-      (annobj, ids_to_targets)
-  | Some annobj -> annobj
-;;
-
-let filename_of_uri uri =
- Getter.get uri
-;;
-
-let theory_update_output rendering_window uri =
- rendering_window#label#set_text (UriManager.string_of_uri uri) ;
- ignore (rendering_window#errors#delete_text 0 rendering_window#errors#length) ;
-  let mmlfile = XsltProcessor.process uri true "theory" in
-   theory_loaded_uri := mmlfile ;
-   !(rendering_window#output)#load mmlfile
-;;
-
-let update_output rendering_window uri =
- rendering_window#label#set_text (UriManager.string_of_uri uri) ;
- ignore (rendering_window#errors#delete_text 0 rendering_window#errors#length) ;
-  let mmlfile = XsltProcessor.process uri true "cic" in
-   loaded_uri := mmlfile ;
-   !(rendering_window#output)#load mmlfile
-;;
-
-let theory_next rendering_window () =
- match !theory_to_visit_uris with
-    [] -> raise NoNextOrPrevUri
-  | uri::tl ->
-     theory_to_visit_uris := tl ;
-     theory_visited_uris := uri::!theory_visited_uris ;
-     theory_update_output rendering_window uri ;
-     rendering_window#prevb#misc#set_sensitive true ;
-     if tl = [] then
-      rendering_window#nextb#misc#set_sensitive false
-;;
-
-let next rendering_window () =
- match !to_visit_uris with
-    [] -> raise NoNextOrPrevUri
-  | uri::tl ->
-     to_visit_uris := tl ;
-     visited_uris := uri::!visited_uris ;
-     annotated_obj := None ;
-     update_output rendering_window uri ;
-     rendering_window#prevb#misc#set_sensitive true ;
-     if tl = [] then
-      rendering_window#nextb#misc#set_sensitive false
-;;
-
-let theory_prev rendering_window () =
- match !theory_visited_uris with
-    [] -> raise NoCurrentUri
-  | [_] -> raise NoNextOrPrevUri
-  | uri::(uri'::tl as newvu) ->
-     theory_visited_uris := newvu ;
-     theory_to_visit_uris := uri::!theory_to_visit_uris ;
-     theory_update_output rendering_window uri' ;
-     rendering_window#nextb#misc#set_sensitive true ;
-     if tl = [] then
-      rendering_window#prevb#misc#set_sensitive false
-;;
-
-let prev rendering_window () =
- match !visited_uris with
-    [] -> raise NoCurrentUri
-  | [_] -> raise NoNextOrPrevUri
-  | uri::(uri'::tl as newvu) ->
-     visited_uris := newvu ;
-     to_visit_uris := uri::!to_visit_uris ;
-     annotated_obj := None ;
-     update_output rendering_window uri' ;
-     rendering_window#nextb#misc#set_sensitive true ;
-     if tl = [] then
-      rendering_window#prevb#misc#set_sensitive false
-;;
-
-(* called when an hyperlink is clicked *)
-let jump rendering_window node =
- let module M = Minidom in
-  let s =
-   match M.node_get_attribute node (M.mDOMString_of_string "href") with
-      None   -> assert false
-    | Some s -> M.string_of_mDOMString s
-  in
-   let uri = UriManager.uri_of_string s in
-    rendering_window#show () ;
-    rendering_window#prevb#misc#set_sensitive true ;
-    rendering_window#nextb#misc#set_sensitive false ;
-    visited_uris := uri::!visited_uris ;
-    to_visit_uris := [] ;
-    annotated_obj := None ;
-    update_output rendering_window uri
-;;
-
-let choose_selection rendering_window node =
- let module M = Minidom in
- let rec aux node =
-  match M.node_get_attribute node (M.mDOMString_of_string "xref") with
-     None ->
-      let parent =
-       match M.node_get_parent node with
-          None -> assert false
-        | Some parent -> parent
-      in
-       aux parent
-   | Some s -> !(rendering_window#output)#set_selection (Some node)
- in
-  match node with
-     None      -> !(rendering_window#output)#set_selection None
-   | Some node -> aux node
-;;
-
-
-let theory_selection_changed rendering_window uri () =
- match uri with
-    None -> ()
-  | Some uri' ->
-     if !theory_visited_uris <> [] then
-      rendering_window#prevb#misc#set_sensitive true ;
-     rendering_window#nextb#misc#set_sensitive false ;
-     theory_visited_uris := uri'::!theory_visited_uris ;
-     theory_to_visit_uris := [] ;
-     rendering_window#show () ;
-     theory_update_output rendering_window uri'
-;;
-
-let selection_changed rendering_window uri () =
- match uri with
-    None -> ()
-  | Some uri' ->
-     if !visited_uris <> [] then
-      rendering_window#prevb#misc#set_sensitive true ;
-     rendering_window#nextb#misc#set_sensitive false ;
-     visited_uris := uri'::!visited_uris ;
-     to_visit_uris := [] ;
-     annotated_obj := None ;
-     rendering_window#show () ;
-     update_output rendering_window uri'
-;;
-
-(* CSC: unificare con la creazione la prima volta *)
-let rec updateb_pressed theory_rendering_window rendering_window
- (sw1, sw ,(hbox : GPack.box)) mktree ()
-=
- Getter.update () ;
- (* let's empty the uri trees and rebuild them *)
- uritree := [] ;
- theoryuritree := [] ;
- build_uri_tree () ;
- hbox#remove !sw1#coerce ;
- hbox#remove !sw#coerce ;
-
- let sw3 =
-  GBin.scrolled_window ~width:250 ~height:600
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let tree1 =
-  GTree.tree ~selection_mode:`BROWSE ~packing:sw3#add_with_viewport () in
- let tree_item1 = GTree.tree_item ~label:"theory:/" ~packing:tree1#append () in
-  sw1 := sw3 ;
-  ignore(tree_item1#connect#select
-   (theory_selection_changed theory_rendering_window None)) ;
-  mktree theory_selection_changed theory_rendering_window tree_item1
-   (Dir ("theory:/",theoryuritree)) ;
-
- let sw2 =
-  GBin.scrolled_window ~width:250 ~height:600
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let tree =
-  GTree.tree ~selection_mode:`BROWSE ~packing:sw2#add_with_viewport () in
- let tree_item = GTree.tree_item ~label:"cic:/" ~packing:tree#append () in
-  sw := sw2 ;
-  ignore(tree_item#connect#select (selection_changed rendering_window None)) ;
-  mktree selection_changed rendering_window tree_item (Dir ("cic:/",uritree))
-;;
-
-let theory_check rendering_window () =
-  let output =
-  try
-   TheoryTypeChecker.typecheck (theory_get_current_uri ());
-   "Type Checking was successful"
-  with
-   TheoryTypeChecker.NotWellTyped s ->
-    "Type Checking was NOT successful:\n\t" ^ s
- in
-  (* next "cast" can't got rid of, but I don't know why *)
-  let errors = (rendering_window#errors : GEdit.text) in
-  let _ = errors#delete_text 0 errors#length  in
-   errors#insert output
-;;
-
-let check rendering_window () =
-  let output =
-  try
-   CicTypeChecker.typecheck (get_current_uri ());
-   "Type Checking was successful"
-  with
-   CicTypeChecker.NotWellTyped s -> "Type Checking was NOT successful:\n\t" ^ s
- in
-  (* next "cast" can't got rid of, but I don't know why *)
-  let errors = (rendering_window#errors : GEdit.text) in
-  let _ = errors#delete_text 0 errors#length  in
-   errors#insert output
-;;
-
-let annotateb_pressed rendering_window annotation_window () =
- let module M = Minidom in
- match !(rendering_window#output)#get_selection with
-    None -> (rendering_window#errors : GEdit.text)#insert "\nNo selection!\n"
-  | Some node ->
-     let xpath =
-      match M.node_get_attribute node (M.mDOMString_of_string "xref") with
-         None -> assert false
-       | Some xpath -> M.string_of_mDOMString xpath
-     in
-      try
-       let annobj = get_annotated_obj ()
-       (* next "cast" can't got rid of, but I don't know why *)
-       and annotation = (annotation_window#annotation : GEdit.text) in
-        ann := CicXPath.get_annotation annobj xpath ;
-        CicAnnotationHinter.create_hints annotation_window annobj xpath ;
-        annotation#delete_text 0 annotation#length ;
-        begin
-         match !(!ann) with
-             None      ->
-              annotation#misc#set_sensitive false ;
-              annotation_window#radio_none#set_active true ;
-              radio_some_status := false
-           | Some ann' ->
-              annotation#insert ann' ;
-              annotation#misc#set_sensitive true ;
-              annotation_window#radio_some#set_active true ;
-              radio_some_status := true
-        end ;
-        GMain.Grab.add (annotation_window#window_to_annotate#coerce) ;
-        annotation_window#show () ;
-      with
-        e ->
-         (* next "cast" can't got rid of, but I don't know why *)
-         let errors = (rendering_window#errors : GEdit.text) in
-          errors#insert ("\n" ^ Printexc.to_string e ^ "\n")
-;;
-
-(* called when the annotation is confirmed *)
-let save_annotation annotation =
- if !radio_some_status then
-  !ann := Some (annotation#get_chars 0 annotation#length)
- else
-  !ann := None ;
- match !annotated_obj with
-    None -> raise GtkInterfaceInternalError
-  | Some (annobj,_) ->
-     let uri = get_current_uri () in
-      let annxml = Annotation2Xml.pp_annotation annobj uri in
-       Xml.pp annxml (Some (fst (Getter.get_ann_file_name_and_uri uri)))
-;;
-
-let parse_no_cache uri =
- let module U = UriManager in
-  XsltProcessor.process uri false "cic"
-;;
-
-
-(* STUFF TO BUILD THE GTK INTERFACE *)
-
-(* Stuff to build the tree window *)
-
-(* selection_changed is actually selection_changed or theory_selection_changed*)
-let mktree selection_changed rendering_window =
- let rec aux treeitem =
-  function
-     Dir (dirname, content) ->
-      let subtree = GTree.tree () in
-       treeitem#set_subtree subtree ;
-        List.iter
-         (fun ti ->
-           let label = get_name ti
-           and uri = get_uri ti in
-            let treeitem2 = GTree.tree_item ~label:label () in
-             subtree#append treeitem2 ;
-             ignore(treeitem2#connect#select
-              (selection_changed rendering_window uri)) ;
-             aux treeitem2 ti
-         ) (List.sort compare !content)
-   | _ -> ()
- in
-  aux 
-;;
-
-(* Stuff for the widget settings *)
-
-let export_to_postscript output () =
- !output#export_to_postscript "output.ps" ;
-;;
-
-let activate_t1 output sw is_set jump_callback selection_changed_callback 
- last_uri ()
-=
- is_set := not !is_set ;
- sw#remove !output#coerce ;
- output :=
- (GMathView.math_view ~packing:sw#add ~width:400 ~height:380
-  ~use_t1_lib:!is_set ()) ;
- !output#load !last_uri ;
- ignore(!output#connect#jump jump_callback) ;
- ignore(!output#connect#selection_changed selection_changed_callback) ;
-;;
-
-let set_anti_aliasing output is_set () =
- is_set := not !is_set ;
- !output#set_anti_aliasing !is_set
-;;
-
-let set_kerning output is_set () =
- is_set := not !is_set ;
- !output#set_kerning !is_set
-;;
-
-let changefont output font_size_spinb () =
- !output#set_font_size font_size_spinb#value_as_int
-;;
-
-let set_log_verbosity output log_verbosity_spinb () =
- !output#set_log_verbosity log_verbosity_spinb#value_as_int
-;;
-
-class settings_window output sw jump_callback selection_changed_callback
- last_uri
-=
- let settings_window = GWindow.window ~title:"GtkMathView settings" () in
- let table = GPack.table ~rows:5 ~columns:5 ~packing:settings_window#add () in
- let button_t1 =
-  GButton.toggle_button ~label:"activate t1 fonts"
-   ~packing:(table#attach ~left:0 ~top:0) () in
- let font_size_spinb =
-  let sadj =
-   GData.adjustment ~value:14.0 ~lower:5.0 ~upper:50.0 ~step_incr:1.0 ()
-  in
-   GEdit.spin_button 
-    ~adjustment:sadj ~packing:(table#attach ~left:4 ~top:2) () in
- let button_set_anti_aliasing = GButton.toggle_button ~label:"set_anti_aliasing" ~packing:(table#attach ~left:1 ~top:3) () in
- let button_set_kerning =
-  GButton.toggle_button ~label:"set_kerning"
-   ~packing:(table#attach ~left:3 ~top:3) () in
- let log_verbosity_spinb =
-  let sadj =
-   GData.adjustment ~value:0.0 ~lower:0.0 ~upper:3.0 ~step_incr:1.0 ()
-  in
-   GEdit.spin_button 
-    ~adjustment:sadj ~packing:(table#attach ~left:2 ~top:2) () in
-object(self)
- method show = settings_window#show
- initializer
-  (* Signals connection *)
-  let is_set_use_t1_lib = ref false in
-   ignore(button_t1#connect#clicked
-    (activate_t1 output sw is_set_use_t1_lib jump_callback
-     selection_changed_callback last_uri)) ;
-  ignore(font_size_spinb#connect#changed (changefont output font_size_spinb)) ;
-  let is_set_anti_aliasing = ref false in
-   ignore(button_set_anti_aliasing#connect#toggled
-    (set_anti_aliasing output is_set_anti_aliasing));
-  let is_set_kerning = ref false in
-   ignore(button_set_kerning#connect#toggled
-    (set_kerning output is_set_kerning)) ;
-  ignore(log_verbosity_spinb#connect#changed
-   (set_log_verbosity output log_verbosity_spinb))
-end;;
-
-(* Main windows *)
-
-class annotation_window output label =
- let window_to_annotate =
-  GWindow.window ~title:"Annotating environment" ~border_width:2 () in
- let hbox1 =
-  GPack.hbox ~packing:window_to_annotate#add () in
- let vbox1 =
-  GPack.vbox ~packing:(hbox1#pack ~padding:5) () in
- let hbox2 =
-  GPack.hbox ~packing:(vbox1#pack ~expand:false ~fill:false ~padding:5) () in
- let radio_some = GButton.radio_button ~label:"Annotation below"
-  ~packing:(hbox2#pack ~expand:false ~fill:false ~padding:5) () in
- let radio_none = GButton.radio_button ~label:"No annotation"
-  ~group:radio_some#group
-  ~packing:(hbox2#pack ~expand:false ~fill:false ~padding:5)
-  ~active:true () in
- let annotation = GEdit.text ~editable:true ~width:400 ~height:180
-  ~packing:(vbox1#pack ~padding:5) () in
- let table =
-  GPack.table ~rows:3 ~columns:3 ~packing:(vbox1#pack ~padding:5) () in
- let annotation_hints =
-  Array.init 9
-   (function i ->
-     GButton.button ~label:("Hint " ^ string_of_int i)
-      ~packing:(table#attach ~left:(i mod 3) ~top:(i / 3)) ()
-   ) in
- let vbox2 =
-  GPack.vbox ~packing:(hbox1#pack ~expand:false ~fill:false ~padding:5) () in
- let confirmb =
-  GButton.button ~label:"O.K."
-   ~packing:(vbox2#pack ~expand:false ~fill:false ~padding:5) () in
- let abortb =
-  GButton.button ~label:"Abort"
-   ~packing:(vbox2#pack ~expand:false ~fill:false ~padding:5) () in
-object (self)
- method window_to_annotate = window_to_annotate
- method annotation = annotation
- method radio_some = radio_some
- method radio_none = radio_none
- method annotation_hints = annotation_hints
- method output = (output : GMathView.math_view ref)
- method show () = window_to_annotate#show ()
- initializer
-  (* signal handlers here *)
-  ignore (window_to_annotate#event#connect#delete
-   (fun _ ->
-     window_to_annotate#misc#hide () ;
-     GMain.Grab.remove (window_to_annotate#coerce) ; 
-     true
-   )) ;
-  ignore (confirmb#connect#clicked
-   (fun () ->
-     window_to_annotate#misc#hide () ;
-     save_annotation annotation ;
-     GMain.Grab.remove (window_to_annotate#coerce) ;
-     let new_current_uri =
-      (snd (Getter.get_ann_file_name_and_uri (get_current_uri ())))
-     in
-      visited_uris := new_current_uri::(List.tl !visited_uris) ;
-       label#set_text (UriManager.string_of_uri new_current_uri) ;
-       let mmlfile = parse_no_cache new_current_uri in
-        loaded_uri := mmlfile ;
-        !output#load mmlfile
-   )) ;
-  ignore (abortb#connect#clicked
-   (fun () ->
-     window_to_annotate#misc#hide () ;
-     GMain.Grab.remove (window_to_annotate#coerce)
-   ));
-  ignore (radio_some#connect#clicked
-   (fun () -> annotation#misc#set_sensitive true ; radio_some_status := true)) ;
-  ignore (radio_none #connect#clicked
-   (fun () ->
-     annotation#misc#set_sensitive false;
-     radio_some_status := false)
-   )
-end;;
-
-class rendering_window annotation_window output (label : GMisc.label) =
- let window =
-  GWindow.window ~title:"MathML viewer" ~border_width:2 () in
- let vbox =
-  GPack.vbox ~packing:window#add () in
- let _ = vbox#pack ~expand:false ~fill:false ~padding:5 label#coerce in
- let paned =
-  GPack.paned `HORIZONTAL ~packing:(vbox#pack ~expand:true ~padding:5) () in
- let scrolled_window0 =
-  GBin.scrolled_window ~border_width:10 ~packing:paned#add1 () in
- let _ = scrolled_window0#add !output#coerce in
- let scrolled_window =
-  GBin.scrolled_window
-   ~border_width:10 ~packing:paned#add2 ~width:240 ~height:100 () in
- let errors = GEdit.text ~packing:scrolled_window#add_with_viewport () in
- let hbox =
-  GPack.hbox ~packing:(vbox#pack ~expand:false ~fill:false ~padding:5) () in
- let prevb =
-  GButton.button ~label:"Prev"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let nextb =
-  GButton.button ~label:"Next"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let checkb =
-  GButton.button ~label:"Check"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let annotateb =
-  GButton.button ~label:"Annotate"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let settingsb =
-  GButton.button ~label:"Settings"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let button_export_to_postscript =
-  GButton.button ~label:"export_to_postscript"
-  ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let closeb =
-  GButton.button ~label:"Close"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
-object(self)
- method nextb = nextb
- method prevb = prevb
- method label = label
- method output = (output : GMathView.math_view ref)
- method errors = errors
- method show () = window#show ()
- initializer
-  nextb#misc#set_sensitive false ;
-  prevb#misc#set_sensitive false ;
-
-  (* signal handlers here *)
-  ignore(!output#connect#jump (jump self)) ;
-  ignore(!output#connect#selection_changed (choose_selection self)) ;
-  ignore(nextb#connect#clicked (next self)) ;
-  ignore(prevb#connect#clicked (prev self)) ;
-  ignore(checkb#connect#clicked (check self)) ;
-  ignore(closeb#connect#clicked window#misc#hide) ;
-  ignore(annotateb#connect#clicked (annotateb_pressed self annotation_window)) ;
-  let settings_window = new settings_window output scrolled_window0
-   (jump self) (choose_selection self) loaded_uri in
-  ignore(settingsb#connect#clicked settings_window#show) ;
-  ignore(button_export_to_postscript#connect#clicked (export_to_postscript output)) ;
-  ignore(window#event#connect#delete (fun _ -> window#misc#hide () ; true ))
-end;;
-
-class theory_rendering_window rendering_window =
- let window =
-  GWindow.window ~title:"MathML theory viewer" ~border_width:2 () in
- let vbox =
-  GPack.vbox ~packing:window#add () in
- let label =
-  GMisc.label ~text:"???"
-   ~packing:(vbox#pack ~expand:false ~fill:false ~padding:5) () in
- let paned =
-  GPack.paned `HORIZONTAL ~packing:(vbox#pack ~expand:true ~padding:5) () in
- let scrolled_window0 =
-  GBin.scrolled_window ~border_width:10 ~packing:paned#add1 () in
- let output =
-  ref (GMathView.math_view ~use_t1_lib:false ~width:400 ~height:380
-   ~packing:scrolled_window0#add ()) in
- let scrolled_window =
-  GBin.scrolled_window
-   ~border_width:10 ~packing:paned#add2 ~width:240 ~height:100 () in
- let errors = GEdit.text ~packing:scrolled_window#add_with_viewport () in
- let hbox =
-  GPack.hbox ~packing:(vbox#pack ~expand:false ~fill:false ~padding:5) () in
- let prevb =
-  GButton.button ~label:"Prev"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let nextb =
-  GButton.button ~label:"Next"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let checkb =
-  GButton.button ~label:"Check"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let settingsb =
-  GButton.button ~label:"Settings"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let button_export_to_postscript =
-  GButton.button ~label:"export_to_postscript"
-  ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
- let closeb =
-  GButton.button ~label:"Close"
-   ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
-object(self)
- method nextb = nextb
- method prevb = prevb
- method label = label
- method output = (output : GMathView.math_view ref)
- method errors = errors
- method show () = window#show ()
- initializer
-  nextb#misc#set_sensitive false ;
-  prevb#misc#set_sensitive false ;
-
-  (* signal handlers here *)
-  ignore(!output#connect#jump (jump rendering_window)) ;
-  ignore(!output#connect#selection_changed (choose_selection self)) ;
-  ignore(nextb#connect#clicked (theory_next self)) ;
-  ignore(prevb#connect#clicked (theory_prev self)) ;
-  ignore(checkb#connect#clicked (theory_check self)) ;
-  let settings_window = new settings_window output scrolled_window0
-   (jump rendering_window) (choose_selection self) theory_loaded_uri in
-  ignore(settingsb#connect#clicked settings_window#show) ;
-  ignore(button_export_to_postscript#connect#clicked (export_to_postscript output)) ;
-  ignore(closeb#connect#clicked window#misc#hide) ;
-  ignore(window#event#connect#delete (fun _ -> window#misc#hide () ; true ))
-end;;
-
-(* CSC: fare in modo che i due alberi vengano svuotati invece che distrutti *)
-class selection_window theory_rendering_window rendering_window =
-  let label = "cic:/" in
-  let theorylabel = "theory:/" in
-  let win = GWindow.window ~title:"Known uris" ~border_width:2 () in
-  let vbox = GPack.vbox ~packing:win#add () in
-  let hbox1 = GPack.hbox ~packing:(vbox#pack ~padding:5) () in
-  let sw1 = GBin.scrolled_window ~width:250 ~height:600
-   ~packing:(hbox1#pack ~padding:5) () in
-  let tree1 =
-   GTree.tree ~selection_mode:`BROWSE ~packing:sw1#add_with_viewport () in
-  let tree_item1 =
-   GTree.tree_item ~label:theorylabel ~packing:tree1#append () in
-  let sw = GBin.scrolled_window ~width:250 ~height:600
-   ~packing:(hbox1#pack ~padding:5) () in
-  let tree =
-   GTree.tree ~selection_mode:`BROWSE ~packing:sw#add_with_viewport () in
-  let tree_item =
-   GTree.tree_item ~label:label ~packing:tree#append () in
-  let hbox =
-   GPack.hbox ~packing:(vbox#pack ~expand:false ~fill:false ~padding:5) () in
-  let updateb =
-   GButton.button ~label:"Update"
-    ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
-  let quitb =
-   GButton.button ~label:"Quit"
-    ~packing:(hbox#pack ~expand:false ~fill:false ~padding:5) () in
-object (self)
-  method show () = win#show ()
-  initializer
-    mktree theory_selection_changed theory_rendering_window tree_item1
-     (Dir ("theory:/",theoryuritree));
-    mktree selection_changed rendering_window tree_item
-     (Dir ("cic:/",uritree));
-
-    (* signal handlers here *)
-    ignore (tree_item1#connect#select
-     ~callback:(theory_selection_changed theory_rendering_window None)) ;
-    ignore (tree_item#connect#select
-     ~callback:(selection_changed rendering_window None)) ;
-    ignore (win#connect#destroy ~callback:GMain.Main.quit) ;
-    ignore (quitb#connect#clicked GMain.Main.quit) ;
-    ignore(updateb#connect#clicked (updateb_pressed
-     theory_rendering_window rendering_window (ref sw1, ref sw, hbox1) mktree))
-end;;
-
-
-(* MAIN *)
-
-let _ =
- build_uri_tree () ;
- let output =
-  ref (GMathView.math_view ~use_t1_lib:false ~width:400 ~height:380 ())
- and label = GMisc.label ~text:"???" () in
-  let annotation_window = new annotation_window output label in
-  let rendering_window = new rendering_window annotation_window output label in
-  let theory_rendering_window = new theory_rendering_window rendering_window in
-  let selection_window =
-   new selection_window theory_rendering_window rendering_window
-  in
-   selection_window#show () ;
-   GMain.Main.main ()
-;;
diff --git a/helm/interface/mmlinterface.opt.saved b/helm/interface/mmlinterface.opt.saved
deleted file mode 100755 (executable)
index cb5708a..0000000
Binary files a/helm/interface/mmlinterface.opt.saved and /dev/null differ
diff --git a/helm/interface/pxpUriResolver.ml b/helm/interface/pxpUriResolver.ml
deleted file mode 100644 (file)
index 6ebbf71..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 11/10/2000                                 *)
-(*                                                                            *)
-(*                                                                            *)
-(******************************************************************************)
-
-let resolve =
- function
-    "http://localhost:8081/getdtd?url=cic.dtd" ->
-     Configuration.dtd_dir ^ "/cic.dtd"
-  | "http://localhost:8081/getdtd?url=maththeory.dtd" ->
-     Configuration.dtd_dir ^ "/maththeory.dtd"
-  | "http://localhost:8081/getdtd?url=annotations.dtd" ->
-     Configuration.dtd_dir ^ "/annotations.dtd"
-  | s  -> s
-;;
-
-let url_syntax =
-    let enable_if =
-      function
-         `Not_recognized  -> Neturl.Url_part_not_recognized
-       | `Allowed         -> Neturl.Url_part_allowed
-       | `Required        -> Neturl.Url_part_required
-    in
-    { Neturl.null_url_syntax with
-       Neturl.url_enable_scheme = enable_if `Allowed;
-       Neturl.url_enable_host   = enable_if `Allowed;
-       Neturl.url_enable_path   = Neturl.Url_part_required;
-       Neturl.url_accepts_8bits = true;
-    } 
-;;
-
-let file_url_of_id xid =
-  let file_url_of_sysname sysname =
-    (* By convention, we can assume that sysname is a URL conforming
-     * to RFC 1738 with the exception that it may contain non-ASCII
-     * UTF-8 characters. 
-     *)
-    try
-     Neturl.url_of_string url_syntax sysname 
-        (* may raise Malformed_URL *)
-    with
-     Neturl.Malformed_URL -> raise Pxp_reader.Not_competent
-  in
-  let url =
-    match xid with
-       Pxp_types.Anonymous          -> raise Pxp_reader.Not_competent
-     | Pxp_types.Public (_,sysname) ->
-        let sysname = resolve sysname in
-         if sysname <> "" then file_url_of_sysname sysname
-                          else raise Pxp_reader.Not_competent
-     | Pxp_types.System sysname     ->
-        let sysname = resolve sysname in
-         file_url_of_sysname sysname
-  in
-  let scheme =
-    try Neturl.url_scheme url with Not_found -> "file" in
-  let host =
-    try Neturl.url_host url with Not_found -> "" in
-    
-  if scheme <> "file" then raise Pxp_reader.Not_competent;
-  if host <> "" && host <> "localhost" then raise Pxp_reader.Not_competent;
-    
-  url
-;;
-
-let from_file ?system_encoding utf8_filename =
-  
-  let r =
-    new Pxp_reader.resolve_as_file 
-      ?system_encoding:system_encoding
-      ~url_of_id:file_url_of_id
-      ()
-  in
-
-  let utf8_abs_filename =
-    if utf8_filename <> "" && utf8_filename.[0] = '/' then
-      utf8_filename
-    else
-      Sys.getcwd() ^ "/" ^ utf8_filename
-  in
-
-  let syntax = { Neturl.ip_url_syntax with Neturl.url_accepts_8bits = true } in
-  let url = Neturl.make_url 
-             ~scheme:"file" 
-             ~host:"localhost" 
-             ~path:(Neturl.split_path utf8_abs_filename) 
-             syntax
-  in
-
-  let xid = Pxp_types.System (Neturl.string_of_url url) in
-    
-
-  Pxp_yacc.ExtID(xid, r)
-;;
-
-
diff --git a/helm/interface/reduction.ml b/helm/interface/reduction.ml
deleted file mode 100644 (file)
index 8acb8eb..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-let read_from_stdin = ref false;;
-let uris_in_input = ref false;;
-let reduction_only = ref false;;
-
-let parse uri =
- print_endline ("^^^" ^ uri ^ "^^^") ;
- print_string (CicPp.ppobj (CicCache.get_obj (UriManager.uri_of_string uri))) ;
- print_endline ("\n$$$" ^ uri ^ "$$$\n")
-;;
-
-let uri_of_filename fn =
- if !uris_in_input then fn
- else
-  let uri =
-   Str.replace_first (Str.regexp (Str.quote Configuration.helm_dir)) "cic:" fn
-  in
-   let uri' = Str.replace_first (Str.regexp "\.xml$") "" uri in
-    uri'
-;;
-
-(* filenames are read from command line and converted to uris via *)
-(* uri_of_filenames; then the cic terms are load in cache via     *)
-(* CicCache.get_obj and then pretty printed via CicPp.ppobj       *)
-
-exception NotADefinition;;
-
-let main () =
- let files = ref [] in
- Arg.parse
-  ["-stdin", Arg.Set read_from_stdin, "Read from stdin" ;
-   "-uris", Arg.Set uris_in_input, "Read uris, not filenames" ;
-   "-update", Arg.Unit Getter.update, "Update the getter view of the world" ;
-   "-reduction", Arg.Set reduction_only, "Do reduction instead of tyepchecking"]
-  (fun x -> files := (uri_of_filename x) :: !files)
-  "
-usage: experiment file ...
-
-List of options:";
- if !read_from_stdin then
-  begin
-   try
-    while true do
-     let l = Str.split (Str.regexp " ") (read_line ()) in
-      List.iter (fun x -> files := (uri_of_filename x) :: !files) l
-    done
-   with
-    End_of_file -> ()
-  end ;
- files := List.rev !files;
-  List.iter
-   (function x ->
-     print_string x ;
-     flush stdout ;
-     (try
-       if !reduction_only then
-        match CicCache.get_obj (UriManager.uri_of_string x) with
-           Cic.Definition (_,bo,_,_) ->
-            CicTypeChecker.typecheck (UriManager.uri_of_string x) ;
-            ignore (CicReduction.whd bo)
-         | _ -> raise NotADefinition
-       else
-        CicTypeChecker.typecheck (UriManager.uri_of_string x)
-     with
-       e -> print_newline () ; flush stdout ; raise e ) ;
-     print_endline " OK!" ;
-     flush stdout
-   ) !files
-;;
-
-main ();;
diff --git a/helm/interface/servers.txt.example b/helm/interface/servers.txt.example
deleted file mode 100644 (file)
index 0a1221d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-http://rigoletto.casamia.csc/helm1/coq
-http://rigoletto.casamia.csc/helm2/coq
diff --git a/helm/interface/t1.config b/helm/interface/t1.config
deleted file mode 100644 (file)
index afb669e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-ENCODING=.
-AFM=/usr/share/texmf/fonts/afm/
-TYPE1=/usr/share/texmf/fonts/type1/bluesky/cm/:/usr/X11R6/lib/X11/fonts/Type1/:.
diff --git a/helm/interface/theory.ml b/helm/interface/theory.ml
deleted file mode 100644 (file)
index be5b288..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-type theory_elem =
-   Theorem of string                    (* uri *)
- | Definition of string                 (* uri *)
- | Axiom of string                      (* uri *)
- | Variable of string                   (* uri *)
- | Section of string * theory_elem list (* uri, subtheory *)
-and theory =
- string * theory_elem list              (* uri, subtheory *)
-;;
diff --git a/helm/interface/theoryCache.ml b/helm/interface/theoryCache.ml
deleted file mode 100644 (file)
index 47a8646..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-type check_status = Checked | Unchecked;;
-
-let hashtable = Hashtbl.create 17;;
-
-let get_term_and_type_checking_info uri =
- try
-  Hashtbl.find hashtable uri
- with
-  Not_found -> 
-   let filename = Getter.get uri in
-    let term = TheoryParser.theory_of_xml filename in
-     Hashtbl.add hashtable uri (term, Unchecked) ;
-     (term, Unchecked)
-;;
-
-
-let get_theory uri =
- fst (get_term_and_type_checking_info uri)
-;;
-
-let is_type_checked uri =
- match snd (get_term_and_type_checking_info uri) with
-    Checked   -> true
-  | Unchecked -> false
-;;
-
-let set_type_checking_info uri =
- match Hashtbl.find hashtable uri with
-  (term, _) ->
-   Hashtbl.remove hashtable uri ;
-   Hashtbl.add hashtable uri (term, Checked)
-;;
diff --git a/helm/interface/theoryParser.ml b/helm/interface/theoryParser.ml
deleted file mode 100644 (file)
index abc3528..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-exception Warnings;;
-
-class warner =
-  object 
-    method warn w =
-      print_endline ("WARNING: " ^ w) ;
-      (raise Warnings : unit)
-  end
-;;
-
-exception EmptyUri;;
-
-let theory_of_xml filename =
- let module Y = Pxp_yacc in
-  try 
-    let d =
-     let config = {Y.default_config with Y.warner = new warner} in
-      Y.parse_document_entity config
-(*PXP       (Y.ExtID (Pxp_types.System filename,
-         new Pxp_reader.resolve_as_file ~url_of_id ()))
-*)     (PxpUriResolver.from_file filename)
-       Y.default_spec
-    in
-     TheoryParser2.get_theory d#root
-  with
-   e ->
-     print_endline (Pxp_types.string_of_exn e) ;
-     raise e
-;;
diff --git a/helm/interface/theoryParser2.ml b/helm/interface/theoryParser2.ml
deleted file mode 100644 (file)
index 666b024..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-exception IllFormedXml of int;;
-
-(* Utility functions that transform a Pxp attribute into something useful *)
-
-let string_of_attr a =
- let module T = Pxp_types in
-  match a with
-     T.Value s -> s
-   | _ -> raise (IllFormedXml 0)
-
-let get_theory n =
- let module D = Pxp_document in
- let module T = Theory in
-  let rec get_theory_elem n =
-   let ntype = n # node_type in
-   match ntype with
-     D.T_element "THEOREM" ->
-       let uri = string_of_attr (n # attribute "uri") in
-        T.Theorem uri
-   | D.T_element "DEFINITION" ->
-       let uri = string_of_attr (n # attribute "uri") in
-        T.Definition uri
-   | D.T_element "AXIOM" ->
-      let uri = string_of_attr (n # attribute "uri") in
-       T.Axiom uri
-   | D.T_element "VARIABLE" ->
-      let uri = string_of_attr (n # attribute "uri") in
-       T.Variable uri
-   | D.T_element "SECTION" ->
-      let uri = string_of_attr (n # attribute "uri")
-      and subtheory = List.map get_theory_elem (n # sub_nodes) in
-       T.Section (uri, subtheory)
-   | D.T_element _ | D.T_data | _ ->
-      raise (IllFormedXml 1)
-  in
-   match n # node_type with
-      D.T_element "Theory" ->
-       let uri = string_of_attr (n # attribute "uri") in
-        (uri, List.map get_theory_elem (n # sub_nodes))
-    | _ -> raise (IllFormedXml 2)
-;;
diff --git a/helm/interface/theoryTypeChecker.ml b/helm/interface/theoryTypeChecker.ml
deleted file mode 100644 (file)
index 2d24536..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-exception NotWellTyped of string;;
-
-let typecheck uri =
-  let rec typecheck_term curi t =
-  let module T = Theory in
-  let module P = CicTypeChecker in
-  let module C = CicCache in
-  let module U = UriManager in
-  let obj_typecheck uri =
-   try
-    P.typecheck (U.uri_of_string uri)
-   with
-    P.NotWellTyped s ->
-     raise (NotWellTyped
-      ("Type Checking was NOT successfull due to an error during " ^
-       "type-checking of term " ^ uri ^ ":\n\n" ^ s))
-  in
-    match t with
-       T.Theorem uri -> obj_typecheck (curi ^ "/" ^ uri)
-     | T.Definition uri -> obj_typecheck (curi ^ "/" ^ uri)
-     | T.Axiom uri -> obj_typecheck (curi ^ "/" ^ uri)
-     | T.Variable uri -> obj_typecheck (curi ^ "/" ^ uri)
-     | T.Section (uri,l) -> typecheck_theory l (curi ^ "/" ^ uri)
- and typecheck_theory l curi =
-  List.iter (typecheck_term curi) l
- in
-  let (uri, l) = TheoryCache.get_theory uri in
-   typecheck_theory l uri
-;;
diff --git a/helm/interface/toglie_helm_xref.pl b/helm/interface/toglie_helm_xref.pl
deleted file mode 100755 (executable)
index 13c9739..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/perl
-
-while(<STDIN>)
-{
-  s/helm:xref="[^"]*"//g;
-  s/helm:xref='[^']*'//g;
-  print;
-}
diff --git a/helm/interface/toglie_helm_xref.sh b/helm/interface/toglie_helm_xref.sh
deleted file mode 100755 (executable)
index b3cb4e0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-echo "****" $1
-cp $1 /tmp/pippo
-cat /tmp/pippo | ./toglie_helm_xref.pl > $1
diff --git a/helm/interface/uriManager.ml b/helm/interface/uriManager.ml
deleted file mode 100644 (file)
index d03d997..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-(* "cic:/a/b/c.con" => [| "cic:/a" ; "cic:/a/b" ; "cic:/a/b/c.con" ; "c" |] *)
-type uri = string array;;
-
-let eq uri1 uri2 =
- uri1 == uri2
-;;
-
-let string_of_uri uri = uri.(Array.length uri - 2);;
-let name_of_uri uri = uri.(Array.length uri - 1);;
-let buri_of_uri uri = uri.(Array.length uri - 3);;
-let depth_of_uri uri = Array.length uri - 2;;
-
-(*CSC: ora e' diventato poco efficiente, migliorare *)
-let relative_depth curi uri cookingsno =
- let rec length_of_current_prefix l1 l2 =
-  match (l1, l2) with
-     (he1::tl1, he2::tl2) when he1 == he2 ->
-       1 + length_of_current_prefix tl1 tl2
-   | (_,_) -> 0
- in
-  depth_of_uri uri -
-   length_of_current_prefix
-    (Array.to_list (Array.sub curi 0 (Array.length curi - (2 + cookingsno))))
-    (Array.to_list (Array.sub uri 0 (Array.length uri - 2)))
-  (*CSC: vecchio codice da eliminare
-  if eq curi uri then 0
-  else
-   depth_of_uri uri -
-    length_of_current_prefix (Array.to_list curi) (Array.to_list uri)
-  *)
-;;
-
-module OrderedStrings =
- struct
-  type t = string
-  let compare (s1 : t) (s2 : t) = compare s1 s2
- end
-;;
-
-module SetOfStrings = Map.Make(OrderedStrings);;
-
-(*CSC: commento obsoleto ed errato *)
-(* Invariant: the map is the identity function,      *)
-(*  i.e. (SetOfStrings.find str !set_of_uri) == str  *)
-let set_of_uri = ref SetOfStrings.empty;;
-let set_of_prefixes = ref SetOfStrings.empty;;
-
-(* similar to uri_of_string, but used for prefixes of uris *)
-let normalize prefix =
- try
-  SetOfStrings.find prefix !set_of_prefixes
- with
-  Not_found ->
-   set_of_prefixes := SetOfStrings.add prefix prefix !set_of_prefixes ;
-   prefix
-;;
-
-exception IllFormedUri of string;;
-
-let mk_prefixes str =
- let rec aux curi =
-  function
-     [he] ->
-      let prefix_uri = curi ^ "/" ^ he
-      and name = List.hd (Str.split (Str.regexp "\.") he) in
-       [ normalize prefix_uri ; name ]
-   | he::tl ->
-      let prefix_uri = curi ^ "/" ^ he in
-       (normalize prefix_uri)::(aux prefix_uri tl)
-   | _ -> raise (IllFormedUri str)
- in
-  let tokens = (Str.split (Str.regexp "/") str) in
-   (* ty = "cic:" *)
-   let (ty, sp) = (List.hd tokens, List.tl tokens) in
-    aux ty sp
-;;
-
-let uri_of_string str =
- try
-  SetOfStrings.find str !set_of_uri
- with
-  Not_found ->
-   let uri = Array.of_list (mk_prefixes str) in
-    set_of_uri := SetOfStrings.add str uri !set_of_uri ;
-    uri
-;;
diff --git a/helm/interface/uriManager.ml.implementazione_banale b/helm/interface/uriManager.ml.implementazione_banale
deleted file mode 100644 (file)
index cd0d71f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-type uri = string;;
-
-let eq uri1 uri2 =
- uri1 = uri2
-;;
-
-let string_of_uri uri = uri;;
-let uri_of_string str = str;;
-
-let name_of_uri uri =
- let l = Str.split (Str.regexp "/") uri in
-  let name_suf = List.nth l (List.length l - 1) in
-   List.hd (Str.split (Str.regexp "\.") name_suf)
-;;
-
-let depth_of_uri uri =
- List.length (Str.split (Str.regexp "/") uri) - 2
-;;
diff --git a/helm/interface/uriManager.ml.implementazione_doppia b/helm/interface/uriManager.ml.implementazione_doppia
deleted file mode 100644 (file)
index d03d997..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-(* "cic:/a/b/c.con" => [| "cic:/a" ; "cic:/a/b" ; "cic:/a/b/c.con" ; "c" |] *)
-type uri = string array;;
-
-let eq uri1 uri2 =
- uri1 == uri2
-;;
-
-let string_of_uri uri = uri.(Array.length uri - 2);;
-let name_of_uri uri = uri.(Array.length uri - 1);;
-let buri_of_uri uri = uri.(Array.length uri - 3);;
-let depth_of_uri uri = Array.length uri - 2;;
-
-(*CSC: ora e' diventato poco efficiente, migliorare *)
-let relative_depth curi uri cookingsno =
- let rec length_of_current_prefix l1 l2 =
-  match (l1, l2) with
-     (he1::tl1, he2::tl2) when he1 == he2 ->
-       1 + length_of_current_prefix tl1 tl2
-   | (_,_) -> 0
- in
-  depth_of_uri uri -
-   length_of_current_prefix
-    (Array.to_list (Array.sub curi 0 (Array.length curi - (2 + cookingsno))))
-    (Array.to_list (Array.sub uri 0 (Array.length uri - 2)))
-  (*CSC: vecchio codice da eliminare
-  if eq curi uri then 0
-  else
-   depth_of_uri uri -
-    length_of_current_prefix (Array.to_list curi) (Array.to_list uri)
-  *)
-;;
-
-module OrderedStrings =
- struct
-  type t = string
-  let compare (s1 : t) (s2 : t) = compare s1 s2
- end
-;;
-
-module SetOfStrings = Map.Make(OrderedStrings);;
-
-(*CSC: commento obsoleto ed errato *)
-(* Invariant: the map is the identity function,      *)
-(*  i.e. (SetOfStrings.find str !set_of_uri) == str  *)
-let set_of_uri = ref SetOfStrings.empty;;
-let set_of_prefixes = ref SetOfStrings.empty;;
-
-(* similar to uri_of_string, but used for prefixes of uris *)
-let normalize prefix =
- try
-  SetOfStrings.find prefix !set_of_prefixes
- with
-  Not_found ->
-   set_of_prefixes := SetOfStrings.add prefix prefix !set_of_prefixes ;
-   prefix
-;;
-
-exception IllFormedUri of string;;
-
-let mk_prefixes str =
- let rec aux curi =
-  function
-     [he] ->
-      let prefix_uri = curi ^ "/" ^ he
-      and name = List.hd (Str.split (Str.regexp "\.") he) in
-       [ normalize prefix_uri ; name ]
-   | he::tl ->
-      let prefix_uri = curi ^ "/" ^ he in
-       (normalize prefix_uri)::(aux prefix_uri tl)
-   | _ -> raise (IllFormedUri str)
- in
-  let tokens = (Str.split (Str.regexp "/") str) in
-   (* ty = "cic:" *)
-   let (ty, sp) = (List.hd tokens, List.tl tokens) in
-    aux ty sp
-;;
-
-let uri_of_string str =
- try
-  SetOfStrings.find str !set_of_uri
- with
-  Not_found ->
-   let uri = Array.of_list (mk_prefixes str) in
-    set_of_uri := SetOfStrings.add str uri !set_of_uri ;
-    uri
-;;
diff --git a/helm/interface/uriManager.ml.implementazione_semplice b/helm/interface/uriManager.ml.implementazione_semplice
deleted file mode 100644 (file)
index 8b8921b..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-type uri = string;;
-
-let eq uri1 uri2 =
- uri1 == uri2
-;;
-
-let string_of_uri uri = uri;;
-
-let name_of_uri uri =
- let l = Str.split (Str.regexp "/") uri in
-  let name_suf = List.nth l (List.length l - 1) in
-   List.hd (Str.split (Str.regexp "\.") name_suf)
-;;
-
-let depth_of_uri uri =
- List.length (Str.split (Str.regexp "/") uri) - 2
-;;
-
-module OrderedStrings =
- struct
-  type t = string
-  let compare (s1 : t) (s2 : t) = compare s1 s2
- end
-;;
-
-module SetOfStrings = Map.Make(OrderedStrings);;
-
-(* Invariant: the map is the identity function,      *)
-(*  i.e. (SetOfStrings.find str !set_of_uri) == str  *)
-let set_of_uri = ref SetOfStrings.empty;;
-
-let uri_of_string str =
- try
-  SetOfStrings.find str !set_of_uri
- with
-  Not_found ->
-   set_of_uri := SetOfStrings.add str str !set_of_uri ;
-   str
-;;
diff --git a/helm/interface/uriManager.mli b/helm/interface/uriManager.mli
deleted file mode 100644 (file)
index 8cffc94..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-type uri
-
-val eq : uri -> uri -> bool
-
-val uri_of_string : string -> uri
-
-val string_of_uri : uri -> string  (* complete uri *)
-val name_of_uri   : uri -> string  (* name only (without extension)*)
-val buri_of_uri   : uri -> string  (* base uri only *)
-val depth_of_uri  : uri -> int     (* length of the path *)
-
-(* relative_depth curi uri cookingsno                                        *)
-(* is the number of times to cook uri to use it when the current uri is curi *)
-(* cooked cookingsno times                                                   *)
-val relative_depth : uri -> uri -> int -> int
diff --git a/helm/interface/uris_of_filenames.pl b/helm/interface/uris_of_filenames.pl
deleted file mode 100755 (executable)
index d738f51..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/perl
-
-while(<STDIN>) {
-   chomp;
-   split / /;
-   for (@_) {
-      if (/.*\.(con|var|ind)\.xml/)
-       { s/\./cic:/; }
-      elsif (/.*\.theory\.xml/)
-       { s/\./theory:/; }
-      s/\.xml//;
-      print;
-      print "\n";
- }
-}
diff --git a/helm/interface/xaland-cpp/xaland.cpp b/helm/interface/xaland-cpp/xaland.cpp
deleted file mode 100644 (file)
index e221402..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-// Base header file.  Must be first.
-#include <Include/PlatformDefinitions.hpp>
-
-#include <iostream>
-#include <fstream>
-
-#include <util/PlatformUtils.hpp>
-
-#include <PlatformSupport/DOMStringHelper.hpp>
-
-#include <DOMSupport/DOMSupportDefault.hpp>
-
-#include <XPath/XObjectFactoryDefault.hpp>
-#include <XPath/XPathSupportDefault.hpp>
-#include <XPath/XPathFactoryDefault.hpp>
-
-#include <XSLT/StylesheetConstructionContextDefault.hpp>
-#include <XSLT/StylesheetExecutionContextDefault.hpp>
-#include <XSLT/XSLTEngineImpl.hpp>
-#include <XSLT/XSLTInit.hpp>
-#include <XSLT/XSLTInputSource.hpp>
-#include <XSLT/XSLTProcessorEnvSupportDefault.hpp>
-#include <XSLT/XSLTResultTarget.hpp>
-
-#include <XercesParserLiaison/XercesDOMSupport.hpp>
-#include <XercesParserLiaison/XercesParserLiaison.hpp>
-
-int main(int argc, const char* [])
-{
-#if !defined(XALAN_NO_NAMESPACES)
-   using std::cerr;
-   using std::endl;
-   using std::ofstream;
-#endif
-
-   if (argc != 1) {
-      cerr << "Usage: SimpleTransform"
-           << endl
-           << endl;
-   } else {
-      try {
-         // Call the static initializer for Xerces...
-         XMLPlatformUtils::Initialize();
-
-         {
-            // Initialize the Xalan XSLT subsystem...
-            XSLTInit theInit;
-
-            // Create the support objects that are necessary for
-            // running the processor...
-            XercesDOMSupport theDOMSupport;
-            XercesParserLiaison        theParserLiaison(theDOMSupport);
-            XPathSupportDefault        theXPathSupport(theDOMSupport);
-            XSLTProcessorEnvSupportDefault theXSLTProcessorEnvSupport;
-            XObjectFactoryDefault theXObjectFactory;
-            XPathFactoryDefault        theXPathFactory;
-
-            // Create a processor...
-            XSLTEngineImpl theProcessor(
-               theParserLiaison,
-               theXPathSupport,
-               theXSLTProcessorEnvSupport,
-               theDOMSupport,
-               theXObjectFactory,
-               theXPathFactory);
-
-            // Connect the processor to the support object...
-           theXSLTProcessorEnvSupport.setProcessor(&theProcessor);
-
-           // Create a stylesheet construction context, and a stylesheet
-           // execution context...
-           StylesheetConstructionContextDefault theConstructionContext(
-              theProcessor,
-              theXSLTProcessorEnvSupport,
-              theXPathFactory);
-
-           StylesheetExecutionContextDefault theExecutionContext(
-              theProcessor,
-              theXSLTProcessorEnvSupport,
-              theXPathSupport,
-              theXObjectFactory);
-
-           // Our input files...The assumption is that the executable will be
-           // run from same directory as the input files.
-           const XalanDOMString        theXMLFileName("foo.xml");
-           const XalanDOMString        theXSLFileName("foo.xsl");
-
-           // Our input sources...
-           XSLTInputSource theInputSource(c_wstr(theXMLFileName));
-           XSLTInputSource theStylesheetSource(c_wstr(theXSLFileName));
-
-           // Our output target...
-           const XalanDOMString theOutputFileName("foo.out");
-           XSLTResultTarget theResultTarget(theOutputFileName);
-
-           theProcessor.process(
-              theInputSource,
-              theStylesheetSource,
-              theResultTarget,
-              theConstructionContext,
-              theExecutionContext);
-
-         }
-
-         // Call the static terminator for Xerces...
-         XMLPlatformUtils::Terminate();
-      }
-      catch(...) {
-         cerr << "Exception caught!!!"
-              << endl
-              << endl;
-      }
-   }
-
-   return 0;
-}
-
-/**************************************************/
-/*
-
-public class xaland {
-   public static void Transform(StylesheetRoot style, String xmlSourceURL, String OutputURL) throws java.io.IOException, java.net.MalformedURLException, org.xml.sax.SAXException
-   {
-      XSLTInputSource xmlSource = new XSLTInputSource (xmlSourceURL);
-      XSLTResultTarget xmlResult = new XSLTResultTarget (OutputURL);
-      style.process(xmlSource, xmlResult);
-   }
-
-   public static void main(String argv[]) throws  java.io.IOException, java.net.MalformedURLException, org.xml.sax.SAXException
-   {
-      int port    = Integer.parseInt(argv[0]);
-      int port2   = Integer.parseInt(argv[1]);
-      String xsl1 = argv[2];
-      String xsl2 = argv[3];
-      String theory_xsl1 = argv[4];
-      String theory_xsl2 = argv[5];
-
-      XSLTProcessor theory_processor =
-       XSLTProcessorFactory.getProcessor(new org.apache.xalan.xpath.xdom.XercesLiaison());
-      StylesheetRoot theory_style1 =
-         theory_processor.processStylesheet(theory_xsl1);
-      theory_processor.reset();
-      StylesheetRoot theory_style2 =
-         theory_processor.processStylesheet(theory_xsl2);
-      theory_processor.setStylesheet(theory_style2);
-
-      XSLTProcessor processor =
-       XSLTProcessorFactory.getProcessor(new org.apache.xalan.xpath.xdom.XercesLiaison());
-      StylesheetRoot style1 = processor.processStylesheet(xsl1);
-      processor.reset();
-      StylesheetRoot style2 = processor.processStylesheet(xsl2);
-      processor.setStylesheet(style2);
-
-      DatagramSocket socket = new DatagramSocket(port);
-
-      System.out.println("Demon activated on input port " + port +
-       " and output port " + port2);
-      while(true) {
-         System.out.print("Ready...");
-
-         /* Warning: the packet must be a fresh one! * /
-         DatagramPacket packet = new DatagramPacket(new byte[1024],1024);
-         socket.receive(packet);
-         byte data[] = packet.getData();
-         int datalen = packet.getLength();
-         String received = new String(data,0,datalen);
-
-         int first = received.indexOf(' ');
-         int last  = received.lastIndexOf(' ');
-         String mode = received.substring(0,first);
-         String input = received.substring(first+1,last);
-         String output = received.substring(last+1);
-
-         System.out.println("request received! Parameters are");
-         System.out.println("Mode: " + mode + " ");
-         System.out.println("Input file: \"" + input + "\"");
-         System.out.println("Output file: \"" + output  + "\"\n");
-
-         if ((new File(output)).exists()) {
-            System.out.println("Using cached version\n");
-         } else {
-            FileOutputStream fout = new FileOutputStream(output);
-            if (mode.equals("cic")) {
-               processor.setDocumentHandler(style2.getSAXSerializer(fout));
-               XSLTResultTarget content = new XSLTResultTarget(processor);
-               style1.process(new XSLTInputSource(input), content);
-            } else if (mode.equals("theory")) {
-               theory_processor.setDocumentHandler(
-                  theory_style2.getSAXSerializer(fout));
-               XSLTResultTarget content =
-                  new XSLTResultTarget(theory_processor);
-               theory_style1.process(new XSLTInputSource(input), content);
-            }
-         }
-
-         InetAddress address = InetAddress.getLocalHost();
-         DatagramSocket socket2 = new DatagramSocket();
-
-         byte buf[] = new byte[0];
-         DatagramPacket packet2 = new DatagramPacket(buf,0,address,port2);
-
-         socket2.send(packet2);
-      }
-   }
-}
-
-*/
diff --git a/helm/interface/xaland-java/rompi.class b/helm/interface/xaland-java/rompi.class
deleted file mode 100644 (file)
index 4abfe38..0000000
Binary files a/helm/interface/xaland-java/rompi.class and /dev/null differ
diff --git a/helm/interface/xaland-java/rompi.java b/helm/interface/xaland-java/rompi.java
deleted file mode 100644 (file)
index 6a633db..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-import java.net.*;
-
-public class rompi {
-   public static void main(String argv[]) throws java.io.IOException, java.net.MalformedURLException
-   {
-      /* Wait forever ;-) */
-      DatagramSocket socket2 = new DatagramSocket(12346);
-      DatagramPacket packet2 = new DatagramPacket(new byte[1],1);
-      System.out.println("Ho preso il socket e non lo lascio piu', caro pu, caro pu");
-      socket2.receive(packet2);
-   }
-}
diff --git a/helm/interface/xaland-java/sped.class b/helm/interface/xaland-java/sped.class
deleted file mode 100644 (file)
index cc6f53d..0000000
Binary files a/helm/interface/xaland-java/sped.class and /dev/null differ
diff --git a/helm/interface/xaland-java/sped.java b/helm/interface/xaland-java/sped.java
deleted file mode 100644 (file)
index 9d96610..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-import java.net.*;
-
-public class sped {
-   public static void main(String argv[]) throws java.io.IOException, java.net.MalformedURLException
-   {
-      String input = argv[0];
-      String out1  = argv[1];
-      String out2  = argv[2];
-
-      String sent = input + " " + out1 + " " + out2;
-      
-      InetAddress address = InetAddress.getLocalHost();
-      DatagramSocket socket = new DatagramSocket();
-
-      int strlen = sent.length();
-      byte buf[] = new byte[strlen];
-      sent.getBytes(0,strlen,buf,0);
-      DatagramPacket packet = new DatagramPacket(buf,strlen,address,12345);
-
-      socket.send(packet);
-
-
-      /* Wait for answer (or forever ;-) */
-      DatagramSocket socket2 = new DatagramSocket(12346);
-      DatagramPacket packet2 = new DatagramPacket(new byte[1],1);
-      socket2.receive(packet2);
-   }
-}
diff --git a/helm/interface/xaland-java/xaland.class b/helm/interface/xaland-java/xaland.class
deleted file mode 100644 (file)
index 6871fda..0000000
Binary files a/helm/interface/xaland-java/xaland.class and /dev/null differ
diff --git a/helm/interface/xaland-java/xaland.java b/helm/interface/xaland-java/xaland.java
deleted file mode 100644 (file)
index 1b9312c..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-import org.apache.xalan.xslt.*;
-import java.net.*;
-import java.io.*;
-
-public class xaland {
-/*
-   public static void Transform(StylesheetRoot style, String xmlSourceURL, String OutputURL) throws java.io.IOException, java.net.MalformedURLException, org.xml.sax.SAXException
-   {
-      XSLTInputSource xmlSource = new XSLTInputSource (xmlSourceURL);
-      XSLTResultTarget xmlResult = new XSLTResultTarget (OutputURL);
-      style.process(xmlSource, xmlResult);
-   }
-*/
-
-   public static void main(String argv[]) throws  java.io.IOException, java.net.MalformedURLException, org.xml.sax.SAXException
-   {
-      int port    = Integer.parseInt(argv[0]);
-      int port2   = Integer.parseInt(argv[1]);
-      String xsl1 = argv[2];
-      String xsl2 = argv[3];
-      String theory_xsl1 = argv[4];
-      String theory_xsl2 = argv[5];
-
-      XSLTProcessor theory_processor =
-       XSLTProcessorFactory.getProcessor(new org.apache.xalan.xpath.xdom.XercesLiaison());
-      StylesheetRoot theory_style1 =
-         theory_processor.processStylesheet(theory_xsl1);
-      theory_processor.reset();
-      StylesheetRoot theory_style2 =
-         theory_processor.processStylesheet(theory_xsl2);
-      theory_processor.setStylesheet(theory_style2);
-
-      XSLTProcessor processor =
-       XSLTProcessorFactory.getProcessor(new org.apache.xalan.xpath.xdom.XercesLiaison());
-      StylesheetRoot style1 = processor.processStylesheet(xsl1);
-      processor.reset();
-      StylesheetRoot style2 = processor.processStylesheet(xsl2);
-      processor.setStylesheet(style2);
-
-      DatagramSocket socket = new DatagramSocket(port);
-
-      System.out.println("Demon activated on input port " + port +
-       " and output port " + port2);
-      while(true) {
-         System.out.print("Ready...");
-
-         /* Warning: the packet must be a fresh one! */
-         DatagramPacket packet = new DatagramPacket(new byte[1024],1024);
-         socket.receive(packet);
-         byte data[] = packet.getData();
-         int datalen = packet.getLength();
-         String received = new String(data,0,datalen);
-
-         int first = received.indexOf(' ');
-         int last  = received.lastIndexOf(' ');
-         String mode = received.substring(0,first);
-         String input = received.substring(first+1,last);
-         String output = received.substring(last+1);
-
-         System.out.println("request received! Parameters are");
-         System.out.println("Mode: " + mode + " ");
-         System.out.println("Input file: \"" + input + "\"");
-         System.out.println("Output file: \"" + output  + "\"\n");
-
-         if ((new File(output)).exists()) {
-            System.out.println("Using cached version\n");
-         } else {
-            FileOutputStream fout = new FileOutputStream(output);
-            if (mode.equals("cic")) {
-               processor.setDocumentHandler(style2.getSAXSerializer(fout));
-               XSLTResultTarget content = new XSLTResultTarget(processor);
-               style1.process(new XSLTInputSource(input), content);
-            } else if (mode.equals("theory")) {
-               theory_processor.setDocumentHandler(
-                  theory_style2.getSAXSerializer(fout));
-               XSLTResultTarget content =
-                  new XSLTResultTarget(theory_processor);
-               theory_style1.process(new XSLTInputSource(input), content);
-            }
-         }
-
-         InetAddress address = InetAddress.getLocalHost();
-         DatagramSocket socket2 = new DatagramSocket();
-
-         byte buf[] = new byte[0];
-         DatagramPacket packet2 = new DatagramPacket(buf,0,address,port2);
-
-         socket2.send(packet2);
-      }
-   }
-}
diff --git a/helm/interface/xaland-java/xaland.java.prima_del_loro_baco b/helm/interface/xaland-java/xaland.java.prima_del_loro_baco
deleted file mode 100644 (file)
index b46ffa6..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-import org.apache.xalan.xslt.*;
-import java.net.*;
-import java.io.*;
-
-public class xaland {
-   public static void Transform(StylesheetRoot style, String xmlSourceURL, String OutputURL) throws java.io.IOException, java.net.MalformedURLException, org.xml.sax.SAXException
-   {
-      XSLTInputSource xmlSource = new XSLTInputSource (xmlSourceURL);
-      XSLTResultTarget xmlResult = new XSLTResultTarget (OutputURL);
-      style.process(xmlSource, xmlResult);
-   }
-
-   public static void main(String argv[]) throws  java.io.IOException, java.net.MalformedURLException, org.xml.sax.SAXException
-   {
-      int port    = Integer.parseInt(argv[0]);
-      int port2   = Integer.parseInt(argv[1]);
-      String xsl1 = argv[2];
-      String xsl2 = argv[3];
-      String theory_xsl1 = argv[4];
-      String theory_xsl2 = argv[5];
-
-      XSLTProcessor theory_processor = XSLTProcessorFactory.getProcessor();
-      StylesheetRoot theory_style1 =
-         theory_processor.processStylesheet(theory_xsl1);
-      StylesheetRoot theory_style2 =
-         theory_processor.processStylesheet(theory_xsl2);
-      theory_processor.setStylesheet(theory_style2);
-
-      XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
-      StylesheetRoot style1 = processor.processStylesheet(xsl1);
-      StylesheetRoot style2 = processor.processStylesheet(xsl2);
-      processor.setStylesheet(style2);
-
-      DatagramSocket socket = new DatagramSocket(port);
-
-      System.out.println("Demon activated on input port " + port +
-       " and output port " + port2);
-      while(true) {
-         System.out.print("Ready...");
-
-         /* Warning: the packet must be a fresh one! */
-         DatagramPacket packet = new DatagramPacket(new byte[1024],1024);
-         socket.receive(packet);
-         byte data[] = packet.getData();
-         int datalen = packet.getLength();
-         String received = new String(data,0,datalen);
-
-         int first = received.indexOf(' ');
-         int last  = received.lastIndexOf(' ');
-         String mode = received.substring(0,first);
-         String input = received.substring(first+1,last);
-         String output = received.substring(last+1);
-
-         System.out.println("request received! Parameters are");
-         System.out.println("Mode: " + mode + " ");
-         System.out.println("Input file: \"" + input + "\"");
-         System.out.println("Output file: \"" + output  + "\"\n");
-
-         if ((new File(output)).exists()) {
-            System.out.println("Using cached version\n");
-         } else {
-            FileOutputStream fout = new FileOutputStream(output);
-            if (mode.equals("cic")) {
-               processor.setDocumentHandler(style2.getSAXSerializer(fout));
-               XSLTResultTarget content = new XSLTResultTarget(processor);
-               style1.process(new XSLTInputSource(input), content);
-            } else if (mode.equals("theory")) {
-               theory_processor.setDocumentHandler(
-                  theory_style2.getSAXSerializer(fout));
-               XSLTResultTarget content =
-                  new XSLTResultTarget(theory_processor);
-               theory_style1.process(new XSLTInputSource(input), content);
-            }
-         }
-
-         InetAddress address = InetAddress.getLocalHost();
-         DatagramSocket socket2 = new DatagramSocket();
-
-         byte buf[] = new byte[0];
-         DatagramPacket packet2 = new DatagramPacket(buf,0,address,port2);
-
-         socket2.send(packet2);
-      }
-   }
-}
diff --git a/helm/interface/xaland-java/xaland.java.prima_del_loro_baco_ma_dopo_i_reset b/helm/interface/xaland-java/xaland.java.prima_del_loro_baco_ma_dopo_i_reset
deleted file mode 100644 (file)
index 1467cdd..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-import org.apache.xalan.xslt.*;
-import java.net.*;
-import java.io.*;
-
-public class xaland {
-   public static void Transform(StylesheetRoot style, String xmlSourceURL, String OutputURL) throws java.io.IOException, java.net.MalformedURLException, org.xml.sax.SAXException
-   {
-      XSLTInputSource xmlSource = new XSLTInputSource (xmlSourceURL);
-      XSLTResultTarget xmlResult = new XSLTResultTarget (OutputURL);
-      style.process(xmlSource, xmlResult);
-   }
-
-   public static void main(String argv[]) throws  java.io.IOException, java.net.MalformedURLException, org.xml.sax.SAXException
-   {
-      int port    = Integer.parseInt(argv[0]);
-      int port2   = Integer.parseInt(argv[1]);
-      String xsl1 = argv[2];
-      String xsl2 = argv[3];
-      String theory_xsl1 = argv[4];
-      String theory_xsl2 = argv[5];
-
-      XSLTProcessor theory_processor = XSLTProcessorFactory.getProcessor();
-      StylesheetRoot theory_style1 =
-         theory_processor.processStylesheet(theory_xsl1);
-      theory_processor.reset();
-      StylesheetRoot theory_style2 =
-         theory_processor.processStylesheet(theory_xsl2);
-      theory_processor.setStylesheet(theory_style2);
-
-      XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
-      StylesheetRoot style1 = processor.processStylesheet(xsl1);
-      processor.reset();
-      StylesheetRoot style2 = processor.processStylesheet(xsl2);
-      processor.setStylesheet(style2);
-
-      DatagramSocket socket = new DatagramSocket(port);
-
-      System.out.println("Demon activated on input port " + port +
-       " and output port " + port2);
-      while(true) {
-         System.out.print("Ready...");
-
-         /* Warning: the packet must be a fresh one! */
-         DatagramPacket packet = new DatagramPacket(new byte[1024],1024);
-         socket.receive(packet);
-         byte data[] = packet.getData();
-         int datalen = packet.getLength();
-         String received = new String(data,0,datalen);
-
-         int first = received.indexOf(' ');
-         int last  = received.lastIndexOf(' ');
-         String mode = received.substring(0,first);
-         String input = received.substring(first+1,last);
-         String output = received.substring(last+1);
-
-         System.out.println("request received! Parameters are");
-         System.out.println("Mode: " + mode + " ");
-         System.out.println("Input file: \"" + input + "\"");
-         System.out.println("Output file: \"" + output  + "\"\n");
-
-         if ((new File(output)).exists()) {
-            System.out.println("Using cached version\n");
-         } else {
-            FileOutputStream fout = new FileOutputStream(output);
-            if (mode.equals("cic")) {
-               processor.setDocumentHandler(style2.getSAXSerializer(fout));
-               XSLTResultTarget content = new XSLTResultTarget(processor);
-               style1.process(new XSLTInputSource(input), content);
-            } else if (mode.equals("theory")) {
-               theory_processor.setDocumentHandler(
-                  theory_style2.getSAXSerializer(fout));
-               XSLTResultTarget content =
-                  new XSLTResultTarget(theory_processor);
-               theory_style1.process(new XSLTInputSource(input), content);
-            }
-         }
-
-         InetAddress address = InetAddress.getLocalHost();
-         DatagramSocket socket2 = new DatagramSocket();
-
-         byte buf[] = new byte[0];
-         DatagramPacket packet2 = new DatagramPacket(buf,0,address,port2);
-
-         socket2.send(packet2);
-      }
-   }
-}
diff --git a/helm/interface/xaland-java2/xaland2.class b/helm/interface/xaland-java2/xaland2.class
deleted file mode 100644 (file)
index 95b42c7..0000000
Binary files a/helm/interface/xaland-java2/xaland2.class and /dev/null differ
diff --git a/helm/interface/xaland-java2/xaland2.java b/helm/interface/xaland-java2/xaland2.java
deleted file mode 100644 (file)
index 9d91d37..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-import java.net.*;
-import java.io.*;
-
-// Imported TraX classes
-import org.apache.trax.Processor;
-import org.apache.trax.Templates;
-import org.apache.trax.Transformer;
-import org.apache.trax.Result;
-import org.apache.trax.ProcessorException;
-import org.apache.trax.ProcessorFactoryException;
-import org.apache.trax.TransformException;
-
-// Imported SAX classes
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.Parser;
-import org.xml.sax.helpers.ParserAdapter;
-import org.xml.sax.helpers.XMLReaderFactory;
-import org.xml.sax.XMLReader;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.ext.LexicalHandler;
-
-// Imported DOM classes
-import org.w3c.dom.Node;
-
-// Imported Serializer classes
-import org.apache.serialize.OutputFormat;
-import org.apache.serialize.Serializer;
-import org.apache.serialize.SerializerFactory;
-
-// Imported JAVA API for XML Parsing 1.0 classes
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-
-public class xaland2 {
-   public static void main(String argv[]) throws  IOException, MalformedURLException, SAXException, ParserConfigurationException
-   {
-      int port    = Integer.parseInt(argv[0]);
-      int port2   = Integer.parseInt(argv[1]);
-      String xsl1 = argv[2];
-      String xsl2 = argv[3];
-      String theory_xsl1 = argv[4];
-      String theory_xsl2 = argv[5];
-
-      Processor theory_processor = Processor.newInstance("xslt");
-      Templates theory_style1 = theory_processor.process(new InputSource(theory_xsl1));
-      Transformer theory_transformer1 = theory_style1.newTransformer();
-
-      Templates theory_style2 = theory_processor.process(new InputSource(theory_xsl2));
-      Transformer theory_transformer2 = theory_style2.newTransformer();
-
-
-      Processor processor = Processor.newInstance("xslt");
-      Templates style1 = processor.process(new InputSource(xsl1));
-      Transformer transformer1 = style1.newTransformer();
-
-      Templates style2 = processor.process(new InputSource(xsl2));
-      Transformer transformer2 = style2.newTransformer();
-
-
-      DatagramSocket socket = new DatagramSocket(port);
-
-      System.out.println("Demon activated on input port " + port +
-       " and output port " + port2);
-      while(true) {
-         System.out.print("Ready...");
-
-         /* Warning: the packet must be a fresh one! */
-         DatagramPacket packet = new DatagramPacket(new byte[1024],1024);
-         socket.receive(packet);
-         byte data[] = packet.getData();
-         int datalen = packet.getLength();
-         String received = new String(data,0,datalen);
-
-         int first = received.indexOf(' ');
-         int last  = received.lastIndexOf(' ');
-         String mode = received.substring(0,first);
-         String input = received.substring(first+1,last);
-         String output = received.substring(last+1);
-
-         System.out.println("request received! Parameters are");
-         System.out.println("Mode: " + mode + " ");
-         System.out.println("Input file: \"" + input + "\"");
-         System.out.println("Output file: \"" + output  + "\"\n");
-
-         if ((new File(output)).exists()) {
-            System.out.println("Using cached version\n");
-         } else {
-            FileOutputStream fout = new FileOutputStream(output);
-            if (mode.equals("cic")) {
-               XMLReader reader = XMLReaderFactory.createXMLReader();
-               ContentHandler chandler = transformer1.getInputContentHandler();
-               reader.setContentHandler(chandler);
-               if (chandler instanceof LexicalHandler)
-                reader.setProperty("http://xml.org/sax/properties/lexical-handler", chandler);
-               else
-                reader.setProperty("http://xml.org/sax/properties/lexical-handler", null);
-
-               transformer1.setContentHandler(transformer2.getInputContentHandler());
-               Serializer serializer = SerializerFactory.getSerializer("xml");
-               serializer.setOutputStream(fout);
-               transformer2.setContentHandler(serializer.asContentHandler());
-
-               reader.parse(input);
-            } else if (mode.equals("theory")) {
-               XMLReader reader = XMLReaderFactory.createXMLReader();
-               ContentHandler chandler = theory_transformer1.getInputContentHandler();
-               reader.setContentHandler(chandler);
-               if (chandler instanceof LexicalHandler)
-                reader.setProperty("http://xml.org/sax/properties/lexical-handler", chandler);
-               else
-                reader.setProperty("http://xml.org/sax/properties/lexical-handler", null);
-
-               theory_transformer1.setContentHandler(theory_transformer2.getInputContentHandler());
-               Serializer serializer = SerializerFactory.getSerializer("xml");
-               serializer.setOutputStream(fout);
-               theory_transformer2.setContentHandler(serializer.asContentHandler());
-
-               reader.parse(input);
-             }
-         }
-
-         InetAddress address = InetAddress.getLocalHost();
-         DatagramSocket socket2 = new DatagramSocket();
-
-         byte buf[] = new byte[0];
-         DatagramPacket packet2 = new DatagramPacket(buf,0,address,port2);
-
-         socket2.send(packet2);
-      }
-   }
-}
diff --git a/helm/interface/xaland.class b/helm/interface/xaland.class
deleted file mode 100644 (file)
index 6871fda..0000000
Binary files a/helm/interface/xaland.class and /dev/null differ
diff --git a/helm/interface/xaland2.class b/helm/interface/xaland2.class
deleted file mode 100644 (file)
index 95b42c7..0000000
Binary files a/helm/interface/xaland2.class and /dev/null differ
diff --git a/helm/interface/xml.ml b/helm/interface/xml.ml
deleted file mode 100644 (file)
index 5cb3dbd..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                     A tactic to print Coq objects in XML                   *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 18/10/2000                                 *)
-(*                                                                            *)
-(* This module defines a pretty-printer and the stream of commands to the pp  *)
-(*                                                                            *)
-(******************************************************************************)
-
-
-(* the type token for XML cdata, empty elements and not-empty elements *)
-(* Usage:                                                                *)
-(*  Str cdata                                                            *)
-(*  Empty (element_name, [attrname1, value1 ; ... ; attrnamen, valuen]   *)
-(*  NEmpty (element_name, [attrname1, value2 ; ... ; attrnamen, valuen], *)
-(*          content                                                      *)
-type token = Str of string
-           | Empty of string * (string * string) list
-          | NEmpty of string * (string * string) list * token Stream.t
-;;
-
-(* currified versions of the constructors make the code more readable *)
-let xml_empty name attrs = [< 'Empty(name,attrs) >]
-let xml_nempty name attrs content = [< 'NEmpty(name,attrs,content) >]
-let xml_cdata str = [< 'Str str >]
-
-(* Usage:                                                                   *)
-(*  pp tokens None     pretty prints the output on stdout                   *)
-(*  pp tokens (Some filename) pretty prints the output on the file filename *)
-let pp strm fn =
- let channel = ref stdout in
- let rec pp_r m =
-  parser
-    [< 'Str a ; s >] ->
-      print_spaces m ;
-      fprint_string (a ^ "\n") ;
-      pp_r m s
-  | [< 'Empty(n,l) ; s >] ->
-      print_spaces m ;
-      fprint_string ("<" ^ n) ;
-      List.iter (function (n,v) -> fprint_string (" " ^ n ^ "=\"" ^ v ^ "\"")) l;
-      fprint_string "/>\n" ;
-      pp_r m s
-  | [< 'NEmpty(n,l,c) ; s >] ->
-      print_spaces m ;
-      fprint_string ("<" ^ n) ;
-      List.iter (function (n,v) -> fprint_string (" " ^ n ^ "=\"" ^ v ^ "\"")) l;
-      fprint_string ">\n" ;
-      pp_r (m+1) c ;
-      print_spaces m ;
-      fprint_string ("</" ^ n ^ ">\n") ;
-      pp_r m s
-  | [< >] -> ()
- and print_spaces m =
-  for i = 1 to m do fprint_string "  " done
- and fprint_string str =
-  output_string !channel str
- in
-  match fn with
-     Some filename ->
-       channel := open_out filename ;
-       pp_r 0 strm ;
-       close_out !channel ;
-       print_string ("\nWriting on file \"" ^ filename ^ "\" was succesfull\n");
-       flush stdout
-   | None ->
-       pp_r 0 strm
-;;
diff --git a/helm/interface/xml.mli b/helm/interface/xml.mli
deleted file mode 100644 (file)
index a82c582..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-(******************************************************************************)
-(*                                                                            *)
-(*                               PROJECT HELM                                 *)
-(*                                                                            *)
-(*                     A tactic to print Coq objects in XML                   *)
-(*                                                                            *)
-(*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
-(*                                 18/10/2000                                 *)
-(*                                                                            *)
-(* This module defines a pretty-printer and the stream of commands to the pp  *)
-(*                                                                            *)
-(******************************************************************************)
-
-(* Tokens for XML cdata, empty elements and not-empty elements           *)
-(* Usage:                                                                *)
-(*  Str cdata                                                            *)
-(*  Empty (element_name, [attrname1, value1 ; ... ; attrnamen, valuen]   *)
-(*  NEmpty (element_name, [attrname1, value2 ; ... ; attrnamen, valuen], *)
-(*          content                                                      *)
-type token =
-  | Str of string
-  | Empty of string * (string * string) list
-  | NEmpty of string * (string * string) list * token Stream.t
-
-(* currified versions of the token constructors make the code more readable *)
-val xml_empty : string -> (string * string) list -> token Stream.t
-val xml_nempty :
-  string -> (string * string) list -> token Stream.t -> token Stream.t
-val xml_cdata : string -> token Stream.t
-
-(* The pretty printer for streams of token                                  *)
-(* Usage:                                                                   *)
-(*  pp tokens None     pretty prints the output on stdout                   *)
-(*  pp tokens (Some filename) pretty prints the output on the file filename *)
-val pp : token Stream.t -> string option -> unit
diff --git a/helm/interface/xsltProcessor.ml b/helm/interface/xsltProcessor.ml
deleted file mode 100644 (file)
index c82a8f5..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-exception XsltProcessorCouldNotSend;;
-exception XsltProcessorCouldNotReceive;;
-
-let portserver = 12345;;
-let portclient = 12346;;
-let time_to_wait = 10;;
-
-let rec process uri usecache mode =
- let module U = Unix in
-  let uri = UriManager.string_of_uri uri in
-  let pid = string_of_int (U.getpid ())
-  and filename' =
-   let uri' = Str.replace_first (Str.regexp ".*:") "" uri in
-    Str.global_replace (Str.regexp "/") "_"
-     (Str.global_replace (Str.regexp "_") "__" uri')
-  in let tmpfile = "/tmp/helm_" ^ filename' ^ "_" ^ pid in
-   (* test if the cache can be used *)
-   let tmp_file_exists = Sys.file_exists tmpfile in
-    if usecache && tmp_file_exists then
-     tmpfile
-    else
-     let url = Configuration.getter_url ^ uri in
-      (* purge the cache if asked to *)
-      if not usecache && tmp_file_exists then
-        Sys.remove tmpfile ;
-      let string_to_send = mode ^ " " ^ url ^ " " ^ tmpfile in
-      (* next function is for looping in case the server is not responding *)
-      let rec contact_server () =
-       let socketclient = U.socket U.PF_INET U.SOCK_DGRAM 0
-       and socketserver = U.socket U.PF_INET U.SOCK_DGRAM 0 in
-        let bounded = ref false in
-         while not !bounded do
-          try
-           U.bind socketclient (U.ADDR_INET(U.inet_addr_any,portclient)) ;
-           bounded := true
-          with _ ->
-           print_endline "Port unavailable. Retrying..." ; flush stdout ;
-           U.sleep 5  (* wait hoping the inetaddr is released *)
-         done ;
-         let n =
-          U.sendto socketserver string_to_send 0 (String.length string_to_send)
-           [] (U.ADDR_INET(U.inet_addr_any,portserver))
-         in
-          if n = -1 then raise XsltProcessorCouldNotSend ;
-          U.close socketserver ;
-          let process_signal _ = U.close socketclient in
-          Sys.set_signal Sys.sigalrm (Sys.Signal_handle process_signal) ;
-          (* if the server does not respond, repeat the query *)
-          ignore (U.alarm time_to_wait) ;
-          try
-           if U.recv socketclient "" 0 0 [] = -1 then
-            raise XsltProcessorCouldNotReceive ;
-           ignore (U.alarm 0) ; (* stop the bomb *)
-           Sys.set_signal Sys.sigalrm Sys.Signal_default ;
-           U.close socketclient ;
-           tmpfile
-          with
-           U.Unix_error(_,"recv",_) ->
-            print_endline "Xaland server not responding. Retrying..." ;
-            flush stdout;
-            contact_server ()
-        in
-         contact_server ()
-;;
diff --git a/helm/style/annotatedcont.xsl b/helm/style/annotatedcont.xsl
deleted file mode 100644 (file)
index e97d08f..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of annotated MathML content to MathML presentation:  -->
-<!-- First draft: March 29 2000, Claudio Sacerdoti Coen, Irene Schena      -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:import href="objcontent.xsl"/>
-
-<xsl:key name="id" use="@id" match="LAMBDA|PROD|CAST|REL|SORT|APPLY|VAR|META|CONST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX|Definition|Axiom|CurrentProof|InductiveDefinition|Variable"/>
-
-<xsl:key name="annid" use="@of" match="Annotation"/>
-
-<xsl:template match="Definition|Axiom|CurrentProof|InductiveDefinition|Variable">
-    <xsl:choose>
-    <xsl:when test="key('annid',@id)">
-     <annotation helm:xref="{@id}">
-      <xsl:apply-templates select="key('annid',@id)"/>
-     </annotation>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:apply-templates select="." mode="noannot"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="LAMBDA|PROD|CAST|REL|SORT|APPLY|VAR|META|CONST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX">
-    <xsl:choose>
-    <xsl:when test="key('annid',@id)">
-     <annotation helm:xref="{@id}">
-      <xsl:apply-templates select="key('annid',@id)"/>
-     </annotation>
-    </xsl:when>
-    <xsl:otherwise>
-     <m:math>
-      <xsl:apply-templates select="." mode="noannot"/>
-     </m:math>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="node">
- <xsl:variable name="id" select="@id"/>
- <xsl:apply-templates select="key('id',$id)"/>
-</xsl:template>
-
-<xsl:template match="attribute">
- <xsl:variable name="id" select="@id"/>
- <xsl:variable name="name" select="@name"/>
- <xsl:variable name="child" select="@child"/>
- <xsl:variable name="grandchild" select="@grandchild"/>
- <xsl:choose>
-  <xsl:when test="$child">
-   <xsl:choose>
-    <xsl:when test="$grandchild">
-     <xsl:value-of select="key('id',$id)/*[position() = $child]/*[position() = $grandchild]/attribute::*[name() = $name]"/>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="key('id',$id)/*[position() = $child]/attribute::*[name() = $name]"/>
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="key('id',$id)/attribute::*[name() = $name]"/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/annotatedpres.xsl b/helm/style/annotatedpres.xsl
deleted file mode 100644 (file)
index 511f915..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of annotated MathML content to MathML presentation:  -->
-<!-- First draft: March 29 2000, Claudio Sacerdoti Coen, Irene Schena      -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:import href="mmlextension.xsl"/>
-
-<!-- ANNOTATION -->
-
-<xsl:template match="annotation">
-    <xsl:choose>
-    <xsl:when test=". = /">
-      <m:math><m:mrow helm:xref="{@helm:xref}"><xsl:apply-templates/></m:mrow></m:math>
-    </xsl:when>
-    <xsl:otherwise>
-     <m:mrow helm:xref="{@helm:xref}"><xsl:apply-templates/></m:mrow>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="text()">
- <xsl:variable name="text" select="normalize-space(.)"/>
- <xsl:if test="$text != ''">
-  <m:mtext><xsl:value-of select="$text"/></m:mtext>
- </xsl:if>
-</xsl:template>
-
-</xsl:stylesheet> 
diff --git a/helm/style/basic.xsl b/helm/style/basic.xsl
deleted file mode 100644 (file)
index 93eb280..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- Basic Logic                                                      -->
-<!-- First draft: April 3 2000                                        -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                 -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- ************************* LOGIC *********************************-->
-
-<!-- AND -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/Conjunction/and.ind'] and (count(child::*) = 3)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:and definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<!-- OR -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/Disjunction/or.ind'] and (count(child::*) = 3)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:or definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<!-- NOT -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/not.con'] and (count(child::*) = 2)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:not definitionURL="{CONST/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<!-- IFF -->
-<!--
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/Equivalence/iff.ind'] and (count(child::*) = 3)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:iff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
--->
-
-<!-- EXISTS -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/First_order_quantifiers/ex.ind' or attribute::uri='cic:/coq/INIT/Logic_Type/exT.ind'] and (count(child::*) = 3)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-     <m:exists definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:choose>
-      <xsl:when test="name(*[3]) = 'LAMBDA'">
-       <m:bvar>
-        <m:ci><xsl:value-of select="LAMBDA/target/@binder"/></m:ci>
-       </m:bvar>
-       <xsl:apply-templates select="LAMBDA/target" mode="noannot"/>
-      </xsl:when>
-      <xsl:otherwise>
-       <m:bvar>
-        <m:ci>$x</m:ci>
-       </m:bvar>
-       <m:apply>
-        <m:csymbol>app</m:csymbol>
-        <xsl:apply-templates select="*[3]" mode="noannot"/>
-        <m:ci>$x</m:ci>
-       </m:apply>
-      </xsl:otherwise>
-     </xsl:choose>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/First_order_quantifiers/ex2.ind' or attribute::uri='cic:/coq/INIT/Logic_Type/exT2.ind'] and (count(child::*) = 4)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:exists definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:choose>
-      <xsl:when test="name(*[3]) = 'LAMBDA'">
-       <xsl:variable name="bvarname" select="*[3]/target/@binder"/>
-       <m:bvar>
-        <m:ci><xsl:value-of select="$bvarname"/></m:ci>
-       </m:bvar>
-       <m:condition>
-        <xsl:apply-templates select="LAMBDA[1]/target" mode="noannot"/>
-       </m:condition>
-       <xsl:choose>
-        <xsl:when test="(name(*[4]) = 'LAMBDA') and 
-           ($bvarname = *[4]/target/@binder)">
-         <xsl:apply-templates select="LAMBDA[2]/target" mode="noannot"/>
-        </xsl:when>
-        <xsl:otherwise>
-         <m:apply>
-          <m:csymbol>app</m:csymbol>
-          <xsl:apply-templates select="*[4]" mode="noannot"/>
-          <m:ci><xsl:value-of select="$bvarname"/></m:ci>
-         </m:apply>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:otherwise>
-       <xsl:choose>
-        <xsl:when test="name(*[4]) = 'LAMBDA'">
-         <xsl:variable name="bvarname" select="*[4]/target/@binder"/>
-         <m:bvar>
-          <m:ci><xsl:value-of select="$bvarname"/></m:ci>
-         </m:bvar>
-         <m:condition>
-          <m:apply>
-           <m:csymbol>app</m:csymbol>
-           <xsl:apply-templates select="*[3]" mode="noannot"/>
-           <m:ci><xsl:value-of select="$bvarname"/></m:ci>
-          </m:apply>
-         </m:condition>
-         <xsl:apply-templates select="*[4]/target" mode="noannot"/>
-        </xsl:when>
-        <xsl:otherwise>
-         <m:bvar>
-          <m:ci>x</m:ci>
-         </m:bvar>
-         <m:condition>
-          <m:apply>
-           <m:csymbol>app</m:csymbol>
-           <xsl:apply-templates select="*[3]" mode="noannot"/>
-           <m:ci>x</m:ci>
-          </m:apply>
-         </m:condition>
-         <m:apply>
-          <m:csymbol>app</m:csymbol>
-          <xsl:apply-templates select="*[4]" mode="noannot"/>
-          <m:ci>x</m:ci>
-         </m:apply>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:otherwise>
-     </xsl:choose>
-    </m:apply>
-</xsl:template>
-
-<!-- EQUALITY -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/Equality/eq.ind'] and (count(child::*) = 4)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:eq definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-     <xsl:apply-templates select="*[4]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-
-<!-- TYPE EQUALITY -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic_Type/eqT.ind'] and (count(child::*) = 4)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:eq definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-     <xsl:apply-templates select="*[4]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<!-- NOT-EQ -->
-<!-- NOT and EQ have no parameters -->
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/not.con']
-and (count(child::*) = 2) and APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/Equality/eq.ind']]]" mode="pure">
-    <xsl:choose>
-     <xsl:when test="count(APPLY/child::*) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:neq/>
-       <xsl:apply-templates select="*[2]/*[3]" mode="noannot"/>
-       <xsl:apply-templates select="*[2]/*[4]" mode="set"/>  
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- NOT-EQT -->
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/not.con']
-and (count(child::*) = 2) and APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic_Type/eqT.ind']]]" mode="pure">
-    <xsl:choose>
-     <xsl:when test="count(APPLY/child::*) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:neq/>
-       <xsl:apply-templates select="*[2]/*[3]" mode="noannot"/>
-       <xsl:apply-templates select="*[2]/*[4]" mode="set"/>  
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- ************************ DATATYPES ******************************* -->
-
-<!-- no datatypes in MathML content -->
-
-
-<!-- *************************** PEANO ********************************* -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Peano/le.ind'] and (count(child::*) = 3)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:leq definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Peano/lt.con'] and (count(child::*) = 3)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:lt definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Peano/ge.con'] and (count(child::*) = 3)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:geq definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Peano/gt.con'] and (count(child::*) = 3)]" mode="pure">
-    <m:apply helm:xref="{@id}">
-    <m:gt definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-</xsl:stylesheet>
-
-
-
-
-
-
diff --git a/helm/style/content.xsl b/helm/style/content.xsl
deleted file mode 100644 (file)
index ae4a1a8..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- XSLT version 0.1 of CIC objects to MathML content:               -->
-<!-- First draft: February 14 2000, Andrea Asperti, Irene Schena      -->
-<!-- Revised: March 3 2000, Irene Schena                              -->
-<!-- Revised: March 10 2000, Irene Schena                             -->
-<!-- Revised: March 15 2000, Claudio Sacerdoti Coen, Irene Schena     -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:include href="params.xsl"/>
-
-<!--<xsl:output
-           method="xml" 
-           version="1.0" 
-           encoding="ISO-8859-1" 
-           omit-xml-declaration="no"
-           standalone="no" 
-           doctype-public="http://www.w3.org/TR/REC-MathML" 
-           indent="yes"
-           media-type="text/mathml" /> -->
-
-<!-- DA FARE: 
-1)risolvere nella fase di pre-processing le uri relative, settando l'attributo
-definitionURL dell'oggetto corrispondente (alcuni punteranno a nulla! -quelli 
-che non hanno il file di definizione corrispondente-); [le uri assolute hanno
-la forma cic:/.../ in definitionURL e questo schema di uri verra' risolto da
-Amaya o da chi di dovere in /really_very_local/helm/PARSER/example/.../]
-2)aggiungere nei file xml gli ID, affinche' nello stylesheet si setti
-l'attributo xref di ogni oggetto per puntare (tramite ID) al suo corrispondente
-della rappresentazione interna. 
--->
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- CIC TERMS -->
-
-<xsl:template match="LAMBDA" mode="pure">
-    <m:lambda helm:xref="{@id}">
-     <m:bvar>
-      <m:ci>
-       <xsl:value-of select="target/@binder"/>
-      </m:ci>
-      <m:type>
-       <xsl:apply-templates select="source/*[1]" mode="noannot"/>
-      </m:type>
-     </m:bvar>
-     <xsl:apply-templates select="target/*[1]" mode="noannot"/>
-    </m:lambda>
-</xsl:template>
-
-<xsl:template match="PROD" mode="pure">
-    <m:apply helm:xref="{@id}">
-     <xsl:choose>
-     <xsl:when test="string(target/@binder)= &quot;&quot;">
-      <m:csymbol>arrow</m:csymbol>
-      <xsl:apply-templates select="source/*[1]" mode="noannot"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <m:csymbol>prod</m:csymbol>
-       <m:bvar>
-        <m:ci>
-         <xsl:value-of select="target/@binder"/>
-        </m:ci>
-        <m:type>
-         <xsl:apply-templates select="source/*[1]" mode="noannot"/>
-        </m:type>
-       </m:bvar>
-     </xsl:otherwise>
-     </xsl:choose>
-     <xsl:apply-templates select="target/*[1]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="CAST" mode="pure">
-    <m:apply helm:xref="{@id}">
-     <m:csymbol>cast</m:csymbol>
-     <xsl:apply-templates mode="noannot" select="*/*"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="REL" mode="pure">
-    <m:ci helm:xref="{@id}">
-     <xsl:value-of select="@binder"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="SORT" mode="pure">
-    <m:apply helm:xref="{@id}">
-     <m:csymbol>
-      <xsl:value-of select="@value"/>
-     </m:csymbol>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY" mode="pure">
-   <xsl:choose>
-    <!-- <xsl:when test="//ALLTYPES and boolean(key('typeid',*/@id))"> -->
-    <!-- start looking for subproofs -->
-    <xsl:when test="((*/@id) = (//ALLTYPES/TYPE/@id))"> 
-     <m:apply helm:xref="{@id}">
-      <m:csymbol>letin</m:csymbol>
-      <!-- <xsl:for-each select="*[boolean(key('typeid',@id))]"> -->
-      <!-- first process all subproofs (let-in) -->
-      <xsl:for-each select="*[@id = (//ALLTYPES/TYPE/@id)]">
-       <m:apply>
-        <m:csymbol>let</m:csymbol>
-        <m:ci><xsl:value-of select="concat('h',position())"/></m:ci>
-        <xsl:apply-templates mode="noannot" select="."/>
-       </m:apply>
-      </xsl:for-each>
-      <!-- now re-process the application in mode appflat -->
-      <xsl:apply-templates mode="appflat" select="."/> 
-     </m:apply>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:apply-templates mode="appflat" select="."/>
-    </xsl:otherwise>
-   </xsl:choose>
-</xsl:template>
-
-<xsl:template match="APPLY" mode="appflat">
-      <m:apply helm:xref="{@id}">
-       <m:csymbol>app</m:csymbol>
-       <!-- mode flat looks for siblings: call with the first child -->
-       <xsl:apply-templates mode="flat" select="*[1]"/>
-      </m:apply>
-</xsl:template>
-
-<xsl:template match="*" mode="flat">
- <xsl:param name="n" select="1"/>
- <xsl:choose>
-  <xsl:when test="@id">
-   <xsl:variable name="id" select="@id"/>
-   <xsl:choose>
-    <!-- <xsl:when test="key('typeid',@id)"> -->
-    <xsl:when test="//ALLTYPES/TYPE[@id=$id]">
-     <m:ci>
-      <xsl:value-of select="concat('h',$n)"/>
-     </m:ci>
-     <xsl:apply-templates mode="flat" select="following-sibling::*[1]">
-      <xsl:with-param name="n" select="$n+1"/>
-     </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:apply-templates mode="pure" select="."/>
-     <xsl:apply-templates mode="flat" select="following-sibling::*[1]">
-      <xsl:with-param name="n" select="$n"/>
-     </xsl:apply-templates>
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:apply-templates mode="pure" select="."/>
-   <xsl:apply-templates mode="flat" select="following-sibling::*[1]">
-    <xsl:with-param name="n" select="$n"/>
-   </xsl:apply-templates>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="VAR" mode="pure">
-    <m:ci helm:xref="{@id}">
-     <xsl:value-of select="substring-after(@relUri,&quot;,&quot;)"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="META" mode="pure">
-    <m:ci helm:xref="{@id}">
-     <xsl:value-of select="@no"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="CONST" mode="pure">
-    <m:ci definitionURL="{@uri}" helm:xref="{@id}">
-     <xsl:call-template name="name_of_uri">
-      <xsl:with-param name="uri" select="@uri"/>
-     </xsl:call-template>
-     <!-- <xsl:value-of select="document(concat(string($absPath),@uri))/*/@name"/> -->
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="MUTIND" mode="pure">
-    <m:ci definitionURL="{@uri}" helm:xref="{@id}">
-     <xsl:variable name="index"><xsl:value-of select="@noType"/></xsl:variable>
-     <xsl:value-of select="document(concat(string($absPath),@uri))/InductiveDefinition/InductiveType[position()=number($index)+1]/@name"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="MUTCONSTRUCT" mode="pure">
-    <m:ci definitionURL="{@uri}" helm:xref="{@id}">
-     <xsl:variable name="Tindex"><xsl:value-of select="@noType"/></xsl:variable>
-     <xsl:variable name="Cindex"><xsl:value-of select="@noConstr"/></xsl:variable>
-     <xsl:value-of select="document(concat(string($absPath),@uri))/InductiveDefinition/InductiveType[position()=number($Tindex)+1]/Constructor[position()=number($Cindex)]/@name"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="MUTCASE" mode="pure">
-    <xsl:variable name="Tindex"><xsl:value-of select="@noType"/></xsl:variable>
-    <xsl:variable name="Turi"><xsl:value-of select="@uriType"/></xsl:variable>
-    <m:apply helm:xref="{@id}">
-     <m:csymbol>mutcase</m:csymbol>
-     <xsl:apply-templates select="patternsType/*[1]" mode="noannot"/>
-     <xsl:apply-templates select="inductiveTerm/*[1]" mode="noannot"/>
-     <xsl:variable name="nop"><xsl:value-of select="document(concat(string($absPath),$Turi))/InductiveDefinition/@noParams"/></xsl:variable>
-     <xsl:for-each select="pattern">
-      <xsl:variable name="pos" select="position()"/>
-      <xsl:variable name="nopar"><xsl:apply-templates select="document(concat(string($absPath),$Turi))/InductiveDefinition/InductiveType[position()=number($Tindex)+1]/Constructor[position()=number($pos)]/*[1]" mode="counting"><xsl:with-param name="noparams" select="$nop"/></xsl:apply-templates></xsl:variable>
-      <xsl:choose>
-      <xsl:when test="$nopar = 0">
-       <m:ci>
-        <xsl:value-of select="document(concat(string($absPath),$Turi))/InductiveDefinition/InductiveType[position()=number($Tindex)+1]/Constructor[position()=number($pos)]/@name"/>
-       </m:ci>
-      </xsl:when>
-      <xsl:otherwise>
-       <m:apply>
-        <m:csymbol>app</m:csymbol>
-        <m:ci>
-         <xsl:value-of select="document(concat(string($absPath),$Turi))/InductiveDefinition/InductiveType[position()=number($Tindex)+1]/Constructor[position()=number($pos)]/@name"/>
-        </m:ci>
-        <xsl:apply-templates select="./*[1]" mode="abstparams"><xsl:with-param name="noparams" select="$nopar"/><xsl:with-param name="binder">LAMBDA</xsl:with-param></xsl:apply-templates>
-        </m:apply>
-       </xsl:otherwise>
-       </xsl:choose>
-      <xsl:apply-templates select="./*[1]" mode="abstparams"><xsl:with-param name="noparams" select="$nopar"/><xsl:with-param name="target" select="1"/><xsl:with-param name="binder">LAMBDA</xsl:with-param></xsl:apply-templates>
-     </xsl:for-each> 
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="FIX" mode="pure">
-    <m:apply helm:xref="{@id}">
-     <xsl:variable name="findex"><xsl:value-of select="@noFun"/></xsl:variable>
-     <m:csymbol>fix</m:csymbol>
-     <m:ci><xsl:value-of select="FixFunction[position()=number($findex)+1]/@name"/></m:ci>
-     <xsl:apply-templates mode="pure" select="*"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="COFIX" mode="pure">
-   <m:apply helm:xref="{@id}">
-     <xsl:variable name="findex"><xsl:value-of select="@noFun"/></xsl:variable>
-     <m:csymbol>cofix</m:csymbol>
-     <m:ci><xsl:value-of select="CofixFunction[position()=number($findex)+1]/@name"/></m:ci>
-     <xsl:apply-templates mode="pure" select="*"/>
-    </m:apply>
-</xsl:template>
-
-<!-- ELEMENTS OF CIC TERMS -->
-
-<xsl:template match="FixFunction" mode="pure">
-    <m:bvar>
-     <m:ci><xsl:value-of select="@name"/></m:ci>
-     <m:type><xsl:apply-templates select="type/*[1]" mode="noannot"/></m:type>
-    </m:bvar> 
-    <xsl:apply-templates select="body/*[1]" mode="noannot"/>
-</xsl:template>
-
-<xsl:template match="CofixFunction" mode="pure">
-    <m:bvar>
-     <m:ci><xsl:value-of select="@name"/></m:ci>
-     <m:type><xsl:apply-templates select="type/*[1]" mode="noannot"/></m:type>
-    </m:bvar> 
-    <xsl:apply-templates select="body/*[1]" mode="noannot"/>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/content_to_html.xsl b/helm/style/content_to_html.xsl
deleted file mode 100644 (file)
index dd1c077..0000000
+++ /dev/null
@@ -1,657 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- From MathML content to HTML                                           -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-
-<xsl:include href="html_init.xsl"/>
-<xsl:include href="html_set.xsl"/>
-<xsl:include href="html_reals.xsl"/>
-
-
-<!-- <xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>-->
-<xsl:variable name="header" select="document('http://localhost:8081/conf')/html_link"/>
-
-<xsl:variable name="showcast" select="0"/>
-
-
-<!--***********************************************************************-->
-<!-- HTML Head and Body                                                    -->
-<!--***********************************************************************-->
-
-<xsl:output method="html"/>
-
-<xsl:variable name="framewidth" select="36"/>
-
-<xsl:template match="/">
- <xsl:param name="current_indent" select="0"/>
-               <html> 
-                <head></head>
-                <body>
-                <xsl:apply-templates>
-                 <xsl:with-param name="current_indent" select="0"/>
-                </xsl:apply-templates>
-                </body>
-               </html>
-</xsl:template>
-
-<!--***********************************************************************-->
-<!-- Indentation                                                          -->
-<!--***********************************************************************-->
-
-<xsl:template name="make_indent">
- <xsl:param name="current_indent" select="0"/>
-  <xsl:if test="$current_indent > 0">
-   <xsl:text>&#x00A0;</xsl:text>
-   <xsl:call-template name="make_indent">
-    <xsl:with-param name="current_indent" select="$current_indent - 1"/> 
-   </xsl:call-template>
-  </xsl:if>
-</xsl:template>
-
-<!-- Syntactic Sugar -->
-
-<xsl:template match="m:type">
-<xsl:param name="current_indent" select="0"/> 
-<xsl:apply-templates>
- <xsl:with-param name="current_indent" 
-           select="$current_indent"/>
-</xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match="m:condition">
-<xsl:param name="current_indent" select="0"/> 
-<xsl:apply-templates>
- <xsl:with-param name="current_indent" 
-           select="$current_indent"/>
-</xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match="m:math">
-<xsl:param name="current_indent" select="0"/> 
-<xsl:apply-templates>
- <xsl:with-param name="current_indent" 
-           select="$current_indent"/>
-</xsl:apply-templates>
-</xsl:template>
-
-<!-- CSYMBOL -->
-
-<xsl:template match="m:apply[m:csymbol]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/> 
-  <xsl:variable name="name">
-   <xsl:value-of select="m:csymbol"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:csymbol" mode="charcount"/>
-  </xsl:variable>
-     <!-- <xsl:value-of select="$current_indent"/> -->
-     <!-- <xsl:value-of select="$charlength"/> -->
-     <xsl:choose>
-      <xsl:when test="$name='prod'">
-       <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-         <!-- &#x03a0; -->
-         <FONT FACE="symbol" SIZE="+2" color="blue">&#80;</FONT>
-         <xsl:apply-templates select="m:bvar/m:ci"/>
-         <xsl:text>:</xsl:text>
-         <xsl:apply-templates select="m:bvar/m:type">
-          <xsl:with-param name="current_indent" 
-           select="$current_indent + 2 + string-length(m:bvar/m:ci)"/>
-         </xsl:apply-templates><BR/> 
-         <xsl:call-template name="make_indent">
-          <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-         </xsl:call-template>
-         <xsl:text>.</xsl:text>
-         <xsl:apply-templates select="*[position()=3]">
-          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-         </xsl:apply-templates>
-       </xsl:when>
-       <xsl:otherwise>
-        <!-- &#x03a0; -->
-        <FONT FACE="symbol" SIZE="+2" color="blue">&#80;</FONT>
-        <xsl:apply-templates select="m:bvar/m:ci"/>
-        <xsl:text>:</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:type"/>
-        <xsl:text>.</xsl:text>
-        <xsl:apply-templates select="*[position()=3]"/>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='arrow'">
-       <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-       <xsl:text>(</xsl:text>
-       <xsl:apply-templates select="*[position()=2]">
-        <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-       </xsl:apply-templates>
-       <BR/>
-       <xsl:call-template name="make_indent">
-        <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-       </xsl:call-template>
-       <!-- -> -->
-       <FONT FACE="symbol" SIZE="+2" color="blue">&#174;</FONT>
-       <xsl:apply-templates select="*[position()=3]">
-        <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-       </xsl:apply-templates>
-       <xsl:text>)</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>(</xsl:text>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <!-- -> -->
-        <FONT FACE="symbol" SIZE="+2" color="blue">&#174;</FONT>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <xsl:text>)</xsl:text>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='app'">
-       <xsl:choose>
-       <xsl:when test="$charlength  > $framewidth">
-        <xsl:text>(</xsl:text>
-        <xsl:apply-templates select="*[position()=2]">
-         <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-        </xsl:apply-templates>
-         <xsl:for-each select="*[position()>2]">
-          <BR/>
-           <xsl:call-template name="make_indent">
-            <xsl:with-param name="current_indent" select="$current_indent + 2"/>         
-           </xsl:call-template>
-            <xsl:apply-templates select=".">
-             <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-            </xsl:apply-templates>
-         </xsl:for-each>
-         <xsl:text>)</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>(</xsl:text>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <xsl:for-each select="*[position()>2]">
-         <xsl:text>&#x00A0;</xsl:text>
-         <xsl:apply-templates select="."/>
-        </xsl:for-each>
-        <xsl:text>)</xsl:text>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='cast'">
-       <xsl:choose>
-        <xsl:when test="$showcast = 1">
-         <xsl:choose>
-          <xsl:when test="$charlength > $framewidth">
-           <xsl:text>(</xsl:text>
-           <xsl:apply-templates select="*[position()=2]">
-            <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-           </xsl:apply-templates><BR/>
-           <xsl:call-template name="make_indent">
-            <xsl:with-param name="current_indent" select="$current_indent + 2"/>          </xsl:call-template>
-           <xsl:text>:></xsl:text>
-           <xsl:apply-templates select="*[position()=3]">
-            <xsl:with-param name="current_indent" select="$current_indent + 3"/>
-           </xsl:apply-templates>
-           <xsl:text>)</xsl:text>
-          </xsl:when>
-          <xsl:otherwise>
-           <xsl:text>(</xsl:text>
-           <xsl:apply-templates select="*[position()=2]"/>
-           <xsl:text>:></xsl:text>
-           <xsl:apply-templates select="*[position()=3]"/>
-           <xsl:text>)</xsl:text>
-          </xsl:otherwise>
-         </xsl:choose>
-        </xsl:when>
-        <xsl:otherwise>
-         <xsl:apply-templates select="*[position()=2]">
-          <xsl:with-param name="current_indent" select="$current_indent"/>
-         </xsl:apply-templates>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='Prop'">
-       <xsl:text>Prop</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name='Set'">
-       <xsl:text>Set</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name='Type'">
-       <xsl:text>Type</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name='mutcase'">
-       <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-         <xsl:text>&lt;</xsl:text>
-         <xsl:apply-templates select="*[position()=2]">
-          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-         </xsl:apply-templates>
-         <xsl:text>&gt; </xsl:text>
-         <xsl:text>CASE </xsl:text>
-         <xsl:apply-templates select="*[position()=3]">
-          <xsl:with-param name="current_indent" select="$current_indent + 8"/>
-         </xsl:apply-templates>
-         <xsl:text> OF </xsl:text> 
-         <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
-         <BR/>
-         <xsl:call-template name="make_indent">
-            <xsl:with-param name="current_indent" select="$current_indent + 2"/>  
-         </xsl:call-template> 
-            <xsl:choose>
-            <xsl:when test="position() = 1">
-             <xsl:text>&#x00A0;&#x00A0;</xsl:text>
-            </xsl:when>
-            <xsl:otherwise>
-             <xsl:text>| </xsl:text>
-            </xsl:otherwise>
-            </xsl:choose>
-            <xsl:apply-templates select="."/>
-            <FONT FACE="symbol" SIZE="+2" color="green">&#222;</FONT>
-            <xsl:apply-templates select="following-sibling::*[position()= 1]">
-             <xsl:with-param name="current_indent" select="$current_indent + 4 + string-length()"/>
-            </xsl:apply-templates>
-         </xsl:for-each>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>&lt;</xsl:text> 
-        <xsl:apply-templates select="*[position()=2]"/> 
-        <xsl:text>&gt; </xsl:text>
-        <xsl:text>CASE </xsl:text>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <xsl:text> OF </xsl:text>
-        <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
-         <xsl:choose>
-         <xsl:when test="not(position() = 1)">
-          <xsl:text> | </xsl:text> 
-         </xsl:when> 
-         </xsl:choose>
-         <xsl:apply-templates select="."/>
-         <FONT FACE="symbol" SIZE="+2" color="green">&#222;</FONT>
-         <xsl:apply-templates select="following-sibling::*[position()= 1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 2 + string-length()"/>
-         </xsl:apply-templates>
-        </xsl:for-each>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='fix'">
-       <xsl:choose>
-       <xsl:when test="$charlength  > $framewidth">
-            <xsl:text>FIX</xsl:text>
-            <xsl:value-of select="m:ci"/>
-            <xsl:text>{</xsl:text> 
-            <xsl:for-each select="m:bvar"> 
-              <BR/>
-              <xsl:call-template name="make_indent">
-               <xsl:with-param name="current_indent" select="$current_indent + 2"/>  
-              </xsl:call-template>
-              <xsl:value-of select="m:ci"/>
-              <xsl:text>:</xsl:text>
-              <xsl:apply-templates select="m:type">
-               <xsl:with-param name="current_indent" 
-                    select="$current_indent + 5 + string-length(m:ci)"/>
-               </xsl:apply-templates>
-              <BR/>
-              <xsl:call-template name="make_indent">
-               <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-              </xsl:call-template>
-              <xsl:text>:=</xsl:text> 
-              <xsl:apply-templates select="following-sibling::*[position() = 1]">
-               <xsl:with-param name="current_indent" select="$current_indent +2"/>
-              </xsl:apply-templates>
-            </xsl:for-each>
-             <BR/>
-              <xsl:call-template name="make_indent">
-               <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-              </xsl:call-template> 
-           <xsl:text>}</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>FIX</xsl:text>
-        <xsl:value-of select="m:ci"/>
-        <xsl:text>{</xsl:text>
-        <xsl:for-each select="m:bvar"> 
-            <xsl:value-of select="m:ci"/>
-            <xsl:text>:</xsl:text>
-            <xsl:apply-templates select="m:type"/>
-            <xsl:text>:=</xsl:text>
-            <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-            <xsl:choose>
-             <xsl:when test="position()=last()">
-             <xsl:text>}</xsl:text>
-             </xsl:when>
-             <xsl:otherwise>
-             <xsl:text>;</xsl:text>
-             </xsl:otherwise>
-            </xsl:choose>
-         </xsl:for-each>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when> 
-      <xsl:when test="$name='cofix'">
-       <xsl:choose>
-       <xsl:when test="($charlength + 10) > $framewidth">
-            <xsl:text>COFIX</xsl:text>
-            <xsl:value-of select="m:ci"/>
-            <xsl:text>{</xsl:text>
-            <BR/>
-            <xsl:call-template name="make_indent">
-             <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-            </xsl:call-template>
-            <xsl:for-each select="m:bvar"> 
-                <xsl:value-of select="m:ci"/>
-                <xsl:text>:</xsl:text>
-                <xsl:apply-templates select="m:type">
-                 <xsl:with-param name="current_indent" 
-                    select="$current_indent + 5 + string-length(m:ci)"/>
-                </xsl:apply-templates>
-                <BR/> 
-                <xsl:call-template name="make_indent">
-                 <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-                </xsl:call-template>
-                <xsl:text>:=</xsl:text>
-                <xsl:apply-templates select="following-sibling::*[position() = 1]">
-                 <xsl:with-param name="current_indent" select="$current_indent + 3"/>
-                </xsl:apply-templates>
-            </xsl:for-each>
-            <BR/>
-              <xsl:call-template name="make_indent">
-               <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-              </xsl:call-template>
-            <xsl:text>}</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>COFIX</xsl:text>
-        <xsl:value-of select="m:ci"/>
-        <xsl:text>{</xsl:text>
-        <xsl:for-each select="m:bvar"> 
-            <xsl:value-of select="m:ci"/>
-            <xsl:text>:</xsl:text>
-            <xsl:apply-templates select="m:type"/>
-            <xsl:text>:=</xsl:text>
-            <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-            <xsl:choose>
-             <xsl:when test="position()=last()">
-             <xsl:text>}</xsl:text>
-             </xsl:when>
-             <xsl:otherwise>
-             <xsl:text>;</xsl:text>
-             </xsl:otherwise>
-            </xsl:choose>
-         </xsl:for-each>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      </xsl:choose>
-    <!--  </m:mrow> -->
-</xsl:template>
-
-<!-- LAMBDA -->
-
-<xsl:template match="m:lambda">
-<xsl:param name="current_indent" select="0"/>
-    <xsl:variable name="charlength">
-     <xsl:apply-templates select="*[position()=1]" mode="charcount"/>
-     <!-- <xsl:apply-templates select="." mode="charcount"/> -->
-    </xsl:variable>
-    <!-- <xsl:value-of select="$charlength"/> -->
-     <xsl:choose>
-     <xsl:when test="$charlength > $framewidth">
-       <!-- &#x03bb; -->
-       <FONT FACE="symbol" SIZE="+2" color="red">&#108;</FONT>
-       <xsl:apply-templates select="m:bvar/m:ci"/>
-       <xsl:text>:</xsl:text>
-       <xsl:apply-templates select="m:bvar/m:type">
-        <xsl:with-param name="current_indent" 
-           select="$current_indent + 2 + string-length(m:bvar/m:ci)"/>
-       </xsl:apply-templates><BR/> 
-       <xsl:call-template name="make_indent">
-        <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-       </xsl:call-template>
-       <xsl:text>.</xsl:text>
-       <xsl:apply-templates select="*[position()=2]">
-        <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-       </xsl:apply-templates>
-     </xsl:when>
-     <xsl:otherwise>
-      <!-- &#x03bb; -->
-      <FONT FACE="symbol" SIZE="+2" color="red">&#108;</FONT>
-      <xsl:apply-templates select="m:bvar/m:ci"/>
-      <xsl:text>:</xsl:text>
-      <xsl:apply-templates select="m:bvar/m:type"/>
-      <xsl:text>.</xsl:text>
-      <xsl:apply-templates select="*[position()=2]"/>
-     </xsl:otherwise>
-     </xsl:choose>
-</xsl:template>
-
-<!-- href -->
-<xsl:template match="m:ci">
- <xsl:choose>
-  <xsl:when test="boolean(@definitionURL)">
-<!-- CSC: non bisogna piu' utilizzare la url, bensi' la uri -->
-<!--   <xsl:variable name="url">
-    <xsl:value-of select="concat(string($absPath),
-     @definitionURL)"/>
-   </xsl:variable>-->
-   <a>
-   <xsl:attribute name="href">
-    <xsl:value-of select="concat(string($header),string(@definitionURL))"/>
-   </xsl:attribute>
-   <xsl:apply-templates/>
-   </a>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="."/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!-- COUNTING -->
-
-<xsl:template match="m:ci|m:csymbol" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth >= ($incurrent_length + string-length())">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-<xsl:template match="*" mode="charcount">
- <xsl:param name="incurrent_length" select="0"/>
- <xsl:choose>
-  <xsl:when test="count(child::*) = 0">
-   <xsl:value-of select="$incurrent_length"/>
-  </xsl:when>
-  <xsl:otherwise>
-    <xsl:variable name="childlength"><xsl:apply-templates select="*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length"/></xsl:apply-templates></xsl:variable>
-    <xsl:choose>
-     <xsl:when test="$framewidth >= number($childlength)">
-      <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$childlength"/></xsl:apply-templates></xsl:variable>
-      <xsl:choose>
-       <xsl:when test="string($siblength) = &quot;&quot;">
-        <xsl:value-of select="number($childlength)"/>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:value-of select="number($siblength)"/>
-       </xsl:otherwise>
-      </xsl:choose>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($childlength)"/>
-     </xsl:otherwise>
-    </xsl:choose>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-<!--***********************************************************************-->
-<!-- OBJECTS                                                               -->
-<!--***********************************************************************-->
-
-<!-- DEFINITION -->
-
-<xsl:template match="Definition">
-<xsl:param name="current_indent" select="0"/>
-<p>
-DEFINITION <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>)<BR/>
-TYPE =<BR/>
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 7"/> 
-      </xsl:call-template>
-       <xsl:apply-templates select="type/*[1]">
-        <xsl:with-param name="current_indent" select="$current_indent + 7"/>
-       </xsl:apply-templates><BR/>
-BODY =<BR/>
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 7"/> 
-      </xsl:call-template>
-       <xsl:apply-templates select="body/*[1]">
-        <xsl:with-param name="current_indent" select="$current_indent + 7"/>
-       </xsl:apply-templates>
-</p>
-</xsl:template>
-
-<!-- AXIOM -->
-
-<xsl:template match="Axiom">
-<xsl:param name="current_indent" select="0"/>
-<p>
-AXIOM <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>)<BR/>
-TYPE = <xsl:apply-templates select="type/*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 7"/>
-       </xsl:apply-templates>
-</p>
-</xsl:template>
-
-<!-- UNFINISHED PROOF -->
-
-<xsl:template match="CurrentProof">
-<xsl:param name="current_indent" select="0"/>
-<p>
-UNFINISHED PROOF <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>)<BR/>
-THESIS:  <xsl:apply-templates select="type/*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 8"/>
-         </xsl:apply-templates><BR/>
-CONJECTURES: 
-      <xsl:for-each select="Conjecture">
-      <BR/>
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 8"/> 
-      </xsl:call-template>
-      <xsl:value-of select="./@no"/> : 
-      <xsl:apply-templates select="./*[1]">
-       <xsl:with-param name="current_indent" select="$current_indent + 11"/>
-      </xsl:apply-templates>
-      </xsl:for-each> 
-      <BR/>
-PROOF:
-      <xsl:apply-templates select="body/*[1]">
-        <xsl:with-param name="current_indent" select="$current_indent + 8"/>
-      </xsl:apply-templates>
-</p>
-</xsl:template>
-
-<!-- MUTUAL INDUCTIVE DEFINITION -->
-
-<xsl:template match="InductiveDefinition">
-<xsl:param name="current_indent" select="0"/>
-<p>
-     <xsl:for-each select="InductiveType">
-         <xsl:choose>
-         <xsl:when test="position() = 1">
-          <xsl:choose>
-          <xsl:when test="string(./@inductive) = &quot;true&quot;">
-          INDUCTIVE DEFINITION 
-          </xsl:when>
-          <xsl:otherwise>
-          COINDUCTIVE DEFINITION 
-          </xsl:otherwise>
-          </xsl:choose>  
-         </xsl:when>
-         <xsl:otherwise>
-          AND 
-         </xsl:otherwise>
-         </xsl:choose>
-         <xsl:value-of select="./@name"/>(<xsl:if test="string(../Params) != &quot;&quot;"><xsl:value-of select="../Params"/></xsl:if>)
-         [
-          <xsl:if test="string(../Param) != &quot;&quot;">         
-           <xsl:for-each select="../Param">
-            <xsl:value-of select="./@name"/>
-            :
-            <xsl:apply-templates select="*"/>
-           </xsl:for-each>
-          </xsl:if>
-         ] <BR/>
-         OF ARITY 
-         <xsl:apply-templates select="./arity/*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 9"/>
-         </xsl:apply-templates> <BR/>
-         BUILT FROM:
-      <xsl:for-each select="./Constructor">
-      <BR/>
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 3"/> 
-      </xsl:call-template>
-         <xsl:choose>
-         <xsl:when test="position() = 1">
-         <xsl:text>&#x00A0;&#x00A0;</xsl:text>
-         </xsl:when>
-         <xsl:otherwise>
-         <xsl:text>| </xsl:text>
-         </xsl:otherwise>
-         </xsl:choose>
-         <xsl:value-of select="./@name"/> 
-         <xsl:text>: </xsl:text>
-         <xsl:apply-templates select="./*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + string-length(./@name) + 4"/>
-         </xsl:apply-templates>
-      </xsl:for-each>
-     </xsl:for-each>
-</p>
-</xsl:template>
-
-<!-- VARIABLE -->
-
-<xsl:template match="Variable">
-<xsl:param name="current_indent" select="0"/>
-<p>
-VARIABLE <xsl:value-of select="@name"/><BR/>
-TYPE = <xsl:apply-templates select="type/*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 7"/>
-       </xsl:apply-templates>
-</p>
-</xsl:template>
-
-<!--***********************************************************************-->
-<!-- SECTIONS                                                              -->
-<!--***********************************************************************-->
-
-<!-- SECTION -->
-
-<xsl:template match="SECTION">
-<xsl:param name="current_indent" select="0"/>
- <h1>BEGIN OF SECTION</h1>
-  <xsl:apply-templates/>
- <h1>END OF SECTION</h1>
-</xsl:template>
-
-</xsl:stylesheet> 
diff --git a/helm/style/html_init.xsl b/helm/style/html_init.xsl
deleted file mode 100644 (file)
index 9e81b16..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- INIT style for HTML                                                   -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-
-<!-- BASIC OPERATORS -->
-
- <xsl:template match="m:apply[m:and|m:or|m:eq|m:neq|m:leq|m:lt
-       |m:geq|m:gt|m:plus|m:times]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="*[1]/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="*[1]" mode="charcount"/>
-  </xsl:variable>
-  <xsl:variable name="symbol">
-   <xsl:choose>
-    <xsl:when test="m:and">
-     <xsl:value-of select="'&#217;'"/>
-    </xsl:when>
-    <xsl:when test="m:or">
-     <xsl:value-of select="'&#218;'"/>
-    </xsl:when>
-    <xsl:when test="m:eq">
-     <xsl:value-of select="'&#61;'"/>
-    </xsl:when>
-    <xsl:when test="m:neq">
-     <xsl:value-of select="'&#185;'"/>
-    </xsl:when>
-    <xsl:when test="m:leq">
-     <xsl:value-of select="'&#163;'"/>
-    </xsl:when>
-    <xsl:when test="m:lt">
-     <xsl:value-of select="'&#60;'"/>
-    </xsl:when>
-    <xsl:when test="m:geq">
-     <xsl:value-of select="'&#179;'"/>
-    </xsl:when>
-    <xsl:when test="m:gt">
-     <xsl:value-of select="'&#62;'"/>
-    </xsl:when>
-    <xsl:when test="m:plus">
-     <xsl:value-of select="'&#43;'"/>
-    </xsl:when>
-    <xsl:when test="m:times">
-     <xsl:value-of select="'&#42;'"/>
-    </xsl:when>
-   </xsl:choose>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">
-      <xsl:value-of select="$symbol"/>
-     </FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">
-     <xsl:value-of select="$symbol"/>
-     </FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- MINUS (can be unary!) -->
-
-<xsl:template match="m:apply[m:minus]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="*[1]/@definitionURL"/>
-  </xsl:variable>
-  <xsl:choose>
-   <xsl:when test="count(child::*)=2">
-    <a>
-    <xsl:attribute name="href">
-     <xsl:value-of select="concat(string($header),string($uri))"/>
-    </xsl:attribute>
-    <xsl:text>-</xsl:text>
-    </a>
-    <xsl:apply-templates select="*[2]">
-     <xsl:with-param name="current_indent" select="$current_indent + 1"/>
-    </xsl:apply-templates>
-   </xsl:when>
-   <xsl:otherwise>
-    <xsl:variable name="charlength">
-     <xsl:apply-templates select="*[1]" mode="charcount"/>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="$charlength > $framewidth">
-      <xsl:text>(</xsl:text>
-      <xsl:apply-templates select="*[2]">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-      </xsl:apply-templates>
-      <BR/> 
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-      </xsl:call-template>
-      <a>
-      <xsl:attribute name="href">
-       <xsl:value-of select="concat(string($header),string($uri))"/>
-      </xsl:attribute>
-      <xsl:text>-</xsl:text>
-      </a>
-      <xsl:apply-templates select="*[3]">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-      </xsl:apply-templates>
-      <xsl:text>)</xsl:text>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:text>(</xsl:text>
-      <xsl:apply-templates select="*[2]"/>
-      <a>
-      <xsl:attribute name="href">
-       <xsl:value-of select="concat(string($header),string($uri))"/>
-      </xsl:attribute>
-      <xsl:text>-</xsl:text>
-      </a>
-      <xsl:apply-templates select="*[3]"/>
-      <xsl:text>)</xsl:text>
-     </xsl:otherwise>
-    </xsl:choose>
-   </xsl:otherwise>
-  </xsl:choose>
- </xsl:template>
-
-<!-- NOT -->
-
- <xsl:template match="m:apply[m:not]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:not/@definitionURL"/>
-  </xsl:variable>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">&#216;</FONT>
-     </a>
-     <xsl:apply-templates select="*[2]"/>
- </xsl:template>
-
-<!-- EXISTS -->
-
- <xsl:template match="m:apply[m:exists]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:exists/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:exists" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">&#36;</FONT>
-     </a>
-     <xsl:apply-templates select="m:bvar/m:ci"/>
-     <xsl:text>:</xsl:text>
-     <xsl:apply-templates select="m:condition">
-      <xsl:with-param name="current_indent" select="$current_indent + 2 +
-                                string-length(bvar/ci)"/> 
-     </xsl:apply-templates>
-     <BR/> 
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-      </xsl:call-template>
-     <xsl:text>.</xsl:text>
-      <xsl:apply-templates select="*[last()]">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">&#36;</FONT>
-     </a>
-     <xsl:apply-templates select="m:bvar/m:ci"/>
-     <xsl:text>:</xsl:text>
-     <xsl:apply-templates select="m:condition"/>
-     <xsl:text>.</xsl:text>
-     <xsl:apply-templates select="*[last()]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-
-
-
-<!-- COUNTING -->
-
-<xsl:template match="m:cn|m:and|m:or|m:not|m:exists|m:eq|m:neq
-   |m:lt|m:leq|m:gt|m:geq|m:plus|m:minus|m:times" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth >= ($incurrent_length + string-length())">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-</xsl:stylesheet> 
-
-
diff --git a/helm/style/html_reals.xsl b/helm/style/html_reals.xsl
deleted file mode 100644 (file)
index 04ff478..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- INIT style for HTML                                                   -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- LIMIT -->
-
-<xsl:template match="m:apply[m:limit]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:limit/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:limit" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:text>lim</xsl:text>
-     </a>
-     <SUB>
-      <xsl:apply-templates select="m:bvar/m:ci"/>
-      <FONT FACE="symbol" color="blue">&#174;</FONT>
-      <xsl:apply-templates select="m:lowlimit"/>
-     </SUB>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/> 
-     </xsl:call-template>
-     <xsl:apply-templates select="*[4]">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-     </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:text>lim</xsl:text>
-     </a>
-     <SUB>
-      <xsl:apply-templates select="m:bvar/m:ci"/>
-      <FONT FACE="symbol" color="blue">&#174;</FONT>
-      <xsl:apply-templates select="m:lowlimit"/>
-     </SUB>
-     <xsl:apply-templates select="*[4]">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-     </xsl:apply-templates>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- DIFFERENTIATION -->
-
-<xsl:template match="m:apply[m:diff]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:diff/@definitionURL"/>
-  </xsl:variable>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <SUP>d</SUP>
-      <xsl:text>/</xsl:text>
-     <SUB>
-      <xsl:text>d</xsl:text>
-      <xsl:value-of select="m:bvar/m:ci"/>
-     </SUB>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-     </xsl:apply-templates>
- </xsl:template>
-
-<!-- ABSOLUTE VALUE -->
-<xsl:template match="m:apply[m:abs]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:abs/@definitionURL"/>
-  </xsl:variable>
-  <xsl:text>|</xsl:text>
-  <xsl:apply-templates select="*[2]">
-   <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-  </xsl:apply-templates>
-  <xsl:text>|</xsl:text>
- </xsl:template>
-
-<!-- FACTORIAL -->
-
-<xsl:template match="m:apply[m:fact]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:abs/@definitionURL"/>
-  </xsl:variable>
-  <xsl:apply-templates select="*[2]">
-   <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-  </xsl:apply-templates>
-  <xsl:text>!</xsl:text>
- </xsl:template>
-
-<!-- SQUARE ROOT -->
-
-<xsl:template match="m:apply[m:root]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:abs/@definitionURL"/>
-  </xsl:variable>
-  <xsl:text>(sqr</xsl:text>
-  <xsl:apply-templates select="*[2]">
-   <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-  </xsl:apply-templates>
-  <xsl:text>)</xsl:text>
- </xsl:template>
-
-<!-- POWER -->
-
-<xsl:template match="m:apply[m:power]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:power/@definitionURL"/>
-  </xsl:variable>
-  <xsl:apply-templates select="*[2]"/>
-  <SUP>
-  <xsl:apply-templates select="*[3]"/>
-  </SUP>
- </xsl:template>
-
-<!-- MIN and MAX (binari: estendere) -->
-
- <xsl:template match="m:apply[m:min|m:max]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="*[1]/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="*[1]" mode="charcount"/>
-  </xsl:variable>
-  <xsl:variable name="symbol">
-   <xsl:choose>
-    <xsl:when test="m:min">
-     <xsl:value-of select="'min'"/>
-    </xsl:when>
-    <xsl:when test="m:max">
-     <xsl:value-of select="'max'"/>
-    </xsl:when>
-   </xsl:choose>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:value-of select="$symbol"/>
-     </a>
-     <xsl:text>{</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>,</xsl:text>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/> 
-     </xsl:call-template>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>}</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:value-of select="$symbol"/>
-     </a>
-     <xsl:text>{</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <xsl:text>, </xsl:text>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>}</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- COUNTING -->
-
-<xsl:template match="m:abs|m:fact|m:root
-           |m:limit|m:diff|m:min|m:max" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth >= ($incurrent_length + string-length())">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-</xsl:stylesheet> 
-
-
-
-
-
-
-
diff --git a/helm/style/html_set.xsl b/helm/style/html_set.xsl
deleted file mode 100644 (file)
index 6c7f66b..0000000
+++ /dev/null
@@ -1,463 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- INIT style for HTML                                                   -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- IN -->
-
- <xsl:template match="m:apply[m:in]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:in/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:in" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#206;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#206;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- NOTIN -->
-
- <xsl:template match="m:apply[m:notin]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:notin/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:notin" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#207;</FONT>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#207;</FONT>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- SET -->
-
- <xsl:template match="m:set">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="concat(string($absPath), @definitionURL)"/>
-  </xsl:variable>
-  <xsl:choose>
-   <xsl:when test="count(child::*) = 0">
-    <FONT FACE="symbol" color="blue">&#198;</FONT>
-   </xsl:when>
-   <xsl:otherwise>
-    <xsl:variable name="charlength">
-     <xsl:apply-templates select="." mode="charcount"/>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="name(*[1]) = 'm:bvar'">
-      <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-        <xsl:text>{</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:ci"/>
-        <xsl:text>:</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:type">
-         <xsl:with-param name="current_indent" 
-           select="$current_indent + 2 + string-length(m:bvar/m:ci)"/>
-        </xsl:apply-templates><BR/>
-        <xsl:call-template name="make_indent">
-         <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-        </xsl:call-template>
-        <xsl:text>|</xsl:text>
-        <xsl:apply-templates select="m:condition">
-         <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-        </xsl:apply-templates>
-        <xsl:text>}</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>{</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:ci"/>
-        <xsl:text>:</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:type"/>
-        <xsl:text>|</xsl:text>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <xsl:text>}</xsl:text>
-       </xsl:otherwise>
-      </xsl:choose>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-        <xsl:text>{</xsl:text>
-         <xsl:apply-templates select="*[position()=1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-         </xsl:apply-templates>
-         <xsl:for-each select="*[position()>1]">
-          <xsl:text>,</xsl:text>
-          <BR/>
-          <xsl:call-template name="make_indent">
-           <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-          </xsl:call-template>
-          <xsl:apply-templates select=".">
-           <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-          </xsl:apply-templates>
-         </xsl:for-each>
-         <xsl:text>}</xsl:text>
-        </xsl:when>
-        <xsl:otherwise>
-        <xsl:text>{</xsl:text>
-         <xsl:for-each select="*">
-          <xsl:apply-templates select="."/>
-          <xsl:choose>
-           <xsl:when test="position() = last()">
-            <xsl:text>}</xsl:text>
-           </xsl:when>
-           <xsl:otherwise>
-            <xsl:text>,</xsl:text>
-           </xsl:otherwise>
-          </xsl:choose>
-         </xsl:for-each>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:otherwise>
-     </xsl:choose>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-
-<!-- INTERSECTION -->
-
-<xsl:template match="m:apply[m:intersect]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:intersect/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:intersect" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#199;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#199;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- UNION -->
-
-<xsl:template match="m:apply[m:union]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:union/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:union" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#200;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#200;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- SUBSET -->
-<xsl:template match="m:apply[m:subset]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:subset/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:subset" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#205;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#205;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- PRSUBSET -->
-<xsl:template match="m:apply[m:prsubset]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:prsubset/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:prsubset" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#204;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#204;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-
-<!-- SETDIFF -->
-
-<xsl:template match="m:apply[m:setdiff]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:setdiff/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:setdiff" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:text>/</xsl:text>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:text>/</xsl:text>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- CARD -->
-<xsl:template match="m:apply[m:card]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:card/@definitionURL"/>
-  </xsl:variable>
-  <xsl:text>|</xsl:text>
-  <xsl:apply-templates select="*[2]">
-   <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-  </xsl:apply-templates>
-  <xsl:text>|</xsl:text>
- </xsl:template>
-
-<!-- COUNTING -->
-
-<xsl:template match="m:in|m:notin|m:intersect|m:union
-           |m:subset|m:prsubset|m:setdiff|m:card" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth >= ($incurrent_length + string-length())">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-</xsl:stylesheet> 
-
-
-
-
-
-
-
diff --git a/helm/style/mml2mmlv1_0.xsl b/helm/style/mml2mmlv1_0.xsl
deleted file mode 100644 (file)
index 330da7a..0000000
+++ /dev/null
@@ -1,1984 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- ====================================================== -->
-<!-- XSL Transform of MathML content to MathML presentation -->
-<!--    By Igor Rodionov, Computer Science Department of    -->
-<!--   the University of Western Ontario, London, Canada    -->
-<!--  Complies with the W3C Working Draft from Dec.3, 1999  -->
-<!--             Version x.xx from Feb. 18, 2000            -->
-<!--              Comments to:  igor@csd.uwo.ca             -->
-<!--                                                        -->
-<!-- (C) Copyright 1999, 2000 Symbolic Computation          -->
-<!--     Laboratory, University of Western Ontario.         -->
-<!-- ====================================================== -->
-
-<!-- ====================================================== -->
-<!--  May 11, 2000 - HELM group:                            -->
-<!--  Added the namespace prefix to all the output elements -->
-<!--  Changed the mml prefix into m                         -->
-<!--  Swapped math element out of the semantic element      -->
-<!--  Added the declaration of the xlink namespace          --> 
-<!-- ====================================================== -->
-
-<!-- ====================================================== -->
-<!--  June, 2000 - HELM group:                              -->
-<!--  Added auxiliary function to inser:                    -->
-<!--  1) backwards pointers: helm:xref                      -->
-<!--  2) references to definitions: xlink:href              -->
-<!--  Added call-templates to the functions:                -->
-<!--  insert_xref, insert, insert1, insert2                 -->
-<!-- ====================================================== -->
-
-
-<!-- HELM: namespace helm added -->
-<xsl:stylesheet id="mml2mml"
-                version="1.0"
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:m="http://www.w3.org/1998/Math/MathML"
-                xmlns:xlink="http://www.w3.org/1999/xlink"
-                xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:output method="xml" indent="yes" encoding="iso-8859-1"/>
-
-<!-- ***************************************************** -->
-<!--  Parameters affectin' stylesheet's run-time behavior  -->
-<!-- ***************************************************** -->
-
-<!-- SEM_SW: -1 - strip off all semantics
-             0  - pass semantics "as is" (default)
-             1  - add semantics at top level only
-             2  - add semantics at all levels
-             3  - semantics at top level with cross-references
--->
-<!-- HELM: SEM_SW was 0 -->
-<xsl:param name="SEM_SW" select="1"/>
-
-<!-- Miscellaneous Variable Definitions -->
-
-<xsl:variable name="NO" select="0"/>
-<xsl:variable name="YES" select="1"/>
-<xsl:variable name="PAR_NO" select="-7"/>
-<xsl:variable name="PAR_YES" select="-5"/>
-<xsl:variable name="PAR_SAME" select="-3"/>
-<xsl:variable name="NO_PARAM" select="-1"/>
-
-<!-- Operator Precedence Definitions -->
-
-<xsl:variable name="NO_PREC" select="0"/>
-<xsl:variable name="UNION_PREC" select="1"/>
-<xsl:variable name="SETDIFF_PREC" select="1"/>
-<xsl:variable name="INTERSECT_PREC" select="3"/>
-<xsl:variable name="OR_PREC" select="5"/>
-<xsl:variable name="XOR_PREC" select="5"/>
-<xsl:variable name="AND_PREC" select="7"/>
-<xsl:variable name="PLUS_PREC" select="9"/>
-<xsl:variable name="MINUS_PREC" select="9"/>
-<xsl:variable name="MUL_PREC" select="11"/>
-<xsl:variable name="DIV_PREC" select="11"/>
-<xsl:variable name="NEG_PREC" select="13"/>
-<xsl:variable name="FUNCTION_PREC" select="99"/>
-
-<!-- HELM: auxiliary functions for backwards pointers and refs -->
-
-<xsl:template name = "insert_xref">
- <xsl:if test="@helm:xref">
-  <xsl:attribute name="helm:xref">
-   <xsl:value-of select="@helm:xref"/>
-  </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<xsl:template name = "insert">
- <xsl:if test="@definitionURL">
-  <xsl:attribute name="xlink:href">
-   <xsl:value-of select="@definitionURL"/>
-  </xsl:attribute>
- </xsl:if>
- <xsl:if test="@helm:xref">
-  <xsl:attribute name="helm:xref">
-   <xsl:value-of select="@helm:xref"/>
-  </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<!-- HELM: for use inside m:apply -->
-<xsl:template name = "insert1">
- <xsl:if test="*[1]/@definitionURL">
-  <xsl:attribute name="xlink:href">
-   <xsl:value-of select="*[1]/@definitionURL"/>
-  </xsl:attribute>
- </xsl:if>
- <xsl:if test="*[1]/@helm:xref">
-  <xsl:attribute name="helm:xref">
-   <xsl:value-of select="*[1]/@helm:xref"/>
-  </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<!-- HELM: for use inside "for-each" -->
-<xsl:template name = "insert2">
- <xsl:if test="../*[1]/@definitionURL">
-  <xsl:attribute name="xlink:href">
-   <xsl:value-of select="../*[1]/@definitionURL"/>
-  </xsl:attribute>
- </xsl:if>
- <xsl:if test="../*[1]/@helm:xref">
-  <xsl:attribute name="helm:xref">
-   <xsl:value-of select="../*[1]/@helm:xref"/>
-  </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<!-- THE TOPMOST ELEMENT: MATH -->
-
-<xsl:template match = "m:math">
-  <xsl:choose>
-    <xsl:when test="$SEM_SW>0">
-<!-- HELM: deleted math (we have already inserted at object level) -->
-     <!--<m:math>-->
-      <m:semantics>
-          <xsl:apply-templates mode = "semantics"/>
-       <m:annotation-xml encoding="MathML">
-          <xsl:copy-of select = "*"/>
-       </m:annotation-xml>
-      </m:semantics>
-     <!--</m:math>-->
-    </xsl:when>
-    <xsl:otherwise>
-      <!--<m:math>-->
-        <xsl:apply-templates mode = "semantics"/>
-      <!--</m:math>-->  
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- SEMANTICS -->
-
-<xsl:template match = "m:*" mode = "semantics">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$SEM_SW=-1 and self::m:semantics">
-      <xsl:apply-templates select="*[1]">
-        <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:when test="$SEM_SW=0 and self::m:semantics">
-      <m:semantics>
-        <xsl:apply-templates select="*[1]">
-          <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-        <xsl:copy-of select="m:annotation-xml"/>
-      </m:semantics>
-    </xsl:when>
-    <xsl:when test="$SEM_SW=2">
-      <m:semantics>
-        <xsl:choose>
-          <xsl:when test="self::m:semantics">
-            <xsl:apply-templates select="*[1]">
-              <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-              <xsl:with-param name="PARAM" select="$PARAM"/>
-              <xsl:with-param name="PAREN" select="$PAREN"/>
-              <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-            </xsl:apply-templates>
-            <xsl:copy-of select="m:annotation-xml"/>
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:apply-templates select=".">
-              <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-              <xsl:with-param name="PARAM" select="$PARAM"/>
-              <xsl:with-param name="PAREN" select="$PAREN"/>
-              <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-            </xsl:apply-templates>
-            <m:annotation-xml encoding="MathML">
-              <xsl:copy-of select="."/>
-            </m:annotation-xml>
-          </xsl:otherwise>
-        </xsl:choose>
-      </m:semantics>
-    </xsl:when>
-    <xsl:when test="$SEM_SW=3 and @id">
-      <m:mrow idref="{@id}">
-        <xsl:apply-templates select=".">
-          <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select=".">
-        <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:semantics">
-  <xsl:apply-templates select="*[1]" mode = "semantics"/>
-</xsl:template>
-
-
-<!-- BASIC ELEMENTS -->
-
-<xsl:template match = "m:cn">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test=". &lt; 0 and $IN_PREC &gt; 0 and $PAREN=$PAR_NO and $PAR_NO_IGNORE=$NO">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="cn"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select="." mode="cn"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:cn" mode="cn">
-  <xsl:choose>
-    <xsl:when test="@base and (not(@type) or @type='integer' or @type='real')">
-      <m:msub>
-        <m:mn> <xsl:apply-templates mode = "semantics"/> </m:mn>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-    </xsl:when>
-    <xsl:when test="@type='complex' and not(@base) and child::m:sep[1]">
-      <m:mfenced separators="">
-        <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-        <xsl:if test="text()[2] &lt; 0">
-          <m:mo>-</m:mo>
-          <m:mn> <xsl:value-of select="-text()[2]"/> </m:mn>
-        </xsl:if>
-        <xsl:if test="not(text()[2] &lt; 0)">
-          <m:mo>+</m:mo>
-          <xsl:apply-templates select="text()[2]" mode = "semantics"/>
-        </xsl:if>
-        <m:mo> <mchar name="InvisibleTimes"/> </m:mo>
-        <m:mo>i</m:mo>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@type='complex' and @base and child::m:sep[1]">
-      <m:msub>
-        <m:mfenced separators="">
-          <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-          <xsl:if test="text()[2] &lt; 0">
-            <m:mo>-</m:mo>
-            <m:mn> <xsl:value-of select="-text()[2]"/> </m:mn>
-          </xsl:if>
-          <xsl:if test="not(text()[2] &lt; 0)">
-            <m:mo>+</m:mo>
-            <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-          </xsl:if>
-          <m:mo> <mchar name="InvisibleTimes"/> </m:mo>
-          <m:mo>i</m:mo>
-        </m:mfenced>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-    </xsl:when>
-    <xsl:when test="@type='rational' and not(@base) and child::m:sep[1]">
-      <m:mrow>
-        <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-        <m:mo>/</m:mo>
-        <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-      </m:mrow>
-    </xsl:when>
-    <xsl:when test="@type='rational' and @base and child::m:sep[1]">
-      <m:msub>
-        <m:mfenced separators="">
-          <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-          <m:mo>/</m:mo>
-          <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-        </m:mfenced>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-    </xsl:when>
-    <xsl:when test="@type='polar' and not(@base) and child::m:sep[1]">
-      <m:mrow>
-        <m:mo>Polar</m:mo>
-        <m:mfenced separators=",">
-          <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-          <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-        </m:mfenced>
-      </m:mrow>
-    </xsl:when>
-    <xsl:when test="@type='polar' and @base and child::m:sep[1]">
-      <m:msub>
-        <m:mrow>
-          <m:mo>Polar</m:mo>
-          <m:mfenced separators=",">
-            <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-            <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-          </m:mfenced>
-        </m:mrow>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-   </xsl:when>
-    <xsl:otherwise>
-      <m:mn> 
-       <xsl:call-template name="insert"/>
-       <xsl:apply-templates mode = "semantics"/> 
-      </m:mn>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:ci">
-  <xsl:choose>
-    <xsl:when test="@type='vector' or @type=matrix or @type=set">
-      <m:mi fontweight="bold"> <xsl:apply-templates mode = "semantics"/> </m:mi>
-    </xsl:when>
-    <xsl:otherwise>
-     <m:mi> 
-      <xsl:call-template name="insert"/>
-      <xsl:apply-templates mode = "semantics"/> 
-     </m:mi>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:csymbol">
-  <xsl:choose>
-    <xsl:when test="*[1]">
-      <xsl:copy-of select = "*"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mo> <xsl:apply-templates mode = "semantics"/> </m:mo>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-
-<!-- BASIC CONTENT ELEMENTS -->
-
-<xsl:template match = "m:apply[m:fn[1]]">
-  <m:mrow>
-    <xsl:apply-templates select = "m:fn[1]" mode = "semantics"/>
-    <m:mfenced separators=",">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:fn">
-  <xsl:apply-templates select = "*[1]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-  </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match = "m:interval">
-  <xsl:choose>
-    <xsl:when test="@closure='closed'">
-      <m:mfenced open="[" close="]" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@closure='open'">
-      <m:mfenced separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@closure='open-closed'">
-      <m:mfenced open="(" close="]" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@closure='closed-open'">
-      <m:mfenced open="[" close=")" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mfenced open="[" close="]" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:*[1][self::m:apply[m:inverse[1]]]]">
-  <m:mrow>
-    <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-    <m:mfenced separators=",">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
- </m:mrow>
-</xsl:template>
-
-<!-- HELM: these "semantical" Transformations are REALLY questionable.
-     Andrea -->
-
-<xsl:template match = "m:apply[*[1][self::m:inverse]]">
-  <xsl:choose>
-    <xsl:when test="*[2]=m:exp">
-      <m:mo>ln</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:ln | m:log">
-      <m:mo>exp</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sin">
-      <m:mo>arcsin</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:cos">
-      <m:mo>arccos</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:tan">
-      <m:mo>arctan</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sec">
-      <m:mo>arcsec</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:csc">
-      <m:mo>arccsc</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:cot">
-      <m:mo>arccot</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sinh">
-      <m:mo>arcsinh</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:cosh">
-      <m:mo>arccosh</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:tanh">
-      <m:mo>arctanh</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sech">
-      <m:mo>arcsech</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:csch">
-      <m:mo>arccsch</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:coth">
-      <m:mo>arccoth</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:arcsin">
-      <m:mo>sin</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:arccos">
-      <m:mo>cos</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:arctan">
-      <m:mo>tan</m:mo>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:msup>
-        <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-        <m:mfenced>
-          <m:mn>-1</m:mn>
-        </m:mfenced>
-      </m:msup>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:sep"/>
-
-<xsl:template match = "m:condition">
-  <xsl:choose>
-    <xsl:when test="parent::m:apply[m:forall[1]]"/>
-    <xsl:otherwise>
-      <xsl:if test="not(*[2])">
-        <xsl:apply-templates mode = "semantics"/>
-      </xsl:if>
-      <xsl:if test="*[2]">
-        <m:mrow>
-          <xsl:apply-templates mode = "semantics"/>
-        </m:mrow>
-      </xsl:if>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:declare"/>
-
-<xsl:template match = "m:lambda">
-  <m:mrow>
-    <m:mo> &#x039b; </m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*">
-        <xsl:choose>
-          <xsl:when test="self::m:ci or self::m:cn">
-            <xsl:apply-templates select = "." mode="semantics"/>
-          </xsl:when>
-          <xsl:otherwise>
-            <m:mrow>
-              <xsl:apply-templates select = "." mode="semantics"/>
-            </m:mrow>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:*[1][self::m:apply[m:compose[1]]]]">
-  <m:mrow>
-    <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-    <m:mfenced separators=",">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
- </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[*[1][self::m:compose]]">
-  <m:mfenced separators="">
-    <xsl:apply-templates select = "m:*[2][self::m:ci[@type='fn'] | self::m:fn]" mode="semantics"/>
-    <xsl:for-each select = "m:*[position()>2][self::m:ci[@type='fn'] | self::m:fn]">
-      <m:mo> <xsl:call-template name="insert2"/> <mchar name="SmallCircle"/> </m:mo>
-      <xsl:apply-templates select = "." mode="semantics"/>
-    </xsl:for-each>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:ident">
-  <m:mo>id</m:mo>
-</xsl:template>
-
-
-<!-- ARITHMETIC, ALGEBRA & LOGIC -->
-
-<xsl:template match = "m:apply[m:quotient[1]]">
-  <m:mfenced open="&#x230a;" close="&#x230b;" separators="">
-    <xsl:call-template name="insert_xref"/>
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-    </xsl:apply-templates>
-    <m:mo><xsl:call-template name="insert1"/>/</m:mo>
-    <xsl:apply-templates select="*[3]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:apply[*[1][self::m:exp]]">
-  <m:msup>
-    <m:mo>e</m:mo>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-  </m:msup>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:factorial[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-    <m:mo><xsl:call-template name="insert1"/>!</m:mo>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:max[1] | m:min[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[2]=m:bvar">
-      <m:munder>
-        <xsl:if test="*[1]=m:max">
-          <m:mo><xsl:call-template name="insert1"/>max</m:mo>
-        </xsl:if>
-        <xsl:if test="*[1]=m:min">
-          <m:mo>min</m:mo>
-        </xsl:if>
-        <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      </m:munder>
-      <xsl:if test="*[3]=m:condition">
-        <m:mfenced open="{{" close="}}" separators="">
-          <m:mfenced open="" close="" separators=",">
-            <xsl:for-each select = "*[position()>3]">
-              <xsl:apply-templates select = "." mode="semantics"/>
-            </xsl:for-each>
-          </m:mfenced>
-          <m:mo>|</m:mo>
-          <xsl:apply-templates select="*[3]" mode = "semantics"/>
-        </m:mfenced>
-      </xsl:if>
-      <xsl:if test="not(*[3]=m:condition)">
-        <m:mfenced open="{{" close="}}" separators=",">
-          <xsl:for-each select = "*[position()>2]">
-            <xsl:apply-templates select = "." mode="semantics"/>
-          </xsl:for-each>
-        </m:mfenced>
-      </xsl:if>
-    </xsl:if>
-    <xsl:if test="*[2]=m:condition">
-      <xsl:if test="*[1]=m:max">
-        <m:mo>max</m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:min">
-        <m:mo>min</m:mo>
-      </xsl:if>
-      <m:mfenced open="{{" close="}}" separators="">
-        <xsl:if test="*[3]">
-          <m:mfenced open="" close="" separators=",">
-            <xsl:for-each select = "*[position()>2]">
-              <xsl:apply-templates select = "." mode="semantics"/>
-            </xsl:for-each>
-          </m:mfenced>
-          <m:mo>|</m:mo>
-        </xsl:if>
-        <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      </m:mfenced>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:condition) and not(*[2]=m:bvar)">
-      <xsl:if test="*[1]=m:max">
-        <m:mo>max</m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:min">
-        <m:mo><xsl:call-template name="insert1"/>min</m:mo>
-      </xsl:if>
-      <m:mfenced open="{{" close="}}" separators=",">
-        <xsl:for-each select = "*[position()>1]">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-    </xsl:if>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:minus[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $MINUS_PREC or $IN_PREC=$MINUS_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="minus">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="minus">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="minus">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:minus[1]]" mode="minus">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:if test="not(*[3])">
-    <m:mo><xsl:call-template name="insert1"/>-</m:mo>
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$NEG_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:if>
-  <xsl:if test="*[3]">
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$MINUS_PREC"/>
-      <xsl:with-param name="PARAM" select="$PARAM"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-    </xsl:apply-templates>
-    <m:mo><xsl:call-template name="insert1"/>-</m:mo>
-    <xsl:apply-templates select="*[3]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$MINUS_PREC"/>
-      <xsl:with-param name="PARAM" select="$PAR_SAME"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:plus[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $PLUS_PREC or $IN_PREC=$PLUS_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="plus">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="plus">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="plus">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:plus[1]]" mode="plus">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:if test="*[2]">
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$PLUS_PREC"/>
-      <xsl:with-param name="PARAM" select="$PARAM"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-    </xsl:apply-templates>
-    <xsl:for-each select = "*[position()>2]">
-      <xsl:choose>
-        <xsl:when test=". &lt; 0">
-          <m:mo>-</m:mo>
-          <m:mn> <xsl:value-of select="-."/> </m:mn>
-        </xsl:when>
-        <xsl:when test="self::m:apply[m:minus[1]] and not(*[3])">
-          <xsl:apply-templates select="." mode = "semantics">
-            <xsl:with-param name="IN_PREC" select="$PLUS_PREC"/>
-            <xsl:with-param name="PAREN" select="$PAREN"/>
-            <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-          </xsl:apply-templates>
-        </xsl:when>
-        <xsl:otherwise>
-          <m:mo><xsl:call-template name="insert2"/>+</m:mo>
-          <xsl:apply-templates select="." mode = "semantics">
-            <xsl:with-param name="IN_PREC" select="$PLUS_PREC"/>
-            <xsl:with-param name="PAREN" select="$PAREN"/>
-            <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-          </xsl:apply-templates>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:for-each>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:power[1]]">
-  <xsl:choose>
-    <xsl:when test="*[2]=m:apply[m:ln[1] | m:log[1] | m:abs[1] | m:gcd[1] | m:sin[1] | m:cos[1] | m:tan[1] | m:sec[1] | m:csc[1] | m:cot[1] | m:sinh[1] | m:cosh[1] | m:tanh[1] | m:sech[1] | m:csch[1] | m:coth[1] | m:arcsin[1] | m:arccos[1] | m:arctan[1]]">
-      <xsl:apply-templates select="*[2]" mode = "semantics"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:msup>
-        <xsl:apply-templates select = "*[2]" mode = "semantics">
-          <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-        </xsl:apply-templates>
-        <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-      </m:msup>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:rem[1] | m:divide[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $DIV_PREC or $IN_PREC=$DIV_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="remdiv">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="remdiv">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="remdiv">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:rem[1] | m:divide[1]]" mode="remdiv">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$DIV_PREC"/>
-      <xsl:with-param name="PARAM" select="$PARAM"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:if test="m:rem">
-    <m:mo><xsl:call-template name="insert1"/>%</m:mo>
-  </xsl:if>
-  <xsl:if test="m:divide">
-    <m:mo><xsl:call-template name="insert1"/>/</m:mo>
-  </xsl:if>
-  <xsl:apply-templates select = "*[3]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$DIV_PREC"/>
-    <xsl:with-param name="PARAM" select="$PAR_SAME"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-  </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:times[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $MUL_PREC or $IN_PREC=$MUL_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="times">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="times">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-         <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="times">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:times[1]]" mode="times">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$MUL_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:if test="*[3]">
-    <xsl:for-each select = "*[position()>2]">
-<!-- HELM: MODIFICA PROVVISORIA -->
-<!--      <m:mo><xsl:call-template name="insert2"/>
-                <mchar name="InvisibleTimes"/> </m:mo> -->
-      <m:mo><xsl:call-template name="insert2"/>*</m:mo>
-      <xsl:apply-templates select="." mode = "semantics">
-        <xsl:with-param name="IN_PREC" select="$MUL_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-      </xsl:apply-templates>
-    </xsl:for-each>
-  </xsl:if>
-</xsl:template>
-
-<!-- HELM: COMMENTO : dove metto la uri della definizione di radice ???? -->
-
-<xsl:template match = "m:apply[m:root[1]]">
-  <m:msqrt>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[2]=m:degree">
-      <xsl:apply-templates select="*[3]" mode = "semantics"/>
-      <xsl:apply-templates select="*[2]" mode = "semantics"/>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:degree)">
-      <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      <m:mn>2</m:mn>
-    </xsl:if>
-  </m:msqrt>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:gcd[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="not(parent::m:apply[m:power[1]])">
-      <m:mo><xsl:call-template name="insert1"/>gcd</m:mo>
-    </xsl:if>
-    <xsl:if test="parent::m:apply[m:power[1]]">
-      <m:msup>
-        <m:mo><xsl:call-template name="insert1"/>gcd</m:mo>
-        <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-      </m:msup>
-    </xsl:if>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:and[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $AND_PREC">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="and">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="and">
-        <xsl:with-param name="PARAM" select="$IN_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="and">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:and[1]]" mode="and">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$AND_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="wedge"/> </m:mo>
-    <xsl:apply-templates select="." mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$AND_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:or[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $OR_PREC">
-      <m:mfenced separators="">
-         <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="or">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="or">
-        <xsl:with-param name="PARAM" select="$IN_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="or">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:or[1]]" mode="or">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$OR_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="vee"/> </m:mo>
-    <xsl:apply-templates select="." mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$OR_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:xor[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $XOR_PREC">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="xor">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="xor">
-        <xsl:with-param name="PARAM" select="$IN_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="xor">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:xor[1]]" mode="xor">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$XOR_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="xor"/> </m:mo>
-    <xsl:apply-templates select="." mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$XOR_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:not[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>not</m:mo>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-    </xsl:apply-templates>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:forall[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>for all</m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "m:bvar">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-    <xsl:if test="m:condition">
-      <m:mo>:</m:mo>
-      <xsl:apply-templates select = "m:condition/*" mode = "semantics"/>
-      <m:mo>,</m:mo>
-    </xsl:if>
-    <xsl:apply-templates select = "*[position()>1 and not(self::m:bvar) and not(self::m:condition)]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:exists[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/> <mchar name="Exists"/> </m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "m:bvar">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-    <xsl:if test="m:condition">
-      <m:mo>,</m:mo>
-      <xsl:apply-templates select = "m:condition/*" mode = "semantics"/>
-    </xsl:if>
-    <m:mo>:</m:mo>
-    <xsl:apply-templates select = "*[position()>1 and not(self::m:bvar) and not(self::m:condition)]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:abs[1]]">
-  <xsl:if test="not(parent::m:apply[m:power[1]])">
-    <m:mfenced open="|" close="|" separators="">
-      <xsl:call-template name="insert_xref"/>
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
-  </xsl:if>
-  <xsl:if test="parent::m:apply[m:power[1]]">
-    <m:msup>
-      <m:mfenced open="|" close="|" separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-      </m:mfenced>
-      <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-    </m:msup>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:conjugate[1]]">
-  <m:mover>
-    <m:mrow>
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mrow>
-    <m:mo><xsl:call-template name="insert1"/> <mchar name="UnderBar"/> </m:mo>
-  </m:mover>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:arg[1] | m:real[1] | m:imaginary[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:choose>
-      <xsl:when test="m:arg">
-        <m:mo><xsl:call-template name="insert1"/>arg</m:mo>
-      </xsl:when>
-      <xsl:when test="m:real">
-        <m:mo><xsl:call-template name="insert1"/>Real</m:mo>
-      </xsl:when>
-      <xsl:when test="m:imaginary">
-        <m:mo><xsl:call-template name="insert1"/>Imaginary</m:mo>
-      </xsl:when>
-    </xsl:choose>
-    <m:mfenced separators="">
-      <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- RELATIONS -->
-
-<xsl:template match = "m:apply[m:neq | m:approx | m:tendsto | m:implies | m:in | m:notin | m:notsubset | m:notprsubset | m:subset | m:prsubset | m:eq | m:gt | m:lt | m:geq | m:leq | m:equivalent]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[1]=m:neq or *[1]=m:approx or *[1]=m:tendsto or *[1]=m:implies or *[1]=m:in or *[1]=m:notin or *[1]=m:notsubset or *[1]=m:notprsubset">
-      <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-      <xsl:if test="*[1]=m:neq">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="NotEqual"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:approx">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="approxeq"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:tendsto">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="RightArrow"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:implies">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="DoubleRightArrow"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:in">
-        <m:mo><xsl:call-template name="insert1"/>
-        <mchar name="Element"/> 
-       </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:notin">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="NotElement"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:notsubset">
-        <m:mo> <xsl:call-template name="insert1"/> <mchar name="NotSubset"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:notprsubset">
-        <m:mo> <xsl:call-template name="insert1"/> <mchar name="NotSubsetEqual"/> </m:mo>
-      </xsl:if>
-      <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-      <xsl:if test="*[1]=m:tendsto and m:tendsto[1][@type='below']">
-        <m:mo><xsl:call-template name="insert1"/>-</m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:tendsto and m:tendsto[1][@type='above']">
-        <m:mo><xsl:call-template name="insert1"/>+</m:mo>
-      </xsl:if>
-    </xsl:if>
-    <xsl:if test="*[1]=m:subset or *[1]=m:prsubset or *[1]=m:eq or *[1]=m:gt or *[1]=m:lt or *[1]=m:geq or *[1]=m:leq or *[1]=m:equivalent">
-      <xsl:apply-templates select = "*[2]" mode="semantics"/>
-      <xsl:for-each select = "*[position()>2]">
-        <xsl:if test="../*[self::m:subset][1]">
-          <m:mo> <xsl:call-template name="insert2"/> <mchar name="SubsetEqual"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:prsubset][1]">
-          <m:mo> <xsl:call-template name="insert2"/><mchar name="subset"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:eq][1]">
-          <m:mo><xsl:call-template name="insert2"/>=</m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:gt][1]">
-          <m:mo><xsl:call-template name="insert2"/>&gt;</m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:lt][1]">
-          <m:mo><xsl:call-template name="insert2"/>&lt;</m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:geq][1]">
-          <m:mo><xsl:call-template name="insert2"/> <mchar name="geq"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:leq][1]">
-          <m:mo><xsl:call-template name="insert2"/> <mchar name="leq"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:equivalent][1]">
-          <m:mo><xsl:call-template name="insert2"/> <mchar name="Congruent"/> </m:mo>
-        </xsl:if>
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </xsl:if>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- CALCULUS -->
-
-<xsl:template match = "m:apply[*[1][self::m:ln]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:choose>
-      <xsl:when test="parent::m:apply[m:power[1]]">
-        <m:msup>
-          <m:mo><xsl:call-template name="insert1"/>ln</m:mo>
-          <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-        </m:msup>
-      </xsl:when>
-      <xsl:otherwise>
-        <m:mo><xsl:call-template name="insert1"/>ln</m:mo>
-      </xsl:otherwise>
-    </xsl:choose>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-    </xsl:apply-templates>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:log[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:choose>
-      <xsl:when test="parent::m:apply[m:power[1]]">
-        <xsl:if test="not(*[2]=m:logbase)">
-          <m:msup>
-            <m:mo><xsl:call-template name="insert1"/>log</m:mo>
-            <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-          </m:msup>
-        </xsl:if>
-        <xsl:if test="*[2]=m:logbase">
-          <m:msubsup>
-            <m:mo><xsl:call-template name="insert1"/>log</m:mo>
-            <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-            <xsl:apply-templates select = "m:logbase" mode = "semantics"/>
-          </m:msubsup>
-        </xsl:if>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:if test="not(*[2]=m:logbase)">
-          <m:mo><xsl:call-template name="insert1"/>log</m:mo>
-        </xsl:if>
-        <xsl:if test="*[2]=m:logbase">
-          <m:msub>
-            <m:mo><xsl:call-template name="insert1"/>log</m:mo>
-            <xsl:apply-templates select = "m:logbase" mode = "semantics"/>
-          </m:msub>
-        </xsl:if>
-      </xsl:otherwise>
-    </xsl:choose>
-    <xsl:if test="*[2]=m:logbase">
-      <xsl:apply-templates select = "*[3]" mode = "semantics">
-        <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      </xsl:apply-templates>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:logbase)">
-      <xsl:apply-templates select = "*[2]" mode = "semantics">
-        <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      </xsl:apply-templates>
-    </xsl:if>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:diff[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[2]=m:bvar and m:bvar[*[2]=m:degree]">
-      <m:mfrac><xsl:call-template name="insert1"/>
-        <m:msup>
-          <m:mo>d</m:mo>
-          <xsl:apply-templates select = "m:bvar/m:degree" mode = "semantics"/>
-        </m:msup>
-        <m:mrow>
-          <m:mo>d</m:mo>
-          <m:msup>
-            <xsl:apply-templates select = "m:bvar/*[1]" mode = "semantics"/>
-            <xsl:apply-templates select = "m:bvar/m:degree" mode = "semantics"/>
-          </m:msup>
-        </m:mrow>
-      </m:mfrac>
-    </xsl:if>
-    <xsl:if test="*[2]=m:bvar and not(m:bvar[*[2]=m:degree])">
-      <m:mfrac><xsl:call-template name="insert1"/>
-        <m:mo>d</m:mo>
-        <m:mrow>
-          <m:mo>d</m:mo>
-          <xsl:apply-templates select = "m:bvar/*[1]" mode = "semantics"/>
-        </m:mrow>
-      </m:mfrac>
-    </xsl:if>
-    <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:partialdiff[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:for-each select = "m:bvar">
-      <xsl:if test="*[last()]=m:degree">
-        <m:mfrac><xsl:call-template name="insert1"/>
-          <m:msup>
-             <m:mo>d</m:mo>
-             <xsl:apply-templates select = "m:degree" mode = "semantics"/>
-          </m:msup>
-          <m:mrow>
-            <m:mo>d</m:mo>
-            <m:msup>
-              <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-              <xsl:apply-templates select = "m:degree" mode = "semantics"/>
-            </m:msup>
-          </m:mrow>
-        </m:mfrac>
-      </xsl:if>
-      <xsl:if test="not(*[last()]=m:degree)">
-        <m:mfrac><xsl:call-template name="insert1"/>
-          <m:mo>d</m:mo>
-          <m:mrow>
-            <m:mo>d</m:mo>
-            <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-          </m:mrow>
-        </m:mfrac>
-      </xsl:if>
-    </xsl:for-each>
-    <xsl:apply-templates select = "*[last()]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:lowlimit | m:uplimit | m:bvar | m:degree | m:logbase">
-  <xsl:apply-templates mode = "semantics"/>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:divergence[1] | m:grad[1] | m:curl[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[1]=m:divergence">
-      <m:mo><xsl:call-template name="insert1"/>div</m:mo>
-    </xsl:if>
-    <xsl:if test="*[1]=m:grad">
-    <m:mo><xsl:call-template name="insert1"/>grad</m:mo>
-    </xsl:if>
-    <xsl:if test="*[1]=m:curl">
-    <m:mo><xsl:call-template name="insert1"/>curl</m:mo>
-    </xsl:if>
-    <xsl:choose>
-      <xsl:when test="*[2]=m:ci">
-        <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-      </xsl:when>
-      <xsl:otherwise>
-        <m:mfenced separators="">
-          <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-        </m:mfenced>
-      </xsl:otherwise>
-    </xsl:choose>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:laplacian[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:msup><xsl:call-template name="insert1"/>
-      <m:mo> &#x0394; </m:mo>
-      <m:mn>2</m:mn>
-    </m:msup>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- SET THEORY -->
-
-<xsl:template match = "m:set | m:list">
-  <m:mfenced open="{{" close="}}" separators="">
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[1]=m:bvar and *[2]=m:condition">
-      <xsl:apply-templates select="m:bvar" mode = "semantics"/>
-      <m:mo>|</m:mo>
-      <xsl:apply-templates select="m:condition" mode = "semantics"/>
-    </xsl:if>
-    <xsl:if test="*[1]=m:condition and not(child::m:bvar)">
-      <m:mfenced open="" close="" separators=",">
-        <xsl:for-each select = "*[not(self::m:condition) and not(self::m:bvar)]">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-      <m:mo>|</m:mo>
-      <xsl:apply-templates select="m:condition" mode = "semantics"/>
-    </xsl:if>
-    <xsl:if test="not(child::m:bvar) and not(child::m:condition)">
-      <m:mfenced open="" close="" separators=",">
-        <xsl:for-each select = "*">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-    </xsl:if>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:union[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $UNION_PREC or $IN_PREC=$UNION_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="" helm:xref="{@helm:xref}">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="union">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="union">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="union">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:union[1]]" mode="union">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode="semantics">
-    <xsl:with-param name="IN_PREC" select="$UNION_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="Union"/> </m:mo>
-    <xsl:apply-templates select = "." mode="semantics">
-      <xsl:with-param name="IN_PREC" select="$UNION_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:intersect[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $INTERSECT_PREC">
-      <m:mfenced separators="" helm:xref="{@helm:xref}">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="intersect">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="intersect">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="intersect">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:intersect[1]]" mode="intersect">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode="semantics">
-    <xsl:with-param name="IN_PREC" select="$INTERSECT_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="Intersection"/> </m:mo>
-    <xsl:apply-templates select = "." mode="semantics">
-      <xsl:with-param name="IN_PREC" select="$INTERSECT_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:setdiff[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $SETDIFF_PREC or $IN_PREC=$SETDIFF_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="setdiff">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="setdiff">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="setdiff">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:setdiff[1]]" mode="setdiff">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$SETDIFF_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <m:mo><xsl:call-template name="insert1"/>\</m:mo>
-  <xsl:apply-templates select = "*[3]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$SETDIFF_PREC"/>
-    <xsl:with-param name="PARAM" select="$PAR_SAME"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-  </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:card[1]]">
-  <m:mfenced open="|" close="|" separators=",">
-    <xsl:call-template name="insert_xref"/>
-    <xsl:for-each select = "*[position()>1]">
-      <xsl:apply-templates select = "." mode="semantics"/>
-    </xsl:for-each>
-  </m:mfenced>
-</xsl:template>
-
-
-<!-- SEQUENCES AND SERIES -->
-
-<xsl:template match = "m:apply[m:sum[1] | m:product[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:choose>
-      <xsl:when test="*[2]=m:bvar and m:lowlimit and m:uplimit">
-        <m:munderover>
-          <xsl:if test="*[1]=m:sum">
-            <m:mo><xsl:call-template name="insert1"/> <mchar name="Sum"/> </m:mo>
-          </xsl:if>
-          <xsl:if test="*[1]=m:product">
-            <m:mo><xsl:call-template name="insert1"/> <mchar name="Product"/> </m:mo>
-          </xsl:if>
-          <m:mrow>
-            <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-            <m:mo>=</m:mo>
-            <xsl:apply-templates select = "m:lowlimit" mode = "semantics"/>
-          </m:mrow>
-          <xsl:apply-templates select = "m:uplimit" mode = "semantics"/>
-        </m:munderover>
-        <xsl:apply-templates select = "*[5]" mode = "semantics"/>
-      </xsl:when>
-      <xsl:when test="*[2]=m:bvar and *[3]=m:condition">
-        <m:munder>
-          <xsl:if test="*[1]=m:sum">
-            <m:mo><xsl:call-template name="insert1"/> <mchar name="Sum"/> </m:mo>
-          </xsl:if>
-          <xsl:if test="*[1]=m:product">
-            <m:mo><xsl:call-template name="insert1"/> <mchar name="Product"/> </m:mo>
-          </xsl:if>
-          <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-        </m:munder>
-        <xsl:apply-templates select = "*[4]" mode = "semantics"/>
-      </xsl:when>
-    </xsl:choose>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:limit[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:munder>
-      <m:mo><xsl:call-template name="insert1"/>lim</m:mo>
-      <m:mrow>
-        <xsl:if test="*[2]=m:bvar and *[3]=m:lowlimit">
-            <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-            <m:mo> <mchar name="RightArrow"/> </m:mo>
-            <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-        </xsl:if>
-        <xsl:if test="*[2]=m:bvar and *[3]=m:condition">
-          <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-        </xsl:if>
-      </m:mrow>
-    </m:munder>
-    <xsl:apply-templates select = "*[4]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- TRIGONOMETRY -->
-
-<xsl:template match = "m:apply[*[1][self::m:sin | self::m:cos | self::m:tan | self::m:sec | self::m:csc | self::m:cot | self::m:sinh | self::m:cosh | self::m:tanh | self::m:sech | self::m:csch | self::m:coth | self::m:arcsin | self::m:arccos | self::m:arctan]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="not(parent::m:apply[m:power[1]])">
-      <xsl:apply-templates select = "*[1]" mode = "trigonometry"/>
-    </xsl:if>
-    <xsl:if test="parent::m:apply[m:power[1]]">
-      <m:msup>
-        <xsl:apply-templates select = "*[1]" mode = "trigonometry"/>
-        <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-      </m:msup>
-    </xsl:if>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:*" mode = "trigonometry">
-    <xsl:choose>
-      <xsl:when test="self::m:sin">
-        <m:mo>sin</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:cos">
-        <m:mo>cos</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:tan">
-        <m:mo>tan</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:sec">
-        <m:mo>sec</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:csc">
-        <m:mo>csc</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:cot">
-        <m:mo>cot</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:sinh">
-        <m:mo>sinh</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:cosh">
-        <m:mo>cosh</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:tanh">
-        <m:mo>tanh</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:sech">
-        <m:mo>sech</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:csch">
-        <m:mo>csch</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:coth">
-        <m:mo>coth</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:arcsin">
-        <m:mo>arcsin</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:arccos">
-        <m:mo>arccos</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:arctan">
-        <m:mo>arctan</m:mo>
-      </xsl:when>
-    </xsl:choose>
-</xsl:template>
-
-
-<!-- STATISTICS -->
-
-<xsl:template match = "m:apply[m:mean[1]]">
-  <m:mfenced open="&lt;" close="&gt;" separators=",">
-    <xsl:call-template name="insert_xref"/>
-    <xsl:for-each select = "*[position()>1]">
-      <xsl:apply-templates select = "." mode="semantics"/>
-    </xsl:for-each>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:sdev[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/> &#x03c3; </m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:variance[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/> &#x03c3; </m:mo>
-    <m:msup>
-      <m:mfenced separators=",">
-        <xsl:for-each select = "*[position()>1]">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-      <m:mn>2</m:mn>
-    </m:msup>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:median[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>median</m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:mode[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>mode</m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:moment[1]]">
-  <xsl:call-template name="insert_xref"/>
-  <m:mfenced open="&lt;" close="&gt;" separators="">
-    <xsl:if test="*[2]=m:degree">
-      <m:msup>
-        <xsl:apply-templates select="*[3]" mode = "semantics"/>
-        <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      </m:msup>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:degree)">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </xsl:if>
-  </m:mfenced>
-</xsl:template>
-
-
-<!-- LINEAR ALGEBRA -->
-
-<xsl:template match="m:vector">
-  <m:mfenced separators="">
-    <m:mtable>
-      <xsl:for-each select="*">
-        <m:mtd>
-          <xsl:apply-templates select="." mode = "semantics"/>
-        </m:mtd>
-      </xsl:for-each>
-    </m:mtable>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:matrix">
-  <m:mfenced separators="">
-    <m:mtable>
-      <xsl:apply-templates mode = "semantics"/>
-    </m:mtable>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:matrixrow">
-  <m:mtr>
-    <xsl:for-each select="*">
-      <m:mtd>
-        <xsl:apply-templates select="." mode = "semantics"/>
-      </m:mtd>
-    </xsl:for-each>
-  </m:mtr>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:determinant[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>det</m:mo>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:transpose[1]]">
-  <m:msup>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-    <m:mo>T</m:mo>
-  </m:msup>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:selector[1]]">
-  <xsl:if test="*[2]=m:matrix and *[3]=m:cn">
-      <xsl:variable name="m" select = "*[3]"/>
-      <xsl:choose>
-        <xsl:when test="*[4]=m:cn">
-          <xsl:variable name="n" select = "*[4]"/>
-          <xsl:copy-of select = "m:matrix/*[position()=$m]/*[position()=$n]"/>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:copy-of select = "m:matrix/*[position()=$m]"/>
-        </xsl:otherwise>
-      </xsl:choose>
-  </xsl:if>
-  <xsl:if test="(*[2]=m:vector or *[2]=m:list) and *[3]=m:cn">
-    <xsl:variable name="m" select = "*[3]"/>
-    <xsl:copy-of select = "*[2]/*[position()=$m]"/>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:vectorproduct[1] | m:scalarproduct[1] | m:outerproduct[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:apply-templates select="*[2]" mode = "semantics"/>
-    <xsl:choose>
-      <xsl:when test="m:vectorproduct[1]">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="Cross"/> </m:mo>
-      </xsl:when>
-      <xsl:when test="m:scalarproduct[1] | m:outerproduct[1]">
-        <m:mo><xsl:call-template name="insert1"/>.</m:mo>
-      </xsl:when>
-    </xsl:choose>
-    <xsl:apply-templates select="*[3]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-</xsl:stylesheet>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/helm/style/mmlextension.xsl b/helm/style/mmlextension.xsl
deleted file mode 100644 (file)
index 566ccdf..0000000
+++ /dev/null
@@ -1,1382 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- Extension to the XSLT version 0.07 of MathML content to presentation: -->
-<!-- First draft: February 19 2000, Andrea Asperti, Irene Schena           -->
-<!-- Revised: March 3 2000, Irene Schena                                   -->
-<!-- Revised: March 15 2000, Claudio Sacerdoti Coen, Irene Schena          -->
-<!-- Revised: March 21 2000, Irene Schena                                  -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:import href="mml2mmlv1_0.xsl"/>
-
-<!--***********************************************************************-->
-<!-- Parameter affecting line-breaking                                     -->
-<!--***********************************************************************-->
-
-<xsl:variable name="framewidth" select="30"/>
-
-<!--***********************************************************************-->
-<!-- Gli oggetti sono stampati come mtext all'interno di una marca toplevel-->
-<!-- math ma al di fuori di semantics. Ora vi sono tanti semantics quanti  -->
-<!-- sono i termini: la presentation per un termine e' generata come primo -->
-<!-- figlio di un semantics e l'originario content viene inserito nel      -->
-<!-- nel secondo figlio di semantics, annotation-xml                       -->
-<!--***********************************************************************-->
-
-<!--**********************-->
-<!--        OBJECTS       -->
-<!--**********************-->
-
-<xsl:template match="/">
- <xsl:processing-instruction name="cocoon-format">type="text/xhtml"</xsl:processing-instruction>
- <xsl:apply-templates select="*"/>
-</xsl:template>
-
-<!-- DEFINITION -->
-
-<xsl:template match="Definition">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>DEFINITION <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>) OF TYPE</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="type/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>AS</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="body/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!-- AXIOM -->
-
-<xsl:template match="Axiom">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>AXIOM <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>) OF TYPE</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="type/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!-- UNFINISHED PROOF -->
-
-<xsl:template match="CurrentProof">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>UNFINISHED PROOF <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>)</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>THESIS:</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="type/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>CONJECTURES:</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <xsl:for-each select="Conjecture">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <m:mtext><xsl:value-of select="./@no"/>:</m:mtext>
-         <xsl:apply-templates select="./*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      </xsl:for-each>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>CORRESPONDING PROOF:</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="body/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!-- MUTUAL INDUCTIVE DEFINITION -->
-
-<xsl:template match="InductiveDefinition">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-     <xsl:for-each select="InductiveType">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <xsl:choose>
-         <xsl:when test="position() = 1">
-          <xsl:choose>
-          <xsl:when test="string(./@inductive) = &quot;true&quot;">
-           <m:mtext>INDUCTIVE DEFINITION</m:mtext>
-          </xsl:when>
-          <xsl:otherwise>
-           <m:mtext>COINDUCTIVE DEFINITION</m:mtext>
-          </xsl:otherwise>
-          </xsl:choose>  
-         </xsl:when>
-         <xsl:otherwise>
-          <m:mtext>AND</m:mtext>
-         </xsl:otherwise>
-         </xsl:choose>
-         <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-         <m:mtext><xsl:value-of select="./@name"/>(<xsl:if test="string(../Params) != &quot;&quot;"><xsl:value-of select="../Params"/></xsl:if>)</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow> 
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <m:mtext>[</m:mtext>
-         <xsl:choose>
-         <xsl:when test="string(../Param) != &quot;&quot;">         
-          <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-           <xsl:for-each select="../Param">
-            <m:mtr>
-             <m:mtd>
-              <m:mrow>   
-               <m:mi><xsl:value-of select="./@name"/></m:mi>
-               <m:mo>:</m:mo>
-               <xsl:apply-templates select="*"/>
-              </m:mrow>
-             </m:mtd>
-            </m:mtr>
-           </xsl:for-each>
-            <m:mtr>
-             <m:mtd>
-              <m:mrow>
-               <m:mtext>]</m:mtext>
-              </m:mrow>
-             </m:mtd>
-            </m:mtr>
-          </m:mtable>
-         </xsl:when>
-         <xsl:otherwise>
-          <m:mtext>]</m:mtext>
-         </xsl:otherwise>
-         </xsl:choose>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>OF ARITY</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="./arity/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>BUILT FROM</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <xsl:for-each select="./Constructor">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <xsl:choose>
-         <xsl:when test="position() = 1">
-          <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         </xsl:when>
-         <xsl:otherwise>
-          <m:mtext>|</m:mtext>
-          <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-         </xsl:otherwise>
-         </xsl:choose>
-         <m:mtext><xsl:value-of select="./@name"/> OF</m:mtext>
-         <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-         <xsl:apply-templates select="./*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      </xsl:for-each>
-     </xsl:for-each>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!-- VARIABLE -->
-
-<xsl:template match="Variable">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>VARIABLE <xsl:value-of select="@name"/> OF TYPE</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="type/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!--**********************-->
-<!--        TERMS         -->
-<!--**********************-->
-
-<xsl:template match="m:bvar">
- <xsl:choose>
-  <xsl:when test="m:type">
-   <xsl:variable name="charlength">
-    <xsl:apply-templates select="m:ci" mode="charcount"/>
-   </xsl:variable>
-   <xsl:choose>
-    <xsl:when test="$charlength >= $framewidth">
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-      <m:mtr>
-       <m:mtd>
-        <xsl:apply-templates select="m:ci"/>
-        <m:mo>:</m:mo>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-         <xsl:apply-templates select="m:type"/>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:apply-templates select="m:ci"/>
-     <m:mo>:</m:mo>
-     <xsl:apply-templates select="m:type"/>
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:apply-templates select="m:ci"/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-<!-- CSYMBOL -->
-
-<xsl:template match="m:apply[m:csymbol]">
-    <xsl:variable name="name"><xsl:value-of select="m:csymbol"/></xsl:variable>
-    <xsl:variable name="charlength"><xsl:apply-templates select="m:csymbol" mode="charcount"/></xsl:variable>
-    <m:mrow>
-     <xsl:if test="@helm:xref">
-      <xsl:attribute name="helm:xref"><xsl:value-of select="@helm:xref"/></xsl:attribute>
-     </xsl:if>
-     <xsl:choose>
-      <xsl:when test="$name='prod'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-            <m:mo color="Blue">&#x03a0;</m:mo>
-            <xsl:apply-templates select="m:bvar"/>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>.</m:mo>
-            <xsl:apply-templates select="*[position()=3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo color="Blue">&#x03a0;</m:mo>
-        <xsl:apply-templates select="m:bvar/m:ci"/>
-        <m:mo>:</m:mo>
-        <xsl:apply-templates select="m:bvar/m:type"/>
-        <m:mo>.</m:mo>
-        <xsl:apply-templates select="*[position()=3]"/>
-       </xsl:otherwise>
-       </xsl:choose> 
-      </xsl:when>
-      <xsl:when test="$name='arrow'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">(</m:mo>
-            <xsl:apply-templates select="*[position()=2]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo color="Blue">&#x2192;</m:mo>
-            <xsl:apply-templates select="*[position()=3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">)</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo stretchy="false">(</m:mo>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <m:mo color="Blue">&#x2192;</m:mo>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <m:mo stretchy="false">)</m:mo>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='app'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">(</m:mo>
-            <xsl:apply-templates select="*[position()=2]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <xsl:for-each select="*[position()>2]">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mphantom><m:mtext>(</m:mtext></m:mphantom>
-            <xsl:apply-templates select="."/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:for-each>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">)</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo stretchy="false">(</m:mo>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <xsl:for-each select="*[position()>2]">
-         <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-         <xsl:apply-templates select="."/>
-        </xsl:for-each>
-        <m:mo stretchy="false">)</m:mo>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='cast'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">(</m:mo>
-            <xsl:apply-templates select="*[position()=2]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo color="#b03060">:></m:mo>
-            <xsl:apply-templates select="*[position()=3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">)</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo stretchy="false">(</m:mo>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <m:mo color="#b03060">:></m:mo>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <m:mo stretchy="false">)</m:mo>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='Prop'">
-       <m:mo>Prop</m:mo>
-      </xsl:when>
-      <xsl:when test="$name='Set'">
-       <m:mo>Set</m:mo>
-      </xsl:when>
-      <xsl:when test="$name='Type'">
-       <m:mo>Type</m:mo>
-      </xsl:when>
-      <xsl:when test="$name='mutcase'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <xsl:variable name="charlength"><xsl:apply-templates select="*[position()=2]" mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable>
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>&lt;</m:mo>
-            <xsl:apply-templates select="*[position()=2]"/>
-            <xsl:if test="$framewidth > $charlength">
-             <m:mo>&gt;</m:mo>
-             <m:mo>CASES</m:mo>
-             <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-             <xsl:apply-templates select="*[position()=3]"/>
-            </xsl:if>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <xsl:if test="$charlength >= $framewidth">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>&gt;</m:mo>
-            <m:mo>CASES</m:mo>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="*[position()=3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:if>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>OF</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
-         <xsl:variable name="charlength"><xsl:apply-templates select="." mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:choose>
-            <xsl:when test="position() = 1">
-              <m:mphantom><m:mtext>|</m:mtext></m:mphantom>
-            </xsl:when>
-            <xsl:otherwise>
-             <m:mo stretchy="false">|</m:mo>
-            </xsl:otherwise>
-            </xsl:choose>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="."/>
-            <xsl:if test="$framewidth > $charlength">
-             <m:mo color="Green">&#x21d2;</m:mo>
-             <xsl:apply-templates select="following-sibling::*[position()= 1]"/>
-            </xsl:if>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <xsl:if test="$charlength >= $framewidth">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mphantom><m:mtext>|_</m:mtext></m:mphantom>  
-            <m:mo color="Green">&#x21d2;</m:mo>
-            <xsl:apply-templates select="following-sibling::*[position()= 1]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:if>
-        </xsl:for-each>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>END</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo>&lt;</m:mo><xsl:apply-templates select="*[position()=2]"/><m:mo>&gt;</m:mo>
-        <m:mo>CASES</m:mo>
-        <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-        <m:mo>OF</m:mo>
-        <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
-         <xsl:choose>
-         <xsl:when test="position() != 1">
-          <m:mo stretchy="false">|</m:mo>
-         </xsl:when> 
-         </xsl:choose>
-         <xsl:apply-templates select="."/>
-         <m:mo color="Green">&#x21d2;</m:mo>
-         <xsl:apply-templates select="following-sibling::*[position()= 1]"/>
-        </xsl:for-each>
-        <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-        <m:mo>END</m:mo>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='fix'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>FIX</m:mo>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <m:mi><xsl:value-of select="m:ci"/></m:mi>
-            <m:mo stretchy="false">{</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-            <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-            <xsl:for-each select="m:bvar"> 
-             <xsl:variable name="charlength"><xsl:apply-templates select="m:type" mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable>
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mi><xsl:value-of select="m:ci"/></m:mi>
-                <m:mo>:</m:mo>
-                <xsl:if test="$framewidth > $charlength">
-                 <xsl:apply-templates select="m:type"/>
-                </xsl:if>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr> 
-             <xsl:if test="$charlength >= $framewidth">
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mphantom><m:mtext>:=</m:mtext></m:mphantom>
-                <xsl:apply-templates select="m:type"/>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr>
-             </xsl:if>
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mo>:=</m:mo>
-                <xsl:apply-templates select="following-sibling::*[position()=1]"/>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr> 
-            </xsl:for-each>
-            </m:mtable>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">}</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo>FIX</m:mo>
-        <m:mi><xsl:value-of select="m:ci"/></m:mi>
-        <m:mo stretchy="false">{</m:mo>
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-        <xsl:for-each select="m:bvar"> 
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mi><xsl:value-of select="m:ci"/></m:mi>
-            <m:mo>:</m:mo>
-            <xsl:apply-templates select="m:type"/>
-            <m:mo>:=</m:mo>
-            <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-            <xsl:if test="position()=last()">
-             <m:mo stretchy="false">}</m:mo>
-            </xsl:if>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:for-each>
-        </m:mtable>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='cofix'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>COFIX</m:mo>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <m:mi><xsl:value-of select="m:ci"/></m:mi>
-            <m:mo stretchy="false">{</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-            <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-            <xsl:for-each select="m:bvar">
-             <xsl:variable name="charlength"><xsl:apply-templates select="m:type" mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable> 
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mi><xsl:value-of select="m:ci"/></m:mi>
-                <m:mo>:</m:mo>
-                <xsl:if test="$framewidth > $charlength">
-                 <xsl:apply-templates select="m:type"/>
-                </xsl:if>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr> 
-             <xsl:if test="$charlength >= $framewidth">
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mphantom><m:mtext>:=</m:mtext></m:mphantom>
-                <xsl:apply-templates select="m:type"/>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr>
-             </xsl:if>
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mo>:=</m:mo>
-                <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr>
-            </xsl:for-each>
-            </m:mtable>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">}</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo>COFIX</m:mo>
-        <m:mi><xsl:value-of select="m:ci"/></m:mi>
-        <m:mo stretchy="false">{</m:mo>
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">  
-        <xsl:for-each select="m:bvar"> 
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mi><xsl:value-of select="m:ci"/></m:mi>
-            <m:mo>:</m:mo>
-            <xsl:apply-templates select="m:type"/>
-            <m:mo>:=</m:mo>
-            <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-            <xsl:if test="position()=last()">
-             <m:mo stretchy="false">}</m:mo>
-            </xsl:if>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:for-each>
-        </m:mtable>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <!-- ***************************************** -->
-      <!-- *********** PROOF ELEMENTS ************** -->
-      <!-- ***************************************** -->
-      <xsl:when test="$name='proof'">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:apply-templates select="*[position()=2]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mtext color="#b03060">we proved </m:mtext>
-            <xsl:apply-templates select="*[position()=3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-      </xsl:when>
-      <xsl:when test="$name='letin'">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <!-- <xsl:for-each select="APPLY[m:csymbol and (string(m:csymbol)='let')]"> -->
-        <xsl:for-each select="*[(last() > position()) and (position()>1)]">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:apply-templates select="."/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:for-each>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:apply-templates select="*[position()=last()]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-      </xsl:when>
-      <xsl:when test="$name='let'">
-       <m:mtext>(</m:mtext>
-       <xsl:apply-templates select="m:ci"/>
-       <m:mtext>) </m:mtext>
-       <xsl:apply-templates select="*[3]"/>
-      </xsl:when>
-      <xsl:when test="$name='thread'">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:choose>
-             <xsl:when test="name(*[last()])='m:apply'">
-              <xsl:apply-templates select="*[last()]"/>
-             </xsl:when>
-             <xsl:otherwise>
-              <m:mtext>Consider </m:mtext>
-              <xsl:apply-templates select="*[last()]"/>
-             </xsl:otherwise>
-            </xsl:choose>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        <xsl:apply-templates mode="thread" select="*[(last()-2)]"/> 
-        </m:mtable>
-      </xsl:when> 
-      <xsl:when test="$name='rewrite_and_apply'">
-        <m:mtable>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mtext>Rewrite</m:mtext>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="*[2]/*[2]"/>
-           <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-           <m:mtext>with</m:mtext>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="*[2]/*[3]"/>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <m:mtext>by</m:mtext>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="*[2]/*[4]"/>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <m:mtext>in</m:mtext>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="*[3]"/>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <m:mtext>and apply</m:mtext>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="*[position()>3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-       </m:mtable>
-      </xsl:when> 
-      <xsl:when test="$name='and_ind'">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:choose>
-             <xsl:when test="name(*[2])='m:apply'">
-              <xsl:apply-templates select="*[2]"/>
-             </xsl:when>
-             <xsl:otherwise>
-              <m:mtext>Consider </m:mtext>
-              <xsl:apply-templates select="*[2]"/>
-             </xsl:otherwise>
-            </xsl:choose>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mtext>In particular, we have</m:mtext>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mtext>(</m:mtext>
-            <xsl:apply-templates select="*[3]"/>
-            <m:mtext>)</m:mtext>
-            <xsl:apply-templates select="*[4]"/>
-            </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mtext>(</m:mtext>
-            <xsl:apply-templates select="*[5]"/>
-            <m:mtext>)</m:mtext>
-            <xsl:apply-templates select="*[6]"/>
-            </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:apply-templates select="*[7]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-      </xsl:when>
-      <xsl:when test="$name='or_ind'">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:choose>
-             <xsl:when test="name(*[2])='m:apply'">
-              <xsl:apply-templates select="*[2]"/>
-             </xsl:when>
-             <xsl:otherwise>
-              <m:mtext>Consider</m:mtext>
-              <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-              <xsl:apply-templates select="*[2]"/>
-             </xsl:otherwise>
-            </xsl:choose>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mtext>We prove</m:mtext>
-           <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-           <xsl:apply-templates select="*[3]"/>
-           <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-           <m:mtext>by cases:</m:mtext>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mtext>*</m:mtext>
-            <xsl:apply-templates select="*[4]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mtext>*</m:mtext>
-            <xsl:apply-templates select="*[5]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-      </xsl:when>
-      <xsl:otherwise>
-       <m:ci>ERROR</m:ci>
-      </xsl:otherwise>
-     </xsl:choose>
-    </m:mrow>
-</xsl:template>
-
-<xsl:template match="*" mode="thread">
- <xsl:variable name="name"><xsl:value-of select="following-sibling::*[position()=1]/m:csymbol"/></xsl:variable>
- <xsl:choose>
-  <xsl:when test="$name='rw_step'">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mtext>Rewrite</m:mtext>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="following-sibling::*[position()=1]/*[2]"/>
-           <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-           <m:mtext>with</m:mtext>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="following-sibling::*[position()=1]/*[3]"/>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <m:mtext>by</m:mtext>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="following-sibling::*[position()=1]/*[4]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:apply-templates select="."/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-   </xsl:when>
-   <xsl:otherwise>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:apply-templates select="following-sibling::*[position()=1]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:apply-templates select="."/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-    </xsl:otherwise>
-   </xsl:choose>
-         <xsl:apply-templates mode="thread" select="preceding-sibling::*[position()=2]"/>
-</xsl:template>
-
-
-<!-- LAMBDA -->
-
-<xsl:template match="m:lambda">
-    <xsl:variable name="charlength"><xsl:apply-templates select="*[position()=1]" mode="charcount"/></xsl:variable>
-    <m:mrow helm:xref="{@helm:xref}">
-     <xsl:choose>
-     <xsl:when test="$charlength >= $framewidth">
-      <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-        <m:mtr>
-          <m:mtd>
-            <m:mo color="Red">&#x03bb;</m:mo>
-            <xsl:apply-templates select="m:bvar"/>
-          </m:mtd>
-         </m:mtr>
-       <m:mtr>
-        <m:mtd>
-         <m:mrow>
-          <m:mo>.</m:mo>
-          <xsl:apply-templates select="*[position()=2]"/>
-         </m:mrow>
-        </m:mtd>
-       </m:mtr>
-      </m:mtable>
-     </xsl:when>
-     <xsl:otherwise>
-      <m:mo color="Red">&#x03bb;</m:mo>
-      <xsl:apply-templates select="m:bvar/m:ci"/>
-      <m:mo>:</m:mo>
-      <xsl:apply-templates select="m:bvar/m:type"/>
-      <m:mo>.</m:mo>
-      <xsl:apply-templates select="*[position()=2]"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </m:mrow>
-</xsl:template>
-
-<!-- *********************************** -->
-<!-- BASE SET OF MATHML CONTENT ELEMENTS -->
-<!-- *********************************** -->
-
-<!-- Logic -->
-
-<xsl:template match = "m:apply[m:eq[1]]">
- <xsl:variable name="charlength">
-  <xsl:apply-templates select="*[1]" mode="charcount"/>
- </xsl:variable>
- <xsl:choose>
-  <xsl:when test="$charlength >= $framewidth">
-   <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-    <xsl:if test="@helm:xref">
-     <xsl:attribute name="helm:xref">
-      <xsl:value-of select="@helm:xref"/>
-     </xsl:attribute>
-    </xsl:if>    
-    <m:mtr>
-     <m:mtd>
-      <m:mo stretchy="false">(</m:mo>
-      <xsl:apply-templates select="*[position()=2]"/>
-     </m:mtd>
-    </m:mtr>
-    <xsl:for-each select = "*[position()>2]">
-     <m:mtr>
-      <m:mtd>
-       <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-       <m:mo helm:xref="m:in/@helm:xref"> 
-        =
-       </m:mo>
-       <xsl:apply-templates select="."/>
-      </m:mtd>
-     </m:mtr>
-    </xsl:for-each>
-    <m:mtr>
-     <m:mtd>
-      <m:mo stretchy="false">)</m:mo>
-     </m:mtd>
-    </m:mtr>
-   </m:mtable>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:apply-imports/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-<xsl:template match = "m:apply[m:and[1]|m:or[1]
-          |m:geq[1]|m:leq[1]|m:gt[1]|m:lt[1]
-          |m:in[1]|m:intesect[1]|m:union[1]|m:subset[1]
-          |m:prsubset|m:setdiff[1]]">
- <xsl:variable name="symbol">
-  <xsl:choose>
-   <xsl:when test="m:and[1]">
-    <xsl:value-of select="'wedge'"/>
-   </xsl:when>
-   <xsl:when test="m:or[1]">
-    <xsl:value-of select="'vee'"/>
-   </xsl:when>
-   <xsl:when test="m:geq[1]">
-    <xsl:value-of select="'geq'"/>
-   </xsl:when>
-   <xsl:when test="m:leq[1]">
-    <xsl:value-of select="'leq'"/>
-   </xsl:when>
-   <xsl:when test="m:gt[1]">
-    <xsl:value-of select="'gt'"/>
-   </xsl:when>
-   <xsl:when test="m:lt[1]">
-    <xsl:value-of select="'lt'"/>
-   </xsl:when>
-   <xsl:when test="m:eq[1]">
-    <xsl:value-of select="'Equal'"/>
-   </xsl:when>
-   <xsl:when test="m:in[1]">
-    <xsl:value-of select="'Element'"/>
-   </xsl:when>
-   <xsl:when test="m:subset[1]">
-    <xsl:value-of select="'SubsetEqual'"/>
-   </xsl:when>
-   <xsl:when test="m:prsubset[1]">
-    <xsl:value-of select="'subset'"/>
-   </xsl:when>
-   <xsl:when test="m:intersect[1]">
-    <xsl:value-of select="'Intersection'"/>
-   </xsl:when>
-   <xsl:when test="m:union[1]">
-    <xsl:value-of select="'Union'"/>
-   </xsl:when>
-   <xsl:when test="m:setdiff[1]">
-    <xsl:value-of select="'Backslash'"/>
-   </xsl:when>
-  </xsl:choose>
- </xsl:variable>
- <xsl:variable name="charlength">
-  <xsl:apply-templates select="*[1]" mode="charcount"/>
- </xsl:variable>
- <xsl:choose>
-  <xsl:when test="$charlength >= $framewidth">
-   <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-    <xsl:if test="@helm:xref">
-     <xsl:attribute name="helm:xref">
-      <xsl:value-of select="@helm:xref"/>
-     </xsl:attribute>
-    </xsl:if>    
-    <m:mtr>
-     <m:mtd>
-      <m:mo stretchy="false">(</m:mo>
-      <xsl:apply-templates select="*[position()=2]"/>
-     </m:mtd>
-    </m:mtr>
-    <xsl:for-each select = "*[position()>2]">
-     <m:mtr>
-      <m:mtd>
-       <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-       <m:mo helm:xref="{*[1]/@helm:xref}"> 
-        <m:mchar name="{$symbol}"/>
-       </m:mo>
-       <xsl:apply-templates select="."/>
-      </m:mtd>
-     </m:mtr>
-    </xsl:for-each>
-    <m:mtr>
-     <m:mtd>
-      <m:mo stretchy="false">)</m:mo>
-     </m:mtd>
-    </m:mtr>
-   </m:mtable>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:apply-imports/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:set">
- <xsl:choose>
-  <xsl:when test="count(child::*) = 0">
-   <m:mo> 
-    <m:mchar name="EmptySet"/>
-   </m:mo>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:variable name="charlength">
-    <xsl:apply-templates select="*[1]" mode="charcount"/>
-   </xsl:variable>
-   <xsl:choose>
-    <xsl:when test="$charlength >= $framewidth">
-     <xsl:choose>
-      <xsl:when test="name(*[1]) = 'm:bvar'">
-       <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-        <m:mtr>
-         <m:mtd>
-          <m:mo stretchy="false">{</m:mo>
-          <xsl:apply-templates select="*[position()=1]"/>
-         </m:mtd>
-        </m:mtr>
-        <m:mtr>
-         <m:mtd>
-          <m:mphantom><m:mtext>{</m:mtext></m:mphantom>
-          <m:mo stretchy="false">|</m:mo>
-          <xsl:apply-templates select="m:condition/*[1]"/>
-         </m:mtd>
-        </m:mtr>
-        <m:mtr>
-         <m:mtd>
-          <m:mo stretchy="false">}</m:mo>
-         </m:mtd>
-        </m:mtr>
-       </m:mtable>
-      </xsl:when>
-      <xsl:otherwise>
-       <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-        <m:mtr>
-         <m:mtd>
-          <m:mo stretchy="false">{</m:mo>
-          <xsl:apply-templates select="*[position()=1]"/>
-          <xsl:if test="position() != last()">
-           <mo>,</mo>
-          </xsl:if>
-         </m:mtd>
-        </m:mtr>
-        <xsl:for-each select = "*[position()>2]">
-         <m:mtr>
-          <m:mtd>
-           <m:mphantom><m:mtext>{</m:mtext></m:mphantom>
-           <xsl:apply-templates select="."/>
-           <xsl:if test="position() != last()">
-            <mo>,</mo>
-           </xsl:if>
-          </m:mtd>
-         </m:mtr>
-        </xsl:for-each>
-        <m:mtr>
-         <m:mtd>
-          <m:mo stretchy="false">}</m:mo>
-         </m:mtd>
-        </m:mtr>
-       </m:mtable>
-      </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:apply-imports/>
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>      
-
-<xsl:template match = "m:apply[m:card[1]]">
- <m:mo stretchy="false">|</m:mo>
-  <xsl:apply-templates select="*[2]"/>
- <m:mo stretchy="false">|</m:mo>
-</xsl:template>
-
-<!-- *********************************** -->
-<!--          PROOF ELEMENTS             -->
-<!-- *********************************** -->
-
-
-
-<!--**********************-->
-<!--       COUNTING       -->
-<!--**********************-->
-
-<xsl:template match="m:cn|m:and|m:or|m:not|m:exists|m:eq|m:lt|m:leq|m:gt|m:geq
- |m:in|m:notin|m:intersect|m:union|m:subset|m:prsubset|m:card|m:setdiff
- |m:plus|m:minus|m:times" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth > ($incurrent_length + 3 + string-length())">
-     <xsl:variable name="siblength">
-      <xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount">
-       <xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/>
-      </xsl:apply-templates>
-     </xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + 3 + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + 3 + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="m:ci|m:csymbol" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-<xsl:param name="nosibling" select="0"/>
-    <xsl:choose>
-    <xsl:when test="$framewidth > ($incurrent_length + string-length()) and ($nosibling = 0)">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-<xsl:template match="*" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/>
-<xsl:param name="nosibling" select="0"/>
- <xsl:choose>
-  <xsl:when test="count(child::*) = 0">
-   <xsl:value-of select="$incurrent_length"/>
-  </xsl:when>
-  <xsl:otherwise>
-    <xsl:variable name="childlength"><xsl:apply-templates select="*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length"/><xsl:with-param name="nosibling" select="0"/></xsl:apply-templates></xsl:variable>
-    <xsl:choose>
-    <xsl:when test="$framewidth > number($childlength) and ($nosibling = 0)">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$childlength"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="number($childlength)"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="number($childlength)"/>
-    </xsl:otherwise>
-    </xsl:choose>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet> 
-
diff --git a/helm/style/objcontent.xsl b/helm/style/objcontent.xsl
deleted file mode 100644 (file)
index 6ad0a49..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- XSLT version 0.1 of CIC objects to objects and MathML content:   -->
-<!-- First draft: March 21 2000, Irene Schena                         -->
-<!--******************************************************************-->
-
-<!--******************************************************************-->
-<!-- MANCA: gestione annotation e linking                             -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:import href="content.xsl"/>
-
-<!-- ROOT -->
-
-<xsl:template match="cicxml">
-    <xsl:variable name="url"><xsl:value-of select="@baseurl"/></xsl:variable>
-    <xsl:variable name="stylesheet"><xsl:value-of select="@stylesheet"/></xsl:variable>
-    <xsl:processing-instruction name="cocoon-format">type="text/xml"</xsl:processing-instruction>
-    <xsl:processing-instruction name="xml-stylesheet">href="<xsl:value-of select='concat($url,$stylesheet)'/>" type="text/xsl"</xsl:processing-instruction>
-    <xsl:processing-instruction name="cocoon-process">type="xslt"</xsl:processing-instruction>
-    <xsl:apply-templates select="*[1]"/>
-</xsl:template>
-
-<!-- CIC OBJECTS -->
-
-<xsl:template match="Definition" mode="noannot">
-    <Definition name="{@name}" helm:xref="{@id}">  
-     <xsl:if test="string(@params) != &quot;&quot;">
-      <Params>
-       <xsl:value-of select="@params"/>
-      </Params>
-     </xsl:if>
-<!--     <xsl:choose>
-      <xsl:when test="$showproof=0">
-       <body>
-        <m:mi>Here</m:mi>
-       </body>
-      </xsl:when>
-      <xsl:otherwise>
-       <body>
-        <xsl:apply-templates select="body"/>
-       </body>
-      </xsl:otherwise>
-     </xsl:choose> -->
-     <body>
-      <xsl:apply-templates select="body"/>
-     </body>
-     <type>
-       <xsl:apply-templates select="type"/>
-     </type>
-    </Definition> 
-</xsl:template>
-
-<xsl:template match="Axiom" mode="noannot"> 
-    <Axiom name="{@name}" helm:xref="{@id}">
-     <xsl:if test="string(@params) != &quot;&quot;">
-      <Params>
-       <xsl:value-of select="@params"/>
-      </Params>
-     </xsl:if>
-     <type>
-       <xsl:apply-templates select="type"/>
-     </type>
-    </Axiom> 
-</xsl:template>
-
-<xsl:template match="CurrentProof" mode="noannot">
-    <CurrentProof name="{@name}" helm:xref="{@id}">
-     <xsl:for-each select="Conjecture">
-      <Conjecture no="./{@no}">
-        <xsl:apply-templates select="."/>
-      </Conjecture>
-     </xsl:for-each>
-     <body>
-       <xsl:apply-templates select="body"/>
-     </body>
-     <type>
-       <xsl:apply-templates select="type"/>
-     </type>
-    </CurrentProof> 
-</xsl:template>
-
-<xsl:template match="InductiveDefinition" mode="noannot">
-    <InductiveDefinition helm:xref="{@id}">
-     <xsl:if test="string(@params) != &quot;&quot;">
-      <Params>
-       <xsl:value-of select="@params"/>
-      </Params>
-     </xsl:if> 
-     <xsl:if test="string(@noParams) != 0"> 
-      <xsl:apply-templates select="InductiveType/arity/*[1]" mode="abstparams">
-       <xsl:with-param name="noparams" select="@noParams"/>
-      </xsl:apply-templates>
-     </xsl:if>
-     <xsl:for-each select="InductiveType">
-      <InductiveType name="{./@name}" inductive="{./@inductive}">
-       <arity>
-         <xsl:apply-templates select="./arity/*[1]" mode="abstparams">
-          <xsl:with-param name="noparams" select="../@noParams"/>
-          <xsl:with-param name="target" select="1"/>
-         </xsl:apply-templates>
-       </arity>
-       <xsl:for-each select="./Constructor">
-        <Constructor name="{./@name}">
-          <xsl:apply-templates select="./*[1]" mode="abstparams">
-           <xsl:with-param name="noparams" select="../../@noParams"/>
-           <xsl:with-param name="target" select="1"/>
-          </xsl:apply-templates>
-        </Constructor>
-       </xsl:for-each>
-      </InductiveType>
-     </xsl:for-each> 
-    </InductiveDefinition>       
-</xsl:template>
-
-<xsl:template match="Variable" mode="noannot"> 
-    <Variable name="{@name}" helm:xref="{@id}">
-     <type>
-       <xsl:apply-templates select="type"/>
-     </type>
-    </Variable> 
-</xsl:template>
-
-<!--*******************************************-->
-<!--    ABSTRACTING PARAMETERS AND COUNTING    -->
-<!--*******************************************-->
-<!-- Si dimentica i CAST dei termini che astrae. Nel caso dell'astrazione -->
-<!-- dei lambda dei pattern del CASE, qualora i lambda non si trovino     -->
-<!-- nella forma weak-head, astrae solo i lambda che trova e restituisce  -->
-<!-- un corpo depurato da tutti i primi cast che precedono il termine     -->
-<!-- restituito.                                                          -->
-
-<xsl:template match="*" mode="abstparams">
-<xsl:param name="noparams" select="0"/>
-<xsl:param name="target" select="0"/>
-<xsl:param name="binder">PROD</xsl:param>
-    <xsl:choose>
-    <xsl:when test="($noparams != 0) and ((name(.)=string($binder)) or (name(.)=&quot;CAST&quot;))">
-     <xsl:choose>
-     <xsl:when test="name(.) = string($binder)">
-      <xsl:if test="$target = 0">
-       <xsl:choose>
-       <xsl:when test="string($binder) = &quot;LAMBDA&quot;">
-        <m:ci>
-         <xsl:value-of select="target/@binder"/>
-        </m:ci>
-       </xsl:when>
-       <xsl:otherwise> 
-        <Param name="{target/@binder}">
-         <xsl:apply-templates select="source" mode="noannot"/>
-        </Param>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:if>
-      <xsl:apply-templates select="target/*[1]" mode="abstparams">
-       <xsl:with-param name="noparams" select="$noparams - 1"/>
-       <xsl:with-param name="target" select="$target"/>
-       <xsl:with-param name="binder" select="$binder"/>
-      </xsl:apply-templates>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-templates select="term/*[1]" mode="abstparams">
-       <xsl:with-param name="noparams" select="$noparams"/>
-       <xsl:with-param name="target" select="$target"/>
-       <xsl:with-param name="binder" select="$binder"/>
-      </xsl:apply-templates>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise> 
-     <xsl:choose>
-     <xsl:when test="($target = 1) and ($noparams != 0)">
-      <m:apply>
-      <m:csymbol>app</m:csymbol>
-      <xsl:apply-templates select="." mode="noannot"/>
-      <xsl:call-template name="printparam"><xsl:with-param name="noleft" select="$noparams"/></xsl:call-template>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:choose>
-      <xsl:when test="$noparams != 0">
-      <xsl:call-template name="printparam"><xsl:with-param name="noleft" select="$noparams"/></xsl:call-template>
-      </xsl:when>
-      <xsl:otherwise>
-       <xsl:if test="$target = 1">
-        <xsl:apply-templates select="." mode="noannot"/>
-       </xsl:if>
-      </xsl:otherwise>
-      </xsl:choose>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template name="printparam">
-<xsl:param name="noleft" select="0"/>
-<xsl:param name="number" select="1"/>
-    <xsl:if test="$noleft != 0">
-     <m:ci>$<xsl:value-of select="$number"/></m:ci>
-     <xsl:call-template name="printparam"><xsl:with-param name="noleft" select="$noleft - 1"/><xsl:with-param name="number" select="$number + 1"/></xsl:call-template>  
-    </xsl:if>
-</xsl:template>
-
-<xsl:template match="*" mode="counting">
-<xsl:param name="noparams" select="0"/>
-<xsl:param name="count" select="0"/>
- <xsl:choose>
- <xsl:when test="name(.) = &quot;PROD&quot;">
-  <xsl:apply-templates select="target/*[1]" mode="counting">
-   <xsl:with-param name="noparams" select="$noparams"/>
-   <xsl:with-param name="count" select="$count + 1"/>
-  </xsl:apply-templates>
- </xsl:when>
- <xsl:when test="name(.) = &quot;CAST&quot;">
-  <xsl:apply-templates select="term/*[1]" mode="counting">
-   <xsl:with-param name="noparams" select="$noparams"/>
-   <xsl:with-param name="count" select="$count"/> 
-  </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
-  <xsl:value-of select="$count - $noparams"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/params.xsl b/helm/style/params.xsl
deleted file mode 100644 (file)
index 034eeba..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- auxiliary functions                                                   -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-<!--***********************************************************************-->
-<!-- get the name from a URI                                               -->
-<!--***********************************************************************-->
-
-<!-- CSC: PROBLEMA: URI CHE NON CONTENGONO / ED INIZIANO CON cic: -->
-<xsl:template name="name_of_uri">
- <xsl:param name="uri" select="&quot;&quot;"/>
- <xsl:variable name="suffix" select="substring-after($uri, &quot;/&quot;)"/>
- <xsl:choose>
-  <xsl:when test="$suffix = &quot;&quot;">
-   <!-- CSC: PROBLEMA: .con PUO' APPARIRE ALL'INTERNO DELLE URI ===>
-     SCRIVERE UNA FUNZIONE RICORSIVA CHE RISOLVA -->
-   <xsl:value-of select="substring-before($uri,&quot;.con&quot;)"/>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:call-template name="name_of_uri">
-    <xsl:with-param name="uri" select="$suffix"/>
-   </xsl:call-template>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!--***********************************************************************-->
-<!-- erase common prefix from two uris                                     -->
-<!--***********************************************************************-->
-
-<xsl:template name="common_prefix">
- <xsl:param name="first_uri" select="&quot;&quot;"/>
- <xsl:param name="second_uri" select="&quot;&quot;"/>
- <xsl:choose>
-  <xsl:when test="(substring-before($first_uri,&quot;/&quot;) = 
-                substring-before($second_uri,&quot;/&quot;) and 
-                substring-after($second_uri,&quot;/&quot;) != &quot;&quot;)">
-   <xsl:call-template name="common_prefix">
-    <xsl:with-param 
-        name="first_uri" select="substring-after($first_uri,&quot;/&quot;)"/>
-    <xsl:with-param 
-        name="second_uri" select="substring-after($second_uri,&quot;/&quot;)"/>    </xsl:call-template>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:call-template name="slash_counting">
-    <xsl:with-param name="uri" select="$second_uri"/>
-    <xsl:with-param name="counter" select="0"/>
-   </xsl:call-template>
-  </xsl:otherwise>   
- </xsl:choose>
-</xsl:template>
-
-<xsl:template name="slash_counting">
- <xsl:param name="uri" select="&quot;&quot;"/>
- <xsl:param name="counter" select="0"/>
- <xsl:choose>
-  <xsl:when test="(substring-after($uri,&quot;/&quot;) != &quot;&quot;)">
-   <xsl:call-template name="slash_counting">
-    <xsl:with-param 
-        name="uri" select="substring-after($uri,&quot;/&quot;)"/>
-    <xsl:with-param
-        name="counter" select="$counter +1"/> 
-   </xsl:call-template>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="$counter"/>
-  </xsl:otherwise>
- </xsl:choose>   
-</xsl:template>
-
-<xsl:template name="blank_counting">
- <xsl:param name="string" select="&quot;&quot;"/>
- <xsl:param name="counter" select="0"/>
- <xsl:choose>
-  <xsl:when test="(substring-after($string,&quot; &quot;) != &quot;&quot;)">
-   <xsl:call-template name="blank_counting">
-    <xsl:with-param 
-        name="string" select="substring-after($string,&quot; &quot;)"/>
-    <xsl:with-param 
-        name="counter" select="$counter +1"/> 
-   </xsl:call-template>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="$counter + 1"/>
-  </xsl:otherwise> 
- </xsl:choose>  
-</xsl:template>
-
-<xsl:template name="double_point_counting">
- <xsl:param name="string" select="&quot;&quot;"/>
- <xsl:param name="counter" select="0"/>
- <xsl:choose>
-  <xsl:when test="(substring-after($string,&quot;:&quot;) != &quot;&quot;)">
-   <xsl:call-template name="double_point_counting">
-    <xsl:with-param 
-        name="string" select="substring-after($string,&quot;:&quot;)"/>
-    <xsl:with-param 
-        name="counter" select="$counter +1"/> 
-   </xsl:call-template>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="$counter"/>
-  </xsl:otherwise> 
- </xsl:choose>  
-</xsl:template>
-
-<xsl:template name="min">
- <xsl:param name="string" select="&quot;&quot;"/>
- <xsl:param name="counter" select="0"/>
- <xsl:choose>
-  <xsl:when test="contains($string,concat($counter,&quot;:&quot;))
-         or (0 > $counter)">
-  <xsl:value-of select="$counter"/>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:call-template name="min">
-    <xsl:with-param 
-        name="string" select="$string"/>
-    <xsl:with-param 
-        name="counter" select="$counter -1"/> 
-   </xsl:call-template>
-  </xsl:otherwise>
- </xsl:choose>  
-</xsl:template>
-
-<xsl:template name="get_no_params">
-    <xsl:param name="first_uri" select="&quot;&quot;"/>
-    <xsl:param name="second_uri" select="&quot;&quot;"/>
-     <xsl:variable name="offset">
-      <xsl:call-template name="common_prefix">
-       <xsl:with-param name="first_uri" select="$first_uri"/>
-       <xsl:with-param name="second_uri" select="$second_uri"/>
-      </xsl:call-template>
-     </xsl:variable>
-     <xsl:choose>
-      <xsl:when test="$offset > 0">
-       <xsl:variable name="params"> 
-        <xsl:value-of 
-            select="document(concat(string($absPath),$second_uri))/*/@params"/>
-       </xsl:variable>
-       <xsl:variable name="minimum">
-        <xsl:call-template name="min">
-         <xsl:with-param name="string" select="$params"/>
-         <xsl:with-param name="counter" select="$offset - 1"/>
-        </xsl:call-template>
-       </xsl:variable>
-       <xsl:choose>
-        <xsl:when test="0 > $minimum">
-         0
-        </xsl:when>
-        <xsl:otherwise>
-         <xsl:variable name="relevant_params">
-          <!-- the blank after : in the next line is essential -->
-          <xsl:value-of 
-            select="substring-after($params,concat($minimum,&quot;: &quot;))"/>
-         </xsl:variable>
-         <xsl:variable name="tokens">
-          <xsl:call-template name="blank_counting">
-           <xsl:with-param name="string" select="$relevant_params"/>
-           <xsl:with-param name="counter" select="0"/>
-          </xsl:call-template>
-         </xsl:variable>
-         <xsl:variable name="separators">
-          <xsl:call-template name="double_point_counting">
-           <xsl:with-param name="string" select="$relevant_params"/>
-           <xsl:with-param name="counter" select="0"/>
-          </xsl:call-template>
-         </xsl:variable>
-         <xsl:value-of select="$tokens - $separators"/>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:otherwise>
-      0
-      </xsl:otherwise>
-     </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet> 
-
-
-
-
-
-
diff --git a/helm/style/proofs.xsl b/helm/style/proofs.xsl
deleted file mode 100644 (file)
index 8265e07..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- Basic Logic                                                      -->
-<!-- First draft: April 3 2000                                        -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                 -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- ************************* LOGIC *********************************-->
-
-<!-- Proof objects -->
-
-<!-- <xsl:key name="typeid" use="@id" match="TYPE"/> -->
-
-<xsl:template match="LAMBDA|PROD|CAST|REL|SORT|APPLY|VAR|META|CONST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX" mode="noannot">
-  <xsl:choose> 
-   <xsl:when test="@id">
-    <xsl:variable name="id" select="@id"/>
-    <xsl:choose>
-     <!-- <xsl:when test="//ALLTYPES and key('typeid',@id)"> -->
-     <xsl:when test="//ALLTYPES/TYPE[@id=$id]">
-     <xsl:choose>
-      <xsl:when test="name()= 'APPLY' and CONST[
- attribute::uri='cic:/coq/INIT/Logic_Type/eqT_ind.con' or
- attribute::uri='cic:/coq/ZARITH/auxiliary/eqT_ind_r.con'] and count(child::*) = 7">
-       <m:apply helm:xref="{@id}">
-        <m:csymbol>thread</m:csymbol>
-        <xsl:apply-templates mode="pure" select="//ALLTYPES/TYPE[@id=$id]"/>
-        <m:apply>
-         <m:csymbol>rw_step</m:csymbol>
-         <xsl:apply-templates mode="pure" select="*[3]"/>
-         <xsl:apply-templates mode="pure" select="*[6]"/>
-         <xsl:apply-templates mode="pure" select="*[7]"/>
-        </m:apply>
-        <xsl:apply-templates mode="thread" select="*[5]"/>
-       </m:apply>
-      </xsl:when>
-      <!-- aggiungere la verifica dell'esistenza dei lambda per and_ind -->
-      <xsl:when test="name()= 'APPLY' and CONST[
- attribute::uri='cic:/coq/INIT/Logic/Conjunction/and_ind.con'] 
- and count(child::*) = 6">
-       <m:apply helm:xref="{@id}">
-        <m:csymbol>and_ind</m:csymbol>
-        <xsl:apply-templates mode="noannot" select="*[6]"/>
-        <m:ci><xsl:value-of select="*[5]/target/@binder"/></m:ci>
-        <xsl:apply-templates mode="pure" select="*[5]/source/*"/>
-        <m:ci><xsl:value-of select="*[5]/target/LAMBDA/target/@binder"/></m:ci>
-        <xsl:apply-templates mode="pure" select="*[5]/target/LAMBDA/source/*"/>
-        <xsl:apply-templates mode="noannot" select="*[5]/target/LAMBDA/target/*"/>
-       </m:apply>
-      </xsl:when>
-      <xsl:when test="name()= 'APPLY' and CONST[
- attribute::uri='cic:/coq/INIT/Logic/Disjunction/or_ind.con'] 
- and count(child::*) = 7">
-       <m:apply helm:xref="{@id}">
-        <m:csymbol>or_ind</m:csymbol>
-        <xsl:apply-templates mode="noannot" select="*[7]"/>
-        <xsl:apply-templates mode="pure" select="//ALLTYPES/TYPE[@id=$id]"/>
-        <xsl:apply-templates mode="pure" select="*[5]"/>
-        <xsl:apply-templates mode="pure" select="*[6]"/>
-       </m:apply>
-      </xsl:when>
-      <xsl:when test="count(*[@id = //ALLTYPES/TYPE/@id]) = 1">
-       <m:apply helm:xref="{@id}">
-        <m:csymbol>thread</m:csymbol>
-        <xsl:apply-templates mode="pure" select="//ALLTYPES/TYPE[@id=$id]"/>
-        <m:apply>
-         <m:csymbol>app</m:csymbol>
-         <xsl:apply-templates mode="copy-of-no-prop" select="*[1]"/>
-        </m:apply>
-        <xsl:apply-templates mode="thread" select="*[@id = //ALLTYPES/TYPE/@id]"/>
-       </m:apply>
-      </xsl:when>
-      <xsl:otherwise>
-       <m:apply helm:xref="{@id}">
-        <m:csymbol>proof</m:csymbol>
-        <xsl:apply-templates select="." mode="pure"/>
-        <!-- <xsl:apply-templates select="key('typeid',@id)" mode="pure"/> -->
-        <xsl:apply-templates select="//ALLTYPES/TYPE[@id=$id]" mode="pure"/>
-       </m:apply>
-      </xsl:otherwise>
-     </xsl:choose>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-templates select="." mode="pure"/>
-     </xsl:otherwise>
-    </xsl:choose>
-   </xsl:when>
-   <xsl:otherwise>
-    <xsl:apply-templates select="." mode="pure"/>
-   </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match="*" mode="copy-of-no-prop">
- <xsl:choose>
-  <xsl:when test="@id = //ALLTYPES/TYPE/@id">
-   <m:ci>prev</m:ci>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:apply-templates select="." mode="pure"/>
-  </xsl:otherwise>
- </xsl:choose>
- <xsl:apply-templates mode="copy-of-no-prop" select="following-sibling::*[1]"/>
-</xsl:template>
-
-<xsl:template match="*" mode="thread">
-  <xsl:choose>
-   <xsl:when test="name()= 'APPLY' and CONST[
- attribute::uri='cic:/coq/INIT/Logic_Type/eqT_ind.con' or
- attribute::uri='cic:/coq/ZARITH/auxiliary/eqT_ind_r.con'] and count(child::*) = 7">
-    <xsl:variable name="id" select="@id"/>
-     <xsl:apply-templates mode="pure" select="//ALLTYPES/TYPE[@id=$id]"/>
-     <m:apply>
-      <m:csymbol>rw_step</m:csymbol>
-      <xsl:apply-templates mode="pure" select="*[3]"/>
-      <xsl:apply-templates mode="pure" select="*[6]"/>
-      <xsl:apply-templates mode="pure" select="*[7]"/>
-     </m:apply>
-     <xsl:apply-templates mode="thread" select="*[5]"/>
-   </xsl:when>
-<!--**** Patch temporanea, per il problema dei threads ***-->
-<xsl:when test="(name()= 'APPLY' and CONST[
- attribute::uri='cic:/coq/INIT/Logic/Conjunction/and_ind.con'] 
- and count(child::*) = 6) or
-(name()= 'APPLY' and CONST[
- attribute::uri='cic:/coq/INIT/Logic/Disjunction/or_ind.con'] 
- and count(child::*) = 7)">
- <xsl:apply-templates mode="noannot" select="."/>
-</xsl:when>
-<!--**** Fine Patch temporanea, per il problema dei threads ***-->
-   <xsl:when test="count(*[@id = //ALLTYPES/TYPE/@id]) = 1">
-       <xsl:variable name="id" select="@id"/>
-       <m:apply helm:xref="{@id}">
-        <m:csymbol>thread</m:csymbol>
-        <xsl:apply-templates mode="pure" select="//ALLTYPES/TYPE[@id=$id]"/>
-        <m:apply>
-         <xsl:apply-templates mode="copy-of-no-prop" select="*[1]"/>
-        </m:apply>
-        <xsl:apply-templates mode="thread" select="*[@id = //ALLTYPES/TYPE/@id]"/>
-       </m:apply>
-   </xsl:when>
-   <xsl:otherwise>
-    <xsl:apply-templates mode="noannot" select="."/>
-   </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-
-<!-- Basic proof operators -->
-
-<!-- non del tutto soddisfacente, ma .... -->
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/INIT/Logic_Type/eqT_ind.con' or
- attribute::uri='cic:/coq/ZARITH/auxiliary/eqT_ind_r.con']]" mode="appflat">
-    <xsl:choose>
-     <xsl:when test="count(child::*) > 7">
-      <xsl:variable name="id" select="@id"/>
-      <xsl:variable name="ideqp" select="*[7]/@id"/>
-      <xsl:variable name="idsubp" select="*[5]/@id"/>
-      <xsl:variable name="leteqp" select="boolean(//ALLTYPES/TYPE[@id=$ideqp])"/>
-      <xsl:variable name="letsubp" select="boolean(//ALLTYPES/TYPE[@id=$idsubp])"/>
-      <m:apply helm:xref="{@id}">
-       <m:csymbol>rewrite_and_apply</m:csymbol>
-       <m:apply>
-        <m:csymbol>rw_step</m:csymbol>
-        <xsl:apply-templates mode="pure" select="*[3]"/>
-        <xsl:apply-templates mode="pure" select="*[6]"/>
-        <xsl:choose>
-         <xsl:when test="$leteqp">
-          <xsl:choose>
-           <xsl:when test="$letsubp">
-            <m:ci>
-             <xsl:value-of select="'h2'"/>
-            </m:ci>
-           </xsl:when>
-           <xsl:otherwise>
-            <m:ci>
-             <xsl:value-of select="'h1'"/>
-            </m:ci>
-           </xsl:otherwise>
-          </xsl:choose>
-         </xsl:when>
-         <xsl:otherwise>
-          <xsl:apply-templates mode="pure" select="*[7]"/>
-         </xsl:otherwise>
-        </xsl:choose>
-       </m:apply>
-      <xsl:choose>
-       <xsl:when test="$letsubp">
-        <m:ci>
-         <xsl:value-of select="'h1'"/>
-        </m:ci>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:apply-templates mode="pure" select="*[5]"/>
-       </xsl:otherwise>
-      </xsl:choose>
-      <xsl:apply-templates mode="flat" select="*[8]">
-       <xsl:with-param name="n">
-        <xsl:value-of select="1+$letsubp+$leteqp"/>
-       </xsl:with-param>
-      </xsl:apply-templates>
-     </m:apply>
-    </xsl:when>
-    <xsl:otherwise>
-     <m:apply helm:xref="{@id}">
-      <m:csymbol>app</m:csymbol>
-      <xsl:apply-templates mode="flat" select="*[1]"/>
-     </m:apply>
-    </xsl:otherwise>
-   </xsl:choose>
-</xsl:template> 
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/INIT/Logic/Conjunction/and_ind.con']]" mode="appflat">
-    <xsl:choose>
-     <xsl:when test="count(child::*) > 4">
-      <m:apply helm:xref="{@id}">
-       <m:csymbol>app</m:csymbol>
-       <xsl:apply-templates mode="pure" select="*[1]"/>
-       <m:ci>*</m:ci>
-       <m:ci>*</m:ci>
-       <m:ci>*</m:ci>
-       <xsl:apply-templates mode="flat" select="*[5]"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <m:apply helm:xref="{@id}">
-       <m:csymbol>app</m:csymbol>
-       <xsl:apply-templates mode="flat" select="*[1]"/>
-      </m:apply>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-
-</xsl:stylesheet>
-
-
-
-
-
-
diff --git a/helm/style/reals.xsl b/helm/style/reals.xsl
deleted file mode 100644 (file)
index 6c47f95..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- Reals                                                            -->
-<!-- First draft: April 3 2000                                        -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                 -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm"
-                              xmlns:xlink="http://www.w3.org/1999/xlink">
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- ************************* LOGIC *********************************-->
-
-<!-- REALS -->
-
-<!--
-<xsl:template match="CONST[attribute::uri='cic:/coq/REALS/Raxioms/R.con']" mode="pure">
- <m:reals/>
-</xsl:template>
--->
-
-<!-- 0 e 1 -->
-
-<xsl:template match="CONST[attribute::uri='cic:/coq/REALS/Raxioms/R0.con']" mode="pure">
- <m:cn definitionURL="{@uri}" helm:xref="{@id}">0</m:cn>
-</xsl:template>
-
-<xsl:template match="CONST[attribute::uri='cic:/coq/REALS/Raxioms/R1.con']" mode="pure">
- <m:cn definitionURL="{@uri}" helm:xref="{@id}">1</m:cn>
-</xsl:template>
-
-
-
-<!-- Unary Operations -->
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Raxioms/Ropp.con' or
- attribute::uri='cic:/coq/REALS/Rbasic_fun/Rabsolu.con' or
- attribute::uri='cic:/coq/REALS/Rfunctions/fact.con' or
- attribute::uri='cic:/coq/REALS/Rbase/Rsqr.con']]" mode="pure">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 2">
-      <xsl:variable name="elem">
-       <xsl:choose>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Ropp.con'">
-         <xsl:value-of select="'minus'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rbasic_fun/Rabsolu.con'">
-         <xsl:value-of select="'abs'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rfunctions/fact.con'">
-         <xsl:value-of select="'factorial'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rbase/Rsqr.con'">
-         <xsl:value-of select="'root'"/>
-        </xsl:when>
-       </xsl:choose>
-      </xsl:variable>
-      <m:apply helm:xref="{@id}">
-       <xsl:element name="{concat('m:',$elem)}">
-        <xsl:attribute name="definitionURL">
-         <xsl:value-of select="CONST/@uri"/> 
-        </xsl:attribute>
-        <xsl:attribute name="helm:xref">
-         <xsl:value-of select="CONST/@id"/>
-        </xsl:attribute>
-       </xsl:element>
-       <xsl:apply-templates select="*[2]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Raxioms/Rinv.con']]" mode="pure">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 2">
-      <m:apply helm:xref="{@id}">
-       <m:power/>
-       <xsl:apply-templates select="*[2]" mode="noannot"/>
-       <m:apply>
-        <m:minus>
-         <xsl:attribute name="definitionURL">
-          <xsl:value-of select="CONST/@uri"/> 
-         </xsl:attribute>
-        </m:minus>
-        <xsl:attribute name="helm:xref">
-         <xsl:value-of select="CONST/@id"/>
-        </xsl:attribute>
-        <m:cn>1</m:cn>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- Binary Operations and Relations -->
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Raxioms/Rplus.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rminus.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rmult.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rle.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rlt.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rge.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rgt.con' or
- attribute::uri='cic:/coq/REALS/Rbasic_fun/Rmin.con' or
- attribute::uri='cic:/coq/REALS/Rfunctions/pow.con']]" mode="pure">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 3">
-      <xsl:variable name="elem">
-       <xsl:choose>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rplus.con'">
-         <xsl:value-of select="'plus'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rminus.con'">
-         <xsl:value-of select="'minus'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rmult.con'">
-         <xsl:value-of select="'times'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rle.con'">
-         <xsl:value-of select="'leq'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rlt.con'">
-         <xsl:value-of select="'lt'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rge.con'">
-         <xsl:value-of select="'geq'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rgt.con'">
-         <xsl:value-of select="'gt'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rbasic_fun/Rmin.con'">
-         <xsl:value-of select="'min'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rfunctions/pow.con'">
-         <xsl:value-of select="'power'"/>
-        </xsl:when>
-       </xsl:choose>
-      </xsl:variable>
-      <m:apply helm:xref="{@id}">
-       <xsl:element name="{concat('m:',$elem)}">
-        <xsl:attribute name="definitionURL">
-         <xsl:value-of select="CONST/@uri"/> 
-        </xsl:attribute>
-        <xsl:attribute name="helm:xref">
-         <xsl:value-of select="CONST/@id"/>
-        </xsl:attribute>
-       </xsl:element>
-       <xsl:apply-templates select="*[2]" mode="noannot"/>
-       <xsl:apply-templates select="*[3]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- LIMIT -->
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Rlimit/limit1_in.con']]" mode="pure">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 5">
-      <m:apply>
-       <m:eq/>
-       <xsl:choose>
-        <xsl:when test="name(*[2]) = 'LAMBDA'">
-         <m:apply helm:xref="{@id}">
-          <m:limit>
-           <xsl:attribute name="definitionURL">
-            <xsl:value-of select="CONST/@uri"/> 
-           </xsl:attribute>
-           <xsl:attribute name="helm:xref">
-            <xsl:value-of select="CONST/@id"/>
-           </xsl:attribute>
-          </m:limit>
-          <m:bvar>
-           <m:ci><xsl:value-of select="LAMBDA/target/@binder"/></m:ci>
-          </m:bvar>
-          <m:lowlimit>
-           <xsl:apply-templates select="*[5]" mode="noannot"/>
-          </m:lowlimit>
-          <xsl:apply-templates select="*[2]/target" mode="noannot"/>
-         </m:apply>
-        </xsl:when>
-        <xsl:otherwise>
-         <m:apply helm:xref="{@id}">
-          <m:limit/>
-          <m:bvar>
-           <m:ci>$x</m:ci>
-          </m:bvar>
-          <m:lowlimit>
-           <xsl:apply-templates select="*[5]" mode="noannot"/>
-          </m:lowlimit>
-          <m:apply>
-           <m:csymbol>app</m:csymbol>
-           <xsl:apply-templates select="*[2]" mode="noannot"/>
-           <m:ci>$x</m:ci>
-          </m:apply>
-         </m:apply>
-        </xsl:otherwise>
-       </xsl:choose>
-       <xsl:apply-templates select="*[4]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- DIFFERENTIATION -->
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Rderiv/D_in.con']]" mode="pure">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 4">
-      <m:apply>
-       <m:eq/>
-       <xsl:choose>
-        <xsl:when test="name(*[2]) = 'LAMBDA'">
-         <m:apply helm:xref="{@id}">
-          <m:diff >
-           <xsl:attribute name="definitionURL">
-            <xsl:value-of select="CONST/@uri"/> 
-           </xsl:attribute>
-           <xsl:attribute name="helm:xref">
-            <xsl:value-of select="CONST/@id"/>
-           </xsl:attribute>
-          </m:diff>
-          <m:bvar>
-           <m:ci><xsl:value-of select="LAMBDA[1]/target/@binder"/></m:ci>
-          </m:bvar>
-          <xsl:apply-templates select="*[2]/target" mode="noannot"/>
-         </m:apply>
-        </xsl:when>
-        <xsl:otherwise>
-         <m:apply helm:xref="{@id}">
-          <m:diff/>
-          <m:bvar>
-           <m:ci>$x</m:ci>
-          </m:bvar>
-          <m:apply>
-           <m:csymbol>app</m:csymbol>
-           <xsl:apply-templates select="*[2]" mode="noannot"/>
-           <m:ci>$x</m:ci>
-          </m:apply>
-         </m:apply>
-        </xsl:otherwise>
-       </xsl:choose>
-       <xsl:apply-templates select="*[4]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/ricerca.xsl b/helm/style/ricerca.xsl
deleted file mode 100644 (file)
index e0fa13a..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0"?>
-
-
-<xsl:stylesheet version="0.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:output method="html"/>
-
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<xsl:template match="/">
-               <html> 
-                <head></head>
-                <body>
-                <xsl:apply-templates select="Theory"/>
-                </body>
-               </html>
-</xsl:template>
-
-
-<!-- CIC TERMS -->
-
-
-
-<xsl:template match="MUTIND[string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind']" mode="search" >
-<!-- <xsl:param name="current_uri" select=""/> -->
-<!-- <h1><xsl:value-of select="string(@uri)"/></h1> -->
-<!-- <xsl:if test="string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind'"> -->
-  <xsl:value-of select="$current_uri"/><BR/>
-<!-- </xsl:if> -->
-</xsl:template>
-
-<!-- AGGIUNGERE cic: alle uri nei file Theory -->
-
-<xsl:template match="Theory">
-<!-- <xsl:param name="current_uri" select=""/> -->
- <xsl:apply-templates>
-  <xsl:with-param name="current_uri" select="string(@uri)"/>
- </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match="VARIABLE">
-<!-- <xsl:param name="current_uri" select=""/> -->
-<xsl:variable name="found" 
-  select="boolean(document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))//MUTIND[string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind'])"/>
-<xsl:if test="$found">
-  <xsl:value-of select="concat(string($current_uri),&quot;/&quot;,string(@uri),&quot;.xml&quot;)"/><BR/>
-</xsl:if>
-
-<!--   <xsl:with-param name="current_uri" select="concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri))"/>
- </xsl:apply-templates> -->
-</xsl:template>
-
-<xsl:template match="DEFINITION">
-<!-- <xsl:param name="current_uri" select=""/> -->
-<!-- <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))" mode="search">
-  <xsl:with-param name="current_uri" select="concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri))"/>
- </xsl:apply-templates> -->
-<xsl:variable name="found" 
-  select="boolean(document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))//MUTIND[string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind'])"/>
-<xsl:if test="$found">
-  <xsl:value-of select="concat(string($current_uri),&quot;/&quot;,string(@uri),&quot;.xml&quot;)"/><BR/>
-</xsl:if>
-</xsl:template>
-
-<xsl:template match="THEOREM">
-<!-- <xsl:param name="current_uri" select=""/> -->
-<!-- <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))" mode="search">
-  <xsl:with-param name="current_uri" select="concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri))"/>
- </xsl:apply-templates> -->
-<xsl:variable name="found" 
-  select="boolean(document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))//MUTIND[string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind'])"/>
-<xsl:if test="$found">
-  <xsl:value-of select="concat(string($current_uri),&quot;/&quot;,string(@uri),&quot;.xml&quot;)"/><BR/>
-</xsl:if>
-</xsl:template>
-
-
-<xsl:template match="SECTION">
-<!-- <xsl:param name="current_uri" select=""/> -->
- <xsl:apply-templates>
-  <xsl:with-param name="current_uri" select="concat($current_uri,&quot;/&quot;,string(@uri))"/>
- </xsl:apply-templates>
-
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/rootcontent.xsl b/helm/style/rootcontent.xsl
deleted file mode 100644 (file)
index e82a13d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of the stylesheet to accomplish the right inclusion  -->
-<!-- of the content stylesheets:                                           -->
-<!-- First draft: May 26 2000, Claudio Sacerdoti Coen, Irene Schena        -->
-<!--***********************************************************************-->
-
-<!-- Schema of stylesheet precedences (from highest to lowest):          -->
-<!-- proofs.xsl-> reals.xsl-> set -> basic -> annotatedcont              -->
-<!-- because annotatedcont is imported and has lower precendence than    -->
-<!-- the templates of rootcontent (i.e. the templates of set and basic). -->
-<!-- annotatedcont -> objcontent -> content                              -->
-<!-- because annotatedcont generates an import precedence tree.          --> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-
-<xsl:import href="annotatedcont.xsl"/>
-<xsl:key name="id" use="@id" match="LAMBDA|PROD|CAST|REL|SORT|APPLY|VAR|META|CONST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX|Definition|Axiom|CurrentProof|InductiveDefinition|Variable"/>
-<xsl:include href="basic.xsl"/>
-<xsl:include href="set.xsl"/>
-<xsl:include href="reals.xsl"/>
-<xsl:include href="proofs.xsl"/>
-
-<xsl:variable name="showproof" select="0"/>
-</xsl:stylesheet>
-
-
-
diff --git a/helm/style/roottheory.xsl b/helm/style/roottheory.xsl
deleted file mode 100644 (file)
index 5ba277e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of the stylesheet to accomplish the right inclusion  -->
-<!-- of the theory content stylesheets:                                    -->
-<!-- First draft: May 26 2000, Claudio Sacerdoti Coen, Irene Schena        -->
-<!--              November 15 2000, Irene Schena                           -->
-<!--***********************************************************************-->
-
-<!-- Schema of stylesheet precedences (from highest to lowest):          -->
-<!-- theory_content -> rootcontent.xsl                                   -->
-<!-- because theory_content is included and has higher precendence than  -->
-<!-- the templates of rootcontent which are imported.                    -->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:import href="rootcontent.xsl"/>
-<xsl:include href="theory_content.xsl"/>
-
-</xsl:stylesheet>
-
-
-
-
-
diff --git a/helm/style/set.xsl b/helm/style/set.xsl
deleted file mode 100644 (file)
index b61b44e..0000000
+++ /dev/null
@@ -1,472 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- Basic Set Theory                                                 -->
-<!-- First draft: April 3 2000                                        -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                 -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- ************************* LOGIC *********************************-->
-
-
-
-<xsl:template match="*" mode="set">
-    <xsl:choose>
-     <xsl:when test="name() = 'LAMBDA'">
-      <m:set>
-       <m:bvar>
-        <m:ci>
-         <xsl:value-of select="target/@binder"/>
-        </m:ci>
-        <m:type>
-         <xsl:apply-templates select="source" mode="noannot"/>
-        </m:type>
-       </m:bvar>
-       <m:condition>
-        <xsl:apply-templates select="target" mode="noannot"/>
-       </m:condition>
-      </m:set>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-templates select="." mode="noannot"/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-
-<!-- IN -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/In.con']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       <!-- <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/> -->
-       <xsl:apply-templates select="*[2+$no_params]" mode="set" /> 
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-
-<!-- NOT-IN -->
-<!-- NOT ha no parameters -->
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/not.con']
-and (count(child::*) = 2) and APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/In.con']]]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="APPLY/CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(APPLY/child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:notin/>
-       <xsl:apply-templates select="*[2]/*[3+$no_params]" mode="noannot"/>
-  <!-- <xsl:apply-templates select="*[2]/*[2+$no_params]" mode="noannot"/> -->
-       <xsl:apply-templates select="*[2]/*[2+$no_params]" mode="set"/>  
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- EMPTY SET -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Empty_set.ind']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 1">
-      <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-      </m:set>
-     </xsl:when>   
-     <xsl:when test="(count(child::*) - number($no_params)) = 2">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="cic:/coq/SETS/Ensembles/Ensembles/In.con"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-       <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- SINGLETON -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Singleton.ind']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 2">
-      <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-       <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-      </m:set>
-     </xsl:when>   
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="cic:/coq/SETS/Ensembles/Ensembles/In.con"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       <m:set definitionURL="{MUTIND/@uri}">
-        <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- COUPLE -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Couple.ind']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-       <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-      </m:set>
-     </xsl:when>   
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="cic:/coq/SETS/Ensembles/Ensembles/In.con"/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:set definitionURL="{MUTIND/@uri}">
-        <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- TRIPLE -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Triple.ind'] and (count(child::*) = 5)]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-       <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-      </m:set>
-     </xsl:when>   
-     <xsl:when test="(count(child::*) - number($no_params)) = 5">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="cic:/coq/SETS/Ensembles/Ensembles/In.con"/>
-       <xsl:apply-templates select="*[5+$no_params]" mode="noannot"/>
-       <m:set definitionURL="{MUTIND/@uri}">
-        <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-        <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- INTERSECTION -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Intersection.ind']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:intersect definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:intersect definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-
-<!-- UNION -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Union.ind']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:union definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:union definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- INCLUDED -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Included.con']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:subset definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- STRICTLY INCLUDED -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Strict_Included.con']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:prsubset definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- SET-DIFF -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Setminus.con']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:setdiff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:setdiff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- ADD-ELEM -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Add.con']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:union definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <m:set>
-        <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:union definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <m:set>
-         <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-        </m:set>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- SUBTRACT-ELEM -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Subtract.con']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:setdiff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <m:set>
-        <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:setdiff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <m:set>
-         <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-        </m:set>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- CARD -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Finite_sets/Ensembles_finis/cardinal.ind']]" mode="pure">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:eq/>
-       <m:apply>
-        <m:card definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       </m:apply>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/annotatedcont.xsl b/helm/style/style_prima_del_linguaggio_naturale/annotatedcont.xsl
deleted file mode 100644 (file)
index e97d08f..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of annotated MathML content to MathML presentation:  -->
-<!-- First draft: March 29 2000, Claudio Sacerdoti Coen, Irene Schena      -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:import href="objcontent.xsl"/>
-
-<xsl:key name="id" use="@id" match="LAMBDA|PROD|CAST|REL|SORT|APPLY|VAR|META|CONST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX|Definition|Axiom|CurrentProof|InductiveDefinition|Variable"/>
-
-<xsl:key name="annid" use="@of" match="Annotation"/>
-
-<xsl:template match="Definition|Axiom|CurrentProof|InductiveDefinition|Variable">
-    <xsl:choose>
-    <xsl:when test="key('annid',@id)">
-     <annotation helm:xref="{@id}">
-      <xsl:apply-templates select="key('annid',@id)"/>
-     </annotation>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:apply-templates select="." mode="noannot"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="LAMBDA|PROD|CAST|REL|SORT|APPLY|VAR|META|CONST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX">
-    <xsl:choose>
-    <xsl:when test="key('annid',@id)">
-     <annotation helm:xref="{@id}">
-      <xsl:apply-templates select="key('annid',@id)"/>
-     </annotation>
-    </xsl:when>
-    <xsl:otherwise>
-     <m:math>
-      <xsl:apply-templates select="." mode="noannot"/>
-     </m:math>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="node">
- <xsl:variable name="id" select="@id"/>
- <xsl:apply-templates select="key('id',$id)"/>
-</xsl:template>
-
-<xsl:template match="attribute">
- <xsl:variable name="id" select="@id"/>
- <xsl:variable name="name" select="@name"/>
- <xsl:variable name="child" select="@child"/>
- <xsl:variable name="grandchild" select="@grandchild"/>
- <xsl:choose>
-  <xsl:when test="$child">
-   <xsl:choose>
-    <xsl:when test="$grandchild">
-     <xsl:value-of select="key('id',$id)/*[position() = $child]/*[position() = $grandchild]/attribute::*[name() = $name]"/>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="key('id',$id)/*[position() = $child]/attribute::*[name() = $name]"/>
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="key('id',$id)/attribute::*[name() = $name]"/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/annotatedpres.xsl b/helm/style/style_prima_del_linguaggio_naturale/annotatedpres.xsl
deleted file mode 100644 (file)
index 511f915..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of annotated MathML content to MathML presentation:  -->
-<!-- First draft: March 29 2000, Claudio Sacerdoti Coen, Irene Schena      -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:import href="mmlextension.xsl"/>
-
-<!-- ANNOTATION -->
-
-<xsl:template match="annotation">
-    <xsl:choose>
-    <xsl:when test=". = /">
-      <m:math><m:mrow helm:xref="{@helm:xref}"><xsl:apply-templates/></m:mrow></m:math>
-    </xsl:when>
-    <xsl:otherwise>
-     <m:mrow helm:xref="{@helm:xref}"><xsl:apply-templates/></m:mrow>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="text()">
- <xsl:variable name="text" select="normalize-space(.)"/>
- <xsl:if test="$text != ''">
-  <m:mtext><xsl:value-of select="$text"/></m:mtext>
- </xsl:if>
-</xsl:template>
-
-</xsl:stylesheet> 
diff --git a/helm/style/style_prima_del_linguaggio_naturale/basic.xsl b/helm/style/style_prima_del_linguaggio_naturale/basic.xsl
deleted file mode 100644 (file)
index 3f5422a..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- Basic Logic                                                      -->
-<!-- First draft: April 3 2000                                        -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                 -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- ************************* LOGIC *********************************-->
-
-<!-- AND -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/Conjunction/and.ind'] and (count(child::*) = 3)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:and definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<!-- OR -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/Disjunction/or.ind'] and (count(child::*) = 3)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:or definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<!-- NOT -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/not.con'] and (count(child::*) = 2)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:not definitionURL="{CONST/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<!-- IFF -->
-<!--
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/Equivalence/iff.ind'] and (count(child::*) = 3)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:iff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
--->
-
-<!-- EXISTS -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/First_order_quantifiers/ex.ind' or attribute::uri='cic:/coq/INIT/Logic_Type/exT.ind'] and (count(child::*) = 3)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-     <m:exists definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:choose>
-      <xsl:when test="name(*[3]) = 'LAMBDA'">
-       <m:bvar>
-        <m:ci><xsl:value-of select="LAMBDA/target/@binder"/></m:ci>
-       </m:bvar>
-       <xsl:apply-templates select="LAMBDA/target" mode="noannot"/>
-      </xsl:when>
-      <xsl:otherwise>
-       <m:bvar>
-        <m:ci>$x</m:ci>
-       </m:bvar>
-       <m:apply>
-        <m:csymbol>app</m:csymbol>
-        <xsl:apply-templates select="*[3]" mode="noannot"/>
-        <m:ci>$x</m:ci>
-       </m:apply>
-      </xsl:otherwise>
-     </xsl:choose>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/First_order_quantifiers/ex2.ind' or attribute::uri='cic:/coq/INIT/Logic_Type/exT2.ind'] and (count(child::*) = 4)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:exists definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:choose>
-      <xsl:when test="name(*[3]) = 'LAMBDA'">
-       <xsl:variable name="bvarname" select="*[3]/target/@binder"/>
-       <m:bvar>
-        <m:ci><xsl:value-of select="$bvarname"/></m:ci>
-       </m:bvar>
-       <m:condition>
-        <xsl:apply-templates select="LAMBDA[1]/target" mode="noannot"/>
-       </m:condition>
-       <xsl:choose>
-        <xsl:when test="(name(*[4]) = 'LAMBDA') and 
-           ($bvarname = *[4]/target/@binder)">
-         <xsl:apply-templates select="LAMBDA[2]/target" mode="noannot"/>
-        </xsl:when>
-        <xsl:otherwise>
-         <m:apply>
-          <m:csymbol>app</m:csymbol>
-          <xsl:apply-templates select="*[4]" mode="noannot"/>
-          <m:ci><xsl:value-of select="$bvarname"/></m:ci>
-         </m:apply>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:otherwise>
-       <xsl:choose>
-        <xsl:when test="name(*[4]) = 'LAMBDA'">
-         <xsl:variable name="bvarname" select="*[4]/target/@binder"/>
-         <m:bvar>
-          <m:ci><xsl:value-of select="$bvarname"/></m:ci>
-         </m:bvar>
-         <m:condition>
-          <m:apply>
-           <m:csymbol>app</m:csymbol>
-           <xsl:apply-templates select="*[3]" mode="noannot"/>
-           <m:ci><xsl:value-of select="$bvarname"/></m:ci>
-          </m:apply>
-         </m:condition>
-         <xsl:apply-templates select="*[4]/target" mode="noannot"/>
-        </xsl:when>
-        <xsl:otherwise>
-         <m:bvar>
-          <m:ci>x</m:ci>
-         </m:bvar>
-         <m:condition>
-          <m:apply>
-           <m:csymbol>app</m:csymbol>
-           <xsl:apply-templates select="*[3]" mode="noannot"/>
-           <m:ci>x</m:ci>
-          </m:apply>
-         </m:condition>
-         <m:apply>
-          <m:csymbol>app</m:csymbol>
-          <xsl:apply-templates select="*[4]" mode="noannot"/>
-          <m:ci>x</m:ci>
-         </m:apply>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:otherwise>
-     </xsl:choose>
-    </m:apply>
-</xsl:template>
-
-<!-- EQUALITY -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/Equality/eq.ind'] and (count(child::*) = 4)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:eq definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-     <xsl:apply-templates select="*[4]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-
-<!-- TYPE EQUALITY -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic_Type/eqT.ind'] and (count(child::*) = 4)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:eq definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-     <xsl:apply-templates select="*[4]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<!-- NOT-EQ -->
-<!-- NOT and EQ have no parameters -->
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/not.con']
-and (count(child::*) = 2) and APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic/Equality/eq.ind']]]" mode="noannot">
-    <xsl:choose>
-     <xsl:when test="count(APPLY/child::*) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:neq/>
-       <xsl:apply-templates select="*[2]/*[3]" mode="noannot"/>
-       <xsl:apply-templates select="*[2]/*[4]" mode="set"/>  
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- NOT-EQT -->
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/not.con']
-and (count(child::*) = 2) and APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Logic_Type/eqT.ind']]]" mode="noannot">
-    <xsl:choose>
-     <xsl:when test="count(APPLY/child::*) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:neq/>
-       <xsl:apply-templates select="*[2]/*[3]" mode="noannot"/>
-       <xsl:apply-templates select="*[2]/*[4]" mode="set"/>  
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- ************************ DATATYPES ******************************* -->
-
-<!-- no datatypes in MathML content -->
-
-
-<!-- *************************** PEANO ********************************* -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/INIT/Peano/le.ind'] and (count(child::*) = 3)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:leq definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Peano/lt.con'] and (count(child::*) = 3)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:lt definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Peano/ge.con'] and (count(child::*) = 3)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:geq definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Peano/gt.con'] and (count(child::*) = 3)]" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:gt definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-     <xsl:apply-templates select="*[2]" mode="noannot"/>
-     <xsl:apply-templates select="*[3]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-</xsl:stylesheet>
-
-
-
-
-
-
diff --git a/helm/style/style_prima_del_linguaggio_naturale/content.xsl b/helm/style/style_prima_del_linguaggio_naturale/content.xsl
deleted file mode 100644 (file)
index 7de9987..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- XSLT version 0.1 of CIC objects to MathML content:               -->
-<!-- First draft: February 14 2000, Andrea Asperti, Irene Schena      -->
-<!-- Revised: March 3 2000, Irene Schena                              -->
-<!-- Revised: March 10 2000, Irene Schena                             -->
-<!-- Revised: March 15 2000, Claudio Sacerdoti Coen, Irene Schena     -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:include href="params.xsl"/>
-
-<!--<xsl:output
-           method="xml" 
-           version="1.0" 
-           encoding="ISO-8859-1" 
-           omit-xml-declaration="no"
-           standalone="no" 
-           doctype-public="http://www.w3.org/TR/REC-MathML" 
-           indent="yes"
-           media-type="text/mathml" /> -->
-
-<!-- DA FARE: 
-1)risolvere nella fase di pre-processing le uri relative, settando l'attributo
-definitionURL dell'oggetto corrispondente (alcuni punteranno a nulla! -quelli 
-che non hanno il file di definizione corrispondente-); [le uri assolute hanno
-la forma cic:/.../ in definitionURL e questo schema di uri verra' risolto da
-Amaya o da chi di dovere in /really_very_local/helm/PARSER/example/.../]
-2)aggiungere nei file xml gli ID, affinche' nello stylesheet si setti
-l'attributo xref di ogni oggetto per puntare (tramite ID) al suo corrispondente
-della rappresentazione interna. 
--->
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- CIC TERMS -->
-
-<xsl:template match="LAMBDA" mode="noannot">
-    <m:lambda helm:xref="{@id}">
-     <m:bvar>
-      <m:ci>
-       <xsl:value-of select="target/@binder"/>
-      </m:ci>
-      <m:type>
-       <xsl:apply-templates select="source/*[1]" mode="noannot"/>
-      </m:type>
-     </m:bvar>
-     <xsl:apply-templates select="target/*[1]" mode="noannot"/>
-    </m:lambda>
-</xsl:template>
-
-<xsl:template match="PROD" mode="noannot">
-    <m:apply helm:xref="{@id}">
-     <xsl:choose>
-     <xsl:when test="string(target/@binder)= &quot;&quot;">
-      <m:csymbol>arrow</m:csymbol>
-      <xsl:apply-templates select="source/*[1]" mode="noannot"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <m:csymbol>prod</m:csymbol>
-       <m:bvar>
-        <m:ci>
-         <xsl:value-of select="target/@binder"/>
-        </m:ci>
-        <m:type>
-         <xsl:apply-templates select="source/*[1]" mode="noannot"/>
-        </m:type>
-       </m:bvar>
-     </xsl:otherwise>
-     </xsl:choose>
-     <xsl:apply-templates select="target/*[1]" mode="noannot"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="CAST" mode="noannot">
-    <m:apply helm:xref="{@id}">
-     <m:csymbol>cast</m:csymbol>
-     <xsl:apply-templates mode="noannot" select="*/*"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="REL" mode="noannot">
-    <m:ci helm:xref="{@id}">
-     <xsl:value-of select="@binder"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="SORT" mode="noannot">
-    <m:apply helm:xref="{@id}">
-     <m:csymbol>
-      <xsl:value-of select="@value"/>
-     </m:csymbol>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="APPLY" mode="noannot">
-    <m:apply helm:xref="{@id}">
-    <m:csymbol>app</m:csymbol>
-     <xsl:apply-templates mode="noannot" select="*"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="VAR" mode="noannot">
-    <m:ci helm:xref="{@id}">
-     <xsl:value-of select="substring-after(@relUri,&quot;,&quot;)"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="META" mode="noannot">
-    <m:ci helm:xref="{@id}">
-     <xsl:value-of select="@no"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="CONST" mode="noannot">
-    <m:ci definitionURL="{@uri}" helm:xref="{@id}">
-     <xsl:call-template name="name_of_uri">
-      <xsl:with-param name="uri" select="@uri"/>
-     </xsl:call-template>
-     <!-- <xsl:value-of select="document(concat(string($absPath),@uri))/*/@name"/> -->
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="MUTIND" mode="noannot">
-    <m:ci definitionURL="{@uri}" helm:xref="{@id}">
-     <xsl:variable name="index"><xsl:value-of select="@noType"/></xsl:variable>
-     <xsl:value-of select="document(concat(string($absPath),@uri))/InductiveDefinition/InductiveType[position()=number($index)+1]/@name"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="MUTCONSTRUCT" mode="noannot">
-    <m:ci definitionURL="{@uri}" helm:xref="{@id}">
-     <xsl:variable name="Tindex"><xsl:value-of select="@noType"/></xsl:variable>
-     <xsl:variable name="Cindex"><xsl:value-of select="@noConstr"/></xsl:variable>
-     <xsl:value-of select="document(concat(string($absPath),@uri))/InductiveDefinition/InductiveType[position()=number($Tindex)+1]/Constructor[position()=number($Cindex)]/@name"/>
-    </m:ci>
-</xsl:template>
-
-<xsl:template match="MUTCASE" mode="noannot">
-    <xsl:variable name="Tindex"><xsl:value-of select="@noType"/></xsl:variable>
-    <xsl:variable name="Turi"><xsl:value-of select="@uriType"/></xsl:variable>
-    <m:apply helm:xref="{@id}">
-     <m:csymbol>mutcase</m:csymbol>
-     <xsl:apply-templates select="patternsType/*[1]" mode="noannot"/>
-     <xsl:apply-templates select="inductiveTerm/*[1]" mode="noannot"/>
-     <xsl:variable name="nop"><xsl:value-of select="document(concat(string($absPath),$Turi))/InductiveDefinition/@noParams"/></xsl:variable>
-     <xsl:for-each select="pattern">
-      <xsl:variable name="pos" select="position()"/>
-      <xsl:variable name="nopar"><xsl:apply-templates select="document(concat(string($absPath),$Turi))/InductiveDefinition/InductiveType[position()=number($Tindex)+1]/Constructor[position()=number($pos)]/*[1]" mode="counting"><xsl:with-param name="noparams" select="$nop"/></xsl:apply-templates></xsl:variable>
-      <xsl:choose>
-      <xsl:when test="$nopar = 0">
-       <m:ci>
-        <xsl:value-of select="document(concat(string($absPath),$Turi))/InductiveDefinition/InductiveType[position()=number($Tindex)+1]/Constructor[position()=number($pos)]/@name"/>
-       </m:ci>
-      </xsl:when>
-      <xsl:otherwise>
-       <m:apply>
-        <m:csymbol>app</m:csymbol>
-        <m:ci>
-         <xsl:value-of select="document(concat(string($absPath),$Turi))/InductiveDefinition/InductiveType[position()=number($Tindex)+1]/Constructor[position()=number($pos)]/@name"/>
-        </m:ci>
-        <xsl:apply-templates select="./*[1]" mode="abstparams"><xsl:with-param name="noparams" select="$nopar"/><xsl:with-param name="binder">LAMBDA</xsl:with-param></xsl:apply-templates>
-        </m:apply>
-       </xsl:otherwise>
-       </xsl:choose>
-      <xsl:apply-templates select="./*[1]" mode="abstparams"><xsl:with-param name="noparams" select="$nopar"/><xsl:with-param name="target" select="1"/><xsl:with-param name="binder">LAMBDA</xsl:with-param></xsl:apply-templates>
-     </xsl:for-each> 
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="FIX" mode="noannot">
-    <m:apply helm:xref="{@id}">
-     <xsl:variable name="findex"><xsl:value-of select="@noFun"/></xsl:variable>
-     <m:csymbol>fix</m:csymbol>
-     <m:ci><xsl:value-of select="FixFunction[position()=number($findex)+1]/@name"/></m:ci>
-     <xsl:apply-templates mode="noannot" select="*"/>
-    </m:apply>
-</xsl:template>
-
-<xsl:template match="COFIX" mode="noannot">
-   <m:apply helm:xref="{@id}">
-     <xsl:variable name="findex"><xsl:value-of select="@noFun"/></xsl:variable>
-     <m:csymbol>cofix</m:csymbol>
-     <m:ci><xsl:value-of select="CofixFunction[position()=number($findex)+1]/@name"/></m:ci>
-     <xsl:apply-templates mode="noannot" select="*"/>
-    </m:apply>
-</xsl:template>
-
-<!-- ELEMENTS OF CIC TERMS -->
-
-<xsl:template match="FixFunction" mode="noannot">
-    <m:bvar>
-     <m:ci><xsl:value-of select="@name"/></m:ci>
-     <m:type><xsl:apply-templates select="type/*[1]" mode="noannot"/></m:type>
-    </m:bvar> 
-    <xsl:apply-templates select="body/*[1]" mode="noannot"/>
-</xsl:template>
-
-<xsl:template match="CofixFunction" mode="noannot">
-    <m:bvar>
-     <m:ci><xsl:value-of select="@name"/></m:ci>
-     <m:type><xsl:apply-templates select="type/*[1]" mode="noannot"/></m:type>
-    </m:bvar> 
-    <xsl:apply-templates select="body/*[1]" mode="noannot"/>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/content_to_html.xsl b/helm/style/style_prima_del_linguaggio_naturale/content_to_html.xsl
deleted file mode 100644 (file)
index dd1c077..0000000
+++ /dev/null
@@ -1,657 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- From MathML content to HTML                                           -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-
-<xsl:include href="html_init.xsl"/>
-<xsl:include href="html_set.xsl"/>
-<xsl:include href="html_reals.xsl"/>
-
-
-<!-- <xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>-->
-<xsl:variable name="header" select="document('http://localhost:8081/conf')/html_link"/>
-
-<xsl:variable name="showcast" select="0"/>
-
-
-<!--***********************************************************************-->
-<!-- HTML Head and Body                                                    -->
-<!--***********************************************************************-->
-
-<xsl:output method="html"/>
-
-<xsl:variable name="framewidth" select="36"/>
-
-<xsl:template match="/">
- <xsl:param name="current_indent" select="0"/>
-               <html> 
-                <head></head>
-                <body>
-                <xsl:apply-templates>
-                 <xsl:with-param name="current_indent" select="0"/>
-                </xsl:apply-templates>
-                </body>
-               </html>
-</xsl:template>
-
-<!--***********************************************************************-->
-<!-- Indentation                                                          -->
-<!--***********************************************************************-->
-
-<xsl:template name="make_indent">
- <xsl:param name="current_indent" select="0"/>
-  <xsl:if test="$current_indent > 0">
-   <xsl:text>&#x00A0;</xsl:text>
-   <xsl:call-template name="make_indent">
-    <xsl:with-param name="current_indent" select="$current_indent - 1"/> 
-   </xsl:call-template>
-  </xsl:if>
-</xsl:template>
-
-<!-- Syntactic Sugar -->
-
-<xsl:template match="m:type">
-<xsl:param name="current_indent" select="0"/> 
-<xsl:apply-templates>
- <xsl:with-param name="current_indent" 
-           select="$current_indent"/>
-</xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match="m:condition">
-<xsl:param name="current_indent" select="0"/> 
-<xsl:apply-templates>
- <xsl:with-param name="current_indent" 
-           select="$current_indent"/>
-</xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match="m:math">
-<xsl:param name="current_indent" select="0"/> 
-<xsl:apply-templates>
- <xsl:with-param name="current_indent" 
-           select="$current_indent"/>
-</xsl:apply-templates>
-</xsl:template>
-
-<!-- CSYMBOL -->
-
-<xsl:template match="m:apply[m:csymbol]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/> 
-  <xsl:variable name="name">
-   <xsl:value-of select="m:csymbol"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:csymbol" mode="charcount"/>
-  </xsl:variable>
-     <!-- <xsl:value-of select="$current_indent"/> -->
-     <!-- <xsl:value-of select="$charlength"/> -->
-     <xsl:choose>
-      <xsl:when test="$name='prod'">
-       <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-         <!-- &#x03a0; -->
-         <FONT FACE="symbol" SIZE="+2" color="blue">&#80;</FONT>
-         <xsl:apply-templates select="m:bvar/m:ci"/>
-         <xsl:text>:</xsl:text>
-         <xsl:apply-templates select="m:bvar/m:type">
-          <xsl:with-param name="current_indent" 
-           select="$current_indent + 2 + string-length(m:bvar/m:ci)"/>
-         </xsl:apply-templates><BR/> 
-         <xsl:call-template name="make_indent">
-          <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-         </xsl:call-template>
-         <xsl:text>.</xsl:text>
-         <xsl:apply-templates select="*[position()=3]">
-          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-         </xsl:apply-templates>
-       </xsl:when>
-       <xsl:otherwise>
-        <!-- &#x03a0; -->
-        <FONT FACE="symbol" SIZE="+2" color="blue">&#80;</FONT>
-        <xsl:apply-templates select="m:bvar/m:ci"/>
-        <xsl:text>:</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:type"/>
-        <xsl:text>.</xsl:text>
-        <xsl:apply-templates select="*[position()=3]"/>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='arrow'">
-       <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-       <xsl:text>(</xsl:text>
-       <xsl:apply-templates select="*[position()=2]">
-        <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-       </xsl:apply-templates>
-       <BR/>
-       <xsl:call-template name="make_indent">
-        <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-       </xsl:call-template>
-       <!-- -> -->
-       <FONT FACE="symbol" SIZE="+2" color="blue">&#174;</FONT>
-       <xsl:apply-templates select="*[position()=3]">
-        <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-       </xsl:apply-templates>
-       <xsl:text>)</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>(</xsl:text>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <!-- -> -->
-        <FONT FACE="symbol" SIZE="+2" color="blue">&#174;</FONT>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <xsl:text>)</xsl:text>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='app'">
-       <xsl:choose>
-       <xsl:when test="$charlength  > $framewidth">
-        <xsl:text>(</xsl:text>
-        <xsl:apply-templates select="*[position()=2]">
-         <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-        </xsl:apply-templates>
-         <xsl:for-each select="*[position()>2]">
-          <BR/>
-           <xsl:call-template name="make_indent">
-            <xsl:with-param name="current_indent" select="$current_indent + 2"/>         
-           </xsl:call-template>
-            <xsl:apply-templates select=".">
-             <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-            </xsl:apply-templates>
-         </xsl:for-each>
-         <xsl:text>)</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>(</xsl:text>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <xsl:for-each select="*[position()>2]">
-         <xsl:text>&#x00A0;</xsl:text>
-         <xsl:apply-templates select="."/>
-        </xsl:for-each>
-        <xsl:text>)</xsl:text>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='cast'">
-       <xsl:choose>
-        <xsl:when test="$showcast = 1">
-         <xsl:choose>
-          <xsl:when test="$charlength > $framewidth">
-           <xsl:text>(</xsl:text>
-           <xsl:apply-templates select="*[position()=2]">
-            <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-           </xsl:apply-templates><BR/>
-           <xsl:call-template name="make_indent">
-            <xsl:with-param name="current_indent" select="$current_indent + 2"/>          </xsl:call-template>
-           <xsl:text>:></xsl:text>
-           <xsl:apply-templates select="*[position()=3]">
-            <xsl:with-param name="current_indent" select="$current_indent + 3"/>
-           </xsl:apply-templates>
-           <xsl:text>)</xsl:text>
-          </xsl:when>
-          <xsl:otherwise>
-           <xsl:text>(</xsl:text>
-           <xsl:apply-templates select="*[position()=2]"/>
-           <xsl:text>:></xsl:text>
-           <xsl:apply-templates select="*[position()=3]"/>
-           <xsl:text>)</xsl:text>
-          </xsl:otherwise>
-         </xsl:choose>
-        </xsl:when>
-        <xsl:otherwise>
-         <xsl:apply-templates select="*[position()=2]">
-          <xsl:with-param name="current_indent" select="$current_indent"/>
-         </xsl:apply-templates>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='Prop'">
-       <xsl:text>Prop</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name='Set'">
-       <xsl:text>Set</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name='Type'">
-       <xsl:text>Type</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name='mutcase'">
-       <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-         <xsl:text>&lt;</xsl:text>
-         <xsl:apply-templates select="*[position()=2]">
-          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-         </xsl:apply-templates>
-         <xsl:text>&gt; </xsl:text>
-         <xsl:text>CASE </xsl:text>
-         <xsl:apply-templates select="*[position()=3]">
-          <xsl:with-param name="current_indent" select="$current_indent + 8"/>
-         </xsl:apply-templates>
-         <xsl:text> OF </xsl:text> 
-         <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
-         <BR/>
-         <xsl:call-template name="make_indent">
-            <xsl:with-param name="current_indent" select="$current_indent + 2"/>  
-         </xsl:call-template> 
-            <xsl:choose>
-            <xsl:when test="position() = 1">
-             <xsl:text>&#x00A0;&#x00A0;</xsl:text>
-            </xsl:when>
-            <xsl:otherwise>
-             <xsl:text>| </xsl:text>
-            </xsl:otherwise>
-            </xsl:choose>
-            <xsl:apply-templates select="."/>
-            <FONT FACE="symbol" SIZE="+2" color="green">&#222;</FONT>
-            <xsl:apply-templates select="following-sibling::*[position()= 1]">
-             <xsl:with-param name="current_indent" select="$current_indent + 4 + string-length()"/>
-            </xsl:apply-templates>
-         </xsl:for-each>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>&lt;</xsl:text> 
-        <xsl:apply-templates select="*[position()=2]"/> 
-        <xsl:text>&gt; </xsl:text>
-        <xsl:text>CASE </xsl:text>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <xsl:text> OF </xsl:text>
-        <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
-         <xsl:choose>
-         <xsl:when test="not(position() = 1)">
-          <xsl:text> | </xsl:text> 
-         </xsl:when> 
-         </xsl:choose>
-         <xsl:apply-templates select="."/>
-         <FONT FACE="symbol" SIZE="+2" color="green">&#222;</FONT>
-         <xsl:apply-templates select="following-sibling::*[position()= 1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 2 + string-length()"/>
-         </xsl:apply-templates>
-        </xsl:for-each>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='fix'">
-       <xsl:choose>
-       <xsl:when test="$charlength  > $framewidth">
-            <xsl:text>FIX</xsl:text>
-            <xsl:value-of select="m:ci"/>
-            <xsl:text>{</xsl:text> 
-            <xsl:for-each select="m:bvar"> 
-              <BR/>
-              <xsl:call-template name="make_indent">
-               <xsl:with-param name="current_indent" select="$current_indent + 2"/>  
-              </xsl:call-template>
-              <xsl:value-of select="m:ci"/>
-              <xsl:text>:</xsl:text>
-              <xsl:apply-templates select="m:type">
-               <xsl:with-param name="current_indent" 
-                    select="$current_indent + 5 + string-length(m:ci)"/>
-               </xsl:apply-templates>
-              <BR/>
-              <xsl:call-template name="make_indent">
-               <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-              </xsl:call-template>
-              <xsl:text>:=</xsl:text> 
-              <xsl:apply-templates select="following-sibling::*[position() = 1]">
-               <xsl:with-param name="current_indent" select="$current_indent +2"/>
-              </xsl:apply-templates>
-            </xsl:for-each>
-             <BR/>
-              <xsl:call-template name="make_indent">
-               <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-              </xsl:call-template> 
-           <xsl:text>}</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>FIX</xsl:text>
-        <xsl:value-of select="m:ci"/>
-        <xsl:text>{</xsl:text>
-        <xsl:for-each select="m:bvar"> 
-            <xsl:value-of select="m:ci"/>
-            <xsl:text>:</xsl:text>
-            <xsl:apply-templates select="m:type"/>
-            <xsl:text>:=</xsl:text>
-            <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-            <xsl:choose>
-             <xsl:when test="position()=last()">
-             <xsl:text>}</xsl:text>
-             </xsl:when>
-             <xsl:otherwise>
-             <xsl:text>;</xsl:text>
-             </xsl:otherwise>
-            </xsl:choose>
-         </xsl:for-each>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when> 
-      <xsl:when test="$name='cofix'">
-       <xsl:choose>
-       <xsl:when test="($charlength + 10) > $framewidth">
-            <xsl:text>COFIX</xsl:text>
-            <xsl:value-of select="m:ci"/>
-            <xsl:text>{</xsl:text>
-            <BR/>
-            <xsl:call-template name="make_indent">
-             <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-            </xsl:call-template>
-            <xsl:for-each select="m:bvar"> 
-                <xsl:value-of select="m:ci"/>
-                <xsl:text>:</xsl:text>
-                <xsl:apply-templates select="m:type">
-                 <xsl:with-param name="current_indent" 
-                    select="$current_indent + 5 + string-length(m:ci)"/>
-                </xsl:apply-templates>
-                <BR/> 
-                <xsl:call-template name="make_indent">
-                 <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-                </xsl:call-template>
-                <xsl:text>:=</xsl:text>
-                <xsl:apply-templates select="following-sibling::*[position() = 1]">
-                 <xsl:with-param name="current_indent" select="$current_indent + 3"/>
-                </xsl:apply-templates>
-            </xsl:for-each>
-            <BR/>
-              <xsl:call-template name="make_indent">
-               <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-              </xsl:call-template>
-            <xsl:text>}</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>COFIX</xsl:text>
-        <xsl:value-of select="m:ci"/>
-        <xsl:text>{</xsl:text>
-        <xsl:for-each select="m:bvar"> 
-            <xsl:value-of select="m:ci"/>
-            <xsl:text>:</xsl:text>
-            <xsl:apply-templates select="m:type"/>
-            <xsl:text>:=</xsl:text>
-            <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-            <xsl:choose>
-             <xsl:when test="position()=last()">
-             <xsl:text>}</xsl:text>
-             </xsl:when>
-             <xsl:otherwise>
-             <xsl:text>;</xsl:text>
-             </xsl:otherwise>
-            </xsl:choose>
-         </xsl:for-each>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      </xsl:choose>
-    <!--  </m:mrow> -->
-</xsl:template>
-
-<!-- LAMBDA -->
-
-<xsl:template match="m:lambda">
-<xsl:param name="current_indent" select="0"/>
-    <xsl:variable name="charlength">
-     <xsl:apply-templates select="*[position()=1]" mode="charcount"/>
-     <!-- <xsl:apply-templates select="." mode="charcount"/> -->
-    </xsl:variable>
-    <!-- <xsl:value-of select="$charlength"/> -->
-     <xsl:choose>
-     <xsl:when test="$charlength > $framewidth">
-       <!-- &#x03bb; -->
-       <FONT FACE="symbol" SIZE="+2" color="red">&#108;</FONT>
-       <xsl:apply-templates select="m:bvar/m:ci"/>
-       <xsl:text>:</xsl:text>
-       <xsl:apply-templates select="m:bvar/m:type">
-        <xsl:with-param name="current_indent" 
-           select="$current_indent + 2 + string-length(m:bvar/m:ci)"/>
-       </xsl:apply-templates><BR/> 
-       <xsl:call-template name="make_indent">
-        <xsl:with-param name="current_indent" select="$current_indent + 2"/>       
-       </xsl:call-template>
-       <xsl:text>.</xsl:text>
-       <xsl:apply-templates select="*[position()=2]">
-        <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-       </xsl:apply-templates>
-     </xsl:when>
-     <xsl:otherwise>
-      <!-- &#x03bb; -->
-      <FONT FACE="symbol" SIZE="+2" color="red">&#108;</FONT>
-      <xsl:apply-templates select="m:bvar/m:ci"/>
-      <xsl:text>:</xsl:text>
-      <xsl:apply-templates select="m:bvar/m:type"/>
-      <xsl:text>.</xsl:text>
-      <xsl:apply-templates select="*[position()=2]"/>
-     </xsl:otherwise>
-     </xsl:choose>
-</xsl:template>
-
-<!-- href -->
-<xsl:template match="m:ci">
- <xsl:choose>
-  <xsl:when test="boolean(@definitionURL)">
-<!-- CSC: non bisogna piu' utilizzare la url, bensi' la uri -->
-<!--   <xsl:variable name="url">
-    <xsl:value-of select="concat(string($absPath),
-     @definitionURL)"/>
-   </xsl:variable>-->
-   <a>
-   <xsl:attribute name="href">
-    <xsl:value-of select="concat(string($header),string(@definitionURL))"/>
-   </xsl:attribute>
-   <xsl:apply-templates/>
-   </a>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="."/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!-- COUNTING -->
-
-<xsl:template match="m:ci|m:csymbol" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth >= ($incurrent_length + string-length())">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-<xsl:template match="*" mode="charcount">
- <xsl:param name="incurrent_length" select="0"/>
- <xsl:choose>
-  <xsl:when test="count(child::*) = 0">
-   <xsl:value-of select="$incurrent_length"/>
-  </xsl:when>
-  <xsl:otherwise>
-    <xsl:variable name="childlength"><xsl:apply-templates select="*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length"/></xsl:apply-templates></xsl:variable>
-    <xsl:choose>
-     <xsl:when test="$framewidth >= number($childlength)">
-      <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$childlength"/></xsl:apply-templates></xsl:variable>
-      <xsl:choose>
-       <xsl:when test="string($siblength) = &quot;&quot;">
-        <xsl:value-of select="number($childlength)"/>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:value-of select="number($siblength)"/>
-       </xsl:otherwise>
-      </xsl:choose>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($childlength)"/>
-     </xsl:otherwise>
-    </xsl:choose>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-<!--***********************************************************************-->
-<!-- OBJECTS                                                               -->
-<!--***********************************************************************-->
-
-<!-- DEFINITION -->
-
-<xsl:template match="Definition">
-<xsl:param name="current_indent" select="0"/>
-<p>
-DEFINITION <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>)<BR/>
-TYPE =<BR/>
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 7"/> 
-      </xsl:call-template>
-       <xsl:apply-templates select="type/*[1]">
-        <xsl:with-param name="current_indent" select="$current_indent + 7"/>
-       </xsl:apply-templates><BR/>
-BODY =<BR/>
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 7"/> 
-      </xsl:call-template>
-       <xsl:apply-templates select="body/*[1]">
-        <xsl:with-param name="current_indent" select="$current_indent + 7"/>
-       </xsl:apply-templates>
-</p>
-</xsl:template>
-
-<!-- AXIOM -->
-
-<xsl:template match="Axiom">
-<xsl:param name="current_indent" select="0"/>
-<p>
-AXIOM <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>)<BR/>
-TYPE = <xsl:apply-templates select="type/*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 7"/>
-       </xsl:apply-templates>
-</p>
-</xsl:template>
-
-<!-- UNFINISHED PROOF -->
-
-<xsl:template match="CurrentProof">
-<xsl:param name="current_indent" select="0"/>
-<p>
-UNFINISHED PROOF <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>)<BR/>
-THESIS:  <xsl:apply-templates select="type/*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 8"/>
-         </xsl:apply-templates><BR/>
-CONJECTURES: 
-      <xsl:for-each select="Conjecture">
-      <BR/>
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 8"/> 
-      </xsl:call-template>
-      <xsl:value-of select="./@no"/> : 
-      <xsl:apply-templates select="./*[1]">
-       <xsl:with-param name="current_indent" select="$current_indent + 11"/>
-      </xsl:apply-templates>
-      </xsl:for-each> 
-      <BR/>
-PROOF:
-      <xsl:apply-templates select="body/*[1]">
-        <xsl:with-param name="current_indent" select="$current_indent + 8"/>
-      </xsl:apply-templates>
-</p>
-</xsl:template>
-
-<!-- MUTUAL INDUCTIVE DEFINITION -->
-
-<xsl:template match="InductiveDefinition">
-<xsl:param name="current_indent" select="0"/>
-<p>
-     <xsl:for-each select="InductiveType">
-         <xsl:choose>
-         <xsl:when test="position() = 1">
-          <xsl:choose>
-          <xsl:when test="string(./@inductive) = &quot;true&quot;">
-          INDUCTIVE DEFINITION 
-          </xsl:when>
-          <xsl:otherwise>
-          COINDUCTIVE DEFINITION 
-          </xsl:otherwise>
-          </xsl:choose>  
-         </xsl:when>
-         <xsl:otherwise>
-          AND 
-         </xsl:otherwise>
-         </xsl:choose>
-         <xsl:value-of select="./@name"/>(<xsl:if test="string(../Params) != &quot;&quot;"><xsl:value-of select="../Params"/></xsl:if>)
-         [
-          <xsl:if test="string(../Param) != &quot;&quot;">         
-           <xsl:for-each select="../Param">
-            <xsl:value-of select="./@name"/>
-            :
-            <xsl:apply-templates select="*"/>
-           </xsl:for-each>
-          </xsl:if>
-         ] <BR/>
-         OF ARITY 
-         <xsl:apply-templates select="./arity/*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 9"/>
-         </xsl:apply-templates> <BR/>
-         BUILT FROM:
-      <xsl:for-each select="./Constructor">
-      <BR/>
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 3"/> 
-      </xsl:call-template>
-         <xsl:choose>
-         <xsl:when test="position() = 1">
-         <xsl:text>&#x00A0;&#x00A0;</xsl:text>
-         </xsl:when>
-         <xsl:otherwise>
-         <xsl:text>| </xsl:text>
-         </xsl:otherwise>
-         </xsl:choose>
-         <xsl:value-of select="./@name"/> 
-         <xsl:text>: </xsl:text>
-         <xsl:apply-templates select="./*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + string-length(./@name) + 4"/>
-         </xsl:apply-templates>
-      </xsl:for-each>
-     </xsl:for-each>
-</p>
-</xsl:template>
-
-<!-- VARIABLE -->
-
-<xsl:template match="Variable">
-<xsl:param name="current_indent" select="0"/>
-<p>
-VARIABLE <xsl:value-of select="@name"/><BR/>
-TYPE = <xsl:apply-templates select="type/*[1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 7"/>
-       </xsl:apply-templates>
-</p>
-</xsl:template>
-
-<!--***********************************************************************-->
-<!-- SECTIONS                                                              -->
-<!--***********************************************************************-->
-
-<!-- SECTION -->
-
-<xsl:template match="SECTION">
-<xsl:param name="current_indent" select="0"/>
- <h1>BEGIN OF SECTION</h1>
-  <xsl:apply-templates/>
- <h1>END OF SECTION</h1>
-</xsl:template>
-
-</xsl:stylesheet> 
diff --git a/helm/style/style_prima_del_linguaggio_naturale/html_init.xsl b/helm/style/style_prima_del_linguaggio_naturale/html_init.xsl
deleted file mode 100644 (file)
index 9e81b16..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- INIT style for HTML                                                   -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-
-<!-- BASIC OPERATORS -->
-
- <xsl:template match="m:apply[m:and|m:or|m:eq|m:neq|m:leq|m:lt
-       |m:geq|m:gt|m:plus|m:times]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="*[1]/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="*[1]" mode="charcount"/>
-  </xsl:variable>
-  <xsl:variable name="symbol">
-   <xsl:choose>
-    <xsl:when test="m:and">
-     <xsl:value-of select="'&#217;'"/>
-    </xsl:when>
-    <xsl:when test="m:or">
-     <xsl:value-of select="'&#218;'"/>
-    </xsl:when>
-    <xsl:when test="m:eq">
-     <xsl:value-of select="'&#61;'"/>
-    </xsl:when>
-    <xsl:when test="m:neq">
-     <xsl:value-of select="'&#185;'"/>
-    </xsl:when>
-    <xsl:when test="m:leq">
-     <xsl:value-of select="'&#163;'"/>
-    </xsl:when>
-    <xsl:when test="m:lt">
-     <xsl:value-of select="'&#60;'"/>
-    </xsl:when>
-    <xsl:when test="m:geq">
-     <xsl:value-of select="'&#179;'"/>
-    </xsl:when>
-    <xsl:when test="m:gt">
-     <xsl:value-of select="'&#62;'"/>
-    </xsl:when>
-    <xsl:when test="m:plus">
-     <xsl:value-of select="'&#43;'"/>
-    </xsl:when>
-    <xsl:when test="m:times">
-     <xsl:value-of select="'&#42;'"/>
-    </xsl:when>
-   </xsl:choose>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">
-      <xsl:value-of select="$symbol"/>
-     </FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">
-     <xsl:value-of select="$symbol"/>
-     </FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- MINUS (can be unary!) -->
-
-<xsl:template match="m:apply[m:minus]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="*[1]/@definitionURL"/>
-  </xsl:variable>
-  <xsl:choose>
-   <xsl:when test="count(child::*)=2">
-    <a>
-    <xsl:attribute name="href">
-     <xsl:value-of select="concat(string($header),string($uri))"/>
-    </xsl:attribute>
-    <xsl:text>-</xsl:text>
-    </a>
-    <xsl:apply-templates select="*[2]">
-     <xsl:with-param name="current_indent" select="$current_indent + 1"/>
-    </xsl:apply-templates>
-   </xsl:when>
-   <xsl:otherwise>
-    <xsl:variable name="charlength">
-     <xsl:apply-templates select="*[1]" mode="charcount"/>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="$charlength > $framewidth">
-      <xsl:text>(</xsl:text>
-      <xsl:apply-templates select="*[2]">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-      </xsl:apply-templates>
-      <BR/> 
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-      </xsl:call-template>
-      <a>
-      <xsl:attribute name="href">
-       <xsl:value-of select="concat(string($header),string($uri))"/>
-      </xsl:attribute>
-      <xsl:text>-</xsl:text>
-      </a>
-      <xsl:apply-templates select="*[3]">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-      </xsl:apply-templates>
-      <xsl:text>)</xsl:text>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:text>(</xsl:text>
-      <xsl:apply-templates select="*[2]"/>
-      <a>
-      <xsl:attribute name="href">
-       <xsl:value-of select="concat(string($header),string($uri))"/>
-      </xsl:attribute>
-      <xsl:text>-</xsl:text>
-      </a>
-      <xsl:apply-templates select="*[3]"/>
-      <xsl:text>)</xsl:text>
-     </xsl:otherwise>
-    </xsl:choose>
-   </xsl:otherwise>
-  </xsl:choose>
- </xsl:template>
-
-<!-- NOT -->
-
- <xsl:template match="m:apply[m:not]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:not/@definitionURL"/>
-  </xsl:variable>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">&#216;</FONT>
-     </a>
-     <xsl:apply-templates select="*[2]"/>
- </xsl:template>
-
-<!-- EXISTS -->
-
- <xsl:template match="m:apply[m:exists]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:exists/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:exists" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">&#36;</FONT>
-     </a>
-     <xsl:apply-templates select="m:bvar/m:ci"/>
-     <xsl:text>:</xsl:text>
-     <xsl:apply-templates select="m:condition">
-      <xsl:with-param name="current_indent" select="$current_indent + 2 +
-                                string-length(bvar/ci)"/> 
-     </xsl:apply-templates>
-     <BR/> 
-      <xsl:call-template name="make_indent">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-      </xsl:call-template>
-     <xsl:text>.</xsl:text>
-      <xsl:apply-templates select="*[last()]">
-       <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" color="blue">&#36;</FONT>
-     </a>
-     <xsl:apply-templates select="m:bvar/m:ci"/>
-     <xsl:text>:</xsl:text>
-     <xsl:apply-templates select="m:condition"/>
-     <xsl:text>.</xsl:text>
-     <xsl:apply-templates select="*[last()]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-
-
-
-<!-- COUNTING -->
-
-<xsl:template match="m:cn|m:and|m:or|m:not|m:exists|m:eq|m:neq
-   |m:lt|m:leq|m:gt|m:geq|m:plus|m:minus|m:times" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth >= ($incurrent_length + string-length())">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-</xsl:stylesheet> 
-
-
diff --git a/helm/style/style_prima_del_linguaggio_naturale/html_reals.xsl b/helm/style/style_prima_del_linguaggio_naturale/html_reals.xsl
deleted file mode 100644 (file)
index 04ff478..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- INIT style for HTML                                                   -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- LIMIT -->
-
-<xsl:template match="m:apply[m:limit]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:limit/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:limit" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:text>lim</xsl:text>
-     </a>
-     <SUB>
-      <xsl:apply-templates select="m:bvar/m:ci"/>
-      <FONT FACE="symbol" color="blue">&#174;</FONT>
-      <xsl:apply-templates select="m:lowlimit"/>
-     </SUB>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/> 
-     </xsl:call-template>
-     <xsl:apply-templates select="*[4]">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-     </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:text>lim</xsl:text>
-     </a>
-     <SUB>
-      <xsl:apply-templates select="m:bvar/m:ci"/>
-      <FONT FACE="symbol" color="blue">&#174;</FONT>
-      <xsl:apply-templates select="m:lowlimit"/>
-     </SUB>
-     <xsl:apply-templates select="*[4]">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-     </xsl:apply-templates>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- DIFFERENTIATION -->
-
-<xsl:template match="m:apply[m:diff]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:diff/@definitionURL"/>
-  </xsl:variable>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <SUP>d</SUP>
-      <xsl:text>/</xsl:text>
-     <SUB>
-      <xsl:text>d</xsl:text>
-      <xsl:value-of select="m:bvar/m:ci"/>
-     </SUB>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-     </xsl:apply-templates>
- </xsl:template>
-
-<!-- ABSOLUTE VALUE -->
-<xsl:template match="m:apply[m:abs]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:abs/@definitionURL"/>
-  </xsl:variable>
-  <xsl:text>|</xsl:text>
-  <xsl:apply-templates select="*[2]">
-   <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-  </xsl:apply-templates>
-  <xsl:text>|</xsl:text>
- </xsl:template>
-
-<!-- FACTORIAL -->
-
-<xsl:template match="m:apply[m:fact]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:abs/@definitionURL"/>
-  </xsl:variable>
-  <xsl:apply-templates select="*[2]">
-   <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-  </xsl:apply-templates>
-  <xsl:text>!</xsl:text>
- </xsl:template>
-
-<!-- SQUARE ROOT -->
-
-<xsl:template match="m:apply[m:root]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:abs/@definitionURL"/>
-  </xsl:variable>
-  <xsl:text>(sqr</xsl:text>
-  <xsl:apply-templates select="*[2]">
-   <xsl:with-param name="current_indent" select="$current_indent + 5"/>
-  </xsl:apply-templates>
-  <xsl:text>)</xsl:text>
- </xsl:template>
-
-<!-- POWER -->
-
-<xsl:template match="m:apply[m:power]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:power/@definitionURL"/>
-  </xsl:variable>
-  <xsl:apply-templates select="*[2]"/>
-  <SUP>
-  <xsl:apply-templates select="*[3]"/>
-  </SUP>
- </xsl:template>
-
-<!-- MIN and MAX (binari: estendere) -->
-
- <xsl:template match="m:apply[m:min|m:max]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="*[1]/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="*[1]" mode="charcount"/>
-  </xsl:variable>
-  <xsl:variable name="symbol">
-   <xsl:choose>
-    <xsl:when test="m:min">
-     <xsl:value-of select="'min'"/>
-    </xsl:when>
-    <xsl:when test="m:max">
-     <xsl:value-of select="'max'"/>
-    </xsl:when>
-   </xsl:choose>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:value-of select="$symbol"/>
-     </a>
-     <xsl:text>{</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>,</xsl:text>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 5"/> 
-     </xsl:call-template>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>}</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:value-of select="$symbol"/>
-     </a>
-     <xsl:text>{</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <xsl:text>, </xsl:text>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>}</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- COUNTING -->
-
-<xsl:template match="m:abs|m:fact|m:root
-           |m:limit|m:diff|m:min|m:max" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth >= ($incurrent_length + string-length())">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-</xsl:stylesheet> 
-
-
-
-
-
-
-
diff --git a/helm/style/style_prima_del_linguaggio_naturale/html_set.xsl b/helm/style/style_prima_del_linguaggio_naturale/html_set.xsl
deleted file mode 100644 (file)
index 6c7f66b..0000000
+++ /dev/null
@@ -1,463 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- INIT style for HTML                                                   -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- IN -->
-
- <xsl:template match="m:apply[m:in]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:in/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:in" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#206;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#206;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- NOTIN -->
-
- <xsl:template match="m:apply[m:notin]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:notin/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:notin" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#207;</FONT>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#207;</FONT>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- SET -->
-
- <xsl:template match="m:set">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="concat(string($absPath), @definitionURL)"/>
-  </xsl:variable>
-  <xsl:choose>
-   <xsl:when test="count(child::*) = 0">
-    <FONT FACE="symbol" color="blue">&#198;</FONT>
-   </xsl:when>
-   <xsl:otherwise>
-    <xsl:variable name="charlength">
-     <xsl:apply-templates select="." mode="charcount"/>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="name(*[1]) = 'm:bvar'">
-      <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-        <xsl:text>{</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:ci"/>
-        <xsl:text>:</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:type">
-         <xsl:with-param name="current_indent" 
-           select="$current_indent + 2 + string-length(m:bvar/m:ci)"/>
-        </xsl:apply-templates><BR/>
-        <xsl:call-template name="make_indent">
-         <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-        </xsl:call-template>
-        <xsl:text>|</xsl:text>
-        <xsl:apply-templates select="m:condition">
-         <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-        </xsl:apply-templates>
-        <xsl:text>}</xsl:text>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:text>{</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:ci"/>
-        <xsl:text>:</xsl:text>
-        <xsl:apply-templates select="m:bvar/m:type"/>
-        <xsl:text>|</xsl:text>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <xsl:text>}</xsl:text>
-       </xsl:otherwise>
-      </xsl:choose>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:choose>
-       <xsl:when test="$charlength > $framewidth">
-        <xsl:text>{</xsl:text>
-         <xsl:apply-templates select="*[position()=1]">
-          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-         </xsl:apply-templates>
-         <xsl:for-each select="*[position()>1]">
-          <xsl:text>,</xsl:text>
-          <BR/>
-          <xsl:call-template name="make_indent">
-           <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-          </xsl:call-template>
-          <xsl:apply-templates select=".">
-           <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-          </xsl:apply-templates>
-         </xsl:for-each>
-         <xsl:text>}</xsl:text>
-        </xsl:when>
-        <xsl:otherwise>
-        <xsl:text>{</xsl:text>
-         <xsl:for-each select="*">
-          <xsl:apply-templates select="."/>
-          <xsl:choose>
-           <xsl:when test="position() = last()">
-            <xsl:text>}</xsl:text>
-           </xsl:when>
-           <xsl:otherwise>
-            <xsl:text>,</xsl:text>
-           </xsl:otherwise>
-          </xsl:choose>
-         </xsl:for-each>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:otherwise>
-     </xsl:choose>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-
-<!-- INTERSECTION -->
-
-<xsl:template match="m:apply[m:intersect]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:intersect/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:intersect" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#199;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#199;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- UNION -->
-
-<xsl:template match="m:apply[m:union]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:union/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:union" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#200;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#200;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- SUBSET -->
-<xsl:template match="m:apply[m:subset]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:subset/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:subset" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#205;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#205;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- PRSUBSET -->
-<xsl:template match="m:apply[m:prsubset]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:prsubset/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:prsubset" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#204;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <FONT FACE="symbol" SIZE="+2" color="blue">&#204;</FONT>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-
-<!-- SETDIFF -->
-
-<xsl:template match="m:apply[m:setdiff]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:setdiff/@definitionURL"/>
-  </xsl:variable>
-  <xsl:variable name="charlength">
-   <xsl:apply-templates select="m:setdiff" mode="charcount"/>
-  </xsl:variable>
-  <xsl:choose>
-    <xsl:when test="$charlength > $framewidth">
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <BR/> 
-     <xsl:call-template name="make_indent">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/> 
-     </xsl:call-template>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:text>/</xsl:text>
-     </a>
-     <xsl:apply-templates select="*[3]">
-      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-     </xsl:apply-templates>
-     <xsl:text>)</xsl:text>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:text>(</xsl:text>
-     <xsl:apply-templates select="*[2]"/>
-     <a>
-     <xsl:attribute name="href">
-      <xsl:value-of select="concat(string($header),string($uri))"/>
-     </xsl:attribute>
-     <xsl:text>/</xsl:text>
-     </a>
-     <xsl:apply-templates select="*[3]"/>
-     <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-   </xsl:choose>
- </xsl:template>
-
-<!-- CARD -->
-<xsl:template match="m:apply[m:card]">
-  <xsl:param name="current_indent" select="0"/> 
-  <xsl:param name="width" select="$framewidth"/>
-  <xsl:variable name="uri">
-   <xsl:value-of select="m:card/@definitionURL"/>
-  </xsl:variable>
-  <xsl:text>|</xsl:text>
-  <xsl:apply-templates select="*[2]">
-   <xsl:with-param name="current_indent" select="$current_indent + 2"/>
-  </xsl:apply-templates>
-  <xsl:text>|</xsl:text>
- </xsl:template>
-
-<!-- COUNTING -->
-
-<xsl:template match="m:in|m:notin|m:intersect|m:union
-           |m:subset|m:prsubset|m:setdiff|m:card" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth >= ($incurrent_length + string-length())">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-</xsl:stylesheet> 
-
-
-
-
-
-
-
diff --git a/helm/style/style_prima_del_linguaggio_naturale/mml2mmlv1_0.xsl b/helm/style/style_prima_del_linguaggio_naturale/mml2mmlv1_0.xsl
deleted file mode 100644 (file)
index 67e1acc..0000000
+++ /dev/null
@@ -1,1957 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- ====================================================== -->
-<!-- XSL Transform of MathML content to MathML presentation -->
-<!--    By Igor Rodionov, Computer Science Department of    -->
-<!--   the University of Western Ontario, London, Canada    -->
-<!--  Complies with the W3C Working Draft from Dec.3, 1999  -->
-<!--             Version x.xx from Feb. 18, 2000            -->
-<!--              Comments to:  igor@csd.uwo.ca             -->
-<!--                                                        -->
-<!-- (C) Copyright 1999, 2000 Symbolic Computation          -->
-<!--     Laboratory, University of Western Ontario.         -->
-<!-- ====================================================== -->
-
-<!-- ====================================================== -->
-<!--  May 11, 2000 - HELM group:                            -->
-<!--  Added the namespace prefix to all the output elements -->
-<!--  Changed the mml prefix into m                         -->
-<!--  Swapped math element out of the semantic element      -->
-<!--  Added the declaration of the xlink namespace          --> 
-<!-- ====================================================== -->
-
-<xsl:stylesheet id="mml2mml"
-                version="1.0"
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:m="http://www.w3.org/1998/Math/MathML"
-                xmlns:xlink="http://www.w3.org/1999/xlink"
-                xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:output method="xml" indent="yes" encoding="iso-8859-1"/>
-
-<!-- ***************************************************** -->
-<!--  Parameters affectin' stylesheet's run-time behavior  -->
-<!-- ***************************************************** -->
-
-<!-- SEM_SW: -1 - strip off all semantics
-             0  - pass semantics "as is" (default)
-             1  - add semantics at top level only
-             2  - add semantics at all levels
-             3  - semantics at top level with cross-references
--->
-<!-- HELM: SEM_SW was 0 -->
-<xsl:param name="SEM_SW" select="1"/>
-
-<!-- Miscellaneous Variable Definitions -->
-
-<xsl:variable name="NO" select="0"/>
-<xsl:variable name="YES" select="1"/>
-<xsl:variable name="PAR_NO" select="-7"/>
-<xsl:variable name="PAR_YES" select="-5"/>
-<xsl:variable name="PAR_SAME" select="-3"/>
-<xsl:variable name="NO_PARAM" select="-1"/>
-
-<!-- Operator Precedence Definitions -->
-
-<xsl:variable name="NO_PREC" select="0"/>
-<xsl:variable name="UNION_PREC" select="1"/>
-<xsl:variable name="SETDIFF_PREC" select="1"/>
-<xsl:variable name="INTERSECT_PREC" select="3"/>
-<xsl:variable name="OR_PREC" select="5"/>
-<xsl:variable name="XOR_PREC" select="5"/>
-<xsl:variable name="AND_PREC" select="7"/>
-<xsl:variable name="PLUS_PREC" select="9"/>
-<xsl:variable name="MINUS_PREC" select="9"/>
-<xsl:variable name="MUL_PREC" select="11"/>
-<xsl:variable name="DIV_PREC" select="11"/>
-<xsl:variable name="NEG_PREC" select="13"/>
-<xsl:variable name="FUNCTION_PREC" select="99"/>
-
-<!-- AUXILIARY FUNCTIONS FOR BACKWARD POINTERS AND REFS (by andrea) -->
-
-<xsl:template name = "insert_xref">
- <xsl:if test="@helm:xref">
-  <xsl:attribute name="helm:xref">
-   <xsl:value-of select="@helm:xref"/>
-  </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<xsl:template name = "insert">
- <xsl:if test="@definitionURL">
-  <xsl:attribute name="xlink:href">
-   <xsl:value-of select="@definitionURL"/>
-  </xsl:attribute>
- </xsl:if>
- <xsl:if test="@helm:xref">
-  <xsl:attribute name="helm:xref">
-   <xsl:value-of select="@helm:xref"/>
-  </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<!-- for use inside m:apply -->
-<xsl:template name = "insert1">
- <xsl:if test="*[1]/@definitionURL">
-  <xsl:attribute name="xlink:href">
-   <xsl:value-of select="*[1]/@definitionURL"/>
-  </xsl:attribute>
- </xsl:if>
- <xsl:if test="*[1]/@helm:xref">
-  <xsl:attribute name="helm:xref">
-   <xsl:value-of select="*[1]/@helm:xref"/>
-  </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<!-- For use inside "for-each" -->
-<xsl:template name = "insert2">
- <xsl:if test="../*[1]/@definitionURL">
-  <xsl:attribute name="xlink:href">
-   <xsl:value-of select="../*[1]/@definitionURL"/>
-  </xsl:attribute>
- </xsl:if>
- <xsl:if test="../*[1]/@helm:xref">
-  <xsl:attribute name="helm:xref">
-   <xsl:value-of select="../*[1]/@helm:xref"/>
-  </xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<!-- THE TOPMOST ELEMENT: MATH -->
-
-<xsl:template match = "m:math">
-  <xsl:choose>
-    <xsl:when test="$SEM_SW>0">
-<!-- HELM: deleted math (we have already inserted at object level) -->
-     <!--<m:math>-->
-      <m:semantics>
-          <xsl:apply-templates mode = "semantics"/>
-       <m:annotation-xml encoding="MathML">
-          <xsl:copy-of select = "*"/>
-       </m:annotation-xml>
-      </m:semantics>
-     <!--</m:math>-->
-    </xsl:when>
-    <xsl:otherwise>
-      <!--<m:math>-->
-        <xsl:apply-templates mode = "semantics"/>
-      <!--</m:math>-->  
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- SEMANTICS -->
-
-<xsl:template match = "m:*" mode = "semantics">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$SEM_SW=-1 and self::m:semantics">
-      <xsl:apply-templates select="*[1]">
-        <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:when test="$SEM_SW=0 and self::m:semantics">
-      <m:semantics>
-        <xsl:apply-templates select="*[1]">
-          <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-        <xsl:copy-of select="m:annotation-xml"/>
-      </m:semantics>
-    </xsl:when>
-    <xsl:when test="$SEM_SW=2">
-      <m:semantics>
-        <xsl:choose>
-          <xsl:when test="self::m:semantics">
-            <xsl:apply-templates select="*[1]">
-              <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-              <xsl:with-param name="PARAM" select="$PARAM"/>
-              <xsl:with-param name="PAREN" select="$PAREN"/>
-              <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-            </xsl:apply-templates>
-            <xsl:copy-of select="m:annotation-xml"/>
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:apply-templates select=".">
-              <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-              <xsl:with-param name="PARAM" select="$PARAM"/>
-              <xsl:with-param name="PAREN" select="$PAREN"/>
-              <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-            </xsl:apply-templates>
-            <m:annotation-xml encoding="MathML">
-              <xsl:copy-of select="."/>
-            </m:annotation-xml>
-          </xsl:otherwise>
-        </xsl:choose>
-      </m:semantics>
-    </xsl:when>
-    <xsl:when test="$SEM_SW=3 and @id">
-      <m:mrow idref="{@id}">
-        <xsl:apply-templates select=".">
-          <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select=".">
-        <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:semantics">
-  <xsl:apply-templates select="*[1]" mode = "semantics"/>
-</xsl:template>
-
-
-<!-- BASIC ELEMENTS -->
-
-<xsl:template match = "m:cn">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test=". &lt; 0 and $IN_PREC &gt; 0 and $PAREN=$PAR_NO and $PAR_NO_IGNORE=$NO">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="cn"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select="." mode="cn"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:cn" mode="cn">
-  <xsl:choose>
-    <xsl:when test="@base and (not(@type) or @type='integer' or @type='real')">
-      <m:msub>
-        <m:mn> <xsl:apply-templates mode = "semantics"/> </m:mn>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-    </xsl:when>
-    <xsl:when test="@type='complex' and not(@base) and child::m:sep[1]">
-      <m:mfenced separators="">
-        <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-        <xsl:if test="text()[2] &lt; 0">
-          <m:mo>-</m:mo>
-          <m:mn> <xsl:value-of select="-text()[2]"/> </m:mn>
-        </xsl:if>
-        <xsl:if test="not(text()[2] &lt; 0)">
-          <m:mo>+</m:mo>
-          <xsl:apply-templates select="text()[2]" mode = "semantics"/>
-        </xsl:if>
-        <m:mo> <mchar name="InvisibleTimes"/> </m:mo>
-        <m:mo>i</m:mo>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@type='complex' and @base and child::m:sep[1]">
-      <m:msub>
-        <m:mfenced separators="">
-          <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-          <xsl:if test="text()[2] &lt; 0">
-            <m:mo>-</m:mo>
-            <m:mn> <xsl:value-of select="-text()[2]"/> </m:mn>
-          </xsl:if>
-          <xsl:if test="not(text()[2] &lt; 0)">
-            <m:mo>+</m:mo>
-            <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-          </xsl:if>
-          <m:mo> <mchar name="InvisibleTimes"/> </m:mo>
-          <m:mo>i</m:mo>
-        </m:mfenced>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-    </xsl:when>
-    <xsl:when test="@type='rational' and not(@base) and child::m:sep[1]">
-      <m:mrow>
-        <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-        <m:mo>/</m:mo>
-        <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-      </m:mrow>
-    </xsl:when>
-    <xsl:when test="@type='rational' and @base and child::m:sep[1]">
-      <m:msub>
-        <m:mfenced separators="">
-          <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-          <m:mo>/</m:mo>
-          <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-        </m:mfenced>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-    </xsl:when>
-    <xsl:when test="@type='polar' and not(@base) and child::m:sep[1]">
-      <m:mrow>
-        <m:mo>Polar</m:mo>
-        <m:mfenced separators=",">
-          <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-          <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-        </m:mfenced>
-      </m:mrow>
-    </xsl:when>
-    <xsl:when test="@type='polar' and @base and child::m:sep[1]">
-      <m:msub>
-        <m:mrow>
-          <m:mo>Polar</m:mo>
-          <m:mfenced separators=",">
-            <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-            <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-          </m:mfenced>
-        </m:mrow>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-   </xsl:when>
-    <xsl:otherwise>
-      <m:mn> 
-       <xsl:call-template name="insert"/>
-       <xsl:apply-templates mode = "semantics"/> 
-      </m:mn>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:ci">
-  <xsl:choose>
-    <xsl:when test="@type='vector' or @type=matrix or @type=set">
-      <m:mi fontweight="bold"> <xsl:apply-templates mode = "semantics"/> </m:mi>
-    </xsl:when>
-    <xsl:otherwise>
-     <m:mi> 
-      <xsl:call-template name="insert"/>
-      <xsl:apply-templates mode = "semantics"/> 
-     </m:mi>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:csymbol">
-  <xsl:choose>
-    <xsl:when test="*[1]">
-      <xsl:copy-of select = "*"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mo> <xsl:apply-templates mode = "semantics"/> </m:mo>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-
-<!-- BASIC CONTENT ELEMENTS -->
-
-<xsl:template match = "m:apply[m:fn[1]]">
-  <m:mrow>
-    <xsl:apply-templates select = "m:fn[1]" mode = "semantics"/>
-    <m:mfenced separators=",">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:fn">
-  <xsl:apply-templates select = "*[1]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-  </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match = "m:interval">
-  <xsl:choose>
-    <xsl:when test="@closure='closed'">
-      <m:mfenced open="[" close="]" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@closure='open'">
-      <m:mfenced separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@closure='open-closed'">
-      <m:mfenced open="(" close="]" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@closure='closed-open'">
-      <m:mfenced open="[" close=")" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mfenced open="[" close="]" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:*[1][self::m:apply[m:inverse[1]]]]">
-  <m:mrow>
-    <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-    <m:mfenced separators=",">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
- </m:mrow>
-</xsl:template>
-
-<!-- These "semantical" Transformations are REALLY questionable.
-     Andrea -->
-
-<xsl:template match = "m:apply[*[1][self::m:inverse]]">
-  <xsl:choose>
-    <xsl:when test="*[2]=m:exp">
-      <m:mo>ln</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:ln | m:log">
-      <m:mo>exp</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sin">
-      <m:mo>arcsin</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:cos">
-      <m:mo>arccos</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:tan">
-      <m:mo>arctan</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sec">
-      <m:mo>arcsec</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:csc">
-      <m:mo>arccsc</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:cot">
-      <m:mo>arccot</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sinh">
-      <m:mo>arcsinh</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:cosh">
-      <m:mo>arccosh</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:tanh">
-      <m:mo>arctanh</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sech">
-      <m:mo>arcsech</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:csch">
-      <m:mo>arccsch</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:coth">
-      <m:mo>arccoth</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:arcsin">
-      <m:mo>sin</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:arccos">
-      <m:mo>cos</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:arctan">
-      <m:mo>tan</m:mo>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:msup>
-        <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-        <m:mfenced>
-          <m:mn>-1</m:mn>
-        </m:mfenced>
-      </m:msup>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:sep"/>
-
-<xsl:template match = "m:condition">
-  <xsl:choose>
-    <xsl:when test="parent::m:apply[m:forall[1]]"/>
-    <xsl:otherwise>
-      <xsl:if test="not(*[2])">
-        <xsl:apply-templates mode = "semantics"/>
-      </xsl:if>
-      <xsl:if test="*[2]">
-        <m:mrow>
-          <xsl:apply-templates mode = "semantics"/>
-        </m:mrow>
-      </xsl:if>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:declare"/>
-
-<xsl:template match = "m:lambda">
-  <m:mrow>
-    <m:mo> &#x039b; </m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*">
-        <xsl:choose>
-          <xsl:when test="self::m:ci or self::m:cn">
-            <xsl:apply-templates select = "." mode="semantics"/>
-          </xsl:when>
-          <xsl:otherwise>
-            <m:mrow>
-              <xsl:apply-templates select = "." mode="semantics"/>
-            </m:mrow>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:*[1][self::m:apply[m:compose[1]]]]">
-  <m:mrow>
-    <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-    <m:mfenced separators=",">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
- </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[*[1][self::m:compose]]">
-  <m:mfenced separators="">
-    <xsl:apply-templates select = "m:*[2][self::m:ci[@type='fn'] | self::m:fn]" mode="semantics"/>
-    <xsl:for-each select = "m:*[position()>2][self::m:ci[@type='fn'] | self::m:fn]">
-      <m:mo> <xsl:call-template name="insert2"/> <mchar name="SmallCircle"/> </m:mo>
-      <xsl:apply-templates select = "." mode="semantics"/>
-    </xsl:for-each>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:ident">
-  <m:mo>id</m:mo>
-</xsl:template>
-
-
-<!-- ARITHMETIC, ALGEBRA & LOGIC -->
-
-<xsl:template match = "m:apply[m:quotient[1]]">
-  <m:mfenced open="&#x230a;" close="&#x230b;" separators="">
-    <xsl:call-template name="insert_xref"/>
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-    </xsl:apply-templates>
-    <m:mo><xsl:call-template name="insert1"/>/</m:mo>
-    <xsl:apply-templates select="*[3]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:apply[*[1][self::m:exp]]">
-  <m:msup>
-    <m:mo>e</m:mo>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-  </m:msup>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:factorial[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-    <m:mo><xsl:call-template name="insert1"/>!</m:mo>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:max[1] | m:min[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[2]=m:bvar">
-      <m:munder>
-        <xsl:if test="*[1]=m:max">
-          <m:mo><xsl:call-template name="insert1"/>max</m:mo>
-        </xsl:if>
-        <xsl:if test="*[1]=m:min">
-          <m:mo>min</m:mo>
-        </xsl:if>
-        <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      </m:munder>
-      <xsl:if test="*[3]=m:condition">
-        <m:mfenced open="{{" close="}}" separators="">
-          <m:mfenced open="" close="" separators=",">
-            <xsl:for-each select = "*[position()>3]">
-              <xsl:apply-templates select = "." mode="semantics"/>
-            </xsl:for-each>
-          </m:mfenced>
-          <m:mo>|</m:mo>
-          <xsl:apply-templates select="*[3]" mode = "semantics"/>
-        </m:mfenced>
-      </xsl:if>
-      <xsl:if test="not(*[3]=m:condition)">
-        <m:mfenced open="{{" close="}}" separators=",">
-          <xsl:for-each select = "*[position()>2]">
-            <xsl:apply-templates select = "." mode="semantics"/>
-          </xsl:for-each>
-        </m:mfenced>
-      </xsl:if>
-    </xsl:if>
-    <xsl:if test="*[2]=m:condition">
-      <xsl:if test="*[1]=m:max">
-        <m:mo>max</m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:min">
-        <m:mo>min</m:mo>
-      </xsl:if>
-      <m:mfenced open="{{" close="}}" separators="">
-        <xsl:if test="*[3]">
-          <m:mfenced open="" close="" separators=",">
-            <xsl:for-each select = "*[position()>2]">
-              <xsl:apply-templates select = "." mode="semantics"/>
-            </xsl:for-each>
-          </m:mfenced>
-          <m:mo>|</m:mo>
-        </xsl:if>
-        <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      </m:mfenced>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:condition) and not(*[2]=m:bvar)">
-      <xsl:if test="*[1]=m:max">
-        <m:mo>max</m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:min">
-        <m:mo><xsl:call-template name="insert1"/>min</m:mo>
-      </xsl:if>
-      <m:mfenced open="{{" close="}}" separators=",">
-        <xsl:for-each select = "*[position()>1]">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-    </xsl:if>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:minus[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $MINUS_PREC or $IN_PREC=$MINUS_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="minus">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="minus">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="minus">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:minus[1]]" mode="minus">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:if test="not(*[3])">
-    <m:mo><xsl:call-template name="insert1"/>-</m:mo>
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$NEG_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:if>
-  <xsl:if test="*[3]">
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$MINUS_PREC"/>
-      <xsl:with-param name="PARAM" select="$PARAM"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-    </xsl:apply-templates>
-    <m:mo><xsl:call-template name="insert1"/>-</m:mo>
-    <xsl:apply-templates select="*[3]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$MINUS_PREC"/>
-      <xsl:with-param name="PARAM" select="$PAR_SAME"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:plus[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $PLUS_PREC or $IN_PREC=$PLUS_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="plus">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="plus">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="plus">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:plus[1]]" mode="plus">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:if test="*[2]">
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$PLUS_PREC"/>
-      <xsl:with-param name="PARAM" select="$PARAM"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-    </xsl:apply-templates>
-    <xsl:for-each select = "*[position()>2]">
-      <xsl:choose>
-        <xsl:when test=". &lt; 0">
-          <m:mo>-</m:mo>
-          <m:mn> <xsl:value-of select="-."/> </m:mn>
-        </xsl:when>
-        <xsl:when test="self::m:apply[m:minus[1]] and not(*[3])">
-          <xsl:apply-templates select="." mode = "semantics">
-            <xsl:with-param name="IN_PREC" select="$PLUS_PREC"/>
-            <xsl:with-param name="PAREN" select="$PAREN"/>
-            <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-          </xsl:apply-templates>
-        </xsl:when>
-        <xsl:otherwise>
-          <m:mo><xsl:call-template name="insert2"/>+</m:mo>
-          <xsl:apply-templates select="." mode = "semantics">
-            <xsl:with-param name="IN_PREC" select="$PLUS_PREC"/>
-            <xsl:with-param name="PAREN" select="$PAREN"/>
-            <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-          </xsl:apply-templates>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:for-each>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:power[1]]">
-  <xsl:choose>
-    <xsl:when test="*[2]=m:apply[m:ln[1] | m:log[1] | m:abs[1] | m:gcd[1] | m:sin[1] | m:cos[1] | m:tan[1] | m:sec[1] | m:csc[1] | m:cot[1] | m:sinh[1] | m:cosh[1] | m:tanh[1] | m:sech[1] | m:csch[1] | m:coth[1] | m:arcsin[1] | m:arccos[1] | m:arctan[1]]">
-      <xsl:apply-templates select="*[2]" mode = "semantics"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:msup>
-        <xsl:apply-templates select = "*[2]" mode = "semantics">
-          <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-        </xsl:apply-templates>
-        <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-      </m:msup>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:rem[1] | m:divide[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $DIV_PREC or $IN_PREC=$DIV_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="remdiv">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="remdiv">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="remdiv">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:rem[1] | m:divide[1]]" mode="remdiv">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$DIV_PREC"/>
-      <xsl:with-param name="PARAM" select="$PARAM"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:if test="m:rem">
-    <m:mo><xsl:call-template name="insert1"/>%</m:mo>
-  </xsl:if>
-  <xsl:if test="m:divide">
-    <m:mo><xsl:call-template name="insert1"/>/</m:mo>
-  </xsl:if>
-  <xsl:apply-templates select = "*[3]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$DIV_PREC"/>
-    <xsl:with-param name="PARAM" select="$PAR_SAME"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-  </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:times[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $MUL_PREC or $IN_PREC=$MUL_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="times">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="times">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-         <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="times">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:times[1]]" mode="times">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$MUL_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:if test="*[3]">
-    <xsl:for-each select = "*[position()>2]">
-<!-- MODIFICA PROVVISORIA -->
-<!--      <m:mo><xsl:call-template name="insert2"/>
-                <mchar name="InvisibleTimes"/> </m:mo> -->
-      <m:mo><xsl:call-template name="insert2"/>*</m:mo>
-      <xsl:apply-templates select="." mode = "semantics">
-        <xsl:with-param name="IN_PREC" select="$MUL_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-      </xsl:apply-templates>
-    </xsl:for-each>
-  </xsl:if>
-</xsl:template>
-
-<!-- COMMENTO : dove metto la uri della definizione di radice ???? -->
-
-<xsl:template match = "m:apply[m:root[1]]">
-  <m:msqrt>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[2]=m:degree">
-      <xsl:apply-templates select="*[3]" mode = "semantics"/>
-      <xsl:apply-templates select="*[2]" mode = "semantics"/>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:degree)">
-      <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      <m:mn>2</m:mn>
-    </xsl:if>
-  </m:msqrt>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:gcd[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="not(parent::m:apply[m:power[1]])">
-      <m:mo><xsl:call-template name="insert1"/>gcd</m:mo>
-    </xsl:if>
-    <xsl:if test="parent::m:apply[m:power[1]]">
-      <m:msup>
-        <m:mo><xsl:call-template name="insert1"/>gcd</m:mo>
-        <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-      </m:msup>
-    </xsl:if>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:and[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $AND_PREC">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="and">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="and">
-        <xsl:with-param name="PARAM" select="$IN_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="and">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:and[1]]" mode="and">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$AND_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="wedge"/> </m:mo>
-    <xsl:apply-templates select="." mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$AND_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:or[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $OR_PREC">
-      <m:mfenced separators="">
-         <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="or">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="or">
-        <xsl:with-param name="PARAM" select="$IN_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="or">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:or[1]]" mode="or">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$OR_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="vee"/> </m:mo>
-    <xsl:apply-templates select="." mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$OR_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:xor[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $XOR_PREC">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="xor">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="xor">
-        <xsl:with-param name="PARAM" select="$IN_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="xor">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:xor[1]]" mode="xor">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$XOR_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="xor"/> </m:mo>
-    <xsl:apply-templates select="." mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$XOR_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:not[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>not</m:mo>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-    </xsl:apply-templates>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:forall[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>for all</m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "m:bvar">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-    <xsl:if test="m:condition">
-      <m:mo>:</m:mo>
-      <xsl:apply-templates select = "m:condition/*" mode = "semantics"/>
-      <m:mo>,</m:mo>
-    </xsl:if>
-    <xsl:apply-templates select = "*[position()>1 and not(self::m:bvar) and not(self::m:condition)]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:exists[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/> <mchar name="Exists"/> </m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "m:bvar">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-    <xsl:if test="m:condition">
-      <m:mo>,</m:mo>
-      <xsl:apply-templates select = "m:condition/*" mode = "semantics"/>
-    </xsl:if>
-    <m:mo>:</m:mo>
-    <xsl:apply-templates select = "*[position()>1 and not(self::m:bvar) and not(self::m:condition)]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:abs[1]]">
-  <xsl:if test="not(parent::m:apply[m:power[1]])">
-    <m:mfenced open="|" close="|" separators="">
-      <xsl:call-template name="insert_xref"/>
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
-  </xsl:if>
-  <xsl:if test="parent::m:apply[m:power[1]]">
-    <m:msup>
-      <m:mfenced open="|" close="|" separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-      </m:mfenced>
-      <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-    </m:msup>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:conjugate[1]]">
-  <m:mover>
-    <m:mrow>
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mrow>
-    <m:mo><xsl:call-template name="insert1"/> <mchar name="UnderBar"/> </m:mo>
-  </m:mover>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:arg[1] | m:real[1] | m:imaginary[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:choose>
-      <xsl:when test="m:arg">
-        <m:mo><xsl:call-template name="insert1"/>arg</m:mo>
-      </xsl:when>
-      <xsl:when test="m:real">
-        <m:mo><xsl:call-template name="insert1"/>Real</m:mo>
-      </xsl:when>
-      <xsl:when test="m:imaginary">
-        <m:mo><xsl:call-template name="insert1"/>Imaginary</m:mo>
-      </xsl:when>
-    </xsl:choose>
-    <m:mfenced separators="">
-      <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- RELATIONS -->
-
-<xsl:template match = "m:apply[m:neq | m:approx | m:tendsto | m:implies | m:in | m:notin | m:notsubset | m:notprsubset | m:subset | m:prsubset | m:eq | m:gt | m:lt | m:geq | m:leq | m:equivalent]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[1]=m:neq or *[1]=m:approx or *[1]=m:tendsto or *[1]=m:implies or *[1]=m:in or *[1]=m:notin or *[1]=m:notsubset or *[1]=m:notprsubset">
-      <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-      <xsl:if test="*[1]=m:neq">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="NotEqual"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:approx">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="approxeq"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:tendsto">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="RightArrow"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:implies">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="DoubleRightArrow"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:in">
-        <m:mo><xsl:call-template name="insert1"/>
-        <mchar name="Element"/> 
-       </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:notin">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="NotElement"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:notsubset">
-        <m:mo> <xsl:call-template name="insert1"/> <mchar name="NotSubset"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:notprsubset">
-        <m:mo> <xsl:call-template name="insert1"/> <mchar name="NotSubsetEqual"/> </m:mo>
-      </xsl:if>
-      <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-      <xsl:if test="*[1]=m:tendsto and m:tendsto[1][@type='below']">
-        <m:mo><xsl:call-template name="insert1"/>-</m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:tendsto and m:tendsto[1][@type='above']">
-        <m:mo><xsl:call-template name="insert1"/>+</m:mo>
-      </xsl:if>
-    </xsl:if>
-    <xsl:if test="*[1]=m:subset or *[1]=m:prsubset or *[1]=m:eq or *[1]=m:gt or *[1]=m:lt or *[1]=m:geq or *[1]=m:leq or *[1]=m:equivalent">
-      <xsl:apply-templates select = "*[2]" mode="semantics"/>
-      <xsl:for-each select = "*[position()>2]">
-        <xsl:if test="../*[self::m:subset][1]">
-          <m:mo> <xsl:call-template name="insert2"/> <mchar name="SubsetEqual"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:prsubset][1]">
-          <m:mo> <xsl:call-template name="insert2"/><mchar name="subset"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:eq][1]">
-          <m:mo><xsl:call-template name="insert2"/>=</m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:gt][1]">
-          <m:mo><xsl:call-template name="insert2"/>&gt;</m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:lt][1]">
-          <m:mo><xsl:call-template name="insert2"/>&lt;</m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:geq][1]">
-          <m:mo><xsl:call-template name="insert2"/> <mchar name="geq"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:leq][1]">
-          <m:mo><xsl:call-template name="insert2"/> <mchar name="leq"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:equivalent][1]">
-          <m:mo><xsl:call-template name="insert2"/> <mchar name="Congruent"/> </m:mo>
-        </xsl:if>
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </xsl:if>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- CALCULUS -->
-
-<xsl:template match = "m:apply[*[1][self::m:ln]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:choose>
-      <xsl:when test="parent::m:apply[m:power[1]]">
-        <m:msup>
-          <m:mo><xsl:call-template name="insert1"/>ln</m:mo>
-          <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-        </m:msup>
-      </xsl:when>
-      <xsl:otherwise>
-        <m:mo><xsl:call-template name="insert1"/>ln</m:mo>
-      </xsl:otherwise>
-    </xsl:choose>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-    </xsl:apply-templates>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:log[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:choose>
-      <xsl:when test="parent::m:apply[m:power[1]]">
-        <xsl:if test="not(*[2]=m:logbase)">
-          <m:msup>
-            <m:mo><xsl:call-template name="insert1"/>log</m:mo>
-            <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-          </m:msup>
-        </xsl:if>
-        <xsl:if test="*[2]=m:logbase">
-          <m:msubsup>
-            <m:mo><xsl:call-template name="insert1"/>log</m:mo>
-            <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-            <xsl:apply-templates select = "m:logbase" mode = "semantics"/>
-          </m:msubsup>
-        </xsl:if>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:if test="not(*[2]=m:logbase)">
-          <m:mo><xsl:call-template name="insert1"/>log</m:mo>
-        </xsl:if>
-        <xsl:if test="*[2]=m:logbase">
-          <m:msub>
-            <m:mo><xsl:call-template name="insert1"/>log</m:mo>
-            <xsl:apply-templates select = "m:logbase" mode = "semantics"/>
-          </m:msub>
-        </xsl:if>
-      </xsl:otherwise>
-    </xsl:choose>
-    <xsl:if test="*[2]=m:logbase">
-      <xsl:apply-templates select = "*[3]" mode = "semantics">
-        <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      </xsl:apply-templates>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:logbase)">
-      <xsl:apply-templates select = "*[2]" mode = "semantics">
-        <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      </xsl:apply-templates>
-    </xsl:if>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:diff[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[2]=m:bvar and m:bvar[*[2]=m:degree]">
-      <m:mfrac><xsl:call-template name="insert1"/>
-        <m:msup>
-          <m:mo>d</m:mo>
-          <xsl:apply-templates select = "m:bvar/m:degree" mode = "semantics"/>
-        </m:msup>
-        <m:mrow>
-          <m:mo>d</m:mo>
-          <m:msup>
-            <xsl:apply-templates select = "m:bvar/*[1]" mode = "semantics"/>
-            <xsl:apply-templates select = "m:bvar/m:degree" mode = "semantics"/>
-          </m:msup>
-        </m:mrow>
-      </m:mfrac>
-    </xsl:if>
-    <xsl:if test="*[2]=m:bvar and not(m:bvar[*[2]=m:degree])">
-      <m:mfrac><xsl:call-template name="insert1"/>
-        <m:mo>d</m:mo>
-        <m:mrow>
-          <m:mo>d</m:mo>
-          <xsl:apply-templates select = "m:bvar/*[1]" mode = "semantics"/>
-        </m:mrow>
-      </m:mfrac>
-    </xsl:if>
-    <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:partialdiff[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:for-each select = "m:bvar">
-      <xsl:if test="*[last()]=m:degree">
-        <m:mfrac><xsl:call-template name="insert1"/>
-          <m:msup>
-             <m:mo>d</m:mo>
-             <xsl:apply-templates select = "m:degree" mode = "semantics"/>
-          </m:msup>
-          <m:mrow>
-            <m:mo>d</m:mo>
-            <m:msup>
-              <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-              <xsl:apply-templates select = "m:degree" mode = "semantics"/>
-            </m:msup>
-          </m:mrow>
-        </m:mfrac>
-      </xsl:if>
-      <xsl:if test="not(*[last()]=m:degree)">
-        <m:mfrac><xsl:call-template name="insert1"/>
-          <m:mo>d</m:mo>
-          <m:mrow>
-            <m:mo>d</m:mo>
-            <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-          </m:mrow>
-        </m:mfrac>
-      </xsl:if>
-    </xsl:for-each>
-    <xsl:apply-templates select = "*[last()]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:lowlimit | m:uplimit | m:bvar | m:degree | m:logbase">
-  <xsl:apply-templates mode = "semantics"/>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:divergence[1] | m:grad[1] | m:curl[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[1]=m:divergence">
-      <m:mo><xsl:call-template name="insert1"/>div</m:mo>
-    </xsl:if>
-    <xsl:if test="*[1]=m:grad">
-    <m:mo><xsl:call-template name="insert1"/>grad</m:mo>
-    </xsl:if>
-    <xsl:if test="*[1]=m:curl">
-    <m:mo><xsl:call-template name="insert1"/>curl</m:mo>
-    </xsl:if>
-    <xsl:choose>
-      <xsl:when test="*[2]=m:ci">
-        <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-      </xsl:when>
-      <xsl:otherwise>
-        <m:mfenced separators="">
-          <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-        </m:mfenced>
-      </xsl:otherwise>
-    </xsl:choose>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:laplacian[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:msup><xsl:call-template name="insert1"/>
-      <m:mo> &#x0394; </m:mo>
-      <m:mn>2</m:mn>
-    </m:msup>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- SET THEORY -->
-
-<xsl:template match = "m:set | m:list">
-  <m:mfenced open="{{" close="}}" separators="">
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="*[1]=m:bvar and *[2]=m:condition">
-      <xsl:apply-templates select="m:bvar" mode = "semantics"/>
-      <m:mo>|</m:mo>
-      <xsl:apply-templates select="m:condition" mode = "semantics"/>
-    </xsl:if>
-    <xsl:if test="*[1]=m:condition and not(child::m:bvar)">
-      <m:mfenced open="" close="" separators=",">
-        <xsl:for-each select = "*[not(self::m:condition) and not(self::m:bvar)]">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-      <m:mo>|</m:mo>
-      <xsl:apply-templates select="m:condition" mode = "semantics"/>
-    </xsl:if>
-    <xsl:if test="not(child::m:bvar) and not(child::m:condition)">
-      <m:mfenced open="" close="" separators=",">
-        <xsl:for-each select = "*">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-    </xsl:if>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:union[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $UNION_PREC or $IN_PREC=$UNION_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="" helm:xref="{@helm:xref}">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="union">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="union">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="union">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:union[1]]" mode="union">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode="semantics">
-    <xsl:with-param name="IN_PREC" select="$UNION_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="Union"/> </m:mo>
-    <xsl:apply-templates select = "." mode="semantics">
-      <xsl:with-param name="IN_PREC" select="$UNION_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:intersect[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $INTERSECT_PREC">
-      <m:mfenced separators="" helm:xref="{@helm:xref}">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="intersect">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="intersect">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="intersect">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:intersect[1]]" mode="intersect">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode="semantics">
-    <xsl:with-param name="IN_PREC" select="$INTERSECT_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo><xsl:call-template name="insert2"/> <mchar name="Intersection"/> </m:mo>
-    <xsl:apply-templates select = "." mode="semantics">
-      <xsl:with-param name="IN_PREC" select="$INTERSECT_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:setdiff[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $SETDIFF_PREC or $IN_PREC=$SETDIFF_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="setdiff">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="setdiff">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:call-template name="insert_xref"/>
-        <xsl:apply-templates select="." mode="setdiff">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:setdiff[1]]" mode="setdiff">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$SETDIFF_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <m:mo><xsl:call-template name="insert1"/>\</m:mo>
-  <xsl:apply-templates select = "*[3]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$SETDIFF_PREC"/>
-    <xsl:with-param name="PARAM" select="$PAR_SAME"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-  </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:card[1]]">
-  <m:mfenced open="|" close="|" separators=",">
-    <xsl:call-template name="insert_xref"/>
-    <xsl:for-each select = "*[position()>1]">
-      <xsl:apply-templates select = "." mode="semantics"/>
-    </xsl:for-each>
-  </m:mfenced>
-</xsl:template>
-
-
-<!-- SEQUENCES AND SERIES -->
-
-<xsl:template match = "m:apply[m:sum[1] | m:product[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:choose>
-      <xsl:when test="*[2]=m:bvar and m:lowlimit and m:uplimit">
-        <m:munderover>
-          <xsl:if test="*[1]=m:sum">
-            <m:mo><xsl:call-template name="insert1"/> <mchar name="Sum"/> </m:mo>
-          </xsl:if>
-          <xsl:if test="*[1]=m:product">
-            <m:mo><xsl:call-template name="insert1"/> <mchar name="Product"/> </m:mo>
-          </xsl:if>
-          <m:mrow>
-            <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-            <m:mo>=</m:mo>
-            <xsl:apply-templates select = "m:lowlimit" mode = "semantics"/>
-          </m:mrow>
-          <xsl:apply-templates select = "m:uplimit" mode = "semantics"/>
-        </m:munderover>
-        <xsl:apply-templates select = "*[5]" mode = "semantics"/>
-      </xsl:when>
-      <xsl:when test="*[2]=m:bvar and *[3]=m:condition">
-        <m:munder>
-          <xsl:if test="*[1]=m:sum">
-            <m:mo><xsl:call-template name="insert1"/> <mchar name="Sum"/> </m:mo>
-          </xsl:if>
-          <xsl:if test="*[1]=m:product">
-            <m:mo><xsl:call-template name="insert1"/> <mchar name="Product"/> </m:mo>
-          </xsl:if>
-          <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-        </m:munder>
-        <xsl:apply-templates select = "*[4]" mode = "semantics"/>
-      </xsl:when>
-    </xsl:choose>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:limit[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:munder>
-      <m:mo><xsl:call-template name="insert1"/>lim</m:mo>
-      <m:mrow>
-        <xsl:if test="*[2]=m:bvar and *[3]=m:lowlimit">
-            <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-            <m:mo> <mchar name="RightArrow"/> </m:mo>
-            <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-        </xsl:if>
-        <xsl:if test="*[2]=m:bvar and *[3]=m:condition">
-          <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-        </xsl:if>
-      </m:mrow>
-    </m:munder>
-    <xsl:apply-templates select = "*[4]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- TRIGONOMETRY -->
-
-<xsl:template match = "m:apply[*[1][self::m:sin | self::m:cos | self::m:tan | self::m:sec | self::m:csc | self::m:cot | self::m:sinh | self::m:cosh | self::m:tanh | self::m:sech | self::m:csch | self::m:coth | self::m:arcsin | self::m:arccos | self::m:arctan]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:if test="not(parent::m:apply[m:power[1]])">
-      <xsl:apply-templates select = "*[1]" mode = "trigonometry"/>
-    </xsl:if>
-    <xsl:if test="parent::m:apply[m:power[1]]">
-      <m:msup>
-        <xsl:apply-templates select = "*[1]" mode = "trigonometry"/>
-        <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-      </m:msup>
-    </xsl:if>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:*" mode = "trigonometry">
-    <xsl:choose>
-      <xsl:when test="self::m:sin">
-        <m:mo>sin</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:cos">
-        <m:mo>cos</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:tan">
-        <m:mo>tan</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:sec">
-        <m:mo>sec</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:csc">
-        <m:mo>csc</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:cot">
-        <m:mo>cot</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:sinh">
-        <m:mo>sinh</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:cosh">
-        <m:mo>cosh</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:tanh">
-        <m:mo>tanh</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:sech">
-        <m:mo>sech</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:csch">
-        <m:mo>csch</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:coth">
-        <m:mo>coth</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:arcsin">
-        <m:mo>arcsin</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:arccos">
-        <m:mo>arccos</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:arctan">
-        <m:mo>arctan</m:mo>
-      </xsl:when>
-    </xsl:choose>
-</xsl:template>
-
-
-<!-- STATISTICS -->
-
-<xsl:template match = "m:apply[m:mean[1]]">
-  <m:mfenced open="&lt;" close="&gt;" separators=",">
-    <xsl:call-template name="insert_xref"/>
-    <xsl:for-each select = "*[position()>1]">
-      <xsl:apply-templates select = "." mode="semantics"/>
-    </xsl:for-each>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:sdev[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/> &#x03c3; </m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:variance[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/> &#x03c3; </m:mo>
-    <m:msup>
-      <m:mfenced separators=",">
-        <xsl:for-each select = "*[position()>1]">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-      <m:mn>2</m:mn>
-    </m:msup>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:median[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>median</m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:mode[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>mode</m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:moment[1]]">
-  <xsl:call-template name="insert_xref"/>
-  <m:mfenced open="&lt;" close="&gt;" separators="">
-    <xsl:if test="*[2]=m:degree">
-      <m:msup>
-        <xsl:apply-templates select="*[3]" mode = "semantics"/>
-        <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      </m:msup>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:degree)">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </xsl:if>
-  </m:mfenced>
-</xsl:template>
-
-
-<!-- LINEAR ALGEBRA -->
-
-<xsl:template match="m:vector">
-  <m:mfenced separators="">
-    <m:mtable>
-      <xsl:for-each select="*">
-        <m:mtd>
-          <xsl:apply-templates select="." mode = "semantics"/>
-        </m:mtd>
-      </xsl:for-each>
-    </m:mtable>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:matrix">
-  <m:mfenced separators="">
-    <m:mtable>
-      <xsl:apply-templates mode = "semantics"/>
-    </m:mtable>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:matrixrow">
-  <m:mtr>
-    <xsl:for-each select="*">
-      <m:mtd>
-        <xsl:apply-templates select="." mode = "semantics"/>
-      </m:mtd>
-    </xsl:for-each>
-  </m:mtr>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:determinant[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <m:mo><xsl:call-template name="insert1"/>det</m:mo>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:transpose[1]]">
-  <m:msup>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-    <m:mo>T</m:mo>
-  </m:msup>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:selector[1]]">
-  <xsl:if test="*[2]=m:matrix and *[3]=m:cn">
-      <xsl:variable name="m" select = "*[3]"/>
-      <xsl:choose>
-        <xsl:when test="*[4]=m:cn">
-          <xsl:variable name="n" select = "*[4]"/>
-          <xsl:copy-of select = "m:matrix/*[position()=$m]/*[position()=$n]"/>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:copy-of select = "m:matrix/*[position()=$m]"/>
-        </xsl:otherwise>
-      </xsl:choose>
-  </xsl:if>
-  <xsl:if test="(*[2]=m:vector or *[2]=m:list) and *[3]=m:cn">
-    <xsl:variable name="m" select = "*[3]"/>
-    <xsl:copy-of select = "*[2]/*[position()=$m]"/>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:vectorproduct[1] | m:scalarproduct[1] | m:outerproduct[1]]">
-  <m:mrow>
-    <xsl:call-template name="insert_xref"/>
-    <xsl:apply-templates select="*[2]" mode = "semantics"/>
-    <xsl:choose>
-      <xsl:when test="m:vectorproduct[1]">
-        <m:mo><xsl:call-template name="insert1"/> <mchar name="Cross"/> </m:mo>
-      </xsl:when>
-      <xsl:when test="m:scalarproduct[1] | m:outerproduct[1]">
-        <m:mo><xsl:call-template name="insert1"/>.</m:mo>
-      </xsl:when>
-    </xsl:choose>
-    <xsl:apply-templates select="*[3]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/mml2mmlv1_0_original.xsl b/helm/style/style_prima_del_linguaggio_naturale/mml2mmlv1_0_original.xsl
deleted file mode 100644 (file)
index 44c34df..0000000
+++ /dev/null
@@ -1,1848 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- ====================================================== -->
-<!-- XSL Transform of MathML content to MathML presentation -->
-<!--    By Igor Rodionov, Computer Science Department of    -->
-<!--   the University of Western Ontario, London, Canada    -->
-<!--  Complies with the W3C Working Draft from Dec.3, 1999  -->
-<!--             Version x.xx from Feb. 18, 2000            -->
-<!--              Comments to:  igor@csd.uwo.ca             -->
-<!--                                                        -->
-<!-- (C) Copyright 1999, 2000 Symbolic Computation          -->
-<!--     Laboratory, University of Western Ontario.         -->
-<!-- ====================================================== -->
-
-<!-- ====================================================== -->
-<!--  May 11, 2000 - HELM group:                            -->
-<!--  Added the namespace prefix to all the output elements -->
-<!--  Changed the mml prefix into m                         -->
-<!--  Swapped math element out of the semantic element      -->
-<!--  Added the declaration of the xlink namespace          --> 
-<!-- ====================================================== -->
-
-<xsl:stylesheet id="mml2mml"
-                version="1.0"
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:m="http://www.w3.org/1998/Math/MathML"
-                xmlns:xlink="http://www.w3.org/1999/xlink">
-
-<xsl:output method="xml" indent="yes" encoding="iso-8859-1"/>
-
-<!-- ***************************************************** -->
-<!--  Parameters affectin' stylesheet's run-time behavior  -->
-<!-- ***************************************************** -->
-
-<!-- SEM_SW: -1 - strip off all semantics
-             0  - pass semantics "as is" (default)
-             1  - add semantics at top level only
-             2  - add semantics at all levels
-             3  - semantics at top level with cross-references
--->
-<!-- HELM: SEM_SW was 0 -->
-<xsl:param name="SEM_SW" select="1"/>
-
-<!-- Miscellaneous Variable Definitions -->
-
-<xsl:variable name="NO" select="0"/>
-<xsl:variable name="YES" select="1"/>
-<xsl:variable name="PAR_NO" select="-7"/>
-<xsl:variable name="PAR_YES" select="-5"/>
-<xsl:variable name="PAR_SAME" select="-3"/>
-<xsl:variable name="NO_PARAM" select="-1"/>
-
-<!-- Operator Precedence Definitions -->
-
-<xsl:variable name="NO_PREC" select="0"/>
-<xsl:variable name="UNION_PREC" select="1"/>
-<xsl:variable name="SETDIFF_PREC" select="1"/>
-<xsl:variable name="INTERSECT_PREC" select="3"/>
-<xsl:variable name="OR_PREC" select="5"/>
-<xsl:variable name="XOR_PREC" select="5"/>
-<xsl:variable name="AND_PREC" select="7"/>
-<xsl:variable name="PLUS_PREC" select="9"/>
-<xsl:variable name="MINUS_PREC" select="9"/>
-<xsl:variable name="MUL_PREC" select="11"/>
-<xsl:variable name="DIV_PREC" select="11"/>
-<xsl:variable name="NEG_PREC" select="13"/>
-<xsl:variable name="FUNCTION_PREC" select="99"/>
-
-
-<!-- THE TOPMOST ELEMENT: MATH -->
-
-<xsl:template match = "m:math">
-  <xsl:choose>
-    <xsl:when test="$SEM_SW>0">
-<!-- HELM: deleted math (we have already inserted at object level) -->
-     <!--<m:math>-->
-      <m:semantics>
-          <xsl:apply-templates mode = "semantics"/>
-       <m:annotation-xml encoding="MathML">
-          <xsl:copy-of select = "*"/>
-       </m:annotation-xml>
-      </m:semantics>
-     <!--</m:math>-->
-    </xsl:when>
-    <xsl:otherwise>
-      <!--<m:math>-->
-        <xsl:apply-templates mode = "semantics"/>
-      <!--</m:math>-->  
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- SEMANTICS -->
-
-<xsl:template match = "m:*" mode = "semantics">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$SEM_SW=-1 and self::m:semantics">
-      <xsl:apply-templates select="*[1]">
-        <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:when test="$SEM_SW=0 and self::m:semantics">
-      <m:semantics>
-        <xsl:apply-templates select="*[1]">
-          <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-        <xsl:copy-of select="m:annotation-xml"/>
-      </m:semantics>
-    </xsl:when>
-    <xsl:when test="$SEM_SW=2">
-      <m:semantics>
-        <xsl:choose>
-          <xsl:when test="self::m:semantics">
-            <xsl:apply-templates select="*[1]">
-              <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-              <xsl:with-param name="PARAM" select="$PARAM"/>
-              <xsl:with-param name="PAREN" select="$PAREN"/>
-              <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-            </xsl:apply-templates>
-            <xsl:copy-of select="m:annotation-xml"/>
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:apply-templates select=".">
-              <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-              <xsl:with-param name="PARAM" select="$PARAM"/>
-              <xsl:with-param name="PAREN" select="$PAREN"/>
-              <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-            </xsl:apply-templates>
-            <m:annotation-xml encoding="MathML">
-              <xsl:copy-of select="."/>
-            </m:annotation-xml>
-          </xsl:otherwise>
-        </xsl:choose>
-      </m:semantics>
-    </xsl:when>
-    <xsl:when test="$SEM_SW=3 and @id">
-      <m:mrow idref="{@id}">
-        <xsl:apply-templates select=".">
-          <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select=".">
-        <xsl:with-param name="IN_PREC" select="$IN_PREC"/>
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:semantics">
-  <xsl:apply-templates select="*[1]" mode = "semantics"/>
-</xsl:template>
-
-
-<!-- BASIC ELEMENTS -->
-
-<xsl:template match = "m:cn">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test=". &lt; 0 and $IN_PREC &gt; 0 and $PAREN=$PAR_NO and $PAR_NO_IGNORE=$NO">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="cn"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select="." mode="cn"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:cn" mode="cn">
-  <xsl:choose>
-    <xsl:when test="@base and (not(@type) or @type='integer' or @type='real')">
-      <m:msub>
-        <m:mn> <xsl:apply-templates mode = "semantics"/> </m:mn>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-    </xsl:when>
-    <xsl:when test="@type='complex' and not(@base) and child::m:sep[1]">
-      <m:mfenced separators="">
-        <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-        <xsl:if test="text()[2] &lt; 0">
-          <m:mo>-</m:mo>
-          <m:mn> <xsl:value-of select="-text()[2]"/> </m:mn>
-        </xsl:if>
-        <xsl:if test="not(text()[2] &lt; 0)">
-          <m:mo>+</m:mo>
-          <xsl:apply-templates select="text()[2]" mode = "semantics"/>
-        </xsl:if>
-        <m:mo> <mchar name="InvisibleTimes"/> </m:mo>
-        <m:mo>i</m:mo>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@type='complex' and @base and child::m:sep[1]">
-      <m:msub>
-        <m:mfenced separators="">
-          <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-          <xsl:if test="text()[2] &lt; 0">
-            <m:mo>-</m:mo>
-            <m:mn> <xsl:value-of select="-text()[2]"/> </m:mn>
-          </xsl:if>
-          <xsl:if test="not(text()[2] &lt; 0)">
-            <m:mo>+</m:mo>
-            <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-          </xsl:if>
-          <m:mo> <mchar name="InvisibleTimes"/> </m:mo>
-          <m:mo>i</m:mo>
-        </m:mfenced>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-    </xsl:when>
-    <xsl:when test="@type='rational' and not(@base) and child::m:sep[1]">
-      <m:mrow>
-        <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-        <m:mo>/</m:mo>
-        <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-      </m:mrow>
-    </xsl:when>
-    <xsl:when test="@type='rational' and @base and child::m:sep[1]">
-      <m:msub>
-        <m:mfenced separators="">
-          <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-          <m:mo>/</m:mo>
-          <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-        </m:mfenced>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-    </xsl:when>
-    <xsl:when test="@type='polar' and not(@base) and child::m:sep[1]">
-      <m:mrow>
-        <m:mo>Polar</m:mo>
-        <m:mfenced separators=",">
-          <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-          <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-        </m:mfenced>
-      </m:mrow>
-    </xsl:when>
-    <xsl:when test="@type='polar' and @base and child::m:sep[1]">
-      <m:msub>
-        <m:mrow>
-          <m:mo>Polar</m:mo>
-          <m:mfenced separators=",">
-            <m:mn> <xsl:apply-templates select="text()[1]" mode = "semantics"/> </m:mn>
-            <m:mn> <xsl:apply-templates select="text()[2]" mode = "semantics"/> </m:mn>
-          </m:mfenced>
-        </m:mrow>
-        <m:mn> <xsl:value-of select="@base"/> </m:mn>
-      </m:msub>
-   </xsl:when>
-    <xsl:otherwise>
-      <m:mn> <xsl:apply-templates mode = "semantics"/> </m:mn>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:ci">
-  <xsl:choose>
-    <xsl:when test="@type='vector' or @type=matrix or @type=set">
-      <m:mi fontweight="bold"> <xsl:apply-templates mode = "semantics"/> </m:mi>
-    </xsl:when>
-    <xsl:otherwise>
-<!-- HELM: aggiunta choose temporanea per HREF invece di:
-<m:mi> <xsl:apply-templates mode = "semantics"/> </m:mi>-->
-     <xsl:choose>
-     <xsl:when test="string(@definitionURL) = &quot;&quot;">
-      <m:mi> <xsl:apply-templates mode = "semantics"/> </m:mi>
-     </xsl:when>
-     <xsl:otherwise>
-      <m:mi xlink:href="{@definitionURL}"> <xsl:apply-templates mode = "semantics"/> </m:mi>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:csymbol">
-  <xsl:choose>
-    <xsl:when test="*[1]">
-      <xsl:copy-of select = "*"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mo> <xsl:apply-templates mode = "semantics"/> </m:mo>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-
-<!-- BASIC CONTENT ELEMENTS -->
-
-<xsl:template match = "m:apply[m:fn[1]]">
-  <m:mrow>
-    <xsl:apply-templates select = "m:fn[1]" mode = "semantics"/>
-    <m:mfenced separators=",">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:fn">
-  <xsl:apply-templates select = "*[1]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-  </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match = "m:interval">
-  <xsl:choose>
-    <xsl:when test="@closure='closed'">
-      <m:mfenced open="[" close="]" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@closure='open'">
-      <m:mfenced separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@closure='open-closed'">
-      <m:mfenced open="(" close="]" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="@closure='closed-open'">
-      <m:mfenced open="[" close=")" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mfenced open="[" close="]" separators=",">
-        <xsl:apply-templates mode = "semantics"/>
-      </m:mfenced>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:*[1][self::m:apply[m:inverse[1]]]]">
-  <m:mrow>
-    <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-    <m:mfenced separators=",">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
- </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[*[1][self::m:inverse]]">
-  <xsl:choose>
-    <xsl:when test="*[2]=m:exp">
-      <m:mo>ln</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:ln | m:log">
-      <m:mo>exp</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sin">
-      <m:mo>arcsin</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:cos">
-      <m:mo>arccos</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:tan">
-      <m:mo>arctan</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sec">
-      <m:mo>arcsec</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:csc">
-      <m:mo>arccsc</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:cot">
-      <m:mo>arccot</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sinh">
-      <m:mo>arcsinh</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:cosh">
-      <m:mo>arccosh</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:tanh">
-      <m:mo>arctanh</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:sech">
-      <m:mo>arcsech</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:csch">
-      <m:mo>arccsch</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:coth">
-      <m:mo>arccoth</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:arcsin">
-      <m:mo>sin</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:arccos">
-      <m:mo>cos</m:mo>
-    </xsl:when>
-    <xsl:when test="*[2]=m:arctan">
-      <m:mo>tan</m:mo>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:msup>
-        <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-        <m:mfenced>
-          <m:mn>-1</m:mn>
-        </m:mfenced>
-      </m:msup>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:sep"/>
-
-<xsl:template match = "m:condition">
-  <xsl:choose>
-    <xsl:when test="parent::m:apply[m:forall[1]]"/>
-    <xsl:otherwise>
-      <xsl:if test="not(*[2])">
-        <xsl:apply-templates mode = "semantics"/>
-      </xsl:if>
-      <xsl:if test="*[2]">
-        <m:mrow>
-          <xsl:apply-templates mode = "semantics"/>
-        </m:mrow>
-      </xsl:if>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:declare"/>
-
-<xsl:template match = "m:lambda">
-  <m:mrow>
-    <m:mo> &#x039b; </m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*">
-        <xsl:choose>
-          <xsl:when test="self::m:ci or self::m:cn">
-            <xsl:apply-templates select = "." mode="semantics"/>
-          </xsl:when>
-          <xsl:otherwise>
-            <m:mrow>
-              <xsl:apply-templates select = "." mode="semantics"/>
-            </m:mrow>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:*[1][self::m:apply[m:compose[1]]]]">
-  <m:mrow>
-    <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-    <m:mfenced separators=",">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
- </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[*[1][self::m:compose]]">
-  <m:mfenced separators="">
-    <xsl:apply-templates select = "m:*[2][self::m:ci[@type='fn'] | self::m:fn]" mode="semantics"/>
-    <xsl:for-each select = "m:*[position()>2][self::m:ci[@type='fn'] | self::m:fn]">
-      <m:mo> <mchar name="SmallCircle"/> </m:mo>
-      <xsl:apply-templates select = "." mode="semantics"/>
-    </xsl:for-each>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:ident">
-  <m:mo>id</m:mo>
-</xsl:template>
-
-
-<!-- ARITHMETIC, ALGEBRA & LOGIC -->
-
-<xsl:template match = "m:apply[m:quotient[1]]">
-  <m:mfenced open="&#x230a;" close="&#x230b;" separators="">
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-    </xsl:apply-templates>
-    <m:mo>/</m:mo>
-    <xsl:apply-templates select="*[3]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:apply[*[1][self::m:exp]]">
-  <m:msup>
-    <m:mo>e</m:mo>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-  </m:msup>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:factorial[1]]">
-  <m:mrow>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-    <m:mo>!</m:mo>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:max[1] | m:min[1]]">
-  <m:mrow>
-    <xsl:if test="*[2]=m:bvar">
-      <m:munder>
-        <xsl:if test="*[1]=m:max">
-          <m:mo>max</m:mo>
-        </xsl:if>
-        <xsl:if test="*[1]=m:min">
-          <m:mo>min</m:mo>
-        </xsl:if>
-        <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      </m:munder>
-      <xsl:if test="*[3]=m:condition">
-        <m:mfenced open="{{" close="}}" separators="">
-          <m:mfenced open="" close="" separators=",">
-            <xsl:for-each select = "*[position()>3]">
-              <xsl:apply-templates select = "." mode="semantics"/>
-            </xsl:for-each>
-          </m:mfenced>
-          <m:mo>|</m:mo>
-          <xsl:apply-templates select="*[3]" mode = "semantics"/>
-        </m:mfenced>
-      </xsl:if>
-      <xsl:if test="not(*[3]=m:condition)">
-        <m:mfenced open="{{" close="}}" separators=",">
-          <xsl:for-each select = "*[position()>2]">
-            <xsl:apply-templates select = "." mode="semantics"/>
-          </xsl:for-each>
-        </m:mfenced>
-      </xsl:if>
-    </xsl:if>
-    <xsl:if test="*[2]=m:condition">
-      <xsl:if test="*[1]=m:max">
-        <m:mo>max</m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:min">
-        <m:mo>min</m:mo>
-      </xsl:if>
-      <m:mfenced open="{{" close="}}" separators="">
-        <xsl:if test="*[3]">
-          <m:mfenced open="" close="" separators=",">
-            <xsl:for-each select = "*[position()>2]">
-              <xsl:apply-templates select = "." mode="semantics"/>
-            </xsl:for-each>
-          </m:mfenced>
-          <m:mo>|</m:mo>
-        </xsl:if>
-        <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      </m:mfenced>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:condition) and not(*[2]=m:bvar)">
-      <xsl:if test="*[1]=m:max">
-        <m:mo>max</m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:min">
-        <m:mo>min</m:mo>
-      </xsl:if>
-      <m:mfenced open="{{" close="}}" separators=",">
-        <xsl:for-each select = "*[position()>1]">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-    </xsl:if>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:minus[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $MINUS_PREC or $IN_PREC=$MINUS_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="minus">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="minus">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="minus">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:minus[1]]" mode="minus">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:if test="not(*[3])">
-    <m:mo>-</m:mo>
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$NEG_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:if>
-  <xsl:if test="*[3]">
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$MINUS_PREC"/>
-      <xsl:with-param name="PARAM" select="$PARAM"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-    </xsl:apply-templates>
-    <m:mo>-</m:mo>
-    <xsl:apply-templates select="*[3]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$MINUS_PREC"/>
-      <xsl:with-param name="PARAM" select="$PAR_SAME"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:plus[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $PLUS_PREC or $IN_PREC=$PLUS_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="plus">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="plus">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="plus">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:plus[1]]" mode="plus">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:if test="*[2]">
-    <xsl:apply-templates select="*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$PLUS_PREC"/>
-      <xsl:with-param name="PARAM" select="$PARAM"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-    </xsl:apply-templates>
-    <xsl:for-each select = "*[position()>2]">
-      <xsl:choose>
-        <xsl:when test=". &lt; 0">
-          <m:mo>-</m:mo>
-          <m:mn> <xsl:value-of select="-."/> </m:mn>
-        </xsl:when>
-        <xsl:when test="self::m:apply[m:minus[1]] and not(*[3])">
-          <xsl:apply-templates select="." mode = "semantics">
-            <xsl:with-param name="IN_PREC" select="$PLUS_PREC"/>
-            <xsl:with-param name="PAREN" select="$PAREN"/>
-            <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-          </xsl:apply-templates>
-        </xsl:when>
-        <xsl:otherwise>
-          <m:mo>+</m:mo>
-          <xsl:apply-templates select="." mode = "semantics">
-            <xsl:with-param name="IN_PREC" select="$PLUS_PREC"/>
-            <xsl:with-param name="PAREN" select="$PAREN"/>
-            <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-          </xsl:apply-templates>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:for-each>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:power[1]]">
-  <xsl:choose>
-    <xsl:when test="*[2]=m:apply[m:ln[1] | m:log[1] | m:abs[1] | m:gcd[1] | m:sin[1] | m:cos[1] | m:tan[1] | m:sec[1] | m:csc[1] | m:cot[1] | m:sinh[1] | m:cosh[1] | m:tanh[1] | m:sech[1] | m:csch[1] | m:coth[1] | m:arcsin[1] | m:arccos[1] | m:arctan[1]]">
-      <xsl:apply-templates select="*[2]" mode = "semantics"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:msup>
-        <xsl:apply-templates select = "*[2]" mode = "semantics">
-          <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-        </xsl:apply-templates>
-        <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-      </m:msup>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:rem[1] | m:divide[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $DIV_PREC or $IN_PREC=$DIV_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="remdiv">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="remdiv">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="remdiv">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:rem[1] | m:divide[1]]" mode="remdiv">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$DIV_PREC"/>
-      <xsl:with-param name="PARAM" select="$PARAM"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:if test="m:rem">
-    <m:mo>%</m:mo>
-  </xsl:if>
-  <xsl:if test="m:divide">
-    <m:mo>/</m:mo>
-  </xsl:if>
-  <xsl:apply-templates select = "*[3]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$DIV_PREC"/>
-    <xsl:with-param name="PARAM" select="$PAR_SAME"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-  </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:times[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $MUL_PREC or $IN_PREC=$MUL_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="times">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="times">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="times">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:times[1]]" mode="times">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$MUL_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:if test="*[3]">
-    <xsl:for-each select = "*[position()>2]">
-      <m:mo> <mchar name="InvisibleTimes"/> </m:mo>
-      <xsl:apply-templates select="." mode = "semantics">
-        <xsl:with-param name="IN_PREC" select="$MUL_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-      </xsl:apply-templates>
-    </xsl:for-each>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:root[1]]">
-  <m:msqrt>
-    <xsl:if test="*[2]=m:degree">
-      <xsl:apply-templates select="*[3]" mode = "semantics"/>
-      <xsl:apply-templates select="*[2]" mode = "semantics"/>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:degree)">
-      <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      <m:mn>2</m:mn>
-    </xsl:if>
-  </m:msqrt>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:gcd[1]]">
-  <m:mrow>
-    <xsl:if test="not(parent::m:apply[m:power[1]])">
-      <m:mo>gcd</m:mo>
-    </xsl:if>
-    <xsl:if test="parent::m:apply[m:power[1]]">
-      <m:msup>
-        <m:mo>gcd</m:mo>
-        <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-      </m:msup>
-    </xsl:if>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:and[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $AND_PREC">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="and">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="and">
-        <xsl:with-param name="PARAM" select="$IN_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="and">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:and[1]]" mode="and">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$AND_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo> <mchar name="wedge"/> </m:mo>
-    <xsl:apply-templates select="." mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$AND_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:or[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $OR_PREC">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="or">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="or">
-        <xsl:with-param name="PARAM" select="$IN_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="or">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:or[1]]" mode="or">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$OR_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo> <mchar name="vee"/> </m:mo>
-    <xsl:apply-templates select="." mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$OR_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:xor[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $XOR_PREC">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="xor">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAR_YES"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="xor">
-        <xsl:with-param name="PARAM" select="$IN_PREC"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="xor">
-          <xsl:with-param name="PARAM" select="$IN_PREC"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:xor[1]]" mode="xor">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select="*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$XOR_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo> <mchar name="xor"/> </m:mo>
-    <xsl:apply-templates select="." mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$XOR_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:not[1]]">
-  <m:mrow>
-    <m:mo>not</m:mo>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-    </xsl:apply-templates>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:forall[1]]">
-  <m:mrow>
-    <m:mo>for all</m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "m:bvar">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-    <xsl:if test="m:condition">
-      <m:mo>:</m:mo>
-      <xsl:apply-templates select = "m:condition/*" mode = "semantics"/>
-      <m:mo>,</m:mo>
-    </xsl:if>
-    <xsl:apply-templates select = "*[position()>1 and not(self::m:bvar) and not(self::m:condition)]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:exists[1]]">
-  <m:mrow>
-    <m:mo> <mchar name="Exists"/> </m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "m:bvar">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-    <xsl:if test="m:condition">
-      <m:mo>,</m:mo>
-      <xsl:apply-templates select = "m:condition/*" mode = "semantics"/>
-    </xsl:if>
-    <m:mo>:</m:mo>
-    <xsl:apply-templates select = "*[position()>1 and not(self::m:bvar) and not(self::m:condition)]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:abs[1]]">
-  <xsl:if test="not(parent::m:apply[m:power[1]])">
-    <m:mfenced open="|" close="|" separators="">
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mfenced>
-  </xsl:if>
-  <xsl:if test="parent::m:apply[m:power[1]]">
-    <m:msup>
-      <m:mfenced open="|" close="|" separators="">
-        <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-      </m:mfenced>
-      <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-    </m:msup>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:conjugate[1]]">
-  <m:mover>
-    <m:mrow>
-      <xsl:apply-templates select = "*[position()>1]" mode = "semantics"/>
-    </m:mrow>
-    <m:mo> <mchar name="UnderBar"/> </m:mo>
-  </m:mover>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:arg[1] | m:real[1] | m:imaginary[1]]">
-  <m:mrow>
-    <xsl:choose>
-      <xsl:when test="m:arg">
-        <m:mo>arg</m:mo>
-      </xsl:when>
-      <xsl:when test="m:real">
-        <m:mo>Real</m:mo>
-      </xsl:when>
-      <xsl:when test="m:imaginary">
-        <m:mo>Imaginary</m:mo>
-      </xsl:when>
-    </xsl:choose>
-    <m:mfenced separators="">
-      <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- RELATIONS -->
-
-<xsl:template match = "m:apply[m:neq | m:approx | m:tendsto | m:implies | m:in | m:notin | m:notsubset | m:notprsubset | m:subset | m:prsubset | m:eq | m:gt | m:lt | m:geq | m:leq | m:equivalent]">
-  <m:mrow>
-    <xsl:if test="*[1]=m:neq or *[1]=m:approx or *[1]=m:tendsto or *[1]=m:implies or *[1]=m:in or *[1]=m:notin or *[1]=m:notsubset or *[1]=m:notprsubset">
-      <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-      <xsl:if test="*[1]=m:neq">
-        <m:mo> <mchar name="NotEqual"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:approx">
-        <m:mo> <mchar name="approxeq"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:tendsto">
-        <m:mo> <mchar name="RightArrow"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:implies">
-        <m:mo> <mchar name="DoubleRightArrow"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:in">
-        <m:mo> <mchar name="Element"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:notin">
-        <m:mo> <mchar name="NotElement"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:notsubset">
-        <m:mo> <mchar name="NotSubset"/> </m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:notprsubset">
-        <m:mo> <mchar name="NotSubsetEqual"/> </m:mo>
-      </xsl:if>
-      <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-      <xsl:if test="*[1]=m:tendsto and m:tendsto[1][@type='below']">
-        <m:mo>-</m:mo>
-      </xsl:if>
-      <xsl:if test="*[1]=m:tendsto and m:tendsto[1][@type='above']">
-        <m:mo>+</m:mo>
-      </xsl:if>
-    </xsl:if>
-    <xsl:if test="*[1]=m:subset or *[1]=m:prsubset or *[1]=m:eq or *[1]=m:gt or *[1]=m:lt or *[1]=m:geq or *[1]=m:leq or *[1]=m:equivalent">
-      <xsl:apply-templates select = "*[2]" mode="semantics"/>
-      <xsl:for-each select = "*[position()>2]">
-        <xsl:if test="../*[self::m:subset][1]">
-          <m:mo>  <mchar name="SubsetEqual"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:prsubset][1]">
-          <m:mo> <mchar name="subset"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:eq][1]">
-          <m:mo>=</m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:gt][1]">
-          <m:mo>&gt;</m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:lt][1]">
-          <m:mo>&lt;</m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:geq][1]">
-          <m:mo> <mchar name="geq"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:leq][1]">
-          <m:mo> <mchar name="leq"/> </m:mo>
-        </xsl:if>
-        <xsl:if test="../*[self::m:equivalent][1]">
-          <m:mo> <mchar name="Congruent"/> </m:mo>
-        </xsl:if>
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </xsl:if>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- CALCULUS -->
-
-<xsl:template match = "m:apply[*[1][self::m:ln]]">
-  <m:mrow>
-    <xsl:choose>
-      <xsl:when test="parent::m:apply[m:power[1]]">
-        <m:msup>
-          <m:mo>ln</m:mo>
-          <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-        </m:msup>
-      </xsl:when>
-      <xsl:otherwise>
-        <m:mo>ln</m:mo>
-      </xsl:otherwise>
-    </xsl:choose>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-    </xsl:apply-templates>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:log[1]]">
-  <m:mrow>
-    <xsl:choose>
-      <xsl:when test="parent::m:apply[m:power[1]]">
-        <xsl:if test="not(*[2]=m:logbase)">
-          <m:msup>
-            <m:mo>log</m:mo>
-            <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-          </m:msup>
-        </xsl:if>
-        <xsl:if test="*[2]=m:logbase">
-          <m:msubsup>
-            <m:mo>log</m:mo>
-            <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-            <xsl:apply-templates select = "m:logbase" mode = "semantics"/>
-          </m:msubsup>
-        </xsl:if>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:if test="not(*[2]=m:logbase)">
-          <m:mo>log</m:mo>
-        </xsl:if>
-        <xsl:if test="*[2]=m:logbase">
-          <m:msub>
-            <m:mo>log</m:mo>
-            <xsl:apply-templates select = "m:logbase" mode = "semantics"/>
-          </m:msub>
-        </xsl:if>
-      </xsl:otherwise>
-    </xsl:choose>
-    <xsl:if test="*[2]=m:logbase">
-      <xsl:apply-templates select = "*[3]" mode = "semantics">
-        <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      </xsl:apply-templates>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:logbase)">
-      <xsl:apply-templates select = "*[2]" mode = "semantics">
-        <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      </xsl:apply-templates>
-    </xsl:if>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:diff[1]]">
-  <m:mrow>
-    <xsl:if test="*[2]=m:bvar and m:bvar[*[2]=m:degree]">
-      <m:mfrac>
-        <m:msup>
-          <m:mo>d</m:mo>
-          <xsl:apply-templates select = "m:bvar/m:degree" mode = "semantics"/>
-        </m:msup>
-        <m:mrow>
-          <m:mo>d</m:mo>
-          <m:msup>
-            <xsl:apply-templates select = "m:bvar/*[1]" mode = "semantics"/>
-            <xsl:apply-templates select = "m:bvar/m:degree" mode = "semantics"/>
-          </m:msup>
-        </m:mrow>
-      </m:mfrac>
-    </xsl:if>
-    <xsl:if test="*[2]=m:bvar and not(m:bvar[*[2]=m:degree])">
-      <m:mfrac>
-        <m:mo>d</m:mo>
-        <m:mrow>
-          <m:mo>d</m:mo>
-          <xsl:apply-templates select = "m:bvar/*[1]" mode = "semantics"/>
-        </m:mrow>
-      </m:mfrac>
-    </xsl:if>
-    <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:partialdiff[1]]">
-  <m:mrow>
-    <xsl:for-each select = "m:bvar">
-      <xsl:if test="*[last()]=m:degree">
-        <m:mfrac>
-          <m:msup>
-             <m:mo>d</m:mo>
-             <xsl:apply-templates select = "m:degree" mode = "semantics"/>
-          </m:msup>
-          <m:mrow>
-            <m:mo>d</m:mo>
-            <m:msup>
-              <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-              <xsl:apply-templates select = "m:degree" mode = "semantics"/>
-            </m:msup>
-          </m:mrow>
-        </m:mfrac>
-      </xsl:if>
-      <xsl:if test="not(*[last()]=m:degree)">
-        <m:mfrac>
-          <m:mo>d</m:mo>
-          <m:mrow>
-            <m:mo>d</m:mo>
-            <xsl:apply-templates select = "*[1]" mode = "semantics"/>
-          </m:mrow>
-        </m:mfrac>
-      </xsl:if>
-    </xsl:for-each>
-    <xsl:apply-templates select = "*[last()]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:lowlimit | m:uplimit | m:bvar | m:degree | m:logbase">
-  <xsl:apply-templates mode = "semantics"/>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:divergence[1] | m:grad[1] | m:curl[1]]">
-  <m:mrow>
-    <xsl:if test="*[1]=m:divergence">
-      <m:mo>div</m:mo>
-    </xsl:if>
-    <xsl:if test="*[1]=m:grad">
-    <m:mo>grad</m:mo>
-    </xsl:if>
-    <xsl:if test="*[1]=m:curl">
-    <m:mo>curl</m:mo>
-    </xsl:if>
-    <xsl:choose>
-      <xsl:when test="*[2]=m:ci">
-        <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-      </xsl:when>
-      <xsl:otherwise>
-        <m:mfenced separators="">
-          <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-        </m:mfenced>
-      </xsl:otherwise>
-    </xsl:choose>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:laplacian[1]]">
-  <m:mrow>
-    <m:msup>
-      <m:mo> &#x0394; </m:mo>
-      <m:mn>2</m:mn>
-    </m:msup>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- SET THEORY -->
-
-<xsl:template match = "m:set | m:list">
-  <m:mfenced open="{{" close="}}" separators="">
-    <xsl:if test="*[1]=m:bvar and *[2]=m:condition">
-      <xsl:apply-templates select="m:bvar" mode = "semantics"/>
-      <m:mo>|</m:mo>
-      <xsl:apply-templates select="m:condition" mode = "semantics"/>
-    </xsl:if>
-    <xsl:if test="*[1]=m:condition and not(child::m:bvar)">
-      <m:mfenced open="" close="" separators=",">
-        <xsl:for-each select = "*[not(self::m:condition) and not(self::m:bvar)]">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-      <m:mo>|</m:mo>
-      <xsl:apply-templates select="m:condition" mode = "semantics"/>
-    </xsl:if>
-    <xsl:if test="not(child::m:bvar) and not(child::m:condition)">
-      <m:mfenced open="" close="" separators=",">
-        <xsl:for-each select = "*">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-    </xsl:if>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:union[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $UNION_PREC or $IN_PREC=$UNION_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="union">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="union">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="union">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:union[1]]" mode="union">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode="semantics">
-    <xsl:with-param name="IN_PREC" select="$UNION_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo> <mchar name="Union"/> </m:mo>
-    <xsl:apply-templates select = "." mode="semantics">
-      <xsl:with-param name="IN_PREC" select="$UNION_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:intersect[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $INTERSECT_PREC">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="intersect">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="intersect">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="intersect">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:intersect[1]]" mode="intersect">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode="semantics">
-    <xsl:with-param name="IN_PREC" select="$INTERSECT_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <xsl:for-each select = "*[position()>2]">
-    <m:mo> <mchar name="Intersection"/> </m:mo>
-    <xsl:apply-templates select = "." mode="semantics">
-      <xsl:with-param name="IN_PREC" select="$INTERSECT_PREC"/>
-      <xsl:with-param name="PAREN" select="$PAREN"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:setdiff[1]]">
-  <xsl:param name="IN_PREC" select="$NO_PREC"/>
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:choose>
-    <xsl:when test="$IN_PREC &gt; $SETDIFF_PREC or $IN_PREC=$SETDIFF_PREC and $PARAM=$PAR_SAME">
-      <m:mfenced separators="">
-        <xsl:apply-templates select="." mode="setdiff">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mfenced>
-    </xsl:when>
-    <xsl:when test="$IN_PREC &gt; $NO_PREC and $IN_PREC &lt; $FUNCTION_PREC and not($SEM_SW=2)">
-      <xsl:apply-templates select="." mode="setdiff">
-        <xsl:with-param name="PARAM" select="$PARAM"/>
-        <xsl:with-param name="PAREN" select="$PAREN"/>
-        <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-      </xsl:apply-templates>
-    </xsl:when>
-    <xsl:otherwise>
-      <m:mrow>
-        <xsl:apply-templates select="." mode="setdiff">
-          <xsl:with-param name="PARAM" select="$PARAM"/>
-          <xsl:with-param name="PAREN" select="$PAREN"/>
-          <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-        </xsl:apply-templates>
-      </m:mrow>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:setdiff[1]]" mode="setdiff">
-  <xsl:param name="PARAM" select="$NO_PARAM"/>
-  <xsl:param name="PAREN" select="$PAR_NO"/>
-  <xsl:param name="PAR_NO_IGNORE" select="$YES"/>
-  <xsl:apply-templates select = "*[2]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$SETDIFF_PREC"/>
-    <xsl:with-param name="PARAM" select="$PARAM"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$PAR_NO_IGNORE"/>
-  </xsl:apply-templates>
-  <m:mo>\</m:mo>
-  <xsl:apply-templates select = "*[3]" mode = "semantics">
-    <xsl:with-param name="IN_PREC" select="$SETDIFF_PREC"/>
-    <xsl:with-param name="PARAM" select="$PAR_SAME"/>
-    <xsl:with-param name="PAREN" select="$PAREN"/>
-    <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-  </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:card[1]]">
-  <m:mfenced open="|" close="|" separators=",">
-    <xsl:for-each select = "*[position()>1]">
-      <xsl:apply-templates select = "." mode="semantics"/>
-    </xsl:for-each>
-  </m:mfenced>
-</xsl:template>
-
-
-<!-- SEQUENCES AND SERIES -->
-
-<xsl:template match = "m:apply[m:sum[1] | m:product[1]]">
-  <m:mrow>
-    <xsl:choose>
-      <xsl:when test="*[2]=m:bvar and m:lowlimit and m:uplimit">
-        <m:munderover>
-          <xsl:if test="*[1]=m:sum">
-            <m:mo> <mchar name="Sum"/> </m:mo>
-          </xsl:if>
-          <xsl:if test="*[1]=m:product">
-            <m:mo> <mchar name="Product"/> </m:mo>
-          </xsl:if>
-          <m:mrow>
-            <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-            <m:mo>=</m:mo>
-            <xsl:apply-templates select = "m:lowlimit" mode = "semantics"/>
-          </m:mrow>
-          <xsl:apply-templates select = "m:uplimit" mode = "semantics"/>
-        </m:munderover>
-        <xsl:apply-templates select = "*[5]" mode = "semantics"/>
-      </xsl:when>
-      <xsl:when test="*[2]=m:bvar and *[3]=m:condition">
-        <m:munder>
-          <xsl:if test="*[1]=m:sum">
-            <m:mo> <mchar name="Sum"/> </m:mo>
-          </xsl:if>
-          <xsl:if test="*[1]=m:product">
-            <m:mo> <mchar name="Product"/> </m:mo>
-          </xsl:if>
-          <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-        </m:munder>
-        <xsl:apply-templates select = "*[4]" mode = "semantics"/>
-      </xsl:when>
-    </xsl:choose>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:limit[1]]">
-  <m:mrow>
-    <m:munder>
-      <m:mo>lim</m:mo>
-      <m:mrow>
-        <xsl:if test="*[2]=m:bvar and *[3]=m:lowlimit">
-            <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-            <m:mo> <mchar name="RightArrow"/> </m:mo>
-            <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-        </xsl:if>
-        <xsl:if test="*[2]=m:bvar and *[3]=m:condition">
-          <xsl:apply-templates select = "*[3]" mode = "semantics"/>
-        </xsl:if>
-      </m:mrow>
-    </m:munder>
-    <xsl:apply-templates select = "*[4]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-
-<!-- TRIGONOMETRY -->
-
-<xsl:template match = "m:apply[*[1][self::m:sin | self::m:cos | self::m:tan | self::m:sec | self::m:csc | self::m:cot | self::m:sinh | self::m:cosh | self::m:tanh | self::m:sech | self::m:csch | self::m:coth | self::m:arcsin | self::m:arccos | self::m:arctan]]">
-  <m:mrow>
-    <xsl:if test="not(parent::m:apply[m:power[1]])">
-      <xsl:apply-templates select = "*[1]" mode = "trigonometry"/>
-    </xsl:if>
-    <xsl:if test="parent::m:apply[m:power[1]]">
-      <m:msup>
-        <xsl:apply-templates select = "*[1]" mode = "trigonometry"/>
-        <xsl:apply-templates select = "../*[3]" mode = "semantics"/>
-      </m:msup>
-    </xsl:if>
-    <xsl:apply-templates select = "*[2]" mode = "semantics">
-      <xsl:with-param name="IN_PREC" select="$FUNCTION_PREC"/>
-      <xsl:with-param name="PAR_NO_IGNORE" select="$NO"/>
-    </xsl:apply-templates>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:*" mode = "trigonometry">
-    <xsl:choose>
-      <xsl:when test="self::m:sin">
-        <m:mo>sin</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:cos">
-        <m:mo>cos</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:tan">
-        <m:mo>tan</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:sec">
-        <m:mo>sec</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:csc">
-        <m:mo>csc</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:cot">
-        <m:mo>cot</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:sinh">
-        <m:mo>sinh</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:cosh">
-        <m:mo>cosh</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:tanh">
-        <m:mo>tanh</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:sech">
-        <m:mo>sech</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:csch">
-        <m:mo>csch</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:coth">
-        <m:mo>coth</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:arcsin">
-        <m:mo>arcsin</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:arccos">
-        <m:mo>arccos</m:mo>
-      </xsl:when>
-      <xsl:when test="self::m:arctan">
-        <m:mo>arctan</m:mo>
-      </xsl:when>
-    </xsl:choose>
-</xsl:template>
-
-
-<!-- STATISTICS -->
-
-<xsl:template match = "m:apply[m:mean[1]]">
-  <m:mfenced open="&lt;" close="&gt;" separators=",">
-    <xsl:for-each select = "*[position()>1]">
-      <xsl:apply-templates select = "." mode="semantics"/>
-    </xsl:for-each>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:sdev[1]]">
-  <m:mrow>
-    <m:mo> &#x03c3; </m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:variance[1]]">
-  <m:mrow>
-    <m:mo> &#x03c3; </m:mo>
-    <m:msup>
-      <m:mfenced separators=",">
-        <xsl:for-each select = "*[position()>1]">
-          <xsl:apply-templates select = "." mode="semantics"/>
-        </xsl:for-each>
-      </m:mfenced>
-      <m:mn>2</m:mn>
-    </m:msup>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:median[1]]">
-  <m:mrow>
-    <m:mo>median</m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:mode[1]]">
-  <m:mrow>
-    <m:mo>mode</m:mo>
-    <m:mfenced separators=",">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </m:mfenced>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:moment[1]]">
-  <m:mfenced open="&lt;" close="&gt;" separators="">
-    <xsl:if test="*[2]=m:degree">
-      <m:msup>
-        <xsl:apply-templates select="*[3]" mode = "semantics"/>
-        <xsl:apply-templates select="*[2]" mode = "semantics"/>
-      </m:msup>
-    </xsl:if>
-    <xsl:if test="not(*[2]=m:degree)">
-      <xsl:for-each select = "*[position()>1]">
-        <xsl:apply-templates select = "." mode="semantics"/>
-      </xsl:for-each>
-    </xsl:if>
-  </m:mfenced>
-</xsl:template>
-
-
-<!-- LINEAR ALGEBRA -->
-
-<xsl:template match="m:vector">
-  <m:mfenced separators="">
-    <m:mtable>
-      <xsl:for-each select="*">
-        <m:mtd>
-          <xsl:apply-templates select="." mode = "semantics"/>
-        </m:mtd>
-      </xsl:for-each>
-    </m:mtable>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:matrix">
-  <m:mfenced separators="">
-    <m:mtable>
-      <xsl:apply-templates mode = "semantics"/>
-    </m:mtable>
-  </m:mfenced>
-</xsl:template>
-
-<xsl:template match = "m:matrixrow">
-  <m:mtr>
-    <xsl:for-each select="*">
-      <m:mtd>
-        <xsl:apply-templates select="." mode = "semantics"/>
-      </m:mtd>
-    </xsl:for-each>
-  </m:mtr>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:determinant[1]]">
-  <m:mrow>
-    <m:mo>det</m:mo>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:transpose[1]]">
-  <m:msup>
-    <xsl:apply-templates select = "*[2]" mode = "semantics"/>
-    <m:mo>T</m:mo>
-  </m:msup>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:selector[1]]">
-  <xsl:if test="*[2]=m:matrix and *[3]=m:cn">
-      <xsl:variable name="m" select = "*[3]"/>
-      <xsl:choose>
-        <xsl:when test="*[4]=m:cn">
-          <xsl:variable name="n" select = "*[4]"/>
-          <xsl:copy-of select = "m:matrix/*[position()=$m]/*[position()=$n]"/>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:copy-of select = "m:matrix/*[position()=$m]"/>
-        </xsl:otherwise>
-      </xsl:choose>
-  </xsl:if>
-  <xsl:if test="(*[2]=m:vector or *[2]=m:list) and *[3]=m:cn">
-    <xsl:variable name="m" select = "*[3]"/>
-    <xsl:copy-of select = "*[2]/*[position()=$m]"/>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match = "m:apply[m:vectorproduct[1] | m:scalarproduct[1] | m:outerproduct[1]]">
-  <m:mrow>
-    <xsl:apply-templates select="*[2]" mode = "semantics"/>
-    <xsl:choose>
-      <xsl:when test="m:vectorproduct[1]">
-        <m:mo> <mchar name="Cross"/> </m:mo>
-      </xsl:when>
-      <xsl:when test="m:scalarproduct[1] | m:outerproduct[1]">
-        <m:mo>.</m:mo>
-      </xsl:when>
-    </xsl:choose>
-    <xsl:apply-templates select="*[3]" mode = "semantics"/>
-  </m:mrow>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/mmlextension.xsl b/helm/style/style_prima_del_linguaggio_naturale/mmlextension.xsl
deleted file mode 100644 (file)
index 39d2f5c..0000000
+++ /dev/null
@@ -1,1128 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- Extension to the XSLT version 0.07 of MathML content to presentation: -->
-<!-- First draft: February 19 2000, Andrea Asperti, Irene Schena           -->
-<!-- Revised: March 3 2000, Irene Schena                                   -->
-<!-- Revised: March 15 2000, Claudio Sacerdoti Coen, Irene Schena          -->
-<!-- Revised: March 21 2000, Irene Schena                                  -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:import href="mml2mmlv1_0.xsl"/>
-
-<!--***********************************************************************-->
-<!-- Parameter affecting line-breaking                                     -->
-<!--***********************************************************************-->
-
-<xsl:variable name="framewidth" select="30"/>
-
-<!--***********************************************************************-->
-<!-- Gli oggetti sono stampati come mtext all'interno di una marca toplevel-->
-<!-- math ma al di fuori di semantics. Ora vi sono tanti semantics quanti  -->
-<!-- sono i termini: la presentation per un termine e' generata come primo -->
-<!-- figlio di un semantics e l'originario content viene inserito nel      -->
-<!-- nel secondo figlio di semantics, annotation-xml                       -->
-<!--***********************************************************************-->
-
-<!--**********************-->
-<!--        OBJECTS       -->
-<!--**********************-->
-
-<xsl:template match="/">
- <xsl:processing-instruction name="cocoon-format">type="text/xhtml"</xsl:processing-instruction>
- <xsl:apply-templates select="*"/>
-</xsl:template>
-
-<!-- DEFINITION -->
-
-<xsl:template match="Definition">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>DEFINITION <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>) OF TYPE</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="type/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>AS</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="body/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!-- AXIOM -->
-
-<xsl:template match="Axiom">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>AXIOM <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>) OF TYPE</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="type/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!-- UNFINISHED PROOF -->
-
-<xsl:template match="CurrentProof">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>UNFINISHED PROOF <xsl:value-of select="@name"/>(<xsl:if test="string(./Params) != &quot;&quot;"><xsl:value-of select="Params"/></xsl:if>)</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>THESIS:</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="type/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>CONJECTURES:</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <xsl:for-each select="Conjecture">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <m:mtext><xsl:value-of select="./@no"/>:</m:mtext>
-         <xsl:apply-templates select="./*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      </xsl:for-each>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>CORRESPONDING PROOF:</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="body/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!-- MUTUAL INDUCTIVE DEFINITION -->
-
-<xsl:template match="InductiveDefinition">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-     <xsl:for-each select="InductiveType">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <xsl:choose>
-         <xsl:when test="position() = 1">
-          <xsl:choose>
-          <xsl:when test="string(./@inductive) = &quot;true&quot;">
-           <m:mtext>INDUCTIVE DEFINITION</m:mtext>
-          </xsl:when>
-          <xsl:otherwise>
-           <m:mtext>COINDUCTIVE DEFINITION</m:mtext>
-          </xsl:otherwise>
-          </xsl:choose>  
-         </xsl:when>
-         <xsl:otherwise>
-          <m:mtext>AND</m:mtext>
-         </xsl:otherwise>
-         </xsl:choose>
-         <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-         <m:mtext><xsl:value-of select="./@name"/>(<xsl:if test="string(../Params) != &quot;&quot;"><xsl:value-of select="../Params"/></xsl:if>)</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow> 
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <m:mtext>[</m:mtext>
-         <xsl:choose>
-         <xsl:when test="string(../Param) != &quot;&quot;">         
-          <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-           <xsl:for-each select="../Param">
-            <m:mtr>
-             <m:mtd>
-              <m:mrow>   
-               <m:mi><xsl:value-of select="./@name"/></m:mi>
-               <m:mo>:</m:mo>
-               <xsl:apply-templates select="*"/>
-              </m:mrow>
-             </m:mtd>
-            </m:mtr>
-           </xsl:for-each>
-            <m:mtr>
-             <m:mtd>
-              <m:mrow>
-               <m:mtext>]</m:mtext>
-              </m:mrow>
-             </m:mtd>
-            </m:mtr>
-          </m:mtable>
-         </xsl:when>
-         <xsl:otherwise>
-          <m:mtext>]</m:mtext>
-         </xsl:otherwise>
-         </xsl:choose>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>OF ARITY</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="./arity/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>BUILT FROM</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <xsl:for-each select="./Constructor">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <xsl:choose>
-         <xsl:when test="position() = 1">
-          <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         </xsl:when>
-         <xsl:otherwise>
-          <m:mtext>|</m:mtext>
-          <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-         </xsl:otherwise>
-         </xsl:choose>
-         <m:mtext><xsl:value-of select="./@name"/> OF</m:mtext>
-         <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-         <xsl:apply-templates select="./*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      </xsl:for-each>
-     </xsl:for-each>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!-- VARIABLE -->
-
-<xsl:template match="Variable">
-    <m:math>
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left" helm:xref="{@helm:xref}">
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mtext>VARIABLE <xsl:value-of select="@name"/> OF TYPE</m:mtext>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-        <m:mrow>
-         <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-         <xsl:apply-templates select="type/*[1]"/>
-        </m:mrow>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </m:math>
-</xsl:template>
-
-<!--**********************-->
-<!--        TERMS         -->
-<!--**********************-->
-
-<xsl:template match="m:bvar">
- <xsl:choose>
-  <xsl:when test="m:type">
-   <xsl:variable name="charlength">
-    <xsl:apply-templates select="m:ci" mode="charcount"/>
-   </xsl:variable>
-   <xsl:choose>
-    <xsl:when test="$charlength >= $framewidth">
-     <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-      <m:mtr>
-       <m:mtd>
-        <xsl:apply-templates select="m:ci"/>
-        <m:mo>:</m:mo>
-       </m:mtd>
-      </m:mtr>
-      <m:mtr>
-       <m:mtd>
-         <xsl:apply-templates select="m:type"/>
-       </m:mtd>
-      </m:mtr>
-     </m:mtable>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:apply-templates select="m:ci"/>
-     <m:mo>:</m:mo>
-     <xsl:apply-templates select="m:type"/>
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:apply-templates select="m:ci"/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-<!-- CSYMBOL -->
-
-<xsl:template match="m:apply[m:csymbol]">
-    <xsl:variable name="name"><xsl:value-of select="m:csymbol"/></xsl:variable>
-    <xsl:variable name="charlength"><xsl:apply-templates select="m:csymbol" mode="charcount"/></xsl:variable>
-    <m:mrow>
-     <xsl:if test="@helm:xref">
-      <xsl:attribute name="helm:xref"><xsl:value-of select="@helm:xref"/></xsl:attribute>
-     </xsl:if>
-     <xsl:choose>
-      <xsl:when test="$name='prod'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-            <m:mo color="Blue">&#x03a0;</m:mo>
-            <xsl:apply-templates select="m:bvar"/>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>.</m:mo>
-            <xsl:apply-templates select="*[position()=3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo color="Blue">&#x03a0;</m:mo>
-        <xsl:apply-templates select="m:bvar/m:ci"/>
-        <m:mo>:</m:mo>
-        <xsl:apply-templates select="m:bvar/m:type"/>
-        <m:mo>.</m:mo>
-        <xsl:apply-templates select="*[position()=3]"/>
-       </xsl:otherwise>
-       </xsl:choose> 
-      </xsl:when>
-      <xsl:when test="$name='arrow'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">(</m:mo>
-            <xsl:apply-templates select="*[position()=2]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo color="Blue">&#x2192;</m:mo>
-            <xsl:apply-templates select="*[position()=3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">)</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo stretchy="false">(</m:mo>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <m:mo color="Blue">&#x2192;</m:mo>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <m:mo stretchy="false">)</m:mo>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='app'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">(</m:mo>
-            <xsl:apply-templates select="*[position()=2]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <xsl:for-each select="*[position()>2]">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mphantom><m:mtext>(</m:mtext></m:mphantom>
-            <xsl:apply-templates select="."/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:for-each>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">)</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo stretchy="false">(</m:mo>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <xsl:for-each select="*[position()>2]">
-         <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-         <xsl:apply-templates select="."/>
-        </xsl:for-each>
-        <m:mo stretchy="false">)</m:mo>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='cast'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">(</m:mo>
-            <xsl:apply-templates select="*[position()=2]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo color="Yellow">:></m:mo>
-            <xsl:apply-templates select="*[position()=3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">)</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo stretchy="false">(</m:mo>
-        <xsl:apply-templates select="*[position()=2]"/>
-        <m:mo color="Yellow">:></m:mo>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <m:mo stretchy="false">)</m:mo>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='Prop'">
-       <m:mo>Prop</m:mo>
-      </xsl:when>
-      <xsl:when test="$name='Set'">
-       <m:mo>Set</m:mo>
-      </xsl:when>
-      <xsl:when test="$name='Type'">
-       <m:mo>Type</m:mo>
-      </xsl:when>
-      <xsl:when test="$name='mutcase'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <xsl:variable name="charlength"><xsl:apply-templates select="*[position()=2]" mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable>
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>&lt;</m:mo>
-            <xsl:apply-templates select="*[position()=2]"/>
-            <xsl:if test="$framewidth > $charlength">
-             <m:mo>&gt;</m:mo>
-             <m:mo>CASES</m:mo>
-             <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-             <xsl:apply-templates select="*[position()=3]"/>
-            </xsl:if>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <xsl:if test="$charlength >= $framewidth">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>&gt;</m:mo>
-            <m:mo>CASES</m:mo>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="*[position()=3]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:if>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>OF</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
-         <xsl:variable name="charlength"><xsl:apply-templates select="." mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <xsl:choose>
-            <xsl:when test="position() = 1">
-              <m:mphantom><m:mtext>|</m:mtext></m:mphantom>
-            </xsl:when>
-            <xsl:otherwise>
-             <m:mo stretchy="false">|</m:mo>
-            </xsl:otherwise>
-            </xsl:choose>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <xsl:apply-templates select="."/>
-            <xsl:if test="$framewidth > $charlength">
-             <m:mo color="Green">&#x21d2;</m:mo>
-             <xsl:apply-templates select="following-sibling::*[position()= 1]"/>
-            </xsl:if>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <xsl:if test="$charlength >= $framewidth">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mphantom><m:mtext>|_</m:mtext></m:mphantom>  
-            <m:mo color="Green">&#x21d2;</m:mo>
-            <xsl:apply-templates select="following-sibling::*[position()= 1]"/>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:if>
-        </xsl:for-each>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>END</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo>&lt;</m:mo><xsl:apply-templates select="*[position()=2]"/><m:mo>&gt;</m:mo>
-        <m:mo>CASES</m:mo>
-        <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-        <xsl:apply-templates select="*[position()=3]"/>
-        <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-        <m:mo>OF</m:mo>
-        <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
-         <xsl:choose>
-         <xsl:when test="position() != 1">
-          <m:mo stretchy="false">|</m:mo>
-         </xsl:when> 
-         </xsl:choose>
-         <xsl:apply-templates select="."/>
-         <m:mo color="Green">&#x21d2;</m:mo>
-         <xsl:apply-templates select="following-sibling::*[position()= 1]"/>
-        </xsl:for-each>
-        <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-        <m:mo>END</m:mo>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='fix'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>FIX</m:mo>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <m:mi><xsl:value-of select="m:ci"/></m:mi>
-            <m:mo stretchy="false">{</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-            <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-            <xsl:for-each select="m:bvar"> 
-             <xsl:variable name="charlength"><xsl:apply-templates select="m:type" mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable>
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mi><xsl:value-of select="m:ci"/></m:mi>
-                <m:mo>:</m:mo>
-                <xsl:if test="$framewidth > $charlength">
-                 <xsl:apply-templates select="m:type"/>
-                </xsl:if>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr> 
-             <xsl:if test="$charlength >= $framewidth">
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mphantom><m:mtext>:=</m:mtext></m:mphantom>
-                <xsl:apply-templates select="m:type"/>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr>
-             </xsl:if>
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mo>:=</m:mo>
-                <xsl:apply-templates select="following-sibling::*[position()=1]"/>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr> 
-            </xsl:for-each>
-            </m:mtable>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">}</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo>FIX</m:mo>
-        <m:mi><xsl:value-of select="m:ci"/></m:mi>
-        <m:mo stretchy="false">{</m:mo>
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-        <xsl:for-each select="m:bvar"> 
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mi><xsl:value-of select="m:ci"/></m:mi>
-            <m:mo>:</m:mo>
-            <xsl:apply-templates select="m:type"/>
-            <m:mo>:=</m:mo>
-            <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-            <xsl:if test="position()=last()">
-             <m:mo stretchy="false">}</m:mo>
-            </xsl:if>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:for-each>
-        </m:mtable>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:when test="$name='cofix'">
-       <xsl:choose>
-       <xsl:when test="$charlength >= $framewidth">
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo>COFIX</m:mo>
-            <m:mphantom><m:mtext>_</m:mtext></m:mphantom>
-            <m:mi><xsl:value-of select="m:ci"/></m:mi>
-            <m:mo stretchy="false">{</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-            <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-            <xsl:for-each select="m:bvar">
-             <xsl:variable name="charlength"><xsl:apply-templates select="m:type" mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable> 
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mi><xsl:value-of select="m:ci"/></m:mi>
-                <m:mo>:</m:mo>
-                <xsl:if test="$framewidth > $charlength">
-                 <xsl:apply-templates select="m:type"/>
-                </xsl:if>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr> 
-             <xsl:if test="$charlength >= $framewidth">
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mphantom><m:mtext>:=</m:mtext></m:mphantom>
-                <xsl:apply-templates select="m:type"/>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr>
-             </xsl:if>
-             <m:mtr>
-              <m:mtd>
-               <m:mrow>
-                <m:mo>:=</m:mo>
-                <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-               </m:mrow>
-              </m:mtd>
-             </m:mtr>
-            </xsl:for-each>
-            </m:mtable>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mo stretchy="false">}</m:mo>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-        </m:mtable>
-       </xsl:when>
-       <xsl:otherwise>
-        <m:mo>COFIX</m:mo>
-        <m:mi><xsl:value-of select="m:ci"/></m:mi>
-        <m:mo stretchy="false">{</m:mo>
-        <m:mtable align="baseline 1" equalrows="false" columnalign="left">  
-        <xsl:for-each select="m:bvar"> 
-         <m:mtr>
-          <m:mtd>
-           <m:mrow>
-            <m:mi><xsl:value-of select="m:ci"/></m:mi>
-            <m:mo>:</m:mo>
-            <xsl:apply-templates select="m:type"/>
-            <m:mo>:=</m:mo>
-            <xsl:apply-templates select="following-sibling::*[position() = 1]"/>
-            <xsl:if test="position()=last()">
-             <m:mo stretchy="false">}</m:mo>
-            </xsl:if>
-           </m:mrow>
-          </m:mtd>
-         </m:mtr>
-         </xsl:for-each>
-        </m:mtable>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      </xsl:choose>
-     </m:mrow>
-</xsl:template>
-
-<!-- LAMBDA -->
-
-<xsl:template match="m:lambda">
-    <xsl:variable name="charlength"><xsl:apply-templates select="*[position()=1]" mode="charcount"/></xsl:variable>
-    <m:mrow helm:xref="{@helm:xref}">
-     <xsl:choose>
-     <xsl:when test="$charlength >= $framewidth">
-      <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-        <m:mtr>
-          <m:mtd>
-            <m:mo color="Red">&#x03bb;</m:mo>
-            <xsl:apply-templates select="m:bvar"/>
-          </m:mtd>
-         </m:mtr>
-       <m:mtr>
-        <m:mtd>
-         <m:mrow>
-          <m:mo>.</m:mo>
-          <xsl:apply-templates select="*[position()=2]"/>
-         </m:mrow>
-        </m:mtd>
-       </m:mtr>
-      </m:mtable>
-     </xsl:when>
-     <xsl:otherwise>
-      <m:mo color="Red">&#x03bb;</m:mo>
-      <xsl:apply-templates select="m:bvar/m:ci"/>
-      <m:mo>:</m:mo>
-      <xsl:apply-templates select="m:bvar/m:type"/>
-      <m:mo>.</m:mo>
-      <xsl:apply-templates select="*[position()=2]"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </m:mrow>
-</xsl:template>
-
-<!-- *********************************** -->
-<!-- BASE SET OF MATHML CONTENT ELEMENTS -->
-<!-- *********************************** -->
-
-<!-- Logic -->
-
-<xsl:template match = "m:apply[m:eq[1]]">
- <xsl:variable name="charlength">
-  <xsl:apply-templates select="*[1]" mode="charcount"/>
- </xsl:variable>
- <xsl:choose>
-  <xsl:when test="$charlength >= $framewidth">
-   <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-    <xsl:if test="@helm:xref">
-     <xsl:attribute name="helm:xref">
-      <xsl:value-of select="@helm:xref"/>
-     </xsl:attribute>
-    </xsl:if>    
-    <m:mtr>
-     <m:mtd>
-      <m:mo stretchy="false">(</m:mo>
-      <xsl:apply-templates select="*[position()=2]"/>
-     </m:mtd>
-    </m:mtr>
-    <xsl:for-each select = "*[position()>2]">
-     <m:mtr>
-      <m:mtd>
-       <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-       <m:mo helm:xref="m:in/@helm:xref"> 
-        =
-       </m:mo>
-       <xsl:apply-templates select="."/>
-      </m:mtd>
-     </m:mtr>
-    </xsl:for-each>
-    <m:mtr>
-     <m:mtd>
-      <m:mo stretchy="false">)</m:mo>
-     </m:mtd>
-    </m:mtr>
-   </m:mtable>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:apply-imports/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-<xsl:template match = "m:apply[m:and[1]|m:or[1]
-          |m:geq[1]|m:leq[1]|m:gt[1]|m:lt[1]
-          |m:in[1]|m:intesect[1]|m:union[1]|m:subset[1]
-          |m:prsubset|m:setdiff[1]]">
- <xsl:variable name="symbol">
-  <xsl:choose>
-   <xsl:when test="m:and[1]">
-    <xsl:value-of select="'wedge'"/>
-   </xsl:when>
-   <xsl:when test="m:or[1]">
-    <xsl:value-of select="'vee'"/>
-   </xsl:when>
-   <xsl:when test="m:geq[1]">
-    <xsl:value-of select="'geq'"/>
-   </xsl:when>
-   <xsl:when test="m:leq[1]">
-    <xsl:value-of select="'leq'"/>
-   </xsl:when>
-   <xsl:when test="m:gt[1]">
-    <xsl:value-of select="'gt'"/>
-   </xsl:when>
-   <xsl:when test="m:lt[1]">
-    <xsl:value-of select="'lt'"/>
-   </xsl:when>
-   <xsl:when test="m:eq[1]">
-    <xsl:value-of select="'Equal'"/>
-   </xsl:when>
-   <xsl:when test="m:in[1]">
-    <xsl:value-of select="'Element'"/>
-   </xsl:when>
-   <xsl:when test="m:subset[1]">
-    <xsl:value-of select="'SubsetEqual'"/>
-   </xsl:when>
-   <xsl:when test="m:prsubset[1]">
-    <xsl:value-of select="'subset'"/>
-   </xsl:when>
-   <xsl:when test="m:intersect[1]">
-    <xsl:value-of select="'Intersection'"/>
-   </xsl:when>
-   <xsl:when test="m:union[1]">
-    <xsl:value-of select="'Union'"/>
-   </xsl:when>
-   <xsl:when test="m:setdiff[1]">
-    <xsl:value-of select="'Backslash'"/>
-   </xsl:when>
-  </xsl:choose>
- </xsl:variable>
- <xsl:variable name="charlength">
-  <xsl:apply-templates select="*[1]" mode="charcount"/>
- </xsl:variable>
- <xsl:choose>
-  <xsl:when test="$charlength >= $framewidth">
-   <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-    <xsl:if test="@helm:xref">
-     <xsl:attribute name="helm:xref">
-      <xsl:value-of select="@helm:xref"/>
-     </xsl:attribute>
-    </xsl:if>    
-    <m:mtr>
-     <m:mtd>
-      <m:mo stretchy="false">(</m:mo>
-      <xsl:apply-templates select="*[position()=2]"/>
-     </m:mtd>
-    </m:mtr>
-    <xsl:for-each select = "*[position()>2]">
-     <m:mtr>
-      <m:mtd>
-       <m:mphantom><m:mtext>__</m:mtext></m:mphantom>
-       <m:mo helm:xref="{*[1]/@helm:xref}"> 
-        <m:mchar name="{$symbol}"/>
-       </m:mo>
-       <xsl:apply-templates select="."/>
-      </m:mtd>
-     </m:mtr>
-    </xsl:for-each>
-    <m:mtr>
-     <m:mtd>
-      <m:mo stretchy="false">)</m:mo>
-     </m:mtd>
-    </m:mtr>
-   </m:mtable>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:apply-imports/>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match = "m:set">
- <xsl:choose>
-  <xsl:when test="count(child::*) = 0">
-   <m:mo> 
-    <m:mchar name="EmptySet"/>
-   </m:mo>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:variable name="charlength">
-    <xsl:apply-templates select="*[1]" mode="charcount"/>
-   </xsl:variable>
-   <xsl:choose>
-    <xsl:when test="$charlength >= $framewidth">
-     <xsl:choose>
-      <xsl:when test="name(*[1]) = 'm:bvar'">
-       <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-        <m:mtr>
-         <m:mtd>
-          <m:mo stretchy="false">{</m:mo>
-          <xsl:apply-templates select="*[position()=1]"/>
-         </m:mtd>
-        </m:mtr>
-        <m:mtr>
-         <m:mtd>
-          <m:mphantom><m:mtext>{</m:mtext></m:mphantom>
-          <m:mo stretchy="false">|</m:mo>
-          <xsl:apply-templates select="m:condition/*[1]"/>
-         </m:mtd>
-        </m:mtr>
-        <m:mtr>
-         <m:mtd>
-          <m:mo stretchy="false">}</m:mo>
-         </m:mtd>
-        </m:mtr>
-       </m:mtable>
-      </xsl:when>
-      <xsl:otherwise>
-       <m:mtable align="baseline 1" equalrows="false" columnalign="left">
-        <m:mtr>
-         <m:mtd>
-          <m:mo stretchy="false">{</m:mo>
-          <xsl:apply-templates select="*[position()=1]"/>
-          <xsl:if test="position() != last()">
-           <mo>,</mo>
-          </xsl:if>
-         </m:mtd>
-        </m:mtr>
-        <xsl:for-each select = "*[position()>2]">
-         <m:mtr>
-          <m:mtd>
-           <m:mphantom><m:mtext>{</m:mtext></m:mphantom>
-           <xsl:apply-templates select="."/>
-           <xsl:if test="position() != last()">
-            <mo>,</mo>
-           </xsl:if>
-          </m:mtd>
-         </m:mtr>
-        </xsl:for-each>
-        <m:mtr>
-         <m:mtd>
-          <m:mo stretchy="false">}</m:mo>
-         </m:mtd>
-        </m:mtr>
-       </m:mtable>
-      </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:apply-imports/>
-    </xsl:otherwise>
-   </xsl:choose>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>      
-
-<xsl:template match = "m:apply[m:card[1]]">
- <m:mo stretchy="false">|</m:mo>
-  <xsl:apply-templates select="*[2]"/>
- <m:mo stretchy="false">|</m:mo>
-</xsl:template>
-
-<!--**********************-->
-<!--       COUNTING       -->
-<!--**********************-->
-
-<xsl:template match="m:and|m:or|m:not|m:exists|m:eq|m:lt|m:leq|m:gt|m:geq
- |m:in|m:notin|m:intersect|m:union|m:subset|m:prsubset|m:card|m:setdiff" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-    <xsl:choose>
-    <xsl:when test="$framewidth > ($incurrent_length + 3 + string-length())">
-     <xsl:variable name="siblength">
-      <xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount">
-       <xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/>
-      </xsl:apply-templates>
-     </xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + 3 + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + 3 + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="m:ci|m:csymbol" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/> 
-<xsl:param name="nosibling" select="0"/>
-    <xsl:choose>
-    <xsl:when test="$framewidth > ($incurrent_length + string-length()) and ($nosibling = 0)">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length + string-length()"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="$incurrent_length + string-length()"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="$incurrent_length + string-length()"/>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template> 
-
-<xsl:template match="*" mode="charcount">
-<xsl:param name="incurrent_length" select="0"/>
-<xsl:param name="nosibling" select="0"/>
- <xsl:choose>
-  <xsl:when test="count(child::*) = 0">
-   <xsl:value-of select="$incurrent_length"/>
-  </xsl:when>
-  <xsl:otherwise>
-    <xsl:variable name="childlength"><xsl:apply-templates select="*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$incurrent_length"/><xsl:with-param name="nosibling" select="0"/></xsl:apply-templates></xsl:variable>
-    <xsl:choose>
-    <xsl:when test="$framewidth > number($childlength) and ($nosibling = 0)">
-     <xsl:variable name="siblength"><xsl:apply-templates select="following-sibling::*[position()=1]" mode="charcount"><xsl:with-param name="incurrent_length" select="$childlength"/></xsl:apply-templates></xsl:variable>
-     <xsl:choose>
-     <xsl:when test="string($siblength) = &quot;&quot;">
-      <xsl:value-of select="number($childlength)"/>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:value-of select="number($siblength)"/>
-     </xsl:otherwise>
-     </xsl:choose>>
-    </xsl:when>
-    <xsl:otherwise>
-     <xsl:value-of select="number($childlength)"/>
-    </xsl:otherwise>
-    </xsl:choose>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet> 
-
diff --git a/helm/style/style_prima_del_linguaggio_naturale/objcontent.xsl b/helm/style/style_prima_del_linguaggio_naturale/objcontent.xsl
deleted file mode 100644 (file)
index 6ad0a49..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- XSLT version 0.1 of CIC objects to objects and MathML content:   -->
-<!-- First draft: March 21 2000, Irene Schena                         -->
-<!--******************************************************************-->
-
-<!--******************************************************************-->
-<!-- MANCA: gestione annotation e linking                             -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<xsl:import href="content.xsl"/>
-
-<!-- ROOT -->
-
-<xsl:template match="cicxml">
-    <xsl:variable name="url"><xsl:value-of select="@baseurl"/></xsl:variable>
-    <xsl:variable name="stylesheet"><xsl:value-of select="@stylesheet"/></xsl:variable>
-    <xsl:processing-instruction name="cocoon-format">type="text/xml"</xsl:processing-instruction>
-    <xsl:processing-instruction name="xml-stylesheet">href="<xsl:value-of select='concat($url,$stylesheet)'/>" type="text/xsl"</xsl:processing-instruction>
-    <xsl:processing-instruction name="cocoon-process">type="xslt"</xsl:processing-instruction>
-    <xsl:apply-templates select="*[1]"/>
-</xsl:template>
-
-<!-- CIC OBJECTS -->
-
-<xsl:template match="Definition" mode="noannot">
-    <Definition name="{@name}" helm:xref="{@id}">  
-     <xsl:if test="string(@params) != &quot;&quot;">
-      <Params>
-       <xsl:value-of select="@params"/>
-      </Params>
-     </xsl:if>
-<!--     <xsl:choose>
-      <xsl:when test="$showproof=0">
-       <body>
-        <m:mi>Here</m:mi>
-       </body>
-      </xsl:when>
-      <xsl:otherwise>
-       <body>
-        <xsl:apply-templates select="body"/>
-       </body>
-      </xsl:otherwise>
-     </xsl:choose> -->
-     <body>
-      <xsl:apply-templates select="body"/>
-     </body>
-     <type>
-       <xsl:apply-templates select="type"/>
-     </type>
-    </Definition> 
-</xsl:template>
-
-<xsl:template match="Axiom" mode="noannot"> 
-    <Axiom name="{@name}" helm:xref="{@id}">
-     <xsl:if test="string(@params) != &quot;&quot;">
-      <Params>
-       <xsl:value-of select="@params"/>
-      </Params>
-     </xsl:if>
-     <type>
-       <xsl:apply-templates select="type"/>
-     </type>
-    </Axiom> 
-</xsl:template>
-
-<xsl:template match="CurrentProof" mode="noannot">
-    <CurrentProof name="{@name}" helm:xref="{@id}">
-     <xsl:for-each select="Conjecture">
-      <Conjecture no="./{@no}">
-        <xsl:apply-templates select="."/>
-      </Conjecture>
-     </xsl:for-each>
-     <body>
-       <xsl:apply-templates select="body"/>
-     </body>
-     <type>
-       <xsl:apply-templates select="type"/>
-     </type>
-    </CurrentProof> 
-</xsl:template>
-
-<xsl:template match="InductiveDefinition" mode="noannot">
-    <InductiveDefinition helm:xref="{@id}">
-     <xsl:if test="string(@params) != &quot;&quot;">
-      <Params>
-       <xsl:value-of select="@params"/>
-      </Params>
-     </xsl:if> 
-     <xsl:if test="string(@noParams) != 0"> 
-      <xsl:apply-templates select="InductiveType/arity/*[1]" mode="abstparams">
-       <xsl:with-param name="noparams" select="@noParams"/>
-      </xsl:apply-templates>
-     </xsl:if>
-     <xsl:for-each select="InductiveType">
-      <InductiveType name="{./@name}" inductive="{./@inductive}">
-       <arity>
-         <xsl:apply-templates select="./arity/*[1]" mode="abstparams">
-          <xsl:with-param name="noparams" select="../@noParams"/>
-          <xsl:with-param name="target" select="1"/>
-         </xsl:apply-templates>
-       </arity>
-       <xsl:for-each select="./Constructor">
-        <Constructor name="{./@name}">
-          <xsl:apply-templates select="./*[1]" mode="abstparams">
-           <xsl:with-param name="noparams" select="../../@noParams"/>
-           <xsl:with-param name="target" select="1"/>
-          </xsl:apply-templates>
-        </Constructor>
-       </xsl:for-each>
-      </InductiveType>
-     </xsl:for-each> 
-    </InductiveDefinition>       
-</xsl:template>
-
-<xsl:template match="Variable" mode="noannot"> 
-    <Variable name="{@name}" helm:xref="{@id}">
-     <type>
-       <xsl:apply-templates select="type"/>
-     </type>
-    </Variable> 
-</xsl:template>
-
-<!--*******************************************-->
-<!--    ABSTRACTING PARAMETERS AND COUNTING    -->
-<!--*******************************************-->
-<!-- Si dimentica i CAST dei termini che astrae. Nel caso dell'astrazione -->
-<!-- dei lambda dei pattern del CASE, qualora i lambda non si trovino     -->
-<!-- nella forma weak-head, astrae solo i lambda che trova e restituisce  -->
-<!-- un corpo depurato da tutti i primi cast che precedono il termine     -->
-<!-- restituito.                                                          -->
-
-<xsl:template match="*" mode="abstparams">
-<xsl:param name="noparams" select="0"/>
-<xsl:param name="target" select="0"/>
-<xsl:param name="binder">PROD</xsl:param>
-    <xsl:choose>
-    <xsl:when test="($noparams != 0) and ((name(.)=string($binder)) or (name(.)=&quot;CAST&quot;))">
-     <xsl:choose>
-     <xsl:when test="name(.) = string($binder)">
-      <xsl:if test="$target = 0">
-       <xsl:choose>
-       <xsl:when test="string($binder) = &quot;LAMBDA&quot;">
-        <m:ci>
-         <xsl:value-of select="target/@binder"/>
-        </m:ci>
-       </xsl:when>
-       <xsl:otherwise> 
-        <Param name="{target/@binder}">
-         <xsl:apply-templates select="source" mode="noannot"/>
-        </Param>
-       </xsl:otherwise>
-       </xsl:choose>
-      </xsl:if>
-      <xsl:apply-templates select="target/*[1]" mode="abstparams">
-       <xsl:with-param name="noparams" select="$noparams - 1"/>
-       <xsl:with-param name="target" select="$target"/>
-       <xsl:with-param name="binder" select="$binder"/>
-      </xsl:apply-templates>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-templates select="term/*[1]" mode="abstparams">
-       <xsl:with-param name="noparams" select="$noparams"/>
-       <xsl:with-param name="target" select="$target"/>
-       <xsl:with-param name="binder" select="$binder"/>
-      </xsl:apply-templates>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise> 
-     <xsl:choose>
-     <xsl:when test="($target = 1) and ($noparams != 0)">
-      <m:apply>
-      <m:csymbol>app</m:csymbol>
-      <xsl:apply-templates select="." mode="noannot"/>
-      <xsl:call-template name="printparam"><xsl:with-param name="noleft" select="$noparams"/></xsl:call-template>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:choose>
-      <xsl:when test="$noparams != 0">
-      <xsl:call-template name="printparam"><xsl:with-param name="noleft" select="$noparams"/></xsl:call-template>
-      </xsl:when>
-      <xsl:otherwise>
-       <xsl:if test="$target = 1">
-        <xsl:apply-templates select="." mode="noannot"/>
-       </xsl:if>
-      </xsl:otherwise>
-      </xsl:choose>
-     </xsl:otherwise>
-     </xsl:choose>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template name="printparam">
-<xsl:param name="noleft" select="0"/>
-<xsl:param name="number" select="1"/>
-    <xsl:if test="$noleft != 0">
-     <m:ci>$<xsl:value-of select="$number"/></m:ci>
-     <xsl:call-template name="printparam"><xsl:with-param name="noleft" select="$noleft - 1"/><xsl:with-param name="number" select="$number + 1"/></xsl:call-template>  
-    </xsl:if>
-</xsl:template>
-
-<xsl:template match="*" mode="counting">
-<xsl:param name="noparams" select="0"/>
-<xsl:param name="count" select="0"/>
- <xsl:choose>
- <xsl:when test="name(.) = &quot;PROD&quot;">
-  <xsl:apply-templates select="target/*[1]" mode="counting">
-   <xsl:with-param name="noparams" select="$noparams"/>
-   <xsl:with-param name="count" select="$count + 1"/>
-  </xsl:apply-templates>
- </xsl:when>
- <xsl:when test="name(.) = &quot;CAST&quot;">
-  <xsl:apply-templates select="term/*[1]" mode="counting">
-   <xsl:with-param name="noparams" select="$noparams"/>
-   <xsl:with-param name="count" select="$count"/> 
-  </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
-  <xsl:value-of select="$count - $noparams"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/params.xsl b/helm/style/style_prima_del_linguaggio_naturale/params.xsl
deleted file mode 100644 (file)
index 034eeba..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<!--***********************************************************************--> 
-<!-- auxiliary functions                                                   -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                      -->
-<!--***********************************************************************--> 
-
-<!--***********************************************************************-->
-<!-- get the name from a URI                                               -->
-<!--***********************************************************************-->
-
-<!-- CSC: PROBLEMA: URI CHE NON CONTENGONO / ED INIZIANO CON cic: -->
-<xsl:template name="name_of_uri">
- <xsl:param name="uri" select="&quot;&quot;"/>
- <xsl:variable name="suffix" select="substring-after($uri, &quot;/&quot;)"/>
- <xsl:choose>
-  <xsl:when test="$suffix = &quot;&quot;">
-   <!-- CSC: PROBLEMA: .con PUO' APPARIRE ALL'INTERNO DELLE URI ===>
-     SCRIVERE UNA FUNZIONE RICORSIVA CHE RISOLVA -->
-   <xsl:value-of select="substring-before($uri,&quot;.con&quot;)"/>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:call-template name="name_of_uri">
-    <xsl:with-param name="uri" select="$suffix"/>
-   </xsl:call-template>
-  </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!--***********************************************************************-->
-<!-- erase common prefix from two uris                                     -->
-<!--***********************************************************************-->
-
-<xsl:template name="common_prefix">
- <xsl:param name="first_uri" select="&quot;&quot;"/>
- <xsl:param name="second_uri" select="&quot;&quot;"/>
- <xsl:choose>
-  <xsl:when test="(substring-before($first_uri,&quot;/&quot;) = 
-                substring-before($second_uri,&quot;/&quot;) and 
-                substring-after($second_uri,&quot;/&quot;) != &quot;&quot;)">
-   <xsl:call-template name="common_prefix">
-    <xsl:with-param 
-        name="first_uri" select="substring-after($first_uri,&quot;/&quot;)"/>
-    <xsl:with-param 
-        name="second_uri" select="substring-after($second_uri,&quot;/&quot;)"/>    </xsl:call-template>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:call-template name="slash_counting">
-    <xsl:with-param name="uri" select="$second_uri"/>
-    <xsl:with-param name="counter" select="0"/>
-   </xsl:call-template>
-  </xsl:otherwise>   
- </xsl:choose>
-</xsl:template>
-
-<xsl:template name="slash_counting">
- <xsl:param name="uri" select="&quot;&quot;"/>
- <xsl:param name="counter" select="0"/>
- <xsl:choose>
-  <xsl:when test="(substring-after($uri,&quot;/&quot;) != &quot;&quot;)">
-   <xsl:call-template name="slash_counting">
-    <xsl:with-param 
-        name="uri" select="substring-after($uri,&quot;/&quot;)"/>
-    <xsl:with-param
-        name="counter" select="$counter +1"/> 
-   </xsl:call-template>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="$counter"/>
-  </xsl:otherwise>
- </xsl:choose>   
-</xsl:template>
-
-<xsl:template name="blank_counting">
- <xsl:param name="string" select="&quot;&quot;"/>
- <xsl:param name="counter" select="0"/>
- <xsl:choose>
-  <xsl:when test="(substring-after($string,&quot; &quot;) != &quot;&quot;)">
-   <xsl:call-template name="blank_counting">
-    <xsl:with-param 
-        name="string" select="substring-after($string,&quot; &quot;)"/>
-    <xsl:with-param 
-        name="counter" select="$counter +1"/> 
-   </xsl:call-template>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="$counter + 1"/>
-  </xsl:otherwise> 
- </xsl:choose>  
-</xsl:template>
-
-<xsl:template name="double_point_counting">
- <xsl:param name="string" select="&quot;&quot;"/>
- <xsl:param name="counter" select="0"/>
- <xsl:choose>
-  <xsl:when test="(substring-after($string,&quot;:&quot;) != &quot;&quot;)">
-   <xsl:call-template name="double_point_counting">
-    <xsl:with-param 
-        name="string" select="substring-after($string,&quot;:&quot;)"/>
-    <xsl:with-param 
-        name="counter" select="$counter +1"/> 
-   </xsl:call-template>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:value-of select="$counter"/>
-  </xsl:otherwise> 
- </xsl:choose>  
-</xsl:template>
-
-<xsl:template name="min">
- <xsl:param name="string" select="&quot;&quot;"/>
- <xsl:param name="counter" select="0"/>
- <xsl:choose>
-  <xsl:when test="contains($string,concat($counter,&quot;:&quot;))
-         or (0 > $counter)">
-  <xsl:value-of select="$counter"/>
-  </xsl:when>
-  <xsl:otherwise>
-   <xsl:call-template name="min">
-    <xsl:with-param 
-        name="string" select="$string"/>
-    <xsl:with-param 
-        name="counter" select="$counter -1"/> 
-   </xsl:call-template>
-  </xsl:otherwise>
- </xsl:choose>  
-</xsl:template>
-
-<xsl:template name="get_no_params">
-    <xsl:param name="first_uri" select="&quot;&quot;"/>
-    <xsl:param name="second_uri" select="&quot;&quot;"/>
-     <xsl:variable name="offset">
-      <xsl:call-template name="common_prefix">
-       <xsl:with-param name="first_uri" select="$first_uri"/>
-       <xsl:with-param name="second_uri" select="$second_uri"/>
-      </xsl:call-template>
-     </xsl:variable>
-     <xsl:choose>
-      <xsl:when test="$offset > 0">
-       <xsl:variable name="params"> 
-        <xsl:value-of 
-            select="document(concat(string($absPath),$second_uri))/*/@params"/>
-       </xsl:variable>
-       <xsl:variable name="minimum">
-        <xsl:call-template name="min">
-         <xsl:with-param name="string" select="$params"/>
-         <xsl:with-param name="counter" select="$offset - 1"/>
-        </xsl:call-template>
-       </xsl:variable>
-       <xsl:choose>
-        <xsl:when test="0 > $minimum">
-         0
-        </xsl:when>
-        <xsl:otherwise>
-         <xsl:variable name="relevant_params">
-          <!-- the blank after : in the next line is essential -->
-          <xsl:value-of 
-            select="substring-after($params,concat($minimum,&quot;: &quot;))"/>
-         </xsl:variable>
-         <xsl:variable name="tokens">
-          <xsl:call-template name="blank_counting">
-           <xsl:with-param name="string" select="$relevant_params"/>
-           <xsl:with-param name="counter" select="0"/>
-          </xsl:call-template>
-         </xsl:variable>
-         <xsl:variable name="separators">
-          <xsl:call-template name="double_point_counting">
-           <xsl:with-param name="string" select="$relevant_params"/>
-           <xsl:with-param name="counter" select="0"/>
-          </xsl:call-template>
-         </xsl:variable>
-         <xsl:value-of select="$tokens - $separators"/>
-        </xsl:otherwise>
-       </xsl:choose>
-      </xsl:when>
-      <xsl:otherwise>
-      0
-      </xsl:otherwise>
-     </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet> 
-
-
-
-
-
-
diff --git a/helm/style/style_prima_del_linguaggio_naturale/reals.xsl b/helm/style/style_prima_del_linguaggio_naturale/reals.xsl
deleted file mode 100644 (file)
index 0e4afef..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- Reals                                                            -->
-<!-- First draft: April 3 2000                                        -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                 -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm"
-                              xmlns:xlink="http://www.w3.org/1999/xlink">
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- ************************* LOGIC *********************************-->
-
-<!-- REALS -->
-
-<!--
-<xsl:template match="CONST[attribute::uri='cic:/coq/REALS/Raxioms/R.con']" mode="noannot">
- <m:reals/>
-</xsl:template>
--->
-
-<!-- 0 e 1 -->
-
-<xsl:template match="CONST[attribute::uri='cic:/coq/REALS/Raxioms/R0.con']" mode="noannot">
- <m:cn definitionURL="{@uri}" helm:xref="{@id}">0</m:cn>
-</xsl:template>
-
-<xsl:template match="CONST[attribute::uri='cic:/coq/REALS/Raxioms/R1.con']" mode="noannot">
- <m:cn definitionURL="{@uri}" helm:xref="{@id}">1</m:cn>
-</xsl:template>
-
-
-
-<!-- Unary Operations -->
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Raxioms/Ropp.con' or
- attribute::uri='cic:/coq/REALS/Rbasic_fun/Rabsolu.con' or
- attribute::uri='cic:/coq/REALS/Rfunctions/fact.con' or
- attribute::uri='cic:/coq/REALS/Rbase/Rsqr.con']]" mode="noannot">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 2">
-      <xsl:variable name="elem">
-       <xsl:choose>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Ropp.con'">
-         <xsl:value-of select="'minus'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rbasic_fun/Rabsolu.con'">
-         <xsl:value-of select="'abs'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rfunctions/fact.con'">
-         <xsl:value-of select="'factorial'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rbase/Rsqr.con'">
-         <xsl:value-of select="'root'"/>
-        </xsl:when>
-       </xsl:choose>
-      </xsl:variable>
-      <m:apply helm:xref="{@id}">
-       <xsl:element name="{concat('m:',$elem)}">
-        <xsl:attribute name="definitionURL">
-         <xsl:value-of select="CONST/@uri"/> 
-        </xsl:attribute>
-        <xsl:attribute name="helm:xref">
-         <xsl:value-of select="CONST/@id"/>
-        </xsl:attribute>
-       </xsl:element>
-       <xsl:apply-templates select="*[2]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Raxioms/Rinv.con']]" mode="noannot">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 2">
-      <m:apply helm:xref="{@id}">
-       <m:power/>
-       <xsl:apply-templates select="*[2]" mode="noannot"/>
-       <m:apply>
-        <m:minus>
-         <xsl:attribute name="definitionURL">
-          <xsl:value-of select="CONST/@uri"/> 
-         </xsl:attribute>
-        </m:minus>
-        <xsl:attribute name="helm:xref">
-         <xsl:value-of select="CONST/@id"/>
-        </xsl:attribute>
-        <m:cn>1</m:cn>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- Binary Operations and Relations -->
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Raxioms/Rplus.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rminus.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rmult.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rle.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rlt.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rge.con' or
- attribute::uri='cic:/coq/REALS/Raxioms/Rgt.con' or
- attribute::uri='cic:/coq/REALS/Rbasic_fun/Rmin.con' or
- attribute::uri='cic:/coq/REALS/Rfunctions/pow.con']]" mode="noannot">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 3">
-      <xsl:variable name="elem">
-       <xsl:choose>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rplus.con'">
-         <xsl:value-of select="'plus'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rminus.con'">
-         <xsl:value-of select="'minus'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rmult.con'">
-         <xsl:value-of select="'times'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rle.con'">
-         <xsl:value-of select="'leq'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rlt.con'">
-         <xsl:value-of select="'lt'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rge.con'">
-         <xsl:value-of select="'geq'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Raxioms/Rgt.con'">
-         <xsl:value-of select="'gt'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rbasic_fun/Rmin.con'">
-         <xsl:value-of select="'min'"/>
-        </xsl:when>
-        <xsl:when test="CONST/@uri='cic:/coq/REALS/Rfunctions/pow.con'">
-         <xsl:value-of select="'power'"/>
-        </xsl:when>
-       </xsl:choose>
-      </xsl:variable>
-      <m:apply helm:xref="{@id}">
-       <xsl:element name="{concat('m:',$elem)}">
-        <xsl:attribute name="definitionURL">
-         <xsl:value-of select="CONST/@uri"/> 
-        </xsl:attribute>
-        <xsl:attribute name="helm:xref">
-         <xsl:value-of select="CONST/@id"/>
-        </xsl:attribute>
-       </xsl:element>
-       <xsl:apply-templates select="*[2]" mode="noannot"/>
-       <xsl:apply-templates select="*[3]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- LIMIT -->
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Rlimit/limit1_in.con']]" mode="noannot">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 5">
-      <m:apply>
-       <m:eq/>
-       <xsl:choose>
-        <xsl:when test="name(*[2]) = 'LAMBDA'">
-         <m:apply helm:xref="{@id}">
-          <m:limit>
-           <xsl:attribute name="definitionURL">
-            <xsl:value-of select="CONST/@uri"/> 
-           </xsl:attribute>
-           <xsl:attribute name="helm:xref">
-            <xsl:value-of select="CONST/@id"/>
-           </xsl:attribute>
-          </m:limit>
-          <m:bvar>
-           <m:ci><xsl:value-of select="LAMBDA/target/@binder"/></m:ci>
-          </m:bvar>
-          <m:lowlimit>
-           <xsl:apply-templates select="*[5]" mode="noannot"/>
-          </m:lowlimit>
-          <xsl:apply-templates select="*[2]/target" mode="noannot"/>
-         </m:apply>
-        </xsl:when>
-        <xsl:otherwise>
-         <m:apply helm:xref="{@id}">
-          <m:limit/>
-          <m:bvar>
-           <m:ci>$x</m:ci>
-          </m:bvar>
-          <m:lowlimit>
-           <xsl:apply-templates select="*[5]" mode="noannot"/>
-          </m:lowlimit>
-          <m:apply>
-           <m:csymbol>app</m:csymbol>
-           <xsl:apply-templates select="*[2]" mode="noannot"/>
-           <m:ci>$x</m:ci>
-          </m:apply>
-         </m:apply>
-        </xsl:otherwise>
-       </xsl:choose>
-       <xsl:apply-templates select="*[4]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- DIFFERENTIATION -->
-
-<xsl:template match="APPLY[CONST[
- attribute::uri='cic:/coq/REALS/Rderiv/D_in.con']]" mode="noannot">
-    <xsl:choose>
-     <xsl:when test="count(child::*) = 4">
-      <m:apply>
-       <m:eq/>
-       <xsl:choose>
-        <xsl:when test="name(*[2]) = 'LAMBDA'">
-         <m:apply helm:xref="{@id}">
-          <m:diff >
-           <xsl:attribute name="definitionURL">
-            <xsl:value-of select="CONST/@uri"/> 
-           </xsl:attribute>
-           <xsl:attribute name="helm:xref">
-            <xsl:value-of select="CONST/@id"/>
-           </xsl:attribute>
-          </m:diff>
-          <m:bvar>
-           <m:ci><xsl:value-of select="LAMBDA[1]/target/@binder"/></m:ci>
-          </m:bvar>
-          <xsl:apply-templates select="*[2]/target" mode="noannot"/>
-         </m:apply>
-        </xsl:when>
-        <xsl:otherwise>
-         <m:apply helm:xref="{@id}">
-          <m:diff/>
-          <m:bvar>
-           <m:ci>$x</m:ci>
-          </m:bvar>
-          <m:apply>
-           <m:csymbol>app</m:csymbol>
-           <xsl:apply-templates select="*[2]" mode="noannot"/>
-           <m:ci>$x</m:ci>
-          </m:apply>
-         </m:apply>
-        </xsl:otherwise>
-       </xsl:choose>
-       <xsl:apply-templates select="*[4]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/ricerca.xsl b/helm/style/style_prima_del_linguaggio_naturale/ricerca.xsl
deleted file mode 100644 (file)
index e0fa13a..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0"?>
-
-
-<xsl:stylesheet version="0.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:output method="html"/>
-
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<xsl:template match="/">
-               <html> 
-                <head></head>
-                <body>
-                <xsl:apply-templates select="Theory"/>
-                </body>
-               </html>
-</xsl:template>
-
-
-<!-- CIC TERMS -->
-
-
-
-<xsl:template match="MUTIND[string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind']" mode="search" >
-<!-- <xsl:param name="current_uri" select=""/> -->
-<!-- <h1><xsl:value-of select="string(@uri)"/></h1> -->
-<!-- <xsl:if test="string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind'"> -->
-  <xsl:value-of select="$current_uri"/><BR/>
-<!-- </xsl:if> -->
-</xsl:template>
-
-<!-- AGGIUNGERE cic: alle uri nei file Theory -->
-
-<xsl:template match="Theory">
-<!-- <xsl:param name="current_uri" select=""/> -->
- <xsl:apply-templates>
-  <xsl:with-param name="current_uri" select="string(@uri)"/>
- </xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match="VARIABLE">
-<!-- <xsl:param name="current_uri" select=""/> -->
-<xsl:variable name="found" 
-  select="boolean(document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))//MUTIND[string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind'])"/>
-<xsl:if test="$found">
-  <xsl:value-of select="concat(string($current_uri),&quot;/&quot;,string(@uri),&quot;.xml&quot;)"/><BR/>
-</xsl:if>
-
-<!--   <xsl:with-param name="current_uri" select="concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri))"/>
- </xsl:apply-templates> -->
-</xsl:template>
-
-<xsl:template match="DEFINITION">
-<!-- <xsl:param name="current_uri" select=""/> -->
-<!-- <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))" mode="search">
-  <xsl:with-param name="current_uri" select="concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri))"/>
- </xsl:apply-templates> -->
-<xsl:variable name="found" 
-  select="boolean(document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))//MUTIND[string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind'])"/>
-<xsl:if test="$found">
-  <xsl:value-of select="concat(string($current_uri),&quot;/&quot;,string(@uri),&quot;.xml&quot;)"/><BR/>
-</xsl:if>
-</xsl:template>
-
-<xsl:template match="THEOREM">
-<!-- <xsl:param name="current_uri" select=""/> -->
-<!-- <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))" mode="search">
-  <xsl:with-param name="current_uri" select="concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri))"/>
- </xsl:apply-templates> -->
-<xsl:variable name="found" 
-  select="boolean(document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))//MUTIND[string(@uri)='cic:/coq/INIT/Logic/Equality/eq.ind'])"/>
-<xsl:if test="$found">
-  <xsl:value-of select="concat(string($current_uri),&quot;/&quot;,string(@uri),&quot;.xml&quot;)"/><BR/>
-</xsl:if>
-</xsl:template>
-
-
-<xsl:template match="SECTION">
-<!-- <xsl:param name="current_uri" select=""/> -->
- <xsl:apply-templates>
-  <xsl:with-param name="current_uri" select="concat($current_uri,&quot;/&quot;,string(@uri))"/>
- </xsl:apply-templates>
-
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/rootcontent.xsl b/helm/style/style_prima_del_linguaggio_naturale/rootcontent.xsl
deleted file mode 100644 (file)
index ada8b5c..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of the stylesheet to accomplish the right inclusion  -->
-<!-- of the content stylesheets:                                           -->
-<!-- First draft: May 26 2000, Claudio Sacerdoti Coen, Irene Schena        -->
-<!--***********************************************************************-->
-
-<!-- Schema of stylesheet precedences (from highest to lowest):          -->
-<!-- set -> basic -> annotatedcont                                       -->
-<!-- because theory_content is imported and has lower precendence than   -->
-<!-- the templates of rootcontent (i.e. the templates of set and basic). -->
-<!-- annotatedcont -> objcontent -> content                              -->
-<!-- because theory_content generates an import precedence tree.         --> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-
-<xsl:import href="annotatedcont.xsl"/>
-<xsl:key name="id" use="@id" match="LAMBDA|PROD|CAST|REL|SORT|APPLY|VAR|META|CONST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX|Definition|Axiom|CurrentProof|InductiveDefinition|Variable"/>
-<xsl:include href="basic.xsl"/>
-<xsl:include href="set.xsl"/>
-<xsl:include href="reals.xsl"/>
-
-<xsl:variable name="showproof" select="0"/>
-</xsl:stylesheet>
-
-
-
diff --git a/helm/style/style_prima_del_linguaggio_naturale/roottheory.xsl b/helm/style/style_prima_del_linguaggio_naturale/roottheory.xsl
deleted file mode 100644 (file)
index d293ee6..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of the stylesheet to accomplish the right inclusion  -->
-<!-- of the theory content stylesheets:                                    -->
-<!-- First draft: May 26 2000, Claudio Sacerdoti Coen, Irene Schena        -->
-<!--***********************************************************************-->
-
-<!-- Schema of stylesheet precedences (from highest to lowest):          -->
-<!-- set -> basic -> theory_content                                      -->
-<!-- because theory_content is imported and has lower precendence than   -->
-<!-- the templates of rootcontent (i.e. the templates of set and basic). -->
-<!-- theory_content -> annotatedcont -> objcontent -> content            -->
-<!-- because theory_content generates an import precedence tree.         --> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:import href="theory_content.xsl"/>
-<xsl:include href="basic.xsl"/>
-<xsl:include href="set.xsl"/>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/set.xsl b/helm/style/style_prima_del_linguaggio_naturale/set.xsl
deleted file mode 100644 (file)
index 303c872..0000000
+++ /dev/null
@@ -1,487 +0,0 @@
-<?xml version="1.0"?>
-
-<!--******************************************************************--> 
-<!-- Basic Set Theory                                                 -->
-<!-- First draft: April 3 2000                                        -->
-<!-- HELM Group: Asperti, Padovani, Sacerdoti, Schena                 -->
-<!--******************************************************************-->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML"
-                              xmlns:helm="http://www.cs.unibo.it/helm">
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- ************************* LOGIC *********************************-->
-
-
-
-<xsl:template match="*" mode="set">
-    <xsl:choose>
-     <xsl:when test="name() = 'LAMBDA'">
-      <m:set>
-       <m:bvar>
-        <m:ci>
-         <xsl:value-of select="target/@binder"/>
-        </m:ci>
-        <m:type>
-         <xsl:apply-templates select="source" mode="noannot"/>
-        </m:type>
-       </m:bvar>
-       <m:condition>
-        <xsl:apply-templates select="target" mode="noannot"/>
-       </m:condition>
-      </m:set>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-templates select="." mode="noannot"/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-
-<!-- IN -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/In.con']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       <!-- <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/> -->
-       <xsl:apply-templates select="*[2+$no_params]" mode="set" /> 
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-
-<!-- NOT-IN -->
-<!-- NOT ha no parameters -->
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/INIT/Logic/not.con']
-and (count(child::*) = 2) and APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/In.con']]]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="APPLY/CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(APPLY/child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:notin/>
-       <xsl:apply-templates select="*[2]/*[3+$no_params]" mode="noannot"/>
-  <!-- <xsl:apply-templates select="*[2]/*[2+$no_params]" mode="noannot"/> -->
-       <xsl:apply-templates select="*[2]/*[2+$no_params]" mode="set"/>  
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- EMPTY SET -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Empty_set.ind']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 1">
-      <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-      </m:set>
-     </xsl:when>   
-     <xsl:when test="(count(child::*) - number($no_params)) = 2">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="cic:/coq/SETS/Ensembles/Ensembles/In.con"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-       <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- SINGLETON -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Singleton.ind']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 2">
-      <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-       <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-      </m:set>
-     </xsl:when>   
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="cic:/coq/SETS/Ensembles/Ensembles/In.con"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       <m:set definitionURL="{MUTIND/@uri}">
-        <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- COUPLE -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Couple.ind']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-       <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-      </m:set>
-     </xsl:when>   
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="cic:/coq/SETS/Ensembles/Ensembles/In.con"/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:set definitionURL="{MUTIND/@uri}">
-        <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- TRIPLE -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Triple.ind'] and (count(child::*) = 5)]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:set definitionURL="{MUTIND/@uri}" helm:xref="{@id}">
-       <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-      </m:set>
-     </xsl:when>   
-     <xsl:when test="(count(child::*) - number($no_params)) = 5">
-      <m:apply helm:xref="{@id}">
-       <m:in definitionURL="cic:/coq/SETS/Ensembles/Ensembles/In.con"/>
-       <xsl:apply-templates select="*[5+$no_params]" mode="noannot"/>
-       <m:set definitionURL="{MUTIND/@uri}">
-        <xsl:apply-templates select="*[2+$no_params]" mode="noannot"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-        <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- INTERSECTION -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Intersection.ind']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:intersect definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:intersect definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-
-<!-- UNION -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Union.ind']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:union definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:union definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- INCLUDED -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Included.con']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:subset definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- STRICTLY INCLUDED -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Strict_Included.con']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:prsubset definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- SET-DIFF -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Setminus.con']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:setdiff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:setdiff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <xsl:apply-templates select="*[3+$no_params]" mode="set"/>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- ADD-ELEM -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Add.con']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:union definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <m:set>
-        <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:union definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <m:set>
-         <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-        </m:set>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- SUBTRACT-ELEM -->
-
-<xsl:template match="APPLY[CONST[attribute::uri='cic:/coq/SETS/Ensembles/Ensembles/Subtract.con']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="CONST/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:setdiff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-       <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       <m:set>
-        <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-       </m:set>
-      </m:apply>
-     </xsl:when>
-     <xsl:when test="(count(child::*) - number($no_params)) = 4">
-      <m:apply helm:xref="{@id}">
-       <m:in/>
-       <xsl:apply-templates select="*[4+$no_params]" mode="noannot"/>
-       <m:apply>
-        <m:setdiff definitionURL="{CONST/@uri}" helm:xref="{CONST/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-        <m:set>
-         <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-        </m:set>
-       </m:apply>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<!-- CARD -->
-
-<xsl:template match="APPLY[MUTIND[attribute::uri='cic:/coq/SETS/Finite_sets/Ensembles_finis/cardinal.ind']]" mode="noannot">
-    <xsl:variable name="no_params">
-     <xsl:call-template name="get_no_params">
-      <xsl:with-param name="first_uri" select="/cicxml/@uri"/>
-      <xsl:with-param name="second_uri" select="MUTIND/@uri"/>
-     </xsl:call-template>
-    </xsl:variable>
-    <xsl:choose>
-     <xsl:when test="(count(child::*) - number($no_params)) = 3">
-      <m:apply helm:xref="{@id}">
-       <m:eq/>
-       <m:apply>
-        <m:card definitionURL="{MUTIND/@uri}" helm:xref="{MUTIND/@id}"/>
-        <xsl:apply-templates select="*[2+$no_params]" mode="set"/>
-       </m:apply>
-       <xsl:apply-templates select="*[3+$no_params]" mode="noannot"/>
-      </m:apply>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-imports/>
-     </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/helm/style/style_prima_del_linguaggio_naturale/theory_content.xsl b/helm/style/style_prima_del_linguaggio_naturale/theory_content.xsl
deleted file mode 100644 (file)
index 9b65cc5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of theory objects to theory sections:                -->
-<!-- First draft: May 08 2000, Claudio Sacerdoti Coen, Irene Schena        -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="0.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:import href="rootcontent.xsl"/>
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- THEORY -->
-
-<xsl:template match="Theory">
-    <SECTION>
-     <xsl:apply-templates><xsl:with-param name="current_uri" select="string(@uri)"/></xsl:apply-templates>
-    </SECTION>
-</xsl:template>
-
-<!-- SUBTHEORY -->
-
-<xsl:template match="SECTION">
-<xsl:param name="current_uri"/>
-    <SECTION>
-     <xsl:apply-templates><xsl:with-param name="current_uri" select="concat($current_uri,&quot;/&quot;,string(@uri))"/></xsl:apply-templates>
-    </SECTION>
-</xsl:template>
-
-<!-- THEORY ELEMENTS -->
-
-<xsl:template match="DEFINITION">
-<xsl:param name="current_uri"/>
-    <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))"/>
-</xsl:template>
-
-<xsl:template match="AXIOM">
-<xsl:param name="current_uri"/>
-    <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))"/>
-</xsl:template>
-
-<xsl:template match="THEOREM">
-<xsl:param name="current_uri"/>
-    <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))"/>
-</xsl:template>
-
-<xsl:template match="VARIABLE">
-<xsl:param name="current_uri"/>
-    <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))"/>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/style_prima_del_linguaggio_naturale/theory_pres.xsl b/helm/style/style_prima_del_linguaggio_naturale/theory_pres.xsl
deleted file mode 100644 (file)
index 9a96cdc..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of theory sections to HTML:                          -->
-<!-- First draft: May 10 2000, Irene Schena                                -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<xsl:include href="annotatedpres.xsl"/>
-
-<xsl:template match="SECTION">
-<xsl:param name="subsect" select="0"/>
-    <xsl:choose>
-    <xsl:when test="$subsect = 0">
-     <html> 
-      <head></head>
-      <body>
-       <m:math><m:mtext>BEGIN SECTION</m:mtext></m:math>
-       <xsl:apply-templates select="*"><xsl:with-param name="subsect" select="1"/></xsl:apply-templates>
-       <m:math><m:mtext>END SECTION</m:mtext></m:math>
-      </body>
-     </html>
-    </xsl:when>
-    <xsl:otherwise>
-     <m:math><m:mtext>BEGIN SECTION</m:mtext></m:math>
-      <xsl:apply-templates select="*"><xsl:with-param name="subsect" select="1"/></xsl:apply-templates>
-     <m:math><m:mtext>END SECTION</m:mtext></m:math>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/theory_content.xsl b/helm/style/theory_content.xsl
deleted file mode 100644 (file)
index 9b65cc5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of theory objects to theory sections:                -->
-<!-- First draft: May 08 2000, Claudio Sacerdoti Coen, Irene Schena        -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="0.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:import href="rootcontent.xsl"/>
-
-<!--******************************************************************-->
-<!-- Variable containing the absolute path of the CIC file            -->
-<!--******************************************************************-->
-
-<xsl:variable name="absPath">http://localhost:8081/get?url=</xsl:variable>
-
-<!-- THEORY -->
-
-<xsl:template match="Theory">
-    <SECTION>
-     <xsl:apply-templates><xsl:with-param name="current_uri" select="string(@uri)"/></xsl:apply-templates>
-    </SECTION>
-</xsl:template>
-
-<!-- SUBTHEORY -->
-
-<xsl:template match="SECTION">
-<xsl:param name="current_uri"/>
-    <SECTION>
-     <xsl:apply-templates><xsl:with-param name="current_uri" select="concat($current_uri,&quot;/&quot;,string(@uri))"/></xsl:apply-templates>
-    </SECTION>
-</xsl:template>
-
-<!-- THEORY ELEMENTS -->
-
-<xsl:template match="DEFINITION">
-<xsl:param name="current_uri"/>
-    <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))"/>
-</xsl:template>
-
-<xsl:template match="AXIOM">
-<xsl:param name="current_uri"/>
-    <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))"/>
-</xsl:template>
-
-<xsl:template match="THEOREM">
-<xsl:param name="current_uri"/>
-    <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))"/>
-</xsl:template>
-
-<xsl:template match="VARIABLE">
-<xsl:param name="current_uri"/>
-    <xsl:apply-templates select="document(concat(string($absPath),string($current_uri),&quot;/&quot;,string(@uri)))"/>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/helm/style/theory_pres.xsl b/helm/style/theory_pres.xsl
deleted file mode 100644 (file)
index f8ade2a..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0"?>
-
-<!--***********************************************************************--> 
-<!-- XSLT version 0.1 of theory sections to HTML:                          -->
-<!-- First draft: May 10 2000, Irene Schena                                -->
-<!--              November 15 2000, Irene Schena                           -->
-<!--***********************************************************************--> 
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                              xmlns:m="http://www.w3.org/1998/Math/MathML">
-
-<xsl:import href="annotatedpres.xsl"/>
-
-<xsl:template match="SECTION">
-<xsl:param name="subsect" select="0"/>
-    <xsl:choose>
-    <xsl:when test="$subsect = 0">
-     <html> 
-      <head></head>
-      <body>
-       <m:math><m:mtext>BEGIN SECTION</m:mtext></m:math>
-       <xsl:apply-templates select="*"><xsl:with-param name="subsect" select="1"/></xsl:apply-templates>
-       <m:math><m:mtext>END SECTION</m:mtext></m:math>
-      </body>
-     </html>
-    </xsl:when>
-    <xsl:otherwise>
-     <m:math><m:mtext>BEGIN SECTION</m:mtext></m:math>
-      <xsl:apply-templates select="*"><xsl:with-param name="subsect" select="1"/></xsl:apply-templates>
-     <m:math><m:mtext>END SECTION</m:mtext></m:math>
-    </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-</xsl:stylesheet>